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)
  • Documentation Powered by Redocly
    getQuery a specific contract code by id
  • Secret Network (v1.8)

    Download OpenAPI specification:Download

    A REST interface for queries and transactions

    + " fill="currentColor">

    Secret Network (v1.10)

    Download OpenAPI specification:Download

    A REST interface for queries and transactions

    Authentication

    kms

    Security Scheme Type HTTP
    HTTP Authorization Scheme basic

    gRPC Gateway API

    Accounts returns all the existing accounts

    Since: cosmos-sdk 0.43

    query Parameters
    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

    Responses

    InterchainAccount returns the interchain account address for a given owner address on a given connection

    path Parameters
    owner
    required
    string
    connection_id
    required
    string

    Responses

    FeeEnabledChannel returns true if the provided port and channel identifiers belong to a fee enabled channel

    path Parameters
    channel_id
    required
    string

    unique channel identifier

    +
    port_id
    required
    string

    unique port identifier

    +

    Responses

    Gets all incentivized packets for a specific channel

    path Parameters
    channel_id
    required
    string
    port_id
    required
    string
    query Parameters
    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.

    +

    Responses

    CounterpartyPayee returns the registered counterparty payee for forward relaying

    path Parameters
    channel_id
    required
    string

    unique channel identifier

    +
    relayer
    required
    string

    the relayer address to which the counterparty is registered

    +

    Responses

    Payee returns the registered payee address for a specific channel given the relayer address

    path Parameters
    channel_id
    required
    string

    unique channel identifier

    +
    relayer
    required
    string

    the relayer address to which the distribution address is registered

    +

    Responses

    IncentivizedPacket returns all packet fees for a packet given its identifier

    path Parameters
    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 Parameters
    query_height
    string <uint64>

    block height at which to query.

    +

    Responses

    TotalAckFees returns the total acknowledgement fees for a packet given its identifier

    path Parameters
    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

    +

    Responses

    TotalRecvFees returns the total receive fees for a packet given its identifier

    path Parameters
    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

    +

    Responses

    TotalTimeoutFees returns the total timeout fees for a packet given its identifier

    path Parameters
    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

    +

    Responses

    FeeEnabledChannels returns a list of all fee enabled channels

    query Parameters
    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.

    +

    Responses

    IncentivizedPackets returns all incentivized packets and their associated fees

    query Parameters
    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.

    +

    Responses

    InterchainAccount returns the interchain account address for a given owner address on a given connection

    path Parameters
    owner
    required
    string
    connection_id
    required
    string

    Responses

    Params queries all parameters of the ICA controller submodule.

    Responses

    Params queries all parameters of the ICA host submodule.

    Responses

    EscrowAddress returns the escrow address for a particular port and channel id.

    path Parameters
    channel_id
    required
    string

    unique channel identifier

    +

    Params queries all parameters of the router module.

    Responses

    EscrowAddress returns the escrow address for a particular port and channel id.

    path Parameters
    channel_id
    required
    string

    unique channel identifier

    port_id
    required
    string

    unique port identifier

    Responses

    Query contract address by label

    path Parameters
    label
    required
    string

    Responses

    Query code info by id

    path Parameters
    code_id
    required
    string <uint64>

    Responses

    ContractHistory gets the contract code history

    path Parameters
    contract_address
    required
    string

    address is the address of the contract to query

    +

    Responses

    Query code info by id

    path Parameters
    code_id
    required
    string <uint64>

    Responses

    Query contract info by address

    path Parameters
    contract_address
    required
    string

    address is the bech32 human readable address of the contract

    Responses

    Query secret contract

    path Parameters
    contract_address
    required
    string

    address is the bech32 human readable address of the contract

    query Parameters
    query
    string <byte>

    Responses

    QueryInterchainAccountFromAddress returns the interchain account for given owner address on a given connection pair

    query Parameters
    owner
    string
    connection_id
    string

    Responses

    Params defines a gRPC query method that returns the emergencybutton module's +parameters.

    Responses

    QueryInterchainAccountFromAddress returns the interchain account for given owner address on a given connection pair

    path Parameters
    owner
    required
    string
    connection_id
    required
    string

    Responses

    Returns the encrypted seed for a registered node by public key

    path Parameters
    pub_key
    required
    string <byte>

    Responses

    Returns the encrypted seed for a registered node by public key

    path Parameters
    pub_key
    required
    string <byte>

    Responses

    Returns the key used for registration

    Responses