diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index c59c1d388..24c397009 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -71,7 +71,7 @@ jobs: ./scripts/install-wasm-tools.sh - name: Build Contracts run: | - make build-test-contract + make build-test-contracts cp x/compute/internal/keeper/testdata/erc20.wasm . - uses: actions/upload-artifact@v3 with: @@ -81,6 +81,10 @@ jobs: with: name: contract.wasm path: cosmwasm/contracts/v010/compute-tests/test-compute-contract/contract.wasm + - uses: actions/upload-artifact@v3 + with: + name: contract-v2.wasm + path: cosmwasm/contracts/v010/compute-tests/test-compute-contract-v2/contract-v2.wasm - uses: actions/upload-artifact@v3 with: name: v1-contract.wasm @@ -133,10 +137,12 @@ jobs: docker run -v $PWD:/opt/mount --rm --entrypoint cp ghcr.io/scrtlabs/localsecret:v0.0.0 /usr/lib/librust_cosmwasm_enclave.signed.so /opt/mount/librust_cosmwasm_enclave.signed.so docker run -v $PWD:/opt/mount --rm --entrypoint cp ghcr.io/scrtlabs/localsecret:v0.0.0 /usr/lib/librandom_api.so /opt/mount/librandom_api.so docker run -v $PWD:/opt/mount --rm --entrypoint cp ghcr.io/scrtlabs/localsecret:v0.0.0 /usr/lib/tendermint_enclave.signed.so /opt/mount/tendermint_enclave.signed.so - - uses: actions/download-artifact@v3 with: name: contract.wasm + - uses: actions/download-artifact@v3 + with: + name: contract-v2.wasm - uses: actions/download-artifact@v3 with: name: v1-contract.wasm @@ -162,6 +168,7 @@ jobs: # cp /opt/mount/librandom_api.so /usr/lib/librandom_api.so # cp /opt/mount/tendermint_enclave.signed.so /usr/lib/tendermint_enclave.signed.so cp contract.wasm ./x/compute/internal/keeper/testdata/contract.wasm + cp contract-v2.wasm ./x/compute/internal/keeper/testdata/contract-v2.wasm cp too-high-initial-memory.wasm ./x/compute/internal/keeper/testdata/too-high-initial-memory.wasm cp contract_with_floats.wasm ./x/compute/internal/keeper/testdata/contract_with_floats.wasm cp static-too-high-initial-memory.wasm ./x/compute/internal/keeper/testdata/static-too-high-initial-memory.wasm @@ -175,12 +182,13 @@ jobs: source "$HOME/.sgxsdk/sgxsdk/environment" export SGX_MODE=SW cp librust_cosmwasm_enclave.signed.so ./x/compute/internal/keeper + # cp tendermint_enclave.signed.so ./x/compute/internal/keeper mkdir -p ias_keys/develop mkdir -p /opt/secret/.sgx_secrets/ echo "not_a_key" > ias_keys/develop/spid.txt echo "not_a_key" > ias_keys/develop/api_key.txt LOG_LEVEL=ERROR go test -v -tags "test" ./x/compute/client/... - LOG_LEVEL=ERROR go test -p 1 -timeout 90m -v -tags "test" ./x/compute/internal/... + LOG_LEVEL=ERROR SKIP_LIGHT_CLIENT_VALIDATION=TRUE go test -p 1 -timeout 90m -v -tags "test" ./x/compute/internal/... Clippy: runs-on: ubuntu-20.04 @@ -276,7 +284,7 @@ jobs: build-args: | SECRET_NODE_TYPE=BOOTSTRAP CHAIN_ID=secretdev-1 - FEATURES=debug-print,random + FEATURES_U=debug-print,random,light-client-validation,go-tests SGX_MODE=SW target: build-localsecret cache-from: type=gha @@ -341,7 +349,7 @@ jobs: make kill-localsecret # next step needs the localsecret ports - name: Run secret.js tests run: | - git clone --depth 1 --branch master https://github.com/scrtlabs/secret.js + git clone --depth 1 --branch contract-upgrade-v2 https://github.com/scrtlabs/secret.js cd secret.js # Use the docker images that we built just a few steps above perl -i -pe 's/localsecret:.+?"/localsecret:v0.0.0"/' ./test/docker-compose.yml diff --git a/.github/workflows/go-lint.yml b/.github/workflows/go-lint.yml index 6fa25afc8..13f6d0f9a 100644 --- a/.github/workflows/go-lint.yml +++ b/.github/workflows/go-lint.yml @@ -19,8 +19,11 @@ jobs: with: go-version: 1.19 - uses: actions/checkout@v3 + - name: make bin-data-sw + run: | + go install github.com/jteeuwen/go-bindata/go-bindata@latest + make bin-data-sw - name: golangci-lint uses: golangci/golangci-lint-action@v3 with: - # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version version: v1.53.2 diff --git a/.gitignore b/.gitignore index ecc8fd07a..35fada994 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ secretcli* libenclave.a libEnclave_u.a librust_cosmwasm_enclave.signed.so +tendermint_enclave.signed.so *.o /release SHA256SUMS* diff --git a/.golangci.yml b/.golangci.yml index 0dca22359..f5f2f04a2 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,7 +1,9 @@ run: tests: false - # # timeout for analysis, e.g. 30s, 5m, default is 1m timeout: 5m + skip-files: + - x/registration/internal/types/reg_keys.go # uses auto generated code + - x/registration/internal/types/ias_bin.*?.go # auto generated linters: disable-all: true diff --git a/.vscode/launch.json b/.vscode/launch.json index 86976b48d..e41d93959 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -11,9 +11,16 @@ "mode": "debug", "program": "${file}", "cwd": "${workspaceFolder}/x/compute/internal/keeper", - "env": { "SGX_MODE": "SW", "RUST_BACKTRACE": "1" }, + "env": { + "SGX_MODE": "SW", + "RUST_BACKTRACE": "1", + "LOG_LEVEL": "TRACE", + "SKIP_LIGHT_CLIENT_VALIDATION": "true" + }, "args": [ "test", + "-tags", + "sgx", "-timeout", "1200s", "-p", diff --git a/.vscode/settings.json b/.vscode/settings.json index 82e6f6b73..6b3e9d7dc 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,14 +7,20 @@ "third_party/build/Cargo.toml", "cosmwasm/enclaves/Cargo.toml", "cosmwasm/contracts/v1/compute-tests/test-compute-contract/Cargo.toml", + "cosmwasm/contracts/v1/compute-tests/test-compute-contract-v2/Cargo.toml", "cosmwasm/contracts/v1/compute-tests/ibc-test-contract/Cargo.toml", "cosmwasm/contracts/v1/compute-tests/bench-contract/Cargo.toml", "cosmwasm/contracts/v010/compute-tests/test-compute-contract/Cargo.toml", + "cosmwasm/contracts/v010/compute-tests/test-compute-contract-v2/Cargo.toml", + "cosmwasm/contracts/v1/compute-tests/migration/contract-v1/Cargo.toml", + "cosmwasm/contracts/v1/compute-tests/migration/contract-v2/Cargo.toml", "integration-tests/contract-v1/Cargo.toml", "integration-tests/contract-v0.10/Cargo.toml", "go-cosmwasm/Cargo.toml", "cosmwasm/enclaves/shared/cosmos-proto/Cargo.toml", - "cosmwasm/enclaves/shared/contract-engine/Cargo.toml" + "cosmwasm/enclaves/shared/contract-engine/Cargo.toml", + "cosmwasm/enclaves/shared/utils/Cargo.toml", + "cosmwasm/enclaves/shared/block-verifier/Cargo.toml" ], "rust-analyzer.diagnostics.experimental.enable": true, "rust-analyzer.rustfmt.rangeFormatting.enable": true, @@ -31,6 +37,7 @@ "SGX_MODE": "SW", "RUST_BACKTRACE": "1" }, + "go.buildTags": "sgx", "go.useLanguageServer": true, "go.lintTool": "golangci-lint", "go.lintOnSave": "workspace", diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e8413e9a..ffb0d8740 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,12 +3,20 @@ # 1.10.0 (Unreleased - WIP) - Added ibc-hooks middleware by Osmosis. - - WASM Hooks: allows ICS-20 token transfers to initiate contract calls, serving various use cases. + - WASM hooks: allows ICS-20 token transfers to initiate contract calls, serving various use cases. - Example: Sending tokens to Secret and immediately wrapping them as SNIP-20 token. For example, `ATOM on Hub -> ATOM on Secret -> sATOMS on Secret` (2 transactions on 2 chains) now becomes `ATOM on Hub -> sATOM on Secret` (1 transaction). - Example: Cross-chain swaps. Using IBC Hooks, an AMM on Secret can atomically swap tokens that originated on a different chain and are headed to Secret. The AMM can also send those tokens back to the originating chain. - [Axelar GMP](https://docs.axelar.dev/dev/general-message-passing/overview): Using IBC Hooks, a contract on Ethereum can call a contract on Secret and get a response back. - Ack callbacks: allow non-IBC contracts that send an `IbcMsg::Transfer` to listen for the ack/timeout of the token transfer. This allows these contracts to definitively know whether the transfer was successful or not and act accordingly (refund if failed, continue if succeeded). See usage example [here](https://github.com/scrtlabs/secret.js/blob/4293219/test/ibc-hooks-contract/src/contract.rs#L47-L91). -- Added and optional `memo` field to `IbcMsg::Transfer`, to ease to use of the IBC Hooks ack callbacks feature. See usage example [here](https://github.com/scrtlabs/secret.js/blob/4293219/test/ibc-hooks-contract/src/contract.rs#L60-L63). +- Added an optional `memo` field to `IbcMsg::Transfer`, to ease to use of the IBC Hooks ack callbacks feature. See usage example [here](https://github.com/scrtlabs/secret.js/blob/4293219/test/ibc-hooks-contract/src/contract.rs#L60-L63). +- Added contract upgrade feature. + - On init, the creator can specify an admin address. + - The admin can migrate the contract to a new code ID. + - The admin can update or clear the admin address. + - The admins of contracts that were instantiated before v1.10 are hardcoded according to [proposal TODO](https://www.mintscan.io/secret/proposals/TODO). + - Hardcoded admins can only be updated/cleared with a future gov proposal. + - When the new MsgMigrateContract is invoked, the `migrate()` function is being called on the new contract code, where the new contract can optionally perform state migrations. See usage example [here](https://github.com/scrtlabs/SecretNetwork/blob/139a0eb18/cosmwasm/contracts/v1/compute-tests/migration/contract-v2/src/contract.rs#L37-L43). +- Fixed a scenario where the enclave's light client might fail a valid node registration transaction. # 1.9.3 diff --git a/Makefile b/Makefile index 7e466e467..34f1c5ef8 100644 --- a/Makefile +++ b/Makefile @@ -32,7 +32,6 @@ TEST_COMPUTE_MODULE_PATH = ./x/compute/internal/keeper/testdata/ ENCLAVE_PATH = cosmwasm/enclaves/ EXECUTE_ENCLAVE_PATH = $(ENCLAVE_PATH)/execute/ -QUERY_ENCLAVE_PATH = $(ENCLAVE_PATH)/query/ DOCKER_BUILD_ARGS ?= DOCKER_BUILDX_CHECK = $(@shell docker build --load test) @@ -166,11 +165,13 @@ build-secret: build-linux build-linux: _build-linux build_local_no_rust build_cli _build-linux: - BUILD_PROFILE=$(BUILD_PROFILE) FEATURES=$(FEATURES) FEATURES_U=$(FEATURES_U) $(MAKE) -C go-cosmwasm build-rust + BUILD_PROFILE=$(BUILD_PROFILE) FEATURES="$(FEATURES)" FEATURES_U="$(FEATURES_U) light-client-validation go-tests" $(MAKE) -C go-cosmwasm build-rust -build-linux-with-query: _build-linux-with-query build_local_no_rust build_cli -_build-linux-with-query: - BUILD_PROFILE=$(BUILD_PROFILE) FEATURES=$(FEATURES) FEATURES_U=query-node,$(FEATURES_U) $(MAKE) -C go-cosmwasm build-rust +build-tm-secret-enclave: + git clone https://github.com/scrtlabs/tm-secret-enclave.git /tmp/tm-secret-enclave || true + cd /tmp/tm-secret-enclave && git checkout v1.9.3 && git submodule init && git submodule update --remote + rustup component add rust-src + SGX_MODE=$(SGX_MODE) $(MAKE) -C /tmp/tm-secret-enclave build build_windows_cli: $(MAKE) xgo_build_secretcli XGO_TARGET=windows/amd64 @@ -244,7 +245,7 @@ clean: localsecret: DOCKER_BUILDKIT=1 docker build \ - --build-arg FEATURES="${FEATURES},debug-print,random" \ + --build-arg FEATURES="${FEATURES},debug-print,random,light-client-validation" \ --build-arg FEATURES_U=${FEATURES_U} \ --secret id=API_KEY,src=.env.local \ --secret id=SPID,src=.env.local \ @@ -416,39 +417,70 @@ build-bench-contract: $(MAKE) -C $(TEST_CONTRACT_V1_PATH)/bench-contract cp $(TEST_CONTRACT_V1_PATH)/bench-contract/*.wasm $(TEST_COMPUTE_MODULE_PATH)/ -build-test-contract: +build-test-contracts: # echo "" | sudo add-apt-repository ppa:hnakamur/binaryen # sudo apt update # sudo apt install -y binaryen $(MAKE) -C $(TEST_CONTRACT_V010_PATH)/test-compute-contract - cp $(TEST_CONTRACT_V010_PATH)/test-compute-contract/*.wasm $(TEST_COMPUTE_MODULE_PATH)/ + + rm -f $(TEST_COMPUTE_MODULE_PATH)/contract.wasm + cp $(TEST_CONTRACT_V010_PATH)/test-compute-contract/contract.wasm $(TEST_COMPUTE_MODULE_PATH)/contract.wasm + + rm -f $(TEST_COMPUTE_MODULE_PATH)/contract_with_floats.wasm + cp $(TEST_CONTRACT_V010_PATH)/test-compute-contract/contract_with_floats.wasm $(TEST_COMPUTE_MODULE_PATH)/contract_with_floats.wasm + + rm -f $(TEST_COMPUTE_MODULE_PATH)/static-too-high-initial-memory.wasm + cp $(TEST_CONTRACT_V010_PATH)/test-compute-contract/static-too-high-initial-memory.wasm $(TEST_COMPUTE_MODULE_PATH)/static-too-high-initial-memory.wasm + + rm -f $(TEST_COMPUTE_MODULE_PATH)/too-high-initial-memory.wasm + cp $(TEST_CONTRACT_V010_PATH)/test-compute-contract/too-high-initial-memory.wasm $(TEST_COMPUTE_MODULE_PATH)/too-high-initial-memory.wasm + + $(MAKE) -C $(TEST_CONTRACT_V010_PATH)/test-compute-contract-v2 + + rm -f $(TEST_COMPUTE_MODULE_PATH)/contract-v2.wasm + cp $(TEST_CONTRACT_V010_PATH)/test-compute-contract-v2/contract-v2.wasm $(TEST_COMPUTE_MODULE_PATH)/contract-v2.wasm + $(MAKE) -C $(TEST_CONTRACT_V1_PATH)/test-compute-contract - cp $(TEST_CONTRACT_V1_PATH)/test-compute-contract/*.wasm $(TEST_COMPUTE_MODULE_PATH)/ + rm -f $(TEST_COMPUTE_MODULE_PATH)/v1-contract.wasm + cp $(TEST_CONTRACT_V1_PATH)/test-compute-contract/v1-contract.wasm $(TEST_COMPUTE_MODULE_PATH)/v1-contract.wasm + + $(MAKE) -C $(TEST_CONTRACT_V1_PATH)/test-compute-contract-v2 + rm -f $(TEST_COMPUTE_MODULE_PATH)/v1-contract-v2.wasm + cp $(TEST_CONTRACT_V1_PATH)/test-compute-contract-v2/v1-contract-v2.wasm $(TEST_COMPUTE_MODULE_PATH)/v1-contract-v2.wasm + $(MAKE) -C $(TEST_CONTRACT_V1_PATH)/ibc-test-contract - cp $(TEST_CONTRACT_V1_PATH)/ibc-test-contract/*.wasm $(TEST_COMPUTE_MODULE_PATH)/ + rm -f $(TEST_COMPUTE_MODULE_PATH)/ibc.wasm + cp $(TEST_CONTRACT_V1_PATH)/ibc-test-contract/ibc.wasm $(TEST_COMPUTE_MODULE_PATH)/ibc.wasm + + $(MAKE) -C $(TEST_CONTRACT_V1_PATH)/migration/contract-v1 + rm -f $(TEST_COMPUTE_MODULE_PATH)/migrate_contract_v1.wasm + cp $(TEST_CONTRACT_V1_PATH)/migration/contract-v1/migrate_contract_v1.wasm $(TEST_COMPUTE_MODULE_PATH)/migrate_contract_v1.wasm + + $(MAKE) -C $(TEST_CONTRACT_V1_PATH)/migration/contract-v2 + rm -f $(TEST_COMPUTE_MODULE_PATH)/migrate_contract_v2.wasm + cp $(TEST_CONTRACT_V1_PATH)/migration/contract-v2/migrate_contract_v2.wasm $(TEST_COMPUTE_MODULE_PATH)/migrate_contract_v2.wasm -prep-go-tests: build-test-contract bin-data-sw + +prep-go-tests: build-test-contracts bin-data-sw # empty BUILD_PROFILE means debug mode which compiles faster SGX_MODE=SW $(MAKE) build-linux cp ./$(EXECUTE_ENCLAVE_PATH)/librust_cosmwasm_enclave.signed.so ./x/compute/internal/keeper cp ./$(EXECUTE_ENCLAVE_PATH)/librust_cosmwasm_enclave.signed.so . -go-tests: build-test-contract bin-data-sw +go-tests: build-test-contracts bin-data-sw + # SGX_MODE=SW $(MAKE) build-tm-secret-enclave + # cp /tmp/tm-secret-enclave/tendermint_enclave.signed.so ./x/compute/internal/keeper SGX_MODE=SW $(MAKE) build-linux cp ./$(EXECUTE_ENCLAVE_PATH)/librust_cosmwasm_enclave.signed.so ./x/compute/internal/keeper - cp ./$(EXECUTE_ENCLAVE_PATH)/librust_cosmwasm_enclave.signed.so . - #cp ./$(QUERY_ENCLAVE_PATH)/librust_cosmwasm_query_enclave.signed.so ./x/compute/internal/keeper - rm -rf ./x/compute/internal/keeper/.sgx_secrets - mkdir -p ./x/compute/internal/keeper/.sgx_secrets - GOMAXPROCS=8 SGX_MODE=SW SCRT_SGX_STORAGE='./' go test -count 1 -failfast -timeout 90m -v ./x/compute/internal/... $(GO_TEST_ARGS) + GOMAXPROCS=8 SGX_MODE=SW SCRT_SGX_STORAGE='./' SKIP_LIGHT_CLIENT_VALIDATION=TRUE go test -count 1 -failfast -timeout 90m -v ./x/compute/internal/... $(GO_TEST_ARGS) -go-tests-hw: build-test-contract bin-data +go-tests-hw: build-test-contracts bin-data # empty BUILD_PROFILE means debug mode which compiles faster + # SGX_MODE=HW $(MAKE) build-tm-secret-enclave + # cp /tmp/tm-secret-enclave/tendermint_enclave.signed.so ./x/compute/internal/keeper SGX_MODE=HW $(MAKE) build-linux cp ./$(EXECUTE_ENCLAVE_PATH)/librust_cosmwasm_enclave.signed.so ./x/compute/internal/keeper - rm -rf ./x/compute/internal/keeper/.sgx_secrets - mkdir -p ./x/compute/internal/keeper/.sgx_secrets - GOMAXPROCS=8 SGX_MODE=HW go test -v ./x/compute/internal/... $(GO_TEST_ARGS) + GOMAXPROCS=8 SGX_MODE=HW SCRT_SGX_STORAGE='./' SKIP_LIGHT_CLIENT_VALIDATION=TRUE go test -v ./x/compute/internal/... $(GO_TEST_ARGS) # When running this more than once, after the first time you'll want to remove the contents of the `ffi-types` # rule in the Makefile in `enclaves/execute`. This is to speed up the compilation time of tests and speed up the @@ -457,7 +489,7 @@ go-tests-hw: build-test-contract bin-data enclave-tests: $(MAKE) -C cosmwasm/enclaves/test run -build-all-test-contracts: build-test-contract +build-all-test-contracts: build-test-contracts cd $(CW_CONTRACTS_V010_PATH)/gov && RUSTFLAGS='-C link-arg=-s' cargo build --release --target wasm32-unknown-unknown --locked wasm-opt -Os $(CW_CONTRACTS_V010_PATH)/gov/target/wasm32-unknown-unknown/release/gov.wasm -o $(TEST_CONTRACT_PATH)/gov.wasm @@ -483,7 +515,7 @@ build-all-test-contracts: build-test-contract wasm-opt -Os .$(CW_CONTRACTS_V010_PATH)/hackatom/target/wasm32-unknown-unknown/release/hackatom.wasm -o $(TEST_CONTRACT_PATH)/contract.wasm cat $(TEST_CONTRACT_PATH)/contract.wasm | gzip > $(TEST_CONTRACT_PATH)/contract.wasm.gzip -build-erc20-contract: build-test-contract +build-erc20-contract: build-test-contracts cd .$(CW_CONTRACTS_V010_PATH)/erc20 && RUSTFLAGS='-C link-arg=-s' cargo build --release --target wasm32-unknown-unknown --locked wasm-opt -Os .$(CW_CONTRACTS_V010_PATH)/erc20/target/wasm32-unknown-unknown/release/cw_erc20.wasm -o ./erc20.wasm diff --git a/client/docs/config.json b/client/docs/config.json index f3a5f5c3f..d3bfa613a 100644 --- a/client/docs/config.json +++ b/client/docs/config.json @@ -3,7 +3,7 @@ "info": { "title": "Secret Network", "description": "A REST interface for queries and transactions", - "version": "v1.8" + "version": "v1.10" }, "apis": [ { @@ -171,6 +171,17 @@ } } }, + { + "url": "../../tmp-swagger-gen/ibc/applications/fee/v1/query.swagger.json", + "operationIds": { + "rename": { + "Params": "../../tmp-swagger-gen/ibc/applications/fee/v1/query.swagger.jsonParams", + "Pool": "../../tmp-swagger-gen/ibc/applications/fee/v1/query.swagger.jsonPool", + "DelegatorValidators": "../../tmp-swagger-gen/ibc/applications/fee/v1/query.swagger.jsonDelegatorValidators", + "UpgradedConsensusState": "../../tmp-swagger-gen/ibc/applications/fee/v1/query.swagger.jsonUpgradedConsensusState" + } + } + }, { "url": "../../tmp-swagger-gen/ibc/applications/interchain_accounts/controller/v1/query.swagger.json", "operationIds": { @@ -193,6 +204,17 @@ } } }, + { + "url": "../../tmp-swagger-gen/ibc/applications/packetforward/v1/query.swagger.json", + "operationIds": { + "rename": { + "Params": "../../tmp-swagger-gen/ibc/applications/packetforward/v1/query.swagger.jsonParams", + "Pool": "../../tmp-swagger-gen/ibc/applications/packetforward/v1/query.swagger.jsonPool", + "DelegatorValidators": "../../tmp-swagger-gen/ibc/applications/packetforward/v1/query.swagger.jsonDelegatorValidators", + "UpgradedConsensusState": "../../tmp-swagger-gen/ibc/applications/packetforward/v1/query.swagger.jsonUpgradedConsensusState" + } + } + }, { "url": "../../tmp-swagger-gen/ibc/applications/transfer/v1/query.swagger.json", "operationIds": { @@ -248,6 +270,17 @@ } } }, + { + "url": "../../tmp-swagger-gen/secret/emergencybutton/v1beta1/query.swagger.json", + "operationIds": { + "rename": { + "Params": "../../tmp-swagger-gen/secret/emergencybutton/v1beta1/query.swagger.jsonParams", + "Pool": "../../tmp-swagger-gen/secret/emergencybutton/v1beta1/query.swagger.jsonPool", + "DelegatorValidators": "../../tmp-swagger-gen/secret/emergencybutton/v1beta1/query.swagger.jsonDelegatorValidators", + "UpgradedConsensusState": "../../tmp-swagger-gen/secret/emergencybutton/v1beta1/query.swagger.jsonUpgradedConsensusState" + } + } + }, { "url": "../../tmp-swagger-gen/secret/intertx/v1beta1/query.swagger.json", "operationIds": { diff --git a/client/docs/static/openapi/index.html b/client/docs/static/openapi/index.html index ea2ac4810..6bbbf8a9f 100644 --- a/client/docs/static/openapi/index.html +++ b/client/docs/static/openapi/index.html @@ -2114,7 +2114,7 @@ stored at the last height of this chain. UpgradedConsensusState RPC not supported with legacy querier This rpc is deprecated now that IBC has its own replacement -(https://github.com/cosmos/ibc-go/blob/2c880a22e9f9cc75f62b527ca94aa75ce1106001/proto/ibc/core/client/v1/query.proto#L54)
Download OpenAPI specification:Download
A REST interface for queries and transactions
+ " fill="currentColor">Download OpenAPI specification:Download
A REST interface for queries and transactions
Since: cosmos-sdk 0.43
pagination.key | string <byte> key is a value returned in PageResponse.next_key to begin querying the next page most efficiently. Only one of offset or key @@ -2792,13 +2793,99 @@ as this is the height under which next consensus state is stored |
channel_id required | string |
port_id required | string |
pagination.key | string <byte> key is a value returned in PageResponse.next_key to begin +querying the next page most efficiently. Only one of offset or key +should be set. + |
pagination.offset | string <uint64> offset is a numeric offset that can be used when key is unavailable. +It is less efficient than using key. Only one of offset or key should +be set. + |
pagination.limit | string <uint64> limit is the total number of results to be returned in the result page. +If left empty it will default to a value to be set by each app. + |
pagination.count_total | boolean count_total is set to true to indicate that the result set should include +a count of the total number of items available for pagination in UIs. +count_total is only respected when offset is used. It is ignored when key +is set. + |
pagination.reverse | boolean reverse is set to true if results are to be returned in the descending order. +Since: cosmos-sdk 0.43 + |
query_height | string <uint64> Height to query at. + |
packet_id.channel_id required | string channel unique identifier + |
packet_id.port_id required | string channel port identifier + |
packet_id.sequence required | string <uint64> packet sequence + |
query_height | string <uint64> block height at which to query. + |
pagination.key | string <byte> key is a value returned in PageResponse.next_key to begin +querying the next page most efficiently. Only one of offset or key +should be set. + |
pagination.offset | string <uint64> offset is a numeric offset that can be used when key is unavailable. +It is less efficient than using key. Only one of offset or key should +be set. + |
pagination.limit | string <uint64> limit is the total number of results to be returned in the result page. +If left empty it will default to a value to be set by each app. + |
pagination.count_total | boolean count_total is set to true to indicate that the result set should include +a count of the total number of items available for pagination in UIs. +count_total is only respected when offset is used. It is ignored when key +is set. + |
pagination.reverse | boolean reverse is set to true if results are to be returned in the descending order. +Since: cosmos-sdk 0.43 + |
query_height | string <uint64> block height at which to query. + |
pagination.key | string <byte> key is a value returned in PageResponse.next_key to begin +querying the next page most efficiently. Only one of offset or key +should be set. + |
pagination.offset | string <uint64> offset is a numeric offset that can be used when key is unavailable. +It is less efficient than using key. Only one of offset or key should +be set. + |
pagination.limit | string <uint64> limit is the total number of results to be returned in the result page. +If left empty it will default to a value to be set by each app. + |
pagination.count_total | boolean count_total is set to true to indicate that the result set should include +a count of the total number of items available for pagination in UIs. +count_total is only respected when offset is used. It is ignored when key +is set. + |
pagination.reverse | boolean reverse is set to true if results are to be returned in the descending order. +Since: cosmos-sdk 0.43 + |
query_height | string <uint64> block height at which to query. + |