diff --git a/.github/scripts/exit-standby-all-chain-nodes.sh b/.github/scripts/exit-standby-all-chain-nodes.sh index 3fad215555..708f25e321 100755 --- a/.github/scripts/exit-standby-all-chain-nodes.sh +++ b/.github/scripts/exit-standby-all-chain-nodes.sh @@ -2,7 +2,7 @@ set -x # get all the node's ec2 instance ids for the specified chain id -chain_node_instance_ids=$(aws ec2 describe-instances --filters "Name=tag:KavaChainId,Values=$CHAIN_ID" | jq -r '[.Reservations | .[] | .Instances | .[] | .InstanceId] | join(" ")') +chain_node_instance_ids=$(aws ec2 describe-instances --filters "Name=tag:$AWS_CHAIN_ID_TAG_NAME,Values=$CHAIN_ID" | jq -r '[.Reservations | .[] | .Instances | .[] | .InstanceId] | join(" ")') for chain_node_instance_id in ${chain_node_instance_ids} do @@ -17,6 +17,17 @@ do aws autoscaling exit-standby \ --instance-ids "$chain_node_instance_id" \ --auto-scaling-group-name "$autoscaling_group_name" + + while true; do + autoscaling_group_state=$(aws autoscaling describe-auto-scaling-instances --instance-ids "$chain_node_instance_id" | jq -r '[.AutoScalingInstances | .[].LifecycleState] | join(" ")') + if [ "$autoscaling_group_state" == "InService" ]; then + echo "instance ($chain_node_instance_id) is now in inService state" + break + else + echo "instance ($chain_node_instance_id) not in standby state yet (current state: $autoscaling_group_state), waiting 10 seconds" + sleep 10 + fi + done ;; *) echo "instance ($chain_node_instance_id) not in an elgible state ($autoscaling_group_state) for exiting standby, skipping" diff --git a/.github/scripts/put-all-chain-nodes-on-standby.sh b/.github/scripts/put-all-chain-nodes-on-standby.sh index 591e64d0c7..b42f619ea3 100755 --- a/.github/scripts/put-all-chain-nodes-on-standby.sh +++ b/.github/scripts/put-all-chain-nodes-on-standby.sh @@ -1,8 +1,8 @@ #!/bin/bash set -x -# get all the node's ec2 instance ids for the specified chain id -chain_node_instance_ids=$(aws ec2 describe-instances --filters "Name=tag:KavaChainId,Values=$CHAIN_ID" | jq -r '[.Reservations | .[] | .Instances | .[] | .InstanceId] | join(" ")') +# get all the node's ec2 instance ids for the specified chain id KavaChainId +chain_node_instance_ids=$(aws ec2 describe-instances --filters "Name=tag:$AWS_CHAIN_ID_TAG_NAME,Values=$CHAIN_ID" | jq -r '[.Reservations | .[] | .Instances | .[] | .InstanceId] | join(" ")') for chain_node_instance_id in ${chain_node_instance_ids} do @@ -19,6 +19,17 @@ do --instance-ids "$chain_node_instance_id" \ --auto-scaling-group-name "$autoscaling_group_name" \ --should-decrement-desired-capacity + + while true; do + autoscaling_group_state=$(aws autoscaling describe-auto-scaling-instances --instance-ids "$chain_node_instance_id" | jq -r '[.AutoScalingInstances | .[].LifecycleState] | join(" ")') + if [ "$autoscaling_group_state" == "Standby" ]; then + echo "instance ($chain_node_instance_id) is now in standby state" + break + else + echo "instance ($chain_node_instance_id) not in standby state yet (current state: $autoscaling_group_state), waiting 10 seconds" + sleep 10 + fi + done ;; *) echo "instance ($chain_node_instance_id) not in an elgible state ($autoscaling_group_state) for going on standby, skipping" diff --git a/.github/workflows/cd-protonet.yml b/.github/workflows/cd-protonet.yml index aa0b366619..1e08f6ce21 100644 --- a/.github/workflows/cd-protonet.yml +++ b/.github/workflows/cd-protonet.yml @@ -1,41 +1,64 @@ name: Continuous Deployment (Protonet) -## run after every successful CI job of new commits to the master branch -#on: -# workflow_run: -# workflows: [Continuous Integration (Kava Master)] -# types: -# - completed +# run after every successful CI job of new commits to the master branch +on: + workflow_run: + workflows: [Continuous Integration (Kava Master)] + types: + - completed jobs: + changed_files: + runs-on: ubuntu-latest + # define output for first job forwarding output of changedProtonetConfig job + outputs: + changedProtonetConfig: ${{ steps.changed-protonet-config.outputs.any_changed }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 # OR "2" -> To retrieve the preceding commit. + - name: Get all changed protonet files + id: hanged-protonet-config + uses: tj-actions/changed-files@v42 + with: + # Avoid using single or double quotes for multiline patterns + files: | + ci/env/kava-protonet/** + # in order: # enter standby (prevents autoscaling group from killing node during deploy) - # stop kava - # take ebs + zfs snapshots + # stop doctor and kava # download updated binary and genesis - # reset application database state (only done on internal testnet) + # reset application database state + # restart all once all have been reset + # start kava and doctor + # enter inService reset-chain-to-zero-state: # only start cd pipeline if last ci run was successful - if: ${{ github.event.workflow_run.conclusion == 'success' }} - uses: ./.github/workflows/cd-reset-internal-testnet.yml + if: ${{ github.event.workflow_run.conclusion == 'success' && needs.changed_files.outputs.changedProtonetConfig == 'true' }} + uses: ./.github/workflows/cd-reset-protonet.yml with: aws-region: us-east-1 + aws-chain-id-tag-name: ChainId chain-id: proto_2221-17000 - ssm-document-name: kava-testnet-internal-node-update - playbook-name: reset-protonet-playbook.yml + auto_scaling_group_names: kava-protonet-iavl-v1-validator-api-node,kava-protonet-iavl-v1-rpc-api-node + ssm-document-name: kava-protonet-iavl-v1-instance-update + playbook-name: reset-chain.yml playbook-infrastructure-branch: master secrets: inherit + needs: [changed_files] - # start kava with new binary and genesis state on api, peer and seed nodes, place nodes in service once they start and are synched to live - start-chain-api: - uses: ./.github/workflows/cd-start-chain.yml - with: - aws-region: us-east-1 - chain-id: proto_2221-17000 - ssm-document-name: kava-testnet-internal-node-update - playbook-name: start-chain-api-playbook.yml - playbook-infrastructure-branch: master - secrets: inherit - needs: [reset-chain-to-zero-state] + restart-chain: + uses: ./.github/workflows/cd-restart-protonet.yml + with: + aws-region: us-east-1 + aws-chain-id-tag-name: ChainId + chain-id: proto_2221-17000 + auto_scaling_group_names: kava-protonet-iavl-v1-validator-api-node,kava-protonet-iavl-v1-rpc-api-node + ssm-document-name: kava-protonet-iavl-v1-instance-update + playbook-name: restart-chain.yml + playbook-infrastructure-branch: master + secrets: inherit + needs: [ reset-chain-to-zero-state ] # setup test and development accounts and balances, deploy contracts by calling the chain's api seed-chain-state: @@ -45,16 +68,17 @@ jobs: chain-id: proto_2221-17000 seed-script-filename: seed-protonet.sh erc20-deployer-network-name: protonet - genesis_validator_addresses: "kavavaloper14w4avgdvqrlpww6l5dhgj4egfn6ln7gmtp7r2m" + genesis_validator_addresses: "kavavaloper1jaw3g097lq9jdrnscchspr2233yhpsxdlq7ula" kava_version_filepath: ./ci/env/kava-protonet/KAVA.VERSION secrets: inherit - needs: [start-chain-api] + needs: [restart-chain] + post-pipeline-metrics: uses: ./.github/workflows/metric-pipeline.yml if: always() # always run so we metric failures and successes with: aws-region: us-east-1 - metric-name: kava.deploys.testnet.proto + metric-name: kava.deploys.protonet.proto namespace: Kava/ContinuousDeployment secrets: inherit needs: [seed-chain-state] diff --git a/.github/workflows/cd-reset-internal-testnet.yml b/.github/workflows/cd-reset-internal-testnet.yml index 738fd4c395..71fcc3a408 100644 --- a/.github/workflows/cd-reset-internal-testnet.yml +++ b/.github/workflows/cd-reset-internal-testnet.yml @@ -40,6 +40,7 @@ jobs: - name: take the chain offline run: bash ${GITHUB_WORKSPACE}/.github/scripts/put-all-chain-nodes-on-standby.sh env: + AWS_CHAIN_ID_TAG_NAME: ${{ inputs.aws-chain-id-tag-name }} CHAIN_ID: ${{ inputs.chain-id }} AWS_REGION: ${{ inputs.aws-region }} AWS_ACCESS_KEY_ID: ${{ secrets.CI_AWS_KEY_ID }} diff --git a/.github/workflows/cd-reset-protonet.yml b/.github/workflows/cd-reset-protonet.yml new file mode 100644 index 0000000000..30028d81ec --- /dev/null +++ b/.github/workflows/cd-reset-protonet.yml @@ -0,0 +1,94 @@ +name: Reset Protonet + +on: + workflow_call: + inputs: + auto_scaling_group_names: + required: true + type: string + description: 'Comma-separated list of auto-scaling group names' + aws-chain-id-tag-name: + required: false + type: string + default: 'KavaChainId' + chain-id: + required: true + type: string + aws-region: + required: true + type: string + ssm-document-name: + required: true + type: string + playbook-name: + required: true + type: string + playbook-infrastructure-branch: + required: true + type: string + secrets: + CI_AWS_KEY_ID: + required: true + CI_AWS_KEY_SECRET: + required: true + KAVA_PRIVATE_GITHUB_ACCESS_TOKEN: + required: true + +# in order: +# enter standby (prevents autoscaling group from killing node during deploy) +# stop doctor and kava +# download updated binary and genesis +# reset application database state +# start kava and doctor +# enter inService +jobs: + place-chain-nodes-on-standby: + runs-on: ubuntu-latest + steps: + - name: checkout repo from current commit + uses: actions/checkout@v4 + - name: take the chain offline + run: bash ${GITHUB_WORKSPACE}/.github/scripts/put-all-chain-nodes-on-standby.sh + env: + AWS_CHAIN_ID_TAG_NAME: ${{ inputs.aws-chain-id-tag-name }} + CHAIN_ID: ${{ inputs.chain-id }} + AWS_REGION: ${{ inputs.aws-region }} + AWS_ACCESS_KEY_ID: ${{ secrets.CI_AWS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_AWS_KEY_SECRET }} + - name: checkout infrastructure repo + uses: actions/checkout@v4 + with: + repository: Kava-Labs/infrastructure + token: ${{ secrets.KAVA_PRIVATE_GITHUB_ACCESS_TOKEN }} + path: infrastructure + ref: master + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version-file: go.mod + - name: build kava node updater + run: cd infrastructure/cli/kava-node-updater && make install && cd ../../../ + - name: run reset playbook on all chain nodes + run: | + IFS=',' read -r -a auto_scaling_group_names <<< "$AUTO_SCALING_GROUP_NAMES" + for auto_scaling_group_name in "${auto_scaling_group_names[@]}"; do + kava-node-updater \ + --debug \ + --max-retries=2 \ + --aws-ssm-document-name="$SSM_DOCUMENT_NAME" \ + --infrastructure-git-pointer="$PLAYBOOK_INFRASTRUCTURE_BRANCH" \ + --update-playbook-filename="$PLAYBOOK_NAME" \ + --autoscaling-group-name="$auto_scaling_group_name" \ + --max-upgrade-batch-size=0 \ + --node-types="" \ + --wait-for-node-sync-after-upgrade=true + done + env: + SSM_DOCUMENT_NAME: ${{ inputs.ssm-document-name }} + PLAYBOOK_NAME: ${{ inputs.playbook-name }} + AUTO_SCALING_GROUP_NAMES: ${{ inputs.auto_scaling_group_names }} + AWS_REGION: ${{ inputs.aws-region }} + AWS_ACCESS_KEY_ID: ${{ secrets.CI_AWS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_AWS_KEY_SECRET }} + AWS_SDK_LOAD_CONFIG: 1 + PLAYBOOK_INFRASTRUCTURE_BRANCH: ${{ inputs.playbook-infrastructure-branch }} diff --git a/.github/workflows/cd-restart-protonet.yml b/.github/workflows/cd-restart-protonet.yml new file mode 100644 index 0000000000..e5d606195e --- /dev/null +++ b/.github/workflows/cd-restart-protonet.yml @@ -0,0 +1,102 @@ +name: Restart Protonet + +on: + workflow_call: + inputs: + auto_scaling_group_names: + required: true + type: string + description: 'Comma-separated list of auto-scaling group names' + aws-chain-id-tag-name: + required: false + type: string + default: 'KavaChainId' + chain-id: + required: true + type: string + aws-region: + required: true + type: string + ssm-document-name: + required: true + type: string + playbook-name: + required: true + type: string + playbook-infrastructure-branch: + required: true + type: string + secrets: + CI_AWS_KEY_ID: + required: true + CI_AWS_KEY_SECRET: + required: true + KAVA_PRIVATE_GITHUB_ACCESS_TOKEN: + required: true + +# in order: +# enter standby (prevents autoscaling group from killing node during deploy) +# stop doctor and kava +# download updated binary and genesis +# reset application database state +# start kava and doctor +# enter inService +jobs: + restart-traffic: + runs-on: ubuntu-latest + steps: + - name: checkout repo from current commit + uses: actions/checkout@v4 + - name: take the chain offline + run: bash ${GITHUB_WORKSPACE}/.github/scripts/put-all-chain-nodes-on-standby.sh + env: + AWS_CHAIN_ID_TAG_NAME: ${{ inputs.aws-chain-id-tag-name }} + CHAIN_ID: ${{ inputs.chain-id }} + AWS_REGION: ${{ inputs.aws-region }} + AWS_ACCESS_KEY_ID: ${{ secrets.CI_AWS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_AWS_KEY_SECRET }} + - name: checkout infrastructure repo + uses: actions/checkout@v4 + with: + repository: Kava-Labs/infrastructure + token: ${{ secrets.KAVA_PRIVATE_GITHUB_ACCESS_TOKEN }} + path: infrastructure + ref: master + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version-file: go.mod + - name: build kava node updater + run: cd infrastructure/cli/kava-node-updater && make install && cd ../../../ + - name: run reset playbook on all chain nodes + run: | + IFS=',' read -r -a auto_scaling_group_names <<< "$AUTO_SCALING_GROUP_NAMES" + for auto_scaling_group_name in "${auto_scaling_group_names[@]}"; do + kava-node-updater \ + --debug \ + --max-retries=2 \ + --aws-ssm-document-name="$SSM_DOCUMENT_NAME" \ + --infrastructure-git-pointer="$PLAYBOOK_INFRASTRUCTURE_BRANCH" \ + --update-playbook-filename="$PLAYBOOK_NAME" \ + --autoscaling-group-name="$auto_scaling_group_name" \ + --max-upgrade-batch-size=0 \ + --node-types="" \ + --wait-for-node-sync-after-upgrade=true + done + env: + SSM_DOCUMENT_NAME: ${{ inputs.ssm-document-name }} + PLAYBOOK_NAME: ${{ inputs.playbook-name }} + AUTO_SCALING_GROUP_NAMES: ${{ inputs.auto_scaling_group_names }} + AWS_REGION: ${{ inputs.aws-region }} + AWS_ACCESS_KEY_ID: ${{ secrets.CI_AWS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_AWS_KEY_SECRET }} + AWS_SDK_LOAD_CONFIG: 1 + PLAYBOOK_INFRASTRUCTURE_BRANCH: ${{ inputs.playbook-infrastructure-branch }} + - name: bring the chain online + run: bash ${GITHUB_WORKSPACE}/.github/scripts/exit-standby-all-chain-nodes.sh + env: + AWS_CHAIN_ID_TAG_NAME: ${{ inputs.aws-chain-id-tag-name }} + CHAIN_ID: ${{ inputs.chain-id }} + AWS_REGION: ${{ inputs.aws-region }} + AWS_ACCESS_KEY_ID: ${{ secrets.CI_AWS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_AWS_KEY_SECRET }} diff --git a/.github/workflows/cd-seed-chain.yml b/.github/workflows/cd-seed-chain.yml index e00d9332f1..6fd34791c0 100644 --- a/.github/workflows/cd-seed-chain.yml +++ b/.github/workflows/cd-seed-chain.yml @@ -38,7 +38,9 @@ jobs: - name: get desired version of network id: kava-version run: | - echo "KAVA_VERSION=$(cat ./ci/env/kava-internal-testnet/KAVA.VERSION)" >> $GITHUB_OUTPUT + KAVA_VERSION=$(cat ${{ inputs.kava_version_filepath }}) + echo "KAVA_VERSION=$KAVA_VERSION" >> $GITHUB_OUTPUT + echo "Kava Version: $KAVA_VERSION" env: KAVA_VERSION_FILEPATH: ${{ inputs.kava_version_filepath }} - name: checkout version of kava used by network diff --git a/.github/workflows/cd-start-chain.yml b/.github/workflows/cd-start-chain.yml index 4e9644f387..0e693d17a2 100644 --- a/.github/workflows/cd-start-chain.yml +++ b/.github/workflows/cd-start-chain.yml @@ -3,6 +3,10 @@ name: Start Chain on: workflow_call: inputs: + aws-chain-id-tag-name: + required: false + type: string + default: 'KavaChainId' chain-id: required: true type: string @@ -36,6 +40,7 @@ jobs: - name: take the chain offline run: bash ${GITHUB_WORKSPACE}/.github/scripts/put-all-chain-nodes-on-standby.sh env: + AWS_CHAIN_ID_TAG_NAME: ${{ inputs.aws-chain-id-tag-name }} CHAIN_ID: ${{ inputs.chain-id }} AWS_REGION: ${{ inputs.aws-region }} AWS_ACCESS_KEY_ID: ${{ secrets.CI_AWS_KEY_ID }} @@ -75,3 +80,9 @@ jobs: PLAYBOOK_INFRASTRUCTURE_BRANCH: ${{ inputs.playbook-infrastructure-branch }} - name: bring the chain online run: bash ${GITHUB_WORKSPACE}/.github/scripts/exit-standby-all-chain-nodes.sh + env: + AWS_CHAIN_ID_TAG_NAME: ${{ inputs.aws-chain-id-tag-name }} + CHAIN_ID: ${{ inputs.chain-id }} + AWS_REGION: ${{ inputs.aws-region }} + AWS_ACCESS_KEY_ID: ${{ secrets.CI_AWS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_AWS_KEY_SECRET }} diff --git a/.github/workflows/ci-default.yml b/.github/workflows/ci-default.yml index 3bfac82330..c2a5f002c3 100644 --- a/.github/workflows/ci-default.yml +++ b/.github/workflows/ci-default.yml @@ -139,11 +139,21 @@ jobs: steps: - name: checkout repo from current commit uses: actions/checkout@v4 + - name: save version of kava that will be deployed if this pr is merged + id: kava-version + run: | + echo "KAVA_VERSION=$(cat ./ci/env/kava-protonet/KAVA.VERSION)" >> $GITHUB_OUTPUT + - name: checkout version of kava that will be deployed if this pr is merged + uses: actions/checkout@v4 + with: + ref: ${{ steps.kava-version.outputs.KAVA_VERSION }} - name: Set up Go uses: actions/setup-go@v4 with: go-version-file: go.mod - name: build kava cli run: make install + - name: checkout repo from current commit to validate current branch's genesis + uses: actions/checkout@v4 - name: validate protonet genesis run: kava validate-genesis ci/env/kava-protonet/genesis.json diff --git a/ci/env/kava-protonet/README.md b/ci/env/kava-protonet/README.md new file mode 100644 index 0000000000..6a4e62316b --- /dev/null +++ b/ci/env/kava-protonet/README.md @@ -0,0 +1,5 @@ +Genesis Updates +=============== +- The genesis.json account in this directory mimics the values that are present in `kava-internal-testnet` with the exception of `chain-id` and `validator` adjustments +- This file represents the initial state of the node when the validator node starts up in kava with requisite accounts, balances, permissions, etc +- These changes are needed for the `seed-protonet.sh` script to successfully execute in GitHub actions when changes are made to this branch, to reset initial node state diff --git a/ci/env/kava-protonet/genesis.json b/ci/env/kava-protonet/genesis.json index e42273eacf..a3e61cb7c2 100644 --- a/ci/env/kava-protonet/genesis.json +++ b/ci/env/kava-protonet/genesis.json @@ -1,5 +1,5 @@ { - "genesis_time": "2022-05-25T17:00:00Z", + "genesis_time": "2024-09-12T14:33:15.450491709Z", "chain_id": "proto_2221-17000", "initial_height": "1", "consensus_params": { @@ -22,6 +22,8 @@ }, "app_hash": "", "app_state": { + "06-solomachine": null, + "07-tendermint": null, "auction": { "next_auction_id": "1", "params": { @@ -44,37 +46,42 @@ }, "accounts": [ { - "@type": "/ethermint.types.v1.EthAccount", - "base_account": { - "address": "kava1g3kdcr8ah7rs07dk00elnkpmk34e6dcj94306a", - "pub_key": null, - "account_number": "0", - "sequence": "1" - }, - "code_hash": "0" + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "kava1jaw3g097lq9jdrnscchspr2233yhpsxdjky582", + "pub_key": null, + "account_number": "0", + "sequence": "0" }, { - "@type": "/ethermint.types.v1.EthAccount", + "@type": "/cosmos.auth.v1beta1.ModuleAccount", "base_account": { - "address": "kava1jc92jznsjlvfs6d4l8qjhc4j3gaapvmkypxlln", + "address": "kava1cj7njkw2g9fqx4e768zc75dp9sks8u9znxrf0w", "pub_key": null, "account_number": "0", "sequence": "0" }, - "code_hash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + "name": "kavadist", + "permissions": [ + "minter" + ] + }, + { + "@type": "/cosmos.auth.v1beta1.BaseAccount", + "address": "kava1fy5zeuutmxzwcx5hncu5q83ug3zcqmxcpwrjsn", + "pub_key": null, + "account_number": "0", + "sequence": "0" }, { "@type": "/cosmos.auth.v1beta1.ModuleAccount", "base_account": { - "address": "kava1cj7njkw2g9fqx4e768zc75dp9sks8u9znxrf0w", + "address": "kava1mfru9azs5nua2wxcd4sq64g5nt7nn4n8s2w8cu", "pub_key": null, "account_number": "0", "sequence": "0" }, - "name": "kavadist", - "permissions": [ - "minter" - ] + "name": "swap", + "permissions": [] }, { "@type": "/ethermint.types.v1.EthAccount", @@ -127,32 +134,24 @@ "code_hash": "0xd51cf04c1b78bc48b348e8455c4181539ab0b7ff84bb081fed109cd5feafaede" }, { - "@type": "/cosmos.auth.v1beta1.ModuleAccount", + "@type": "/ethermint.types.v1.EthAccount", "base_account": { - "address": "kava1mfru9azs5nua2wxcd4sq64g5nt7nn4n8s2w8cu", + "address": "kava1g3kdcr8ah7rs07dk00elnkpmk34e6dcj94306a", "pub_key": null, "account_number": "0", - "sequence": "0" + "sequence": "1" }, - "name": "swap", - "permissions": [] - }, - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "kava1fy5zeuutmxzwcx5hncu5q83ug3zcqmxcpwrjsn", - "pub_key": null, - "account_number": "0", - "sequence": "0" + "code_hash": "0" }, { "@type": "/ethermint.types.v1.EthAccount", "base_account": { - "address": "kava1xcgtffvv2yeqmgs3yz4gv29kgjrj8usxw9ehkk", + "address": "kava1xg3g4gadzvlgfqwnsfufnsv6r0gmtnhl9f09p5", "pub_key": null, "account_number": "0", "sequence": "0" }, - "code_hash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + "code_hash": "0" }, { "@type": "/ethermint.types.v1.EthAccount", @@ -164,6 +163,16 @@ }, "code_hash": "0" }, + { + "@type": "/ethermint.types.v1.EthAccount", + "base_account": { + "address": "kava1xcgtffvv2yeqmgs3yz4gv29kgjrj8usxw9ehkk", + "pub_key": null, + "account_number": "0", + "sequence": "0" + }, + "code_hash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" + }, { "@type": "/cosmos.auth.v1beta1.BaseAccount", "address": "kava1vlpsrmdyuywvaqrv7rx6xga224sqfwz3fyfhwq", @@ -191,12 +200,12 @@ { "@type": "/ethermint.types.v1.EthAccount", "base_account": { - "address": "kava1xg3g4gadzvlgfqwnsfufnsv6r0gmtnhl9f09p5", + "account_number": "23", + "address": "kava1seqjrgakfgzasu5g8gwsmgzwacg85e8nnxeqxl", "pub_key": null, - "account_number": "0", - "sequence": "0" + "sequence": "1" }, - "code_hash": "0" + "code_hash": "0x45d85d503e0143ffd2bb95d7bcb4dadfc1c05ff005fc7c26e63eb47f496fdafc" }, { "@type": "/cosmos.auth.v1beta1.BaseAccount", @@ -211,23 +220,6 @@ "pub_key": null, "account_number": "0", "sequence": "0" - }, - { - "@type": "/cosmos.auth.v1beta1.BaseAccount", - "address": "kava14w4avgdvqrlpww6l5dhgj4egfn6ln7gmxhytjv", - "pub_key": null, - "account_number": "0", - "sequence": "0" - }, - { - "@type": "/ethermint.types.v1.EthAccount", - "base_account": { - "address": "kava1seqjrgakfgzasu5g8gwsmgzwacg85e8nnxeqxl", - "pub_key": null, - "account_number": "23", - "sequence": "1" - }, - "code_hash": "0x45d85d503e0143ffd2bb95d7bcb4dadfc1c05ff005fc7c26e63eb47f496fdafc" } ] }, @@ -467,8 +459,21 @@ }, "balances": [ { - "address": "kava1qffzssyckxgrd7qm6g59r7rfjpp047kzaefatc", + "address": "kava1jaw3g097lq9jdrnscchspr2233yhpsxdjky582", "coins": [ + { + "denom": "ukava", + "amount": "1000000000000000000" + } + ] + }, + { + "address": "kava1vlpsrmdyuywvaqrv7rx6xga224sqfwz3fyfhwq", + "coins": [ + { + "denom": "bnb", + "amount": "500000000" + }, { "denom": "btcb", "amount": "200000000" @@ -481,17 +486,25 @@ "denom": "hard", "amount": "1000000000" }, + { + "denom": "ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2", + "amount": "10000000000" + }, { "denom": "swp", "amount": "5000000000" }, { "denom": "ukava", - "amount": "100000000000000" + "amount": "10000000000000" }, { "denom": "usdx", "amount": "103000000000" + }, + { + "denom": "xrpb", + "amount": "1000000000000000" } ] }, @@ -505,35 +518,56 @@ ] }, { - "address": "kava1xcgtffvv2yeqmgs3yz4gv29kgjrj8usxw9ehkk", + "address": "kava1fy5zeuutmxzwcx5hncu5q83ug3zcqmxcpwrjsn", "coins": [ { "denom": "ukava", - "amount": "1000000000" + "amount": "100000000000000" } ] }, { - "address": "kava1g3kdcr8ah7rs07dk00elnkpmk34e6dcj94306a", + "address": "kava1cj7njkw2g9fqx4e768zc75dp9sks8u9znxrf0w", + "coins": [ + { + "denom": "hard", + "amount": "100000000000000" + }, + { + "denom": "swp", + "amount": "100000000000000" + }, + { + "denom": "ukava", + "amount": "100000000000000" + } + ] + }, + { + "address": "kava1xcgtffvv2yeqmgs3yz4gv29kgjrj8usxw9ehkk", "coins": [ { "denom": "ukava", - "amount": "10000000000000000000000" + "amount": "1000000000" } ] }, { - "address": "kava1fy5zeuutmxzwcx5hncu5q83ug3zcqmxcpwrjsn", + "address": "kava1g3kdcr8ah7rs07dk00elnkpmk34e6dcj94306a", "coins": [ { "denom": "ukava", - "amount": "100000000000000" + "amount": "10000000000000000000000" } ] }, { - "address": "kava1vlpsrmdyuywvaqrv7rx6xga224sqfwz3fyfhwq", + "address": "kava1krh7k30pc9rteejpl2zycj0vau58y8c69xkzws", "coins": [ + { + "denom": "bnb", + "amount": "100000000000000000" + }, { "denom": "btcb", "amount": "200000000" @@ -554,6 +588,14 @@ "denom": "erc20/axelar/wbtc", "amount": "1000000000" }, + { + "denom": "erc20/bitgo/wbtc", + "amount": "200000000" + }, + { + "denom": "erc20/tether/usdt", + "amount": "100000000000" + }, { "denom": "hard", "amount": "1000000000" @@ -569,6 +611,10 @@ { "denom": "usdx", "amount": "103000000000" + }, + { + "denom": "xrpb", + "amount": "103000000000" } ] }, @@ -582,16 +628,21 @@ ] }, { - "address": "kava10cy05c0j9udypdrp0wy8a5jtshx67v7zk5sdzp", + "address": "kava1kq0kfnnffkna9hknzg8kgx89ljczjtjdt8qrv7", + "coins": [ + { + "denom": "ukava", + "amount": "1000000000000000000" + } + ] + }, + { + "address": "kava1mfru9azs5nua2wxcd4sq64g5nt7nn4n8s2w8cu", "coins": [ { "denom": "btcb", "amount": "200000000" }, - { - "denom": "busd", - "amount": "1000000000000000" - }, { "denom": "hard", "amount": "1000000000" @@ -602,7 +653,7 @@ }, { "denom": "ukava", - "amount": "10000000000000" + "amount": "5000000000" }, { "denom": "usdx", @@ -611,34 +662,7 @@ ] }, { - "address": "kava1jc92jznsjlvfs6d4l8qjhc4j3gaapvmkypxlln", - "coins": [ - { - "denom": "ukava", - "amount": "1000000000" - } - ] - }, - { - "address": "kava14w4avgdvqrlpww6l5dhgj4egfn6ln7gmxhytjv", - "coins": [ - { - "denom": "ukava", - "amount": "1000000000" - } - ] - }, - { - "address": "kava1kq0kfnnffkna9hknzg8kgx89ljczjtjdt8qrv7", - "coins": [ - { - "denom": "ukava", - "amount": "1000000000000000000" - } - ] - }, - { - "address": "kava1krh7k30pc9rteejpl2zycj0vau58y8c69xkzws", + "address": "kava10cy05c0j9udypdrp0wy8a5jtshx67v7zk5sdzp", "coins": [ { "denom": "btcb", @@ -648,18 +672,6 @@ "denom": "busd", "amount": "1000000000000000" }, - { - "denom": "erc20/axelar/eth", - "amount": "1000000000000000000" - }, - { - "denom": "erc20/axelar/usdc", - "amount": "10000000000" - }, - { - "denom": "erc20/axelar/wbtc", - "amount": "1000000000" - }, { "denom": "hard", "amount": "1000000000" @@ -679,29 +691,16 @@ ] }, { - "address": "kava1cj7njkw2g9fqx4e768zc75dp9sks8u9znxrf0w", - "coins": [ - { - "denom": "hard", - "amount": "100000000000000" - }, - { - "denom": "swp", - "amount": "100000000000000" - }, - { - "denom": "ukava", - "amount": "100000000000000" - } - ] - }, - { - "address": "kava1mfru9azs5nua2wxcd4sq64g5nt7nn4n8s2w8cu", + "address": "kava1qffzssyckxgrd7qm6g59r7rfjpp047kzaefatc", "coins": [ { "denom": "btcb", "amount": "200000000" }, + { + "denom": "busd", + "amount": "1000000000000000" + }, { "denom": "hard", "amount": "1000000000" @@ -712,7 +711,7 @@ }, { "denom": "ukava", - "amount": "5000000000" + "amount": "100000000000000" }, { "denom": "usdx", @@ -722,7 +721,8 @@ } ], "supply": [], - "denom_metadata": [] + "denom_metadata": [], + "send_enabled": [] }, "bep3": { "supplies": [], @@ -801,31 +801,6 @@ ] } }, - "bridge": { - "params": { - "bridge_enabled": true, - "enabled_erc20_tokens": [ - { - "address": "0x6098c27D41ec6dc280c2200A737D443b0AaA2E8F", - "name": "Wrapped ETH", - "symbol": "WETH", - "decimals": 18, - "minimum_withdraw_amount": "10000000000000000" - }, - { - "address": "0x4Fb48E68842bb59f07569c623ACa5826b600F8F7", - "name": "USDC", - "symbol": "USDC", - "decimals": 6, - "minimum_withdraw_amount": "10000000" - } - ], - "relayer": "kava15tmj37vh7ch504px9fcfglmvx6y9m70646ev8t", - "enabled_conversion_pairs": [] - }, - "erc20_bridge_pairs": [], - "next_withdraw_sequence": "1" - }, "capability": { "index": "1", "owners": [] @@ -840,54 +815,37 @@ "liquidation_block_interval": 500, "collateral_params": [ { - "auction_size": "50000000000", - "conversion_factor": "8", - "debt_limit": { - "amount": "20000000000000", - "denom": "usdx" - }, "denom": "bnb", - "liquidation_market_id": "bnb:usd:30", - "liquidation_penalty": "0.050000000000000000", + "type": "bnb-a", "liquidation_ratio": "1.500000000000000000", - "keeper_reward_percentage": "0.01", - "check_collateralization_index_count": "10", - "spot_market_id": "bnb:usd", - "stability_fee": "1.000000000782997700", - "type": "bnb-a" - }, - { - "auction_size": "100000000", - "conversion_factor": "8", "debt_limit": { - "amount": "2000000000000", - "denom": "usdx" + "denom": "usdx", + "amount": "5000000000000" }, - "denom": "btcb", - "liquidation_market_id": "btc:usd:30", - "liquidation_penalty": "0.050000000000000000", - "liquidation_ratio": "1.500000000000000000", - "keeper_reward_percentage": "0.01", + "stability_fee": "1.000000000158153904", + "auction_size": "50000000000", + "liquidation_penalty": "0.025000000000000000", + "spot_market_id": "bnb:usd", + "liquidation_market_id": "bnb:usd:30", + "keeper_reward_percentage": "0.010000000000000000", "check_collateralization_index_count": "10", - "spot_market_id": "btc:usd", - "stability_fee": "1.000000000782997700", - "type": "btcb-a" + "conversion_factor": "8" }, { - "denom": "xrpb", - "type": "xrpb-a", + "denom": "btcb", + "type": "btcb-a", "liquidation_ratio": "1.500000000000000000", "debt_limit": { "denom": "usdx", - "amount": "1000000000000" + "amount": "10000000000000" }, - "stability_fee": "1.000000001547125958", - "auction_size": "100000000000", - "liquidation_penalty": "0.075000000000000000", - "keeper_reward_percentage": "0.01", + "stability_fee": "1.000000000782997609", + "auction_size": "100000000", + "liquidation_penalty": "0.025000000000000000", + "spot_market_id": "btc:usd", + "liquidation_market_id": "btc:usd:30", + "keeper_reward_percentage": "0.010000000000000000", "check_collateralization_index_count": "10", - "spot_market_id": "xrp:usd", - "liquidation_market_id": "xrp:usd:30", "conversion_factor": "8" }, { @@ -896,15 +854,15 @@ "liquidation_ratio": "1.010000000000000000", "debt_limit": { "denom": "usdx", - "amount": "3000000000000" + "amount": "50000000000000" }, "stability_fee": "1.000000000000000000", "auction_size": "1000000000000", - "liquidation_penalty": "0.075000000000000000", - "check_collateralization_index_count": "10", - "keeper_reward_percentage": "0.01", + "liquidation_penalty": "0.025000000000000000", "spot_market_id": "busd:usd", "liquidation_market_id": "busd:usd:30", + "keeper_reward_percentage": "0.010000000000000000", + "check_collateralization_index_count": "10", "conversion_factor": "8" }, { @@ -913,152 +871,118 @@ "liquidation_ratio": "1.100000000000000000", "debt_limit": { "denom": "usdx", - "amount": "3000000000000" + "amount": "1000000000000" }, "stability_fee": "1.000000012857214317", "auction_size": "1000000000000", - "liquidation_penalty": "0.075000000000000000", - "check_collateralization_index_count": "10", - "keeper_reward_percentage": "0.01", + "liquidation_penalty": "0.025000000000000000", "spot_market_id": "busd:usd", "liquidation_market_id": "busd:usd:30", + "keeper_reward_percentage": "0.010000000000000000", + "check_collateralization_index_count": "10", "conversion_factor": "8" }, { - "auction_size": "50000000000", - "conversion_factor": "6", - "debt_limit": { - "amount": "2000000000000", - "denom": "usdx" - }, - "denom": "ukava", - "liquidation_market_id": "kava:usd:30", - "liquidation_penalty": "0.050000000000000000", + "denom": "xrpb", + "type": "xrpb-a", "liquidation_ratio": "1.500000000000000000", - "keeper_reward_percentage": "0.01", - "check_collateralization_index_count": "10", - "spot_market_id": "kava:usd", - "stability_fee": "1.000000000782997700", - "type": "ukava-a" - }, - { - "auction_size": "50000000000", - "conversion_factor": "6", "debt_limit": { - "amount": "2000000000000", - "denom": "usdx" + "denom": "usdx", + "amount": "5000000000000" }, - "denom": "ibc/C72DE26FFF16DE62BE2784E12229BDF5F4465CE8B10530426D6DB53255FF01B2", - "liquidation_market_id": "luna:usd:30", - "spot_market_id": "luna:usd", - "liquidation_penalty": "0.050000000000000000", - "liquidation_ratio": "1.500000000000000000", - "keeper_reward_percentage": "0.01", + "stability_fee": "1.000000000782997609", + "auction_size": "4000000000000", + "liquidation_penalty": "0.025000000000000000", + "spot_market_id": "xrp:usd", + "liquidation_market_id": "xrp:usd:30", + "keeper_reward_percentage": "0.010000000000000000", "check_collateralization_index_count": "10", - "stability_fee": "1.000000000782997700", - "type": "luna-a" + "conversion_factor": "8" }, { - "auction_size": "50000000000", - "conversion_factor": "6", - "debt_limit": { - "amount": "2000000000000", - "denom": "usdx" - }, - "denom": "ibc/4129EB76C01ED14052054BB975DE0C6C5010E12FFD9253C20C58BCD828BEE9A5", - "liquidation_market_id": "akt:usd:30", - "spot_market_id": "akt:usd", - "liquidation_penalty": "0.050000000000000000", + "denom": "ukava", + "type": "ukava-a", "liquidation_ratio": "1.500000000000000000", - "keeper_reward_percentage": "0.01", - "check_collateralization_index_count": "10", - "stability_fee": "1.000000000782997700", - "type": "akt-a" - }, - { - "auction_size": "50000000000", - "conversion_factor": "6", "debt_limit": { - "amount": "2000000000000", - "denom": "usdx" + "denom": "usdx", + "amount": "250000000000" }, - "denom": "ibc/ED07A3391A112B175915CD8FAF43A2DA8E4790EDE12566649D0C2F97716B8518", - "liquidation_market_id": "osmo:usd:30", - "spot_market_id": "osmo:usd", - "liquidation_penalty": "0.050000000000000000", - "liquidation_ratio": "1.500000000000000000", - "keeper_reward_percentage": "0.01", + "stability_fee": "1.000000000782997609", + "auction_size": "5000000000", + "liquidation_penalty": "0.025000000000000000", + "spot_market_id": "kava:usd", + "liquidation_market_id": "kava:usd:30", + "keeper_reward_percentage": "0.010000000000000000", "check_collateralization_index_count": "10", - "stability_fee": "1.000000000782997700", - "type": "osmo-a" + "conversion_factor": "6" }, { - "auction_size": "50000000000", - "conversion_factor": "6", + "denom": "hard", + "type": "hard-a", + "liquidation_ratio": "1.500000000000000000", "debt_limit": { - "amount": "2000000000000", - "denom": "usdx" + "denom": "usdx", + "amount": "100000000000" }, - "denom": "ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2", - "liquidation_market_id": "atom:usd:30", - "spot_market_id": "atom:usd", - "liquidation_penalty": "0.050000000000000000", - "liquidation_ratio": "1.500000000000000000", - "keeper_reward_percentage": "0.01", + "stability_fee": "1.000000000782997609", + "auction_size": "5000000000", + "liquidation_penalty": "0.025000000000000000", + "spot_market_id": "hard:usd", + "liquidation_market_id": "hard:usd:30", + "keeper_reward_percentage": "0.010000000000000000", "check_collateralization_index_count": "10", - "stability_fee": "1.000000000782997700", - "type": "atom-a" + "conversion_factor": "6" }, { - "auction_size": "50000000000", - "conversion_factor": "6", + "denom": "hbtc", + "type": "hbtc-a", + "liquidation_ratio": "1.500000000000000000", "debt_limit": { - "amount": "2000000000000", - "denom": "usdx" + "denom": "usdx", + "amount": "10000000000000" }, - "denom": "hard", - "liquidation_market_id": "hard:usd:30", - "liquidation_penalty": "0.050000000000000000", - "liquidation_ratio": "1.500000000000000000", - "keeper_reward_percentage": "0.01", + "stability_fee": "1.000000001547125958", + "auction_size": "100000000", + "liquidation_penalty": "0.025000000000000000", + "spot_market_id": "btc:usd", + "liquidation_market_id": "btc:usd:30", + "keeper_reward_percentage": "0.010000000000000000", "check_collateralization_index_count": "10", - "spot_market_id": "hard:usd", - "stability_fee": "1.000000000782997700", - "type": "hard-a" + "conversion_factor": "8" }, { - "auction_size": "50000000000", - "conversion_factor": "6", + "denom": "swp", + "type": "swp-a", + "liquidation_ratio": "1.500000000000000000", "debt_limit": { - "amount": "2000000000000", - "denom": "usdx" + "denom": "usdx", + "amount": "10000000" }, - "denom": "swp", + "stability_fee": "1.000000001547125958", + "auction_size": "50000000000", + "liquidation_penalty": "0.025000000000000000", + "spot_market_id": "swp:usd", "liquidation_market_id": "swp:usd:30", - "liquidation_penalty": "0.050000000000000000", - "liquidation_ratio": "1.500000000000000000", - "keeper_reward_percentage": "0.01", + "keeper_reward_percentage": "0.010000000000000000", "check_collateralization_index_count": "10", - "spot_market_id": "swp:usd", - "stability_fee": "1.000000000782997700", - "type": "swp-a" + "conversion_factor": "6" }, { - "denom": "hbtc", - "type": "hbtc-a", - "liquidation_ratio": "1.500000000000000000", + "denom": "erc20/tether/usdt", + "type": "usdt-a", + "liquidation_ratio": "1.010000000000000000", "debt_limit": { "denom": "usdx", - "amount": "10000000000000" + "amount": "25000000000000" }, - "stability_fee": "1.000000001547125958", - "auction_size": "1000000000000", - "liquidation_penalty": "0.075000000000000000", + "stability_fee": "1.000000000000000000", + "auction_size": "100000000000", + "liquidation_penalty": "0.025000000000000000", + "spot_market_id": "usdt:usd", + "liquidation_market_id": "usdt:usd:30", + "keeper_reward_percentage": "0.010000000000000000", "check_collateralization_index_count": "10", - "keeper_reward_percentage": "0.01", - "spot_market_id": "btc:usd", - "liquidation_market_id": "btc:usd:30", - "conversion_factor": "8" + "conversion_factor": "6" } ], "debt_auction_lot": "10000000000", @@ -1070,7 +994,7 @@ "reference_asset": "usd" }, "global_debt_limit": { - "amount": "53000000000000", + "amount": "181200010000000", "denom": "usdx" }, "surplus_auction_lot": "10000000000", @@ -1092,15 +1016,6 @@ { "@type": "/kava.committee.v1beta1.TextPermission" }, - { - "@type": "/kava.committee.v1beta1.CommunityPoolLendWithdrawPermission" - }, - { - "@type": "/kava.committee.v1beta1.CommunityCDPRepayDebtPermission" - }, - { - "@type": "/kava.committee.v1beta1.CommunityCDPWithdrawCollateralPermission" - }, { "@type": "/kava.committee.v1beta1.ParamsChangePermission", "allowed_params_changes": [ @@ -1326,6 +1241,7 @@ "last_truncation_error": "0" } }, + "consensus": null, "crisis": { "constant_fee": { "denom": "ukava", @@ -1882,164 +1798,290 @@ "nested_types": [] }, { - "msg_type_url": "/kava.router.v1beta1.MsgWithdrawBurnUndelegate", - "msg_value_type_name": "MsgValueRouterWithdrawBurnUndelegate", + "msg_type_url": "/kava.router.v1beta1.MsgWithdrawBurnUndelegate", + "msg_value_type_name": "MsgValueRouterWithdrawBurnUndelegate", + "value_types": [ + { + "name": "from", + "type": "string" + }, + { + "name": "validator", + "type": "string" + }, + { + "name": "amount", + "type": "Coin" + } + ], + "nested_types": [] + }, + { + "msg_type_url": "/cosmos.gov.v1beta1.MsgVote", + "msg_value_type_name": "MsgValueGovVote", + "value_types": [ + { + "name": "proposal_id", + "type": "uint64" + }, + { + "name": "voter", + "type": "string" + }, + { + "name": "option", + "type": "int32" + } + ], + "nested_types": [] + }, + { + "msg_type_url": "/cosmos.bank.v1beta1.MsgSend", + "msg_value_type_name": "MsgValueBankSend", + "value_types": [ + { + "name": "from_address", + "type": "string" + }, + { + "name": "to_address", + "type": "string" + }, + { + "name": "amount", + "type": "Coin[]" + } + ], + "nested_types": [] + }, + { + "msg_type_url": "/kava.liquid.v1beta1.MsgMintDerivative", + "msg_value_type_name": "MsgValueMintDerivative", + "value_types": [ + { + "name": "sender", + "type": "string" + }, + { + "name": "validator", + "type": "string" + }, + { + "name": "amount", + "type": "Coin" + } + ], + "nested_types": [] + }, + { + "msg_type_url": "/kava.liquid.v1beta1.MsgBurnDerivative", + "msg_value_type_name": "MsgValueBurnDerivative", + "value_types": [ + { + "name": "sender", + "type": "string" + }, + { + "name": "validator", + "type": "string" + }, + { + "name": "amount", + "type": "Coin" + } + ], + "nested_types": [] + }, + { + "msg_type_url": "/kava.hard.v1beta1.MsgWithdraw", + "msg_value_type_name": "MsgValueHardWithdraw", + "value_types": [ + { + "name": "depositor", + "type": "string" + }, + { + "name": "amount", + "type": "Coin[]" + } + ], + "nested_types": [] + }, + { + "msg_type_url": "/kava.hard.v1beta1.MsgDeposit", + "msg_value_type_name": "MsgValueHardDeposit", "value_types": [ { - "name": "from", - "type": "string" - }, - { - "name": "validator", + "name": "depositor", "type": "string" }, { "name": "amount", - "type": "Coin" + "type": "Coin[]" } ], "nested_types": [] }, { - "msg_type_url": "/cosmos.gov.v1beta1.MsgVote", - "msg_value_type_name": "MsgValueGovVote", + "msg_type_url": "/kava.evmutil.v1beta1.MsgConvertCosmosCoinToERC20", + "msg_value_type_name": "MsgConvertCosmosCoinToERC20", "value_types": [ { - "name": "proposal_id", - "type": "uint64" + "name": "initiator", + "type": "string" }, { - "name": "voter", + "name": "receiver", "type": "string" }, { - "name": "option", - "type": "int32" + "name": "amount", + "type": "Coin" } ], "nested_types": [] }, { - "msg_type_url": "/cosmos.bank.v1beta1.MsgSend", - "msg_value_type_name": "MsgValueBankSend", + "msg_type_url": "/kava.evmutil.v1beta1.MsgConvertCosmosCoinFromERC20", + "msg_value_type_name": "MsgConvertCosmosCoinFromERC20", "value_types": [ { - "name": "from_address", + "name": "initiator", "type": "string" }, { - "name": "to_address", + "name": "receiver", "type": "string" }, { "name": "amount", - "type": "Coin[]" + "type": "Coin" } ], "nested_types": [] }, { - "msg_type_url": "/kava.liquid.v1beta1.MsgMintDerivative", - "msg_value_type_name": "MsgValueMintDerivative", + "msg_type_url": "/kava.cdp.v1beta1.MsgCreateCDP", + "msg_value_type_name": "MsgValueCdpCreateCDP", "value_types": [ { "name": "sender", "type": "string" }, { - "name": "validator", - "type": "string" + "name": "collateral", + "type": "Coin" }, { - "name": "amount", + "name": "principal", "type": "Coin" + }, + { + "name": "collateral_type", + "type": "string" } ], "nested_types": [] }, { - "msg_type_url": "/kava.liquid.v1beta1.MsgBurnDerivative", - "msg_value_type_name": "MsgValueBurnDerivative", + "msg_type_url": "/kava.cdp.v1beta1.MsgDeposit", + "msg_value_type_name": "MsgValueCdpDeposit", "value_types": [ { - "name": "sender", + "name": "depositor", "type": "string" }, { - "name": "validator", + "name": "owner", "type": "string" }, { - "name": "amount", + "name": "collateral", "type": "Coin" + }, + { + "name": "collateral_type", + "type": "string" } ], "nested_types": [] }, { - "msg_type_url": "/kava.hard.v1beta1.MsgWithdraw", - "msg_value_type_name": "MsgValueHardWithdraw", + "msg_type_url": "/kava.cdp.v1beta1.MsgWithdraw", + "msg_value_type_name": "MsgValueCdpWithdraw", "value_types": [ { "name": "depositor", "type": "string" }, { - "name": "amount", - "type": "Coin[]" + "name": "owner", + "type": "string" + }, + { + "name": "collateral", + "type": "Coin" + }, + { + "name": "collateral_type", + "type": "string" } ], "nested_types": [] }, { - "msg_type_url": "/kava.hard.v1beta1.MsgDeposit", - "msg_value_type_name": "MsgValueHardDeposit", + "msg_type_url": "/kava.cdp.v1beta1.MsgDrawDebt", + "msg_value_type_name": "MsgValueCdpDrawDebt", "value_types": [ { - "name": "depositor", + "name": "sender", "type": "string" }, { - "name": "amount", - "type": "Coin[]" + "name": "collateral_type", + "type": "string" + }, + { + "name": "principal", + "type": "Coin" } ], "nested_types": [] }, { - "msg_type_url": "/kava.evmutil.v1beta1.MsgConvertCosmosCoinToERC20", - "msg_value_type_name": "MsgConvertCosmosCoinToERC20", + "msg_type_url": "/kava.cdp.v1beta1.MsgRepayDebt", + "msg_value_type_name": "MsgValueCdpRepayDebt", "value_types": [ { - "name": "initiator", + "name": "sender", "type": "string" }, { - "name": "receiver", + "name": "collateral_type", "type": "string" }, { - "name": "amount", + "name": "payment", "type": "Coin" } ], "nested_types": [] }, { - "msg_type_url": "/kava.evmutil.v1beta1.MsgConvertCosmosCoinFromERC20", - "msg_value_type_name": "MsgConvertCosmosCoinFromERC20", + "msg_type_url": "/kava.committee.v1beta1.MsgVote", + "msg_value_type_name": "MsgValueCommitteeVote", "value_types": [ { - "name": "initiator", - "type": "string" + "name": "proposal_id", + "type": "uint64" }, { - "name": "receiver", + "name": "voter", "type": "string" }, { - "name": "amount", - "type": "Coin" + "name": "vote_type", + "type": "int32" } ], "nested_types": [] @@ -2059,24 +2101,7 @@ "decimals": 6 } ], - "enabled_conversion_pairs": [ - { - "kava_erc20_address": "0xBb304f44b7EFD865361F2AD973d8ebA433893ABC", - "denom": "erc20/multichain/usdc" - }, - { - "kava_erc20_address": "0x7a5DBf8e6ac1F6aCCF14f5B4E88b21EAA04c983d", - "denom": "erc20/axelar/usdc" - }, - { - "kava_erc20_address": "0x7d2Ee2914324d5D4dC33A5c295E720659D5F3fA7", - "denom": "erc20/axelar/wbtc" - }, - { - "kava_erc20_address": "0x5d6D67a665C9F169B0f9436E05B11108C1606043", - "denom": "erc20/axelar/eth" - } - ] + "enabled_conversion_pairs": [] } }, "feemarket": { @@ -2111,19 +2136,19 @@ "max_change_rate": "0.010000000000000000" }, "min_self_delegation": "1", - "delegator_address": "kava14w4avgdvqrlpww6l5dhgj4egfn6ln7gmxhytjv", - "validator_address": "kavavaloper14w4avgdvqrlpww6l5dhgj4egfn6ln7gmtp7r2m", + "delegator_address": "kava1jaw3g097lq9jdrnscchspr2233yhpsxdjky582", + "validator_address": "kavavaloper1jaw3g097lq9jdrnscchspr2233yhpsxdlq7ula", "pubkey": { "@type": "/cosmos.crypto.ed25519.PubKey", - "key": "SzSj9ej4GZAopruFI2pltVGj4fMq7m0JQePS9lELUiA=" + "key": "hMOtqZ71soHEW/Rg3IcI1SyHV3adzuMlnaqIqCsY6+o=" }, "value": { "denom": "ukava", - "amount": "500000000" + "amount": "1000000000" } } ], - "memo": "eb90b49b002177a8393688ae104ee7070776ecb5@10.6.2.44:26656", + "memo": "5556c6e73298a5e9bdd284fa116fa5d6b6279a09@10.6.193.253:26656", "timeout_height": "0", "extension_options": [], "non_critical_extension_options": [] @@ -2133,7 +2158,7 @@ { "public_key": { "@type": "/cosmos.crypto.secp256k1.PubKey", - "key": "AidonN+Oz5lw/Ir+RQ7kGPDThMbEDJe3gHipix8Lp3Ve" + "key": "AxAulQQXGuXDRb6sql0s2kv/xUdX+HaXaY4eHrRuULlA" }, "mode_info": { "single": { @@ -2152,7 +2177,7 @@ "tip": null }, "signatures": [ - "VxM2ul5bT0qU4ZPxcT6jhs8byiKSwPIU49Lnq4OuyQ91mhHGSrxWfEkhuNsEyhZijwZhLOxe4vt4EdnfT6bUMw==" + "BxlEzOGOn0tYEtcaVTY5/NiLvAzkbeXekDk9qC5LDEV7mnzY7wB1WUU971oCpo+f52mL4tDIJOEsVvulBupmyw==" ] } ] @@ -2162,23 +2187,11 @@ "deposits": [], "votes": [], "proposals": [], - "deposit_params": { - "min_deposit": [ - { - "denom": "ukava", - "amount": "10000000" - } - ], - "max_deposit_period": "172800s" - }, + "deposit_params": null, "voting_params": { - "voting_period": "600s" - }, - "tally_params": { - "quorum": "0.334000000000000000", - "threshold": "0.500000000000000000", - "veto_threshold": "0.334000000000000000" + "voting_period": "604800s" }, + "tally_params": null, "params": { "min_deposit": [ { @@ -2187,7 +2200,7 @@ } ], "max_deposit_period": "172800s", - "voting_period": "600s", + "voting_period": "604800s", "quorum": "0.334000000000000000", "threshold": "0.500000000000000000", "veto_threshold": "0.334000000000000000", @@ -2254,6 +2267,60 @@ "reserve_factor": "0.025000000000000000", "keeper_reward_percentage": "0.020000000000000000" }, + { + "denom": "erc20/multichain/wbtc", + "borrow_limit": { + "has_max_limit": true, + "maximum_limit": "0.000000000000000000", + "loan_to_value": "0.000000000000000000" + }, + "spot_market_id": "btc:usd:30", + "conversion_factor": "1000000", + "interest_rate_model": { + "base_rate_apy": "0.000000000000000000", + "base_multiplier": "0.050000000000000000", + "kink": "0.800000000000000000", + "jump_multiplier": "5.000000000000000000" + }, + "reserve_factor": "0.025000000000000000", + "keeper_reward_percentage": "0.020000000000000000" + }, + { + "denom": "erc20/multichain/usdc", + "borrow_limit": { + "has_max_limit": true, + "maximum_limit": "0.000000000000000000", + "loan_to_value": "0.000000000000000000" + }, + "spot_market_id": "usdc:usd:30", + "conversion_factor": "1000000", + "interest_rate_model": { + "base_rate_apy": "0.000000000000000000", + "base_multiplier": "0.050000000000000000", + "kink": "0.800000000000000000", + "jump_multiplier": "5.000000000000000000" + }, + "reserve_factor": "0.025000000000000000", + "keeper_reward_percentage": "0.020000000000000000" + }, + { + "denom": "erc20/multichain/usdt", + "borrow_limit": { + "has_max_limit": true, + "maximum_limit": "0.000000000000000000", + "loan_to_value": "0.000000000000000000" + }, + "spot_market_id": "usdt:usd:30", + "conversion_factor": "1000000", + "interest_rate_model": { + "base_rate_apy": "0.000000000000000000", + "base_multiplier": "0.050000000000000000", + "kink": "0.800000000000000000", + "jump_multiplier": "5.000000000000000000" + }, + "reserve_factor": "0.025000000000000000", + "keeper_reward_percentage": "0.020000000000000000" + }, { "denom": "bnb", "borrow_limit": { @@ -2397,6 +2464,42 @@ }, "reserve_factor": "0.025000000000000000", "keeper_reward_percentage": "0.020000000000000000" + }, + { + "denom": "erc20/tether/usdt", + "borrow_limit": { + "has_max_limit": true, + "maximum_limit": "0.000000000000000000", + "loan_to_value": "0.000000000000000000" + }, + "spot_market_id": "usdt:usd:30", + "conversion_factor": "1000000", + "interest_rate_model": { + "base_rate_apy": "0.000000000000000000", + "base_multiplier": "0.050000000000000000", + "kink": "0.800000000000000000", + "jump_multiplier": "5.000000000000000000" + }, + "reserve_factor": "0.025000000000000000", + "keeper_reward_percentage": "0.020000000000000000" + }, + { + "denom": "erc20/bitgo/wbtc", + "borrow_limit": { + "has_max_limit": true, + "maximum_limit": "0.000000000000000000", + "loan_to_value": "0.000000000000000000" + }, + "spot_market_id": "btc:usd:30", + "conversion_factor": "100000000", + "interest_rate_model": { + "base_rate_apy": "0.000000000000000000", + "base_multiplier": "0.050000000000000000", + "kink": "0.800000000000000000", + "jump_multiplier": "5.000000000000000000" + }, + "reserve_factor": "0.025000000000000000", + "keeper_reward_percentage": "0.020000000000000000" } ], "minimum_borrow_usd_value": "10.000000000000000000" @@ -2564,6 +2667,66 @@ "amount": "787" } ] + }, + { + "active": true, + "collateral_type": "erc20/multichain/usdc", + "start": "2022-11-11T15:00:00Z", + "end": "2024-11-11T15:00:00Z", + "rewards_per_second": [ + { + "denom": "ukava", + "amount": "787" + } + ] + }, + { + "active": true, + "collateral_type": "erc20/multichain/usdt", + "start": "2022-11-11T15:00:00Z", + "end": "2024-11-11T15:00:00Z", + "rewards_per_second": [ + { + "denom": "ukava", + "amount": "787" + } + ] + }, + { + "active": true, + "collateral_type": "erc20/multichain/wbtc", + "start": "2022-11-11T15:00:00Z", + "end": "2024-11-11T15:00:00Z", + "rewards_per_second": [ + { + "denom": "ukava", + "amount": "787" + } + ] + }, + { + "active": true, + "collateral_type": "erc20/tether/usdt", + "start": "2023-06-21T15:00:00Z", + "end": "2024-06-21T15:00:00Z", + "rewards_per_second": [ + { + "denom": "ukava", + "amount": "787" + } + ] + }, + { + "active": true, + "collateral_type": "erc20/bitgo/wbtc", + "start": "2022-11-11T15:00:00Z", + "end": "2025-11-11T15:00:00Z", + "rewards_per_second": [ + { + "denom": "ukava", + "amount": "787" + } + ] } ], "hard_borrow_reward_periods": [], @@ -2985,6 +3148,7 @@ "previous_block_time": "1970-01-01T00:00:01Z" }, "liquid": {}, + "metrics": {}, "mint": { "minter": { "inflation": "0.130000000000000000", @@ -2999,14 +3163,15 @@ "blocks_per_year": "6311520" } }, - "params": null, "packetfowardmiddleware": { "params": { "fee_percentage": "0.000000000000000000" }, "in_flight_packets": {} }, + "params": null, "precisebank": { + "balances": [], "remainder": "0" }, "pricefeed": { @@ -3482,6 +3647,7 @@ } ] }, + "router": {}, "savings": { "params": { "supported_denoms": [ @@ -3653,7 +3819,8 @@ "params": { "send_enabled": true, "receive_enabled": true - } + }, + "total_escrowed": [] }, "upgrade": {}, "validatorvesting": null, diff --git a/tests/e2e/kvtool b/tests/e2e/kvtool index 20d8e0dcff..7a258021c1 160000 --- a/tests/e2e/kvtool +++ b/tests/e2e/kvtool @@ -1 +1 @@ -Subproject commit 20d8e0dcff557a456041e7bfea48bf3c6207ef8a +Subproject commit 7a258021c15c671f5146626738c4bbf607b66731