From cfcfa64ecc83cc2e378f302f19285358a1eafd76 Mon Sep 17 00:00:00 2001 From: Alexander Peters Date: Mon, 22 Mar 2021 15:50:23 +0100 Subject: [PATCH] Restructure protobuf files (#466) * Restructure protobuf dir and generation * Format protobuf definitions --- Makefile | 31 +- buf.yaml | 13 +- {doc => docs}/README.md | 2 +- docs/proto/proto-docs.md | 1141 +++++++++++++++++ {doc => docs/proto}/proto.md | 0 docs/proto/protodoc-markdown.tmpl | 105 ++ proto/cosmwasm/wasm/v1beta1/genesis.proto | 60 + proto/cosmwasm/wasm/v1beta1/ibc.proto | 30 + proto/cosmwasm/wasm/v1beta1/proposal.proto | 121 ++ proto/cosmwasm/wasm/v1beta1/query.proto | 206 +++ .../cosmwasm/wasm/v1beta1}/tx.proto | 45 +- proto/cosmwasm/wasm/v1beta1/types.proto | 136 ++ scripts/README.md | 7 + scripts/protoc-swagger-gen.sh | 19 + scripts/protocgen.sh | 49 +- third_party/README.md | 8 + third_party/proto/confio/proofs.proto | 234 ++++ .../proto/cosmos/auth/v1beta1/auth.proto | 50 + .../proto/cosmos/auth/v1beta1/genesis.proto | 17 + .../proto/cosmos/auth/v1beta1/query.proto | 47 + .../proto/cosmos/bank/v1beta1/bank.proto | 85 ++ .../proto/cosmos/bank/v1beta1/genesis.proto | 38 + .../proto/cosmos/bank/v1beta1/query.proto | 150 +++ .../proto/cosmos/bank/v1beta1/tx.proto | 42 + .../proto/cosmos/base/abci/v1beta1/abci.proto | 137 ++ .../proto/cosmos/base/kv/v1beta1/kv.proto | 17 + .../base/query/v1beta1/pagination.proto | 50 + .../base/reflection/v1beta1/reflection.proto | 44 + .../base/snapshots/v1beta1/snapshot.proto | 20 + .../base/store/v1beta1/commit_info.proto | 29 + .../cosmos/base/store/v1beta1/snapshot.proto | 28 + .../base/tendermint/v1beta1/query.proto | 136 ++ .../proto/cosmos/base/v1beta1/coin.proto | 40 + .../capability/v1beta1/capability.proto | 30 + .../cosmos/capability/v1beta1/genesis.proto | 26 + .../proto/cosmos/crisis/v1beta1/genesis.proto | 15 + .../proto/cosmos/crisis/v1beta1/tx.proto | 25 + .../proto/cosmos/crypto/ed25519/keys.proto | 22 + .../proto/cosmos/crypto/multisig/keys.proto | 18 + .../crypto/multisig/v1beta1/multisig.proto | 25 + .../proto/cosmos/crypto/secp256k1/keys.proto | 22 + .../distribution/v1beta1/distribution.proto | 157 +++ .../cosmos/distribution/v1beta1/genesis.proto | 155 +++ .../cosmos/distribution/v1beta1/query.proto | 218 ++++ .../cosmos/distribution/v1beta1/tx.proto | 79 ++ .../cosmos/evidence/v1beta1/evidence.proto | 21 + .../cosmos/evidence/v1beta1/genesis.proto | 12 + .../proto/cosmos/evidence/v1beta1/query.proto | 51 + .../proto/cosmos/evidence/v1beta1/tx.proto | 32 + .../cosmos/genutil/v1beta1/genesis.proto | 16 + .../proto/cosmos/gov/v1beta1/genesis.proto | 26 + .../proto/cosmos/gov/v1beta1/gov.proto | 183 +++ .../proto/cosmos/gov/v1beta1/query.proto | 190 +++ third_party/proto/cosmos/gov/v1beta1/tx.proto | 75 ++ .../proto/cosmos/mint/v1beta1/genesis.proto | 16 + .../proto/cosmos/mint/v1beta1/mint.proto | 53 + .../proto/cosmos/mint/v1beta1/query.proto | 57 + .../proto/cosmos/params/v1beta1/params.proto | 27 + .../proto/cosmos/params/v1beta1/query.proto | 32 + .../cosmos/slashing/v1beta1/genesis.proto | 50 + .../proto/cosmos/slashing/v1beta1/query.proto | 63 + .../cosmos/slashing/v1beta1/slashing.proto | 55 + .../proto/cosmos/slashing/v1beta1/tx.proto | 26 + .../cosmos/staking/v1beta1/genesis.proto | 53 + .../proto/cosmos/staking/v1beta1/query.proto | 348 +++++ .../cosmos/staking/v1beta1/staking.proto | 334 +++++ .../proto/cosmos/staking/v1beta1/tx.proto | 126 ++ .../cosmos/tx/signing/v1beta1/signing.proto | 79 ++ .../proto/cosmos/tx/v1beta1/service.proto | 117 ++ third_party/proto/cosmos/tx/v1beta1/tx.proto | 181 +++ .../proto/cosmos/upgrade/v1beta1/query.proto | 68 + .../cosmos/upgrade/v1beta1/upgrade.proto | 62 + .../proto/cosmos/vesting/v1beta1/tx.proto | 31 + .../cosmos/vesting/v1beta1/vesting.proto | 73 ++ third_party/proto/cosmos_proto/cosmos.proto | 16 + third_party/proto/gogoproto/gogo.proto | 145 +++ .../proto/google/api/annotations.proto | 31 + third_party/proto/google/api/http.proto | 318 +++++ third_party/proto/google/api/httpbody.proto | 78 ++ third_party/proto/google/protobuf/any.proto | 161 +++ .../applications/transfer/v1/genesis.proto | 18 + .../ibc/applications/transfer/v1/query.proto | 66 + .../applications/transfer/v1/transfer.proto | 43 + .../ibc/applications/transfer/v1/tx.proto | 43 + .../proto/ibc/core/channel/v1/channel.proto | 147 +++ .../proto/ibc/core/channel/v1/genesis.proto | 31 + .../proto/ibc/core/channel/v1/query.proto | 367 ++++++ .../proto/ibc/core/channel/v1/tx.proto | 207 +++ .../proto/ibc/core/client/v1/client.proto | 74 ++ .../proto/ibc/core/client/v1/genesis.proto | 46 + .../proto/ibc/core/client/v1/query.proto | 130 ++ third_party/proto/ibc/core/client/v1/tx.proto | 96 ++ .../ibc/core/commitment/v1/commitment.proto | 40 + .../ibc/core/connection/v1/connection.proto | 104 ++ .../ibc/core/connection/v1/genesis.proto | 16 + .../proto/ibc/core/connection/v1/query.proto | 137 ++ .../proto/ibc/core/connection/v1/tx.proto | 115 ++ .../proto/ibc/core/types/v1/genesis.proto | 22 + .../lightclients/localhost/v1/localhost.proto | 17 + .../solomachine/v1/solomachine.proto | 186 +++ .../tendermint/v1/tendermint.proto | 111 ++ third_party/proto/tendermint/abci/types.proto | 407 ++++++ .../proto/tendermint/crypto/keys.proto | 17 + .../proto/tendermint/crypto/proof.proto | 41 + .../proto/tendermint/libs/bits/types.proto | 9 + third_party/proto/tendermint/p2p/types.proto | 34 + .../proto/tendermint/types/block.proto | 15 + .../proto/tendermint/types/evidence.proto | 38 + .../proto/tendermint/types/params.proto | 80 ++ .../proto/tendermint/types/types.proto | 157 +++ .../proto/tendermint/types/validator.proto | 25 + .../proto/tendermint/version/types.proto | 24 + x/wasm/types/genesis.pb.go | 133 +- x/wasm/types/genesis.proto | 50 - x/wasm/types/ibc.pb.go | 64 +- x/wasm/types/ibc.proto | 28 - x/wasm/types/proposal.pb.go | 168 ++- x/wasm/types/proposal.proto | 113 -- x/wasm/types/query.pb.go | 313 ++--- x/wasm/types/query.pb.gw.go | 30 +- x/wasm/types/query.proto | 175 --- x/wasm/types/tx.pb.go | 207 ++- x/wasm/types/types.pb.go | 223 ++-- x/wasm/types/types.proto | 115 -- 124 files changed, 10441 insertions(+), 1176 deletions(-) rename {doc => docs}/README.md (76%) create mode 100644 docs/proto/proto-docs.md rename {doc => docs/proto}/proto.md (100%) create mode 100644 docs/proto/protodoc-markdown.tmpl create mode 100644 proto/cosmwasm/wasm/v1beta1/genesis.proto create mode 100644 proto/cosmwasm/wasm/v1beta1/ibc.proto create mode 100644 proto/cosmwasm/wasm/v1beta1/proposal.proto create mode 100644 proto/cosmwasm/wasm/v1beta1/query.proto rename {x/wasm/types => proto/cosmwasm/wasm/v1beta1}/tx.proto (79%) create mode 100644 proto/cosmwasm/wasm/v1beta1/types.proto create mode 100644 scripts/README.md create mode 100755 scripts/protoc-swagger-gen.sh create mode 100644 third_party/README.md create mode 100644 third_party/proto/confio/proofs.proto create mode 100644 third_party/proto/cosmos/auth/v1beta1/auth.proto create mode 100644 third_party/proto/cosmos/auth/v1beta1/genesis.proto create mode 100644 third_party/proto/cosmos/auth/v1beta1/query.proto create mode 100644 third_party/proto/cosmos/bank/v1beta1/bank.proto create mode 100644 third_party/proto/cosmos/bank/v1beta1/genesis.proto create mode 100644 third_party/proto/cosmos/bank/v1beta1/query.proto create mode 100644 third_party/proto/cosmos/bank/v1beta1/tx.proto create mode 100644 third_party/proto/cosmos/base/abci/v1beta1/abci.proto create mode 100644 third_party/proto/cosmos/base/kv/v1beta1/kv.proto create mode 100644 third_party/proto/cosmos/base/query/v1beta1/pagination.proto create mode 100644 third_party/proto/cosmos/base/reflection/v1beta1/reflection.proto create mode 100644 third_party/proto/cosmos/base/snapshots/v1beta1/snapshot.proto create mode 100644 third_party/proto/cosmos/base/store/v1beta1/commit_info.proto create mode 100644 third_party/proto/cosmos/base/store/v1beta1/snapshot.proto create mode 100644 third_party/proto/cosmos/base/tendermint/v1beta1/query.proto create mode 100644 third_party/proto/cosmos/base/v1beta1/coin.proto create mode 100644 third_party/proto/cosmos/capability/v1beta1/capability.proto create mode 100644 third_party/proto/cosmos/capability/v1beta1/genesis.proto create mode 100644 third_party/proto/cosmos/crisis/v1beta1/genesis.proto create mode 100644 third_party/proto/cosmos/crisis/v1beta1/tx.proto create mode 100644 third_party/proto/cosmos/crypto/ed25519/keys.proto create mode 100644 third_party/proto/cosmos/crypto/multisig/keys.proto create mode 100644 third_party/proto/cosmos/crypto/multisig/v1beta1/multisig.proto create mode 100644 third_party/proto/cosmos/crypto/secp256k1/keys.proto create mode 100644 third_party/proto/cosmos/distribution/v1beta1/distribution.proto create mode 100644 third_party/proto/cosmos/distribution/v1beta1/genesis.proto create mode 100644 third_party/proto/cosmos/distribution/v1beta1/query.proto create mode 100644 third_party/proto/cosmos/distribution/v1beta1/tx.proto create mode 100644 third_party/proto/cosmos/evidence/v1beta1/evidence.proto create mode 100644 third_party/proto/cosmos/evidence/v1beta1/genesis.proto create mode 100644 third_party/proto/cosmos/evidence/v1beta1/query.proto create mode 100644 third_party/proto/cosmos/evidence/v1beta1/tx.proto create mode 100644 third_party/proto/cosmos/genutil/v1beta1/genesis.proto create mode 100644 third_party/proto/cosmos/gov/v1beta1/genesis.proto create mode 100644 third_party/proto/cosmos/gov/v1beta1/gov.proto create mode 100644 third_party/proto/cosmos/gov/v1beta1/query.proto create mode 100644 third_party/proto/cosmos/gov/v1beta1/tx.proto create mode 100644 third_party/proto/cosmos/mint/v1beta1/genesis.proto create mode 100644 third_party/proto/cosmos/mint/v1beta1/mint.proto create mode 100644 third_party/proto/cosmos/mint/v1beta1/query.proto create mode 100644 third_party/proto/cosmos/params/v1beta1/params.proto create mode 100644 third_party/proto/cosmos/params/v1beta1/query.proto create mode 100644 third_party/proto/cosmos/slashing/v1beta1/genesis.proto create mode 100644 third_party/proto/cosmos/slashing/v1beta1/query.proto create mode 100644 third_party/proto/cosmos/slashing/v1beta1/slashing.proto create mode 100644 third_party/proto/cosmos/slashing/v1beta1/tx.proto create mode 100644 third_party/proto/cosmos/staking/v1beta1/genesis.proto create mode 100644 third_party/proto/cosmos/staking/v1beta1/query.proto create mode 100644 third_party/proto/cosmos/staking/v1beta1/staking.proto create mode 100644 third_party/proto/cosmos/staking/v1beta1/tx.proto create mode 100644 third_party/proto/cosmos/tx/signing/v1beta1/signing.proto create mode 100644 third_party/proto/cosmos/tx/v1beta1/service.proto create mode 100644 third_party/proto/cosmos/tx/v1beta1/tx.proto create mode 100644 third_party/proto/cosmos/upgrade/v1beta1/query.proto create mode 100644 third_party/proto/cosmos/upgrade/v1beta1/upgrade.proto create mode 100644 third_party/proto/cosmos/vesting/v1beta1/tx.proto create mode 100644 third_party/proto/cosmos/vesting/v1beta1/vesting.proto create mode 100644 third_party/proto/cosmos_proto/cosmos.proto create mode 100644 third_party/proto/gogoproto/gogo.proto create mode 100644 third_party/proto/google/api/annotations.proto create mode 100644 third_party/proto/google/api/http.proto create mode 100644 third_party/proto/google/api/httpbody.proto create mode 100644 third_party/proto/google/protobuf/any.proto create mode 100644 third_party/proto/ibc/applications/transfer/v1/genesis.proto create mode 100644 third_party/proto/ibc/applications/transfer/v1/query.proto create mode 100644 third_party/proto/ibc/applications/transfer/v1/transfer.proto create mode 100644 third_party/proto/ibc/applications/transfer/v1/tx.proto create mode 100644 third_party/proto/ibc/core/channel/v1/channel.proto create mode 100644 third_party/proto/ibc/core/channel/v1/genesis.proto create mode 100644 third_party/proto/ibc/core/channel/v1/query.proto create mode 100644 third_party/proto/ibc/core/channel/v1/tx.proto create mode 100644 third_party/proto/ibc/core/client/v1/client.proto create mode 100644 third_party/proto/ibc/core/client/v1/genesis.proto create mode 100644 third_party/proto/ibc/core/client/v1/query.proto create mode 100644 third_party/proto/ibc/core/client/v1/tx.proto create mode 100644 third_party/proto/ibc/core/commitment/v1/commitment.proto create mode 100644 third_party/proto/ibc/core/connection/v1/connection.proto create mode 100644 third_party/proto/ibc/core/connection/v1/genesis.proto create mode 100644 third_party/proto/ibc/core/connection/v1/query.proto create mode 100644 third_party/proto/ibc/core/connection/v1/tx.proto create mode 100644 third_party/proto/ibc/core/types/v1/genesis.proto create mode 100644 third_party/proto/ibc/lightclients/localhost/v1/localhost.proto create mode 100644 third_party/proto/ibc/lightclients/solomachine/v1/solomachine.proto create mode 100644 third_party/proto/ibc/lightclients/tendermint/v1/tendermint.proto create mode 100644 third_party/proto/tendermint/abci/types.proto create mode 100644 third_party/proto/tendermint/crypto/keys.proto create mode 100644 third_party/proto/tendermint/crypto/proof.proto create mode 100644 third_party/proto/tendermint/libs/bits/types.proto create mode 100644 third_party/proto/tendermint/p2p/types.proto create mode 100644 third_party/proto/tendermint/types/block.proto create mode 100644 third_party/proto/tendermint/types/evidence.proto create mode 100644 third_party/proto/tendermint/types/params.proto create mode 100644 third_party/proto/tendermint/types/types.proto create mode 100644 third_party/proto/tendermint/types/validator.proto create mode 100644 third_party/proto/tendermint/version/types.proto delete mode 100644 x/wasm/types/genesis.proto delete mode 100644 x/wasm/types/ibc.proto delete mode 100644 x/wasm/types/proposal.proto delete mode 100644 x/wasm/types/query.proto delete mode 100644 x/wasm/types/types.proto diff --git a/Makefile b/Makefile index e191d573fb..d27595426b 100644 --- a/Makefile +++ b/Makefile @@ -9,8 +9,9 @@ BINDIR ?= $(GOPATH)/bin SIMAPP = ./app # for dockerized protobuf tools -PROTO_CONTAINER := cosmwasm/prototools-docker:v0.1.0 -DOCKER_BUF := docker run --rm -v $(shell pwd)/buf.yaml:/workspace/buf.yaml -v $(shell go list -f "{{ .Dir }}" -m github.com/cosmos/cosmos-sdk):/workspace/cosmos_sdk_dir -v $(shell pwd):/workspace/wasmd --workdir /workspace $(PROTO_CONTAINER) +DOCKER := $(shell which docker) +BUF_IMAGE=bufbuild/buf@sha256:9dc5d6645f8f8a2d5aaafc8957fbbb5ea64eada98a84cb09654e8f49d6f73b3e +DOCKER_BUF := $(DOCKER) run --rm -v $(CURDIR):/workspace --workdir /workspace $(BUF_IMAGE) HTTPS_GIT := https://github.com/CosmWasm/wasmd.git export GO111MODULE = on @@ -157,21 +158,29 @@ format: ############################################################################### ### Protobuf ### ############################################################################### +PROTO_BUILDER_IMAGE=tendermintdev/sdk-proto-gen@sha256:372dce7be2f465123e26459973ca798fc489ff2c75aeecd814c0ca8ced24faca +PROTO_FORMATTER_IMAGE=tendermintdev/docker-build-proto@sha256:aabcfe2fc19c31c0f198d4cd26393f5e5ca9502d7ea3feafbfe972448fee7cae -proto-all: proto-gen proto-lint proto-check-breaking -.PHONY: proto-all +proto-all: proto-format proto-lint proto-gen -proto-gen: proto-lint - @docker run --rm -v $(shell go list -f "{{ .Dir }}" -m github.com/cosmos/cosmos-sdk):/workspace/cosmos_sdk_dir -v $(shell pwd):/workspace --workdir /workspace --env COSMOS_SDK_DIR=/workspace/cosmos_sdk_dir $(PROTO_CONTAINER) ./scripts/protocgen.sh -.PHONY: proto-gen +proto-gen: + @echo "Generating Protobuf files" + $(DOCKER) run --rm -v $(CURDIR):/workspace --workdir /workspace $(PROTO_BUILDER_IMAGE) sh ./scripts/protocgen.sh + +proto-format: + @echo "Formatting Protobuf files" + $(DOCKER) run --rm -v $(CURDIR):/workspace \ + --workdir /workspace $(PROTO_FORMATTER_IMAGE) \ + find ./ -not -path "./third_party/*" -name *.proto -exec clang-format -i {} \; + +proto-swagger-gen: + @./scripts/protoc-swagger-gen.sh proto-lint: - @$(DOCKER_BUF) buf check lint --error-format=json -.PHONY: proto-lint + @$(DOCKER_BUF) check lint --error-format=json proto-check-breaking: - @$(DOCKER_BUF) buf check breaking --against-input $(HTTPS_GIT)#branch=master -.PHONY: proto-check-breaking + @$(DOCKER_BUF) check breaking --against-input $(HTTPS_GIT)#branch=master .PHONY: all build-linux install install-debug \ go-mod-cache draw-deps clean build format \ diff --git a/buf.yaml b/buf.yaml index 94866e9ab6..e567e23493 100644 --- a/buf.yaml +++ b/buf.yaml @@ -1,12 +1,11 @@ version: v1beta1 + build: roots: - # Note: these are not local path. These roots are mounted into the docker container - - wasmd/ - - cosmos_sdk_dir/third_party/proto/ - - cosmos_sdk_dir/proto/ + - proto + - third_party/proto excludes: -# - cosmos_sdk_dir + - third_party/proto/google/protobuf lint: use: - DEFAULT @@ -20,6 +19,8 @@ lint: - RPC_REQUEST_STANDARD_NAME - PACKAGE_DIRECTORY_MATCH ignore: + - cosmos + - ibc - tendermint - gogoproto - cosmos_proto @@ -29,6 +30,8 @@ breaking: use: - FILE ignore: + - cosmos + - ibc - tendermint - gogoproto - cosmos_proto diff --git a/doc/README.md b/docs/README.md similarity index 76% rename from doc/README.md rename to docs/README.md index 9f3e98c8b0..8beace183c 100644 --- a/doc/README.md +++ b/docs/README.md @@ -1,3 +1,3 @@ -# Generated doc +# Generated doc only Tutorials and project doc is available on https://docs.cosmwasm.com/ diff --git a/docs/proto/proto-docs.md b/docs/proto/proto-docs.md new file mode 100644 index 0000000000..94df097d7f --- /dev/null +++ b/docs/proto/proto-docs.md @@ -0,0 +1,1141 @@ + +# Protobuf Documentation + + +## Table of Contents + +- [cosmwasm/wasm/v1beta1/types.proto](#cosmwasm/wasm/v1beta1/types.proto) + - [AbsoluteTxPosition](#cosmwasm.wasm.v1beta1.AbsoluteTxPosition) + - [AccessConfig](#cosmwasm.wasm.v1beta1.AccessConfig) + - [AccessTypeParam](#cosmwasm.wasm.v1beta1.AccessTypeParam) + - [CodeInfo](#cosmwasm.wasm.v1beta1.CodeInfo) + - [ContractCodeHistoryEntry](#cosmwasm.wasm.v1beta1.ContractCodeHistoryEntry) + - [ContractInfo](#cosmwasm.wasm.v1beta1.ContractInfo) + - [Model](#cosmwasm.wasm.v1beta1.Model) + - [Params](#cosmwasm.wasm.v1beta1.Params) + + - [AccessType](#cosmwasm.wasm.v1beta1.AccessType) + - [ContractCodeHistoryOperationType](#cosmwasm.wasm.v1beta1.ContractCodeHistoryOperationType) + +- [cosmwasm/wasm/v1beta1/tx.proto](#cosmwasm/wasm/v1beta1/tx.proto) + - [MsgClearAdmin](#cosmwasm.wasm.v1beta1.MsgClearAdmin) + - [MsgClearAdminResponse](#cosmwasm.wasm.v1beta1.MsgClearAdminResponse) + - [MsgExecuteContract](#cosmwasm.wasm.v1beta1.MsgExecuteContract) + - [MsgExecuteContractResponse](#cosmwasm.wasm.v1beta1.MsgExecuteContractResponse) + - [MsgInstantiateContract](#cosmwasm.wasm.v1beta1.MsgInstantiateContract) + - [MsgInstantiateContractResponse](#cosmwasm.wasm.v1beta1.MsgInstantiateContractResponse) + - [MsgMigrateContract](#cosmwasm.wasm.v1beta1.MsgMigrateContract) + - [MsgMigrateContractResponse](#cosmwasm.wasm.v1beta1.MsgMigrateContractResponse) + - [MsgStoreCode](#cosmwasm.wasm.v1beta1.MsgStoreCode) + - [MsgStoreCodeResponse](#cosmwasm.wasm.v1beta1.MsgStoreCodeResponse) + - [MsgUpdateAdmin](#cosmwasm.wasm.v1beta1.MsgUpdateAdmin) + - [MsgUpdateAdminResponse](#cosmwasm.wasm.v1beta1.MsgUpdateAdminResponse) + + - [Msg](#cosmwasm.wasm.v1beta1.Msg) + +- [cosmwasm/wasm/v1beta1/genesis.proto](#cosmwasm/wasm/v1beta1/genesis.proto) + - [Code](#cosmwasm.wasm.v1beta1.Code) + - [Contract](#cosmwasm.wasm.v1beta1.Contract) + - [GenesisState](#cosmwasm.wasm.v1beta1.GenesisState) + - [GenesisState.GenMsgs](#cosmwasm.wasm.v1beta1.GenesisState.GenMsgs) + - [Sequence](#cosmwasm.wasm.v1beta1.Sequence) + +- [cosmwasm/wasm/v1beta1/ibc.proto](#cosmwasm/wasm/v1beta1/ibc.proto) + - [MsgIBCCloseChannel](#cosmwasm.wasm.v1beta1.MsgIBCCloseChannel) + - [MsgIBCSend](#cosmwasm.wasm.v1beta1.MsgIBCSend) + +- [cosmwasm/wasm/v1beta1/proposal.proto](#cosmwasm/wasm/v1beta1/proposal.proto) + - [ClearAdminProposal](#cosmwasm.wasm.v1beta1.ClearAdminProposal) + - [InstantiateContractProposal](#cosmwasm.wasm.v1beta1.InstantiateContractProposal) + - [MigrateContractProposal](#cosmwasm.wasm.v1beta1.MigrateContractProposal) + - [PinCodesProposal](#cosmwasm.wasm.v1beta1.PinCodesProposal) + - [StoreCodeProposal](#cosmwasm.wasm.v1beta1.StoreCodeProposal) + - [UnpinCodesProposal](#cosmwasm.wasm.v1beta1.UnpinCodesProposal) + - [UpdateAdminProposal](#cosmwasm.wasm.v1beta1.UpdateAdminProposal) + +- [cosmwasm/wasm/v1beta1/query.proto](#cosmwasm/wasm/v1beta1/query.proto) + - [CodeInfoResponse](#cosmwasm.wasm.v1beta1.CodeInfoResponse) + - [ContractInfoWithAddress](#cosmwasm.wasm.v1beta1.ContractInfoWithAddress) + - [QueryAllContractStateRequest](#cosmwasm.wasm.v1beta1.QueryAllContractStateRequest) + - [QueryAllContractStateResponse](#cosmwasm.wasm.v1beta1.QueryAllContractStateResponse) + - [QueryCodeRequest](#cosmwasm.wasm.v1beta1.QueryCodeRequest) + - [QueryCodeResponse](#cosmwasm.wasm.v1beta1.QueryCodeResponse) + - [QueryCodesRequest](#cosmwasm.wasm.v1beta1.QueryCodesRequest) + - [QueryCodesResponse](#cosmwasm.wasm.v1beta1.QueryCodesResponse) + - [QueryContractHistoryRequest](#cosmwasm.wasm.v1beta1.QueryContractHistoryRequest) + - [QueryContractHistoryResponse](#cosmwasm.wasm.v1beta1.QueryContractHistoryResponse) + - [QueryContractInfoRequest](#cosmwasm.wasm.v1beta1.QueryContractInfoRequest) + - [QueryContractInfoResponse](#cosmwasm.wasm.v1beta1.QueryContractInfoResponse) + - [QueryContractsByCodeRequest](#cosmwasm.wasm.v1beta1.QueryContractsByCodeRequest) + - [QueryContractsByCodeResponse](#cosmwasm.wasm.v1beta1.QueryContractsByCodeResponse) + - [QueryRawContractStateRequest](#cosmwasm.wasm.v1beta1.QueryRawContractStateRequest) + - [QueryRawContractStateResponse](#cosmwasm.wasm.v1beta1.QueryRawContractStateResponse) + - [QuerySmartContractStateRequest](#cosmwasm.wasm.v1beta1.QuerySmartContractStateRequest) + - [QuerySmartContractStateResponse](#cosmwasm.wasm.v1beta1.QuerySmartContractStateResponse) + + - [Query](#cosmwasm.wasm.v1beta1.Query) + +- [Scalar Value Types](#scalar-value-types) + + + + +

Top

+ +## cosmwasm/wasm/v1beta1/types.proto + + + + + +### AbsoluteTxPosition +AbsoluteTxPosition is a unique transaction position that allows for global +ordering of transactions. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `block_height` | [uint64](#uint64) | | BlockHeight is the block the contract was created at | +| `tx_index` | [uint64](#uint64) | | TxIndex is a monotonic counter within the block (actual transaction index, or gas consumed) | + + + + + + + + +### AccessConfig +AccessConfig access control type. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `permission` | [AccessType](#cosmwasm.wasm.v1beta1.AccessType) | | | +| `address` | [string](#string) | | | + + + + + + + + +### AccessTypeParam +AccessTypeParam + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `value` | [AccessType](#cosmwasm.wasm.v1beta1.AccessType) | | | + + + + + + + + +### CodeInfo +CodeInfo is data for the uploaded contract WASM code + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `code_hash` | [bytes](#bytes) | | CodeHash is the unique identifier created by wasmvm | +| `creator` | [string](#string) | | Creator address who initially stored the code | +| `source` | [string](#string) | | Source is a valid absolute HTTPS URI to the contract's source code, optional | +| `builder` | [string](#string) | | Builder is a valid docker image name with tag, optional | +| `instantiate_config` | [AccessConfig](#cosmwasm.wasm.v1beta1.AccessConfig) | | InstantiateConfig access control to apply on contract creation, optional | + + + + + + + + +### ContractCodeHistoryEntry +ContractCodeHistoryEntry metadata to a contract. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `operation` | [ContractCodeHistoryOperationType](#cosmwasm.wasm.v1beta1.ContractCodeHistoryOperationType) | | | +| `code_id` | [uint64](#uint64) | | CodeID is the reference to the stored WASM code | +| `updated` | [AbsoluteTxPosition](#cosmwasm.wasm.v1beta1.AbsoluteTxPosition) | | Updated Tx position when the operation was executed. | +| `msg` | [bytes](#bytes) | | | + + + + + + + + +### ContractInfo +ContractInfo stores a WASM contract instance + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `code_id` | [uint64](#uint64) | | CodeID is the reference to the stored Wasm code | +| `creator` | [string](#string) | | Creator address who initially instantiated the contract | +| `admin` | [string](#string) | | Admin is an optional address that can execute migrations | +| `label` | [string](#string) | | Label is optional metadata to be stored with a contract instance. | +| `created` | [AbsoluteTxPosition](#cosmwasm.wasm.v1beta1.AbsoluteTxPosition) | | Created Tx position when the contract was instantiated. This data should kept internal and not be exposed via query results. Just use for sorting | +| `ibc_port_id` | [string](#string) | | | + + + + + + + + +### Model +Model is a struct that holds a KV pair + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `key` | [bytes](#bytes) | | hex-encode key to read it better (this is often ascii) | +| `value` | [bytes](#bytes) | | base64-encode raw value | + + + + + + + + +### Params +Params defines the set of wasm parameters. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `code_upload_access` | [AccessConfig](#cosmwasm.wasm.v1beta1.AccessConfig) | | | +| `instantiate_default_permission` | [AccessType](#cosmwasm.wasm.v1beta1.AccessType) | | | +| `max_wasm_code_size` | [uint64](#uint64) | | | + + + + + + + + + + +### AccessType +AccessType permission types + +| Name | Number | Description | +| ---- | ------ | ----------- | +| ACCESS_TYPE_UNSPECIFIED | 0 | AccessTypeUnspecified placeholder for empty value | +| ACCESS_TYPE_NOBODY | 1 | AccessTypeNobody forbidden | +| ACCESS_TYPE_ONLY_ADDRESS | 2 | AccessTypeOnlyAddress restricted to an address | +| ACCESS_TYPE_EVERYBODY | 3 | AccessTypeEverybody unrestricted | + + + + + +### ContractCodeHistoryOperationType +ContractCodeHistoryOperationType actions that caused a code change + +| Name | Number | Description | +| ---- | ------ | ----------- | +| CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED | 0 | ContractCodeHistoryOperationTypeUnspecified placeholder for empty value | +| CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT | 1 | ContractCodeHistoryOperationTypeInit on chain contract instantiation | +| CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE | 2 | ContractCodeHistoryOperationTypeMigrate code migration | +| CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS | 3 | ContractCodeHistoryOperationTypeGenesis based on genesis data | + + + + + + + + + + + +

Top

+ +## cosmwasm/wasm/v1beta1/tx.proto + + + + + +### MsgClearAdmin +MsgClearAdmin removes any admin stored for a smart contract + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `sender` | [string](#string) | | Sender is the that actor that signed the messages | +| `contract` | [string](#string) | | Contract is the address of the smart contract | + + + + + + + + +### MsgClearAdminResponse +MsgClearAdminResponse returns empty data + + + + + + + + +### MsgExecuteContract +MsgExecuteContract submits the given message data to a smart contract + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `sender` | [string](#string) | | Sender is the that actor that signed the messages | +| `contract` | [string](#string) | | Contract is the address of the smart contract | +| `msg` | [bytes](#bytes) | | Msg json encoded message to be passed to the contract | +| `funds` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | Funds coins that are transferred to the contract on execution | + + + + + + + + +### MsgExecuteContractResponse +MsgExecuteContractResponse returns execution result data. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `data` | [bytes](#bytes) | | Data contains base64-encoded bytes to returned from the contract | + + + + + + + + +### MsgInstantiateContract +MsgInstantiateContract create a new smart contract instance for the given +code id. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `sender` | [string](#string) | | Sender is the that actor that signed the messages | +| `admin` | [string](#string) | | Admin is an optional address that can execute migrations | +| `code_id` | [uint64](#uint64) | | CodeID is the reference to the stored WASM code | +| `label` | [string](#string) | | Label is optional metadata to be stored with a contract instance. | +| `init_msg` | [bytes](#bytes) | | InitMsg json encoded message to be passed to the contract on instantiation | +| `funds` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | Funds coins that are transferred to the contract on instantiation | + + + + + + + + +### MsgInstantiateContractResponse +MsgInstantiateContractResponse return instantiation result data + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `address` | [string](#string) | | Address is the bech32 address of the new contract instance. | +| `data` | [bytes](#bytes) | | Data contains base64-encoded bytes to returned from the contract | + + + + + + + + +### MsgMigrateContract +MsgMigrateContract runs a code upgrade/ downgrade for a smart contract + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `sender` | [string](#string) | | Sender is the that actor that signed the messages | +| `contract` | [string](#string) | | Contract is the address of the smart contract | +| `code_id` | [uint64](#uint64) | | CodeID references the new WASM code | +| `migrate_msg` | [bytes](#bytes) | | MigrateMsg json encoded message to be passed to the contract on migration | + + + + + + + + +### MsgMigrateContractResponse +MsgMigrateContractResponse returns contract migration result data. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `data` | [bytes](#bytes) | | Data contains same raw bytes returned as data from the wasm contract. (May be empty) | + + + + + + + + +### MsgStoreCode +MsgStoreCode submit Wasm code to the system + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `sender` | [string](#string) | | Sender is the that actor that signed the messages | +| `wasm_byte_code` | [bytes](#bytes) | | WASMByteCode can be raw or gzip compressed | +| `source` | [string](#string) | | Source is a valid absolute HTTPS URI to the contract's source code, optional | +| `builder` | [string](#string) | | Builder is a valid docker image name with tag, optional | +| `instantiate_permission` | [AccessConfig](#cosmwasm.wasm.v1beta1.AccessConfig) | | InstantiatePermission access control to apply on contract creation, optional | + + + + + + + + +### MsgStoreCodeResponse +MsgStoreCodeResponse returns store result data. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `code_id` | [uint64](#uint64) | | CodeID is the reference to the stored WASM code | + + + + + + + + +### MsgUpdateAdmin +MsgUpdateAdmin sets a new admin for a smart contract + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `sender` | [string](#string) | | Sender is the that actor that signed the messages | +| `new_admin` | [string](#string) | | NewAdmin address to be set | +| `contract` | [string](#string) | | Contract is the address of the smart contract | + + + + + + + + +### MsgUpdateAdminResponse +MsgUpdateAdminResponse returns empty data + + + + + + + + + + + + + + +### Msg +Msg defines the wasm Msg service. + +| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | +| ----------- | ------------ | ------------- | ------------| ------- | -------- | +| `StoreCode` | [MsgStoreCode](#cosmwasm.wasm.v1beta1.MsgStoreCode) | [MsgStoreCodeResponse](#cosmwasm.wasm.v1beta1.MsgStoreCodeResponse) | StoreCode to submit Wasm code to the system | | +| `InstantiateContract` | [MsgInstantiateContract](#cosmwasm.wasm.v1beta1.MsgInstantiateContract) | [MsgInstantiateContractResponse](#cosmwasm.wasm.v1beta1.MsgInstantiateContractResponse) | Instantiate creates a new smart contract instance for the given code id. | | +| `ExecuteContract` | [MsgExecuteContract](#cosmwasm.wasm.v1beta1.MsgExecuteContract) | [MsgExecuteContractResponse](#cosmwasm.wasm.v1beta1.MsgExecuteContractResponse) | Execute submits the given message data to a smart contract | | +| `MigrateContract` | [MsgMigrateContract](#cosmwasm.wasm.v1beta1.MsgMigrateContract) | [MsgMigrateContractResponse](#cosmwasm.wasm.v1beta1.MsgMigrateContractResponse) | Migrate runs a code upgrade/ downgrade for a smart contract | | +| `UpdateAdmin` | [MsgUpdateAdmin](#cosmwasm.wasm.v1beta1.MsgUpdateAdmin) | [MsgUpdateAdminResponse](#cosmwasm.wasm.v1beta1.MsgUpdateAdminResponse) | UpdateAdmin sets a new admin for a smart contract | | +| `ClearAdmin` | [MsgClearAdmin](#cosmwasm.wasm.v1beta1.MsgClearAdmin) | [MsgClearAdminResponse](#cosmwasm.wasm.v1beta1.MsgClearAdminResponse) | ClearAdmin removes any admin stored for a smart contract | | + + + + + + +

Top

+ +## cosmwasm/wasm/v1beta1/genesis.proto + + + + + +### Code +Code struct encompasses CodeInfo and CodeBytes + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `code_id` | [uint64](#uint64) | | | +| `code_info` | [CodeInfo](#cosmwasm.wasm.v1beta1.CodeInfo) | | | +| `code_bytes` | [bytes](#bytes) | | | +| `pinned` | [bool](#bool) | | Pinned to wasmvm cache | + + + + + + + + +### Contract +Contract struct encompasses ContractAddress, ContractInfo, and ContractState + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `contract_address` | [string](#string) | | | +| `contract_info` | [ContractInfo](#cosmwasm.wasm.v1beta1.ContractInfo) | | | +| `contract_state` | [Model](#cosmwasm.wasm.v1beta1.Model) | repeated | | + + + + + + + + +### GenesisState +GenesisState - genesis state of x/wasm + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `params` | [Params](#cosmwasm.wasm.v1beta1.Params) | | | +| `codes` | [Code](#cosmwasm.wasm.v1beta1.Code) | repeated | | +| `contracts` | [Contract](#cosmwasm.wasm.v1beta1.Contract) | repeated | | +| `sequences` | [Sequence](#cosmwasm.wasm.v1beta1.Sequence) | repeated | | +| `gen_msgs` | [GenesisState.GenMsgs](#cosmwasm.wasm.v1beta1.GenesisState.GenMsgs) | repeated | | + + + + + + + + +### GenesisState.GenMsgs +GenMsgs define the messages that can be executed during genesis phase in +order. The intention is to have more human readable data that is auditable. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `store_code` | [MsgStoreCode](#cosmwasm.wasm.v1beta1.MsgStoreCode) | | | +| `instantiate_contract` | [MsgInstantiateContract](#cosmwasm.wasm.v1beta1.MsgInstantiateContract) | | | +| `execute_contract` | [MsgExecuteContract](#cosmwasm.wasm.v1beta1.MsgExecuteContract) | | | + + + + + + + + +### Sequence +Sequence key and value of an id generation counter + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `id_key` | [bytes](#bytes) | | | +| `value` | [uint64](#uint64) | | | + + + + + + + + + + + + + + + + +

Top

+ +## cosmwasm/wasm/v1beta1/ibc.proto + + + + + +### MsgIBCCloseChannel +MsgIBCCloseChannel port and channel need to be owned by the contract + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `channel` | [string](#string) | | | + + + + + + + + +### MsgIBCSend +MsgIBCSend + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `channel` | [string](#string) | | the channel by which the packet will be sent | +| `timeout_height` | [uint64](#uint64) | | Timeout height relative to the current block height. The timeout is disabled when set to 0. | +| `timeout_timestamp` | [uint64](#uint64) | | Timeout timestamp (in nanoseconds) relative to the current block timestamp. The timeout is disabled when set to 0. | +| `data` | [bytes](#bytes) | | data is the payload to transfer | + + + + + + + + + + + + + + + + +

Top

+ +## cosmwasm/wasm/v1beta1/proposal.proto + + + + + +### ClearAdminProposal +ClearAdminProposal gov proposal content type to clear the admin of a +contract. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `title` | [string](#string) | | Title is a short summary | +| `description` | [string](#string) | | Description is a human readable text | +| `contract` | [string](#string) | | Contract is the address of the smart contract | + + + + + + + + +### InstantiateContractProposal +InstantiateContractProposal gov proposal content type to instantiate a +contract. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `title` | [string](#string) | | Title is a short summary | +| `description` | [string](#string) | | Description is a human readable text | +| `run_as` | [string](#string) | | RunAs is the address that is passed to the contract's environment as sender | +| `admin` | [string](#string) | | Admin is an optional address that can execute migrations | +| `code_id` | [uint64](#uint64) | | CodeID is the reference to the stored WASM code | +| `label` | [string](#string) | | Label is optional metadata to be stored with a constract instance. | +| `init_msg` | [bytes](#bytes) | | InitMsg json encoded message to be passed to the contract on instantiation | +| `funds` | [cosmos.base.v1beta1.Coin](#cosmos.base.v1beta1.Coin) | repeated | Funds coins that are transferred to the contract on instantiation | + + + + + + + + +### MigrateContractProposal +MigrateContractProposal gov proposal content type to migrate a contract. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `title` | [string](#string) | | Title is a short summary | +| `description` | [string](#string) | | Description is a human readable text | +| `run_as` | [string](#string) | | RunAs is the address that is passed to the contract's environment as sender | +| `contract` | [string](#string) | | Contract is the address of the smart contract | +| `code_id` | [uint64](#uint64) | | CodeID references the new WASM code | +| `migrate_msg` | [bytes](#bytes) | | MigrateMsg json encoded message to be passed to the contract on migration | + + + + + + + + +### PinCodesProposal +PinCodesProposal gov proposal content type to pin a set of code ids in the +wasmvm cache. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `title` | [string](#string) | | Title is a short summary | +| `description` | [string](#string) | | Description is a human readable text | +| `code_ids` | [uint64](#uint64) | repeated | CodeIDs references the new WASM codes | + + + + + + + + +### StoreCodeProposal +StoreCodeProposal gov proposal content type to submit WASM code to the system + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `title` | [string](#string) | | Title is a short summary | +| `description` | [string](#string) | | Description is a human readable text | +| `run_as` | [string](#string) | | RunAs is the address that is passed to the contract's environment as sender | +| `wasm_byte_code` | [bytes](#bytes) | | WASMByteCode can be raw or gzip compressed | +| `source` | [string](#string) | | Source is a valid absolute HTTPS URI to the contract's source code, optional | +| `builder` | [string](#string) | | Builder is a valid docker image name with tag, optional | +| `instantiate_permission` | [AccessConfig](#cosmwasm.wasm.v1beta1.AccessConfig) | | InstantiatePermission to apply on contract creation, optional | + + + + + + + + +### UnpinCodesProposal +UnpinCodesProposal gov proposal content type to unpin a set of code ids in +the wasmvm cache. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `title` | [string](#string) | | Title is a short summary | +| `description` | [string](#string) | | Description is a human readable text | +| `code_ids` | [uint64](#uint64) | repeated | CodeIDs references the WASM codes | + + + + + + + + +### UpdateAdminProposal +UpdateAdminProposal gov proposal content type to set an admin for a contract. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `title` | [string](#string) | | Title is a short summary | +| `description` | [string](#string) | | Description is a human readable text | +| `new_admin` | [string](#string) | | NewAdmin address to be set | +| `contract` | [string](#string) | | Contract is the address of the smart contract | + + + + + + + + + + + + + + + + +

Top

+ +## cosmwasm/wasm/v1beta1/query.proto + + + + + +### CodeInfoResponse +CodeInfoResponse contains code meta data from CodeInfo + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `code_id` | [uint64](#uint64) | | id for legacy support | +| `creator` | [string](#string) | | | +| `data_hash` | [bytes](#bytes) | | | +| `source` | [string](#string) | | | +| `builder` | [string](#string) | | | + + + + + + + + +### ContractInfoWithAddress +ContractInfoWithAddress adds the address (key) to the ContractInfo +representation + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `address` | [string](#string) | | | +| `contract_info` | [ContractInfo](#cosmwasm.wasm.v1beta1.ContractInfo) | | | + + + + + + + + +### QueryAllContractStateRequest +QueryAllContractStateRequest is the request type for the +Query/AllContractState RPC method + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `address` | [string](#string) | | address is the address of the contract | +| `pagination` | [cosmos.base.query.v1beta1.PageRequest](#cosmos.base.query.v1beta1.PageRequest) | | pagination defines an optional pagination for the request. | + + + + + + + + +### QueryAllContractStateResponse +QueryAllContractStateResponse is the response type for the +Query/AllContractState RPC method + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `models` | [Model](#cosmwasm.wasm.v1beta1.Model) | repeated | | +| `pagination` | [cosmos.base.query.v1beta1.PageResponse](#cosmos.base.query.v1beta1.PageResponse) | | pagination defines the pagination in the response. | + + + + + + + + +### QueryCodeRequest +QueryCodeRequest is the request type for the Query/Code RPC method + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `code_id` | [uint64](#uint64) | | grpc-gateway_out does not support Go style CodID | + + + + + + + + +### QueryCodeResponse +QueryCodeResponse is the response type for the Query/Code RPC method + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `code_info` | [CodeInfoResponse](#cosmwasm.wasm.v1beta1.CodeInfoResponse) | | | +| `data` | [bytes](#bytes) | | | + + + + + + + + +### QueryCodesRequest +QueryCodesRequest is the request type for the Query/Codes RPC method + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `pagination` | [cosmos.base.query.v1beta1.PageRequest](#cosmos.base.query.v1beta1.PageRequest) | | pagination defines an optional pagination for the request. | + + + + + + + + +### QueryCodesResponse +QueryCodesResponse is the response type for the Query/Codes RPC method + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `code_infos` | [CodeInfoResponse](#cosmwasm.wasm.v1beta1.CodeInfoResponse) | repeated | | +| `pagination` | [cosmos.base.query.v1beta1.PageResponse](#cosmos.base.query.v1beta1.PageResponse) | | pagination defines the pagination in the response. | + + + + + + + + +### QueryContractHistoryRequest +QueryContractHistoryRequest is the request type for the Query/ContractHistory +RPC method + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `address` | [string](#string) | | address is the address of the contract to query | +| `pagination` | [cosmos.base.query.v1beta1.PageRequest](#cosmos.base.query.v1beta1.PageRequest) | | pagination defines an optional pagination for the request. | + + + + + + + + +### QueryContractHistoryResponse +QueryContractHistoryResponse is the response type for the +Query/ContractHistory RPC method + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `entries` | [ContractCodeHistoryEntry](#cosmwasm.wasm.v1beta1.ContractCodeHistoryEntry) | repeated | | +| `pagination` | [cosmos.base.query.v1beta1.PageResponse](#cosmos.base.query.v1beta1.PageResponse) | | pagination defines the pagination in the response. | + + + + + + + + +### QueryContractInfoRequest +QueryContractInfoRequest is the request type for the Query/ContractInfo RPC +method + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `address` | [string](#string) | | address is the address of the contract to query | + + + + + + + + +### QueryContractInfoResponse +QueryContractInfoResponse is the response type for the Query/ContractInfo RPC +method + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `address` | [string](#string) | | address is the address of the contract | +| `contract_info` | [ContractInfo](#cosmwasm.wasm.v1beta1.ContractInfo) | | | + + + + + + + + +### QueryContractsByCodeRequest +QueryContractsByCodeRequest is the request type for the Query/ContractsByCode +RPC method + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `code_id` | [uint64](#uint64) | | grpc-gateway_out does not support Go style CodID | +| `pagination` | [cosmos.base.query.v1beta1.PageRequest](#cosmos.base.query.v1beta1.PageRequest) | | pagination defines an optional pagination for the request. | + + + + + + + + +### QueryContractsByCodeResponse +QueryContractsByCodeResponse is the response type for the +Query/ContractsByCode RPC method + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `contract_infos` | [ContractInfoWithAddress](#cosmwasm.wasm.v1beta1.ContractInfoWithAddress) | repeated | | +| `pagination` | [cosmos.base.query.v1beta1.PageResponse](#cosmos.base.query.v1beta1.PageResponse) | | pagination defines the pagination in the response. | + + + + + + + + +### QueryRawContractStateRequest +QueryRawContractStateRequest is the request type for the +Query/RawContractState RPC method + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `address` | [string](#string) | | address is the address of the contract | +| `query_data` | [bytes](#bytes) | | | + + + + + + + + +### QueryRawContractStateResponse +QueryRawContractStateResponse is the response type for the +Query/RawContractState RPC method + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `data` | [bytes](#bytes) | | Data contains the raw store data | + + + + + + + + +### QuerySmartContractStateRequest +QuerySmartContractStateRequest is the request type for the +Query/SmartContractState RPC method + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `address` | [string](#string) | | address is the address of the contract | +| `query_data` | [bytes](#bytes) | | QueryData contains the query data passed to the contract | + + + + + + + + +### QuerySmartContractStateResponse +QuerySmartContractStateResponse is the response type for the +Query/SmartContractState RPC method + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `data` | [bytes](#bytes) | | Data contains the json data returned from the smart contract | + + + + + + + + + + + + + + +### Query +Query provides defines the gRPC querier service + +| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | +| ----------- | ------------ | ------------- | ------------| ------- | -------- | +| `ContractInfo` | [QueryContractInfoRequest](#cosmwasm.wasm.v1beta1.QueryContractInfoRequest) | [QueryContractInfoResponse](#cosmwasm.wasm.v1beta1.QueryContractInfoResponse) | ContractInfo gets the contract meta data | GET|/wasm/v1beta1/contract/{address}| +| `ContractHistory` | [QueryContractHistoryRequest](#cosmwasm.wasm.v1beta1.QueryContractHistoryRequest) | [QueryContractHistoryResponse](#cosmwasm.wasm.v1beta1.QueryContractHistoryResponse) | ContractHistory gets the contract code history | GET|/wasm/v1beta1/contract/{address}/history| +| `ContractsByCode` | [QueryContractsByCodeRequest](#cosmwasm.wasm.v1beta1.QueryContractsByCodeRequest) | [QueryContractsByCodeResponse](#cosmwasm.wasm.v1beta1.QueryContractsByCodeResponse) | ContractsByCode lists all smart contracts for a code id | GET|/wasm/v1beta1/code/{code_id}/contracts| +| `AllContractState` | [QueryAllContractStateRequest](#cosmwasm.wasm.v1beta1.QueryAllContractStateRequest) | [QueryAllContractStateResponse](#cosmwasm.wasm.v1beta1.QueryAllContractStateResponse) | AllContractState gets all raw store data for a single contract | GET|/wasm/v1beta1/contract/{address}/state| +| `RawContractState` | [QueryRawContractStateRequest](#cosmwasm.wasm.v1beta1.QueryRawContractStateRequest) | [QueryRawContractStateResponse](#cosmwasm.wasm.v1beta1.QueryRawContractStateResponse) | RawContractState gets single key from the raw store data of a contract | GET|/wasm/v1beta1/contract/{address}/raw/{query_data}| +| `SmartContractState` | [QuerySmartContractStateRequest](#cosmwasm.wasm.v1beta1.QuerySmartContractStateRequest) | [QuerySmartContractStateResponse](#cosmwasm.wasm.v1beta1.QuerySmartContractStateResponse) | SmartContractState get smart query result from the contract | GET|/wasm/v1beta1/contract/{address}/smart/{query_data}| +| `Code` | [QueryCodeRequest](#cosmwasm.wasm.v1beta1.QueryCodeRequest) | [QueryCodeResponse](#cosmwasm.wasm.v1beta1.QueryCodeResponse) | Code gets the binary code and metadata for a singe wasm code | GET|/wasm/v1beta1/code/{code_id}| +| `Codes` | [QueryCodesRequest](#cosmwasm.wasm.v1beta1.QueryCodesRequest) | [QueryCodesResponse](#cosmwasm.wasm.v1beta1.QueryCodesResponse) | Codes gets the metadata for all stored wasm codes | GET|/wasm/v1beta1/code| + + + + + +## Scalar Value Types + +| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby | +| ----------- | ----- | --- | ---- | ------ | -- | -- | --- | ---- | +| double | | double | double | float | float64 | double | float | Float | +| float | | float | float | float | float32 | float | float | Float | +| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | +| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum | +| uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) | +| uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) | +| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | +| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum | +| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) | +| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum | +| sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | +| sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum | +| bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | +| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) | +| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) | + diff --git a/doc/proto.md b/docs/proto/proto.md similarity index 100% rename from doc/proto.md rename to docs/proto/proto.md diff --git a/docs/proto/protodoc-markdown.tmpl b/docs/proto/protodoc-markdown.tmpl new file mode 100644 index 0000000000..28201837e5 --- /dev/null +++ b/docs/proto/protodoc-markdown.tmpl @@ -0,0 +1,105 @@ + +# Protobuf Documentation + + +## Table of Contents +{{range .Files}} +{{$file_name := .Name}}- [{{.Name}}](#{{.Name}}) + {{- if .Messages }} + {{range .Messages}} - [{{.LongName}}](#{{.FullName}}) + {{end}} + {{- end -}} + {{- if .Enums }} + {{range .Enums}} - [{{.LongName}}](#{{.FullName}}) + {{end}} + {{- end -}} + {{- if .Extensions }} + {{range .Extensions}} - [File-level Extensions](#{{$file_name}}-extensions) + {{end}} + {{- end -}} + {{- if .Services }} + {{range .Services}} - [{{.Name}}](#{{.FullName}}) + {{end}} + {{- end -}} +{{end}} +- [Scalar Value Types](#scalar-value-types) + +{{range .Files}} +{{$file_name := .Name}} + +

Top

+ +## {{.Name}} +{{.Description}} + +{{range .Messages}} + + +### {{.LongName}} +{{.Description}} + +{{if .HasFields}} +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +{{range .Fields -}} + | `{{.Name}}` | [{{.LongType}}](#{{.FullType}}) | {{.Label}} | {{if (index .Options "deprecated"|default false)}}**Deprecated.** {{end}}{{nobr .Description}}{{if .DefaultValue}} Default: {{.DefaultValue}}{{end}} | +{{end}} +{{end}} + +{{if .HasExtensions}} +| Extension | Type | Base | Number | Description | +| --------- | ---- | ---- | ------ | ----------- | +{{range .Extensions -}} + | `{{.Name}}` | {{.LongType}} | {{.ContainingLongType}} | {{.Number}} | {{nobr .Description}}{{if .DefaultValue}} Default: {{.DefaultValue}}{{end}} | +{{end}} +{{end}} + +{{end}} + +{{range .Enums}} + + +### {{.LongName}} +{{.Description}} + +| Name | Number | Description | +| ---- | ------ | ----------- | +{{range .Values -}} + | {{.Name}} | {{.Number}} | {{nobr .Description}} | +{{end}} + +{{end}} + +{{if .HasExtensions}} + + +### File-level Extensions +| Extension | Type | Base | Number | Description | +| --------- | ---- | ---- | ------ | ----------- | +{{range .Extensions -}} + | `{{.Name}}` | {{.LongType}} | {{.ContainingLongType}} | {{.Number}} | {{nobr .Description}}{{if .DefaultValue}} Default: `{{.DefaultValue}}`{{end}} | +{{end}} +{{end}} + +{{range .Services}} + + +### {{.Name}} +{{.Description}} + +| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | +| ----------- | ------------ | ------------- | ------------| ------- | -------- | +{{range .Methods -}} + | `{{.Name}}` | [{{.RequestLongType}}](#{{.RequestFullType}}){{if .RequestStreaming}} stream{{end}} | [{{.ResponseLongType}}](#{{.ResponseFullType}}){{if .ResponseStreaming}} stream{{end}} | {{nobr .Description}} | {{with (index .Options "google.api.http")}}{{range .Rules}}{{.Method}}|{{.Pattern}}{{end}}{{end}}| +{{end}} +{{end}} + +{{end}} + +## Scalar Value Types + +| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby | +| ----------- | ----- | --- | ---- | ------ | -- | -- | --- | ---- | +{{range .Scalars -}} + | {{.ProtoType}} | {{.Notes}} | {{.CppType}} | {{.JavaType}} | {{.PythonType}} | {{.GoType}} | {{.CSharp}} | {{.PhpType}} | {{.RubyType}} | +{{end}} diff --git a/proto/cosmwasm/wasm/v1beta1/genesis.proto b/proto/cosmwasm/wasm/v1beta1/genesis.proto new file mode 100644 index 0000000000..c00fd066bc --- /dev/null +++ b/proto/cosmwasm/wasm/v1beta1/genesis.proto @@ -0,0 +1,60 @@ +syntax = "proto3"; +package cosmwasm.wasm.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmwasm/wasm/v1beta1/types.proto"; +import "cosmwasm/wasm/v1beta1/tx.proto"; + +option go_package = "github.com/CosmWasm/wasmd/x/wasm/types"; + +// GenesisState - genesis state of x/wasm +message GenesisState { + Params params = 1 [ (gogoproto.nullable) = false ]; + repeated Code codes = 2 + [ (gogoproto.nullable) = false, (gogoproto.jsontag) = "codes,omitempty" ]; + repeated Contract contracts = 3 [ + (gogoproto.nullable) = false, + (gogoproto.jsontag) = "contracts,omitempty" + ]; + repeated Sequence sequences = 4 [ + (gogoproto.nullable) = false, + (gogoproto.jsontag) = "sequences,omitempty" + ]; + repeated GenMsgs gen_msgs = 5 [ + (gogoproto.nullable) = false, + (gogoproto.jsontag) = "gen_msgs,omitempty" + ]; + + // GenMsgs define the messages that can be executed during genesis phase in + // order. The intention is to have more human readable data that is auditable. + message GenMsgs { + // sum is a single message + oneof sum { + MsgStoreCode store_code = 1; + MsgInstantiateContract instantiate_contract = 2; + MsgExecuteContract execute_contract = 3; + } + } +} + +// Code struct encompasses CodeInfo and CodeBytes +message Code { + uint64 code_id = 1 [ (gogoproto.customname) = "CodeID" ]; + CodeInfo code_info = 2 [ (gogoproto.nullable) = false ]; + bytes code_bytes = 3; + // Pinned to wasmvm cache + bool pinned = 4; +} + +// Contract struct encompasses ContractAddress, ContractInfo, and ContractState +message Contract { + string contract_address = 1; + ContractInfo contract_info = 2 [ (gogoproto.nullable) = false ]; + repeated Model contract_state = 3 [ (gogoproto.nullable) = false ]; +} + +// Sequence key and value of an id generation counter +message Sequence { + bytes id_key = 1 [ (gogoproto.customname) = "IDKey" ]; + uint64 value = 2; +} \ No newline at end of file diff --git a/proto/cosmwasm/wasm/v1beta1/ibc.proto b/proto/cosmwasm/wasm/v1beta1/ibc.proto new file mode 100644 index 0000000000..e0462c34b8 --- /dev/null +++ b/proto/cosmwasm/wasm/v1beta1/ibc.proto @@ -0,0 +1,30 @@ +syntax = "proto3"; +package cosmwasm.wasm.v1beta1; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/CosmWasm/wasmd/x/wasm/types"; +option (gogoproto.goproto_getters_all) = false; + +// MsgIBCSend +message MsgIBCSend { + // the channel by which the packet will be sent + string channel = 2 [ (gogoproto.moretags) = "yaml:\"source_channel\"" ]; + + // Timeout height relative to the current block height. + // The timeout is disabled when set to 0. + uint64 timeout_height = 4 + [ (gogoproto.moretags) = "yaml:\"timeout_height\"" ]; + // Timeout timestamp (in nanoseconds) relative to the current block timestamp. + // The timeout is disabled when set to 0. + uint64 timeout_timestamp = 5 + [ (gogoproto.moretags) = "yaml:\"timeout_timestamp\"" ]; + + // data is the payload to transfer + bytes data = 6 [ (gogoproto.casttype) = "encoding/json.RawMessage" ]; +} + +// MsgIBCCloseChannel port and channel need to be owned by the contract +message MsgIBCCloseChannel { + string channel = 2 [ (gogoproto.moretags) = "yaml:\"source_channel\"" ]; +} diff --git a/proto/cosmwasm/wasm/v1beta1/proposal.proto b/proto/cosmwasm/wasm/v1beta1/proposal.proto new file mode 100644 index 0000000000..88052c8273 --- /dev/null +++ b/proto/cosmwasm/wasm/v1beta1/proposal.proto @@ -0,0 +1,121 @@ +syntax = "proto3"; +package cosmwasm.wasm.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmwasm/wasm/v1beta1/types.proto"; + +option go_package = "github.com/CosmWasm/wasmd/x/wasm/types"; +option (gogoproto.goproto_stringer_all) = false; +option (gogoproto.goproto_getters_all) = false; +option (gogoproto.equal_all) = true; + +// StoreCodeProposal gov proposal content type to submit WASM code to the system +message StoreCodeProposal { + // Title is a short summary + string title = 1; + // Description is a human readable text + string description = 2; + // RunAs is the address that is passed to the contract's environment as sender + string run_as = 3; + // WASMByteCode can be raw or gzip compressed + bytes wasm_byte_code = 4 [ (gogoproto.customname) = "WASMByteCode" ]; + // Source is a valid absolute HTTPS URI to the contract's source code, + // optional + string source = 5; + // Builder is a valid docker image name with tag, optional + string builder = 6; + // InstantiatePermission to apply on contract creation, optional + AccessConfig instantiate_permission = 7; +} + +// InstantiateContractProposal gov proposal content type to instantiate a +// contract. +message InstantiateContractProposal { + // Title is a short summary + string title = 1; + // Description is a human readable text + string description = 2; + // RunAs is the address that is passed to the contract's environment as sender + string run_as = 3; + // Admin is an optional address that can execute migrations + string admin = 4; + // CodeID is the reference to the stored WASM code + uint64 code_id = 5 [ (gogoproto.customname) = "CodeID" ]; + // Label is optional metadata to be stored with a constract instance. + string label = 6; + // InitMsg json encoded message to be passed to the contract on instantiation + bytes init_msg = 7 [ (gogoproto.casttype) = "encoding/json.RawMessage" ]; + // Funds coins that are transferred to the contract on instantiation + repeated cosmos.base.v1beta1.Coin funds = 8 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; +} + +// MigrateContractProposal gov proposal content type to migrate a contract. +message MigrateContractProposal { + // Title is a short summary + string title = 1; + // Description is a human readable text + string description = 2; + // RunAs is the address that is passed to the contract's environment as sender + string run_as = 3; + // Contract is the address of the smart contract + string contract = 4; + // CodeID references the new WASM code + uint64 code_id = 5 [ (gogoproto.customname) = "CodeID" ]; + // MigrateMsg json encoded message to be passed to the contract on migration + bytes migrate_msg = 6 [ (gogoproto.casttype) = "encoding/json.RawMessage" ]; +} + +// UpdateAdminProposal gov proposal content type to set an admin for a contract. +message UpdateAdminProposal { + // Title is a short summary + string title = 1; + // Description is a human readable text + string description = 2; + // NewAdmin address to be set + string new_admin = 3 [ (gogoproto.moretags) = "yaml:\"new_admin\"" ]; + // Contract is the address of the smart contract + string contract = 4; +} + +// ClearAdminProposal gov proposal content type to clear the admin of a +// contract. +message ClearAdminProposal { + // Title is a short summary + string title = 1; + // Description is a human readable text + string description = 2; + // Contract is the address of the smart contract + string contract = 3; +} + +// PinCodesProposal gov proposal content type to pin a set of code ids in the +// wasmvm cache. +message PinCodesProposal { + // Title is a short summary + string title = 1 [ (gogoproto.moretags) = "yaml:\"title\"" ]; + // Description is a human readable text + string description = 2 [ (gogoproto.moretags) = "yaml:\"description\"" ]; + // CodeIDs references the new WASM codes + repeated uint64 code_ids = 3 [ + (gogoproto.customname) = "CodeIDs", + (gogoproto.moretags) = "yaml:\"code_ids\"" + ]; +} + +// UnpinCodesProposal gov proposal content type to unpin a set of code ids in +// the wasmvm cache. +message UnpinCodesProposal { + // Title is a short summary + string title = 1 [ (gogoproto.moretags) = "yaml:\"title\"" ]; + // Description is a human readable text + string description = 2 [ (gogoproto.moretags) = "yaml:\"description\"" ]; + // CodeIDs references the WASM codes + repeated uint64 code_ids = 3 [ + (gogoproto.customname) = "CodeIDs", + (gogoproto.moretags) = "yaml:\"code_ids\"" + ]; +} diff --git a/proto/cosmwasm/wasm/v1beta1/query.proto b/proto/cosmwasm/wasm/v1beta1/query.proto new file mode 100644 index 0000000000..1ddc871283 --- /dev/null +++ b/proto/cosmwasm/wasm/v1beta1/query.proto @@ -0,0 +1,206 @@ +syntax = "proto3"; +package cosmwasm.wasm.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmwasm/wasm/v1beta1/types.proto"; +import "google/api/annotations.proto"; +import "cosmos/base/query/v1beta1/pagination.proto"; + +option go_package = "github.com/CosmWasm/wasmd/x/wasm/types"; +option (gogoproto.goproto_getters_all) = false; +option (gogoproto.equal_all) = false; + +// Query provides defines the gRPC querier service +service Query { + // ContractInfo gets the contract meta data + rpc ContractInfo(QueryContractInfoRequest) + returns (QueryContractInfoResponse) { + option (google.api.http).get = "/wasm/v1beta1/contract/{address}"; + } + // ContractHistory gets the contract code history + rpc ContractHistory(QueryContractHistoryRequest) + returns (QueryContractHistoryResponse) { + option (google.api.http).get = "/wasm/v1beta1/contract/{address}/history"; + } + // ContractsByCode lists all smart contracts for a code id + rpc ContractsByCode(QueryContractsByCodeRequest) + returns (QueryContractsByCodeResponse) { + option (google.api.http).get = "/wasm/v1beta1/code/{code_id}/contracts"; + } + // AllContractState gets all raw store data for a single contract + rpc AllContractState(QueryAllContractStateRequest) + returns (QueryAllContractStateResponse) { + option (google.api.http).get = "/wasm/v1beta1/contract/{address}/state"; + } + // RawContractState gets single key from the raw store data of a contract + rpc RawContractState(QueryRawContractStateRequest) + returns (QueryRawContractStateResponse) { + option (google.api.http).get = + "/wasm/v1beta1/contract/{address}/raw/{query_data}"; + } + // SmartContractState get smart query result from the contract + rpc SmartContractState(QuerySmartContractStateRequest) + returns (QuerySmartContractStateResponse) { + option (google.api.http).get = + "/wasm/v1beta1/contract/{address}/smart/{query_data}"; + } + // Code gets the binary code and metadata for a singe wasm code + rpc Code(QueryCodeRequest) returns (QueryCodeResponse) { + option (google.api.http).get = "/wasm/v1beta1/code/{code_id}"; + } + // Codes gets the metadata for all stored wasm codes + rpc Codes(QueryCodesRequest) returns (QueryCodesResponse) { + option (google.api.http).get = "/wasm/v1beta1/code"; + } +} + +// QueryContractInfoRequest is the request type for the Query/ContractInfo RPC +// method +message QueryContractInfoRequest { + // address is the address of the contract to query + string address = 1; +} +// QueryContractInfoResponse is the response type for the Query/ContractInfo RPC +// method +message QueryContractInfoResponse { + option (gogoproto.equal) = true; + + // address is the address of the contract + string address = 1; + ContractInfo contract_info = 2 + [ (gogoproto.embed) = true, (gogoproto.jsontag) = "" ]; +} + +// QueryContractHistoryRequest is the request type for the Query/ContractHistory +// RPC method +message QueryContractHistoryRequest { + // address is the address of the contract to query + string address = 1; + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryContractHistoryResponse is the response type for the +// Query/ContractHistory RPC method +message QueryContractHistoryResponse { + repeated ContractCodeHistoryEntry entries = 1 + [ (gogoproto.nullable) = false ]; + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryContractsByCodeRequest is the request type for the Query/ContractsByCode +// RPC method +message QueryContractsByCodeRequest { + uint64 code_id = 1; // grpc-gateway_out does not support Go style CodID + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// ContractInfoWithAddress adds the address (key) to the ContractInfo +// representation +message ContractInfoWithAddress { + option (gogoproto.equal) = true; + + string address = 1; + ContractInfo contract_info = 2 + [ (gogoproto.embed) = true, (gogoproto.jsontag) = "" ]; +} +// QueryContractsByCodeResponse is the response type for the +// Query/ContractsByCode RPC method +message QueryContractsByCodeResponse { + repeated ContractInfoWithAddress contract_infos = 1 + [ (gogoproto.nullable) = false ]; + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryAllContractStateRequest is the request type for the +// Query/AllContractState RPC method +message QueryAllContractStateRequest { + // address is the address of the contract + string address = 1; + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryAllContractStateResponse is the response type for the +// Query/AllContractState RPC method +message QueryAllContractStateResponse { + repeated Model models = 1 [ (gogoproto.nullable) = false ]; + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryRawContractStateRequest is the request type for the +// Query/RawContractState RPC method +message QueryRawContractStateRequest { + // address is the address of the contract + string address = 1; + bytes query_data = 2; +} + +// QueryRawContractStateResponse is the response type for the +// Query/RawContractState RPC method +message QueryRawContractStateResponse { + // Data contains the raw store data + bytes data = 1; +} + +// QuerySmartContractStateRequest is the request type for the +// Query/SmartContractState RPC method +message QuerySmartContractStateRequest { + // address is the address of the contract + string address = 1; + // QueryData contains the query data passed to the contract + bytes query_data = 2; +} + +// QuerySmartContractStateResponse is the response type for the +// Query/SmartContractState RPC method +message QuerySmartContractStateResponse { + // Data contains the json data returned from the smart contract + bytes data = 1 [ (gogoproto.casttype) = "encoding/json.RawMessage" ]; +} + +// QueryCodeRequest is the request type for the Query/Code RPC method +message QueryCodeRequest { + uint64 code_id = 1; // grpc-gateway_out does not support Go style CodID +} + +// CodeInfoResponse contains code meta data from CodeInfo +message CodeInfoResponse { + option (gogoproto.equal) = true; + + uint64 code_id = 1 [ + (gogoproto.customname) = "CodeID", + (gogoproto.jsontag) = "id" + ]; // id for legacy support + string creator = 2; + bytes data_hash = 3 + [ (gogoproto.casttype) = + "github.com/tendermint/tendermint/libs/bytes.HexBytes" ]; + string source = 4; + string builder = 5; +} + +// QueryCodeResponse is the response type for the Query/Code RPC method +message QueryCodeResponse { + option (gogoproto.equal) = true; + CodeInfoResponse code_info = 1 + [ (gogoproto.embed) = true, (gogoproto.jsontag) = "" ]; + bytes data = 2 [ (gogoproto.jsontag) = "data" ]; +} + +// QueryCodesRequest is the request type for the Query/Codes RPC method +message QueryCodesRequest { + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryCodesResponse is the response type for the Query/Codes RPC method +message QueryCodesResponse { + repeated CodeInfoResponse code_infos = 1 [ (gogoproto.nullable) = false ]; + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} diff --git a/x/wasm/types/tx.proto b/proto/cosmwasm/wasm/v1beta1/tx.proto similarity index 79% rename from x/wasm/types/tx.proto rename to proto/cosmwasm/wasm/v1beta1/tx.proto index 07932c4f4b..a7747ec11f 100644 --- a/x/wasm/types/tx.proto +++ b/proto/cosmwasm/wasm/v1beta1/tx.proto @@ -1,10 +1,9 @@ syntax = "proto3"; package cosmwasm.wasm.v1beta1; - import "cosmos/base/v1beta1/coin.proto"; import "gogoproto/gogo.proto"; -import "x/wasm/types/types.proto"; +import "cosmwasm/wasm/v1beta1/types.proto"; option go_package = "github.com/CosmWasm/wasmd/x/wasm/types"; option (gogoproto.goproto_getters_all) = false; @@ -14,7 +13,8 @@ service Msg { // StoreCode to submit Wasm code to the system rpc StoreCode(MsgStoreCode) returns (MsgStoreCodeResponse); // Instantiate creates a new smart contract instance for the given code id. - rpc InstantiateContract(MsgInstantiateContract) returns (MsgInstantiateContractResponse); + rpc InstantiateContract(MsgInstantiateContract) + returns (MsgInstantiateContractResponse); // Execute submits the given message data to a smart contract rpc ExecuteContract(MsgExecuteContract) returns (MsgExecuteContractResponse); // Migrate runs a code upgrade/ downgrade for a smart contract @@ -30,34 +30,40 @@ message MsgStoreCode { // Sender is the that actor that signed the messages string sender = 1; // WASMByteCode can be raw or gzip compressed - bytes wasm_byte_code = 2 [(gogoproto.customname) = "WASMByteCode"]; - // Source is a valid absolute HTTPS URI to the contract's source code, optional + bytes wasm_byte_code = 2 [ (gogoproto.customname) = "WASMByteCode" ]; + // Source is a valid absolute HTTPS URI to the contract's source code, + // optional string source = 3; // Builder is a valid docker image name with tag, optional string builder = 4; - // InstantiatePermission access control to apply on contract creation, optional + // InstantiatePermission access control to apply on contract creation, + // optional AccessConfig instantiate_permission = 5; } // MsgStoreCodeResponse returns store result data. -message MsgStoreCodeResponse{ +message MsgStoreCodeResponse { // CodeID is the reference to the stored WASM code - uint64 code_id = 1 [(gogoproto.customname) = "CodeID"]; + uint64 code_id = 1 [ (gogoproto.customname) = "CodeID" ]; } -// MsgInstantiateContract create a new smart contract instance for the given code id. +// MsgInstantiateContract create a new smart contract instance for the given +// code id. message MsgInstantiateContract { // Sender is the that actor that signed the messages string sender = 1; // Admin is an optional address that can execute migrations string admin = 2; // CodeID is the reference to the stored WASM code - uint64 code_id = 3 [(gogoproto.customname) = "CodeID"]; + uint64 code_id = 3 [ (gogoproto.customname) = "CodeID" ]; // Label is optional metadata to be stored with a contract instance. string label = 4; // InitMsg json encoded message to be passed to the contract on instantiation - bytes init_msg = 5 [(gogoproto.casttype) = "encoding/json.RawMessage"]; + bytes init_msg = 5 [ (gogoproto.casttype) = "encoding/json.RawMessage" ]; // Funds coins that are transferred to the contract on instantiation - repeated cosmos.base.v1beta1.Coin funds = 6 [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; + repeated cosmos.base.v1beta1.Coin funds = 6 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; } // MsgInstantiateContractResponse return instantiation result data message MsgInstantiateContractResponse { @@ -74,9 +80,12 @@ message MsgExecuteContract { // Contract is the address of the smart contract string contract = 2; // Msg json encoded message to be passed to the contract - bytes msg = 3 [(gogoproto.casttype) = "encoding/json.RawMessage"]; + bytes msg = 3 [ (gogoproto.casttype) = "encoding/json.RawMessage" ]; // Funds coins that are transferred to the contract on execution - repeated cosmos.base.v1beta1.Coin funds = 5 [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; + repeated cosmos.base.v1beta1.Coin funds = 5 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; } // MsgExecuteContractResponse returns execution result data. @@ -92,9 +101,9 @@ message MsgMigrateContract { // Contract is the address of the smart contract string contract = 2; // CodeID references the new WASM code - uint64 code_id = 3 [(gogoproto.customname) = "CodeID"]; + uint64 code_id = 3 [ (gogoproto.customname) = "CodeID" ]; // MigrateMsg json encoded message to be passed to the contract on migration - bytes migrate_msg = 4 [(gogoproto.casttype) = "encoding/json.RawMessage"]; + bytes migrate_msg = 4 [ (gogoproto.casttype) = "encoding/json.RawMessage" ]; } // MsgMigrateContractResponse returns contract migration result data. @@ -115,7 +124,7 @@ message MsgUpdateAdmin { } // MsgUpdateAdminResponse returns empty data -message MsgUpdateAdminResponse{} +message MsgUpdateAdminResponse {} // MsgClearAdmin removes any admin stored for a smart contract message MsgClearAdmin { @@ -126,4 +135,4 @@ message MsgClearAdmin { } // MsgClearAdminResponse returns empty data -message MsgClearAdminResponse{} +message MsgClearAdminResponse {} diff --git a/proto/cosmwasm/wasm/v1beta1/types.proto b/proto/cosmwasm/wasm/v1beta1/types.proto new file mode 100644 index 0000000000..bf976ddcb8 --- /dev/null +++ b/proto/cosmwasm/wasm/v1beta1/types.proto @@ -0,0 +1,136 @@ +syntax = "proto3"; +package cosmwasm.wasm.v1beta1; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/CosmWasm/wasmd/x/wasm/types"; +option (gogoproto.goproto_getters_all) = false; +option (gogoproto.equal_all) = true; + +// AccessType permission types +enum AccessType { + option (gogoproto.goproto_enum_prefix) = false; + option (gogoproto.goproto_enum_stringer) = false; + // AccessTypeUnspecified placeholder for empty value + ACCESS_TYPE_UNSPECIFIED = 0 + [ (gogoproto.enumvalue_customname) = "AccessTypeUnspecified" ]; + // AccessTypeNobody forbidden + ACCESS_TYPE_NOBODY = 1 + [ (gogoproto.enumvalue_customname) = "AccessTypeNobody" ]; + // AccessTypeOnlyAddress restricted to an address + ACCESS_TYPE_ONLY_ADDRESS = 2 + [ (gogoproto.enumvalue_customname) = "AccessTypeOnlyAddress" ]; + // AccessTypeEverybody unrestricted + ACCESS_TYPE_EVERYBODY = 3 + [ (gogoproto.enumvalue_customname) = "AccessTypeEverybody" ]; +} + +// AccessTypeParam +message AccessTypeParam { + option (gogoproto.goproto_stringer) = true; + AccessType value = 1 [ (gogoproto.moretags) = "yaml:\"value\"" ]; +} + +// AccessConfig access control type. +message AccessConfig { + option (gogoproto.goproto_stringer) = true; + AccessType permission = 1 [ (gogoproto.moretags) = "yaml:\"permission\"" ]; + string address = 2 [ (gogoproto.moretags) = "yaml:\"address\"" ]; +} + +// Params defines the set of wasm parameters. +message Params { + option (gogoproto.goproto_stringer) = false; + AccessConfig code_upload_access = 1 [ + (gogoproto.nullable) = false, + (gogoproto.moretags) = "yaml:\"code_upload_access\"" + ]; + AccessType instantiate_default_permission = 2 + [ (gogoproto.moretags) = "yaml:\"instantiate_default_permission\"" ]; + uint64 max_wasm_code_size = 3 + [ (gogoproto.moretags) = "yaml:\"max_wasm_code_size\"" ]; +} + +// CodeInfo is data for the uploaded contract WASM code +message CodeInfo { + // CodeHash is the unique identifier created by wasmvm + bytes code_hash = 1; + // Creator address who initially stored the code + string creator = 2; + // Source is a valid absolute HTTPS URI to the contract's source code, + // optional + string source = 3; + // Builder is a valid docker image name with tag, optional + string builder = 4; + // InstantiateConfig access control to apply on contract creation, optional + AccessConfig instantiate_config = 5 [ (gogoproto.nullable) = false ]; +} + +// ContractInfo stores a WASM contract instance +message ContractInfo { + option (gogoproto.equal) = true; + + // CodeID is the reference to the stored Wasm code + uint64 code_id = 1 [ (gogoproto.customname) = "CodeID" ]; + // Creator address who initially instantiated the contract + string creator = 2; + // Admin is an optional address that can execute migrations + string admin = 3; + // Label is optional metadata to be stored with a contract instance. + string label = 4; + // Created Tx position when the contract was instantiated. + // This data should kept internal and not be exposed via query results. Just + // use for sorting + AbsoluteTxPosition created = 5; + string ibc_port_id = 6 [ (gogoproto.customname) = "IBCPortID" ]; +} + +// ContractCodeHistoryOperationType actions that caused a code change +enum ContractCodeHistoryOperationType { + option (gogoproto.goproto_enum_prefix) = false; + // ContractCodeHistoryOperationTypeUnspecified placeholder for empty value + CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED = 0 + [ (gogoproto.enumvalue_customname) = + "ContractCodeHistoryOperationTypeUnspecified" ]; + // ContractCodeHistoryOperationTypeInit on chain contract instantiation + CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT = 1 + [ (gogoproto.enumvalue_customname) = + "ContractCodeHistoryOperationTypeInit" ]; + // ContractCodeHistoryOperationTypeMigrate code migration + CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE = 2 + [ (gogoproto.enumvalue_customname) = + "ContractCodeHistoryOperationTypeMigrate" ]; + // ContractCodeHistoryOperationTypeGenesis based on genesis data + CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS = 3 + [ (gogoproto.enumvalue_customname) = + "ContractCodeHistoryOperationTypeGenesis" ]; +} + +// ContractCodeHistoryEntry metadata to a contract. +message ContractCodeHistoryEntry { + ContractCodeHistoryOperationType operation = 1; + // CodeID is the reference to the stored WASM code + uint64 code_id = 2 [ (gogoproto.customname) = "CodeID" ]; + // Updated Tx position when the operation was executed. + AbsoluteTxPosition updated = 3; + bytes msg = 4 [ (gogoproto.casttype) = "encoding/json.RawMessage" ]; +} + +// AbsoluteTxPosition is a unique transaction position that allows for global +// ordering of transactions. +message AbsoluteTxPosition { + // BlockHeight is the block the contract was created at + uint64 block_height = 1; + // TxIndex is a monotonic counter within the block (actual transaction index, + // or gas consumed) + uint64 tx_index = 2; +} + +// Model is a struct that holds a KV pair +message Model { + // hex-encode key to read it better (this is often ascii) + bytes key = 1 [ (gogoproto.casttype) = + "github.com/tendermint/tendermint/libs/bytes.HexBytes" ]; + // base64-encode raw value + bytes value = 2; +} diff --git a/scripts/README.md b/scripts/README.md new file mode 100644 index 0000000000..c0aba168f1 --- /dev/null +++ b/scripts/README.md @@ -0,0 +1,7 @@ +# Scripts + +These scripts are copied from the [Cosmos-SDK](https://github.com/cosmos/cosmos-sdk/tree/v0.42.1/scripts) respository +with minor modifications. All credits and big thanks go to the original authors. + +Please note that a custom [fork](github.com/regen-network/protobuf) by the Regen network team is used. +See [`go.mod`](../go.mod) for version. \ No newline at end of file diff --git a/scripts/protoc-swagger-gen.sh b/scripts/protoc-swagger-gen.sh new file mode 100755 index 0000000000..f0a6bc8d9d --- /dev/null +++ b/scripts/protoc-swagger-gen.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +set -eo pipefail + +mkdir -p ./docs/client +proto_dirs=$(find ./proto -path -prune -o -name '*.proto' -print0 | xargs -0 -n1 dirname | sort | uniq) +for dir in $proto_dirs; do + + # generate swagger files (filter query files) + query_file=$(find "${dir}" -maxdepth 1 \( -name 'query.proto' -o -name 'service.proto' \)) + if [[ ! -z "$query_file" ]]; then + buf protoc \ + -I "proto" \ + -I "third_party/proto" \ + "$query_file" \ + --swagger_out=./docs/client \ + --swagger_opt=logtostderr=true --swagger_opt=fqn_for_swagger_name=true --swagger_opt=simple_operation_ids=true + fi +done diff --git a/scripts/protocgen.sh b/scripts/protocgen.sh index d355ddda50..f9d5572f1e 100755 --- a/scripts/protocgen.sh +++ b/scripts/protocgen.sh @@ -1,19 +1,38 @@ -#!/bin/sh +#!/usr/bin/env bash set -eo pipefail -PROJECT_PROTO_DIR=x/wasm/types/ -COSMOS_SDK_DIR=${COSMOS_SDK_DIR:-$(go list -f "{{ .Dir }}" -m github.com/cosmos/cosmos-sdk)} +protoc_gen_gocosmos() { + if ! grep "github.com/gogo/protobuf => github.com/regen-network/protobuf" go.mod &>/dev/null ; then + echo -e "\tPlease run this command from somewhere inside the cosmos-sdk folder." + return 1 + fi -# Generate Go types from protobuf -protoc \ - -I=. \ - -I="$COSMOS_SDK_DIR/third_party/proto" \ - -I="$COSMOS_SDK_DIR/proto" \ - --gocosmos_out=Mgoogle/protobuf/any.proto=github.com/cosmos/cosmos-sdk/codec/types,Mgoogle/protobuf/empty.proto=github.com/gogo/protobuf/types,plugins=interfacetype+grpc,paths=source_relative:. \ - --grpc-gateway_out .\ - --grpc-gateway_opt logtostderr=true \ - --grpc-gateway_opt paths=Mgoogle/protobuf/any.proto=github.com/cosmos/cosmos-sdk/codec/types,Mgoogle/protobuf/empty.proto=github.com/gogo/protobuf/types,paths=source_relative \ - --doc_out=./doc \ - --doc_opt=markdown,proto.md \ - $(find "${PROJECT_PROTO_DIR}" -maxdepth 1 -name '*.proto') + go get github.com/regen-network/cosmos-proto/protoc-gen-gocosmos@latest 2>/dev/null +} + +protoc_gen_gocosmos + +proto_dirs=$(find ./proto -path -prune -o -name '*.proto' -print0 | xargs -0 -n1 dirname | sort | uniq) +for dir in $proto_dirs; do + buf protoc \ + -I "proto" \ + -I "third_party/proto" \ + --gocosmos_out=plugins=interfacetype+grpc,\ +Mgoogle/protobuf/any.proto=github.com/cosmos/cosmos-sdk/codec/types:. \ + --grpc-gateway_out=logtostderr=true:. \ + $(find "${dir}" -maxdepth 1 -name '*.proto') + +done +# +## command to generate docs using protoc-gen-doc +buf protoc \ +-I "proto" \ +-I "third_party/proto" \ +--doc_out=./docs/proto \ +--doc_opt=./docs/proto/protodoc-markdown.tmpl,proto-docs.md \ +$(find "$(pwd)/proto" -maxdepth 5 -name '*.proto') + +# move proto files to the right places +cp -r github.com/CosmWasm/wasmd/* ./ +rm -rf github.com diff --git a/third_party/README.md b/third_party/README.md new file mode 100644 index 0000000000..29ac5daa16 --- /dev/null +++ b/third_party/README.md @@ -0,0 +1,8 @@ +# Third party +Contain the protobuf dependencies + +## Cosmos-SDK +* [/proto dir](https://github.com/cosmos/cosmos-sdk/tree/master/proto) +* [/third_party dir](https://github.com/cosmos/cosmos-sdk/tree/master/third_party/proto) + +Credits and :bouquet: to the original authors diff --git a/third_party/proto/confio/proofs.proto b/third_party/proto/confio/proofs.proto new file mode 100644 index 0000000000..da43503ecb --- /dev/null +++ b/third_party/proto/confio/proofs.proto @@ -0,0 +1,234 @@ +syntax = "proto3"; + +package ics23; +option go_package = "github.com/confio/ics23/go"; + +enum HashOp { + // NO_HASH is the default if no data passed. Note this is an illegal argument some places. + NO_HASH = 0; + SHA256 = 1; + SHA512 = 2; + KECCAK = 3; + RIPEMD160 = 4; + BITCOIN = 5; // ripemd160(sha256(x)) +} + +/** +LengthOp defines how to process the key and value of the LeafOp +to include length information. After encoding the length with the given +algorithm, the length will be prepended to the key and value bytes. +(Each one with it's own encoded length) +*/ +enum LengthOp { + // NO_PREFIX don't include any length info + NO_PREFIX = 0; + // VAR_PROTO uses protobuf (and go-amino) varint encoding of the length + VAR_PROTO = 1; + // VAR_RLP uses rlp int encoding of the length + VAR_RLP = 2; + // FIXED32_BIG uses big-endian encoding of the length as a 32 bit integer + FIXED32_BIG = 3; + // FIXED32_LITTLE uses little-endian encoding of the length as a 32 bit integer + FIXED32_LITTLE = 4; + // FIXED64_BIG uses big-endian encoding of the length as a 64 bit integer + FIXED64_BIG = 5; + // FIXED64_LITTLE uses little-endian encoding of the length as a 64 bit integer + FIXED64_LITTLE = 6; + // REQUIRE_32_BYTES is like NONE, but will fail if the input is not exactly 32 bytes (sha256 output) + REQUIRE_32_BYTES = 7; + // REQUIRE_64_BYTES is like NONE, but will fail if the input is not exactly 64 bytes (sha512 output) + REQUIRE_64_BYTES = 8; +} + +/** +ExistenceProof takes a key and a value and a set of steps to perform on it. +The result of peforming all these steps will provide a "root hash", which can +be compared to the value in a header. + +Since it is computationally infeasible to produce a hash collission for any of the used +cryptographic hash functions, if someone can provide a series of operations to transform +a given key and value into a root hash that matches some trusted root, these key and values +must be in the referenced merkle tree. + +The only possible issue is maliablity in LeafOp, such as providing extra prefix data, +which should be controlled by a spec. Eg. with lengthOp as NONE, + prefix = FOO, key = BAR, value = CHOICE +and + prefix = F, key = OOBAR, value = CHOICE +would produce the same value. + +With LengthOp this is tricker but not impossible. Which is why the "leafPrefixEqual" field +in the ProofSpec is valuable to prevent this mutability. And why all trees should +length-prefix the data before hashing it. +*/ +message ExistenceProof { + bytes key = 1; + bytes value = 2; + LeafOp leaf = 3; + repeated InnerOp path = 4; +} + +/* +NonExistenceProof takes a proof of two neighbors, one left of the desired key, +one right of the desired key. If both proofs are valid AND they are neighbors, +then there is no valid proof for the given key. +*/ +message NonExistenceProof { + bytes key = 1; // TODO: remove this as unnecessary??? we prove a range + ExistenceProof left = 2; + ExistenceProof right = 3; +} + +/* +CommitmentProof is either an ExistenceProof or a NonExistenceProof, or a Batch of such messages +*/ +message CommitmentProof { + oneof proof { + ExistenceProof exist = 1; + NonExistenceProof nonexist = 2; + BatchProof batch = 3; + CompressedBatchProof compressed = 4; + } +} + +/** +LeafOp represents the raw key-value data we wish to prove, and +must be flexible to represent the internal transformation from +the original key-value pairs into the basis hash, for many existing +merkle trees. + +key and value are passed in. So that the signature of this operation is: + leafOp(key, value) -> output + +To process this, first prehash the keys and values if needed (ANY means no hash in this case): + hkey = prehashKey(key) + hvalue = prehashValue(value) + +Then combine the bytes, and hash it + output = hash(prefix || length(hkey) || hkey || length(hvalue) || hvalue) +*/ +message LeafOp { + HashOp hash = 1; + HashOp prehash_key = 2; + HashOp prehash_value = 3; + LengthOp length = 4; + // prefix is a fixed bytes that may optionally be included at the beginning to differentiate + // a leaf node from an inner node. + bytes prefix = 5; +} + +/** +InnerOp represents a merkle-proof step that is not a leaf. +It represents concatenating two children and hashing them to provide the next result. + +The result of the previous step is passed in, so the signature of this op is: + innerOp(child) -> output + +The result of applying InnerOp should be: + output = op.hash(op.prefix || child || op.suffix) + + where the || operator is concatenation of binary data, +and child is the result of hashing all the tree below this step. + +Any special data, like prepending child with the length, or prepending the entire operation with +some value to differentiate from leaf nodes, should be included in prefix and suffix. +If either of prefix or suffix is empty, we just treat it as an empty string +*/ +message InnerOp { + HashOp hash = 1; + bytes prefix = 2; + bytes suffix = 3; +} + + +/** +ProofSpec defines what the expected parameters are for a given proof type. +This can be stored in the client and used to validate any incoming proofs. + + verify(ProofSpec, Proof) -> Proof | Error + +As demonstrated in tests, if we don't fix the algorithm used to calculate the +LeafHash for a given tree, there are many possible key-value pairs that can +generate a given hash (by interpretting the preimage differently). +We need this for proper security, requires client knows a priori what +tree format server uses. But not in code, rather a configuration object. +*/ +message ProofSpec { + // any field in the ExistenceProof must be the same as in this spec. + // except Prefix, which is just the first bytes of prefix (spec can be longer) + LeafOp leaf_spec = 1; + InnerSpec inner_spec = 2; + // max_depth (if > 0) is the maximum number of InnerOps allowed (mainly for fixed-depth tries) + int32 max_depth = 3; + // min_depth (if > 0) is the minimum number of InnerOps allowed (mainly for fixed-depth tries) + int32 min_depth = 4; +} + +/* +InnerSpec contains all store-specific structure info to determine if two proofs from a +given store are neighbors. + +This enables: + + isLeftMost(spec: InnerSpec, op: InnerOp) + isRightMost(spec: InnerSpec, op: InnerOp) + isLeftNeighbor(spec: InnerSpec, left: InnerOp, right: InnerOp) +*/ +message InnerSpec { + // Child order is the ordering of the children node, must count from 0 + // iavl tree is [0, 1] (left then right) + // merk is [0, 2, 1] (left, right, here) + repeated int32 child_order = 1; + int32 child_size = 2; + int32 min_prefix_length = 3; + int32 max_prefix_length = 4; + // empty child is the prehash image that is used when one child is nil (eg. 20 bytes of 0) + bytes empty_child = 5; + // hash is the algorithm that must be used for each InnerOp + HashOp hash = 6; +} + +/* +BatchProof is a group of multiple proof types than can be compressed +*/ +message BatchProof { + repeated BatchEntry entries = 1; +} + +// Use BatchEntry not CommitmentProof, to avoid recursion +message BatchEntry { + oneof proof { + ExistenceProof exist = 1; + NonExistenceProof nonexist = 2; + } +} + + +/****** all items here are compressed forms *******/ + +message CompressedBatchProof { + repeated CompressedBatchEntry entries = 1; + repeated InnerOp lookup_inners = 2; +} + +// Use BatchEntry not CommitmentProof, to avoid recursion +message CompressedBatchEntry { + oneof proof { + CompressedExistenceProof exist = 1; + CompressedNonExistenceProof nonexist = 2; + } +} + +message CompressedExistenceProof { + bytes key = 1; + bytes value = 2; + LeafOp leaf = 3; + // these are indexes into the lookup_inners table in CompressedBatchProof + repeated int32 path = 4; +} + +message CompressedNonExistenceProof { + bytes key = 1; // TODO: remove this as unnecessary??? we prove a range + CompressedExistenceProof left = 2; + CompressedExistenceProof right = 3; +} diff --git a/third_party/proto/cosmos/auth/v1beta1/auth.proto b/third_party/proto/cosmos/auth/v1beta1/auth.proto new file mode 100644 index 0000000000..72e1d9ec28 --- /dev/null +++ b/third_party/proto/cosmos/auth/v1beta1/auth.proto @@ -0,0 +1,50 @@ +syntax = "proto3"; +package cosmos.auth.v1beta1; + +import "cosmos_proto/cosmos.proto"; +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/auth/types"; + +// BaseAccount defines a base account type. It contains all the necessary fields +// for basic account functionality. Any custom account type should extend this +// type for additional functionality (e.g. vesting). +message BaseAccount { + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + option (gogoproto.equal) = false; + + option (cosmos_proto.implements_interface) = "AccountI"; + + string address = 1; + google.protobuf.Any pub_key = 2 + [(gogoproto.jsontag) = "public_key,omitempty", (gogoproto.moretags) = "yaml:\"public_key\""]; + uint64 account_number = 3 [(gogoproto.moretags) = "yaml:\"account_number\""]; + uint64 sequence = 4; +} + +// ModuleAccount defines an account for modules that holds coins on a pool. +message ModuleAccount { + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + option (cosmos_proto.implements_interface) = "ModuleAccountI"; + + BaseAccount base_account = 1 [(gogoproto.embed) = true, (gogoproto.moretags) = "yaml:\"base_account\""]; + string name = 2; + repeated string permissions = 3; +} + +// Params defines the parameters for the auth module. +message Params { + option (gogoproto.equal) = true; + option (gogoproto.goproto_stringer) = false; + + uint64 max_memo_characters = 1 [(gogoproto.moretags) = "yaml:\"max_memo_characters\""]; + uint64 tx_sig_limit = 2 [(gogoproto.moretags) = "yaml:\"tx_sig_limit\""]; + uint64 tx_size_cost_per_byte = 3 [(gogoproto.moretags) = "yaml:\"tx_size_cost_per_byte\""]; + uint64 sig_verify_cost_ed25519 = 4 + [(gogoproto.customname) = "SigVerifyCostED25519", (gogoproto.moretags) = "yaml:\"sig_verify_cost_ed25519\""]; + uint64 sig_verify_cost_secp256k1 = 5 + [(gogoproto.customname) = "SigVerifyCostSecp256k1", (gogoproto.moretags) = "yaml:\"sig_verify_cost_secp256k1\""]; +} diff --git a/third_party/proto/cosmos/auth/v1beta1/genesis.proto b/third_party/proto/cosmos/auth/v1beta1/genesis.proto new file mode 100644 index 0000000000..c88b94ee4e --- /dev/null +++ b/third_party/proto/cosmos/auth/v1beta1/genesis.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; +package cosmos.auth.v1beta1; + +import "google/protobuf/any.proto"; +import "gogoproto/gogo.proto"; +import "cosmos/auth/v1beta1/auth.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/auth/types"; + +// GenesisState defines the auth module's genesis state. +message GenesisState { + // params defines all the paramaters of the module. + Params params = 1 [(gogoproto.nullable) = false]; + + // accounts are the accounts present at genesis. + repeated google.protobuf.Any accounts = 2; +} diff --git a/third_party/proto/cosmos/auth/v1beta1/query.proto b/third_party/proto/cosmos/auth/v1beta1/query.proto new file mode 100644 index 0000000000..a885792683 --- /dev/null +++ b/third_party/proto/cosmos/auth/v1beta1/query.proto @@ -0,0 +1,47 @@ +syntax = "proto3"; +package cosmos.auth.v1beta1; + +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; +import "google/api/annotations.proto"; +import "cosmos/auth/v1beta1/auth.proto"; +import "cosmos_proto/cosmos.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/auth/types"; + +// Query defines the gRPC querier service. +service Query { + // Account returns account details based on address. + rpc Account(QueryAccountRequest) returns (QueryAccountResponse) { + option (google.api.http).get = "/cosmos/auth/v1beta1/accounts/{address}"; + } + + // Params queries all parameters. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/cosmos/auth/v1beta1/params"; + } +} + +// QueryAccountRequest is the request type for the Query/Account RPC method. +message QueryAccountRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // address defines the address to query for. + string address = 1; +} + +// QueryAccountResponse is the response type for the Query/Account RPC method. +message QueryAccountResponse { + // account defines the account of the corresponding address. + google.protobuf.Any account = 1 [(cosmos_proto.accepts_interface) = "AccountI"]; +} + +// QueryParamsRequest is the request type for the Query/Params RPC method. +message QueryParamsRequest {} + +// QueryParamsResponse is the response type for the Query/Params RPC method. +message QueryParamsResponse { + // params defines the parameters of the module. + Params params = 1 [(gogoproto.nullable) = false]; +} diff --git a/third_party/proto/cosmos/bank/v1beta1/bank.proto b/third_party/proto/cosmos/bank/v1beta1/bank.proto new file mode 100644 index 0000000000..5a9383362e --- /dev/null +++ b/third_party/proto/cosmos/bank/v1beta1/bank.proto @@ -0,0 +1,85 @@ +syntax = "proto3"; +package cosmos.bank.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/base/v1beta1/coin.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types"; + +// Params defines the parameters for the bank module. +message Params { + option (gogoproto.goproto_stringer) = false; + repeated SendEnabled send_enabled = 1 [(gogoproto.moretags) = "yaml:\"send_enabled,omitempty\""]; + bool default_send_enabled = 2 [(gogoproto.moretags) = "yaml:\"default_send_enabled,omitempty\""]; +} + +// SendEnabled maps coin denom to a send_enabled status (whether a denom is +// sendable). +message SendEnabled { + option (gogoproto.equal) = true; + option (gogoproto.goproto_stringer) = false; + string denom = 1; + bool enabled = 2; +} + +// Input models transaction input. +message Input { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string address = 1; + repeated cosmos.base.v1beta1.Coin coins = 2 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; +} + +// Output models transaction outputs. +message Output { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string address = 1; + repeated cosmos.base.v1beta1.Coin coins = 2 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; +} + +// Supply represents a struct that passively keeps track of the total supply +// amounts in the network. +message Supply { + option (gogoproto.equal) = true; + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + + option (cosmos_proto.implements_interface) = "*github.com/cosmos/cosmos-sdk/x/bank/exported.SupplyI"; + + repeated cosmos.base.v1beta1.Coin total = 1 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; +} + +// DenomUnit represents a struct that describes a given +// denomination unit of the basic token. +message DenomUnit { + // denom represents the string name of the given denom unit (e.g uatom). + string denom = 1; + // exponent represents power of 10 exponent that one must + // raise the base_denom to in order to equal the given DenomUnit's denom + // 1 denom = 1^exponent base_denom + // (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' with + // exponent = 6, thus: 1 atom = 10^6 uatom). + uint32 exponent = 2; + // aliases is a list of string aliases for the given denom + repeated string aliases = 3; +} + +// Metadata represents a struct that describes +// a basic token. +message Metadata { + string description = 1; + // denom_units represents the list of DenomUnit's for a given coin + repeated DenomUnit denom_units = 2; + // base represents the base denom (should be the DenomUnit with exponent = 0). + string base = 3; + // display indicates the suggested denom that should be + // displayed in clients. + string display = 4; +} diff --git a/third_party/proto/cosmos/bank/v1beta1/genesis.proto b/third_party/proto/cosmos/bank/v1beta1/genesis.proto new file mode 100644 index 0000000000..25c80a38b5 --- /dev/null +++ b/third_party/proto/cosmos/bank/v1beta1/genesis.proto @@ -0,0 +1,38 @@ +syntax = "proto3"; +package cosmos.bank.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/bank/v1beta1/bank.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types"; + +// GenesisState defines the bank module's genesis state. +message GenesisState { + // params defines all the paramaters of the module. + Params params = 1 [(gogoproto.nullable) = false]; + + // balances is an array containing the balances of all the accounts. + repeated Balance balances = 2 [(gogoproto.nullable) = false]; + + // supply represents the total supply. + repeated cosmos.base.v1beta1.Coin supply = 3 + [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false]; + + // denom_metadata defines the metadata of the differents coins. + repeated Metadata denom_metadata = 4 [(gogoproto.moretags) = "yaml:\"denom_metadata\"", (gogoproto.nullable) = false]; +} + +// Balance defines an account address and balance pair used in the bank module's +// genesis state. +message Balance { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // address is the address of the balance holder. + string address = 1; + + // coins defines the different coins this balance holds. + repeated cosmos.base.v1beta1.Coin coins = 2 + [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false]; +} diff --git a/third_party/proto/cosmos/bank/v1beta1/query.proto b/third_party/proto/cosmos/bank/v1beta1/query.proto new file mode 100644 index 0000000000..bc5e29137a --- /dev/null +++ b/third_party/proto/cosmos/bank/v1beta1/query.proto @@ -0,0 +1,150 @@ +syntax = "proto3"; +package cosmos.bank.v1beta1; + +import "cosmos/base/query/v1beta1/pagination.proto"; +import "gogoproto/gogo.proto"; +import "google/api/annotations.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/bank/v1beta1/bank.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types"; + +// Query defines the gRPC querier service. +service Query { + // Balance queries the balance of a single coin for a single account. + rpc Balance(QueryBalanceRequest) returns (QueryBalanceResponse) { + option (google.api.http).get = "/cosmos/bank/v1beta1/balances/{address}/{denom}"; + } + + // AllBalances queries the balance of all coins for a single account. + rpc AllBalances(QueryAllBalancesRequest) returns (QueryAllBalancesResponse) { + option (google.api.http).get = "/cosmos/bank/v1beta1/balances/{address}"; + } + + // TotalSupply queries the total supply of all coins. + rpc TotalSupply(QueryTotalSupplyRequest) returns (QueryTotalSupplyResponse) { + option (google.api.http).get = "/cosmos/bank/v1beta1/supply"; + } + + // SupplyOf queries the supply of a single coin. + rpc SupplyOf(QuerySupplyOfRequest) returns (QuerySupplyOfResponse) { + option (google.api.http).get = "/cosmos/bank/v1beta1/supply/{denom}"; + } + + // Params queries the parameters of x/bank module. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/cosmos/bank/v1beta1/params"; + } + + // DenomsMetadata queries the client metadata of a given coin denomination. + rpc DenomMetadata(QueryDenomMetadataRequest) returns (QueryDenomMetadataResponse) { + option (google.api.http).get = "/cosmos/bank/v1beta1/denoms_metadata/{denom}"; + } + + // DenomsMetadata queries the client metadata for all registered coin denominations. + rpc DenomsMetadata(QueryDenomsMetadataRequest) returns (QueryDenomsMetadataResponse) { + option (google.api.http).get = "/cosmos/bank/v1beta1/denoms_metadata"; + } +} + +// QueryBalanceRequest is the request type for the Query/Balance RPC method. +message QueryBalanceRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // address is the address to query balances for. + string address = 1; + + // denom is the coin denom to query balances for. + string denom = 2; +} + +// QueryBalanceResponse is the response type for the Query/Balance RPC method. +message QueryBalanceResponse { + // balance is the balance of the coin. + cosmos.base.v1beta1.Coin balance = 1; +} + +// QueryBalanceRequest is the request type for the Query/AllBalances RPC method. +message QueryAllBalancesRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // address is the address to query balances for. + string address = 1; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryAllBalancesResponse is the response type for the Query/AllBalances RPC +// method. +message QueryAllBalancesResponse { + // balances is the balances of all the coins. + repeated cosmos.base.v1beta1.Coin balances = 1 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryTotalSupplyRequest is the request type for the Query/TotalSupply RPC +// method. +message QueryTotalSupplyRequest {} + +// QueryTotalSupplyResponse is the response type for the Query/TotalSupply RPC +// method +message QueryTotalSupplyResponse { + // supply is the supply of the coins + repeated cosmos.base.v1beta1.Coin supply = 1 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; +} + +// QuerySupplyOfRequest is the request type for the Query/SupplyOf RPC method. +message QuerySupplyOfRequest { + // denom is the coin denom to query balances for. + string denom = 1; +} + +// QuerySupplyOfResponse is the response type for the Query/SupplyOf RPC method. +message QuerySupplyOfResponse { + // amount is the supply of the coin. + cosmos.base.v1beta1.Coin amount = 1 [(gogoproto.nullable) = false]; +} + +// QueryParamsRequest defines the request type for querying x/bank parameters. +message QueryParamsRequest {} + +// QueryParamsResponse defines the response type for querying x/bank parameters. +message QueryParamsResponse { + Params params = 1 [(gogoproto.nullable) = false]; +} + +// QueryDenomsMetadataRequest is the request type for the Query/DenomsMetadata RPC method. +message QueryDenomsMetadataRequest { + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryDenomsMetadataResponse is the response type for the Query/DenomsMetadata RPC +// method. +message QueryDenomsMetadataResponse { + // metadata provides the client information for all the registered tokens. + repeated Metadata metadatas = 1 [(gogoproto.nullable) = false]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryDenomMetadataRequest is the request type for the Query/DenomMetadata RPC method. +message QueryDenomMetadataRequest { + // denom is the coin denom to query the metadata for. + string denom = 1; +} + +// QueryDenomMetadataResponse is the response type for the Query/DenomMetadata RPC +// method. +message QueryDenomMetadataResponse { + // metadata describes and provides all the client information for the requested token. + Metadata metadata = 1 [(gogoproto.nullable) = false]; +} diff --git a/third_party/proto/cosmos/bank/v1beta1/tx.proto b/third_party/proto/cosmos/bank/v1beta1/tx.proto new file mode 100644 index 0000000000..26b2ab41f4 --- /dev/null +++ b/third_party/proto/cosmos/bank/v1beta1/tx.proto @@ -0,0 +1,42 @@ +syntax = "proto3"; +package cosmos.bank.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/bank/v1beta1/bank.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types"; + +// Msg defines the bank Msg service. +service Msg { + // Send defines a method for sending coins from one account to another account. + rpc Send(MsgSend) returns (MsgSendResponse); + + // MultiSend defines a method for sending coins from some accounts to other accounts. + rpc MultiSend(MsgMultiSend) returns (MsgMultiSendResponse); +} + +// MsgSend represents a message to send coins from one account to another. +message MsgSend { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string from_address = 1 [(gogoproto.moretags) = "yaml:\"from_address\""]; + string to_address = 2 [(gogoproto.moretags) = "yaml:\"to_address\""]; + repeated cosmos.base.v1beta1.Coin amount = 3 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; +} + +// MsgSendResponse defines the Msg/Send response type. +message MsgSendResponse {} + +// MsgMultiSend represents an arbitrary multi-in, multi-out send message. +message MsgMultiSend { + option (gogoproto.equal) = false; + + repeated Input inputs = 1 [(gogoproto.nullable) = false]; + repeated Output outputs = 2 [(gogoproto.nullable) = false]; +} + +// MsgMultiSendResponse defines the Msg/MultiSend response type. +message MsgMultiSendResponse {} diff --git a/third_party/proto/cosmos/base/abci/v1beta1/abci.proto b/third_party/proto/cosmos/base/abci/v1beta1/abci.proto new file mode 100644 index 0000000000..72da2aacc3 --- /dev/null +++ b/third_party/proto/cosmos/base/abci/v1beta1/abci.proto @@ -0,0 +1,137 @@ +syntax = "proto3"; +package cosmos.base.abci.v1beta1; + +import "gogoproto/gogo.proto"; +import "tendermint/abci/types.proto"; +import "google/protobuf/any.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/types"; +option (gogoproto.goproto_stringer_all) = false; + +// TxResponse defines a structure containing relevant tx data and metadata. The +// tags are stringified and the log is JSON decoded. +message TxResponse { + option (gogoproto.goproto_getters) = false; + // The block height + int64 height = 1; + // The transaction hash. + string txhash = 2 [(gogoproto.customname) = "TxHash"]; + // Namespace for the Code + string codespace = 3; + // Response code. + uint32 code = 4; + // Result bytes, if any. + string data = 5; + // The output of the application's logger (raw string). May be + // non-deterministic. + string raw_log = 6; + // The output of the application's logger (typed). May be non-deterministic. + repeated ABCIMessageLog logs = 7 [(gogoproto.castrepeated) = "ABCIMessageLogs", (gogoproto.nullable) = false]; + // Additional information. May be non-deterministic. + string info = 8; + // Amount of gas requested for transaction. + int64 gas_wanted = 9; + // Amount of gas consumed by transaction. + int64 gas_used = 10; + // The request transaction bytes. + google.protobuf.Any tx = 11; + // Time of the previous block. For heights > 1, it's the weighted median of + // the timestamps of the valid votes in the block.LastCommit. For height == 1, + // it's genesis time. + string timestamp = 12; +} + +// ABCIMessageLog defines a structure containing an indexed tx ABCI message log. +message ABCIMessageLog { + option (gogoproto.stringer) = true; + + uint32 msg_index = 1; + string log = 2; + + // Events contains a slice of Event objects that were emitted during some + // execution. + repeated StringEvent events = 3 [(gogoproto.castrepeated) = "StringEvents", (gogoproto.nullable) = false]; +} + +// StringEvent defines en Event object wrapper where all the attributes +// contain key/value pairs that are strings instead of raw bytes. +message StringEvent { + option (gogoproto.stringer) = true; + + string type = 1; + repeated Attribute attributes = 2 [(gogoproto.nullable) = false]; +} + +// Attribute defines an attribute wrapper where the key and value are +// strings instead of raw bytes. +message Attribute { + string key = 1; + string value = 2; +} + +// GasInfo defines tx execution gas context. +message GasInfo { + // GasWanted is the maximum units of work we allow this tx to perform. + uint64 gas_wanted = 1 [(gogoproto.moretags) = "yaml:\"gas_wanted\""]; + + // GasUsed is the amount of gas actually consumed. + uint64 gas_used = 2 [(gogoproto.moretags) = "yaml:\"gas_used\""]; +} + +// Result is the union of ResponseFormat and ResponseCheckTx. +message Result { + option (gogoproto.goproto_getters) = false; + + // Data is any data returned from message or handler execution. It MUST be + // length prefixed in order to separate data from multiple message executions. + bytes data = 1; + + // Log contains the log information from message or handler execution. + string log = 2; + + // Events contains a slice of Event objects that were emitted during message + // or handler execution. + repeated tendermint.abci.Event events = 3 [(gogoproto.nullable) = false]; +} + +// SimulationResponse defines the response generated when a transaction is +// successfully simulated. +message SimulationResponse { + GasInfo gas_info = 1 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; + Result result = 2; +} + +// MsgData defines the data returned in a Result object during message +// execution. +message MsgData { + option (gogoproto.stringer) = true; + + string msg_type = 1; + bytes data = 2; +} + +// TxMsgData defines a list of MsgData. A transaction will have a MsgData object +// for each message. +message TxMsgData { + option (gogoproto.stringer) = true; + + repeated MsgData data = 1; +} + +// SearchTxsResult defines a structure for querying txs pageable +message SearchTxsResult { + option (gogoproto.stringer) = true; + + // Count of all txs + uint64 total_count = 1 [(gogoproto.moretags) = "yaml:\"total_count\"", (gogoproto.jsontag) = "total_count"]; + // Count of txs in current page + uint64 count = 2; + // Index of current page, start from 1 + uint64 page_number = 3 [(gogoproto.moretags) = "yaml:\"page_number\"", (gogoproto.jsontag) = "page_number"]; + // Count of total pages + uint64 page_total = 4 [(gogoproto.moretags) = "yaml:\"page_total\"", (gogoproto.jsontag) = "page_total"]; + // Max count txs per page + uint64 limit = 5; + // List of txs in current page + repeated TxResponse txs = 6; +} diff --git a/third_party/proto/cosmos/base/kv/v1beta1/kv.proto b/third_party/proto/cosmos/base/kv/v1beta1/kv.proto new file mode 100644 index 0000000000..4e9b8d2850 --- /dev/null +++ b/third_party/proto/cosmos/base/kv/v1beta1/kv.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; +package cosmos.base.kv.v1beta1; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/types/kv"; + +// Pairs defines a repeated slice of Pair objects. +message Pairs { + repeated Pair pairs = 1 [(gogoproto.nullable) = false]; +} + +// Pair defines a key/value bytes tuple. +message Pair { + bytes key = 1; + bytes value = 2; +} diff --git a/third_party/proto/cosmos/base/query/v1beta1/pagination.proto b/third_party/proto/cosmos/base/query/v1beta1/pagination.proto new file mode 100644 index 0000000000..2a8cbccedd --- /dev/null +++ b/third_party/proto/cosmos/base/query/v1beta1/pagination.proto @@ -0,0 +1,50 @@ +syntax = "proto3"; +package cosmos.base.query.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/types/query"; + +// PageRequest is to be embedded in gRPC request messages for efficient +// pagination. Ex: +// +// message SomeRequest { +// Foo some_parameter = 1; +// PageRequest pagination = 2; +// } +message PageRequest { + // 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. + bytes key = 1; + + // 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. + uint64 offset = 2; + + // 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. + uint64 limit = 3; + + // 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. + bool count_total = 4; +} + +// PageResponse is to be embedded in gRPC response messages where the +// corresponding request message has used PageRequest. +// +// message SomeResponse { +// repeated Bar results = 1; +// PageResponse page = 2; +// } +message PageResponse { + // next_key is the key to be passed to PageRequest.key to + // query the next page most efficiently + bytes next_key = 1; + + // total is total number of results available if PageRequest.count_total + // was set, its value is undefined otherwise + uint64 total = 2; +} diff --git a/third_party/proto/cosmos/base/reflection/v1beta1/reflection.proto b/third_party/proto/cosmos/base/reflection/v1beta1/reflection.proto new file mode 100644 index 0000000000..22670e72b8 --- /dev/null +++ b/third_party/proto/cosmos/base/reflection/v1beta1/reflection.proto @@ -0,0 +1,44 @@ +syntax = "proto3"; +package cosmos.base.reflection.v1beta1; + +import "google/api/annotations.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/client/grpc/reflection"; + +// ReflectionService defines a service for interface reflection. +service ReflectionService { + // ListAllInterfaces lists all the interfaces registered in the interface + // registry. + rpc ListAllInterfaces(ListAllInterfacesRequest) returns (ListAllInterfacesResponse) { + option (google.api.http).get = "/cosmos/base/reflection/v1beta1/interfaces"; + }; + + // ListImplementations list all the concrete types that implement a given + // interface. + rpc ListImplementations(ListImplementationsRequest) returns (ListImplementationsResponse) { + option (google.api.http).get = "/cosmos/base/reflection/v1beta1/interfaces/" + "{interface_name}/implementations"; + }; +} + +// ListAllInterfacesRequest is the request type of the ListAllInterfaces RPC. +message ListAllInterfacesRequest {} + +// ListAllInterfacesResponse is the response type of the ListAllInterfaces RPC. +message ListAllInterfacesResponse { + // interface_names is an array of all the registered interfaces. + repeated string interface_names = 1; +} + +// ListImplementationsRequest is the request type of the ListImplementations +// RPC. +message ListImplementationsRequest { + // interface_name defines the interface to query the implementations for. + string interface_name = 1; +} + +// ListImplementationsResponse is the response type of the ListImplementations +// RPC. +message ListImplementationsResponse { + repeated string implementation_message_names = 1; +} diff --git a/third_party/proto/cosmos/base/snapshots/v1beta1/snapshot.proto b/third_party/proto/cosmos/base/snapshots/v1beta1/snapshot.proto new file mode 100644 index 0000000000..9ac5a7c31b --- /dev/null +++ b/third_party/proto/cosmos/base/snapshots/v1beta1/snapshot.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; +package cosmos.base.snapshots.v1beta1; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/snapshots/types"; + +// Snapshot contains Tendermint state sync snapshot info. +message Snapshot { + uint64 height = 1; + uint32 format = 2; + uint32 chunks = 3; + bytes hash = 4; + Metadata metadata = 5 [(gogoproto.nullable) = false]; +} + +// Metadata contains SDK-specific snapshot metadata. +message Metadata { + repeated bytes chunk_hashes = 1; // SHA-256 chunk hashes +} \ No newline at end of file diff --git a/third_party/proto/cosmos/base/store/v1beta1/commit_info.proto b/third_party/proto/cosmos/base/store/v1beta1/commit_info.proto new file mode 100644 index 0000000000..98a33d30e7 --- /dev/null +++ b/third_party/proto/cosmos/base/store/v1beta1/commit_info.proto @@ -0,0 +1,29 @@ +syntax = "proto3"; +package cosmos.base.store.v1beta1; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/store/types"; + +// CommitInfo defines commit information used by the multi-store when committing +// a version/height. +message CommitInfo { + int64 version = 1; + repeated StoreInfo store_infos = 2 [(gogoproto.nullable) = false]; +} + +// StoreInfo defines store-specific commit information. It contains a reference +// between a store name and the commit ID. +message StoreInfo { + string name = 1; + CommitID commit_id = 2 [(gogoproto.nullable) = false]; +} + +// CommitID defines the committment information when a specific store is +// committed. +message CommitID { + option (gogoproto.goproto_stringer) = false; + + int64 version = 1; + bytes hash = 2; +} diff --git a/third_party/proto/cosmos/base/store/v1beta1/snapshot.proto b/third_party/proto/cosmos/base/store/v1beta1/snapshot.proto new file mode 100644 index 0000000000..834855093b --- /dev/null +++ b/third_party/proto/cosmos/base/store/v1beta1/snapshot.proto @@ -0,0 +1,28 @@ +syntax = "proto3"; +package cosmos.base.store.v1beta1; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/store/types"; + +// SnapshotItem is an item contained in a rootmulti.Store snapshot. +message SnapshotItem { + // item is the specific type of snapshot item. + oneof item { + SnapshotStoreItem store = 1; + SnapshotIAVLItem iavl = 2 [(gogoproto.customname) = "IAVL"]; + } +} + +// SnapshotStoreItem contains metadata about a snapshotted store. +message SnapshotStoreItem { + string name = 1; +} + +// SnapshotIAVLItem is an exported IAVL node. +message SnapshotIAVLItem { + bytes key = 1; + bytes value = 2; + int64 version = 3; + int32 height = 4; +} \ No newline at end of file diff --git a/third_party/proto/cosmos/base/tendermint/v1beta1/query.proto b/third_party/proto/cosmos/base/tendermint/v1beta1/query.proto new file mode 100644 index 0000000000..50cb5852cd --- /dev/null +++ b/third_party/proto/cosmos/base/tendermint/v1beta1/query.proto @@ -0,0 +1,136 @@ +syntax = "proto3"; +package cosmos.base.tendermint.v1beta1; + +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; +import "google/api/annotations.proto"; +import "tendermint/p2p/types.proto"; +import "tendermint/types/block.proto"; +import "tendermint/types/types.proto"; +import "cosmos/base/query/v1beta1/pagination.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/client/grpc/tmservice"; + +// Service defines the gRPC querier service for tendermint queries. +service Service { + // GetNodeInfo queries the current node info. + rpc GetNodeInfo(GetNodeInfoRequest) returns (GetNodeInfoResponse) { + option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/node_info"; + } + // GetSyncing queries node syncing. + rpc GetSyncing(GetSyncingRequest) returns (GetSyncingResponse) { + option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/syncing"; + } + // GetLatestBlock returns the latest block. + rpc GetLatestBlock(GetLatestBlockRequest) returns (GetLatestBlockResponse) { + option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/blocks/latest"; + } + // GetBlockByHeight queries block for given height. + rpc GetBlockByHeight(GetBlockByHeightRequest) returns (GetBlockByHeightResponse) { + option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/blocks/{height}"; + } + + // GetLatestValidatorSet queries latest validator-set. + rpc GetLatestValidatorSet(GetLatestValidatorSetRequest) returns (GetLatestValidatorSetResponse) { + option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/validatorsets/latest"; + } + // GetValidatorSetByHeight queries validator-set at a given height. + rpc GetValidatorSetByHeight(GetValidatorSetByHeightRequest) returns (GetValidatorSetByHeightResponse) { + option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/validatorsets/{height}"; + } +} + +// GetValidatorSetByHeightRequest is the request type for the Query/GetValidatorSetByHeight RPC method. +message GetValidatorSetByHeightRequest { + int64 height = 1; + // pagination defines an pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// GetValidatorSetByHeightResponse is the response type for the Query/GetValidatorSetByHeight RPC method. +message GetValidatorSetByHeightResponse { + int64 block_height = 1; + repeated Validator validators = 2; + // pagination defines an pagination for the response. + cosmos.base.query.v1beta1.PageResponse pagination = 3; +} + +// GetLatestValidatorSetRequest is the request type for the Query/GetValidatorSetByHeight RPC method. +message GetLatestValidatorSetRequest { + // pagination defines an pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// GetLatestValidatorSetResponse is the response type for the Query/GetValidatorSetByHeight RPC method. +message GetLatestValidatorSetResponse { + int64 block_height = 1; + repeated Validator validators = 2; + // pagination defines an pagination for the response. + cosmos.base.query.v1beta1.PageResponse pagination = 3; +} + +// Validator is the type for the validator-set. +message Validator { + string address = 1; + google.protobuf.Any pub_key = 2; + int64 voting_power = 3; + int64 proposer_priority = 4; +} + +// GetBlockByHeightRequest is the request type for the Query/GetBlockByHeight RPC method. +message GetBlockByHeightRequest { + int64 height = 1; +} + +// GetBlockByHeightResponse is the response type for the Query/GetBlockByHeight RPC method. +message GetBlockByHeightResponse { + .tendermint.types.BlockID block_id = 1; + .tendermint.types.Block block = 2; +} + +// GetLatestBlockRequest is the request type for the Query/GetLatestBlock RPC method. +message GetLatestBlockRequest {} + +// GetLatestBlockResponse is the response type for the Query/GetLatestBlock RPC method. +message GetLatestBlockResponse { + .tendermint.types.BlockID block_id = 1; + .tendermint.types.Block block = 2; +} + +// GetSyncingRequest is the request type for the Query/GetSyncing RPC method. +message GetSyncingRequest {} + +// GetSyncingResponse is the response type for the Query/GetSyncing RPC method. +message GetSyncingResponse { + bool syncing = 1; +} + +// GetNodeInfoRequest is the request type for the Query/GetNodeInfo RPC method. +message GetNodeInfoRequest {} + +// GetNodeInfoResponse is the request type for the Query/GetNodeInfo RPC method. +message GetNodeInfoResponse { + .tendermint.p2p.DefaultNodeInfo default_node_info = 1; + VersionInfo application_version = 2; +} + +// VersionInfo is the type for the GetNodeInfoResponse message. +message VersionInfo { + string name = 1; + string app_name = 2; + string version = 3; + string git_commit = 4; + string build_tags = 5; + string go_version = 6; + repeated Module build_deps = 7; +} + +// Module is the type for VersionInfo +message Module { + // module path + string path = 1; + // module version + string version = 2; + // checksum + string sum = 3; +} diff --git a/third_party/proto/cosmos/base/v1beta1/coin.proto b/third_party/proto/cosmos/base/v1beta1/coin.proto new file mode 100644 index 0000000000..fab75284b7 --- /dev/null +++ b/third_party/proto/cosmos/base/v1beta1/coin.proto @@ -0,0 +1,40 @@ +syntax = "proto3"; +package cosmos.base.v1beta1; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/types"; +option (gogoproto.goproto_stringer_all) = false; +option (gogoproto.stringer_all) = false; + +// Coin defines a token with a denomination and an amount. +// +// NOTE: The amount field is an Int which implements the custom method +// signatures required by gogoproto. +message Coin { + option (gogoproto.equal) = true; + + string denom = 1; + string amount = 2 [(gogoproto.customtype) = "Int", (gogoproto.nullable) = false]; +} + +// DecCoin defines a token with a denomination and a decimal amount. +// +// NOTE: The amount field is an Dec which implements the custom method +// signatures required by gogoproto. +message DecCoin { + option (gogoproto.equal) = true; + + string denom = 1; + string amount = 2 [(gogoproto.customtype) = "Dec", (gogoproto.nullable) = false]; +} + +// IntProto defines a Protobuf wrapper around an Int object. +message IntProto { + string int = 1 [(gogoproto.customtype) = "Int", (gogoproto.nullable) = false]; +} + +// DecProto defines a Protobuf wrapper around a Dec object. +message DecProto { + string dec = 1 [(gogoproto.customtype) = "Dec", (gogoproto.nullable) = false]; +} diff --git a/third_party/proto/cosmos/capability/v1beta1/capability.proto b/third_party/proto/cosmos/capability/v1beta1/capability.proto new file mode 100644 index 0000000000..1c8332f341 --- /dev/null +++ b/third_party/proto/cosmos/capability/v1beta1/capability.proto @@ -0,0 +1,30 @@ +syntax = "proto3"; +package cosmos.capability.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/capability/types"; + +import "gogoproto/gogo.proto"; + +// Capability defines an implementation of an object capability. The index +// provided to a Capability must be globally unique. +message Capability { + option (gogoproto.goproto_stringer) = false; + + uint64 index = 1 [(gogoproto.moretags) = "yaml:\"index\""]; +} + +// Owner defines a single capability owner. An owner is defined by the name of +// capability and the module name. +message Owner { + option (gogoproto.goproto_stringer) = false; + option (gogoproto.goproto_getters) = false; + + string module = 1 [(gogoproto.moretags) = "yaml:\"module\""]; + string name = 2 [(gogoproto.moretags) = "yaml:\"name\""]; +} + +// CapabilityOwners defines a set of owners of a single Capability. The set of +// owners must be unique. +message CapabilityOwners { + repeated Owner owners = 1 [(gogoproto.nullable) = false]; +} diff --git a/third_party/proto/cosmos/capability/v1beta1/genesis.proto b/third_party/proto/cosmos/capability/v1beta1/genesis.proto new file mode 100644 index 0000000000..05bb0afc4a --- /dev/null +++ b/third_party/proto/cosmos/capability/v1beta1/genesis.proto @@ -0,0 +1,26 @@ +syntax = "proto3"; +package cosmos.capability.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos/capability/v1beta1/capability.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/capability/types"; + +// GenesisOwners defines the capability owners with their corresponding index. +message GenesisOwners { + // index is the index of the capability owner. + uint64 index = 1; + + // index_owners are the owners at the given index. + CapabilityOwners index_owners = 2 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"index_owners\""]; +} + +// GenesisState defines the capability module's genesis state. +message GenesisState { + // index is the capability global index. + uint64 index = 1; + + // owners represents a map from index to owners of the capability index + // index key is string to allow amino marshalling. + repeated GenesisOwners owners = 2 [(gogoproto.nullable) = false]; +} diff --git a/third_party/proto/cosmos/crisis/v1beta1/genesis.proto b/third_party/proto/cosmos/crisis/v1beta1/genesis.proto new file mode 100644 index 0000000000..5b0ff7ec72 --- /dev/null +++ b/third_party/proto/cosmos/crisis/v1beta1/genesis.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; +package cosmos.crisis.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/crisis/types"; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; + +// GenesisState defines the crisis module's genesis state. +message GenesisState { + // constant_fee is the fee used to verify the invariant in the crisis + // module. + cosmos.base.v1beta1.Coin constant_fee = 3 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"constant_fee\""]; +} diff --git a/third_party/proto/cosmos/crisis/v1beta1/tx.proto b/third_party/proto/cosmos/crisis/v1beta1/tx.proto new file mode 100644 index 0000000000..26457ad6d5 --- /dev/null +++ b/third_party/proto/cosmos/crisis/v1beta1/tx.proto @@ -0,0 +1,25 @@ +syntax = "proto3"; +package cosmos.crisis.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/crisis/types"; + +import "gogoproto/gogo.proto"; + +// Msg defines the bank Msg service. +service Msg { + // VerifyInvariant defines a method to verify a particular invariance. + rpc VerifyInvariant(MsgVerifyInvariant) returns (MsgVerifyInvariantResponse); +} + +// MsgVerifyInvariant represents a message to verify a particular invariance. +message MsgVerifyInvariant { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string sender = 1; + string invariant_module_name = 2 [(gogoproto.moretags) = "yaml:\"invariant_module_name\""]; + string invariant_route = 3 [(gogoproto.moretags) = "yaml:\"invariant_route\""]; +} + +// MsgVerifyInvariantResponse defines the Msg/VerifyInvariant response type. +message MsgVerifyInvariantResponse {} diff --git a/third_party/proto/cosmos/crypto/ed25519/keys.proto b/third_party/proto/cosmos/crypto/ed25519/keys.proto new file mode 100644 index 0000000000..bed9c29cc7 --- /dev/null +++ b/third_party/proto/cosmos/crypto/ed25519/keys.proto @@ -0,0 +1,22 @@ +syntax = "proto3"; +package cosmos.crypto.ed25519; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519"; + +// PubKey defines a ed25519 public key +// Key is the compressed form of the pubkey. The first byte depends is a 0x02 byte +// if the y-coordinate is the lexicographically largest of the two associated with +// the x-coordinate. Otherwise the first byte is a 0x03. +// This prefix is followed with the x-coordinate. +message PubKey { + option (gogoproto.goproto_stringer) = false; + + bytes key = 1 [(gogoproto.casttype) = "crypto/ed25519.PublicKey"]; +} + +// PrivKey defines a ed25519 private key. +message PrivKey { + bytes key = 1 [(gogoproto.casttype) = "crypto/ed25519.PrivateKey"]; +} diff --git a/third_party/proto/cosmos/crypto/multisig/keys.proto b/third_party/proto/cosmos/crypto/multisig/keys.proto new file mode 100644 index 0000000000..f8398e8052 --- /dev/null +++ b/third_party/proto/cosmos/crypto/multisig/keys.proto @@ -0,0 +1,18 @@ +syntax = "proto3"; +package cosmos.crypto.multisig; + +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/crypto/keys/multisig"; + +// LegacyAminoPubKey specifies a public key type +// which nests multiple public keys and a threshold, +// it uses legacy amino address rules. +message LegacyAminoPubKey { + option (gogoproto.goproto_getters) = false; + + uint32 threshold = 1 [(gogoproto.moretags) = "yaml:\"threshold\""]; + repeated google.protobuf.Any public_keys = 2 + [(gogoproto.customname) = "PubKeys", (gogoproto.moretags) = "yaml:\"pubkeys\""]; +} diff --git a/third_party/proto/cosmos/crypto/multisig/v1beta1/multisig.proto b/third_party/proto/cosmos/crypto/multisig/v1beta1/multisig.proto new file mode 100644 index 0000000000..bf671f1711 --- /dev/null +++ b/third_party/proto/cosmos/crypto/multisig/v1beta1/multisig.proto @@ -0,0 +1,25 @@ +syntax = "proto3"; +package cosmos.crypto.multisig.v1beta1; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/crypto/types"; + +// MultiSignature wraps the signatures from a multisig.LegacyAminoPubKey. +// See cosmos.tx.v1betata1.ModeInfo.Multi for how to specify which signers +// signed and with which modes. +message MultiSignature { + option (gogoproto.goproto_unrecognized) = true; + repeated bytes signatures = 1; +} + +// CompactBitArray is an implementation of a space efficient bit array. +// This is used to ensure that the encoded data takes up a minimal amount of +// space after proto encoding. +// This is not thread safe, and is not intended for concurrent usage. +message CompactBitArray { + option (gogoproto.goproto_stringer) = false; + + uint32 extra_bits_stored = 1; + bytes elems = 2; +} diff --git a/third_party/proto/cosmos/crypto/secp256k1/keys.proto b/third_party/proto/cosmos/crypto/secp256k1/keys.proto new file mode 100644 index 0000000000..a22725713a --- /dev/null +++ b/third_party/proto/cosmos/crypto/secp256k1/keys.proto @@ -0,0 +1,22 @@ +syntax = "proto3"; +package cosmos.crypto.secp256k1; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1"; + +// PubKey defines a secp256k1 public key +// Key is the compressed form of the pubkey. The first byte depends is a 0x02 byte +// if the y-coordinate is the lexicographically largest of the two associated with +// the x-coordinate. Otherwise the first byte is a 0x03. +// This prefix is followed with the x-coordinate. +message PubKey { + option (gogoproto.goproto_stringer) = false; + + bytes key = 1; +} + +// PrivKey defines a secp256k1 private key. +message PrivKey { + bytes key = 1; +} diff --git a/third_party/proto/cosmos/distribution/v1beta1/distribution.proto b/third_party/proto/cosmos/distribution/v1beta1/distribution.proto new file mode 100644 index 0000000000..ae98ec0b98 --- /dev/null +++ b/third_party/proto/cosmos/distribution/v1beta1/distribution.proto @@ -0,0 +1,157 @@ +syntax = "proto3"; +package cosmos.distribution.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/distribution/types"; +option (gogoproto.equal_all) = true; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; + +// Params defines the set of params for the distribution module. +message Params { + option (gogoproto.goproto_stringer) = false; + string community_tax = 1 [ + (gogoproto.moretags) = "yaml:\"community_tax\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; + string base_proposer_reward = 2 [ + (gogoproto.moretags) = "yaml:\"base_proposer_reward\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; + string bonus_proposer_reward = 3 [ + (gogoproto.moretags) = "yaml:\"bonus_proposer_reward\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; + bool withdraw_addr_enabled = 4 [(gogoproto.moretags) = "yaml:\"withdraw_addr_enabled\""]; +} + +// ValidatorHistoricalRewards represents historical rewards for a validator. +// Height is implicit within the store key. +// Cumulative reward ratio is the sum from the zeroeth period +// until this period of rewards / tokens, per the spec. +// The reference count indicates the number of objects +// which might need to reference this historical entry at any point. +// ReferenceCount = +// number of outstanding delegations which ended the associated period (and +// might need to read that record) +// + number of slashes which ended the associated period (and might need to +// read that record) +// + one per validator for the zeroeth period, set on initialization +message ValidatorHistoricalRewards { + repeated cosmos.base.v1beta1.DecCoin cumulative_reward_ratio = 1 [ + (gogoproto.moretags) = "yaml:\"cumulative_reward_ratio\"", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", + (gogoproto.nullable) = false + ]; + uint32 reference_count = 2 [(gogoproto.moretags) = "yaml:\"reference_count\""]; +} + +// ValidatorCurrentRewards represents current rewards and current +// period for a validator kept as a running counter and incremented +// each block as long as the validator's tokens remain constant. +message ValidatorCurrentRewards { + repeated cosmos.base.v1beta1.DecCoin rewards = 1 + [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", (gogoproto.nullable) = false]; + uint64 period = 2; +} + +// ValidatorAccumulatedCommission represents accumulated commission +// for a validator kept as a running counter, can be withdrawn at any time. +message ValidatorAccumulatedCommission { + repeated cosmos.base.v1beta1.DecCoin commission = 1 + [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", (gogoproto.nullable) = false]; +} + +// ValidatorOutstandingRewards represents outstanding (un-withdrawn) rewards +// for a validator inexpensive to track, allows simple sanity checks. +message ValidatorOutstandingRewards { + repeated cosmos.base.v1beta1.DecCoin rewards = 1 [ + (gogoproto.moretags) = "yaml:\"rewards\"", + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", + (gogoproto.nullable) = false + ]; +} + +// ValidatorSlashEvent represents a validator slash event. +// Height is implicit within the store key. +// This is needed to calculate appropriate amount of staking tokens +// for delegations which are withdrawn after a slash has occurred. +message ValidatorSlashEvent { + uint64 validator_period = 1 [(gogoproto.moretags) = "yaml:\"validator_period\""]; + string fraction = 2 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false]; +} + +// ValidatorSlashEvents is a collection of ValidatorSlashEvent messages. +message ValidatorSlashEvents { + option (gogoproto.goproto_stringer) = false; + repeated ValidatorSlashEvent validator_slash_events = 1 + [(gogoproto.moretags) = "yaml:\"validator_slash_events\"", (gogoproto.nullable) = false]; +} + +// FeePool is the global fee pool for distribution. +message FeePool { + repeated cosmos.base.v1beta1.DecCoin community_pool = 1 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", + (gogoproto.moretags) = "yaml:\"community_pool\"" + ]; +} + +// CommunityPoolSpendProposal details a proposal for use of community funds, +// together with how many coins are proposed to be spent, and to which +// recipient account. +message CommunityPoolSpendProposal { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + + string title = 1; + string description = 2; + string recipient = 3; + repeated cosmos.base.v1beta1.Coin amount = 4 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; +} + +// DelegatorStartingInfo represents the starting info for a delegator reward +// period. It tracks the previous validator period, the delegation's amount of +// staking token, and the creation height (to check later on if any slashes have +// occurred). NOTE: Even though validators are slashed to whole staking tokens, +// the delegators within the validator may be left with less than a full token, +// thus sdk.Dec is used. +message DelegatorStartingInfo { + uint64 previous_period = 1 [(gogoproto.moretags) = "yaml:\"previous_period\""]; + string stake = 2 [ + (gogoproto.moretags) = "yaml:\"stake\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; + uint64 height = 3 [(gogoproto.moretags) = "yaml:\"creation_height\"", (gogoproto.jsontag) = "creation_height"]; +} + +// DelegationDelegatorReward represents the properties +// of a delegator's delegation reward. +message DelegationDelegatorReward { + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = true; + + string validator_address = 1 [(gogoproto.moretags) = "yaml:\"validator_address\""]; + + repeated cosmos.base.v1beta1.DecCoin reward = 2 + [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", (gogoproto.nullable) = false]; +} + +// CommunityPoolSpendProposalWithDeposit defines a CommunityPoolSpendProposal +// with a deposit +message CommunityPoolSpendProposalWithDeposit { + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = true; + + string title = 1 [(gogoproto.moretags) = "yaml:\"title\""]; + string description = 2 [(gogoproto.moretags) = "yaml:\"description\""]; + string recipient = 3 [(gogoproto.moretags) = "yaml:\"recipient\""]; + string amount = 4 [(gogoproto.moretags) = "yaml:\"amount\""]; + string deposit = 5 [(gogoproto.moretags) = "yaml:\"deposit\""]; +} diff --git a/third_party/proto/cosmos/distribution/v1beta1/genesis.proto b/third_party/proto/cosmos/distribution/v1beta1/genesis.proto new file mode 100644 index 0000000000..c0b17cdf11 --- /dev/null +++ b/third_party/proto/cosmos/distribution/v1beta1/genesis.proto @@ -0,0 +1,155 @@ +syntax = "proto3"; +package cosmos.distribution.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/distribution/types"; +option (gogoproto.equal_all) = true; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/distribution/v1beta1/distribution.proto"; + +// DelegatorWithdrawInfo is the address for where distributions rewards are +// withdrawn to by default this struct is only used at genesis to feed in +// default withdraw addresses. +message DelegatorWithdrawInfo { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_address is the address of the delegator. + string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; + + // withdraw_address is the address to withdraw the delegation rewards to. + string withdraw_address = 2 [(gogoproto.moretags) = "yaml:\"withdraw_address\""]; +} + +// ValidatorOutstandingRewardsRecord is used for import/export via genesis json. +message ValidatorOutstandingRewardsRecord { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // validator_address is the address of the validator. + string validator_address = 1 [(gogoproto.moretags) = "yaml:\"validator_address\""]; + + // outstanding_rewards represents the oustanding rewards of a validator. + repeated cosmos.base.v1beta1.DecCoin outstanding_rewards = 2 [ + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", + (gogoproto.nullable) = false, + (gogoproto.moretags) = "yaml:\"outstanding_rewards\"" + ]; +} + +// ValidatorAccumulatedCommissionRecord is used for import / export via genesis +// json. +message ValidatorAccumulatedCommissionRecord { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // validator_address is the address of the validator. + string validator_address = 1 [(gogoproto.moretags) = "yaml:\"validator_address\""]; + + // accumulated is the accumulated commission of a validator. + ValidatorAccumulatedCommission accumulated = 2 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"accumulated\""]; +} + +// ValidatorHistoricalRewardsRecord is used for import / export via genesis +// json. +message ValidatorHistoricalRewardsRecord { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // validator_address is the address of the validator. + string validator_address = 1 [(gogoproto.moretags) = "yaml:\"validator_address\""]; + + // period defines the period the historical rewards apply to. + uint64 period = 2; + + // rewards defines the historical rewards of a validator. + ValidatorHistoricalRewards rewards = 3 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"rewards\""]; +} + +// ValidatorCurrentRewardsRecord is used for import / export via genesis json. +message ValidatorCurrentRewardsRecord { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // validator_address is the address of the validator. + string validator_address = 1 [(gogoproto.moretags) = "yaml:\"validator_address\""]; + + // rewards defines the current rewards of a validator. + ValidatorCurrentRewards rewards = 2 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"rewards\""]; +} + +// DelegatorStartingInfoRecord used for import / export via genesis json. +message DelegatorStartingInfoRecord { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_address is the address of the delegator. + string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; + + // validator_address is the address of the validator. + string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""]; + + // starting_info defines the starting info of a delegator. + DelegatorStartingInfo starting_info = 3 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"starting_info\""]; +} + +// ValidatorSlashEventRecord is used for import / export via genesis json. +message ValidatorSlashEventRecord { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // validator_address is the address of the validator. + string validator_address = 1 [(gogoproto.moretags) = "yaml:\"validator_address\""]; + // height defines the block height at which the slash event occured. + uint64 height = 2; + // period is the period of the slash event. + uint64 period = 3; + // validator_slash_event describes the slash event. + ValidatorSlashEvent validator_slash_event = 4 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"event\""]; +} + +// GenesisState defines the distribution module's genesis state. +message GenesisState { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // params defines all the paramaters of the module. + Params params = 1 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"params\""]; + + // fee_pool defines the fee pool at genesis. + FeePool fee_pool = 2 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"fee_pool\""]; + + // fee_pool defines the delegator withdraw infos at genesis. + repeated DelegatorWithdrawInfo delegator_withdraw_infos = 3 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"delegator_withdraw_infos\""]; + + // fee_pool defines the previous proposer at genesis. + string previous_proposer = 4 [(gogoproto.moretags) = "yaml:\"previous_proposer\""]; + + // fee_pool defines the outstanding rewards of all validators at genesis. + repeated ValidatorOutstandingRewardsRecord outstanding_rewards = 5 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"outstanding_rewards\""]; + + // fee_pool defines the accumulated commisions of all validators at genesis. + repeated ValidatorAccumulatedCommissionRecord validator_accumulated_commissions = 6 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"validator_accumulated_commissions\""]; + + // fee_pool defines the historical rewards of all validators at genesis. + repeated ValidatorHistoricalRewardsRecord validator_historical_rewards = 7 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"validator_historical_rewards\""]; + + // fee_pool defines the current rewards of all validators at genesis. + repeated ValidatorCurrentRewardsRecord validator_current_rewards = 8 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"validator_current_rewards\""]; + + // fee_pool defines the delegator starting infos at genesis. + repeated DelegatorStartingInfoRecord delegator_starting_infos = 9 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"delegator_starting_infos\""]; + + // fee_pool defines the validator slash events at genesis. + repeated ValidatorSlashEventRecord validator_slash_events = 10 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"validator_slash_events\""]; +} diff --git a/third_party/proto/cosmos/distribution/v1beta1/query.proto b/third_party/proto/cosmos/distribution/v1beta1/query.proto new file mode 100644 index 0000000000..2991218d80 --- /dev/null +++ b/third_party/proto/cosmos/distribution/v1beta1/query.proto @@ -0,0 +1,218 @@ +syntax = "proto3"; +package cosmos.distribution.v1beta1; + +import "cosmos/base/query/v1beta1/pagination.proto"; +import "gogoproto/gogo.proto"; +import "google/api/annotations.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/distribution/v1beta1/distribution.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/distribution/types"; + +// Query defines the gRPC querier service for distribution module. +service Query { + // Params queries params of the distribution module. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/cosmos/distribution/v1beta1/params"; + } + + // ValidatorOutstandingRewards queries rewards of a validator address. + rpc ValidatorOutstandingRewards(QueryValidatorOutstandingRewardsRequest) + returns (QueryValidatorOutstandingRewardsResponse) { + option (google.api.http).get = "/cosmos/distribution/v1beta1/validators/" + "{validator_address}/outstanding_rewards"; + } + + // ValidatorCommission queries accumulated commission for a validator. + rpc ValidatorCommission(QueryValidatorCommissionRequest) returns (QueryValidatorCommissionResponse) { + option (google.api.http).get = "/cosmos/distribution/v1beta1/validators/" + "{validator_address}/commission"; + } + + // ValidatorSlashes queries slash events of a validator. + rpc ValidatorSlashes(QueryValidatorSlashesRequest) returns (QueryValidatorSlashesResponse) { + option (google.api.http).get = "/cosmos/distribution/v1beta1/validators/{validator_address}/slashes"; + } + + // DelegationRewards queries the total rewards accrued by a delegation. + rpc DelegationRewards(QueryDelegationRewardsRequest) returns (QueryDelegationRewardsResponse) { + option (google.api.http).get = "/cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards/" + "{validator_address}"; + } + + // DelegationTotalRewards queries the total rewards accrued by a each + // validator. + rpc DelegationTotalRewards(QueryDelegationTotalRewardsRequest) returns (QueryDelegationTotalRewardsResponse) { + option (google.api.http).get = "/cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards"; + } + + // DelegatorValidators queries the validators of a delegator. + rpc DelegatorValidators(QueryDelegatorValidatorsRequest) returns (QueryDelegatorValidatorsResponse) { + option (google.api.http).get = "/cosmos/distribution/v1beta1/delegators/" + "{delegator_address}/validators"; + } + + // DelegatorWithdrawAddress queries withdraw address of a delegator. + rpc DelegatorWithdrawAddress(QueryDelegatorWithdrawAddressRequest) returns (QueryDelegatorWithdrawAddressResponse) { + option (google.api.http).get = "/cosmos/distribution/v1beta1/delegators/" + "{delegator_address}/withdraw_address"; + } + + // CommunityPool queries the community pool coins. + rpc CommunityPool(QueryCommunityPoolRequest) returns (QueryCommunityPoolResponse) { + option (google.api.http).get = "/cosmos/distribution/v1beta1/community_pool"; + } +} + +// QueryParamsRequest is the request type for the Query/Params RPC method. +message QueryParamsRequest {} + +// QueryParamsResponse is the response type for the Query/Params RPC method. +message QueryParamsResponse { + // params defines the parameters of the module. + Params params = 1 [(gogoproto.nullable) = false]; +} + +// QueryValidatorOutstandingRewardsRequest is the request type for the +// Query/ValidatorOutstandingRewards RPC method. +message QueryValidatorOutstandingRewardsRequest { + // validator_address defines the validator address to query for. + string validator_address = 1; +} + +// QueryValidatorOutstandingRewardsResponse is the response type for the +// Query/ValidatorOutstandingRewards RPC method. +message QueryValidatorOutstandingRewardsResponse { + ValidatorOutstandingRewards rewards = 1 [(gogoproto.nullable) = false]; +} + +// QueryValidatorCommissionRequest is the request type for the +// Query/ValidatorCommission RPC method +message QueryValidatorCommissionRequest { + // validator_address defines the validator address to query for. + string validator_address = 1; +} + +// QueryValidatorCommissionResponse is the response type for the +// Query/ValidatorCommission RPC method +message QueryValidatorCommissionResponse { + // commission defines the commision the validator received. + ValidatorAccumulatedCommission commission = 1 [(gogoproto.nullable) = false]; +} + +// QueryValidatorSlashesRequest is the request type for the +// Query/ValidatorSlashes RPC method +message QueryValidatorSlashesRequest { + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = true; + + // validator_address defines the validator address to query for. + string validator_address = 1; + // starting_height defines the optional starting height to query the slashes. + uint64 starting_height = 2; + // starting_height defines the optional ending height to query the slashes. + uint64 ending_height = 3; + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 4; +} + +// QueryValidatorSlashesResponse is the response type for the +// Query/ValidatorSlashes RPC method. +message QueryValidatorSlashesResponse { + // slashes defines the slashes the validator received. + repeated ValidatorSlashEvent slashes = 1 [(gogoproto.nullable) = false]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryDelegationRewardsRequest is the request type for the +// Query/DelegationRewards RPC method. +message QueryDelegationRewardsRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_address defines the delegator address to query for. + string delegator_address = 1; + // validator_address defines the validator address to query for. + string validator_address = 2; +} + +// QueryDelegationRewardsResponse is the response type for the +// Query/DelegationRewards RPC method. +message QueryDelegationRewardsResponse { + // rewards defines the rewards accrued by a delegation. + repeated cosmos.base.v1beta1.DecCoin rewards = 1 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins"]; +} + +// QueryDelegationTotalRewardsRequest is the request type for the +// Query/DelegationTotalRewards RPC method. +message QueryDelegationTotalRewardsRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + // delegator_address defines the delegator address to query for. + string delegator_address = 1; +} + +// QueryDelegationTotalRewardsResponse is the response type for the +// Query/DelegationTotalRewards RPC method. +message QueryDelegationTotalRewardsResponse { + // rewards defines all the rewards accrued by a delegator. + repeated DelegationDelegatorReward rewards = 1 [(gogoproto.nullable) = false]; + // total defines the sum of all the rewards. + repeated cosmos.base.v1beta1.DecCoin total = 2 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins"]; +} + +// QueryDelegatorValidatorsRequest is the request type for the +// Query/DelegatorValidators RPC method. +message QueryDelegatorValidatorsRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_address defines the delegator address to query for. + string delegator_address = 1; +} + +// QueryDelegatorValidatorsResponse is the response type for the +// Query/DelegatorValidators RPC method. +message QueryDelegatorValidatorsResponse { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // validators defines the validators a delegator is delegating for. + repeated string validators = 1; +} + +// QueryDelegatorWithdrawAddressRequest is the request type for the +// Query/DelegatorWithdrawAddress RPC method. +message QueryDelegatorWithdrawAddressRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_address defines the delegator address to query for. + string delegator_address = 1; +} + +// QueryDelegatorWithdrawAddressResponse is the response type for the +// Query/DelegatorWithdrawAddress RPC method. +message QueryDelegatorWithdrawAddressResponse { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // withdraw_address defines the delegator address to query for. + string withdraw_address = 1; +} + +// QueryCommunityPoolRequest is the request type for the Query/CommunityPool RPC +// method. +message QueryCommunityPoolRequest {} + +// QueryCommunityPoolResponse is the response type for the Query/CommunityPool +// RPC method. +message QueryCommunityPoolResponse { + // pool defines community pool's coins. + repeated cosmos.base.v1beta1.DecCoin pool = 1 + [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", (gogoproto.nullable) = false]; +} diff --git a/third_party/proto/cosmos/distribution/v1beta1/tx.proto b/third_party/proto/cosmos/distribution/v1beta1/tx.proto new file mode 100644 index 0000000000..e6ce478bcd --- /dev/null +++ b/third_party/proto/cosmos/distribution/v1beta1/tx.proto @@ -0,0 +1,79 @@ +syntax = "proto3"; +package cosmos.distribution.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/distribution/types"; +option (gogoproto.equal_all) = true; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; + +// Msg defines the distribution Msg service. +service Msg { + // SetWithdrawAddress defines a method to change the withdraw address + // for a delegator (or validator self-delegation). + rpc SetWithdrawAddress(MsgSetWithdrawAddress) returns (MsgSetWithdrawAddressResponse); + + // WithdrawDelegatorReward defines a method to withdraw rewards of delegator + // from a single validator. + rpc WithdrawDelegatorReward(MsgWithdrawDelegatorReward) returns (MsgWithdrawDelegatorRewardResponse); + + // WithdrawValidatorCommission defines a method to withdraw the + // full commission to the validator address. + rpc WithdrawValidatorCommission(MsgWithdrawValidatorCommission) returns (MsgWithdrawValidatorCommissionResponse); + + // FundCommunityPool defines a method to allow an account to directly + // fund the community pool. + rpc FundCommunityPool(MsgFundCommunityPool) returns (MsgFundCommunityPoolResponse); +} + +// MsgSetWithdrawAddress sets the withdraw address for +// a delegator (or validator self-delegation). +message MsgSetWithdrawAddress { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; + string withdraw_address = 2 [(gogoproto.moretags) = "yaml:\"withdraw_address\""]; +} + +// MsgSetWithdrawAddressResponse defines the Msg/SetWithdrawAddress response type. +message MsgSetWithdrawAddressResponse {} + +// MsgWithdrawDelegatorReward represents delegation withdrawal to a delegator +// from a single validator. +message MsgWithdrawDelegatorReward { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; + string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""]; +} + +// MsgWithdrawDelegatorRewardResponse defines the Msg/WithdrawDelegatorReward response type. +message MsgWithdrawDelegatorRewardResponse {} + +// MsgWithdrawValidatorCommission withdraws the full commission to the validator +// address. +message MsgWithdrawValidatorCommission { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string validator_address = 1 [(gogoproto.moretags) = "yaml:\"validator_address\""]; +} + +// MsgWithdrawValidatorCommissionResponse defines the Msg/WithdrawValidatorCommission response type. +message MsgWithdrawValidatorCommissionResponse {} + +// MsgFundCommunityPool allows an account to directly +// fund the community pool. +message MsgFundCommunityPool { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + repeated cosmos.base.v1beta1.Coin amount = 1 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; + string depositor = 2; +} + +// MsgFundCommunityPoolResponse defines the Msg/FundCommunityPool response type. +message MsgFundCommunityPoolResponse {} diff --git a/third_party/proto/cosmos/evidence/v1beta1/evidence.proto b/third_party/proto/cosmos/evidence/v1beta1/evidence.proto new file mode 100644 index 0000000000..14612c314f --- /dev/null +++ b/third_party/proto/cosmos/evidence/v1beta1/evidence.proto @@ -0,0 +1,21 @@ +syntax = "proto3"; +package cosmos.evidence.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/evidence/types"; +option (gogoproto.equal_all) = true; + +import "gogoproto/gogo.proto"; +import "google/protobuf/timestamp.proto"; + +// Equivocation implements the Evidence interface and defines evidence of double +// signing misbehavior. +message Equivocation { + option (gogoproto.goproto_stringer) = false; + option (gogoproto.goproto_getters) = false; + option (gogoproto.equal) = false; + + int64 height = 1; + google.protobuf.Timestamp time = 2 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; + int64 power = 3; + string consensus_address = 4 [(gogoproto.moretags) = "yaml:\"consensus_address\""]; +} \ No newline at end of file diff --git a/third_party/proto/cosmos/evidence/v1beta1/genesis.proto b/third_party/proto/cosmos/evidence/v1beta1/genesis.proto new file mode 100644 index 0000000000..199f446f7e --- /dev/null +++ b/third_party/proto/cosmos/evidence/v1beta1/genesis.proto @@ -0,0 +1,12 @@ +syntax = "proto3"; +package cosmos.evidence.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/evidence/types"; + +import "google/protobuf/any.proto"; + +// GenesisState defines the evidence module's genesis state. +message GenesisState { + // evidence defines all the evidence at genesis. + repeated google.protobuf.Any evidence = 1; +} diff --git a/third_party/proto/cosmos/evidence/v1beta1/query.proto b/third_party/proto/cosmos/evidence/v1beta1/query.proto new file mode 100644 index 0000000000..eda00544c7 --- /dev/null +++ b/third_party/proto/cosmos/evidence/v1beta1/query.proto @@ -0,0 +1,51 @@ +syntax = "proto3"; +package cosmos.evidence.v1beta1; + +import "cosmos/base/query/v1beta1/pagination.proto"; +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; +import "google/api/annotations.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/evidence/types"; + +// Query defines the gRPC querier service. +service Query { + // Evidence queries evidence based on evidence hash. + rpc Evidence(QueryEvidenceRequest) returns (QueryEvidenceResponse) { + option (google.api.http).get = "/cosmos/evidence/v1beta1/evidence/{evidence_hash}"; + } + + // AllEvidence queries all evidence. + rpc AllEvidence(QueryAllEvidenceRequest) returns (QueryAllEvidenceResponse) { + option (google.api.http).get = "/cosmos/evidence/v1beta1/evidence"; + } +} + +// QueryEvidenceRequest is the request type for the Query/Evidence RPC method. +message QueryEvidenceRequest { + // evidence_hash defines the hash of the requested evidence. + bytes evidence_hash = 1 [(gogoproto.casttype) = "github.com/tendermint/tendermint/libs/bytes.HexBytes"]; +} + +// QueryEvidenceResponse is the response type for the Query/Evidence RPC method. +message QueryEvidenceResponse { + // evidence returns the requested evidence. + google.protobuf.Any evidence = 1; +} + +// QueryEvidenceRequest is the request type for the Query/AllEvidence RPC +// method. +message QueryAllEvidenceRequest { + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryAllEvidenceResponse is the response type for the Query/AllEvidence RPC +// method. +message QueryAllEvidenceResponse { + // evidence returns all evidences. + repeated google.protobuf.Any evidence = 1; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} diff --git a/third_party/proto/cosmos/evidence/v1beta1/tx.proto b/third_party/proto/cosmos/evidence/v1beta1/tx.proto new file mode 100644 index 0000000000..38795f25d4 --- /dev/null +++ b/third_party/proto/cosmos/evidence/v1beta1/tx.proto @@ -0,0 +1,32 @@ +syntax = "proto3"; +package cosmos.evidence.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/evidence/types"; +option (gogoproto.equal_all) = true; + +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; +import "cosmos_proto/cosmos.proto"; + +// Msg defines the evidence Msg service. +service Msg { + // SubmitEvidence submits an arbitrary Evidence of misbehavior such as equivocation or + // counterfactual signing. + rpc SubmitEvidence(MsgSubmitEvidence) returns (MsgSubmitEvidenceResponse); +} + +// MsgSubmitEvidence represents a message that supports submitting arbitrary +// Evidence of misbehavior such as equivocation or counterfactual signing. +message MsgSubmitEvidence { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string submitter = 1; + google.protobuf.Any evidence = 2 [(cosmos_proto.accepts_interface) = "Evidence"]; +} + +// MsgSubmitEvidenceResponse defines the Msg/SubmitEvidence response type. +message MsgSubmitEvidenceResponse { + // hash defines the hash of the evidence. + bytes hash = 4; +} diff --git a/third_party/proto/cosmos/genutil/v1beta1/genesis.proto b/third_party/proto/cosmos/genutil/v1beta1/genesis.proto new file mode 100644 index 0000000000..a0207793d9 --- /dev/null +++ b/third_party/proto/cosmos/genutil/v1beta1/genesis.proto @@ -0,0 +1,16 @@ +syntax = "proto3"; +package cosmos.genutil.v1beta1; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/genutil/types"; + +// GenesisState defines the raw genesis transaction in JSON. +message GenesisState { + // gen_txs defines the genesis transactions. + repeated bytes gen_txs = 1 [ + (gogoproto.casttype) = "encoding/json.RawMessage", + (gogoproto.jsontag) = "gentxs", + (gogoproto.moretags) = "yaml:\"gentxs\"" + ]; +} diff --git a/third_party/proto/cosmos/gov/v1beta1/genesis.proto b/third_party/proto/cosmos/gov/v1beta1/genesis.proto new file mode 100644 index 0000000000..a999500449 --- /dev/null +++ b/third_party/proto/cosmos/gov/v1beta1/genesis.proto @@ -0,0 +1,26 @@ +syntax = "proto3"; + +package cosmos.gov.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos/gov/v1beta1/gov.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types"; + +// GenesisState defines the gov module's genesis state. +message GenesisState { + // starting_proposal_id is the ID of the starting proposal. + uint64 starting_proposal_id = 1 [(gogoproto.moretags) = "yaml:\"starting_proposal_id\""]; + // deposits defines all the deposits present at genesis. + repeated Deposit deposits = 2 [(gogoproto.castrepeated) = "Deposits", (gogoproto.nullable) = false]; + // votes defines all the votes present at genesis. + repeated Vote votes = 3 [(gogoproto.castrepeated) = "Votes", (gogoproto.nullable) = false]; + // proposals defines all the proposals present at genesis. + repeated Proposal proposals = 4 [(gogoproto.castrepeated) = "Proposals", (gogoproto.nullable) = false]; + // params defines all the paramaters of related to deposit. + DepositParams deposit_params = 5 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"deposit_params\""]; + // params defines all the paramaters of related to voting. + VotingParams voting_params = 6 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"voting_params\""]; + // params defines all the paramaters of related to tally. + TallyParams tally_params = 7 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"tally_params\""]; +} diff --git a/third_party/proto/cosmos/gov/v1beta1/gov.proto b/third_party/proto/cosmos/gov/v1beta1/gov.proto new file mode 100644 index 0000000000..1d72e64321 --- /dev/null +++ b/third_party/proto/cosmos/gov/v1beta1/gov.proto @@ -0,0 +1,183 @@ +syntax = "proto3"; +package cosmos.gov.v1beta1; + +import "cosmos/base/v1beta1/coin.proto"; +import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/any.proto"; +import "google/protobuf/duration.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types"; +option (gogoproto.goproto_stringer_all) = false; +option (gogoproto.stringer_all) = false; +option (gogoproto.goproto_getters_all) = false; + +// VoteOption enumerates the valid vote options for a given governance proposal. +enum VoteOption { + option (gogoproto.goproto_enum_prefix) = false; + + // VOTE_OPTION_UNSPECIFIED defines a no-op vote option. + VOTE_OPTION_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "OptionEmpty"]; + // VOTE_OPTION_YES defines a yes vote option. + VOTE_OPTION_YES = 1 [(gogoproto.enumvalue_customname) = "OptionYes"]; + // VOTE_OPTION_ABSTAIN defines an abstain vote option. + VOTE_OPTION_ABSTAIN = 2 [(gogoproto.enumvalue_customname) = "OptionAbstain"]; + // VOTE_OPTION_NO defines a no vote option. + VOTE_OPTION_NO = 3 [(gogoproto.enumvalue_customname) = "OptionNo"]; + // VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. + VOTE_OPTION_NO_WITH_VETO = 4 [(gogoproto.enumvalue_customname) = "OptionNoWithVeto"]; +} + +// TextProposal defines a standard text proposal whose changes need to be +// manually updated in case of approval. +message TextProposal { + option (cosmos_proto.implements_interface) = "Content"; + + option (gogoproto.equal) = true; + + string title = 1; + string description = 2; +} + +// Deposit defines an amount deposited by an account address to an active +// proposal. +message Deposit { + option (gogoproto.goproto_getters) = false; + option (gogoproto.equal) = false; + + uint64 proposal_id = 1 [(gogoproto.moretags) = "yaml:\"proposal_id\""]; + string depositor = 2; + repeated cosmos.base.v1beta1.Coin amount = 3 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; +} + +// Proposal defines the core field members of a governance proposal. +message Proposal { + option (gogoproto.equal) = true; + + uint64 proposal_id = 1 [(gogoproto.jsontag) = "id", (gogoproto.moretags) = "yaml:\"id\""]; + google.protobuf.Any content = 2 [(cosmos_proto.accepts_interface) = "Content"]; + ProposalStatus status = 3 [(gogoproto.moretags) = "yaml:\"proposal_status\""]; + TallyResult final_tally_result = 4 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"final_tally_result\""]; + google.protobuf.Timestamp submit_time = 5 + [(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"submit_time\""]; + google.protobuf.Timestamp deposit_end_time = 6 + [(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"deposit_end_time\""]; + repeated cosmos.base.v1beta1.Coin total_deposit = 7 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", + (gogoproto.moretags) = "yaml:\"total_deposit\"" + ]; + google.protobuf.Timestamp voting_start_time = 8 + [(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"voting_start_time\""]; + google.protobuf.Timestamp voting_end_time = 9 + [(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"voting_end_time\""]; +} + +// ProposalStatus enumerates the valid statuses of a proposal. +enum ProposalStatus { + option (gogoproto.goproto_enum_prefix) = false; + + // PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. + PROPOSAL_STATUS_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "StatusNil"]; + // PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit + // period. + PROPOSAL_STATUS_DEPOSIT_PERIOD = 1 [(gogoproto.enumvalue_customname) = "StatusDepositPeriod"]; + // PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting + // period. + PROPOSAL_STATUS_VOTING_PERIOD = 2 [(gogoproto.enumvalue_customname) = "StatusVotingPeriod"]; + // PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has + // passed. + PROPOSAL_STATUS_PASSED = 3 [(gogoproto.enumvalue_customname) = "StatusPassed"]; + // PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has + // been rejected. + PROPOSAL_STATUS_REJECTED = 4 [(gogoproto.enumvalue_customname) = "StatusRejected"]; + // PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has + // failed. + PROPOSAL_STATUS_FAILED = 5 [(gogoproto.enumvalue_customname) = "StatusFailed"]; +} + +// TallyResult defines a standard tally for a governance proposal. +message TallyResult { + option (gogoproto.equal) = true; + + string yes = 1 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false]; + string abstain = 2 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false]; + string no = 3 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false]; + string no_with_veto = 4 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.nullable) = false, + (gogoproto.moretags) = "yaml:\"no_with_veto\"" + ]; +} + +// Vote defines a vote on a governance proposal. +// A Vote consists of a proposal ID, the voter, and the vote option. +message Vote { + option (gogoproto.goproto_stringer) = false; + option (gogoproto.equal) = false; + + uint64 proposal_id = 1 [(gogoproto.moretags) = "yaml:\"proposal_id\""]; + string voter = 2; + VoteOption option = 3; +} + +// DepositParams defines the params for deposits on governance proposals. +message DepositParams { + // Minimum deposit for a proposal to enter voting period. + repeated cosmos.base.v1beta1.Coin min_deposit = 1 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", + (gogoproto.moretags) = "yaml:\"min_deposit\"", + (gogoproto.jsontag) = "min_deposit,omitempty" + ]; + + // Maximum period for Atom holders to deposit on a proposal. Initial value: 2 + // months. + google.protobuf.Duration max_deposit_period = 2 [ + (gogoproto.nullable) = false, + (gogoproto.stdduration) = true, + (gogoproto.jsontag) = "max_deposit_period,omitempty", + (gogoproto.moretags) = "yaml:\"max_deposit_period\"" + ]; +} + +// VotingParams defines the params for voting on governance proposals. +message VotingParams { + // Length of the voting period. + google.protobuf.Duration voting_period = 1 [ + (gogoproto.nullable) = false, + (gogoproto.stdduration) = true, + (gogoproto.jsontag) = "voting_period,omitempty", + (gogoproto.moretags) = "yaml:\"voting_period\"" + ]; +} + +// TallyParams defines the params for tallying votes on governance proposals. +message TallyParams { + // Minimum percentage of total stake needed to vote for a result to be + // considered valid. + bytes quorum = 1 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (gogoproto.jsontag) = "quorum,omitempty" + ]; + + // Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. + bytes threshold = 2 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (gogoproto.jsontag) = "threshold,omitempty" + ]; + + // Minimum value of Veto votes to Total votes ratio for proposal to be + // vetoed. Default value: 1/3. + bytes veto_threshold = 3 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false, + (gogoproto.jsontag) = "veto_threshold,omitempty", + (gogoproto.moretags) = "yaml:\"veto_threshold\"" + ]; +} diff --git a/third_party/proto/cosmos/gov/v1beta1/query.proto b/third_party/proto/cosmos/gov/v1beta1/query.proto new file mode 100644 index 0000000000..da62bdbad1 --- /dev/null +++ b/third_party/proto/cosmos/gov/v1beta1/query.proto @@ -0,0 +1,190 @@ +syntax = "proto3"; +package cosmos.gov.v1beta1; + +import "cosmos/base/query/v1beta1/pagination.proto"; +import "gogoproto/gogo.proto"; +import "google/api/annotations.proto"; +import "cosmos/gov/v1beta1/gov.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types"; + +// Query defines the gRPC querier service for gov module +service Query { + // Proposal queries proposal details based on ProposalID. + rpc Proposal(QueryProposalRequest) returns (QueryProposalResponse) { + option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}"; + } + + // Proposals queries all proposals based on given status. + rpc Proposals(QueryProposalsRequest) returns (QueryProposalsResponse) { + option (google.api.http).get = "/cosmos/gov/v1beta1/proposals"; + } + + // Vote queries voted information based on proposalID, voterAddr. + rpc Vote(QueryVoteRequest) returns (QueryVoteResponse) { + option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}/votes/{voter}"; + } + + // Votes queries votes of a given proposal. + rpc Votes(QueryVotesRequest) returns (QueryVotesResponse) { + option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}/votes"; + } + + // Params queries all parameters of the gov module. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/cosmos/gov/v1beta1/params/{params_type}"; + } + + // Deposit queries single deposit information based proposalID, depositAddr. + rpc Deposit(QueryDepositRequest) returns (QueryDepositResponse) { + option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}/deposits/{depositor}"; + } + + // Deposits queries all deposits of a single proposal. + rpc Deposits(QueryDepositsRequest) returns (QueryDepositsResponse) { + option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}/deposits"; + } + + // TallyResult queries the tally of a proposal vote. + rpc TallyResult(QueryTallyResultRequest) returns (QueryTallyResultResponse) { + option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}/tally"; + } +} + +// QueryProposalRequest is the request type for the Query/Proposal RPC method. +message QueryProposalRequest { + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; +} + +// QueryProposalResponse is the response type for the Query/Proposal RPC method. +message QueryProposalResponse { + Proposal proposal = 1 [(gogoproto.nullable) = false]; +} + +// QueryProposalsRequest is the request type for the Query/Proposals RPC method. +message QueryProposalsRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // proposal_status defines the status of the proposals. + ProposalStatus proposal_status = 1; + + // voter defines the voter address for the proposals. + string voter = 2; + + // depositor defines the deposit addresses from the proposals. + string depositor = 3; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 4; +} + +// QueryProposalsResponse is the response type for the Query/Proposals RPC +// method. +message QueryProposalsResponse { + repeated Proposal proposals = 1 [(gogoproto.nullable) = false]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryVoteRequest is the request type for the Query/Vote RPC method. +message QueryVoteRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; + + // voter defines the oter address for the proposals. + string voter = 2; +} + +// QueryVoteResponse is the response type for the Query/Vote RPC method. +message QueryVoteResponse { + // vote defined the queried vote. + Vote vote = 1 [(gogoproto.nullable) = false]; +} + +// QueryVotesRequest is the request type for the Query/Votes RPC method. +message QueryVotesRequest { + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryVotesResponse is the response type for the Query/Votes RPC method. +message QueryVotesResponse { + // votes defined the queried votes. + repeated Vote votes = 1 [(gogoproto.nullable) = false]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryParamsRequest is the request type for the Query/Params RPC method. +message QueryParamsRequest { + // params_type defines which parameters to query for, can be one of "voting", + // "tallying" or "deposit". + string params_type = 1; +} + +// QueryParamsResponse is the response type for the Query/Params RPC method. +message QueryParamsResponse { + // voting_params defines the parameters related to voting. + VotingParams voting_params = 1 [(gogoproto.nullable) = false]; + // deposit_params defines the parameters related to deposit. + DepositParams deposit_params = 2 [(gogoproto.nullable) = false]; + // tally_params defines the parameters related to tally. + TallyParams tally_params = 3 [(gogoproto.nullable) = false]; +} + +// QueryDepositRequest is the request type for the Query/Deposit RPC method. +message QueryDepositRequest { + option (gogoproto.goproto_getters) = false; + option (gogoproto.equal) = false; + + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; + + // depositor defines the deposit addresses from the proposals. + string depositor = 2; +} + +// QueryDepositResponse is the response type for the Query/Deposit RPC method. +message QueryDepositResponse { + // deposit defines the requested deposit. + Deposit deposit = 1 [(gogoproto.nullable) = false]; +} + +// QueryDepositsRequest is the request type for the Query/Deposits RPC method. +message QueryDepositsRequest { + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryDepositsResponse is the response type for the Query/Deposits RPC method. +message QueryDepositsResponse { + repeated Deposit deposits = 1 [(gogoproto.nullable) = false]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryTallyResultRequest is the request type for the Query/Tally RPC method. +message QueryTallyResultRequest { + // proposal_id defines the unique id of the proposal. + uint64 proposal_id = 1; +} + +// QueryTallyResultResponse is the response type for the Query/Tally RPC method. +message QueryTallyResultResponse { + // tally defines the requested tally. + TallyResult tally = 1 [(gogoproto.nullable) = false]; +} diff --git a/third_party/proto/cosmos/gov/v1beta1/tx.proto b/third_party/proto/cosmos/gov/v1beta1/tx.proto new file mode 100644 index 0000000000..d4f0c1f99a --- /dev/null +++ b/third_party/proto/cosmos/gov/v1beta1/tx.proto @@ -0,0 +1,75 @@ +syntax = "proto3"; +package cosmos.gov.v1beta1; + +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/gov/v1beta1/gov.proto"; +import "cosmos_proto/cosmos.proto"; +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types"; + +// Msg defines the bank Msg service. +service Msg { + // SubmitProposal defines a method to create new proposal given a content. + rpc SubmitProposal(MsgSubmitProposal) returns (MsgSubmitProposalResponse); + + // Vote defines a method to add a vote on a specific proposal. + rpc Vote(MsgVote) returns (MsgVoteResponse); + + // Deposit defines a method to add deposit on a specific proposal. + rpc Deposit(MsgDeposit) returns (MsgDepositResponse); +} + +// MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary +// proposal Content. +message MsgSubmitProposal { + option (gogoproto.equal) = false; + option (gogoproto.goproto_stringer) = false; + option (gogoproto.stringer) = false; + option (gogoproto.goproto_getters) = false; + + google.protobuf.Any content = 1 [(cosmos_proto.accepts_interface) = "Content"]; + repeated cosmos.base.v1beta1.Coin initial_deposit = 2 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", + (gogoproto.moretags) = "yaml:\"initial_deposit\"" + ]; + string proposer = 3; +} + +// MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. +message MsgSubmitProposalResponse { + uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id", (gogoproto.moretags) = "yaml:\"proposal_id\""]; +} + +// MsgVote defines a message to cast a vote. +message MsgVote { + option (gogoproto.equal) = false; + option (gogoproto.goproto_stringer) = false; + option (gogoproto.stringer) = false; + option (gogoproto.goproto_getters) = false; + + uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id", (gogoproto.moretags) = "yaml:\"proposal_id\""]; + string voter = 2; + VoteOption option = 3; +} + +// MsgVoteResponse defines the Msg/Vote response type. +message MsgVoteResponse {} + +// MsgDeposit defines a message to submit a deposit to an existing proposal. +message MsgDeposit { + option (gogoproto.equal) = false; + option (gogoproto.goproto_stringer) = false; + option (gogoproto.stringer) = false; + option (gogoproto.goproto_getters) = false; + + uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id", (gogoproto.moretags) = "yaml:\"proposal_id\""]; + string depositor = 2; + repeated cosmos.base.v1beta1.Coin amount = 3 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; +} + +// MsgDepositResponse defines the Msg/Deposit response type. +message MsgDepositResponse {} diff --git a/third_party/proto/cosmos/mint/v1beta1/genesis.proto b/third_party/proto/cosmos/mint/v1beta1/genesis.proto new file mode 100644 index 0000000000..4e783fb544 --- /dev/null +++ b/third_party/proto/cosmos/mint/v1beta1/genesis.proto @@ -0,0 +1,16 @@ +syntax = "proto3"; +package cosmos.mint.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos/mint/v1beta1/mint.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/mint/types"; + +// GenesisState defines the mint module's genesis state. +message GenesisState { + // minter is a space for holding current inflation information. + Minter minter = 1 [(gogoproto.nullable) = false]; + + // params defines all the paramaters of the module. + Params params = 2 [(gogoproto.nullable) = false]; +} diff --git a/third_party/proto/cosmos/mint/v1beta1/mint.proto b/third_party/proto/cosmos/mint/v1beta1/mint.proto new file mode 100644 index 0000000000..f94d4ae2e8 --- /dev/null +++ b/third_party/proto/cosmos/mint/v1beta1/mint.proto @@ -0,0 +1,53 @@ +syntax = "proto3"; +package cosmos.mint.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/mint/types"; + +import "gogoproto/gogo.proto"; + +// Minter represents the minting state. +message Minter { + // current annual inflation rate + string inflation = 1 + [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false]; + // current annual expected provisions + string annual_provisions = 2 [ + (gogoproto.moretags) = "yaml:\"annual_provisions\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; +} + +// Params holds parameters for the mint module. +message Params { + option (gogoproto.goproto_stringer) = false; + + // type of coin to mint + string mint_denom = 1; + // maximum annual change in inflation rate + string inflation_rate_change = 2 [ + (gogoproto.moretags) = "yaml:\"inflation_rate_change\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; + // maximum inflation rate + string inflation_max = 3 [ + (gogoproto.moretags) = "yaml:\"inflation_max\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; + // minimum inflation rate + string inflation_min = 4 [ + (gogoproto.moretags) = "yaml:\"inflation_min\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; + // goal of percent bonded atoms + string goal_bonded = 5 [ + (gogoproto.moretags) = "yaml:\"goal_bonded\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; + // expected blocks per year + uint64 blocks_per_year = 6 [(gogoproto.moretags) = "yaml:\"blocks_per_year\""]; +} diff --git a/third_party/proto/cosmos/mint/v1beta1/query.proto b/third_party/proto/cosmos/mint/v1beta1/query.proto new file mode 100644 index 0000000000..acd341d777 --- /dev/null +++ b/third_party/proto/cosmos/mint/v1beta1/query.proto @@ -0,0 +1,57 @@ +syntax = "proto3"; +package cosmos.mint.v1beta1; + +import "gogoproto/gogo.proto"; +import "google/api/annotations.proto"; +import "cosmos/mint/v1beta1/mint.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/mint/types"; + +// Query provides defines the gRPC querier service. +service Query { + // Params returns the total set of minting parameters. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/cosmos/mint/v1beta1/params"; + } + + // Inflation returns the current minting inflation value. + rpc Inflation(QueryInflationRequest) returns (QueryInflationResponse) { + option (google.api.http).get = "/cosmos/mint/v1beta1/inflation"; + } + + // AnnualProvisions current minting annual provisions value. + rpc AnnualProvisions(QueryAnnualProvisionsRequest) returns (QueryAnnualProvisionsResponse) { + option (google.api.http).get = "/cosmos/mint/v1beta1/annual_provisions"; + } +} + +// QueryParamsRequest is the request type for the Query/Params RPC method. +message QueryParamsRequest {} + +// QueryParamsResponse is the response type for the Query/Params RPC method. +message QueryParamsResponse { + // params defines the parameters of the module. + Params params = 1 [(gogoproto.nullable) = false]; +} + +// QueryInflationRequest is the request type for the Query/Inflation RPC method. +message QueryInflationRequest {} + +// QueryInflationResponse is the response type for the Query/Inflation RPC +// method. +message QueryInflationResponse { + // inflation is the current minting inflation value. + bytes inflation = 1 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false]; +} + +// QueryAnnualProvisionsRequest is the request type for the +// Query/AnnualProvisions RPC method. +message QueryAnnualProvisionsRequest {} + +// QueryAnnualProvisionsResponse is the response type for the +// Query/AnnualProvisions RPC method. +message QueryAnnualProvisionsResponse { + // annual_provisions is the current minting annual provisions value. + bytes annual_provisions = 1 + [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false]; +} diff --git a/third_party/proto/cosmos/params/v1beta1/params.proto b/third_party/proto/cosmos/params/v1beta1/params.proto new file mode 100644 index 0000000000..5382fd7999 --- /dev/null +++ b/third_party/proto/cosmos/params/v1beta1/params.proto @@ -0,0 +1,27 @@ +syntax = "proto3"; +package cosmos.params.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/params/types/proposal"; +option (gogoproto.equal_all) = true; + +import "gogoproto/gogo.proto"; + +// ParameterChangeProposal defines a proposal to change one or more parameters. +message ParameterChangeProposal { + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + + string title = 1; + string description = 2; + repeated ParamChange changes = 3 [(gogoproto.nullable) = false]; +} + +// ParamChange defines an individual parameter change, for use in +// ParameterChangeProposal. +message ParamChange { + option (gogoproto.goproto_stringer) = false; + + string subspace = 1; + string key = 2; + string value = 3; +} diff --git a/third_party/proto/cosmos/params/v1beta1/query.proto b/third_party/proto/cosmos/params/v1beta1/query.proto new file mode 100644 index 0000000000..1078e02ae3 --- /dev/null +++ b/third_party/proto/cosmos/params/v1beta1/query.proto @@ -0,0 +1,32 @@ +syntax = "proto3"; +package cosmos.params.v1beta1; + +import "gogoproto/gogo.proto"; +import "google/api/annotations.proto"; +import "cosmos/params/v1beta1/params.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/params/types/proposal"; + +// Query defines the gRPC querier service. +service Query { + // Params queries a specific parameter of a module, given its subspace and + // key. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/cosmos/params/v1beta1/params"; + } +} + +// QueryParamsRequest is request type for the Query/Params RPC method. +message QueryParamsRequest { + // subspace defines the module to query the parameter for. + string subspace = 1; + + // key defines the key of the parameter in the subspace. + string key = 2; +} + +// QueryParamsResponse is response type for the Query/Params RPC method. +message QueryParamsResponse { + // param defines the queried parameter. + ParamChange param = 1 [(gogoproto.nullable) = false]; +} diff --git a/third_party/proto/cosmos/slashing/v1beta1/genesis.proto b/third_party/proto/cosmos/slashing/v1beta1/genesis.proto new file mode 100644 index 0000000000..c813561343 --- /dev/null +++ b/third_party/proto/cosmos/slashing/v1beta1/genesis.proto @@ -0,0 +1,50 @@ +syntax = "proto3"; +package cosmos.slashing.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/slashing/types"; + +import "gogoproto/gogo.proto"; +import "cosmos/slashing/v1beta1/slashing.proto"; + +// GenesisState defines the slashing module's genesis state. +message GenesisState { + // params defines all the paramaters of related to deposit. + Params params = 1 [(gogoproto.nullable) = false]; + + // signing_infos represents a map between validator addresses and their + // signing infos. + repeated SigningInfo signing_infos = 2 + [(gogoproto.moretags) = "yaml:\"signing_infos\"", (gogoproto.nullable) = false]; + + // signing_infos represents a map between validator addresses and their + // missed blocks. + repeated ValidatorMissedBlocks missed_blocks = 3 + [(gogoproto.moretags) = "yaml:\"missed_blocks\"", (gogoproto.nullable) = false]; +} + +// SigningInfo stores validator signing info of corresponding address. +message SigningInfo { + // address is the validator address. + string address = 1; + // validator_signing_info represents the signing info of this validator. + ValidatorSigningInfo validator_signing_info = 2 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"validator_signing_info\""]; +} + +// ValidatorMissedBlocks contains array of missed blocks of corresponding +// address. +message ValidatorMissedBlocks { + // address is the validator address. + string address = 1; + // missed_blocks is an array of missed blocks by the validator. + repeated MissedBlock missed_blocks = 2 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"missed_blocks\""]; +} + +// MissedBlock contains height and missed status as boolean. +message MissedBlock { + // index is the height at which the block was missed. + int64 index = 1; + // missed is the missed status. + bool missed = 2; +} diff --git a/third_party/proto/cosmos/slashing/v1beta1/query.proto b/third_party/proto/cosmos/slashing/v1beta1/query.proto new file mode 100644 index 0000000000..869049a0ed --- /dev/null +++ b/third_party/proto/cosmos/slashing/v1beta1/query.proto @@ -0,0 +1,63 @@ +syntax = "proto3"; +package cosmos.slashing.v1beta1; + +import "cosmos/base/query/v1beta1/pagination.proto"; +import "gogoproto/gogo.proto"; +import "google/api/annotations.proto"; +import "cosmos/slashing/v1beta1/slashing.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/slashing/types"; + +// Query provides defines the gRPC querier service +service Query { + // Params queries the parameters of slashing module + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/cosmos/slashing/v1beta1/params"; + } + + // SigningInfo queries the signing info of given cons address + rpc SigningInfo(QuerySigningInfoRequest) returns (QuerySigningInfoResponse) { + option (google.api.http).get = "/cosmos/slashing/v1beta1/signing_infos/{cons_address}"; + } + + // SigningInfos queries signing info of all validators + rpc SigningInfos(QuerySigningInfosRequest) returns (QuerySigningInfosResponse) { + option (google.api.http).get = "/cosmos/slashing/v1beta1/signing_infos"; + } +} + +// QueryParamsRequest is the request type for the Query/Params RPC method +message QueryParamsRequest {} + +// QueryParamsResponse is the response type for the Query/Params RPC method +message QueryParamsResponse { + Params params = 1 [(gogoproto.nullable) = false]; +} + +// QuerySigningInfoRequest is the request type for the Query/SigningInfo RPC +// method +message QuerySigningInfoRequest { + // cons_address is the address to query signing info of + string cons_address = 1; +} + +// QuerySigningInfoResponse is the response type for the Query/SigningInfo RPC +// method +message QuerySigningInfoResponse { + // val_signing_info is the signing info of requested val cons address + ValidatorSigningInfo val_signing_info = 1 [(gogoproto.nullable) = false]; +} + +// QuerySigningInfosRequest is the request type for the Query/SigningInfos RPC +// method +message QuerySigningInfosRequest { + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QuerySigningInfosResponse is the response type for the Query/SigningInfos RPC +// method +message QuerySigningInfosResponse { + // info is the signing info of all validators + repeated cosmos.slashing.v1beta1.ValidatorSigningInfo info = 1 [(gogoproto.nullable) = false]; + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} diff --git a/third_party/proto/cosmos/slashing/v1beta1/slashing.proto b/third_party/proto/cosmos/slashing/v1beta1/slashing.proto new file mode 100644 index 0000000000..657a90f1bd --- /dev/null +++ b/third_party/proto/cosmos/slashing/v1beta1/slashing.proto @@ -0,0 +1,55 @@ +syntax = "proto3"; +package cosmos.slashing.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/slashing/types"; +option (gogoproto.equal_all) = true; + +import "gogoproto/gogo.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +// ValidatorSigningInfo defines a validator's signing info for monitoring their +// liveness activity. +message ValidatorSigningInfo { + option (gogoproto.equal) = true; + option (gogoproto.goproto_stringer) = false; + + string address = 1; + // height at which validator was first a candidate OR was unjailed + int64 start_height = 2 [(gogoproto.moretags) = "yaml:\"start_height\""]; + // index offset into signed block bit array + int64 index_offset = 3 [(gogoproto.moretags) = "yaml:\"index_offset\""]; + // timestamp validator cannot be unjailed until + google.protobuf.Timestamp jailed_until = 4 + [(gogoproto.moretags) = "yaml:\"jailed_until\"", (gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + // whether or not a validator has been tombstoned (killed out of validator + // set) + bool tombstoned = 5; + // missed blocks counter (to avoid scanning the array every time) + int64 missed_blocks_counter = 6 [(gogoproto.moretags) = "yaml:\"missed_blocks_counter\""]; +} + +// Params represents the parameters used for by the slashing module. +message Params { + int64 signed_blocks_window = 1 [(gogoproto.moretags) = "yaml:\"signed_blocks_window\""]; + bytes min_signed_per_window = 2 [ + (gogoproto.moretags) = "yaml:\"min_signed_per_window\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; + google.protobuf.Duration downtime_jail_duration = 3 [ + (gogoproto.nullable) = false, + (gogoproto.stdduration) = true, + (gogoproto.moretags) = "yaml:\"downtime_jail_duration\"" + ]; + bytes slash_fraction_double_sign = 4 [ + (gogoproto.moretags) = "yaml:\"slash_fraction_double_sign\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; + bytes slash_fraction_downtime = 5 [ + (gogoproto.moretags) = "yaml:\"slash_fraction_downtime\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; +} diff --git a/third_party/proto/cosmos/slashing/v1beta1/tx.proto b/third_party/proto/cosmos/slashing/v1beta1/tx.proto new file mode 100644 index 0000000000..4d63370ecc --- /dev/null +++ b/third_party/proto/cosmos/slashing/v1beta1/tx.proto @@ -0,0 +1,26 @@ +syntax = "proto3"; +package cosmos.slashing.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/slashing/types"; +option (gogoproto.equal_all) = true; + +import "gogoproto/gogo.proto"; + +// Msg defines the slashing Msg service. +service Msg { + // Unjail defines a method for unjailing a jailed validator, thus returning + // them into the bonded validator set, so they can begin receiving provisions + // and rewards again. + rpc Unjail(MsgUnjail) returns (MsgUnjailResponse); +} + +// MsgUnjail defines the Msg/Unjail request type +message MsgUnjail { + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = true; + + string validator_addr = 1 [(gogoproto.moretags) = "yaml:\"address\"", (gogoproto.jsontag) = "address"]; +} + +// MsgUnjailResponse defines the Msg/Unjail response type +message MsgUnjailResponse {} \ No newline at end of file diff --git a/third_party/proto/cosmos/staking/v1beta1/genesis.proto b/third_party/proto/cosmos/staking/v1beta1/genesis.proto new file mode 100644 index 0000000000..d1563dbc54 --- /dev/null +++ b/third_party/proto/cosmos/staking/v1beta1/genesis.proto @@ -0,0 +1,53 @@ +syntax = "proto3"; +package cosmos.staking.v1beta1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types"; + +import "gogoproto/gogo.proto"; +import "cosmos/staking/v1beta1/staking.proto"; + +// GenesisState defines the staking module's genesis state. +message GenesisState { + // params defines all the paramaters of related to deposit. + Params params = 1 [(gogoproto.nullable) = false]; + + // last_total_power tracks the total amounts of bonded tokens recorded during + // the previous end block. + bytes last_total_power = 2 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.moretags) = "yaml:\"last_total_power\"", + (gogoproto.nullable) = false + ]; + + // last_validator_powers is a special index that provides a historical list + // of the last-block's bonded validators. + repeated LastValidatorPower last_validator_powers = 3 + [(gogoproto.moretags) = "yaml:\"last_validator_powers\"", (gogoproto.nullable) = false]; + + // delegations defines the validator set at genesis. + repeated Validator validators = 4 [(gogoproto.nullable) = false]; + + // delegations defines the delegations active at genesis. + repeated Delegation delegations = 5 [(gogoproto.nullable) = false]; + + // unbonding_delegations defines the unbonding delegations active at genesis. + repeated UnbondingDelegation unbonding_delegations = 6 + [(gogoproto.moretags) = "yaml:\"unbonding_delegations\"", (gogoproto.nullable) = false]; + + // redelegations defines the redelegations active at genesis. + repeated Redelegation redelegations = 7 [(gogoproto.nullable) = false]; + + bool exported = 8; +} + +// LastValidatorPower required for validator set update logic. +message LastValidatorPower { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // address is the address of the validator. + string address = 1; + + // power defines the power of the validator. + int64 power = 2; +} diff --git a/third_party/proto/cosmos/staking/v1beta1/query.proto b/third_party/proto/cosmos/staking/v1beta1/query.proto new file mode 100644 index 0000000000..4852c53535 --- /dev/null +++ b/third_party/proto/cosmos/staking/v1beta1/query.proto @@ -0,0 +1,348 @@ +syntax = "proto3"; +package cosmos.staking.v1beta1; + +import "cosmos/base/query/v1beta1/pagination.proto"; +import "gogoproto/gogo.proto"; +import "google/api/annotations.proto"; +import "cosmos/staking/v1beta1/staking.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types"; + +// Query defines the gRPC querier service. +service Query { + // Validators queries all validators that match the given status. + rpc Validators(QueryValidatorsRequest) returns (QueryValidatorsResponse) { + option (google.api.http).get = "/cosmos/staking/v1beta1/validators"; + } + + // Validator queries validator info for given validator address. + rpc Validator(QueryValidatorRequest) returns (QueryValidatorResponse) { + option (google.api.http).get = "/cosmos/staking/v1beta1/validators/{validator_addr}"; + } + + // ValidatorDelegations queries delegate info for given validator. + rpc ValidatorDelegations(QueryValidatorDelegationsRequest) returns (QueryValidatorDelegationsResponse) { + option (google.api.http).get = "/cosmos/staking/v1beta1/validators/{validator_addr}/delegations"; + } + + // ValidatorUnbondingDelegations queries unbonding delegations of a validator. + rpc ValidatorUnbondingDelegations(QueryValidatorUnbondingDelegationsRequest) + returns (QueryValidatorUnbondingDelegationsResponse) { + option (google.api.http).get = "/cosmos/staking/v1beta1/validators/" + "{validator_addr}/unbonding_delegations"; + } + + // Delegation queries delegate info for given validator delegator pair. + rpc Delegation(QueryDelegationRequest) returns (QueryDelegationResponse) { + option (google.api.http).get = "/cosmos/staking/v1beta1/validators/{validator_addr}/delegations/" + "{delegator_addr}"; + } + + // UnbondingDelegation queries unbonding info for given validator delegator + // pair. + rpc UnbondingDelegation(QueryUnbondingDelegationRequest) returns (QueryUnbondingDelegationResponse) { + option (google.api.http).get = "/cosmos/staking/v1beta1/validators/{validator_addr}/delegations/" + "{delegator_addr}/unbonding_delegation"; + } + + // DelegatorDelegations queries all delegations of a given delegator address. + rpc DelegatorDelegations(QueryDelegatorDelegationsRequest) returns (QueryDelegatorDelegationsResponse) { + option (google.api.http).get = "/cosmos/staking/v1beta1/delegations/{delegator_addr}"; + } + + // DelegatorUnbondingDelegations queries all unbonding delegations of a given + // delegator address. + rpc DelegatorUnbondingDelegations(QueryDelegatorUnbondingDelegationsRequest) + returns (QueryDelegatorUnbondingDelegationsResponse) { + option (google.api.http).get = "/cosmos/staking/v1beta1/delegators/" + "{delegator_addr}/unbonding_delegations"; + } + + // Redelegations queries redelegations of given address. + rpc Redelegations(QueryRedelegationsRequest) returns (QueryRedelegationsResponse) { + option (google.api.http).get = "/cosmos/staking/v1beta1/delegators/{delegator_addr}/redelegations"; + } + + // DelegatorValidators queries all validators info for given delegator + // address. + rpc DelegatorValidators(QueryDelegatorValidatorsRequest) returns (QueryDelegatorValidatorsResponse) { + option (google.api.http).get = "/cosmos/staking/v1beta1/delegators/{delegator_addr}/validators"; + } + + // DelegatorValidator queries validator info for given delegator validator + // pair. + rpc DelegatorValidator(QueryDelegatorValidatorRequest) returns (QueryDelegatorValidatorResponse) { + option (google.api.http).get = "/cosmos/staking/v1beta1/delegators/{delegator_addr}/validators/" + "{validator_addr}"; + } + + // HistoricalInfo queries the historical info for given height. + rpc HistoricalInfo(QueryHistoricalInfoRequest) returns (QueryHistoricalInfoResponse) { + option (google.api.http).get = "/cosmos/staking/v1beta1/historical_info/{height}"; + } + + // Pool queries the pool info. + rpc Pool(QueryPoolRequest) returns (QueryPoolResponse) { + option (google.api.http).get = "/cosmos/staking/v1beta1/pool"; + } + + // Parameters queries the staking parameters. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/cosmos/staking/v1beta1/params"; + } +} + +// QueryValidatorsRequest is request type for Query/Validators RPC method. +message QueryValidatorsRequest { + // status enables to query for validators matching a given status. + string status = 1; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryValidatorsResponse is response type for the Query/Validators RPC method +message QueryValidatorsResponse { + // validators contains all the queried validators. + repeated Validator validators = 1 [(gogoproto.nullable) = false]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryValidatorRequest is response type for the Query/Validator RPC method +message QueryValidatorRequest { + // validator_addr defines the validator address to query for. + string validator_addr = 1; +} + +// QueryValidatorResponse is response type for the Query/Validator RPC method +message QueryValidatorResponse { + // validator defines the the validator info. + Validator validator = 1 [(gogoproto.nullable) = false]; +} + +// QueryValidatorDelegationsRequest is request type for the +// Query/ValidatorDelegations RPC method +message QueryValidatorDelegationsRequest { + // validator_addr defines the validator address to query for. + string validator_addr = 1; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryValidatorDelegationsResponse is response type for the +// Query/ValidatorDelegations RPC method +message QueryValidatorDelegationsResponse { + repeated DelegationResponse delegation_responses = 1 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "DelegationResponses"]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryValidatorUnbondingDelegationsRequest is required type for the +// Query/ValidatorUnbondingDelegations RPC method +message QueryValidatorUnbondingDelegationsRequest { + // validator_addr defines the validator address to query for. + string validator_addr = 1; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryValidatorUnbondingDelegationsResponse is response type for the +// Query/ValidatorUnbondingDelegations RPC method. +message QueryValidatorUnbondingDelegationsResponse { + repeated UnbondingDelegation unbonding_responses = 1 [(gogoproto.nullable) = false]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryDelegationRequest is request type for the Query/Delegation RPC method. +message QueryDelegationRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_addr defines the delegator address to query for. + string delegator_addr = 1; + + // validator_addr defines the validator address to query for. + string validator_addr = 2; +} + +// QueryDelegationResponse is response type for the Query/Delegation RPC method. +message QueryDelegationResponse { + // delegation_responses defines the delegation info of a delegation. + DelegationResponse delegation_response = 1; +} + +// QueryUnbondingDelegationRequest is request type for the +// Query/UnbondingDelegation RPC method. +message QueryUnbondingDelegationRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_addr defines the delegator address to query for. + string delegator_addr = 1; + + // validator_addr defines the validator address to query for. + string validator_addr = 2; +} + +// QueryDelegationResponse is response type for the Query/UnbondingDelegation +// RPC method. +message QueryUnbondingDelegationResponse { + // unbond defines the unbonding information of a delegation. + UnbondingDelegation unbond = 1 [(gogoproto.nullable) = false]; +} + +// QueryDelegatorDelegationsRequest is request type for the +// Query/DelegatorDelegations RPC method. +message QueryDelegatorDelegationsRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_addr defines the delegator address to query for. + string delegator_addr = 1; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryDelegatorDelegationsResponse is response type for the +// Query/DelegatorDelegations RPC method. +message QueryDelegatorDelegationsResponse { + // delegation_responses defines all the delegations' info of a delegator. + repeated DelegationResponse delegation_responses = 1 [(gogoproto.nullable) = false]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryDelegatorUnbondingDelegationsRequest is request type for the +// Query/DelegatorUnbondingDelegations RPC method. +message QueryDelegatorUnbondingDelegationsRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_addr defines the delegator address to query for. + string delegator_addr = 1; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryUnbondingDelegatorDelegationsResponse is response type for the +// Query/UnbondingDelegatorDelegations RPC method. +message QueryDelegatorUnbondingDelegationsResponse { + repeated UnbondingDelegation unbonding_responses = 1 [(gogoproto.nullable) = false]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryRedelegationsRequest is request type for the Query/Redelegations RPC +// method. +message QueryRedelegationsRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_addr defines the delegator address to query for. + string delegator_addr = 1; + + // src_validator_addr defines the validator address to redelegate from. + string src_validator_addr = 2; + + // dst_validator_addr defines the validator address to redelegate to. + string dst_validator_addr = 3; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 4; +} + +// QueryRedelegationsResponse is response type for the Query/Redelegations RPC +// method. +message QueryRedelegationsResponse { + repeated RedelegationResponse redelegation_responses = 1 [(gogoproto.nullable) = false]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryDelegatorValidatorsRequest is request type for the +// Query/DelegatorValidators RPC method. +message QueryDelegatorValidatorsRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_addr defines the delegator address to query for. + string delegator_addr = 1; + + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryDelegatorValidatorsResponse is response type for the +// Query/DelegatorValidators RPC method. +message QueryDelegatorValidatorsResponse { + // validators defines the the validators' info of a delegator. + repeated Validator validators = 1 [(gogoproto.nullable) = false]; + + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryDelegatorValidatorRequest is request type for the +// Query/DelegatorValidator RPC method. +message QueryDelegatorValidatorRequest { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // delegator_addr defines the delegator address to query for. + string delegator_addr = 1; + + // validator_addr defines the validator address to query for. + string validator_addr = 2; +} + +// QueryDelegatorValidatorResponse response type for the +// Query/DelegatorValidator RPC method. +message QueryDelegatorValidatorResponse { + // validator defines the the validator info. + Validator validator = 1 [(gogoproto.nullable) = false]; +} + +// QueryHistoricalInfoRequest is request type for the Query/HistoricalInfo RPC +// method. +message QueryHistoricalInfoRequest { + // height defines at which height to query the historical info. + int64 height = 1; +} + +// QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo RPC +// method. +message QueryHistoricalInfoResponse { + // hist defines the historical info at the given height. + HistoricalInfo hist = 1; +} + +// QueryPoolRequest is request type for the Query/Pool RPC method. +message QueryPoolRequest {} + +// QueryPoolResponse is response type for the Query/Pool RPC method. +message QueryPoolResponse { + // pool defines the pool info. + Pool pool = 1 [(gogoproto.nullable) = false]; +} + +// QueryParamsRequest is request type for the Query/Params RPC method. +message QueryParamsRequest {} + +// QueryParamsResponse is response type for the Query/Params RPC method. +message QueryParamsResponse { + // params holds all the parameters of this module. + Params params = 1 [(gogoproto.nullable) = false]; +} diff --git a/third_party/proto/cosmos/staking/v1beta1/staking.proto b/third_party/proto/cosmos/staking/v1beta1/staking.proto new file mode 100644 index 0000000000..e37b28b6d0 --- /dev/null +++ b/third_party/proto/cosmos/staking/v1beta1/staking.proto @@ -0,0 +1,334 @@ +syntax = "proto3"; +package cosmos.staking.v1beta1; + +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; + +import "cosmos_proto/cosmos.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "tendermint/types/types.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types"; + +// HistoricalInfo contains header and validator information for a given block. +// It is stored as part of staking module's state, which persists the `n` most +// recent HistoricalInfo +// (`n` is set by the staking module's `historical_entries` parameter). +message HistoricalInfo { + tendermint.types.Header header = 1 [(gogoproto.nullable) = false]; + repeated Validator valset = 2 [(gogoproto.nullable) = false]; +} + +// CommissionRates defines the initial commission rates to be used for creating +// a validator. +message CommissionRates { + option (gogoproto.equal) = true; + option (gogoproto.goproto_stringer) = false; + + // rate is the commission rate charged to delegators, as a fraction. + string rate = 1 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false]; + // max_rate defines the maximum commission rate which validator can ever charge, as a fraction. + string max_rate = 2 [ + (gogoproto.moretags) = "yaml:\"max_rate\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; + // max_change_rate defines the maximum daily increase of the validator commission, as a fraction. + string max_change_rate = 3 [ + (gogoproto.moretags) = "yaml:\"max_change_rate\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; +} + +// Commission defines commission parameters for a given validator. +message Commission { + option (gogoproto.equal) = true; + option (gogoproto.goproto_stringer) = false; + + // commission_rates defines the initial commission rates to be used for creating a validator. + CommissionRates commission_rates = 1 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; + // update_time is the last time the commission rate was changed. + google.protobuf.Timestamp update_time = 2 + [(gogoproto.nullable) = false, (gogoproto.stdtime) = true, (gogoproto.moretags) = "yaml:\"update_time\""]; +} + +// Description defines a validator description. +message Description { + option (gogoproto.equal) = true; + option (gogoproto.goproto_stringer) = false; + + // moniker defines a human-readable name for the validator. + string moniker = 1; + // identity defines an optional identity signature (ex. UPort or Keybase). + string identity = 2; + // website defines an optional website link. + string website = 3; + // security_contact defines an optional email for security contact. + string security_contact = 4 [(gogoproto.moretags) = "yaml:\"security_contact\""]; + // details define other optional details. + string details = 5; +} + +// Validator defines a validator, together with the total amount of the +// Validator's bond shares and their exchange rate to coins. Slashing results in +// a decrease in the exchange rate, allowing correct calculation of future +// undelegations without iterating over delegators. When coins are delegated to +// this validator, the validator is credited with a delegation whose number of +// bond shares is based on the amount of coins delegated divided by the current +// exchange rate. Voting power can be calculated as total bonded shares +// multiplied by exchange rate. +message Validator { + option (gogoproto.equal) = false; + option (gogoproto.goproto_stringer) = false; + option (gogoproto.goproto_getters) = false; + + // operator_address defines the address of the validator's operator; bech encoded in JSON. + string operator_address = 1 [(gogoproto.moretags) = "yaml:\"operator_address\""]; + // consensus_pubkey is the consensus public key of the validator, as a Protobuf Any. + google.protobuf.Any consensus_pubkey = 2 + [(cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey", (gogoproto.moretags) = "yaml:\"consensus_pubkey\""]; + // jailed defined whether the validator has been jailed from bonded status or not. + bool jailed = 3; + // status is the validator status (bonded/unbonding/unbonded). + BondStatus status = 4; + // tokens define the delegated tokens (incl. self-delegation). + string tokens = 5 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false]; + // delegator_shares defines total shares issued to a validator's delegators. + string delegator_shares = 6 [ + (gogoproto.moretags) = "yaml:\"delegator_shares\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; + // description defines the description terms for the validator. + Description description = 7 [(gogoproto.nullable) = false]; + // unbonding_height defines, if unbonding, the height at which this validator has begun unbonding. + int64 unbonding_height = 8 [(gogoproto.moretags) = "yaml:\"unbonding_height\""]; + // unbonding_time defines, if unbonding, the min time for the validator to complete unbonding. + google.protobuf.Timestamp unbonding_time = 9 + [(gogoproto.nullable) = false, (gogoproto.stdtime) = true, (gogoproto.moretags) = "yaml:\"unbonding_time\""]; + // commission defines the commission parameters. + Commission commission = 10 [(gogoproto.nullable) = false]; + // min_self_delegation is the validator's self declared minimum self delegation. + string min_self_delegation = 11 [ + (gogoproto.moretags) = "yaml:\"min_self_delegation\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.nullable) = false + ]; +} + +// BondStatus is the status of a validator. +enum BondStatus { + option (gogoproto.goproto_enum_prefix) = false; + + // UNSPECIFIED defines an invalid validator status. + BOND_STATUS_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "Unspecified"]; + // UNBONDED defines a validator that is not bonded. + BOND_STATUS_UNBONDED = 1 [(gogoproto.enumvalue_customname) = "Unbonded"]; + // UNBONDING defines a validator that is unbonding. + BOND_STATUS_UNBONDING = 2 [(gogoproto.enumvalue_customname) = "Unbonding"]; + // BONDED defines a validator that is bonded. + BOND_STATUS_BONDED = 3 [(gogoproto.enumvalue_customname) = "Bonded"]; +} + +// ValAddresses defines a repeated set of validator addresses. +message ValAddresses { + option (gogoproto.goproto_stringer) = false; + option (gogoproto.stringer) = true; + + repeated string addresses = 1; +} + +// DVPair is struct that just has a delegator-validator pair with no other data. +// It is intended to be used as a marshalable pointer. For example, a DVPair can +// be used to construct the key to getting an UnbondingDelegation from state. +message DVPair { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + + string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; + string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""]; +} + +// DVPairs defines an array of DVPair objects. +message DVPairs { + repeated DVPair pairs = 1 [(gogoproto.nullable) = false]; +} + +// DVVTriplet is struct that just has a delegator-validator-validator triplet +// with no other data. It is intended to be used as a marshalable pointer. For +// example, a DVVTriplet can be used to construct the key to getting a +// Redelegation from state. +message DVVTriplet { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + + string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; + string validator_src_address = 2 [(gogoproto.moretags) = "yaml:\"validator_src_address\""]; + string validator_dst_address = 3 [(gogoproto.moretags) = "yaml:\"validator_dst_address\""]; +} + +// DVVTriplets defines an array of DVVTriplet objects. +message DVVTriplets { + repeated DVVTriplet triplets = 1 [(gogoproto.nullable) = false]; +} + +// Delegation represents the bond with tokens held by an account. It is +// owned by one delegator, and is associated with the voting power of one +// validator. +message Delegation { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + + // delegator_address is the bech32-encoded address of the delegator. + string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; + // validator_address is the bech32-encoded address of the validator. + string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""]; + // shares define the delegation shares received. + string shares = 3 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false]; +} + +// UnbondingDelegation stores all of a single delegator's unbonding bonds +// for a single validator in an time-ordered list. +message UnbondingDelegation { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + + // delegator_address is the bech32-encoded address of the delegator. + string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; + // validator_address is the bech32-encoded address of the validator. + string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""]; + // entries are the unbonding delegation entries. + repeated UnbondingDelegationEntry entries = 3 [(gogoproto.nullable) = false]; // unbonding delegation entries +} + +// UnbondingDelegationEntry defines an unbonding object with relevant metadata. +message UnbondingDelegationEntry { + option (gogoproto.equal) = true; + option (gogoproto.goproto_stringer) = false; + + // creation_height is the height which the unbonding took place. + int64 creation_height = 1 [(gogoproto.moretags) = "yaml:\"creation_height\""]; + // completion_time is the unix time for unbonding completion. + google.protobuf.Timestamp completion_time = 2 + [(gogoproto.nullable) = false, (gogoproto.stdtime) = true, (gogoproto.moretags) = "yaml:\"completion_time\""]; + // initial_balance defines the tokens initially scheduled to receive at completion. + string initial_balance = 3 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.nullable) = false, + (gogoproto.moretags) = "yaml:\"initial_balance\"" + ]; + // balance defines the tokens to receive at completion. + string balance = 4 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false]; +} + +// RedelegationEntry defines a redelegation object with relevant metadata. +message RedelegationEntry { + option (gogoproto.equal) = true; + option (gogoproto.goproto_stringer) = false; + + // creation_height defines the height which the redelegation took place. + int64 creation_height = 1 [(gogoproto.moretags) = "yaml:\"creation_height\""]; + // completion_time defines the unix time for redelegation completion. + google.protobuf.Timestamp completion_time = 2 + [(gogoproto.nullable) = false, (gogoproto.stdtime) = true, (gogoproto.moretags) = "yaml:\"completion_time\""]; + // initial_balance defines the initial balance when redelegation started. + string initial_balance = 3 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.nullable) = false, + (gogoproto.moretags) = "yaml:\"initial_balance\"" + ]; + // shares_dst is the amount of destination-validator shares created by redelegation. + string shares_dst = 4 + [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false]; +} + +// Redelegation contains the list of a particular delegator's redelegating bonds +// from a particular source validator to a particular destination validator. +message Redelegation { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + + // delegator_address is the bech32-encoded address of the delegator. + string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; + // validator_src_address is the validator redelegation source operator address. + string validator_src_address = 2 [(gogoproto.moretags) = "yaml:\"validator_src_address\""]; + // validator_dst_address is the validator redelegation destination operator address. + string validator_dst_address = 3 [(gogoproto.moretags) = "yaml:\"validator_dst_address\""]; + // entries are the redelegation entries. + repeated RedelegationEntry entries = 4 [(gogoproto.nullable) = false]; // redelegation entries +} + +// Params defines the parameters for the staking module. +message Params { + option (gogoproto.equal) = true; + option (gogoproto.goproto_stringer) = false; + + // unbonding_time is the time duration of unbonding. + google.protobuf.Duration unbonding_time = 1 + [(gogoproto.nullable) = false, (gogoproto.stdduration) = true, (gogoproto.moretags) = "yaml:\"unbonding_time\""]; + // max_validators is the maximum number of validators. + uint32 max_validators = 2 [(gogoproto.moretags) = "yaml:\"max_validators\""]; + // max_entries is the max entries for either unbonding delegation or redelegation (per pair/trio). + uint32 max_entries = 3 [(gogoproto.moretags) = "yaml:\"max_entries\""]; + // historical_entries is the number of historical entries to persist. + uint32 historical_entries = 4 [(gogoproto.moretags) = "yaml:\"historical_entries\""]; + // bond_denom defines the bondable coin denomination. + string bond_denom = 5 [(gogoproto.moretags) = "yaml:\"bond_denom\""]; +} + +// DelegationResponse is equivalent to Delegation except that it contains a +// balance in addition to shares which is more suitable for client responses. +message DelegationResponse { + option (gogoproto.equal) = false; + option (gogoproto.goproto_stringer) = false; + + Delegation delegation = 1 [(gogoproto.nullable) = false]; + + cosmos.base.v1beta1.Coin balance = 2 [(gogoproto.nullable) = false]; +} + +// RedelegationEntryResponse is equivalent to a RedelegationEntry except that it +// contains a balance in addition to shares which is more suitable for client +// responses. +message RedelegationEntryResponse { + option (gogoproto.equal) = true; + + RedelegationEntry redelegation_entry = 1 [(gogoproto.nullable) = false]; + string balance = 4 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false]; +} + +// RedelegationResponse is equivalent to a Redelegation except that its entries +// contain a balance in addition to shares which is more suitable for client +// responses. +message RedelegationResponse { + option (gogoproto.equal) = false; + + Redelegation redelegation = 1 [(gogoproto.nullable) = false]; + repeated RedelegationEntryResponse entries = 2 [(gogoproto.nullable) = false]; +} + +// Pool is used for tracking bonded and not-bonded token supply of the bond +// denomination. +message Pool { + option (gogoproto.description) = true; + option (gogoproto.equal) = true; + string not_bonded_tokens = 1 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.jsontag) = "not_bonded_tokens", + (gogoproto.nullable) = false + ]; + string bonded_tokens = 2 [ + (gogoproto.jsontag) = "bonded_tokens", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.nullable) = false, + (gogoproto.moretags) = "yaml:\"bonded_tokens\"" + ]; +} diff --git a/third_party/proto/cosmos/staking/v1beta1/tx.proto b/third_party/proto/cosmos/staking/v1beta1/tx.proto new file mode 100644 index 0000000000..7b05d89eea --- /dev/null +++ b/third_party/proto/cosmos/staking/v1beta1/tx.proto @@ -0,0 +1,126 @@ +syntax = "proto3"; +package cosmos.staking.v1beta1; + +import "google/protobuf/any.proto"; +import "google/protobuf/timestamp.proto"; +import "gogoproto/gogo.proto"; + +import "cosmos_proto/cosmos.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/staking/v1beta1/staking.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types"; + +// Msg defines the staking Msg service. +service Msg { + // CreateValidator defines a method for creating a new validator. + rpc CreateValidator(MsgCreateValidator) returns (MsgCreateValidatorResponse); + + // EditValidator defines a method for editing an existing validator. + rpc EditValidator(MsgEditValidator) returns (MsgEditValidatorResponse); + + // Delegate defines a method for performing a delegation of coins + // from a delegator to a validator. + rpc Delegate(MsgDelegate) returns (MsgDelegateResponse); + + // BeginRedelegate defines a method for performing a redelegation + // of coins from a delegator and source validator to a destination validator. + rpc BeginRedelegate(MsgBeginRedelegate) returns (MsgBeginRedelegateResponse); + + // Undelegate defines a method for performing an undelegation from a + // delegate and a validator. + rpc Undelegate(MsgUndelegate) returns (MsgUndelegateResponse); +} + +// MsgCreateValidator defines a SDK message for creating a new validator. +message MsgCreateValidator { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + Description description = 1 [(gogoproto.nullable) = false]; + CommissionRates commission = 2 [(gogoproto.nullable) = false]; + string min_self_delegation = 3 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.moretags) = "yaml:\"min_self_delegation\"", + (gogoproto.nullable) = false + ]; + string delegator_address = 4 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; + string validator_address = 5 [(gogoproto.moretags) = "yaml:\"validator_address\""]; + google.protobuf.Any pubkey = 6 [(cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey"]; + cosmos.base.v1beta1.Coin value = 7 [(gogoproto.nullable) = false]; +} + +// MsgCreateValidatorResponse defines the Msg/CreateValidator response type. +message MsgCreateValidatorResponse {} + +// MsgEditValidator defines a SDK message for editing an existing validator. +message MsgEditValidator { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + Description description = 1 [(gogoproto.nullable) = false]; + string validator_address = 2 [(gogoproto.moretags) = "yaml:\"address\""]; + + // We pass a reference to the new commission rate and min self delegation as + // it's not mandatory to update. If not updated, the deserialized rate will be + // zero with no way to distinguish if an update was intended. + // REF: #2373 + string commission_rate = 3 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.moretags) = "yaml:\"commission_rate\"" + ]; + string min_self_delegation = 4 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.moretags) = "yaml:\"min_self_delegation\"" + ]; +} + +// MsgEditValidatorResponse defines the Msg/EditValidator response type. +message MsgEditValidatorResponse {} + +// MsgDelegate defines a SDK message for performing a delegation of coins +// from a delegator to a validator. +message MsgDelegate { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; + string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""]; + cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false]; +} + +// MsgDelegateResponse defines the Msg/Delegate response type. +message MsgDelegateResponse {} + +// MsgBeginRedelegate defines a SDK message for performing a redelegation +// of coins from a delegator and source validator to a destination validator. +message MsgBeginRedelegate { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; + string validator_src_address = 2 [(gogoproto.moretags) = "yaml:\"validator_src_address\""]; + string validator_dst_address = 3 [(gogoproto.moretags) = "yaml:\"validator_dst_address\""]; + cosmos.base.v1beta1.Coin amount = 4 [(gogoproto.nullable) = false]; +} + +// MsgBeginRedelegateResponse defines the Msg/BeginRedelegate response type. +message MsgBeginRedelegateResponse { + google.protobuf.Timestamp completion_time = 1 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; +} + +// MsgUndelegate defines a SDK message for performing an undelegation from a +// delegate and a validator. +message MsgUndelegate { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; + string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""]; + cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false]; +} + +// MsgUndelegateResponse defines the Msg/Undelegate response type. +message MsgUndelegateResponse { + google.protobuf.Timestamp completion_time = 1 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; +} diff --git a/third_party/proto/cosmos/tx/signing/v1beta1/signing.proto b/third_party/proto/cosmos/tx/signing/v1beta1/signing.proto new file mode 100644 index 0000000000..4c1be40594 --- /dev/null +++ b/third_party/proto/cosmos/tx/signing/v1beta1/signing.proto @@ -0,0 +1,79 @@ +syntax = "proto3"; +package cosmos.tx.signing.v1beta1; + +import "cosmos/crypto/multisig/v1beta1/multisig.proto"; +import "google/protobuf/any.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/types/tx/signing"; + +// SignMode represents a signing mode with its own security guarantees. +enum SignMode { + // SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be + // rejected + SIGN_MODE_UNSPECIFIED = 0; + + // SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is + // verified with raw bytes from Tx + SIGN_MODE_DIRECT = 1; + + // SIGN_MODE_TEXTUAL is a future signing mode that will verify some + // human-readable textual representation on top of the binary representation + // from SIGN_MODE_DIRECT + SIGN_MODE_TEXTUAL = 2; + + // SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses + // Amino JSON and will be removed in the future + SIGN_MODE_LEGACY_AMINO_JSON = 127; +} + +// SignatureDescriptors wraps multiple SignatureDescriptor's. +message SignatureDescriptors { + // signatures are the signature descriptors + repeated SignatureDescriptor signatures = 1; +} + +// SignatureDescriptor is a convenience type which represents the full data for +// a signature including the public key of the signer, signing modes and the +// signature itself. It is primarily used for coordinating signatures between +// clients. +message SignatureDescriptor { + // public_key is the public key of the signer + google.protobuf.Any public_key = 1; + + Data data = 2; + + // sequence is the sequence of the account, which describes the + // number of committed transactions signed by a given address. It is used to prevent + // replay attacks. + uint64 sequence = 3; + + // Data represents signature data + message Data { + // sum is the oneof that specifies whether this represents single or multi-signature data + oneof sum { + // single represents a single signer + Single single = 1; + + // multi represents a multisig signer + Multi multi = 2; + } + + // Single is the signature data for a single signer + message Single { + // mode is the signing mode of the single signer + SignMode mode = 1; + + // signature is the raw signature bytes + bytes signature = 2; + } + + // Multi is the signature data for a multisig public key + message Multi { + // bitarray specifies which keys within the multisig are signing + cosmos.crypto.multisig.v1beta1.CompactBitArray bitarray = 1; + + // signatures is the signatures of the multi-signature + repeated Data signatures = 2; + } + } +} diff --git a/third_party/proto/cosmos/tx/v1beta1/service.proto b/third_party/proto/cosmos/tx/v1beta1/service.proto new file mode 100644 index 0000000000..59df75bab1 --- /dev/null +++ b/third_party/proto/cosmos/tx/v1beta1/service.proto @@ -0,0 +1,117 @@ +syntax = "proto3"; +package cosmos.tx.v1beta1; + +import "google/api/annotations.proto"; +import "cosmos/base/abci/v1beta1/abci.proto"; +import "cosmos/tx/v1beta1/tx.proto"; +import "gogoproto/gogo.proto"; +import "cosmos/base/query/v1beta1/pagination.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/types/tx"; + +// Service defines a gRPC service for interacting with transactions. +service Service { + // Simulate simulates executing a transaction for estimating gas usage. + rpc Simulate(SimulateRequest) returns (SimulateResponse) { + option (google.api.http) = { + post: "/cosmos/tx/v1beta1/simulate" + body: "*" + }; + } + // GetTx fetches a tx by hash. + rpc GetTx(GetTxRequest) returns (GetTxResponse) { + option (google.api.http).get = "/cosmos/tx/v1beta1/txs/{hash}"; + } + // BroadcastTx broadcast transaction. + rpc BroadcastTx(BroadcastTxRequest) returns (BroadcastTxResponse) { + option (google.api.http) = { + post: "/cosmos/tx/v1beta1/txs" + body: "*" + }; + } + // GetTxsEvent fetches txs by event. + rpc GetTxsEvent(GetTxsEventRequest) returns (GetTxsEventResponse) { + option (google.api.http).get = "/cosmos/tx/v1beta1/txs"; + } +} + +// GetTxsEventRequest is the request type for the Service.TxsByEvents +// RPC method. +message GetTxsEventRequest { + // events is the list of transaction event type. + repeated string events = 1; + // pagination defines an pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// GetTxsEventResponse is the response type for the Service.TxsByEvents +// RPC method. +message GetTxsEventResponse { + // txs is the list of queried transactions. + repeated cosmos.tx.v1beta1.Tx txs = 1; + // tx_responses is the list of queried TxResponses. + repeated cosmos.base.abci.v1beta1.TxResponse tx_responses = 2; + // pagination defines an pagination for the response. + cosmos.base.query.v1beta1.PageResponse pagination = 3; +} + +// BroadcastTxRequest is the request type for the Service.BroadcastTxRequest +// RPC method. +message BroadcastTxRequest { + // tx_bytes is the raw transaction. + bytes tx_bytes = 1; + BroadcastMode mode = 2; +} + +// BroadcastMode specifies the broadcast mode for the TxService.Broadcast RPC method. +enum BroadcastMode { + // zero-value for mode ordering + BROADCAST_MODE_UNSPECIFIED = 0; + // BROADCAST_MODE_BLOCK defines a tx broadcasting mode where the client waits for + // the tx to be committed in a block. + BROADCAST_MODE_BLOCK = 1; + // BROADCAST_MODE_SYNC defines a tx broadcasting mode where the client waits for + // a CheckTx execution response only. + BROADCAST_MODE_SYNC = 2; + // BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client returns + // immediately. + BROADCAST_MODE_ASYNC = 3; +} + +// BroadcastTxResponse is the response type for the +// Service.BroadcastTx method. +message BroadcastTxResponse { + // tx_response is the queried TxResponses. + cosmos.base.abci.v1beta1.TxResponse tx_response = 1; +} + +// SimulateRequest is the request type for the Service.Simulate +// RPC method. +message SimulateRequest { + // tx is the transaction to simulate. + cosmos.tx.v1beta1.Tx tx = 1; +} + +// SimulateResponse is the response type for the +// Service.SimulateRPC method. +message SimulateResponse { + // gas_info is the information about gas used in the simulation. + cosmos.base.abci.v1beta1.GasInfo gas_info = 1; + // result is the result of the simulation. + cosmos.base.abci.v1beta1.Result result = 2; +} + +// GetTxRequest is the request type for the Service.GetTx +// RPC method. +message GetTxRequest { + // hash is the tx hash to query, encoded as a hex string. + string hash = 1; +} + +// GetTxResponse is the response type for the Service.GetTx method. +message GetTxResponse { + // tx is the queried transaction. + cosmos.tx.v1beta1.Tx tx = 1; + // tx_response is the queried TxResponses. + cosmos.base.abci.v1beta1.TxResponse tx_response = 2; +} \ No newline at end of file diff --git a/third_party/proto/cosmos/tx/v1beta1/tx.proto b/third_party/proto/cosmos/tx/v1beta1/tx.proto new file mode 100644 index 0000000000..2b02874cc1 --- /dev/null +++ b/third_party/proto/cosmos/tx/v1beta1/tx.proto @@ -0,0 +1,181 @@ +syntax = "proto3"; +package cosmos.tx.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos/crypto/multisig/v1beta1/multisig.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/tx/signing/v1beta1/signing.proto"; +import "google/protobuf/any.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/types/tx"; + +// Tx is the standard type used for broadcasting transactions. +message Tx { + // body is the processable content of the transaction + TxBody body = 1; + + // auth_info is the authorization related content of the transaction, + // specifically signers, signer modes and fee + AuthInfo auth_info = 2; + + // signatures is a list of signatures that matches the length and order of + // AuthInfo's signer_infos to allow connecting signature meta information like + // public key and signing mode by position. + repeated bytes signatures = 3; +} + +// TxRaw is a variant of Tx that pins the signer's exact binary representation +// of body and auth_info. This is used for signing, broadcasting and +// verification. The binary `serialize(tx: TxRaw)` is stored in Tendermint and +// the hash `sha256(serialize(tx: TxRaw))` becomes the "txhash", commonly used +// as the transaction ID. +message TxRaw { + // body_bytes is a protobuf serialization of a TxBody that matches the + // representation in SignDoc. + bytes body_bytes = 1; + + // auth_info_bytes is a protobuf serialization of an AuthInfo that matches the + // representation in SignDoc. + bytes auth_info_bytes = 2; + + // signatures is a list of signatures that matches the length and order of + // AuthInfo's signer_infos to allow connecting signature meta information like + // public key and signing mode by position. + repeated bytes signatures = 3; +} + +// SignDoc is the type used for generating sign bytes for SIGN_MODE_DIRECT. +message SignDoc { + // body_bytes is protobuf serialization of a TxBody that matches the + // representation in TxRaw. + bytes body_bytes = 1; + + // auth_info_bytes is a protobuf serialization of an AuthInfo that matches the + // representation in TxRaw. + bytes auth_info_bytes = 2; + + // chain_id is the unique identifier of the chain this transaction targets. + // It prevents signed transactions from being used on another chain by an + // attacker + string chain_id = 3; + + // account_number is the account number of the account in state + uint64 account_number = 4; +} + +// TxBody is the body of a transaction that all signers sign over. +message TxBody { + // messages is a list of messages to be executed. The required signers of + // those messages define the number and order of elements in AuthInfo's + // signer_infos and Tx's signatures. Each required signer address is added to + // the list only the first time it occurs. + // By convention, the first required signer (usually from the first message) + // is referred to as the primary signer and pays the fee for the whole + // transaction. + repeated google.protobuf.Any messages = 1; + + // memo is any arbitrary memo to be added to the transaction + string memo = 2; + + // timeout is the block height after which this transaction will not + // be processed by the chain + uint64 timeout_height = 3; + + // extension_options are arbitrary options that can be added by chains + // when the default options are not sufficient. If any of these are present + // and can't be handled, the transaction will be rejected + repeated google.protobuf.Any extension_options = 1023; + + // extension_options are arbitrary options that can be added by chains + // when the default options are not sufficient. If any of these are present + // and can't be handled, they will be ignored + repeated google.protobuf.Any non_critical_extension_options = 2047; +} + +// AuthInfo describes the fee and signer modes that are used to sign a +// transaction. +message AuthInfo { + // signer_infos defines the signing modes for the required signers. The number + // and order of elements must match the required signers from TxBody's + // messages. The first element is the primary signer and the one which pays + // the fee. + repeated SignerInfo signer_infos = 1; + + // Fee is the fee and gas limit for the transaction. The first signer is the + // primary signer and the one which pays the fee. The fee can be calculated + // based on the cost of evaluating the body and doing signature verification + // of the signers. This can be estimated via simulation. + Fee fee = 2; +} + +// SignerInfo describes the public key and signing mode of a single top-level +// signer. +message SignerInfo { + // public_key is the public key of the signer. It is optional for accounts + // that already exist in state. If unset, the verifier can use the required \ + // signer address for this position and lookup the public key. + google.protobuf.Any public_key = 1; + + // mode_info describes the signing mode of the signer and is a nested + // structure to support nested multisig pubkey's + ModeInfo mode_info = 2; + + // sequence is the sequence of the account, which describes the + // number of committed transactions signed by a given address. It is used to + // prevent replay attacks. + uint64 sequence = 3; +} + +// ModeInfo describes the signing mode of a single or nested multisig signer. +message ModeInfo { + // sum is the oneof that specifies whether this represents a single or nested + // multisig signer + oneof sum { + // single represents a single signer + Single single = 1; + + // multi represents a nested multisig signer + Multi multi = 2; + } + + // Single is the mode info for a single signer. It is structured as a message + // to allow for additional fields such as locale for SIGN_MODE_TEXTUAL in the + // future + message Single { + // mode is the signing mode of the single signer + cosmos.tx.signing.v1beta1.SignMode mode = 1; + } + + // Multi is the mode info for a multisig public key + message Multi { + // bitarray specifies which keys within the multisig are signing + cosmos.crypto.multisig.v1beta1.CompactBitArray bitarray = 1; + + // mode_infos is the corresponding modes of the signers of the multisig + // which could include nested multisig public keys + repeated ModeInfo mode_infos = 2; + } +} + +// Fee includes the amount of coins paid in fees and the maximum +// gas to be used by the transaction. The ratio yields an effective "gasprice", +// which must be above some miminum to be accepted into the mempool. +message Fee { + // amount is the amount of coins to be paid as a fee + repeated cosmos.base.v1beta1.Coin amount = 1 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; + + // gas_limit is the maximum gas that can be used in transaction processing + // before an out of gas error occurs + uint64 gas_limit = 2; + + // if unset, the first signer is responsible for paying the fees. If set, the specified account must pay the fees. + // the payer must be a tx signer (and thus have signed this field in AuthInfo). + // setting this field does *not* change the ordering of required signers for the transaction. + string payer = 3; + + // if set, the fee payer (either the first signer or the value of the payer field) requests that a fee grant be used + // to pay fees instead of the fee payer's own balance. If an appropriate fee grant does not exist or the chain does + // not support fee grants, this will fail + string granter = 4; +} diff --git a/third_party/proto/cosmos/upgrade/v1beta1/query.proto b/third_party/proto/cosmos/upgrade/v1beta1/query.proto new file mode 100644 index 0000000000..9eab27e76b --- /dev/null +++ b/third_party/proto/cosmos/upgrade/v1beta1/query.proto @@ -0,0 +1,68 @@ +syntax = "proto3"; +package cosmos.upgrade.v1beta1; + +import "google/protobuf/any.proto"; +import "google/api/annotations.proto"; +import "cosmos/upgrade/v1beta1/upgrade.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/upgrade/types"; + +// Query defines the gRPC upgrade querier service. +service Query { + // CurrentPlan queries the current upgrade plan. + rpc CurrentPlan(QueryCurrentPlanRequest) returns (QueryCurrentPlanResponse) { + option (google.api.http).get = "/cosmos/upgrade/v1beta1/current_plan"; + } + + // AppliedPlan queries a previously applied upgrade plan by its name. + rpc AppliedPlan(QueryAppliedPlanRequest) returns (QueryAppliedPlanResponse) { + option (google.api.http).get = "/cosmos/upgrade/v1beta1/applied_plan/{name}"; + } + + // UpgradedConsensusState queries the consensus state that will serve + // as a trusted kernel for the next version of this chain. It will only be + // stored at the last height of this chain. + // UpgradedConsensusState RPC not supported with legacy querier + rpc UpgradedConsensusState(QueryUpgradedConsensusStateRequest) returns (QueryUpgradedConsensusStateResponse) { + option (google.api.http).get = "/cosmos/upgrade/v1beta1/upgraded_consensus_state/{last_height}"; + } +} + +// QueryCurrentPlanRequest is the request type for the Query/CurrentPlan RPC +// method. +message QueryCurrentPlanRequest {} + +// QueryCurrentPlanResponse is the response type for the Query/CurrentPlan RPC +// method. +message QueryCurrentPlanResponse { + // plan is the current upgrade plan. + Plan plan = 1; +} + +// QueryCurrentPlanRequest is the request type for the Query/AppliedPlan RPC +// method. +message QueryAppliedPlanRequest { + // name is the name of the applied plan to query for. + string name = 1; +} + +// QueryAppliedPlanResponse is the response type for the Query/AppliedPlan RPC +// method. +message QueryAppliedPlanResponse { + // height is the block height at which the plan was applied. + int64 height = 1; +} + +// QueryUpgradedConsensusStateRequest is the request type for the Query/UpgradedConsensusState +// RPC method. +message QueryUpgradedConsensusStateRequest { + // last height of the current chain must be sent in request + // as this is the height under which next consensus state is stored + int64 last_height = 1; +} + +// QueryUpgradedConsensusStateResponse is the response type for the Query/UpgradedConsensusState +// RPC method. +message QueryUpgradedConsensusStateResponse { + google.protobuf.Any upgraded_consensus_state = 1; +} diff --git a/third_party/proto/cosmos/upgrade/v1beta1/upgrade.proto b/third_party/proto/cosmos/upgrade/v1beta1/upgrade.proto new file mode 100644 index 0000000000..6d6839ca56 --- /dev/null +++ b/third_party/proto/cosmos/upgrade/v1beta1/upgrade.proto @@ -0,0 +1,62 @@ +syntax = "proto3"; +package cosmos.upgrade.v1beta1; + +import "google/protobuf/any.proto"; +import "gogoproto/gogo.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/upgrade/types"; +option (gogoproto.goproto_stringer_all) = false; +option (gogoproto.goproto_getters_all) = false; + +// Plan specifies information about a planned upgrade and when it should occur. +message Plan { + option (gogoproto.equal) = true; + + // Sets the name for the upgrade. This name will be used by the upgraded + // version of the software to apply any special "on-upgrade" commands during + // the first BeginBlock method after the upgrade is applied. It is also used + // to detect whether a software version can handle a given upgrade. If no + // upgrade handler with this name has been set in the software, it will be + // assumed that the software is out-of-date when the upgrade Time or Height is + // reached and the software will exit. + string name = 1; + + // The time after which the upgrade must be performed. + // Leave set to its zero value to use a pre-defined Height instead. + google.protobuf.Timestamp time = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; + + // The height at which the upgrade must be performed. + // Only used if Time is not set. + int64 height = 3; + + // Any application specific upgrade info to be included on-chain + // such as a git commit that validators could automatically upgrade to + string info = 4; + + // IBC-enabled chains can opt-in to including the upgraded client state in its upgrade plan + // This will make the chain commit to the correct upgraded (self) client state before the upgrade occurs, + // so that connecting chains can verify that the new upgraded client is valid by verifying a proof on the + // previous version of the chain. + // This will allow IBC connections to persist smoothly across planned chain upgrades + google.protobuf.Any upgraded_client_state = 5 [(gogoproto.moretags) = "yaml:\"upgraded_client_state\""]; +} + +// SoftwareUpgradeProposal is a gov Content type for initiating a software +// upgrade. +message SoftwareUpgradeProposal { + option (gogoproto.equal) = true; + + string title = 1; + string description = 2; + Plan plan = 3 [(gogoproto.nullable) = false]; +} + +// CancelSoftwareUpgradeProposal is a gov Content type for cancelling a software +// upgrade. +message CancelSoftwareUpgradeProposal { + option (gogoproto.equal) = true; + + string title = 1; + string description = 2; +} diff --git a/third_party/proto/cosmos/vesting/v1beta1/tx.proto b/third_party/proto/cosmos/vesting/v1beta1/tx.proto new file mode 100644 index 0000000000..c49be802a7 --- /dev/null +++ b/third_party/proto/cosmos/vesting/v1beta1/tx.proto @@ -0,0 +1,31 @@ +syntax = "proto3"; +package cosmos.vesting.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/auth/vesting/types"; + +// Msg defines the bank Msg service. +service Msg { + // CreateVestingAccount defines a method that enables creating a vesting + // account. + rpc CreateVestingAccount(MsgCreateVestingAccount) returns (MsgCreateVestingAccountResponse); +} + +// MsgCreateVestingAccount defines a message that enables creating a vesting +// account. +message MsgCreateVestingAccount { + option (gogoproto.equal) = true; + + string from_address = 1 [(gogoproto.moretags) = "yaml:\"from_address\""]; + string to_address = 2 [(gogoproto.moretags) = "yaml:\"to_address\""]; + repeated cosmos.base.v1beta1.Coin amount = 3 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; + + int64 end_time = 4 [(gogoproto.moretags) = "yaml:\"end_time\""]; + bool delayed = 5; +} + +// MsgCreateVestingAccountResponse defines the Msg/CreateVestingAccount response type. +message MsgCreateVestingAccountResponse {} \ No newline at end of file diff --git a/third_party/proto/cosmos/vesting/v1beta1/vesting.proto b/third_party/proto/cosmos/vesting/v1beta1/vesting.proto new file mode 100644 index 0000000000..6bdbbf08e4 --- /dev/null +++ b/third_party/proto/cosmos/vesting/v1beta1/vesting.proto @@ -0,0 +1,73 @@ +syntax = "proto3"; +package cosmos.vesting.v1beta1; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "cosmos/auth/v1beta1/auth.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/auth/vesting/types"; + +// BaseVestingAccount implements the VestingAccount interface. It contains all +// the necessary fields needed for any vesting account implementation. +message BaseVestingAccount { + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + + cosmos.auth.v1beta1.BaseAccount base_account = 1 [(gogoproto.embed) = true]; + repeated cosmos.base.v1beta1.Coin original_vesting = 2 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", + (gogoproto.moretags) = "yaml:\"original_vesting\"" + ]; + repeated cosmos.base.v1beta1.Coin delegated_free = 3 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", + (gogoproto.moretags) = "yaml:\"delegated_free\"" + ]; + repeated cosmos.base.v1beta1.Coin delegated_vesting = 4 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", + (gogoproto.moretags) = "yaml:\"delegated_vesting\"" + ]; + int64 end_time = 5 [(gogoproto.moretags) = "yaml:\"end_time\""]; +} + +// ContinuousVestingAccount implements the VestingAccount interface. It +// continuously vests by unlocking coins linearly with respect to time. +message ContinuousVestingAccount { + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + + BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true]; + int64 start_time = 2 [(gogoproto.moretags) = "yaml:\"start_time\""]; +} + +// DelayedVestingAccount implements the VestingAccount interface. It vests all +// coins after a specific time, but non prior. In other words, it keeps them +// locked until a specified time. +message DelayedVestingAccount { + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + + BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true]; +} + +// Period defines a length of time and amount of coins that will vest. +message Period { + option (gogoproto.goproto_stringer) = false; + + int64 length = 1; + repeated cosmos.base.v1beta1.Coin amount = 2 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; +} + +// PeriodicVestingAccount implements the VestingAccount interface. It +// periodically vests by unlocking coins during each specified period. +message PeriodicVestingAccount { + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + + BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true]; + int64 start_time = 2 [(gogoproto.moretags) = "yaml:\"start_time\""]; + repeated Period vesting_periods = 3 [(gogoproto.moretags) = "yaml:\"vesting_periods\"", (gogoproto.nullable) = false]; +} diff --git a/third_party/proto/cosmos_proto/cosmos.proto b/third_party/proto/cosmos_proto/cosmos.proto new file mode 100644 index 0000000000..167b170757 --- /dev/null +++ b/third_party/proto/cosmos_proto/cosmos.proto @@ -0,0 +1,16 @@ +syntax = "proto3"; +package cosmos_proto; + +import "google/protobuf/descriptor.proto"; + +option go_package = "github.com/regen-network/cosmos-proto"; + +extend google.protobuf.MessageOptions { + string interface_type = 93001; + + string implements_interface = 93002; +} + +extend google.protobuf.FieldOptions { + string accepts_interface = 93001; +} diff --git a/third_party/proto/gogoproto/gogo.proto b/third_party/proto/gogoproto/gogo.proto new file mode 100644 index 0000000000..49e78f99fe --- /dev/null +++ b/third_party/proto/gogoproto/gogo.proto @@ -0,0 +1,145 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto2"; +package gogoproto; + +import "google/protobuf/descriptor.proto"; + +option java_package = "com.google.protobuf"; +option java_outer_classname = "GoGoProtos"; +option go_package = "github.com/gogo/protobuf/gogoproto"; + +extend google.protobuf.EnumOptions { + optional bool goproto_enum_prefix = 62001; + optional bool goproto_enum_stringer = 62021; + optional bool enum_stringer = 62022; + optional string enum_customname = 62023; + optional bool enumdecl = 62024; +} + +extend google.protobuf.EnumValueOptions { + optional string enumvalue_customname = 66001; +} + +extend google.protobuf.FileOptions { + optional bool goproto_getters_all = 63001; + optional bool goproto_enum_prefix_all = 63002; + optional bool goproto_stringer_all = 63003; + optional bool verbose_equal_all = 63004; + optional bool face_all = 63005; + optional bool gostring_all = 63006; + optional bool populate_all = 63007; + optional bool stringer_all = 63008; + optional bool onlyone_all = 63009; + + optional bool equal_all = 63013; + optional bool description_all = 63014; + optional bool testgen_all = 63015; + optional bool benchgen_all = 63016; + optional bool marshaler_all = 63017; + optional bool unmarshaler_all = 63018; + optional bool stable_marshaler_all = 63019; + + optional bool sizer_all = 63020; + + optional bool goproto_enum_stringer_all = 63021; + optional bool enum_stringer_all = 63022; + + optional bool unsafe_marshaler_all = 63023; + optional bool unsafe_unmarshaler_all = 63024; + + optional bool goproto_extensions_map_all = 63025; + optional bool goproto_unrecognized_all = 63026; + optional bool gogoproto_import = 63027; + optional bool protosizer_all = 63028; + optional bool compare_all = 63029; + optional bool typedecl_all = 63030; + optional bool enumdecl_all = 63031; + + optional bool goproto_registration = 63032; + optional bool messagename_all = 63033; + + optional bool goproto_sizecache_all = 63034; + optional bool goproto_unkeyed_all = 63035; +} + +extend google.protobuf.MessageOptions { + optional bool goproto_getters = 64001; + optional bool goproto_stringer = 64003; + optional bool verbose_equal = 64004; + optional bool face = 64005; + optional bool gostring = 64006; + optional bool populate = 64007; + optional bool stringer = 67008; + optional bool onlyone = 64009; + + optional bool equal = 64013; + optional bool description = 64014; + optional bool testgen = 64015; + optional bool benchgen = 64016; + optional bool marshaler = 64017; + optional bool unmarshaler = 64018; + optional bool stable_marshaler = 64019; + + optional bool sizer = 64020; + + optional bool unsafe_marshaler = 64023; + optional bool unsafe_unmarshaler = 64024; + + optional bool goproto_extensions_map = 64025; + optional bool goproto_unrecognized = 64026; + + optional bool protosizer = 64028; + optional bool compare = 64029; + + optional bool typedecl = 64030; + + optional bool messagename = 64033; + + optional bool goproto_sizecache = 64034; + optional bool goproto_unkeyed = 64035; +} + +extend google.protobuf.FieldOptions { + optional bool nullable = 65001; + optional bool embed = 65002; + optional string customtype = 65003; + optional string customname = 65004; + optional string jsontag = 65005; + optional string moretags = 65006; + optional string casttype = 65007; + optional string castkey = 65008; + optional string castvalue = 65009; + + optional bool stdtime = 65010; + optional bool stdduration = 65011; + optional bool wktpointer = 65012; + + optional string castrepeated = 65013; +} diff --git a/third_party/proto/google/api/annotations.proto b/third_party/proto/google/api/annotations.proto new file mode 100644 index 0000000000..85c361b47f --- /dev/null +++ b/third_party/proto/google/api/annotations.proto @@ -0,0 +1,31 @@ +// Copyright (c) 2015, Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.api; + +import "google/api/http.proto"; +import "google/protobuf/descriptor.proto"; + +option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; +option java_multiple_files = true; +option java_outer_classname = "AnnotationsProto"; +option java_package = "com.google.api"; +option objc_class_prefix = "GAPI"; + +extend google.protobuf.MethodOptions { + // See `HttpRule`. + HttpRule http = 72295728; +} diff --git a/third_party/proto/google/api/http.proto b/third_party/proto/google/api/http.proto new file mode 100644 index 0000000000..2bd3a19bfa --- /dev/null +++ b/third_party/proto/google/api/http.proto @@ -0,0 +1,318 @@ +// Copyright 2018 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package google.api; + +option cc_enable_arenas = true; +option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; +option java_multiple_files = true; +option java_outer_classname = "HttpProto"; +option java_package = "com.google.api"; +option objc_class_prefix = "GAPI"; + + +// Defines the HTTP configuration for an API service. It contains a list of +// [HttpRule][google.api.HttpRule], each specifying the mapping of an RPC method +// to one or more HTTP REST API methods. +message Http { + // A list of HTTP configuration rules that apply to individual API methods. + // + // **NOTE:** All service configuration rules follow "last one wins" order. + repeated HttpRule rules = 1; + + // When set to true, URL path parmeters will be fully URI-decoded except in + // cases of single segment matches in reserved expansion, where "%2F" will be + // left encoded. + // + // The default behavior is to not decode RFC 6570 reserved characters in multi + // segment matches. + bool fully_decode_reserved_expansion = 2; +} + +// `HttpRule` defines the mapping of an RPC method to one or more HTTP +// REST API methods. The mapping specifies how different portions of the RPC +// request message are mapped to URL path, URL query parameters, and +// HTTP request body. The mapping is typically specified as an +// `google.api.http` annotation on the RPC method, +// see "google/api/annotations.proto" for details. +// +// The mapping consists of a field specifying the path template and +// method kind. The path template can refer to fields in the request +// message, as in the example below which describes a REST GET +// operation on a resource collection of messages: +// +// +// service Messaging { +// rpc GetMessage(GetMessageRequest) returns (Message) { +// option (google.api.http).get = "/v1/messages/{message_id}/{sub.subfield}"; +// } +// } +// message GetMessageRequest { +// message SubMessage { +// string subfield = 1; +// } +// string message_id = 1; // mapped to the URL +// SubMessage sub = 2; // `sub.subfield` is url-mapped +// } +// message Message { +// string text = 1; // content of the resource +// } +// +// The same http annotation can alternatively be expressed inside the +// `GRPC API Configuration` YAML file. +// +// http: +// rules: +// - selector: .Messaging.GetMessage +// get: /v1/messages/{message_id}/{sub.subfield} +// +// This definition enables an automatic, bidrectional mapping of HTTP +// JSON to RPC. Example: +// +// HTTP | RPC +// -----|----- +// `GET /v1/messages/123456/foo` | `GetMessage(message_id: "123456" sub: SubMessage(subfield: "foo"))` +// +// In general, not only fields but also field paths can be referenced +// from a path pattern. Fields mapped to the path pattern cannot be +// repeated and must have a primitive (non-message) type. +// +// Any fields in the request message which are not bound by the path +// pattern automatically become (optional) HTTP query +// parameters. Assume the following definition of the request message: +// +// +// service Messaging { +// rpc GetMessage(GetMessageRequest) returns (Message) { +// option (google.api.http).get = "/v1/messages/{message_id}"; +// } +// } +// message GetMessageRequest { +// message SubMessage { +// string subfield = 1; +// } +// string message_id = 1; // mapped to the URL +// int64 revision = 2; // becomes a parameter +// SubMessage sub = 3; // `sub.subfield` becomes a parameter +// } +// +// +// This enables a HTTP JSON to RPC mapping as below: +// +// HTTP | RPC +// -----|----- +// `GET /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: "foo"))` +// +// Note that fields which are mapped to HTTP parameters must have a +// primitive type or a repeated primitive type. Message types are not +// allowed. In the case of a repeated type, the parameter can be +// repeated in the URL, as in `...?param=A¶m=B`. +// +// For HTTP method kinds which allow a request body, the `body` field +// specifies the mapping. Consider a REST update method on the +// message resource collection: +// +// +// service Messaging { +// rpc UpdateMessage(UpdateMessageRequest) returns (Message) { +// option (google.api.http) = { +// put: "/v1/messages/{message_id}" +// body: "message" +// }; +// } +// } +// message UpdateMessageRequest { +// string message_id = 1; // mapped to the URL +// Message message = 2; // mapped to the body +// } +// +// +// The following HTTP JSON to RPC mapping is enabled, where the +// representation of the JSON in the request body is determined by +// protos JSON encoding: +// +// HTTP | RPC +// -----|----- +// `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" message { text: "Hi!" })` +// +// The special name `*` can be used in the body mapping to define that +// every field not bound by the path template should be mapped to the +// request body. This enables the following alternative definition of +// the update method: +// +// service Messaging { +// rpc UpdateMessage(Message) returns (Message) { +// option (google.api.http) = { +// put: "/v1/messages/{message_id}" +// body: "*" +// }; +// } +// } +// message Message { +// string message_id = 1; +// string text = 2; +// } +// +// +// The following HTTP JSON to RPC mapping is enabled: +// +// HTTP | RPC +// -----|----- +// `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: "123456" text: "Hi!")` +// +// Note that when using `*` in the body mapping, it is not possible to +// have HTTP parameters, as all fields not bound by the path end in +// the body. This makes this option more rarely used in practice of +// defining REST APIs. The common usage of `*` is in custom methods +// which don't use the URL at all for transferring data. +// +// It is possible to define multiple HTTP methods for one RPC by using +// the `additional_bindings` option. Example: +// +// service Messaging { +// rpc GetMessage(GetMessageRequest) returns (Message) { +// option (google.api.http) = { +// get: "/v1/messages/{message_id}" +// additional_bindings { +// get: "/v1/users/{user_id}/messages/{message_id}" +// } +// }; +// } +// } +// message GetMessageRequest { +// string message_id = 1; +// string user_id = 2; +// } +// +// +// This enables the following two alternative HTTP JSON to RPC +// mappings: +// +// HTTP | RPC +// -----|----- +// `GET /v1/messages/123456` | `GetMessage(message_id: "123456")` +// `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: "123456")` +// +// # Rules for HTTP mapping +// +// The rules for mapping HTTP path, query parameters, and body fields +// to the request message are as follows: +// +// 1. The `body` field specifies either `*` or a field path, or is +// omitted. If omitted, it indicates there is no HTTP request body. +// 2. Leaf fields (recursive expansion of nested messages in the +// request) can be classified into three types: +// (a) Matched in the URL template. +// (b) Covered by body (if body is `*`, everything except (a) fields; +// else everything under the body field) +// (c) All other fields. +// 3. URL query parameters found in the HTTP request are mapped to (c) fields. +// 4. Any body sent with an HTTP request can contain only (b) fields. +// +// The syntax of the path template is as follows: +// +// Template = "/" Segments [ Verb ] ; +// Segments = Segment { "/" Segment } ; +// Segment = "*" | "**" | LITERAL | Variable ; +// Variable = "{" FieldPath [ "=" Segments ] "}" ; +// FieldPath = IDENT { "." IDENT } ; +// Verb = ":" LITERAL ; +// +// The syntax `*` matches a single path segment. The syntax `**` matches zero +// or more path segments, which must be the last part of the path except the +// `Verb`. The syntax `LITERAL` matches literal text in the path. +// +// The syntax `Variable` matches part of the URL path as specified by its +// template. A variable template must not contain other variables. If a variable +// matches a single path segment, its template may be omitted, e.g. `{var}` +// is equivalent to `{var=*}`. +// +// If a variable contains exactly one path segment, such as `"{var}"` or +// `"{var=*}"`, when such a variable is expanded into a URL path, all characters +// except `[-_.~0-9a-zA-Z]` are percent-encoded. Such variables show up in the +// Discovery Document as `{var}`. +// +// If a variable contains one or more path segments, such as `"{var=foo/*}"` +// or `"{var=**}"`, when such a variable is expanded into a URL path, all +// characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. Such variables +// show up in the Discovery Document as `{+var}`. +// +// NOTE: While the single segment variable matches the semantics of +// [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 +// Simple String Expansion, the multi segment variable **does not** match +// RFC 6570 Reserved Expansion. The reason is that the Reserved Expansion +// does not expand special characters like `?` and `#`, which would lead +// to invalid URLs. +// +// NOTE: the field paths in variables and in the `body` must not refer to +// repeated fields or map fields. +message HttpRule { + // Selects methods to which this rule applies. + // + // Refer to [selector][google.api.DocumentationRule.selector] for syntax details. + string selector = 1; + + // Determines the URL pattern is matched by this rules. This pattern can be + // used with any of the {get|put|post|delete|patch} methods. A custom method + // can be defined using the 'custom' field. + oneof pattern { + // Used for listing and getting information about resources. + string get = 2; + + // Used for updating a resource. + string put = 3; + + // Used for creating a resource. + string post = 4; + + // Used for deleting a resource. + string delete = 5; + + // Used for updating a resource. + string patch = 6; + + // The custom pattern is used for specifying an HTTP method that is not + // included in the `pattern` field, such as HEAD, or "*" to leave the + // HTTP method unspecified for this rule. The wild-card rule is useful + // for services that provide content to Web (HTML) clients. + CustomHttpPattern custom = 8; + } + + // The name of the request field whose value is mapped to the HTTP body, or + // `*` for mapping all fields not captured by the path pattern to the HTTP + // body. NOTE: the referred field must not be a repeated field and must be + // present at the top-level of request message type. + string body = 7; + + // Optional. The name of the response field whose value is mapped to the HTTP + // body of response. Other response fields are ignored. When + // not set, the response message will be used as HTTP body of response. + string response_body = 12; + + // Additional HTTP bindings for the selector. Nested bindings must + // not contain an `additional_bindings` field themselves (that is, + // the nesting may only be one level deep). + repeated HttpRule additional_bindings = 11; +} + +// A custom pattern is used for defining custom HTTP verb. +message CustomHttpPattern { + // The name of this custom HTTP verb. + string kind = 1; + + // The path matched by this custom verb. + string path = 2; +} diff --git a/third_party/proto/google/api/httpbody.proto b/third_party/proto/google/api/httpbody.proto new file mode 100644 index 0000000000..4428515c12 --- /dev/null +++ b/third_party/proto/google/api/httpbody.proto @@ -0,0 +1,78 @@ +// Copyright 2018 Google LLC. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +syntax = "proto3"; + +package google.api; + +import "google/protobuf/any.proto"; + +option cc_enable_arenas = true; +option go_package = "google.golang.org/genproto/googleapis/api/httpbody;httpbody"; +option java_multiple_files = true; +option java_outer_classname = "HttpBodyProto"; +option java_package = "com.google.api"; +option objc_class_prefix = "GAPI"; + +// Message that represents an arbitrary HTTP body. It should only be used for +// payload formats that can't be represented as JSON, such as raw binary or +// an HTML page. +// +// +// This message can be used both in streaming and non-streaming API methods in +// the request as well as the response. +// +// It can be used as a top-level request field, which is convenient if one +// wants to extract parameters from either the URL or HTTP template into the +// request fields and also want access to the raw HTTP body. +// +// Example: +// +// message GetResourceRequest { +// // A unique request id. +// string request_id = 1; +// +// // The raw HTTP body is bound to this field. +// google.api.HttpBody http_body = 2; +// } +// +// service ResourceService { +// rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); +// rpc UpdateResource(google.api.HttpBody) returns +// (google.protobuf.Empty); +// } +// +// Example with streaming methods: +// +// service CaldavService { +// rpc GetCalendar(stream google.api.HttpBody) +// returns (stream google.api.HttpBody); +// rpc UpdateCalendar(stream google.api.HttpBody) +// returns (stream google.api.HttpBody); +// } +// +// Use of this type only changes how the request and response bodies are +// handled, all other features will continue to work unchanged. +message HttpBody { + // The HTTP Content-Type header value specifying the content type of the body. + string content_type = 1; + + // The HTTP request/response body as raw binary. + bytes data = 2; + + // Application specific response metadata. Must be set in the first response + // for streaming APIs. + repeated google.protobuf.Any extensions = 3; +} \ No newline at end of file diff --git a/third_party/proto/google/protobuf/any.proto b/third_party/proto/google/protobuf/any.proto new file mode 100644 index 0000000000..1431810ea4 --- /dev/null +++ b/third_party/proto/google/protobuf/any.proto @@ -0,0 +1,161 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +import "gogoproto/gogo.proto"; + +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; +option go_package = "types"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "AnyProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; + +// `Any` contains an arbitrary serialized protocol buffer message along with a +// URL that describes the type of the serialized message. +// +// Protobuf library provides support to pack/unpack Any values in the form +// of utility functions or additional generated methods of the Any type. +// +// Example 1: Pack and unpack a message in C++. +// +// Foo foo = ...; +// Any any; +// any.PackFrom(foo); +// ... +// if (any.UnpackTo(&foo)) { +// ... +// } +// +// Example 2: Pack and unpack a message in Java. +// +// Foo foo = ...; +// Any any = Any.pack(foo); +// ... +// if (any.is(Foo.class)) { +// foo = any.unpack(Foo.class); +// } +// +// Example 3: Pack and unpack a message in Python. +// +// foo = Foo(...) +// any = Any() +// any.Pack(foo) +// ... +// if any.Is(Foo.DESCRIPTOR): +// any.Unpack(foo) +// ... +// +// Example 4: Pack and unpack a message in Go +// +// foo := &pb.Foo{...} +// any, err := ptypes.MarshalAny(foo) +// ... +// foo := &pb.Foo{} +// if err := ptypes.UnmarshalAny(any, foo); err != nil { +// ... +// } +// +// The pack methods provided by protobuf library will by default use +// 'type.googleapis.com/full.type.name' as the type URL and the unpack +// methods only use the fully qualified type name after the last '/' +// in the type URL, for example "foo.bar.com/x/y.z" will yield type +// name "y.z". +// +// +// JSON +// ==== +// The JSON representation of an `Any` value uses the regular +// representation of the deserialized, embedded message, with an +// additional field `@type` which contains the type URL. Example: +// +// package google.profile; +// message Person { +// string first_name = 1; +// string last_name = 2; +// } +// +// { +// "@type": "type.googleapis.com/google.profile.Person", +// "firstName": , +// "lastName": +// } +// +// If the embedded message type is well-known and has a custom JSON +// representation, that representation will be embedded adding a field +// `value` which holds the custom JSON in addition to the `@type` +// field. Example (for message [google.protobuf.Duration][]): +// +// { +// "@type": "type.googleapis.com/google.protobuf.Duration", +// "value": "1.212s" +// } +// +message Any { + // A URL/resource name that uniquely identifies the type of the serialized + // protocol buffer message. This string must contain at least + // one "/" character. The last segment of the URL's path must represent + // the fully qualified name of the type (as in + // `path/google.protobuf.Duration`). The name should be in a canonical form + // (e.g., leading "." is not accepted). + // + // In practice, teams usually precompile into the binary all types that they + // expect it to use in the context of Any. However, for URLs which use the + // scheme `http`, `https`, or no scheme, one can optionally set up a type + // server that maps type URLs to message definitions as follows: + // + // * If no scheme is provided, `https` is assumed. + // * An HTTP GET on the URL must yield a [google.protobuf.Type][] + // value in binary format, or produce an error. + // * Applications are allowed to cache lookup results based on the + // URL, or have them precompiled into a binary to avoid any + // lookup. Therefore, binary compatibility needs to be preserved + // on changes to types. (Use versioned type names to manage + // breaking changes.) + // + // Note: this functionality is not currently available in the official + // protobuf release, and it is not used for type URLs beginning with + // type.googleapis.com. + // + // Schemes other than `http`, `https` (or the empty scheme) might be + // used with implementation specific semantics. + // + string type_url = 1; + + // Must be a valid serialized protocol buffer of the above specified type. + bytes value = 2; + + option (gogoproto.typedecl) = false; +} + +option (gogoproto.goproto_registration) = false; diff --git a/third_party/proto/ibc/applications/transfer/v1/genesis.proto b/third_party/proto/ibc/applications/transfer/v1/genesis.proto new file mode 100644 index 0000000000..98cf2296d2 --- /dev/null +++ b/third_party/proto/ibc/applications/transfer/v1/genesis.proto @@ -0,0 +1,18 @@ +syntax = "proto3"; +package ibc.applications.transfer.v1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/applications/transfer/types"; + +import "gogoproto/gogo.proto"; +import "ibc/applications/transfer/v1/transfer.proto"; + +// GenesisState defines the ibc-transfer genesis state +message GenesisState { + string port_id = 1 [(gogoproto.moretags) = "yaml:\"port_id\""]; + repeated DenomTrace denom_traces = 2 [ + (gogoproto.castrepeated) = "Traces", + (gogoproto.nullable) = false, + (gogoproto.moretags) = "yaml:\"denom_traces\"" + ]; + Params params = 3 [(gogoproto.nullable) = false]; +} diff --git a/third_party/proto/ibc/applications/transfer/v1/query.proto b/third_party/proto/ibc/applications/transfer/v1/query.proto new file mode 100644 index 0000000000..e9cbd02a31 --- /dev/null +++ b/third_party/proto/ibc/applications/transfer/v1/query.proto @@ -0,0 +1,66 @@ +syntax = "proto3"; +package ibc.applications.transfer.v1; + +import "gogoproto/gogo.proto"; +import "cosmos/base/query/v1beta1/pagination.proto"; +import "ibc/applications/transfer/v1/transfer.proto"; +import "google/api/annotations.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/applications/transfer/types"; + +// Query provides defines the gRPC querier service. +service Query { + // DenomTrace queries a denomination trace information. + rpc DenomTrace(QueryDenomTraceRequest) returns (QueryDenomTraceResponse) { + option (google.api.http).get = "/ibc/applications/transfer/v1beta1/denom_traces/{hash}"; + } + + // DenomTraces queries all denomination traces. + rpc DenomTraces(QueryDenomTracesRequest) returns (QueryDenomTracesResponse) { + option (google.api.http).get = "/ibc/applications/transfer/v1beta1/denom_traces"; + } + + // Params queries all parameters of the ibc-transfer module. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/ibc/applications/transfer/v1beta1/params"; + } +} + +// QueryDenomTraceRequest is the request type for the Query/DenomTrace RPC +// method +message QueryDenomTraceRequest { + // hash (in hex format) of the denomination trace information. + string hash = 1; +} + +// QueryDenomTraceResponse is the response type for the Query/DenomTrace RPC +// method. +message QueryDenomTraceResponse { + // denom_trace returns the requested denomination trace information. + DenomTrace denom_trace = 1; +} + +// QueryConnectionsRequest is the request type for the Query/DenomTraces RPC +// method +message QueryDenomTracesRequest { + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryConnectionsResponse is the response type for the Query/DenomTraces RPC +// method. +message QueryDenomTracesResponse { + // denom_traces returns all denominations trace information. + repeated DenomTrace denom_traces = 1 [(gogoproto.castrepeated) = "Traces", (gogoproto.nullable) = false]; + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryParamsRequest is the request type for the Query/Params RPC method. +message QueryParamsRequest {} + +// QueryParamsResponse is the response type for the Query/Params RPC method. +message QueryParamsResponse { + // params defines the parameters of the module. + Params params = 1; +} diff --git a/third_party/proto/ibc/applications/transfer/v1/transfer.proto b/third_party/proto/ibc/applications/transfer/v1/transfer.proto new file mode 100644 index 0000000000..b388c3b879 --- /dev/null +++ b/third_party/proto/ibc/applications/transfer/v1/transfer.proto @@ -0,0 +1,43 @@ +syntax = "proto3"; +package ibc.applications.transfer.v1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/applications/transfer/types"; + +import "gogoproto/gogo.proto"; + +// FungibleTokenPacketData defines a struct for the packet payload +// See FungibleTokenPacketData spec: +// https://github.com/cosmos/ics/tree/master/spec/ics-020-fungible-token-transfer#data-structures +message FungibleTokenPacketData { + // the token denomination to be transferred + string denom = 1; + // the token amount to be transferred + uint64 amount = 2; + // the sender address + string sender = 3; + // the recipient address on the destination chain + string receiver = 4; +} + +// DenomTrace contains the base denomination for ICS20 fungible tokens and the +// source tracing information path. +message DenomTrace { + // path defines the chain of port/channel identifiers used for tracing the + // source of the fungible token. + string path = 1; + // base denomination of the relayed fungible token. + string base_denom = 2; +} + +// Params defines the set of IBC transfer parameters. +// NOTE: To prevent a single token from being transferred, set the +// TransfersEnabled parameter to true and then set the bank module's SendEnabled +// parameter for the denomination to false. +message Params { + // send_enabled enables or disables all cross-chain token transfers from this + // chain. + bool send_enabled = 1 [(gogoproto.moretags) = "yaml:\"send_enabled\""]; + // receive_enabled enables or disables all cross-chain token transfers to this + // chain. + bool receive_enabled = 2 [(gogoproto.moretags) = "yaml:\"receive_enabled\""]; +} diff --git a/third_party/proto/ibc/applications/transfer/v1/tx.proto b/third_party/proto/ibc/applications/transfer/v1/tx.proto new file mode 100644 index 0000000000..a0f0827aaf --- /dev/null +++ b/third_party/proto/ibc/applications/transfer/v1/tx.proto @@ -0,0 +1,43 @@ +syntax = "proto3"; +package ibc.applications.transfer.v1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/applications/transfer/types"; + +import "gogoproto/gogo.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "ibc/core/client/v1/client.proto"; + +// Msg defines the ibc/transfer Msg service. +service Msg { + // Transfer defines a rpc handler method for MsgTransfer. + rpc Transfer(MsgTransfer) returns (MsgTransferResponse); +} + +// MsgTransfer defines a msg to transfer fungible tokens (i.e Coins) between +// ICS20 enabled chains. See ICS Spec here: +// https://github.com/cosmos/ics/tree/master/spec/ics-020-fungible-token-transfer#data-structures +message MsgTransfer { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // the port on which the packet will be sent + string source_port = 1 [(gogoproto.moretags) = "yaml:\"source_port\""]; + // the channel by which the packet will be sent + string source_channel = 2 [(gogoproto.moretags) = "yaml:\"source_channel\""]; + // the tokens to be transferred + cosmos.base.v1beta1.Coin token = 3 [(gogoproto.nullable) = false]; + // the sender address + string sender = 4; + // the recipient address on the destination chain + string receiver = 5; + // Timeout height relative to the current block height. + // The timeout is disabled when set to 0. + ibc.core.client.v1.Height timeout_height = 6 + [(gogoproto.moretags) = "yaml:\"timeout_height\"", (gogoproto.nullable) = false]; + // Timeout timestamp (in nanoseconds) relative to the current block timestamp. + // The timeout is disabled when set to 0. + uint64 timeout_timestamp = 7 [(gogoproto.moretags) = "yaml:\"timeout_timestamp\""]; +} + +// MsgTransferResponse defines the Msg/Transfer response type. +message MsgTransferResponse {} diff --git a/third_party/proto/ibc/core/channel/v1/channel.proto b/third_party/proto/ibc/core/channel/v1/channel.proto new file mode 100644 index 0000000000..302a480689 --- /dev/null +++ b/third_party/proto/ibc/core/channel/v1/channel.proto @@ -0,0 +1,147 @@ +syntax = "proto3"; +package ibc.core.channel.v1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/core/04-channel/types"; + +import "gogoproto/gogo.proto"; +import "ibc/core/client/v1/client.proto"; + +// Channel defines pipeline for exactly-once packet delivery between specific +// modules on separate blockchains, which has at least one end capable of +// sending packets and one end capable of receiving packets. +message Channel { + option (gogoproto.goproto_getters) = false; + + // current state of the channel end + State state = 1; + // whether the channel is ordered or unordered + Order ordering = 2; + // counterparty channel end + Counterparty counterparty = 3 [(gogoproto.nullable) = false]; + // list of connection identifiers, in order, along which packets sent on + // this channel will travel + repeated string connection_hops = 4 [(gogoproto.moretags) = "yaml:\"connection_hops\""]; + // opaque channel version, which is agreed upon during the handshake + string version = 5; +} + +// IdentifiedChannel defines a channel with additional port and channel +// identifier fields. +message IdentifiedChannel { + option (gogoproto.goproto_getters) = false; + + // current state of the channel end + State state = 1; + // whether the channel is ordered or unordered + Order ordering = 2; + // counterparty channel end + Counterparty counterparty = 3 [(gogoproto.nullable) = false]; + // list of connection identifiers, in order, along which packets sent on + // this channel will travel + repeated string connection_hops = 4 [(gogoproto.moretags) = "yaml:\"connection_hops\""]; + // opaque channel version, which is agreed upon during the handshake + string version = 5; + // port identifier + string port_id = 6; + // channel identifier + string channel_id = 7; +} + +// State defines if a channel is in one of the following states: +// CLOSED, INIT, TRYOPEN, OPEN or UNINITIALIZED. +enum State { + option (gogoproto.goproto_enum_prefix) = false; + + // Default State + STATE_UNINITIALIZED_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "UNINITIALIZED"]; + // A channel has just started the opening handshake. + STATE_INIT = 1 [(gogoproto.enumvalue_customname) = "INIT"]; + // A channel has acknowledged the handshake step on the counterparty chain. + STATE_TRYOPEN = 2 [(gogoproto.enumvalue_customname) = "TRYOPEN"]; + // A channel has completed the handshake. Open channels are + // ready to send and receive packets. + STATE_OPEN = 3 [(gogoproto.enumvalue_customname) = "OPEN"]; + // A channel has been closed and can no longer be used to send or receive + // packets. + STATE_CLOSED = 4 [(gogoproto.enumvalue_customname) = "CLOSED"]; +} + +// Order defines if a channel is ORDERED or UNORDERED +enum Order { + option (gogoproto.goproto_enum_prefix) = false; + + // zero-value for channel ordering + ORDER_NONE_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "NONE"]; + // packets can be delivered in any order, which may differ from the order in + // which they were sent. + ORDER_UNORDERED = 1 [(gogoproto.enumvalue_customname) = "UNORDERED"]; + // packets are delivered exactly in the order which they were sent + ORDER_ORDERED = 2 [(gogoproto.enumvalue_customname) = "ORDERED"]; +} + +// Counterparty defines a channel end counterparty +message Counterparty { + option (gogoproto.goproto_getters) = false; + + // port on the counterparty chain which owns the other end of the channel. + string port_id = 1 [(gogoproto.moretags) = "yaml:\"port_id\""]; + // channel end on the counterparty chain + string channel_id = 2 [(gogoproto.moretags) = "yaml:\"channel_id\""]; +} + +// Packet defines a type that carries data across different chains through IBC +message Packet { + option (gogoproto.goproto_getters) = false; + + // number corresponds to the order of sends and receives, where a Packet + // with an earlier sequence number must be sent and received before a Packet + // with a later sequence number. + uint64 sequence = 1; + // identifies the port on the sending chain. + string source_port = 2 [(gogoproto.moretags) = "yaml:\"source_port\""]; + // identifies the channel end on the sending chain. + string source_channel = 3 [(gogoproto.moretags) = "yaml:\"source_channel\""]; + // identifies the port on the receiving chain. + string destination_port = 4 [(gogoproto.moretags) = "yaml:\"destination_port\""]; + // identifies the channel end on the receiving chain. + string destination_channel = 5 [(gogoproto.moretags) = "yaml:\"destination_channel\""]; + // actual opaque bytes transferred directly to the application module + bytes data = 6; + // block height after which the packet times out + ibc.core.client.v1.Height timeout_height = 7 + [(gogoproto.moretags) = "yaml:\"timeout_height\"", (gogoproto.nullable) = false]; + // block timestamp (in nanoseconds) after which the packet times out + uint64 timeout_timestamp = 8 [(gogoproto.moretags) = "yaml:\"timeout_timestamp\""]; +} + +// PacketState defines the generic type necessary to retrieve and store +// packet commitments, acknowledgements, and receipts. +// Caller is responsible for knowing the context necessary to interpret this +// state as a commitment, acknowledgement, or a receipt. +message PacketState { + option (gogoproto.goproto_getters) = false; + + // channel port identifier. + string port_id = 1 [(gogoproto.moretags) = "yaml:\"port_id\""]; + // channel unique identifier. + string channel_id = 2 [(gogoproto.moretags) = "yaml:\"channel_id\""]; + // packet sequence. + uint64 sequence = 3; + // embedded data that represents packet state. + bytes data = 4; +} + +// Acknowledgement is the recommended acknowledgement format to be used by +// app-specific protocols. +// NOTE: The field numbers 21 and 22 were explicitly chosen to avoid accidental +// conflicts with other protobuf message formats used for acknowledgements. +// The first byte of any message with this format will be the non-ASCII values +// `0xaa` (result) or `0xb2` (error). Implemented as defined by ICS: +// https://github.com/cosmos/ics/tree/master/spec/ics-004-channel-and-packet-semantics#acknowledgement-envelope +message Acknowledgement { + // response contains either a result or an error and must be non-empty + oneof response { + bytes result = 21; + string error = 22; + } +} diff --git a/third_party/proto/ibc/core/channel/v1/genesis.proto b/third_party/proto/ibc/core/channel/v1/genesis.proto new file mode 100644 index 0000000000..d3b2c0424e --- /dev/null +++ b/third_party/proto/ibc/core/channel/v1/genesis.proto @@ -0,0 +1,31 @@ +syntax = "proto3"; +package ibc.core.channel.v1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/core/04-channel/types"; + +import "gogoproto/gogo.proto"; +import "ibc/core/channel/v1/channel.proto"; + +// GenesisState defines the ibc channel submodule's genesis state. +message GenesisState { + repeated IdentifiedChannel channels = 1 [(gogoproto.casttype) = "IdentifiedChannel", (gogoproto.nullable) = false]; + repeated PacketState acknowledgements = 2 [(gogoproto.nullable) = false]; + repeated PacketState commitments = 3 [(gogoproto.nullable) = false]; + repeated PacketState receipts = 4 [(gogoproto.nullable) = false]; + repeated PacketSequence send_sequences = 5 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"send_sequences\""]; + repeated PacketSequence recv_sequences = 6 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"recv_sequences\""]; + repeated PacketSequence ack_sequences = 7 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"ack_sequences\""]; + // the sequence for the next generated channel identifier + uint64 next_channel_sequence = 8 [(gogoproto.moretags) = "yaml:\"next_channel_sequence\""]; +} + +// PacketSequence defines the genesis type necessary to retrieve and store +// next send and receive sequences. +message PacketSequence { + string port_id = 1 [(gogoproto.moretags) = "yaml:\"port_id\""]; + string channel_id = 2 [(gogoproto.moretags) = "yaml:\"channel_id\""]; + uint64 sequence = 3; +} diff --git a/third_party/proto/ibc/core/channel/v1/query.proto b/third_party/proto/ibc/core/channel/v1/query.proto new file mode 100644 index 0000000000..d9e3ceb8a6 --- /dev/null +++ b/third_party/proto/ibc/core/channel/v1/query.proto @@ -0,0 +1,367 @@ +syntax = "proto3"; +package ibc.core.channel.v1; + +import "ibc/core/client/v1/client.proto"; +import "cosmos/base/query/v1beta1/pagination.proto"; +import "ibc/core/channel/v1/channel.proto"; +import "google/api/annotations.proto"; +import "google/protobuf/any.proto"; +import "gogoproto/gogo.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/core/04-channel/types"; + +// Query provides defines the gRPC querier service +service Query { + // Channel queries an IBC Channel. + rpc Channel(QueryChannelRequest) returns (QueryChannelResponse) { + option (google.api.http).get = "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}"; + } + + // Channels queries all the IBC channels of a chain. + rpc Channels(QueryChannelsRequest) returns (QueryChannelsResponse) { + option (google.api.http).get = "/ibc/core/channel/v1beta1/channels"; + } + + // ConnectionChannels queries all the channels associated with a connection + // end. + rpc ConnectionChannels(QueryConnectionChannelsRequest) returns (QueryConnectionChannelsResponse) { + option (google.api.http).get = "/ibc/core/channel/v1beta1/connections/{connection}/channels"; + } + + // ChannelClientState queries for the client state for the channel associated + // with the provided channel identifiers. + rpc ChannelClientState(QueryChannelClientStateRequest) returns (QueryChannelClientStateResponse) { + option (google.api.http).get = "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}/client_state"; + } + + // ChannelConsensusState queries for the consensus state for the channel + // associated with the provided channel identifiers. + rpc ChannelConsensusState(QueryChannelConsensusStateRequest) returns (QueryChannelConsensusStateResponse) { + option (google.api.http).get = + "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}/consensus_state/revision/" + "{revision_number}/height/{revision_height}"; + } + + // PacketCommitment queries a stored packet commitment hash. + rpc PacketCommitment(QueryPacketCommitmentRequest) returns (QueryPacketCommitmentResponse) { + option (google.api.http).get = + "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}/packet_commitments/{sequence}"; + } + + // PacketCommitments returns all the packet commitments hashes associated + // with a channel. + rpc PacketCommitments(QueryPacketCommitmentsRequest) returns (QueryPacketCommitmentsResponse) { + option (google.api.http).get = "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}/packet_commitments"; + } + + // PacketReceipt queries if a given packet sequence has been received on the queried chain + rpc PacketReceipt(QueryPacketReceiptRequest) returns (QueryPacketReceiptResponse) { + option (google.api.http).get = + "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}/packet_receipts/{sequence}"; + } + + // PacketAcknowledgement queries a stored packet acknowledgement hash. + rpc PacketAcknowledgement(QueryPacketAcknowledgementRequest) returns (QueryPacketAcknowledgementResponse) { + option (google.api.http).get = + "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}/packet_acks/{sequence}"; + } + + // PacketAcknowledgements returns all the packet acknowledgements associated + // with a channel. + rpc PacketAcknowledgements(QueryPacketAcknowledgementsRequest) returns (QueryPacketAcknowledgementsResponse) { + option (google.api.http).get = + "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}/packet_acknowledgements"; + } + + // UnreceivedPackets returns all the unreceived IBC packets associated with a + // channel and sequences. + rpc UnreceivedPackets(QueryUnreceivedPacketsRequest) returns (QueryUnreceivedPacketsResponse) { + option (google.api.http).get = "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}/packet_commitments/" + "{packet_commitment_sequences}/unreceived_packets"; + } + + // UnreceivedAcks returns all the unreceived IBC acknowledgements associated with a + // channel and sequences. + rpc UnreceivedAcks(QueryUnreceivedAcksRequest) returns (QueryUnreceivedAcksResponse) { + option (google.api.http).get = "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}/packet_commitments/" + "{packet_ack_sequences}/unreceived_acks"; + } + + // NextSequenceReceive returns the next receive sequence for a given channel. + rpc NextSequenceReceive(QueryNextSequenceReceiveRequest) returns (QueryNextSequenceReceiveResponse) { + option (google.api.http).get = "/ibc/core/channel/v1beta1/channels/{channel_id}/ports/{port_id}/next_sequence"; + } +} + +// QueryChannelRequest is the request type for the Query/Channel RPC method +message QueryChannelRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; +} + +// QueryChannelResponse is the response type for the Query/Channel RPC method. +// Besides the Channel end, it includes a proof and the height from which the +// proof was retrieved. +message QueryChannelResponse { + // channel associated with the request identifiers + ibc.core.channel.v1.Channel channel = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; +} + +// QueryChannelsRequest is the request type for the Query/Channels RPC method +message QueryChannelsRequest { + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryChannelsResponse is the response type for the Query/Channels RPC method. +message QueryChannelsResponse { + // list of stored channels of the chain. + repeated ibc.core.channel.v1.IdentifiedChannel channels = 1; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; + // query block height + ibc.core.client.v1.Height height = 3 [(gogoproto.nullable) = false]; +} + +// QueryConnectionChannelsRequest is the request type for the +// Query/QueryConnectionChannels RPC method +message QueryConnectionChannelsRequest { + // connection unique identifier + string connection = 1; + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryConnectionChannelsResponse is the Response type for the +// Query/QueryConnectionChannels RPC method +message QueryConnectionChannelsResponse { + // list of channels associated with a connection. + repeated ibc.core.channel.v1.IdentifiedChannel channels = 1; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; + // query block height + ibc.core.client.v1.Height height = 3 [(gogoproto.nullable) = false]; +} + +// QueryChannelClientStateRequest is the request type for the Query/ClientState +// RPC method +message QueryChannelClientStateRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; +} + +// QueryChannelClientStateResponse is the Response type for the +// Query/QueryChannelClientState RPC method +message QueryChannelClientStateResponse { + // client state associated with the channel + ibc.core.client.v1.IdentifiedClientState identified_client_state = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; +} + +// QueryChannelConsensusStateRequest is the request type for the +// Query/ConsensusState RPC method +message QueryChannelConsensusStateRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // revision number of the consensus state + uint64 revision_number = 3; + // revision height of the consensus state + uint64 revision_height = 4; +} + +// QueryChannelClientStateResponse is the Response type for the +// Query/QueryChannelClientState RPC method +message QueryChannelConsensusStateResponse { + // consensus state associated with the channel + google.protobuf.Any consensus_state = 1; + // client ID associated with the consensus state + string client_id = 2; + // merkle proof of existence + bytes proof = 3; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 4 [(gogoproto.nullable) = false]; +} + +// QueryPacketCommitmentRequest is the request type for the +// Query/PacketCommitment RPC method +message QueryPacketCommitmentRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // packet sequence + uint64 sequence = 3; +} + +// QueryPacketCommitmentResponse defines the client query response for a packet +// which also includes a proof and the height from which the proof was +// retrieved +message QueryPacketCommitmentResponse { + // packet associated with the request fields + bytes commitment = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; +} + +// QueryPacketCommitmentsRequest is the request type for the +// Query/QueryPacketCommitments RPC method +message QueryPacketCommitmentsRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 3; +} + +// QueryPacketCommitmentsResponse is the request type for the +// Query/QueryPacketCommitments RPC method +message QueryPacketCommitmentsResponse { + repeated ibc.core.channel.v1.PacketState commitments = 1; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; + // query block height + ibc.core.client.v1.Height height = 3 [(gogoproto.nullable) = false]; +} + +// QueryPacketReceiptRequest is the request type for the +// Query/PacketReceipt RPC method +message QueryPacketReceiptRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // packet sequence + uint64 sequence = 3; +} + +// QueryPacketReceiptResponse defines the client query response for a packet receipt +// which also includes a proof, and the height from which the proof was +// retrieved +message QueryPacketReceiptResponse { + // success flag for if receipt exists + bool received = 2; + // merkle proof of existence + bytes proof = 3; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 4 [(gogoproto.nullable) = false]; +} + +// QueryPacketAcknowledgementRequest is the request type for the +// Query/PacketAcknowledgement RPC method +message QueryPacketAcknowledgementRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // packet sequence + uint64 sequence = 3; +} + +// QueryPacketAcknowledgementResponse defines the client query response for a +// packet which also includes a proof and the height from which the +// proof was retrieved +message QueryPacketAcknowledgementResponse { + // packet associated with the request fields + bytes acknowledgement = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; +} + +// QueryPacketAcknowledgementsRequest is the request type for the +// Query/QueryPacketCommitments RPC method +message QueryPacketAcknowledgementsRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 3; +} + +// QueryPacketAcknowledgemetsResponse is the request type for the +// Query/QueryPacketAcknowledgements RPC method +message QueryPacketAcknowledgementsResponse { + repeated ibc.core.channel.v1.PacketState acknowledgements = 1; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; + // query block height + ibc.core.client.v1.Height height = 3 [(gogoproto.nullable) = false]; +} + +// QueryUnreceivedPacketsRequest is the request type for the +// Query/UnreceivedPackets RPC method +message QueryUnreceivedPacketsRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // list of packet sequences + repeated uint64 packet_commitment_sequences = 3; +} + +// QueryUnreceivedPacketsResponse is the response type for the +// Query/UnreceivedPacketCommitments RPC method +message QueryUnreceivedPacketsResponse { + // list of unreceived packet sequences + repeated uint64 sequences = 1; + // query block height + ibc.core.client.v1.Height height = 2 [(gogoproto.nullable) = false]; +} + +// QueryUnreceivedAcks is the request type for the +// Query/UnreceivedAcks RPC method +message QueryUnreceivedAcksRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; + // list of acknowledgement sequences + repeated uint64 packet_ack_sequences = 3; +} + +// QueryUnreceivedAcksResponse is the response type for the +// Query/UnreceivedAcks RPC method +message QueryUnreceivedAcksResponse { + // list of unreceived acknowledgement sequences + repeated uint64 sequences = 1; + // query block height + ibc.core.client.v1.Height height = 2 [(gogoproto.nullable) = false]; +} + +// QueryNextSequenceReceiveRequest is the request type for the +// Query/QueryNextSequenceReceiveRequest RPC method +message QueryNextSequenceReceiveRequest { + // port unique identifier + string port_id = 1; + // channel unique identifier + string channel_id = 2; +} + +// QuerySequenceResponse is the request type for the +// Query/QueryNextSequenceReceiveResponse RPC method +message QueryNextSequenceReceiveResponse { + // next sequence receive number + uint64 next_sequence_receive = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; +} diff --git a/third_party/proto/ibc/core/channel/v1/tx.proto b/third_party/proto/ibc/core/channel/v1/tx.proto new file mode 100644 index 0000000000..5f84264124 --- /dev/null +++ b/third_party/proto/ibc/core/channel/v1/tx.proto @@ -0,0 +1,207 @@ +syntax = "proto3"; +package ibc.core.channel.v1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/core/04-channel/types"; + +import "gogoproto/gogo.proto"; +import "ibc/core/client/v1/client.proto"; +import "ibc/core/channel/v1/channel.proto"; + +// Msg defines the ibc/channel Msg service. +service Msg { + // ChannelOpenInit defines a rpc handler method for MsgChannelOpenInit. + rpc ChannelOpenInit(MsgChannelOpenInit) returns (MsgChannelOpenInitResponse); + + // ChannelOpenTry defines a rpc handler method for MsgChannelOpenTry. + rpc ChannelOpenTry(MsgChannelOpenTry) returns (MsgChannelOpenTryResponse); + + // ChannelOpenAck defines a rpc handler method for MsgChannelOpenAck. + rpc ChannelOpenAck(MsgChannelOpenAck) returns (MsgChannelOpenAckResponse); + + // ChannelOpenConfirm defines a rpc handler method for MsgChannelOpenConfirm. + rpc ChannelOpenConfirm(MsgChannelOpenConfirm) returns (MsgChannelOpenConfirmResponse); + + // ChannelCloseInit defines a rpc handler method for MsgChannelCloseInit. + rpc ChannelCloseInit(MsgChannelCloseInit) returns (MsgChannelCloseInitResponse); + + // ChannelCloseConfirm defines a rpc handler method for MsgChannelCloseConfirm. + rpc ChannelCloseConfirm(MsgChannelCloseConfirm) returns (MsgChannelCloseConfirmResponse); + + // RecvPacket defines a rpc handler method for MsgRecvPacket. + rpc RecvPacket(MsgRecvPacket) returns (MsgRecvPacketResponse); + + // Timeout defines a rpc handler method for MsgTimeout. + rpc Timeout(MsgTimeout) returns (MsgTimeoutResponse); + + // TimeoutOnClose defines a rpc handler method for MsgTimeoutOnClose. + rpc TimeoutOnClose(MsgTimeoutOnClose) returns (MsgTimeoutOnCloseResponse); + + // Acknowledgement defines a rpc handler method for MsgAcknowledgement. + rpc Acknowledgement(MsgAcknowledgement) returns (MsgAcknowledgementResponse); +} + +// MsgChannelOpenInit defines an sdk.Msg to initialize a channel handshake. It +// is called by a relayer on Chain A. +message MsgChannelOpenInit { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string port_id = 1 [(gogoproto.moretags) = "yaml:\"port_id\""]; + Channel channel = 2 [(gogoproto.nullable) = false]; + string signer = 3; +} + +// MsgChannelOpenInitResponse defines the Msg/ChannelOpenInit response type. +message MsgChannelOpenInitResponse {} + +// MsgChannelOpenInit defines a msg sent by a Relayer to try to open a channel +// on Chain B. +message MsgChannelOpenTry { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string port_id = 1 [(gogoproto.moretags) = "yaml:\"port_id\""]; + // in the case of crossing hello's, when both chains call OpenInit, we need the channel identifier + // of the previous channel in state INIT + string previous_channel_id = 2 [(gogoproto.moretags) = "yaml:\"previous_channel_id\""]; + Channel channel = 3 [(gogoproto.nullable) = false]; + string counterparty_version = 4 [(gogoproto.moretags) = "yaml:\"counterparty_version\""]; + bytes proof_init = 5 [(gogoproto.moretags) = "yaml:\"proof_init\""]; + ibc.core.client.v1.Height proof_height = 6 + [(gogoproto.moretags) = "yaml:\"proof_height\"", (gogoproto.nullable) = false]; + string signer = 7; +} + +// MsgChannelOpenTryResponse defines the Msg/ChannelOpenTry response type. +message MsgChannelOpenTryResponse {} + +// MsgChannelOpenAck defines a msg sent by a Relayer to Chain A to acknowledge +// the change of channel state to TRYOPEN on Chain B. +message MsgChannelOpenAck { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string port_id = 1 [(gogoproto.moretags) = "yaml:\"port_id\""]; + string channel_id = 2 [(gogoproto.moretags) = "yaml:\"channel_id\""]; + string counterparty_channel_id = 3 [(gogoproto.moretags) = "yaml:\"counterparty_channel_id\""]; + string counterparty_version = 4 [(gogoproto.moretags) = "yaml:\"counterparty_version\""]; + bytes proof_try = 5 [(gogoproto.moretags) = "yaml:\"proof_try\""]; + ibc.core.client.v1.Height proof_height = 6 + [(gogoproto.moretags) = "yaml:\"proof_height\"", (gogoproto.nullable) = false]; + string signer = 7; +} + +// MsgChannelOpenAckResponse defines the Msg/ChannelOpenAck response type. +message MsgChannelOpenAckResponse {} + +// MsgChannelOpenConfirm defines a msg sent by a Relayer to Chain B to +// acknowledge the change of channel state to OPEN on Chain A. +message MsgChannelOpenConfirm { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string port_id = 1 [(gogoproto.moretags) = "yaml:\"port_id\""]; + string channel_id = 2 [(gogoproto.moretags) = "yaml:\"channel_id\""]; + bytes proof_ack = 3 [(gogoproto.moretags) = "yaml:\"proof_ack\""]; + ibc.core.client.v1.Height proof_height = 4 + [(gogoproto.moretags) = "yaml:\"proof_height\"", (gogoproto.nullable) = false]; + string signer = 5; +} + +// MsgChannelOpenConfirmResponse defines the Msg/ChannelOpenConfirm response type. +message MsgChannelOpenConfirmResponse {} + +// MsgChannelCloseInit defines a msg sent by a Relayer to Chain A +// to close a channel with Chain B. +message MsgChannelCloseInit { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string port_id = 1 [(gogoproto.moretags) = "yaml:\"port_id\""]; + string channel_id = 2 [(gogoproto.moretags) = "yaml:\"channel_id\""]; + string signer = 3; +} + +// MsgChannelCloseInitResponse defines the Msg/ChannelCloseInit response type. +message MsgChannelCloseInitResponse {} + +// MsgChannelCloseConfirm defines a msg sent by a Relayer to Chain B +// to acknowledge the change of channel state to CLOSED on Chain A. +message MsgChannelCloseConfirm { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string port_id = 1 [(gogoproto.moretags) = "yaml:\"port_id\""]; + string channel_id = 2 [(gogoproto.moretags) = "yaml:\"channel_id\""]; + bytes proof_init = 3 [(gogoproto.moretags) = "yaml:\"proof_init\""]; + ibc.core.client.v1.Height proof_height = 4 + [(gogoproto.moretags) = "yaml:\"proof_height\"", (gogoproto.nullable) = false]; + string signer = 5; +} + +// MsgChannelCloseConfirmResponse defines the Msg/ChannelCloseConfirm response type. +message MsgChannelCloseConfirmResponse {} + +// MsgRecvPacket receives incoming IBC packet +message MsgRecvPacket { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + Packet packet = 1 [(gogoproto.nullable) = false]; + bytes proof_commitment = 2 [(gogoproto.moretags) = "yaml:\"proof_commitment\""]; + ibc.core.client.v1.Height proof_height = 3 + [(gogoproto.moretags) = "yaml:\"proof_height\"", (gogoproto.nullable) = false]; + string signer = 4; +} + +// MsgRecvPacketResponse defines the Msg/RecvPacket response type. +message MsgRecvPacketResponse {} + +// MsgTimeout receives timed-out packet +message MsgTimeout { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + Packet packet = 1 [(gogoproto.nullable) = false]; + bytes proof_unreceived = 2 [(gogoproto.moretags) = "yaml:\"proof_unreceived\""]; + ibc.core.client.v1.Height proof_height = 3 + [(gogoproto.moretags) = "yaml:\"proof_height\"", (gogoproto.nullable) = false]; + uint64 next_sequence_recv = 4 [(gogoproto.moretags) = "yaml:\"next_sequence_recv\""]; + string signer = 5; +} + +// MsgTimeoutResponse defines the Msg/Timeout response type. +message MsgTimeoutResponse {} + +// MsgTimeoutOnClose timed-out packet upon counterparty channel closure. +message MsgTimeoutOnClose { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + Packet packet = 1 [(gogoproto.nullable) = false]; + bytes proof_unreceived = 2 [(gogoproto.moretags) = "yaml:\"proof_unreceived\""]; + bytes proof_close = 3 [(gogoproto.moretags) = "yaml:\"proof_close\""]; + ibc.core.client.v1.Height proof_height = 4 + [(gogoproto.moretags) = "yaml:\"proof_height\"", (gogoproto.nullable) = false]; + uint64 next_sequence_recv = 5 [(gogoproto.moretags) = "yaml:\"next_sequence_recv\""]; + string signer = 6; +} + +// MsgTimeoutOnCloseResponse defines the Msg/TimeoutOnClose response type. +message MsgTimeoutOnCloseResponse {} + +// MsgAcknowledgement receives incoming IBC acknowledgement +message MsgAcknowledgement { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + Packet packet = 1 [(gogoproto.nullable) = false]; + bytes acknowledgement = 2; + bytes proof_acked = 3 [(gogoproto.moretags) = "yaml:\"proof_acked\""]; + ibc.core.client.v1.Height proof_height = 4 + [(gogoproto.moretags) = "yaml:\"proof_height\"", (gogoproto.nullable) = false]; + string signer = 5; +} + +// MsgAcknowledgementResponse defines the Msg/Acknowledgement response type. +message MsgAcknowledgementResponse {} diff --git a/third_party/proto/ibc/core/client/v1/client.proto b/third_party/proto/ibc/core/client/v1/client.proto new file mode 100644 index 0000000000..11d2195aaf --- /dev/null +++ b/third_party/proto/ibc/core/client/v1/client.proto @@ -0,0 +1,74 @@ +syntax = "proto3"; +package ibc.core.client.v1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/core/02-client/types"; + +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; + +// IdentifiedClientState defines a client state with an additional client +// identifier field. +message IdentifiedClientState { + // client identifier + string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; + // client state + google.protobuf.Any client_state = 2 [(gogoproto.moretags) = "yaml:\"client_state\""]; +} + +// ConsensusStateWithHeight defines a consensus state with an additional height field. +message ConsensusStateWithHeight { + // consensus state height + Height height = 1 [(gogoproto.nullable) = false]; + // consensus state + google.protobuf.Any consensus_state = 2 [(gogoproto.moretags) = "yaml\"consensus_state\""]; +} + +// ClientConsensusStates defines all the stored consensus states for a given +// client. +message ClientConsensusStates { + // client identifier + string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; + // consensus states and their heights associated with the client + repeated ConsensusStateWithHeight consensus_states = 2 + [(gogoproto.moretags) = "yaml:\"consensus_states\"", (gogoproto.nullable) = false]; +} + +// ClientUpdateProposal is a governance proposal. If it passes, the client is +// updated with the provided header. The update may fail if the header is not +// valid given certain conditions specified by the client implementation. +message ClientUpdateProposal { + option (gogoproto.goproto_getters) = false; + // the title of the update proposal + string title = 1; + // the description of the proposal + string description = 2; + // the client identifier for the client to be updated if the proposal passes + string client_id = 3 [(gogoproto.moretags) = "yaml:\"client_id\""]; + // the header used to update the client if the proposal passes + google.protobuf.Any header = 4; +} + +// Height is a monotonically increasing data type +// that can be compared against another Height for the purposes of updating and +// freezing clients +// +// Normally the RevisionHeight is incremented at each height while keeping RevisionNumber +// the same. However some consensus algorithms may choose to reset the +// height in certain conditions e.g. hard forks, state-machine breaking changes +// In these cases, the RevisionNumber is incremented so that height continues to +// be monitonically increasing even as the RevisionHeight gets reset +message Height { + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + + // the revision that the client is currently on + uint64 revision_number = 1 [(gogoproto.moretags) = "yaml:\"revision_number\""]; + // the height within the given revision + uint64 revision_height = 2 [(gogoproto.moretags) = "yaml:\"revision_height\""]; +} + +// Params defines the set of IBC light client parameters. +message Params { + // allowed_clients defines the list of allowed client state types. + repeated string allowed_clients = 1 [(gogoproto.moretags) = "yaml:\"allowed_clients\""]; +} diff --git a/third_party/proto/ibc/core/client/v1/genesis.proto b/third_party/proto/ibc/core/client/v1/genesis.proto new file mode 100644 index 0000000000..16febbceef --- /dev/null +++ b/third_party/proto/ibc/core/client/v1/genesis.proto @@ -0,0 +1,46 @@ +syntax = "proto3"; +package ibc.core.client.v1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/core/02-client/types"; + +import "ibc/core/client/v1/client.proto"; +import "gogoproto/gogo.proto"; + +// GenesisState defines the ibc client submodule's genesis state. +message GenesisState { + // client states with their corresponding identifiers + repeated IdentifiedClientState clients = 1 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "IdentifiedClientStates"]; + // consensus states from each client + repeated ClientConsensusStates clients_consensus = 2 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "ClientsConsensusStates", + (gogoproto.moretags) = "yaml:\"clients_consensus\"" + ]; + // metadata from each client + repeated IdentifiedGenesisMetadata clients_metadata = 3 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"clients_metadata\""]; + Params params = 4 [(gogoproto.nullable) = false]; + // create localhost on initialization + bool create_localhost = 5 [(gogoproto.moretags) = "yaml:\"create_localhost\""]; + // the sequence for the next generated client identifier + uint64 next_client_sequence = 6 [(gogoproto.moretags) = "yaml:\"next_client_sequence\""]; +} + +// GenesisMetadata defines the genesis type for metadata that clients may return +// with ExportMetadata +message GenesisMetadata { + option (gogoproto.goproto_getters) = false; + + // store key of metadata without clientID-prefix + bytes key = 1; + // metadata value + bytes value = 2; +} + +// IdentifiedGenesisMetadata has the client metadata with the corresponding client id. +message IdentifiedGenesisMetadata { + string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; + repeated GenesisMetadata client_metadata = 2 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"client_metadata\""]; +} \ No newline at end of file diff --git a/third_party/proto/ibc/core/client/v1/query.proto b/third_party/proto/ibc/core/client/v1/query.proto new file mode 100644 index 0000000000..97f3acd627 --- /dev/null +++ b/third_party/proto/ibc/core/client/v1/query.proto @@ -0,0 +1,130 @@ +syntax = "proto3"; +package ibc.core.client.v1; + +import "cosmos/base/query/v1beta1/pagination.proto"; +import "ibc/core/client/v1/client.proto"; +import "google/protobuf/any.proto"; +import "google/api/annotations.proto"; +import "gogoproto/gogo.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/core/02-client/types"; + +// Query provides defines the gRPC querier service +service Query { + // ClientState queries an IBC light client. + rpc ClientState(QueryClientStateRequest) returns (QueryClientStateResponse) { + option (google.api.http).get = "/ibc/core/client/v1beta1/client_states/{client_id}"; + } + + // ClientStates queries all the IBC light clients of a chain. + rpc ClientStates(QueryClientStatesRequest) returns (QueryClientStatesResponse) { + option (google.api.http).get = "/ibc/core/client/v1beta1/client_states"; + } + + // ConsensusState queries a consensus state associated with a client state at + // a given height. + rpc ConsensusState(QueryConsensusStateRequest) returns (QueryConsensusStateResponse) { + option (google.api.http).get = "/ibc/core/client/v1beta1/consensus_states/{client_id}/revision/{revision_number}/" + "height/{revision_height}"; + } + + // ConsensusStates queries all the consensus state associated with a given + // client. + rpc ConsensusStates(QueryConsensusStatesRequest) returns (QueryConsensusStatesResponse) { + option (google.api.http).get = "/ibc/core/client/v1beta1/consensus_states/{client_id}"; + } + + // ClientParams queries all parameters of the ibc client. + rpc ClientParams(QueryClientParamsRequest) returns (QueryClientParamsResponse) { + option (google.api.http).get = "/ibc/client/v1beta1/params"; + } +} + +// QueryClientStateRequest is the request type for the Query/ClientState RPC +// method +message QueryClientStateRequest { + // client state unique identifier + string client_id = 1; +} + +// QueryClientStateResponse is the response type for the Query/ClientState RPC +// method. Besides the client state, it includes a proof and the height from +// which the proof was retrieved. +message QueryClientStateResponse { + // client state associated with the request identifier + google.protobuf.Any client_state = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; +} + +// QueryClientStatesRequest is the request type for the Query/ClientStates RPC +// method +message QueryClientStatesRequest { + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryClientStatesResponse is the response type for the Query/ClientStates RPC +// method. +message QueryClientStatesResponse { + // list of stored ClientStates of the chain. + repeated IdentifiedClientState client_states = 1 + [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "IdentifiedClientStates"]; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryConsensusStateRequest is the request type for the Query/ConsensusState +// RPC method. Besides the consensus state, it includes a proof and the height +// from which the proof was retrieved. +message QueryConsensusStateRequest { + // client identifier + string client_id = 1; + // consensus state revision number + uint64 revision_number = 2; + // consensus state revision height + uint64 revision_height = 3; + // latest_height overrrides the height field and queries the latest stored + // ConsensusState + bool latest_height = 4; +} + +// QueryConsensusStateResponse is the response type for the Query/ConsensusState +// RPC method +message QueryConsensusStateResponse { + // consensus state associated with the client identifier at the given height + google.protobuf.Any consensus_state = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; +} + +// QueryConsensusStatesRequest is the request type for the Query/ConsensusStates +// RPC method. +message QueryConsensusStatesRequest { + // client identifier + string client_id = 1; + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryConsensusStatesResponse is the response type for the +// Query/ConsensusStates RPC method +message QueryConsensusStatesResponse { + // consensus states associated with the identifier + repeated ConsensusStateWithHeight consensus_states = 1 [(gogoproto.nullable) = false]; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryClientParamsRequest is the request type for the Query/ClientParams RPC method. +message QueryClientParamsRequest {} + +// QueryClientParamsResponse is the response type for the Query/ClientParams RPC method. +message QueryClientParamsResponse { + // params defines the parameters of the module. + Params params = 1; +} diff --git a/third_party/proto/ibc/core/client/v1/tx.proto b/third_party/proto/ibc/core/client/v1/tx.proto new file mode 100644 index 0000000000..a30ec8bbf1 --- /dev/null +++ b/third_party/proto/ibc/core/client/v1/tx.proto @@ -0,0 +1,96 @@ +syntax = "proto3"; +package ibc.core.client.v1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/core/02-client/types"; + +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; +import "ibc/core/client/v1/client.proto"; + +// Msg defines the ibc/client Msg service. +service Msg { + // CreateClient defines a rpc handler method for MsgCreateClient. + rpc CreateClient(MsgCreateClient) returns (MsgCreateClientResponse); + + // UpdateClient defines a rpc handler method for MsgUpdateClient. + rpc UpdateClient(MsgUpdateClient) returns (MsgUpdateClientResponse); + + // UpgradeClient defines a rpc handler method for MsgUpgradeClient. + rpc UpgradeClient(MsgUpgradeClient) returns (MsgUpgradeClientResponse); + + // SubmitMisbehaviour defines a rpc handler method for MsgSubmitMisbehaviour. + rpc SubmitMisbehaviour(MsgSubmitMisbehaviour) returns (MsgSubmitMisbehaviourResponse); +} + +// MsgCreateClient defines a message to create an IBC client +message MsgCreateClient { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // light client state + google.protobuf.Any client_state = 1 [(gogoproto.moretags) = "yaml:\"client_state\""]; + // consensus state associated with the client that corresponds to a given + // height. + google.protobuf.Any consensus_state = 2 [(gogoproto.moretags) = "yaml:\"consensus_state\""]; + // signer address + string signer = 3; +} + +// MsgCreateClientResponse defines the Msg/CreateClient response type. +message MsgCreateClientResponse {} + +// MsgUpdateClient defines an sdk.Msg to update a IBC client state using +// the given header. +message MsgUpdateClient { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // client unique identifier + string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; + // header to update the light client + google.protobuf.Any header = 2; + // signer address + string signer = 3; +} + +// MsgUpdateClientResponse defines the Msg/UpdateClient response type. +message MsgUpdateClientResponse {} + +// MsgUpgradeClient defines an sdk.Msg to upgrade an IBC client to a new client state +message MsgUpgradeClient { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // client unique identifier + string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; + // upgraded client state + google.protobuf.Any client_state = 2 [(gogoproto.moretags) = "yaml:\"client_state\""]; + // upgraded consensus state, only contains enough information to serve as a basis of trust in update logic + google.protobuf.Any consensus_state = 3 [(gogoproto.moretags) = "yaml:\"consensus_state\""]; + // proof that old chain committed to new client + bytes proof_upgrade_client = 4 [(gogoproto.moretags) = "yaml:\"proof_upgrade_client\""]; + // proof that old chain committed to new consensus state + bytes proof_upgrade_consensus_state = 5 [(gogoproto.moretags) = "yaml:\"proof_upgrade_consensus_state\""]; + // signer address + string signer = 6; +} + +// MsgUpgradeClientResponse defines the Msg/UpgradeClient response type. +message MsgUpgradeClientResponse {} + +// MsgSubmitMisbehaviour defines an sdk.Msg type that submits Evidence for +// light client misbehaviour. +message MsgSubmitMisbehaviour { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // client unique identifier + string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; + // misbehaviour used for freezing the light client + google.protobuf.Any misbehaviour = 2; + // signer address + string signer = 3; +} + +// MsgSubmitMisbehaviourResponse defines the Msg/SubmitMisbehaviour response type. +message MsgSubmitMisbehaviourResponse {} diff --git a/third_party/proto/ibc/core/commitment/v1/commitment.proto b/third_party/proto/ibc/core/commitment/v1/commitment.proto new file mode 100644 index 0000000000..51c1027316 --- /dev/null +++ b/third_party/proto/ibc/core/commitment/v1/commitment.proto @@ -0,0 +1,40 @@ +syntax = "proto3"; +package ibc.core.commitment.v1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/core/23-commitment/types"; + +import "gogoproto/gogo.proto"; +import "confio/proofs.proto"; + +// MerkleRoot defines a merkle root hash. +// In the Cosmos SDK, the AppHash of a block header becomes the root. +message MerkleRoot { + option (gogoproto.goproto_getters) = false; + + bytes hash = 1; +} + +// MerklePrefix is merkle path prefixed to the key. +// The constructed key from the Path and the key will be append(Path.KeyPath, +// append(Path.KeyPrefix, key...)) +message MerklePrefix { + bytes key_prefix = 1 [(gogoproto.moretags) = "yaml:\"key_prefix\""]; +} + +// MerklePath is the path used to verify commitment proofs, which can be an +// arbitrary structured object (defined by a commitment type). +// MerklePath is represented from root-to-leaf +message MerklePath { + option (gogoproto.goproto_stringer) = false; + + repeated string key_path = 1 [(gogoproto.moretags) = "yaml:\"key_path\""]; +} + +// MerkleProof is a wrapper type over a chain of CommitmentProofs. +// It demonstrates membership or non-membership for an element or set of +// elements, verifiable in conjunction with a known commitment root. Proofs +// should be succinct. +// MerkleProofs are ordered from leaf-to-root +message MerkleProof { + repeated ics23.CommitmentProof proofs = 1; +} \ No newline at end of file diff --git a/third_party/proto/ibc/core/connection/v1/connection.proto b/third_party/proto/ibc/core/connection/v1/connection.proto new file mode 100644 index 0000000000..d21e595165 --- /dev/null +++ b/third_party/proto/ibc/core/connection/v1/connection.proto @@ -0,0 +1,104 @@ +syntax = "proto3"; +package ibc.core.connection.v1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/core/03-connection/types"; + +import "gogoproto/gogo.proto"; +import "ibc/core/commitment/v1/commitment.proto"; + +// ICS03 - Connection Data Structures as defined in +// https://github.com/cosmos/ics/tree/master/spec/ics-003-connection-semantics#data-structures + +// ConnectionEnd defines a stateful object on a chain connected to another +// separate one. +// NOTE: there must only be 2 defined ConnectionEnds to establish +// a connection between two chains. +message ConnectionEnd { + option (gogoproto.goproto_getters) = false; + // client associated with this connection. + string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; + // IBC version which can be utilised to determine encodings or protocols for + // channels or packets utilising this connection. + repeated Version versions = 2; + // current state of the connection end. + State state = 3; + // counterparty chain associated with this connection. + Counterparty counterparty = 4 [(gogoproto.nullable) = false]; + // delay period that must pass before a consensus state can be used for packet-verification + // NOTE: delay period logic is only implemented by some clients. + uint64 delay_period = 5 [(gogoproto.moretags) = "yaml:\"delay_period\""]; +} + +// IdentifiedConnection defines a connection with additional connection +// identifier field. +message IdentifiedConnection { + option (gogoproto.goproto_getters) = false; + // connection identifier. + string id = 1 [(gogoproto.moretags) = "yaml:\"id\""]; + // client associated with this connection. + string client_id = 2 [(gogoproto.moretags) = "yaml:\"client_id\""]; + // IBC version which can be utilised to determine encodings or protocols for + // channels or packets utilising this connection + repeated Version versions = 3; + // current state of the connection end. + State state = 4; + // counterparty chain associated with this connection. + Counterparty counterparty = 5 [(gogoproto.nullable) = false]; + // delay period associated with this connection. + uint64 delay_period = 6 [(gogoproto.moretags) = "yaml:\"delay_period\""]; +} + +// State defines if a connection is in one of the following states: +// INIT, TRYOPEN, OPEN or UNINITIALIZED. +enum State { + option (gogoproto.goproto_enum_prefix) = false; + + // Default State + STATE_UNINITIALIZED_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "UNINITIALIZED"]; + // A connection end has just started the opening handshake. + STATE_INIT = 1 [(gogoproto.enumvalue_customname) = "INIT"]; + // A connection end has acknowledged the handshake step on the counterparty + // chain. + STATE_TRYOPEN = 2 [(gogoproto.enumvalue_customname) = "TRYOPEN"]; + // A connection end has completed the handshake. + STATE_OPEN = 3 [(gogoproto.enumvalue_customname) = "OPEN"]; +} + +// Counterparty defines the counterparty chain associated with a connection end. +message Counterparty { + option (gogoproto.goproto_getters) = false; + + // identifies the client on the counterparty chain associated with a given + // connection. + string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; + // identifies the connection end on the counterparty chain associated with a + // given connection. + string connection_id = 2 [(gogoproto.moretags) = "yaml:\"connection_id\""]; + // commitment merkle prefix of the counterparty chain. + ibc.core.commitment.v1.MerklePrefix prefix = 3 [(gogoproto.nullable) = false]; +} + +// ClientPaths define all the connection paths for a client state. +message ClientPaths { + // list of connection paths + repeated string paths = 1; +} + +// ConnectionPaths define all the connection paths for a given client state. +message ConnectionPaths { + // client state unique identifier + string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; + // list of connection paths + repeated string paths = 2; +} + +// Version defines the versioning scheme used to negotiate the IBC verison in +// the connection handshake. +message Version { + option (gogoproto.goproto_getters) = false; + + // unique version identifier + string identifier = 1; + // list of features compatible with the specified identifier + repeated string features = 2; +} diff --git a/third_party/proto/ibc/core/connection/v1/genesis.proto b/third_party/proto/ibc/core/connection/v1/genesis.proto new file mode 100644 index 0000000000..11df4ba180 --- /dev/null +++ b/third_party/proto/ibc/core/connection/v1/genesis.proto @@ -0,0 +1,16 @@ +syntax = "proto3"; +package ibc.core.connection.v1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/core/03-connection/types"; + +import "gogoproto/gogo.proto"; +import "ibc/core/connection/v1/connection.proto"; + +// GenesisState defines the ibc connection submodule's genesis state. +message GenesisState { + repeated IdentifiedConnection connections = 1 [(gogoproto.nullable) = false]; + repeated ConnectionPaths client_connection_paths = 2 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"client_connection_paths\""]; + // the sequence for the next generated connection identifier + uint64 next_connection_sequence = 3 [(gogoproto.moretags) = "yaml:\"next_connection_sequence\""]; +} diff --git a/third_party/proto/ibc/core/connection/v1/query.proto b/third_party/proto/ibc/core/connection/v1/query.proto new file mode 100644 index 0000000000..c5085a131f --- /dev/null +++ b/third_party/proto/ibc/core/connection/v1/query.proto @@ -0,0 +1,137 @@ +syntax = "proto3"; +package ibc.core.connection.v1; + +import "gogoproto/gogo.proto"; +import "cosmos/base/query/v1beta1/pagination.proto"; +import "ibc/core/client/v1/client.proto"; +import "ibc/core/connection/v1/connection.proto"; +import "google/api/annotations.proto"; +import "google/protobuf/any.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/core/03-connection/types"; + +// Query provides defines the gRPC querier service +service Query { + // Connection queries an IBC connection end. + rpc Connection(QueryConnectionRequest) returns (QueryConnectionResponse) { + option (google.api.http).get = "/ibc/core/connection/v1beta1/connections/{connection_id}"; + } + + // Connections queries all the IBC connections of a chain. + rpc Connections(QueryConnectionsRequest) returns (QueryConnectionsResponse) { + option (google.api.http).get = "/ibc/core/connection/v1beta1/connections"; + } + + // ClientConnections queries the connection paths associated with a client + // state. + rpc ClientConnections(QueryClientConnectionsRequest) returns (QueryClientConnectionsResponse) { + option (google.api.http).get = "/ibc/core/connection/v1beta1/client_connections/{client_id}"; + } + + // ConnectionClientState queries the client state associated with the + // connection. + rpc ConnectionClientState(QueryConnectionClientStateRequest) returns (QueryConnectionClientStateResponse) { + option (google.api.http).get = "/ibc/core/connection/v1beta1/connections/{connection_id}/client_state"; + } + + // ConnectionConsensusState queries the consensus state associated with the + // connection. + rpc ConnectionConsensusState(QueryConnectionConsensusStateRequest) returns (QueryConnectionConsensusStateResponse) { + option (google.api.http).get = "/ibc/core/connection/v1beta1/connections/{connection_id}/consensus_state/" + "revision/{revision_number}/height/{revision_height}"; + } +} + +// QueryConnectionRequest is the request type for the Query/Connection RPC +// method +message QueryConnectionRequest { + // connection unique identifier + string connection_id = 1; +} + +// QueryConnectionResponse is the response type for the Query/Connection RPC +// method. Besides the connection end, it includes a proof and the height from +// which the proof was retrieved. +message QueryConnectionResponse { + // connection associated with the request identifier + ibc.core.connection.v1.ConnectionEnd connection = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; +} + +// QueryConnectionsRequest is the request type for the Query/Connections RPC +// method +message QueryConnectionsRequest { + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryConnectionsResponse is the response type for the Query/Connections RPC +// method. +message QueryConnectionsResponse { + // list of stored connections of the chain. + repeated ibc.core.connection.v1.IdentifiedConnection connections = 1; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; + // query block height + ibc.core.client.v1.Height height = 3 [(gogoproto.nullable) = false]; +} + +// QueryClientConnectionsRequest is the request type for the +// Query/ClientConnections RPC method +message QueryClientConnectionsRequest { + // client identifier associated with a connection + string client_id = 1; +} + +// QueryClientConnectionsResponse is the response type for the +// Query/ClientConnections RPC method +message QueryClientConnectionsResponse { + // slice of all the connection paths associated with a client. + repeated string connection_paths = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was generated + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; +} + +// QueryConnectionClientStateRequest is the request type for the +// Query/ConnectionClientState RPC method +message QueryConnectionClientStateRequest { + // connection identifier + string connection_id = 1 [(gogoproto.moretags) = "yaml:\"connection_id\""]; +} + +// QueryConnectionClientStateResponse is the response type for the +// Query/ConnectionClientState RPC method +message QueryConnectionClientStateResponse { + // client state associated with the channel + ibc.core.client.v1.IdentifiedClientState identified_client_state = 1; + // merkle proof of existence + bytes proof = 2; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 3 [(gogoproto.nullable) = false]; +} + +// QueryConnectionConsensusStateRequest is the request type for the +// Query/ConnectionConsensusState RPC method +message QueryConnectionConsensusStateRequest { + // connection identifier + string connection_id = 1 [(gogoproto.moretags) = "yaml:\"connection_id\""]; + uint64 revision_number = 2; + uint64 revision_height = 3; +} + +// QueryConnectionConsensusStateResponse is the response type for the +// Query/ConnectionConsensusState RPC method +message QueryConnectionConsensusStateResponse { + // consensus state associated with the channel + google.protobuf.Any consensus_state = 1; + // client ID associated with the consensus state + string client_id = 2; + // merkle proof of existence + bytes proof = 3; + // height at which the proof was retrieved + ibc.core.client.v1.Height proof_height = 4 [(gogoproto.nullable) = false]; +} diff --git a/third_party/proto/ibc/core/connection/v1/tx.proto b/third_party/proto/ibc/core/connection/v1/tx.proto new file mode 100644 index 0000000000..19b40c69c3 --- /dev/null +++ b/third_party/proto/ibc/core/connection/v1/tx.proto @@ -0,0 +1,115 @@ +syntax = "proto3"; +package ibc.core.connection.v1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/core/03-connection/types"; + +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; +import "ibc/core/client/v1/client.proto"; +import "ibc/core/connection/v1/connection.proto"; + +// Msg defines the ibc/connection Msg service. +service Msg { + // ConnectionOpenInit defines a rpc handler method for MsgConnectionOpenInit. + rpc ConnectionOpenInit(MsgConnectionOpenInit) returns (MsgConnectionOpenInitResponse); + + // ConnectionOpenTry defines a rpc handler method for MsgConnectionOpenTry. + rpc ConnectionOpenTry(MsgConnectionOpenTry) returns (MsgConnectionOpenTryResponse); + + // ConnectionOpenAck defines a rpc handler method for MsgConnectionOpenAck. + rpc ConnectionOpenAck(MsgConnectionOpenAck) returns (MsgConnectionOpenAckResponse); + + // ConnectionOpenConfirm defines a rpc handler method for MsgConnectionOpenConfirm. + rpc ConnectionOpenConfirm(MsgConnectionOpenConfirm) returns (MsgConnectionOpenConfirmResponse); +} + +// MsgConnectionOpenInit defines the msg sent by an account on Chain A to +// initialize a connection with Chain B. +message MsgConnectionOpenInit { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; + Counterparty counterparty = 2 [(gogoproto.nullable) = false]; + Version version = 3; + uint64 delay_period = 4 [(gogoproto.moretags) = "yaml:\"delay_period\""]; + string signer = 5; +} + +// MsgConnectionOpenInitResponse defines the Msg/ConnectionOpenInit response type. +message MsgConnectionOpenInitResponse {} + +// MsgConnectionOpenTry defines a msg sent by a Relayer to try to open a +// connection on Chain B. +message MsgConnectionOpenTry { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; + // in the case of crossing hello's, when both chains call OpenInit, we need the connection identifier + // of the previous connection in state INIT + string previous_connection_id = 2 [(gogoproto.moretags) = "yaml:\"previous_connection_id\""]; + google.protobuf.Any client_state = 3 [(gogoproto.moretags) = "yaml:\"client_state\""]; + Counterparty counterparty = 4 [(gogoproto.nullable) = false]; + uint64 delay_period = 5 [(gogoproto.moretags) = "yaml:\"delay_period\""]; + repeated Version counterparty_versions = 6 [(gogoproto.moretags) = "yaml:\"counterparty_versions\""]; + ibc.core.client.v1.Height proof_height = 7 + [(gogoproto.moretags) = "yaml:\"proof_height\"", (gogoproto.nullable) = false]; + // proof of the initialization the connection on Chain A: `UNITIALIZED -> + // INIT` + bytes proof_init = 8 [(gogoproto.moretags) = "yaml:\"proof_init\""]; + // proof of client state included in message + bytes proof_client = 9 [(gogoproto.moretags) = "yaml:\"proof_client\""]; + // proof of client consensus state + bytes proof_consensus = 10 [(gogoproto.moretags) = "yaml:\"proof_consensus\""]; + ibc.core.client.v1.Height consensus_height = 11 + [(gogoproto.moretags) = "yaml:\"consensus_height\"", (gogoproto.nullable) = false]; + string signer = 12; +} + +// MsgConnectionOpenTryResponse defines the Msg/ConnectionOpenTry response type. +message MsgConnectionOpenTryResponse {} + +// MsgConnectionOpenAck defines a msg sent by a Relayer to Chain A to +// acknowledge the change of connection state to TRYOPEN on Chain B. +message MsgConnectionOpenAck { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string connection_id = 1 [(gogoproto.moretags) = "yaml:\"connection_id\""]; + string counterparty_connection_id = 2 [(gogoproto.moretags) = "yaml:\"counterparty_connection_id\""]; + Version version = 3; + google.protobuf.Any client_state = 4 [(gogoproto.moretags) = "yaml:\"client_state\""]; + ibc.core.client.v1.Height proof_height = 5 + [(gogoproto.moretags) = "yaml:\"proof_height\"", (gogoproto.nullable) = false]; + // proof of the initialization the connection on Chain B: `UNITIALIZED -> + // TRYOPEN` + bytes proof_try = 6 [(gogoproto.moretags) = "yaml:\"proof_try\""]; + // proof of client state included in message + bytes proof_client = 7 [(gogoproto.moretags) = "yaml:\"proof_client\""]; + // proof of client consensus state + bytes proof_consensus = 8 [(gogoproto.moretags) = "yaml:\"proof_consensus\""]; + ibc.core.client.v1.Height consensus_height = 9 + [(gogoproto.moretags) = "yaml:\"consensus_height\"", (gogoproto.nullable) = false]; + string signer = 10; +} + +// MsgConnectionOpenAckResponse defines the Msg/ConnectionOpenAck response type. +message MsgConnectionOpenAckResponse {} + +// MsgConnectionOpenConfirm defines a msg sent by a Relayer to Chain B to +// acknowledge the change of connection state to OPEN on Chain A. +message MsgConnectionOpenConfirm { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + string connection_id = 1 [(gogoproto.moretags) = "yaml:\"connection_id\""]; + // proof for the change of the connection state on Chain A: `INIT -> OPEN` + bytes proof_ack = 2 [(gogoproto.moretags) = "yaml:\"proof_ack\""]; + ibc.core.client.v1.Height proof_height = 3 + [(gogoproto.moretags) = "yaml:\"proof_height\"", (gogoproto.nullable) = false]; + string signer = 4; +} + +// MsgConnectionOpenConfirmResponse defines the Msg/ConnectionOpenConfirm response type. +message MsgConnectionOpenConfirmResponse {} diff --git a/third_party/proto/ibc/core/types/v1/genesis.proto b/third_party/proto/ibc/core/types/v1/genesis.proto new file mode 100644 index 0000000000..ace5085993 --- /dev/null +++ b/third_party/proto/ibc/core/types/v1/genesis.proto @@ -0,0 +1,22 @@ +syntax = "proto3"; +package ibc.core.types.v1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/core/types"; + +import "gogoproto/gogo.proto"; +import "ibc/core/client/v1/genesis.proto"; +import "ibc/core/connection/v1/genesis.proto"; +import "ibc/core/channel/v1/genesis.proto"; + +// GenesisState defines the ibc module's genesis state. +message GenesisState { + // ICS002 - Clients genesis state + ibc.core.client.v1.GenesisState client_genesis = 1 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"client_genesis\""]; + // ICS003 - Connections genesis state + ibc.core.connection.v1.GenesisState connection_genesis = 2 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"connection_genesis\""]; + // ICS004 - Channel genesis state + ibc.core.channel.v1.GenesisState channel_genesis = 3 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"channel_genesis\""]; +} diff --git a/third_party/proto/ibc/lightclients/localhost/v1/localhost.proto b/third_party/proto/ibc/lightclients/localhost/v1/localhost.proto new file mode 100644 index 0000000000..d48a1c0076 --- /dev/null +++ b/third_party/proto/ibc/lightclients/localhost/v1/localhost.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; +package ibc.lightclients.localhost.v1; + +import "gogoproto/gogo.proto"; +import "ibc/core/client/v1/client.proto"; + +option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/light-clients/09-localhost/types"; + +// ClientState defines a loopback (localhost) client. It requires (read-only) +// access to keys outside the client prefix. +message ClientState { + option (gogoproto.goproto_getters) = false; + // self chain ID + string chain_id = 1 [(gogoproto.moretags) = "yaml:\"chain_id\""]; + // self latest block height + ibc.core.client.v1.Height height = 2 [(gogoproto.nullable) = false]; +} diff --git a/third_party/proto/ibc/lightclients/solomachine/v1/solomachine.proto b/third_party/proto/ibc/lightclients/solomachine/v1/solomachine.proto new file mode 100644 index 0000000000..89686f3b7f --- /dev/null +++ b/third_party/proto/ibc/lightclients/solomachine/v1/solomachine.proto @@ -0,0 +1,186 @@ +syntax = "proto3"; +package ibc.lightclients.solomachine.v1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/light-clients/06-solomachine/types"; + +import "ibc/core/connection/v1/connection.proto"; +import "ibc/core/channel/v1/channel.proto"; +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; + +// ClientState defines a solo machine client that tracks the current consensus +// state and if the client is frozen. +message ClientState { + option (gogoproto.goproto_getters) = false; + // latest sequence of the client state + uint64 sequence = 1; + // frozen sequence of the solo machine + uint64 frozen_sequence = 2 [(gogoproto.moretags) = "yaml:\"frozen_sequence\""]; + ConsensusState consensus_state = 3 [(gogoproto.moretags) = "yaml:\"consensus_state\""]; + // when set to true, will allow governance to update a solo machine client. + // The client will be unfrozen if it is frozen. + bool allow_update_after_proposal = 4 [(gogoproto.moretags) = "yaml:\"allow_update_after_proposal\""]; +} + +// ConsensusState defines a solo machine consensus state. The sequence of a consensus state +// is contained in the "height" key used in storing the consensus state. +message ConsensusState { + option (gogoproto.goproto_getters) = false; + // public key of the solo machine + google.protobuf.Any public_key = 1 [(gogoproto.moretags) = "yaml:\"public_key\""]; + // diversifier allows the same public key to be re-used across different solo machine clients + // (potentially on different chains) without being considered misbehaviour. + string diversifier = 2; + uint64 timestamp = 3; +} + +// Header defines a solo machine consensus header +message Header { + option (gogoproto.goproto_getters) = false; + // sequence to update solo machine public key at + uint64 sequence = 1; + uint64 timestamp = 2; + bytes signature = 3; + google.protobuf.Any new_public_key = 4 [(gogoproto.moretags) = "yaml:\"new_public_key\""]; + string new_diversifier = 5 [(gogoproto.moretags) = "yaml:\"new_diversifier\""]; +} + +// Misbehaviour defines misbehaviour for a solo machine which consists +// of a sequence and two signatures over different messages at that sequence. +message Misbehaviour { + option (gogoproto.goproto_getters) = false; + string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; + uint64 sequence = 2; + SignatureAndData signature_one = 3 [(gogoproto.moretags) = "yaml:\"signature_one\""]; + SignatureAndData signature_two = 4 [(gogoproto.moretags) = "yaml:\"signature_two\""]; +} + +// SignatureAndData contains a signature and the data signed over to create that +// signature. +message SignatureAndData { + option (gogoproto.goproto_getters) = false; + bytes signature = 1; + DataType data_type = 2 [(gogoproto.moretags) = "yaml:\"data_type\""]; + bytes data = 3; + uint64 timestamp = 4; +} + +// TimestampedSignatureData contains the signature data and the timestamp of the +// signature. +message TimestampedSignatureData { + option (gogoproto.goproto_getters) = false; + bytes signature_data = 1 [(gogoproto.moretags) = "yaml:\"signature_data\""]; + uint64 timestamp = 2; +} + +// SignBytes defines the signed bytes used for signature verification. +message SignBytes { + option (gogoproto.goproto_getters) = false; + + uint64 sequence = 1; + uint64 timestamp = 2; + string diversifier = 3; + // type of the data used + DataType data_type = 4 [(gogoproto.moretags) = "yaml:\"data_type\""]; + // marshaled data + bytes data = 5; +} + +// DataType defines the type of solo machine proof being created. This is done to preserve uniqueness of different +// data sign byte encodings. +enum DataType { + option (gogoproto.goproto_enum_prefix) = false; + + // Default State + DATA_TYPE_UNINITIALIZED_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "UNSPECIFIED"]; + // Data type for client state verification + DATA_TYPE_CLIENT_STATE = 1 [(gogoproto.enumvalue_customname) = "CLIENT"]; + // Data type for consensus state verification + DATA_TYPE_CONSENSUS_STATE = 2 [(gogoproto.enumvalue_customname) = "CONSENSUS"]; + // Data type for connection state verification + DATA_TYPE_CONNECTION_STATE = 3 [(gogoproto.enumvalue_customname) = "CONNECTION"]; + // Data type for channel state verification + DATA_TYPE_CHANNEL_STATE = 4 [(gogoproto.enumvalue_customname) = "CHANNEL"]; + // Data type for packet commitment verification + DATA_TYPE_PACKET_COMMITMENT = 5 [(gogoproto.enumvalue_customname) = "PACKETCOMMITMENT"]; + // Data type for packet acknowledgement verification + DATA_TYPE_PACKET_ACKNOWLEDGEMENT = 6 [(gogoproto.enumvalue_customname) = "PACKETACKNOWLEDGEMENT"]; + // Data type for packet receipt absence verification + DATA_TYPE_PACKET_RECEIPT_ABSENCE = 7 [(gogoproto.enumvalue_customname) = "PACKETRECEIPTABSENCE"]; + // Data type for next sequence recv verification + DATA_TYPE_NEXT_SEQUENCE_RECV = 8 [(gogoproto.enumvalue_customname) = "NEXTSEQUENCERECV"]; + // Data type for header verification + DATA_TYPE_HEADER = 9 [(gogoproto.enumvalue_customname) = "HEADER"]; +} + +// HeaderData returns the SignBytes data for update verification. +message HeaderData { + option (gogoproto.goproto_getters) = false; + + // header public key + google.protobuf.Any new_pub_key = 1 [(gogoproto.moretags) = "yaml:\"new_pub_key\""]; + // header diversifier + string new_diversifier = 2 [(gogoproto.moretags) = "yaml:\"new_diversifier\""]; +} + +// ClientStateData returns the SignBytes data for client state verification. +message ClientStateData { + option (gogoproto.goproto_getters) = false; + + bytes path = 1; + google.protobuf.Any client_state = 2 [(gogoproto.moretags) = "yaml:\"client_state\""]; +} + +// ConsensusStateData returns the SignBytes data for consensus state +// verification. +message ConsensusStateData { + option (gogoproto.goproto_getters) = false; + + bytes path = 1; + google.protobuf.Any consensus_state = 2 [(gogoproto.moretags) = "yaml:\"consensus_state\""]; +} + +// ConnectionStateData returns the SignBytes data for connection state +// verification. +message ConnectionStateData { + option (gogoproto.goproto_getters) = false; + + bytes path = 1; + ibc.core.connection.v1.ConnectionEnd connection = 2; +} + +// ChannelStateData returns the SignBytes data for channel state +// verification. +message ChannelStateData { + option (gogoproto.goproto_getters) = false; + + bytes path = 1; + ibc.core.channel.v1.Channel channel = 2; +} + +// PacketCommitmentData returns the SignBytes data for packet commitment +// verification. +message PacketCommitmentData { + bytes path = 1; + bytes commitment = 2; +} + +// PacketAcknowledgementData returns the SignBytes data for acknowledgement +// verification. +message PacketAcknowledgementData { + bytes path = 1; + bytes acknowledgement = 2; +} + +// PacketReceiptAbsenceData returns the SignBytes data for +// packet receipt absence verification. +message PacketReceiptAbsenceData { + bytes path = 1; +} + +// NextSequenceRecvData returns the SignBytes data for verification of the next +// sequence to be received. +message NextSequenceRecvData { + bytes path = 1; + uint64 next_seq_recv = 2 [(gogoproto.moretags) = "yaml:\"next_seq_recv\""]; +} diff --git a/third_party/proto/ibc/lightclients/tendermint/v1/tendermint.proto b/third_party/proto/ibc/lightclients/tendermint/v1/tendermint.proto new file mode 100644 index 0000000000..a6882bf432 --- /dev/null +++ b/third_party/proto/ibc/lightclients/tendermint/v1/tendermint.proto @@ -0,0 +1,111 @@ +syntax = "proto3"; +package ibc.lightclients.tendermint.v1; + +option go_package = "github.com/cosmos/cosmos-sdk/x/ibc/light-clients/07-tendermint/types"; + +import "tendermint/types/validator.proto"; +import "tendermint/types/types.proto"; +import "confio/proofs.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; +import "ibc/core/client/v1/client.proto"; +import "ibc/core/commitment/v1/commitment.proto"; +import "gogoproto/gogo.proto"; + +// ClientState from Tendermint tracks the current validator set, latest height, +// and a possible frozen height. +message ClientState { + option (gogoproto.goproto_getters) = false; + + string chain_id = 1; + Fraction trust_level = 2 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"trust_level\""]; + // duration of the period since the LastestTimestamp during which the + // submitted headers are valid for upgrade + google.protobuf.Duration trusting_period = 3 + [(gogoproto.nullable) = false, (gogoproto.stdduration) = true, (gogoproto.moretags) = "yaml:\"trusting_period\""]; + // duration of the staking unbonding period + google.protobuf.Duration unbonding_period = 4 [ + (gogoproto.nullable) = false, + (gogoproto.stdduration) = true, + (gogoproto.moretags) = "yaml:\"unbonding_period\"" + ]; + // defines how much new (untrusted) header's Time can drift into the future. + google.protobuf.Duration max_clock_drift = 5 + [(gogoproto.nullable) = false, (gogoproto.stdduration) = true, (gogoproto.moretags) = "yaml:\"max_clock_drift\""]; + // Block height when the client was frozen due to a misbehaviour + ibc.core.client.v1.Height frozen_height = 6 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"frozen_height\""]; + // Latest height the client was updated to + ibc.core.client.v1.Height latest_height = 7 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"latest_height\""]; + + // Proof specifications used in verifying counterparty state + repeated ics23.ProofSpec proof_specs = 8 [(gogoproto.moretags) = "yaml:\"proof_specs\""]; + + // Path at which next upgraded client will be committed. + // Each element corresponds to the key for a single CommitmentProof in the chained proof. + // NOTE: ClientState must stored under `{upgradePath}/{upgradeHeight}/clientState` + // ConsensusState must be stored under `{upgradepath}/{upgradeHeight}/consensusState` + // For SDK chains using the default upgrade module, upgrade_path should be []string{"upgrade", "upgradedIBCState"}` + repeated string upgrade_path = 9 [(gogoproto.moretags) = "yaml:\"upgrade_path\""]; + + // This flag, when set to true, will allow governance to recover a client + // which has expired + bool allow_update_after_expiry = 10 [(gogoproto.moretags) = "yaml:\"allow_update_after_expiry\""]; + // This flag, when set to true, will allow governance to unfreeze a client + // whose chain has experienced a misbehaviour event + bool allow_update_after_misbehaviour = 11 [(gogoproto.moretags) = "yaml:\"allow_update_after_misbehaviour\""]; +} + +// ConsensusState defines the consensus state from Tendermint. +message ConsensusState { + option (gogoproto.goproto_getters) = false; + + // timestamp that corresponds to the block height in which the ConsensusState + // was stored. + google.protobuf.Timestamp timestamp = 1 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; + // commitment root (i.e app hash) + ibc.core.commitment.v1.MerkleRoot root = 2 [(gogoproto.nullable) = false]; + bytes next_validators_hash = 3 [ + (gogoproto.casttype) = "github.com/tendermint/tendermint/libs/bytes.HexBytes", + (gogoproto.moretags) = "yaml:\"next_validators_hash\"" + ]; +} + +// Misbehaviour is a wrapper over two conflicting Headers +// that implements Misbehaviour interface expected by ICS-02 +message Misbehaviour { + option (gogoproto.goproto_getters) = false; + + string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; + Header header_1 = 2 [(gogoproto.customname) = "Header1", (gogoproto.moretags) = "yaml:\"header_1\""]; + Header header_2 = 3 [(gogoproto.customname) = "Header2", (gogoproto.moretags) = "yaml:\"header_2\""]; +} + +// Header defines the Tendermint client consensus Header. +// It encapsulates all the information necessary to update from a trusted +// Tendermint ConsensusState. The inclusion of TrustedHeight and +// TrustedValidators allows this update to process correctly, so long as the +// ConsensusState for the TrustedHeight exists, this removes race conditions +// among relayers The SignedHeader and ValidatorSet are the new untrusted update +// fields for the client. The TrustedHeight is the height of a stored +// ConsensusState on the client that will be used to verify the new untrusted +// header. The Trusted ConsensusState must be within the unbonding period of +// current time in order to correctly verify, and the TrustedValidators must +// hash to TrustedConsensusState.NextValidatorsHash since that is the last +// trusted validator set at the TrustedHeight. +message Header { + .tendermint.types.SignedHeader signed_header = 1 + [(gogoproto.embed) = true, (gogoproto.moretags) = "yaml:\"signed_header\""]; + + .tendermint.types.ValidatorSet validator_set = 2 [(gogoproto.moretags) = "yaml:\"validator_set\""]; + ibc.core.client.v1.Height trusted_height = 3 + [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"trusted_height\""]; + .tendermint.types.ValidatorSet trusted_validators = 4 [(gogoproto.moretags) = "yaml:\"trusted_validators\""]; +} + +// Fraction defines the protobuf message type for tmmath.Fraction that only supports positive values. +message Fraction { + uint64 numerator = 1; + uint64 denominator = 2; +} diff --git a/third_party/proto/tendermint/abci/types.proto b/third_party/proto/tendermint/abci/types.proto new file mode 100644 index 0000000000..2cbcabb29b --- /dev/null +++ b/third_party/proto/tendermint/abci/types.proto @@ -0,0 +1,407 @@ +syntax = "proto3"; +package tendermint.abci; + +option go_package = "github.com/tendermint/tendermint/abci/types"; + +// For more information on gogo.proto, see: +// https://github.com/gogo/protobuf/blob/master/extensions.md +import "tendermint/crypto/proof.proto"; +import "tendermint/types/types.proto"; +import "tendermint/crypto/keys.proto"; +import "tendermint/types/params.proto"; +import "google/protobuf/timestamp.proto"; +import "gogoproto/gogo.proto"; + +// This file is copied from http://github.com/tendermint/abci +// NOTE: When using custom types, mind the warnings. +// https://github.com/gogo/protobuf/blob/master/custom_types.md#warnings-and-issues + +//---------------------------------------- +// Request types + +message Request { + oneof value { + RequestEcho echo = 1; + RequestFlush flush = 2; + RequestInfo info = 3; + RequestSetOption set_option = 4; + RequestInitChain init_chain = 5; + RequestQuery query = 6; + RequestBeginBlock begin_block = 7; + RequestCheckTx check_tx = 8; + RequestDeliverTx deliver_tx = 9; + RequestEndBlock end_block = 10; + RequestCommit commit = 11; + RequestListSnapshots list_snapshots = 12; + RequestOfferSnapshot offer_snapshot = 13; + RequestLoadSnapshotChunk load_snapshot_chunk = 14; + RequestApplySnapshotChunk apply_snapshot_chunk = 15; + } +} + +message RequestEcho { + string message = 1; +} + +message RequestFlush {} + +message RequestInfo { + string version = 1; + uint64 block_version = 2; + uint64 p2p_version = 3; +} + +// nondeterministic +message RequestSetOption { + string key = 1; + string value = 2; +} + +message RequestInitChain { + google.protobuf.Timestamp time = 1 + [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; + string chain_id = 2; + ConsensusParams consensus_params = 3; + repeated ValidatorUpdate validators = 4 [(gogoproto.nullable) = false]; + bytes app_state_bytes = 5; + int64 initial_height = 6; +} + +message RequestQuery { + bytes data = 1; + string path = 2; + int64 height = 3; + bool prove = 4; +} + +message RequestBeginBlock { + bytes hash = 1; + tendermint.types.Header header = 2 [(gogoproto.nullable) = false]; + LastCommitInfo last_commit_info = 3 [(gogoproto.nullable) = false]; + repeated Evidence byzantine_validators = 4 [(gogoproto.nullable) = false]; +} + +enum CheckTxType { + NEW = 0 [(gogoproto.enumvalue_customname) = "New"]; + RECHECK = 1 [(gogoproto.enumvalue_customname) = "Recheck"]; +} + +message RequestCheckTx { + bytes tx = 1; + CheckTxType type = 2; +} + +message RequestDeliverTx { + bytes tx = 1; +} + +message RequestEndBlock { + int64 height = 1; +} + +message RequestCommit {} + +// lists available snapshots +message RequestListSnapshots { +} + +// offers a snapshot to the application +message RequestOfferSnapshot { + Snapshot snapshot = 1; // snapshot offered by peers + bytes app_hash = 2; // light client-verified app hash for snapshot height +} + +// loads a snapshot chunk +message RequestLoadSnapshotChunk { + uint64 height = 1; + uint32 format = 2; + uint32 chunk = 3; +} + +// Applies a snapshot chunk +message RequestApplySnapshotChunk { + uint32 index = 1; + bytes chunk = 2; + string sender = 3; +} + +//---------------------------------------- +// Response types + +message Response { + oneof value { + ResponseException exception = 1; + ResponseEcho echo = 2; + ResponseFlush flush = 3; + ResponseInfo info = 4; + ResponseSetOption set_option = 5; + ResponseInitChain init_chain = 6; + ResponseQuery query = 7; + ResponseBeginBlock begin_block = 8; + ResponseCheckTx check_tx = 9; + ResponseDeliverTx deliver_tx = 10; + ResponseEndBlock end_block = 11; + ResponseCommit commit = 12; + ResponseListSnapshots list_snapshots = 13; + ResponseOfferSnapshot offer_snapshot = 14; + ResponseLoadSnapshotChunk load_snapshot_chunk = 15; + ResponseApplySnapshotChunk apply_snapshot_chunk = 16; + } +} + +// nondeterministic +message ResponseException { + string error = 1; +} + +message ResponseEcho { + string message = 1; +} + +message ResponseFlush {} + +message ResponseInfo { + string data = 1; + + string version = 2; + uint64 app_version = 3; + + int64 last_block_height = 4; + bytes last_block_app_hash = 5; +} + +// nondeterministic +message ResponseSetOption { + uint32 code = 1; + // bytes data = 2; + string log = 3; + string info = 4; +} + +message ResponseInitChain { + ConsensusParams consensus_params = 1; + repeated ValidatorUpdate validators = 2 [(gogoproto.nullable) = false]; + bytes app_hash = 3; +} + +message ResponseQuery { + uint32 code = 1; + // bytes data = 2; // use "value" instead. + string log = 3; // nondeterministic + string info = 4; // nondeterministic + int64 index = 5; + bytes key = 6; + bytes value = 7; + tendermint.crypto.ProofOps proof_ops = 8; + int64 height = 9; + string codespace = 10; +} + +message ResponseBeginBlock { + repeated Event events = 1 + [(gogoproto.nullable) = false, (gogoproto.jsontag) = "events,omitempty"]; +} + +message ResponseCheckTx { + uint32 code = 1; + bytes data = 2; + string log = 3; // nondeterministic + string info = 4; // nondeterministic + int64 gas_wanted = 5 [json_name = "gas_wanted"]; + int64 gas_used = 6 [json_name = "gas_used"]; + repeated Event events = 7 + [(gogoproto.nullable) = false, (gogoproto.jsontag) = "events,omitempty"]; + string codespace = 8; +} + +message ResponseDeliverTx { + uint32 code = 1; + bytes data = 2; + string log = 3; // nondeterministic + string info = 4; // nondeterministic + int64 gas_wanted = 5 [json_name = "gas_wanted"]; + int64 gas_used = 6 [json_name = "gas_used"]; + repeated Event events = 7 + [(gogoproto.nullable) = false, (gogoproto.jsontag) = "events,omitempty"]; + string codespace = 8; +} + +message ResponseEndBlock { + repeated ValidatorUpdate validator_updates = 1 + [(gogoproto.nullable) = false]; + ConsensusParams consensus_param_updates = 2; + repeated Event events = 3 + [(gogoproto.nullable) = false, (gogoproto.jsontag) = "events,omitempty"]; +} + +message ResponseCommit { + // reserve 1 + bytes data = 2; + int64 retain_height = 3; +} + +message ResponseListSnapshots { + repeated Snapshot snapshots = 1; +} + +message ResponseOfferSnapshot { + Result result = 1; + + enum Result { + UNKNOWN = 0; // Unknown result, abort all snapshot restoration + ACCEPT = 1; // Snapshot accepted, apply chunks + ABORT = 2; // Abort all snapshot restoration + REJECT = 3; // Reject this specific snapshot, try others + REJECT_FORMAT = 4; // Reject all snapshots of this format, try others + REJECT_SENDER = 5; // Reject all snapshots from the sender(s), try others + } +} + +message ResponseLoadSnapshotChunk { + bytes chunk = 1; +} + +message ResponseApplySnapshotChunk { + Result result = 1; + repeated uint32 refetch_chunks = 2; // Chunks to refetch and reapply + repeated string reject_senders = 3; // Chunk senders to reject and ban + + enum Result { + UNKNOWN = 0; // Unknown result, abort all snapshot restoration + ACCEPT = 1; // Chunk successfully accepted + ABORT = 2; // Abort all snapshot restoration + RETRY = 3; // Retry chunk (combine with refetch and reject) + RETRY_SNAPSHOT = 4; // Retry snapshot (combine with refetch and reject) + REJECT_SNAPSHOT = 5; // Reject this snapshot, try others + } +} + +//---------------------------------------- +// Misc. + +// ConsensusParams contains all consensus-relevant parameters +// that can be adjusted by the abci app +message ConsensusParams { + BlockParams block = 1; + tendermint.types.EvidenceParams evidence = 2; + tendermint.types.ValidatorParams validator = 3; + tendermint.types.VersionParams version = 4; +} + +// BlockParams contains limits on the block size. +message BlockParams { + // Note: must be greater than 0 + int64 max_bytes = 1; + // Note: must be greater or equal to -1 + int64 max_gas = 2; +} + +message LastCommitInfo { + int32 round = 1; + repeated VoteInfo votes = 2 [(gogoproto.nullable) = false]; +} + +// Event allows application developers to attach additional information to +// ResponseBeginBlock, ResponseEndBlock, ResponseCheckTx and ResponseDeliverTx. +// Later, transactions may be queried using these events. +message Event { + string type = 1; + repeated EventAttribute attributes = 2 [ + (gogoproto.nullable) = false, + (gogoproto.jsontag) = "attributes,omitempty" + ]; +} + +// EventAttribute is a single key-value pair, associated with an event. +message EventAttribute { + bytes key = 1; + bytes value = 2; + bool index = 3; // nondeterministic +} + +// TxResult contains results of executing the transaction. +// +// One usage is indexing transaction results. +message TxResult { + int64 height = 1; + uint32 index = 2; + bytes tx = 3; + ResponseDeliverTx result = 4 [(gogoproto.nullable) = false]; +} + +//---------------------------------------- +// Blockchain Types + +// Validator +message Validator { + bytes address = 1; // The first 20 bytes of SHA256(public key) + // PubKey pub_key = 2 [(gogoproto.nullable)=false]; + int64 power = 3; // The voting power +} + +// ValidatorUpdate +message ValidatorUpdate { + tendermint.crypto.PublicKey pub_key = 1 [(gogoproto.nullable) = false]; + int64 power = 2; +} + +// VoteInfo +message VoteInfo { + Validator validator = 1 [(gogoproto.nullable) = false]; + bool signed_last_block = 2; +} + +enum EvidenceType { + UNKNOWN = 0; + DUPLICATE_VOTE = 1; + LIGHT_CLIENT_ATTACK = 2; +} + +message Evidence { + EvidenceType type = 1; + // The offending validator + Validator validator = 2 [(gogoproto.nullable) = false]; + // The height when the offense occurred + int64 height = 3; + // The corresponding time where the offense occurred + google.protobuf.Timestamp time = 4 [ + (gogoproto.nullable) = false, + (gogoproto.stdtime) = true + ]; + // Total voting power of the validator set in case the ABCI application does + // not store historical validators. + // https://github.com/tendermint/tendermint/issues/4581 + int64 total_voting_power = 5; +} + +//---------------------------------------- +// State Sync Types + +message Snapshot { + uint64 height = 1; // The height at which the snapshot was taken + uint32 format = 2; // The application-specific snapshot format + uint32 chunks = 3; // Number of chunks in the snapshot + bytes hash = 4; // Arbitrary snapshot hash, equal only if identical + bytes metadata = 5; // Arbitrary application metadata +} + +//---------------------------------------- +// Service Definition + +service ABCIApplication { + rpc Echo(RequestEcho) returns (ResponseEcho); + rpc Flush(RequestFlush) returns (ResponseFlush); + rpc Info(RequestInfo) returns (ResponseInfo); + rpc SetOption(RequestSetOption) returns (ResponseSetOption); + rpc DeliverTx(RequestDeliverTx) returns (ResponseDeliverTx); + rpc CheckTx(RequestCheckTx) returns (ResponseCheckTx); + rpc Query(RequestQuery) returns (ResponseQuery); + rpc Commit(RequestCommit) returns (ResponseCommit); + rpc InitChain(RequestInitChain) returns (ResponseInitChain); + rpc BeginBlock(RequestBeginBlock) returns (ResponseBeginBlock); + rpc EndBlock(RequestEndBlock) returns (ResponseEndBlock); + rpc ListSnapshots(RequestListSnapshots) returns (ResponseListSnapshots); + rpc OfferSnapshot(RequestOfferSnapshot) returns (ResponseOfferSnapshot); + rpc LoadSnapshotChunk(RequestLoadSnapshotChunk) returns (ResponseLoadSnapshotChunk); + rpc ApplySnapshotChunk(RequestApplySnapshotChunk) returns (ResponseApplySnapshotChunk); +} diff --git a/third_party/proto/tendermint/crypto/keys.proto b/third_party/proto/tendermint/crypto/keys.proto new file mode 100644 index 0000000000..16fd7adf3e --- /dev/null +++ b/third_party/proto/tendermint/crypto/keys.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; +package tendermint.crypto; + +option go_package = "github.com/tendermint/tendermint/proto/tendermint/crypto"; + +import "gogoproto/gogo.proto"; + +// PublicKey defines the keys available for use with Tendermint Validators +message PublicKey { + option (gogoproto.compare) = true; + option (gogoproto.equal) = true; + + oneof sum { + bytes ed25519 = 1; + bytes secp256k1 = 2; + } +} diff --git a/third_party/proto/tendermint/crypto/proof.proto b/third_party/proto/tendermint/crypto/proof.proto new file mode 100644 index 0000000000..975df76853 --- /dev/null +++ b/third_party/proto/tendermint/crypto/proof.proto @@ -0,0 +1,41 @@ +syntax = "proto3"; +package tendermint.crypto; + +option go_package = "github.com/tendermint/tendermint/proto/tendermint/crypto"; + +import "gogoproto/gogo.proto"; + +message Proof { + int64 total = 1; + int64 index = 2; + bytes leaf_hash = 3; + repeated bytes aunts = 4; +} + +message ValueOp { + // Encoded in ProofOp.Key. + bytes key = 1; + + // To encode in ProofOp.Data + Proof proof = 2; +} + +message DominoOp { + string key = 1; + string input = 2; + string output = 3; +} + +// ProofOp defines an operation used for calculating Merkle root +// The data could be arbitrary format, providing nessecary data +// for example neighbouring node hash +message ProofOp { + string type = 1; + bytes key = 2; + bytes data = 3; +} + +// ProofOps is Merkle proof defined by the list of ProofOps +message ProofOps { + repeated ProofOp ops = 1 [(gogoproto.nullable) = false]; +} diff --git a/third_party/proto/tendermint/libs/bits/types.proto b/third_party/proto/tendermint/libs/bits/types.proto new file mode 100644 index 0000000000..3111d113a5 --- /dev/null +++ b/third_party/proto/tendermint/libs/bits/types.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; +package tendermint.libs.bits; + +option go_package = "github.com/tendermint/tendermint/proto/tendermint/libs/bits"; + +message BitArray { + int64 bits = 1; + repeated uint64 elems = 2; +} diff --git a/third_party/proto/tendermint/p2p/types.proto b/third_party/proto/tendermint/p2p/types.proto new file mode 100644 index 0000000000..0d42ea4002 --- /dev/null +++ b/third_party/proto/tendermint/p2p/types.proto @@ -0,0 +1,34 @@ +syntax = "proto3"; +package tendermint.p2p; + +option go_package = "github.com/tendermint/tendermint/proto/tendermint/p2p"; + +import "gogoproto/gogo.proto"; + +message NetAddress { + string id = 1 [(gogoproto.customname) = "ID"]; + string ip = 2 [(gogoproto.customname) = "IP"]; + uint32 port = 3; +} + +message ProtocolVersion { + uint64 p2p = 1 [(gogoproto.customname) = "P2P"]; + uint64 block = 2; + uint64 app = 3; +} + +message DefaultNodeInfo { + ProtocolVersion protocol_version = 1 [(gogoproto.nullable) = false]; + string default_node_id = 2 [(gogoproto.customname) = "DefaultNodeID"]; + string listen_addr = 3; + string network = 4; + string version = 5; + bytes channels = 6; + string moniker = 7; + DefaultNodeInfoOther other = 8 [(gogoproto.nullable) = false]; +} + +message DefaultNodeInfoOther { + string tx_index = 1; + string rpc_address = 2 [(gogoproto.customname) = "RPCAddress"]; +} diff --git a/third_party/proto/tendermint/types/block.proto b/third_party/proto/tendermint/types/block.proto new file mode 100644 index 0000000000..84e9bb15d8 --- /dev/null +++ b/third_party/proto/tendermint/types/block.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; +package tendermint.types; + +option go_package = "github.com/tendermint/tendermint/proto/tendermint/types"; + +import "gogoproto/gogo.proto"; +import "tendermint/types/types.proto"; +import "tendermint/types/evidence.proto"; + +message Block { + Header header = 1 [(gogoproto.nullable) = false]; + Data data = 2 [(gogoproto.nullable) = false]; + tendermint.types.EvidenceList evidence = 3 [(gogoproto.nullable) = false]; + Commit last_commit = 4; +} diff --git a/third_party/proto/tendermint/types/evidence.proto b/third_party/proto/tendermint/types/evidence.proto new file mode 100644 index 0000000000..3b234571ba --- /dev/null +++ b/third_party/proto/tendermint/types/evidence.proto @@ -0,0 +1,38 @@ +syntax = "proto3"; +package tendermint.types; + +option go_package = "github.com/tendermint/tendermint/proto/tendermint/types"; + +import "gogoproto/gogo.proto"; +import "google/protobuf/timestamp.proto"; +import "tendermint/types/types.proto"; +import "tendermint/types/validator.proto"; + +message Evidence { + oneof sum { + DuplicateVoteEvidence duplicate_vote_evidence = 1; + LightClientAttackEvidence light_client_attack_evidence = 2; + } +} + +// DuplicateVoteEvidence contains evidence of a validator signed two conflicting votes. +message DuplicateVoteEvidence { + tendermint.types.Vote vote_a = 1; + tendermint.types.Vote vote_b = 2; + int64 total_voting_power = 3; + int64 validator_power = 4; + google.protobuf.Timestamp timestamp = 5 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; +} + +// LightClientAttackEvidence contains evidence of a set of validators attempting to mislead a light client. +message LightClientAttackEvidence { + tendermint.types.LightBlock conflicting_block = 1; + int64 common_height = 2; + repeated tendermint.types.Validator byzantine_validators = 3; + int64 total_voting_power = 4; + google.protobuf.Timestamp timestamp = 5 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; +} + +message EvidenceList { + repeated Evidence evidence = 1 [(gogoproto.nullable) = false]; +} diff --git a/third_party/proto/tendermint/types/params.proto b/third_party/proto/tendermint/types/params.proto new file mode 100644 index 0000000000..0de7d846fb --- /dev/null +++ b/third_party/proto/tendermint/types/params.proto @@ -0,0 +1,80 @@ +syntax = "proto3"; +package tendermint.types; + +option go_package = "github.com/tendermint/tendermint/proto/tendermint/types"; + +import "gogoproto/gogo.proto"; +import "google/protobuf/duration.proto"; + +option (gogoproto.equal_all) = true; + +// ConsensusParams contains consensus critical parameters that determine the +// validity of blocks. +message ConsensusParams { + BlockParams block = 1 [(gogoproto.nullable) = false]; + EvidenceParams evidence = 2 [(gogoproto.nullable) = false]; + ValidatorParams validator = 3 [(gogoproto.nullable) = false]; + VersionParams version = 4 [(gogoproto.nullable) = false]; +} + +// BlockParams contains limits on the block size. +message BlockParams { + // Max block size, in bytes. + // Note: must be greater than 0 + int64 max_bytes = 1; + // Max gas per block. + // Note: must be greater or equal to -1 + int64 max_gas = 2; + // Minimum time increment between consecutive blocks (in milliseconds) If the + // block header timestamp is ahead of the system clock, decrease this value. + // + // Not exposed to the application. + int64 time_iota_ms = 3; +} + +// EvidenceParams determine how we handle evidence of malfeasance. +message EvidenceParams { + // Max age of evidence, in blocks. + // + // The basic formula for calculating this is: MaxAgeDuration / {average block + // time}. + int64 max_age_num_blocks = 1; + + // Max age of evidence, in time. + // + // It should correspond with an app's "unbonding period" or other similar + // mechanism for handling [Nothing-At-Stake + // attacks](https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ#what-is-the-nothing-at-stake-problem-and-how-can-it-be-fixed). + google.protobuf.Duration max_age_duration = 2 + [(gogoproto.nullable) = false, (gogoproto.stdduration) = true]; + + // This sets the maximum size of total evidence in bytes that can be committed in a single block. + // and should fall comfortably under the max block bytes. + // Default is 1048576 or 1MB + int64 max_bytes = 3; +} + +// ValidatorParams restrict the public key types validators can use. +// NOTE: uses ABCI pubkey naming, not Amino names. +message ValidatorParams { + option (gogoproto.populate) = true; + option (gogoproto.equal) = true; + + repeated string pub_key_types = 1; +} + +// VersionParams contains the ABCI application version. +message VersionParams { + option (gogoproto.populate) = true; + option (gogoproto.equal) = true; + + uint64 app_version = 1; +} + +// HashedParams is a subset of ConsensusParams. +// +// It is hashed into the Header.ConsensusHash. +message HashedParams { + int64 block_max_bytes = 1; + int64 block_max_gas = 2; +} diff --git a/third_party/proto/tendermint/types/types.proto b/third_party/proto/tendermint/types/types.proto new file mode 100644 index 0000000000..7f7ea74cac --- /dev/null +++ b/third_party/proto/tendermint/types/types.proto @@ -0,0 +1,157 @@ +syntax = "proto3"; +package tendermint.types; + +option go_package = "github.com/tendermint/tendermint/proto/tendermint/types"; + +import "gogoproto/gogo.proto"; +import "google/protobuf/timestamp.proto"; +import "tendermint/crypto/proof.proto"; +import "tendermint/version/types.proto"; +import "tendermint/types/validator.proto"; + +// BlockIdFlag indicates which BlcokID the signature is for +enum BlockIDFlag { + option (gogoproto.goproto_enum_stringer) = true; + option (gogoproto.goproto_enum_prefix) = false; + + BLOCK_ID_FLAG_UNKNOWN = 0 [(gogoproto.enumvalue_customname) = "BlockIDFlagUnknown"]; + BLOCK_ID_FLAG_ABSENT = 1 [(gogoproto.enumvalue_customname) = "BlockIDFlagAbsent"]; + BLOCK_ID_FLAG_COMMIT = 2 [(gogoproto.enumvalue_customname) = "BlockIDFlagCommit"]; + BLOCK_ID_FLAG_NIL = 3 [(gogoproto.enumvalue_customname) = "BlockIDFlagNil"]; +} + +// SignedMsgType is a type of signed message in the consensus. +enum SignedMsgType { + option (gogoproto.goproto_enum_stringer) = true; + option (gogoproto.goproto_enum_prefix) = false; + + SIGNED_MSG_TYPE_UNKNOWN = 0 [(gogoproto.enumvalue_customname) = "UnknownType"]; + // Votes + SIGNED_MSG_TYPE_PREVOTE = 1 [(gogoproto.enumvalue_customname) = "PrevoteType"]; + SIGNED_MSG_TYPE_PRECOMMIT = 2 [(gogoproto.enumvalue_customname) = "PrecommitType"]; + + // Proposals + SIGNED_MSG_TYPE_PROPOSAL = 32 [(gogoproto.enumvalue_customname) = "ProposalType"]; +} + +// PartsetHeader +message PartSetHeader { + uint32 total = 1; + bytes hash = 2; +} + +message Part { + uint32 index = 1; + bytes bytes = 2; + tendermint.crypto.Proof proof = 3 [(gogoproto.nullable) = false]; +} + +// BlockID +message BlockID { + bytes hash = 1; + PartSetHeader part_set_header = 2 [(gogoproto.nullable) = false]; +} + +// -------------------------------- + +// Header defines the structure of a Tendermint block header. +message Header { + // basic block info + tendermint.version.Consensus version = 1 [(gogoproto.nullable) = false]; + string chain_id = 2 [(gogoproto.customname) = "ChainID"]; + int64 height = 3; + google.protobuf.Timestamp time = 4 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; + + // prev block info + BlockID last_block_id = 5 [(gogoproto.nullable) = false]; + + // hashes of block data + bytes last_commit_hash = 6; // commit from validators from the last block + bytes data_hash = 7; // transactions + + // hashes from the app output from the prev block + bytes validators_hash = 8; // validators for the current block + bytes next_validators_hash = 9; // validators for the next block + bytes consensus_hash = 10; // consensus params for current block + bytes app_hash = 11; // state after txs from the previous block + bytes last_results_hash = 12; // root hash of all results from the txs from the previous block + + // consensus info + bytes evidence_hash = 13; // evidence included in the block + bytes proposer_address = 14; // original proposer of the block +} + +// Data contains the set of transactions included in the block +message Data { + // Txs that will be applied by state @ block.Height+1. + // NOTE: not all txs here are valid. We're just agreeing on the order first. + // This means that block.AppHash does not include these txs. + repeated bytes txs = 1; +} + +// Vote represents a prevote, precommit, or commit vote from validators for +// consensus. +message Vote { + SignedMsgType type = 1; + int64 height = 2; + int32 round = 3; + BlockID block_id = 4 + [(gogoproto.nullable) = false, (gogoproto.customname) = "BlockID"]; // zero if vote is nil. + google.protobuf.Timestamp timestamp = 5 + [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; + bytes validator_address = 6; + int32 validator_index = 7; + bytes signature = 8; +} + +// Commit contains the evidence that a block was committed by a set of validators. +message Commit { + int64 height = 1; + int32 round = 2; + BlockID block_id = 3 [(gogoproto.nullable) = false, (gogoproto.customname) = "BlockID"]; + repeated CommitSig signatures = 4 [(gogoproto.nullable) = false]; +} + +// CommitSig is a part of the Vote included in a Commit. +message CommitSig { + BlockIDFlag block_id_flag = 1; + bytes validator_address = 2; + google.protobuf.Timestamp timestamp = 3 + [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; + bytes signature = 4; +} + +message Proposal { + SignedMsgType type = 1; + int64 height = 2; + int32 round = 3; + int32 pol_round = 4; + BlockID block_id = 5 [(gogoproto.customname) = "BlockID", (gogoproto.nullable) = false]; + google.protobuf.Timestamp timestamp = 6 + [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; + bytes signature = 7; +} + +message SignedHeader { + Header header = 1; + Commit commit = 2; +} + +message LightBlock { + SignedHeader signed_header = 1; + tendermint.types.ValidatorSet validator_set = 2; +} + +message BlockMeta { + BlockID block_id = 1 [(gogoproto.customname) = "BlockID", (gogoproto.nullable) = false]; + int64 block_size = 2; + Header header = 3 [(gogoproto.nullable) = false]; + int64 num_txs = 4; +} + +// TxProof represents a Merkle proof of the presence of a transaction in the Merkle tree. +message TxProof { + bytes root_hash = 1; + bytes data = 2; + tendermint.crypto.Proof proof = 3; +} diff --git a/third_party/proto/tendermint/types/validator.proto b/third_party/proto/tendermint/types/validator.proto new file mode 100644 index 0000000000..49860b96d6 --- /dev/null +++ b/third_party/proto/tendermint/types/validator.proto @@ -0,0 +1,25 @@ +syntax = "proto3"; +package tendermint.types; + +option go_package = "github.com/tendermint/tendermint/proto/tendermint/types"; + +import "gogoproto/gogo.proto"; +import "tendermint/crypto/keys.proto"; + +message ValidatorSet { + repeated Validator validators = 1; + Validator proposer = 2; + int64 total_voting_power = 3; +} + +message Validator { + bytes address = 1; + tendermint.crypto.PublicKey pub_key = 2 [(gogoproto.nullable) = false]; + int64 voting_power = 3; + int64 proposer_priority = 4; +} + +message SimpleValidator { + tendermint.crypto.PublicKey pub_key = 1; + int64 voting_power = 2; +} diff --git a/third_party/proto/tendermint/version/types.proto b/third_party/proto/tendermint/version/types.proto new file mode 100644 index 0000000000..6061868bd4 --- /dev/null +++ b/third_party/proto/tendermint/version/types.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; +package tendermint.version; + +option go_package = "github.com/tendermint/tendermint/proto/tendermint/version"; + +import "gogoproto/gogo.proto"; + +// App includes the protocol and software version for the application. +// This information is included in ResponseInfo. The App.Protocol can be +// updated in ResponseEndBlock. +message App { + uint64 protocol = 1; + string software = 2; +} + +// Consensus captures the consensus rules for processing a block in the blockchain, +// including all blockchain data structures and the rules of the application's +// state transition machine. +message Consensus { + option (gogoproto.equal) = true; + + uint64 block = 1; + uint64 app = 2; +} diff --git a/x/wasm/types/genesis.pb.go b/x/wasm/types/genesis.pb.go index fcb3e6ba19..de95699049 100644 --- a/x/wasm/types/genesis.pb.go +++ b/x/wasm/types/genesis.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: x/wasm/types/genesis.proto +// source: cosmwasm/wasm/v1beta1/genesis.proto package types @@ -36,7 +36,7 @@ func (m *GenesisState) Reset() { *m = GenesisState{} } func (m *GenesisState) String() string { return proto.CompactTextString(m) } func (*GenesisState) ProtoMessage() {} func (*GenesisState) Descriptor() ([]byte, []int) { - return fileDescriptor_8590831cc863f337, []int{0} + return fileDescriptor_931ba204ce53afe0, []int{0} } func (m *GenesisState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -100,8 +100,8 @@ func (m *GenesisState) GetGenMsgs() []GenesisState_GenMsgs { return nil } -// GenMsgs define the messages that can be executed during genesis phase in order. -// The intention is to have more human readable data that is auditable. +// GenMsgs define the messages that can be executed during genesis phase in +// order. The intention is to have more human readable data that is auditable. type GenesisState_GenMsgs struct { // sum is a single message // @@ -116,7 +116,7 @@ func (m *GenesisState_GenMsgs) Reset() { *m = GenesisState_GenMsgs{} } func (m *GenesisState_GenMsgs) String() string { return proto.CompactTextString(m) } func (*GenesisState_GenMsgs) ProtoMessage() {} func (*GenesisState_GenMsgs) Descriptor() ([]byte, []int) { - return fileDescriptor_8590831cc863f337, []int{0, 0} + return fileDescriptor_931ba204ce53afe0, []int{0, 0} } func (m *GenesisState_GenMsgs) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -215,7 +215,7 @@ func (m *Code) Reset() { *m = Code{} } func (m *Code) String() string { return proto.CompactTextString(m) } func (*Code) ProtoMessage() {} func (*Code) Descriptor() ([]byte, []int) { - return fileDescriptor_8590831cc863f337, []int{1} + return fileDescriptor_931ba204ce53afe0, []int{1} } func (m *Code) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -283,7 +283,7 @@ func (m *Contract) Reset() { *m = Contract{} } func (m *Contract) String() string { return proto.CompactTextString(m) } func (*Contract) ProtoMessage() {} func (*Contract) Descriptor() ([]byte, []int) { - return fileDescriptor_8590831cc863f337, []int{2} + return fileDescriptor_931ba204ce53afe0, []int{2} } func (m *Contract) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -343,7 +343,7 @@ func (m *Sequence) Reset() { *m = Sequence{} } func (m *Sequence) String() string { return proto.CompactTextString(m) } func (*Sequence) ProtoMessage() {} func (*Sequence) Descriptor() ([]byte, []int) { - return fileDescriptor_8590831cc863f337, []int{3} + return fileDescriptor_931ba204ce53afe0, []int{3} } func (m *Sequence) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -394,51 +394,53 @@ func init() { proto.RegisterType((*Sequence)(nil), "cosmwasm.wasm.v1beta1.Sequence") } -func init() { proto.RegisterFile("x/wasm/types/genesis.proto", fileDescriptor_8590831cc863f337) } - -var fileDescriptor_8590831cc863f337 = []byte{ - // 646 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x94, 0xcd, 0x6e, 0xd3, 0x40, - 0x10, 0xc7, 0xe3, 0x26, 0x4e, 0x93, 0x69, 0xa0, 0xd5, 0xb6, 0x05, 0x2b, 0xa5, 0x49, 0x94, 0x4a, - 0xa8, 0x15, 0x90, 0xa8, 0xe5, 0xc8, 0x05, 0xdc, 0x22, 0x1a, 0xaa, 0x22, 0xe4, 0x4a, 0x20, 0xf5, - 0x12, 0xf9, 0x63, 0x6a, 0x2c, 0x6a, 0x6f, 0xc8, 0x6e, 0x4a, 0xfd, 0x16, 0x88, 0x87, 0xe0, 0x59, - 0x7a, 0xec, 0x91, 0x53, 0x84, 0xd2, 0x1b, 0x4f, 0x81, 0x76, 0xbd, 0x76, 0x1d, 0x81, 0xcb, 0xc5, - 0xf2, 0xce, 0xcc, 0xff, 0x37, 0x3b, 0xb3, 0xb3, 0x0b, 0xcd, 0xcb, 0xfe, 0x57, 0x9b, 0x85, 0x7d, - 0x1e, 0x8f, 0x90, 0xf5, 0x7d, 0x8c, 0x90, 0x05, 0xac, 0x37, 0x1a, 0x53, 0x4e, 0xc9, 0xba, 0x4b, - 0x59, 0x28, 0xbc, 0x3d, 0xf9, 0xb9, 0xd8, 0x75, 0x90, 0xdb, 0xbb, 0xcd, 0x35, 0x9f, 0xfa, 0x54, - 0x46, 0xf4, 0xc5, 0x5f, 0x12, 0xdc, 0x34, 0xe6, 0x40, 0xf2, 0xab, 0x3c, 0xeb, 0xf3, 0x9e, 0xcb, - 0xc4, 0xdc, 0xbd, 0xd2, 0xa1, 0xf1, 0x26, 0xc9, 0x77, 0xc2, 0x6d, 0x8e, 0xe4, 0x05, 0x54, 0x47, - 0xf6, 0xd8, 0x0e, 0x99, 0xa1, 0x75, 0xb4, 0xed, 0xa5, 0xbd, 0xcd, 0xde, 0x3f, 0xf3, 0xf7, 0xde, - 0xcb, 0x20, 0xb3, 0x72, 0x35, 0x6d, 0x97, 0x2c, 0x25, 0x21, 0x6f, 0x41, 0x77, 0xa9, 0x87, 0xcc, - 0x58, 0xe8, 0x94, 0xb7, 0x97, 0xf6, 0x36, 0x0a, 0xb4, 0xfb, 0xd4, 0x43, 0xf3, 0xa1, 0x50, 0xfe, - 0x9e, 0xb6, 0x97, 0xa5, 0xe2, 0x29, 0x0d, 0x03, 0x8e, 0xe1, 0x88, 0xc7, 0x56, 0x82, 0x20, 0xa7, - 0x50, 0x77, 0x69, 0xc4, 0xc7, 0xb6, 0xcb, 0x99, 0x51, 0x96, 0xbc, 0x76, 0x21, 0x2f, 0x89, 0x33, - 0x37, 0x14, 0x73, 0x35, 0x53, 0xe6, 0xb8, 0xb7, 0x38, 0xc1, 0x66, 0xf8, 0x65, 0x82, 0x91, 0x8b, - 0xcc, 0xa8, 0xdc, 0xc9, 0x3e, 0x51, 0x71, 0xb7, 0xec, 0x4c, 0x99, 0x67, 0x67, 0x46, 0xe2, 0x40, - 0xcd, 0xc7, 0x68, 0x18, 0x32, 0x9f, 0x19, 0xba, 0x44, 0x3f, 0x29, 0x40, 0xe7, 0xfb, 0x2e, 0x16, - 0xc7, 0xcc, 0x67, 0x66, 0x53, 0xa5, 0x21, 0x29, 0x24, 0x97, 0x65, 0xd1, 0x4f, 0x82, 0x9a, 0xdf, - 0x17, 0x60, 0x51, 0x09, 0xc8, 0x01, 0x00, 0xe3, 0x74, 0x8c, 0x43, 0xd1, 0x36, 0x75, 0x68, 0x5b, - 0x05, 0x19, 0x8f, 0x99, 0x7f, 0x22, 0x62, 0xc5, 0x01, 0x1c, 0x96, 0xac, 0x3a, 0x4b, 0x17, 0xc4, - 0x81, 0xb5, 0x20, 0x62, 0xdc, 0x8e, 0x78, 0x60, 0x73, 0xc1, 0x4a, 0x5a, 0x65, 0x2c, 0x48, 0xde, - 0xb3, 0x62, 0xde, 0xe0, 0x56, 0x95, 0x1e, 0xc3, 0x61, 0xc9, 0x5a, 0x0d, 0xfe, 0x36, 0x93, 0x0f, - 0xb0, 0x82, 0x97, 0xe8, 0x4e, 0xf2, 0xfc, 0xb2, 0xe4, 0xef, 0x14, 0xf3, 0x5f, 0x27, 0x8a, 0x1c, - 0x7b, 0x19, 0xe7, 0x4d, 0xa6, 0x0e, 0x65, 0x36, 0x09, 0xbb, 0x3f, 0x34, 0xa8, 0xc8, 0x5a, 0xb6, - 0x60, 0x51, 0xf4, 0x62, 0x18, 0x78, 0xb2, 0x1d, 0x15, 0x13, 0x66, 0xd3, 0x76, 0x55, 0xb8, 0x06, - 0x07, 0x56, 0x55, 0xb8, 0x06, 0x1e, 0x31, 0xc5, 0x78, 0x89, 0xa0, 0xe8, 0x8c, 0xaa, 0x2a, 0xdb, - 0x77, 0x8c, 0xeb, 0x20, 0x3a, 0xa3, 0x6a, 0xd8, 0x6b, 0xae, 0x5a, 0x93, 0x4d, 0x00, 0xc9, 0x70, - 0x62, 0x8e, 0x4c, 0x96, 0xd2, 0xb0, 0x24, 0xd5, 0x14, 0x06, 0xf2, 0x00, 0xaa, 0xa3, 0x20, 0x8a, - 0xd0, 0x33, 0x2a, 0x1d, 0x6d, 0xbb, 0x66, 0xa9, 0x55, 0xf7, 0x5a, 0x83, 0x5a, 0xd6, 0x94, 0x1d, - 0x58, 0x49, 0x9b, 0x31, 0xb4, 0x3d, 0x6f, 0x8c, 0x2c, 0xb9, 0x79, 0x75, 0x6b, 0x39, 0xb5, 0xbf, - 0x4a, 0xcc, 0xe4, 0x1d, 0xdc, 0xcb, 0x42, 0x73, 0xdb, 0xde, 0xfa, 0xcf, 0xad, 0xc8, 0x6d, 0xbd, - 0xe1, 0xe6, 0x6c, 0x64, 0x00, 0xf7, 0x33, 0x1e, 0x13, 0x43, 0xa8, 0xae, 0xd9, 0xa3, 0xa2, 0xd3, - 0xa0, 0x1e, 0x9e, 0x2b, 0x52, 0xb6, 0x13, 0x39, 0xbd, 0x5d, 0x13, 0x6a, 0xe9, 0x45, 0x21, 0x1d, - 0xa8, 0x06, 0xde, 0xf0, 0x33, 0xc6, 0xb2, 0x8e, 0x86, 0x59, 0x9f, 0x4d, 0xdb, 0xfa, 0xe0, 0xe0, - 0x08, 0x63, 0x4b, 0x0f, 0xbc, 0x23, 0x8c, 0xc9, 0x1a, 0xe8, 0x17, 0xf6, 0xf9, 0x04, 0x65, 0x01, - 0x15, 0x2b, 0x59, 0x98, 0x2f, 0xaf, 0x66, 0x2d, 0xed, 0x7a, 0xd6, 0xd2, 0x7e, 0xcd, 0x5a, 0xda, - 0xb7, 0x9b, 0x56, 0xe9, 0xfa, 0xa6, 0x55, 0xfa, 0x79, 0xd3, 0x2a, 0x9d, 0x3e, 0xf6, 0x03, 0xfe, - 0x69, 0xe2, 0xf4, 0x5c, 0x1a, 0xf6, 0xf7, 0x29, 0x0b, 0x3f, 0x8a, 0x87, 0x4c, 0x6c, 0xcd, 0xeb, - 0xe7, 0x5f, 0x35, 0xa7, 0x2a, 0xdf, 0xb4, 0xe7, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xfe, 0xa1, - 0x56, 0xd4, 0x4f, 0x05, 0x00, 0x00, +func init() { + proto.RegisterFile("cosmwasm/wasm/v1beta1/genesis.proto", fileDescriptor_931ba204ce53afe0) +} + +var fileDescriptor_931ba204ce53afe0 = []byte{ + // 647 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x94, 0xc1, 0x6e, 0xd3, 0x40, + 0x10, 0x86, 0xe3, 0x26, 0x4e, 0x93, 0x69, 0xa0, 0xd5, 0xb6, 0x80, 0x95, 0x52, 0x27, 0x24, 0x12, + 0x6a, 0x05, 0x24, 0x6a, 0x39, 0x72, 0x01, 0xb7, 0x88, 0x86, 0xaa, 0x08, 0xb9, 0x12, 0x48, 0xbd, + 0x44, 0x8e, 0x3d, 0x35, 0x16, 0xb5, 0x37, 0x64, 0x37, 0xa5, 0x7e, 0x0b, 0xc4, 0x43, 0xf0, 0x2c, + 0x3d, 0xf6, 0xc8, 0x29, 0x42, 0xe9, 0x8d, 0xa7, 0x40, 0xbb, 0x5e, 0xbb, 0x46, 0xd4, 0xe5, 0x62, + 0x79, 0x66, 0xff, 0xf9, 0x76, 0x66, 0x76, 0x76, 0xa1, 0xeb, 0x52, 0x16, 0x7e, 0x75, 0x58, 0xd8, + 0x97, 0x9f, 0xb3, 0xed, 0x11, 0x72, 0x67, 0xbb, 0xef, 0x63, 0x84, 0x2c, 0x60, 0xbd, 0xf1, 0x84, + 0x72, 0x4a, 0xee, 0xa5, 0xa2, 0x9e, 0xfc, 0x28, 0x51, 0x73, 0xcd, 0xa7, 0x3e, 0x95, 0x8a, 0xbe, + 0xf8, 0x4b, 0xc4, 0xcd, 0x47, 0x37, 0x13, 0x79, 0x3c, 0x46, 0xc5, 0x6b, 0x9a, 0x05, 0x92, 0xf3, + 0x64, 0xbd, 0x73, 0xa1, 0x43, 0xe3, 0x4d, 0x92, 0xc1, 0x11, 0x77, 0x38, 0x92, 0x17, 0x50, 0x1d, + 0x3b, 0x13, 0x27, 0x64, 0x86, 0xd6, 0xd6, 0x36, 0x97, 0x76, 0x36, 0x7a, 0x37, 0x66, 0xd4, 0x7b, + 0x2f, 0x45, 0x56, 0xe5, 0x62, 0xd6, 0x2a, 0xd9, 0x2a, 0x84, 0xbc, 0x05, 0xdd, 0xa5, 0x1e, 0x32, + 0x63, 0xa1, 0x5d, 0xde, 0x5c, 0xda, 0x59, 0x2f, 0x88, 0xdd, 0xa5, 0x1e, 0x5a, 0x0f, 0x44, 0xe4, + 0xef, 0x59, 0x6b, 0x59, 0x46, 0x3c, 0xa5, 0x61, 0xc0, 0x31, 0x1c, 0xf3, 0xd8, 0x4e, 0x10, 0xe4, + 0x18, 0xea, 0x2e, 0x8d, 0xf8, 0xc4, 0x71, 0x39, 0x33, 0xca, 0x92, 0xd7, 0x2a, 0xe4, 0x25, 0x3a, + 0x6b, 0x5d, 0x31, 0x57, 0xb3, 0xc8, 0x1c, 0xf7, 0x1a, 0x27, 0xd8, 0x0c, 0xbf, 0x4c, 0x31, 0x72, + 0x91, 0x19, 0x95, 0x5b, 0xd9, 0x47, 0x4a, 0x77, 0xcd, 0xce, 0x22, 0xf3, 0xec, 0xcc, 0x49, 0x46, + 0x50, 0xf3, 0x31, 0x1a, 0x86, 0xcc, 0x67, 0x86, 0x2e, 0xd1, 0x4f, 0x0a, 0xd0, 0xf9, 0xbe, 0x0b, + 0xe3, 0x90, 0xf9, 0xcc, 0x6a, 0xaa, 0x6d, 0x48, 0x0a, 0xc9, 0xed, 0xb2, 0xe8, 0x27, 0xa2, 0xe6, + 0xf7, 0x05, 0x58, 0x54, 0x01, 0x64, 0x0f, 0x80, 0x71, 0x3a, 0xc1, 0xa1, 0x68, 0x9b, 0x3a, 0xb4, + 0x6e, 0xc1, 0x8e, 0x87, 0xcc, 0x3f, 0x12, 0x5a, 0x71, 0x00, 0xfb, 0x25, 0xbb, 0xce, 0x52, 0x83, + 0x8c, 0x60, 0x2d, 0x88, 0x18, 0x77, 0x22, 0x1e, 0x38, 0x5c, 0xb0, 0x92, 0x56, 0x19, 0x0b, 0x92, + 0xf7, 0xac, 0x98, 0x37, 0xb8, 0x8e, 0x4a, 0x8f, 0x61, 0xbf, 0x64, 0xaf, 0x06, 0xff, 0xba, 0xc9, + 0x07, 0x58, 0xc1, 0x73, 0x74, 0xa7, 0x79, 0x7e, 0x59, 0xf2, 0xb7, 0x8a, 0xf9, 0xaf, 0x93, 0x88, + 0x1c, 0x7b, 0x19, 0xff, 0x76, 0x59, 0x3a, 0x94, 0xd9, 0x34, 0xec, 0xfc, 0xd0, 0xa0, 0x22, 0x6b, + 0xe9, 0xc2, 0xa2, 0xe8, 0xc5, 0x30, 0xf0, 0x64, 0x3b, 0x2a, 0x16, 0xcc, 0x67, 0xad, 0xaa, 0x58, + 0x1a, 0xec, 0xd9, 0x55, 0xb1, 0x34, 0xf0, 0x88, 0x25, 0xc6, 0x4b, 0x88, 0xa2, 0x13, 0xaa, 0xaa, + 0x6c, 0xdd, 0x32, 0xae, 0x83, 0xe8, 0x84, 0xaa, 0x61, 0xaf, 0xb9, 0xca, 0x26, 0x1b, 0x00, 0x92, + 0x31, 0x8a, 0x39, 0x32, 0x59, 0x4a, 0xc3, 0x96, 0x54, 0x4b, 0x38, 0xc8, 0x7d, 0xa8, 0x8e, 0x83, + 0x28, 0x42, 0xcf, 0xa8, 0xb4, 0xb5, 0xcd, 0x9a, 0xad, 0xac, 0xce, 0xa5, 0x06, 0xb5, 0xac, 0x29, + 0x5b, 0xb0, 0x92, 0x36, 0x63, 0xe8, 0x78, 0xde, 0x04, 0x59, 0x72, 0xf3, 0xea, 0xf6, 0x72, 0xea, + 0x7f, 0x95, 0xb8, 0xc9, 0x3b, 0xb8, 0x93, 0x49, 0x73, 0x69, 0x77, 0xff, 0x73, 0x2b, 0x72, 0xa9, + 0x37, 0xdc, 0x9c, 0x8f, 0x0c, 0xe0, 0x6e, 0xc6, 0x63, 0x62, 0x08, 0xd5, 0x35, 0x7b, 0x58, 0x74, + 0x1a, 0xd4, 0xc3, 0x53, 0x45, 0xca, 0x32, 0x91, 0xd3, 0xdb, 0xb1, 0xa0, 0x96, 0x5e, 0x14, 0xd2, + 0x86, 0x6a, 0xe0, 0x0d, 0x3f, 0x63, 0x2c, 0xeb, 0x68, 0x58, 0xf5, 0xf9, 0xac, 0xa5, 0x0f, 0xf6, + 0x0e, 0x30, 0xb6, 0xf5, 0xc0, 0x3b, 0xc0, 0x98, 0xac, 0x81, 0x7e, 0xe6, 0x9c, 0x4e, 0x51, 0x16, + 0x50, 0xb1, 0x13, 0xc3, 0x7a, 0x79, 0x31, 0x37, 0xb5, 0xcb, 0xb9, 0xa9, 0xfd, 0x9a, 0x9b, 0xda, + 0xb7, 0x2b, 0xb3, 0x74, 0x79, 0x65, 0x96, 0x7e, 0x5e, 0x99, 0xa5, 0xe3, 0xc7, 0x7e, 0xc0, 0x3f, + 0x4d, 0x47, 0x3d, 0x97, 0x86, 0xfd, 0x5d, 0xca, 0xc2, 0x8f, 0xe9, 0x7b, 0xe6, 0xf5, 0xcf, 0x93, + 0x77, 0x4d, 0x3e, 0x79, 0xa3, 0xaa, 0x7c, 0xd3, 0x9e, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0xb4, + 0x5c, 0x72, 0x53, 0x6a, 0x05, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -1131,10 +1133,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenesis - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenesis } if (iNdEx + skippy) > l { @@ -1289,10 +1288,7 @@ func (m *GenesisState_GenMsgs) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenesis - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenesis } if (iNdEx + skippy) > l { @@ -1448,10 +1444,7 @@ func (m *Code) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenesis - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenesis } if (iNdEx + skippy) > l { @@ -1600,10 +1593,7 @@ func (m *Contract) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenesis - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenesis } if (iNdEx + skippy) > l { @@ -1706,10 +1696,7 @@ func (m *Sequence) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenesis - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthGenesis } if (iNdEx + skippy) > l { diff --git a/x/wasm/types/genesis.proto b/x/wasm/types/genesis.proto deleted file mode 100644 index 4c0f3163f1..0000000000 --- a/x/wasm/types/genesis.proto +++ /dev/null @@ -1,50 +0,0 @@ -syntax = "proto3"; -package cosmwasm.wasm.v1beta1; - -import "gogoproto/gogo.proto"; -import "x/wasm/types/types.proto"; -import "x/wasm/types/tx.proto"; - -option go_package = "github.com/CosmWasm/wasmd/x/wasm/types"; - -// GenesisState - genesis state of x/wasm -message GenesisState { - Params params = 1 [(gogoproto.nullable) = false]; - repeated Code codes = 2 [(gogoproto.nullable) = false, (gogoproto.jsontag) = "codes,omitempty"]; - repeated Contract contracts = 3 [(gogoproto.nullable) = false, (gogoproto.jsontag) = "contracts,omitempty"]; - repeated Sequence sequences = 4 [(gogoproto.nullable) = false, (gogoproto.jsontag) = "sequences,omitempty"]; - repeated GenMsgs gen_msgs = 5 [(gogoproto.nullable) = false, (gogoproto.jsontag) = "gen_msgs,omitempty"]; - - // GenMsgs define the messages that can be executed during genesis phase in order. - // The intention is to have more human readable data that is auditable. - message GenMsgs { - // sum is a single message - oneof sum { - MsgStoreCode store_code = 1; - MsgInstantiateContract instantiate_contract = 2; - MsgExecuteContract execute_contract = 3; - } - } -} - -// Code struct encompasses CodeInfo and CodeBytes -message Code { - uint64 code_id = 1 [(gogoproto.customname) = "CodeID"]; - CodeInfo code_info = 2 [(gogoproto.nullable) = false]; - bytes code_bytes = 3; - // Pinned to wasmvm cache - bool pinned = 4; -} - -// Contract struct encompasses ContractAddress, ContractInfo, and ContractState -message Contract { - string contract_address = 1; - ContractInfo contract_info = 2 [(gogoproto.nullable) = false]; - repeated Model contract_state = 3 [(gogoproto.nullable) = false]; -} - -// Sequence key and value of an id generation counter -message Sequence { - bytes id_key = 1 [(gogoproto.customname) = "IDKey"]; - uint64 value = 2; -} \ No newline at end of file diff --git a/x/wasm/types/ibc.pb.go b/x/wasm/types/ibc.pb.go index e651ffde14..d1a338d094 100644 --- a/x/wasm/types/ibc.pb.go +++ b/x/wasm/types/ibc.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: x/wasm/types/ibc.proto +// source: cosmwasm/wasm/v1beta1/ibc.proto package types @@ -42,7 +42,7 @@ func (m *MsgIBCSend) Reset() { *m = MsgIBCSend{} } func (m *MsgIBCSend) String() string { return proto.CompactTextString(m) } func (*MsgIBCSend) ProtoMessage() {} func (*MsgIBCSend) Descriptor() ([]byte, []int) { - return fileDescriptor_d9bb1c22229d9ba9, []int{0} + return fileDescriptor_62898492b0dd5f88, []int{0} } func (m *MsgIBCSend) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -80,7 +80,7 @@ func (m *MsgIBCCloseChannel) Reset() { *m = MsgIBCCloseChannel{} } func (m *MsgIBCCloseChannel) String() string { return proto.CompactTextString(m) } func (*MsgIBCCloseChannel) ProtoMessage() {} func (*MsgIBCCloseChannel) Descriptor() ([]byte, []int) { - return fileDescriptor_d9bb1c22229d9ba9, []int{1} + return fileDescriptor_62898492b0dd5f88, []int{1} } func (m *MsgIBCCloseChannel) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -114,31 +114,31 @@ func init() { proto.RegisterType((*MsgIBCCloseChannel)(nil), "cosmwasm.wasm.v1beta1.MsgIBCCloseChannel") } -func init() { proto.RegisterFile("x/wasm/types/ibc.proto", fileDescriptor_d9bb1c22229d9ba9) } +func init() { proto.RegisterFile("cosmwasm/wasm/v1beta1/ibc.proto", fileDescriptor_62898492b0dd5f88) } -var fileDescriptor_d9bb1c22229d9ba9 = []byte{ - // 332 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x91, 0x3f, 0x4f, 0xc2, 0x40, - 0x18, 0xc6, 0x5b, 0x82, 0x18, 0x2f, 0x6a, 0xb4, 0x11, 0x53, 0x0d, 0x39, 0x48, 0x07, 0xc3, 0xd4, - 0x93, 0xb0, 0x39, 0x99, 0xd6, 0x41, 0x06, 0x96, 0x6a, 0x62, 0xe2, 0x42, 0xae, 0xed, 0xe5, 0x5a, - 0xc3, 0xf5, 0x25, 0xdc, 0x21, 0xb2, 0xf9, 0x11, 0xfc, 0x58, 0x8c, 0x8c, 0x4e, 0x44, 0xe1, 0x1b, - 0x30, 0x3a, 0x99, 0x1e, 0xc5, 0xc0, 0xea, 0x72, 0x7f, 0x9e, 0xe7, 0x77, 0x6f, 0x72, 0xcf, 0x83, - 0xce, 0xdf, 0xc8, 0x98, 0x4a, 0x41, 0xd4, 0x64, 0xc0, 0x24, 0x49, 0xc3, 0xc8, 0x1d, 0x0c, 0x41, - 0x81, 0x55, 0x8d, 0x40, 0x8a, 0xdc, 0x71, 0xf5, 0xf2, 0xda, 0x0a, 0x99, 0xa2, 0xad, 0xcb, 0x33, - 0x0e, 0x1c, 0x34, 0x41, 0xf2, 0xd3, 0x1a, 0x76, 0xde, 0x4b, 0x08, 0x75, 0x25, 0xef, 0x78, 0xfe, - 0x03, 0xcb, 0x62, 0xab, 0x8d, 0xf6, 0xa3, 0x84, 0x66, 0x19, 0xeb, 0xdb, 0xa5, 0x86, 0xd9, 0x3c, - 0xf0, 0x2e, 0x56, 0xf3, 0x7a, 0x75, 0x42, 0x45, 0xff, 0xc6, 0x91, 0x30, 0x1a, 0x46, 0xac, 0x57, - 0xf8, 0x4e, 0xb0, 0x21, 0xad, 0x5b, 0x74, 0xac, 0x52, 0xc1, 0x60, 0xa4, 0x7a, 0x09, 0x4b, 0x79, - 0xa2, 0xec, 0x72, 0xc3, 0x6c, 0x96, 0xb7, 0xdf, 0xee, 0xfa, 0x4e, 0x70, 0x54, 0x08, 0xf7, 0xfa, - 0x6e, 0x75, 0xd0, 0xe9, 0x86, 0xc8, 0x77, 0xa9, 0xa8, 0x18, 0xd8, 0x7b, 0x7a, 0x48, 0x6d, 0x35, - 0xaf, 0xdb, 0xbb, 0x43, 0xfe, 0x10, 0x27, 0x38, 0x29, 0xb4, 0xc7, 0x8d, 0x64, 0x5d, 0xa3, 0x72, - 0x4c, 0x15, 0xb5, 0x2b, 0x0d, 0xb3, 0x79, 0xe8, 0xd5, 0x7e, 0xe6, 0x75, 0x9b, 0x65, 0x11, 0xc4, - 0x69, 0xc6, 0xc9, 0x8b, 0x84, 0xcc, 0x0d, 0xe8, 0xb8, 0xcb, 0xa4, 0xa4, 0x9c, 0x05, 0x9a, 0x74, - 0x3a, 0xc8, 0x5a, 0x27, 0xe0, 0xf7, 0x41, 0x32, 0xbf, 0xf8, 0xd4, 0x7f, 0x92, 0xf0, 0xee, 0xa6, - 0xdf, 0xd8, 0x98, 0x2e, 0xb0, 0x39, 0x5b, 0x60, 0xf3, 0x6b, 0x81, 0xcd, 0x8f, 0x25, 0x36, 0x66, - 0x4b, 0x6c, 0x7c, 0x2e, 0xb1, 0xf1, 0x7c, 0xc5, 0x53, 0x95, 0x8c, 0x42, 0x37, 0x02, 0x41, 0x7c, - 0x90, 0xe2, 0x29, 0x6f, 0x2f, 0xef, 0x28, 0x26, 0xdb, 0x55, 0x86, 0x15, 0x5d, 0x4d, 0xfb, 0x37, - 0x00, 0x00, 0xff, 0xff, 0x2d, 0xfe, 0x78, 0xdd, 0xe1, 0x01, 0x00, 0x00, +var fileDescriptor_62898492b0dd5f88 = []byte{ + // 333 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x91, 0x31, 0x4f, 0xc2, 0x40, + 0x14, 0xc7, 0x5b, 0x82, 0x18, 0x2f, 0x6a, 0xb4, 0x91, 0xa4, 0x1a, 0x72, 0x25, 0x1d, 0x0c, 0x53, + 0x2b, 0x61, 0x73, 0x32, 0xad, 0x83, 0x0c, 0x2c, 0xd5, 0xc4, 0xc4, 0x85, 0x5c, 0xdb, 0xcb, 0xb5, + 0x86, 0xbb, 0x47, 0xb8, 0x43, 0x64, 0xf3, 0x23, 0xf8, 0xb1, 0x18, 0x19, 0x9d, 0x88, 0xc2, 0x37, + 0x60, 0x74, 0x32, 0x1c, 0xad, 0x91, 0xd5, 0xe5, 0xdd, 0xdd, 0xff, 0xfd, 0xee, 0x25, 0xef, 0xff, + 0x47, 0x4e, 0x02, 0x92, 0x4f, 0x88, 0xe4, 0xbe, 0x2e, 0x2f, 0xed, 0x98, 0x2a, 0xd2, 0xf6, 0xf3, + 0x38, 0xf1, 0x86, 0x23, 0x50, 0x60, 0xd5, 0x4b, 0xc0, 0xd3, 0xa5, 0x00, 0x2e, 0xce, 0x18, 0x30, + 0xd0, 0x84, 0xbf, 0xb9, 0x6d, 0x61, 0xf7, 0xad, 0x82, 0x50, 0x4f, 0xb2, 0x6e, 0x10, 0xde, 0x53, + 0x91, 0x5a, 0x1d, 0xb4, 0x9f, 0x64, 0x44, 0x08, 0x3a, 0xb0, 0x2b, 0x4d, 0xb3, 0x75, 0x10, 0x9c, + 0xaf, 0x17, 0x4e, 0x7d, 0x4a, 0xf8, 0xe0, 0xda, 0x95, 0x30, 0x1e, 0x25, 0xb4, 0x5f, 0xf4, 0xdd, + 0xa8, 0x24, 0xad, 0x1b, 0x74, 0xac, 0x72, 0x4e, 0x61, 0xac, 0xfa, 0x19, 0xcd, 0x59, 0xa6, 0xec, + 0x6a, 0xd3, 0x6c, 0x55, 0xff, 0xfe, 0xdd, 0xed, 0xbb, 0xd1, 0x51, 0x21, 0xdc, 0xe9, 0xb7, 0xd5, + 0x45, 0xa7, 0x25, 0xb1, 0x39, 0xa5, 0x22, 0x7c, 0x68, 0xef, 0xe9, 0x21, 0x8d, 0xf5, 0xc2, 0xb1, + 0x77, 0x87, 0xfc, 0x22, 0x6e, 0x74, 0x52, 0x68, 0x0f, 0xa5, 0x64, 0x5d, 0xa1, 0x6a, 0x4a, 0x14, + 0xb1, 0x6b, 0x4d, 0xb3, 0x75, 0x18, 0x34, 0xbe, 0x17, 0x8e, 0x4d, 0x45, 0x02, 0x69, 0x2e, 0x98, + 0xff, 0x2c, 0x41, 0x78, 0x11, 0x99, 0xf4, 0xa8, 0x94, 0x84, 0xd1, 0x48, 0x93, 0x6e, 0x17, 0x59, + 0x5b, 0x07, 0xc2, 0x01, 0x48, 0x1a, 0x16, 0x4b, 0xfd, 0xc7, 0x89, 0xe0, 0x76, 0xf6, 0x85, 0x8d, + 0xd9, 0x12, 0x9b, 0xf3, 0x25, 0x36, 0x3f, 0x97, 0xd8, 0x7c, 0x5f, 0x61, 0x63, 0xbe, 0xc2, 0xc6, + 0xc7, 0x0a, 0x1b, 0x4f, 0x97, 0x2c, 0x57, 0xd9, 0x38, 0xf6, 0x12, 0xe0, 0x7e, 0x08, 0x92, 0x3f, + 0x96, 0x21, 0xa6, 0xfe, 0xeb, 0x36, 0x4c, 0x35, 0x1d, 0x52, 0x19, 0xd7, 0x74, 0x34, 0x9d, 0x9f, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x9f, 0xe8, 0x9b, 0xa4, 0xea, 0x01, 0x00, 0x00, } func (m *MsgIBCSend) Marshal() (dAtA []byte, err error) { @@ -410,10 +410,7 @@ func (m *MsgIBCSend) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthIbc - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthIbc } if (iNdEx + skippy) > l { @@ -495,10 +492,7 @@ func (m *MsgIBCCloseChannel) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthIbc - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthIbc } if (iNdEx + skippy) > l { diff --git a/x/wasm/types/ibc.proto b/x/wasm/types/ibc.proto deleted file mode 100644 index 30aa45a92e..0000000000 --- a/x/wasm/types/ibc.proto +++ /dev/null @@ -1,28 +0,0 @@ -syntax = "proto3"; -package cosmwasm.wasm.v1beta1; - -import "gogoproto/gogo.proto"; - -option go_package = "github.com/CosmWasm/wasmd/x/wasm/types"; -option (gogoproto.goproto_getters_all) = false; - -// MsgIBCSend -message MsgIBCSend { - // the channel by which the packet will be sent - string channel = 2 [(gogoproto.moretags) = "yaml:\"source_channel\""]; - - // Timeout height relative to the current block height. - // The timeout is disabled when set to 0. - uint64 timeout_height = 4 [(gogoproto.moretags) = "yaml:\"timeout_height\""]; - // Timeout timestamp (in nanoseconds) relative to the current block timestamp. - // The timeout is disabled when set to 0. - uint64 timeout_timestamp = 5 [(gogoproto.moretags) = "yaml:\"timeout_timestamp\""]; - - // data is the payload to transfer - bytes data = 6 [(gogoproto.casttype) = "encoding/json.RawMessage"]; -} - -// MsgIBCCloseChannel port and channel need to be owned by the contract -message MsgIBCCloseChannel { - string channel = 2 [(gogoproto.moretags) = "yaml:\"source_channel\""]; -} diff --git a/x/wasm/types/proposal.pb.go b/x/wasm/types/proposal.pb.go index 1de60876a5..0538af29f8 100644 --- a/x/wasm/types/proposal.pb.go +++ b/x/wasm/types/proposal.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: x/wasm/types/proposal.proto +// source: cosmwasm/wasm/v1beta1/proposal.proto package types @@ -37,7 +37,8 @@ type StoreCodeProposal struct { RunAs string `protobuf:"bytes,3,opt,name=run_as,json=runAs,proto3" json:"run_as,omitempty"` // WASMByteCode can be raw or gzip compressed WASMByteCode []byte `protobuf:"bytes,4,opt,name=wasm_byte_code,json=wasmByteCode,proto3" json:"wasm_byte_code,omitempty"` - // Source is a valid absolute HTTPS URI to the contract's source code, optional + // Source is a valid absolute HTTPS URI to the contract's source code, + // optional Source string `protobuf:"bytes,5,opt,name=source,proto3" json:"source,omitempty"` // Builder is a valid docker image name with tag, optional Builder string `protobuf:"bytes,6,opt,name=builder,proto3" json:"builder,omitempty"` @@ -48,7 +49,7 @@ type StoreCodeProposal struct { func (m *StoreCodeProposal) Reset() { *m = StoreCodeProposal{} } func (*StoreCodeProposal) ProtoMessage() {} func (*StoreCodeProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_0a371ed62f288510, []int{0} + return fileDescriptor_6428c760f8f86eed, []int{0} } func (m *StoreCodeProposal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -77,7 +78,8 @@ func (m *StoreCodeProposal) XXX_DiscardUnknown() { var xxx_messageInfo_StoreCodeProposal proto.InternalMessageInfo -// InstantiateContractProposal gov proposal content type to instantiate a contract. +// InstantiateContractProposal gov proposal content type to instantiate a +// contract. type InstantiateContractProposal struct { // Title is a short summary Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` @@ -100,7 +102,7 @@ type InstantiateContractProposal struct { func (m *InstantiateContractProposal) Reset() { *m = InstantiateContractProposal{} } func (*InstantiateContractProposal) ProtoMessage() {} func (*InstantiateContractProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_0a371ed62f288510, []int{1} + return fileDescriptor_6428c760f8f86eed, []int{1} } func (m *InstantiateContractProposal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -148,7 +150,7 @@ type MigrateContractProposal struct { func (m *MigrateContractProposal) Reset() { *m = MigrateContractProposal{} } func (*MigrateContractProposal) ProtoMessage() {} func (*MigrateContractProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_0a371ed62f288510, []int{2} + return fileDescriptor_6428c760f8f86eed, []int{2} } func (m *MigrateContractProposal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -192,7 +194,7 @@ type UpdateAdminProposal struct { func (m *UpdateAdminProposal) Reset() { *m = UpdateAdminProposal{} } func (*UpdateAdminProposal) ProtoMessage() {} func (*UpdateAdminProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_0a371ed62f288510, []int{3} + return fileDescriptor_6428c760f8f86eed, []int{3} } func (m *UpdateAdminProposal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -221,7 +223,8 @@ func (m *UpdateAdminProposal) XXX_DiscardUnknown() { var xxx_messageInfo_UpdateAdminProposal proto.InternalMessageInfo -// ClearAdminProposal gov proposal content type to clear the admin of a contract. +// ClearAdminProposal gov proposal content type to clear the admin of a +// contract. type ClearAdminProposal struct { // Title is a short summary Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` @@ -234,7 +237,7 @@ type ClearAdminProposal struct { func (m *ClearAdminProposal) Reset() { *m = ClearAdminProposal{} } func (*ClearAdminProposal) ProtoMessage() {} func (*ClearAdminProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_0a371ed62f288510, []int{4} + return fileDescriptor_6428c760f8f86eed, []int{4} } func (m *ClearAdminProposal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -263,7 +266,8 @@ func (m *ClearAdminProposal) XXX_DiscardUnknown() { var xxx_messageInfo_ClearAdminProposal proto.InternalMessageInfo -// PinCodesProposal gov proposal content type to pin a set of code ids in the wasmvm cache. +// PinCodesProposal gov proposal content type to pin a set of code ids in the +// wasmvm cache. type PinCodesProposal struct { // Title is a short summary Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty" yaml:"title"` @@ -276,7 +280,7 @@ type PinCodesProposal struct { func (m *PinCodesProposal) Reset() { *m = PinCodesProposal{} } func (*PinCodesProposal) ProtoMessage() {} func (*PinCodesProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_0a371ed62f288510, []int{5} + return fileDescriptor_6428c760f8f86eed, []int{5} } func (m *PinCodesProposal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -305,7 +309,8 @@ func (m *PinCodesProposal) XXX_DiscardUnknown() { var xxx_messageInfo_PinCodesProposal proto.InternalMessageInfo -// UnpinCodesProposal gov proposal content type to unpin a set of code ids in the wasmvm cache. +// UnpinCodesProposal gov proposal content type to unpin a set of code ids in +// the wasmvm cache. type UnpinCodesProposal struct { // Title is a short summary Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty" yaml:"title"` @@ -318,7 +323,7 @@ type UnpinCodesProposal struct { func (m *UnpinCodesProposal) Reset() { *m = UnpinCodesProposal{} } func (*UnpinCodesProposal) ProtoMessage() {} func (*UnpinCodesProposal) Descriptor() ([]byte, []int) { - return fileDescriptor_0a371ed62f288510, []int{6} + return fileDescriptor_6428c760f8f86eed, []int{6} } func (m *UnpinCodesProposal) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -357,56 +362,58 @@ func init() { proto.RegisterType((*UnpinCodesProposal)(nil), "cosmwasm.wasm.v1beta1.UnpinCodesProposal") } -func init() { proto.RegisterFile("x/wasm/types/proposal.proto", fileDescriptor_0a371ed62f288510) } - -var fileDescriptor_0a371ed62f288510 = []byte{ - // 734 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x95, 0x4d, 0x6b, 0xdb, 0x48, - 0x18, 0xc7, 0xad, 0x38, 0x7e, 0xc9, 0xd8, 0xec, 0x7a, 0xb5, 0x4e, 0x56, 0x9b, 0x2c, 0x92, 0x51, - 0x20, 0xf8, 0xb2, 0xd2, 0x26, 0x0b, 0xfb, 0x06, 0x7b, 0xb0, 0xbc, 0x97, 0xc0, 0x1a, 0x82, 0x42, - 0x08, 0xe4, 0x62, 0xc6, 0xd2, 0x44, 0x99, 0xd6, 0x9a, 0x11, 0x9a, 0x71, 0x5d, 0x7f, 0x8b, 0x7e, - 0x80, 0x7e, 0x80, 0xd0, 0x4b, 0xe9, 0xb7, 0xc8, 0x31, 0xc7, 0xf4, 0xa2, 0x36, 0xce, 0xa5, 0x67, - 0x1f, 0x7b, 0x2a, 0x33, 0x23, 0xbb, 0x4e, 0x09, 0x25, 0xd0, 0x17, 0xe8, 0x45, 0xf6, 0xa3, 0xff, - 0x33, 0xcf, 0xff, 0x99, 0xdf, 0x3c, 0xf6, 0x80, 0xad, 0xc7, 0xee, 0x18, 0xb2, 0xd8, 0xe5, 0x93, - 0x04, 0x31, 0x37, 0x49, 0x69, 0x42, 0x19, 0x1c, 0x3a, 0x49, 0x4a, 0x39, 0xd5, 0xd7, 0x03, 0xca, - 0x62, 0x21, 0x3b, 0xf2, 0xf1, 0x68, 0x77, 0x80, 0x38, 0xdc, 0xdd, 0x6c, 0x46, 0x34, 0xa2, 0x32, - 0xc3, 0x15, 0xdf, 0x54, 0xf2, 0xa6, 0x29, 0x92, 0x29, 0x73, 0x07, 0x90, 0x21, 0x37, 0x4f, 0x75, - 0x03, 0x8a, 0x49, 0xae, 0x1b, 0xb7, 0x9c, 0xe4, 0x53, 0x29, 0xf6, 0xf9, 0x0a, 0xf8, 0xe1, 0x90, - 0xd3, 0x14, 0x75, 0x69, 0x88, 0x0e, 0xf2, 0x16, 0xf4, 0x26, 0x28, 0x71, 0xcc, 0x87, 0xc8, 0xd0, - 0x5a, 0x5a, 0x7b, 0xcd, 0x57, 0x81, 0xde, 0x02, 0xb5, 0x10, 0xb1, 0x20, 0xc5, 0x09, 0xc7, 0x94, - 0x18, 0x2b, 0x52, 0x5b, 0x7e, 0xa5, 0xaf, 0x83, 0x72, 0x3a, 0x22, 0x7d, 0xc8, 0x8c, 0xa2, 0x5a, - 0x98, 0x8e, 0x48, 0x87, 0xe9, 0x7f, 0x80, 0xef, 0x84, 0x7d, 0x7f, 0x30, 0xe1, 0xa8, 0x1f, 0xd0, - 0x10, 0x19, 0xab, 0x2d, 0xad, 0x5d, 0xf7, 0x1a, 0xd3, 0xcc, 0xaa, 0x1f, 0x77, 0x0e, 0x7b, 0xde, - 0x84, 0xcb, 0x06, 0xfc, 0xba, 0xc8, 0x9b, 0x47, 0xfa, 0x06, 0x28, 0x33, 0x3a, 0x4a, 0x03, 0x64, - 0x94, 0x64, 0xb9, 0x3c, 0xd2, 0x0d, 0x50, 0x19, 0x8c, 0xf0, 0x30, 0x44, 0xa9, 0x51, 0x96, 0xc2, - 0x3c, 0xd4, 0x4f, 0xc0, 0x06, 0x26, 0x8c, 0x43, 0xc2, 0x31, 0xe4, 0xa8, 0x9f, 0xa0, 0x34, 0xc6, - 0x8c, 0x89, 0x6e, 0x2b, 0x2d, 0xad, 0x5d, 0xdb, 0xdb, 0x76, 0xee, 0xc4, 0xea, 0x74, 0x82, 0x00, - 0x31, 0xd6, 0xa5, 0xe4, 0x14, 0x47, 0xfe, 0xfa, 0x52, 0x89, 0x83, 0x45, 0x05, 0xfb, 0xe5, 0x0a, - 0xd8, 0xda, 0x7f, 0xaf, 0x74, 0x29, 0xe1, 0x29, 0x0c, 0xf8, 0x97, 0x82, 0xd6, 0x04, 0x25, 0x18, - 0xc6, 0x98, 0x48, 0x56, 0x6b, 0xbe, 0x0a, 0xf4, 0x6d, 0x50, 0x11, 0x00, 0xfb, 0x38, 0x94, 0x4c, - 0x56, 0x3d, 0x30, 0xcd, 0xac, 0xb2, 0xa0, 0xb5, 0xff, 0x9f, 0x5f, 0x16, 0xd2, 0x7e, 0x28, 0x96, - 0x0e, 0xe1, 0x00, 0x0d, 0x73, 0x3a, 0x2a, 0xd0, 0xff, 0x04, 0x55, 0x4c, 0x30, 0xef, 0xc7, 0x2c, - 0x92, 0x34, 0xea, 0xde, 0x2f, 0x6f, 0x33, 0xcb, 0x40, 0x24, 0xa0, 0x21, 0x26, 0x91, 0xfb, 0x80, - 0x51, 0xe2, 0xf8, 0x70, 0xdc, 0x43, 0x8c, 0xc1, 0x08, 0xf9, 0x15, 0x91, 0xdd, 0x63, 0x91, 0x0e, - 0x41, 0xe9, 0x74, 0x44, 0x42, 0x66, 0x54, 0x5b, 0xc5, 0x76, 0x6d, 0xef, 0x67, 0x47, 0x4d, 0x9b, - 0x23, 0xa6, 0x6d, 0x41, 0xb0, 0x4b, 0x31, 0xf1, 0x7e, 0xbb, 0xc8, 0xac, 0xc2, 0xb3, 0x57, 0x56, - 0x3b, 0xc2, 0xfc, 0x6c, 0x34, 0x70, 0x02, 0x1a, 0xbb, 0xf9, 0x68, 0xaa, 0x8f, 0x5f, 0x59, 0xf8, - 0x30, 0x9f, 0x3f, 0xb1, 0x80, 0xf9, 0xaa, 0xb2, 0xfd, 0x46, 0x03, 0x3f, 0xf5, 0x70, 0x94, 0x7e, - 0x05, 0xae, 0x9b, 0xa0, 0x1a, 0xe4, 0x16, 0x39, 0xda, 0x45, 0x7c, 0x3f, 0xba, 0xff, 0x82, 0x5a, - 0xac, 0x5a, 0x95, 0x28, 0xcb, 0xf7, 0x40, 0x09, 0xf2, 0x05, 0x3d, 0x16, 0xd9, 0x4f, 0x35, 0xf0, - 0xe3, 0x51, 0x12, 0x42, 0x8e, 0x3a, 0xe2, 0x44, 0x3f, 0x79, 0x9b, 0xbb, 0x60, 0x8d, 0xa0, 0x71, - 0x5f, 0xcd, 0x8a, 0xdc, 0xa9, 0xd7, 0x9c, 0x65, 0x56, 0x63, 0x02, 0xe3, 0xe1, 0x3f, 0xf6, 0x42, - 0xb2, 0xfd, 0x2a, 0x41, 0x63, 0x69, 0xf9, 0x31, 0x04, 0xf6, 0x19, 0xd0, 0xbb, 0x43, 0x04, 0xd3, - 0xcf, 0xd3, 0xdc, 0xb2, 0x53, 0xf1, 0x03, 0xa7, 0xe7, 0x1a, 0x68, 0x1c, 0x60, 0x22, 0xe8, 0xb2, - 0x85, 0xd1, 0xce, 0x2d, 0x23, 0xaf, 0x31, 0xcb, 0xac, 0xba, 0xda, 0x89, 0x7c, 0x6d, 0xcf, 0xad, - 0xff, 0xba, 0xc3, 0xda, 0xdb, 0x98, 0x65, 0x96, 0xae, 0xb2, 0x97, 0x44, 0xfb, 0x76, 0x4b, 0x7f, - 0x8b, 0x96, 0xe4, 0x19, 0x8b, 0xc1, 0x28, 0xb6, 0x57, 0x3d, 0x73, 0x9a, 0x59, 0x15, 0x75, 0xc8, - 0x6c, 0x96, 0x59, 0xdf, 0xab, 0x0a, 0xf3, 0x24, 0xdb, 0xaf, 0xa8, 0x83, 0x67, 0xf6, 0x0b, 0x0d, - 0xe8, 0x47, 0x24, 0xf9, 0x96, 0x7a, 0xf6, 0xfe, 0xbf, 0xb8, 0x36, 0x0b, 0x57, 0xd7, 0x66, 0xe1, - 0x7c, 0x6a, 0x6a, 0x17, 0x53, 0x53, 0xbb, 0x9c, 0x9a, 0xda, 0xeb, 0xa9, 0xa9, 0x3d, 0xb9, 0x31, - 0x0b, 0x97, 0x37, 0x66, 0xe1, 0xea, 0xc6, 0x2c, 0x9c, 0xec, 0x2c, 0xfd, 0x60, 0xbb, 0x94, 0xc5, - 0xc7, 0xe2, 0xb6, 0x10, 0xff, 0x90, 0xa1, 0xbb, 0x7c, 0x75, 0x0c, 0xca, 0xf2, 0xd6, 0xf8, 0xfd, - 0x5d, 0x00, 0x00, 0x00, 0xff, 0xff, 0x11, 0xcc, 0xe0, 0x60, 0xbb, 0x06, 0x00, 0x00, +func init() { + proto.RegisterFile("cosmwasm/wasm/v1beta1/proposal.proto", fileDescriptor_6428c760f8f86eed) +} + +var fileDescriptor_6428c760f8f86eed = []byte{ + // 733 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x55, 0x4d, 0x6b, 0xdb, 0x48, + 0x18, 0xb6, 0xe2, 0xf8, 0x23, 0x63, 0xb3, 0xeb, 0xd5, 0x3a, 0x59, 0x6d, 0x76, 0x91, 0xbc, 0xca, + 0x12, 0x7c, 0x59, 0x79, 0x93, 0x42, 0xbf, 0xa0, 0x07, 0xcb, 0xbd, 0x04, 0x6a, 0x08, 0x0a, 0x21, + 0x90, 0x8b, 0x19, 0x4b, 0x13, 0x65, 0x5a, 0x6b, 0x46, 0x68, 0xc6, 0x75, 0xfd, 0x2f, 0xfa, 0x03, + 0xfa, 0x03, 0x42, 0x2f, 0xa5, 0xff, 0x22, 0xc7, 0x1c, 0xd3, 0x8b, 0xda, 0x38, 0x97, 0x9e, 0x7d, + 0xec, 0xa9, 0xcc, 0x8c, 0xec, 0x3a, 0x25, 0x94, 0x40, 0x3f, 0xa0, 0x17, 0xd9, 0xaf, 0xde, 0xe7, + 0x7d, 0x9f, 0x67, 0x9e, 0xf7, 0x15, 0x03, 0xfe, 0xf5, 0x29, 0x8b, 0x46, 0x90, 0x45, 0x2d, 0xf9, + 0x78, 0xba, 0xd5, 0x47, 0x1c, 0x6e, 0xb5, 0xe2, 0x84, 0xc6, 0x94, 0xc1, 0x81, 0x13, 0x27, 0x94, + 0x53, 0x7d, 0x75, 0x86, 0x72, 0xe4, 0x23, 0x43, 0xad, 0xd7, 0x43, 0x1a, 0x52, 0x89, 0x68, 0x89, + 0x7f, 0x0a, 0xbc, 0x6e, 0x0a, 0x30, 0x65, 0xad, 0x3e, 0x64, 0x68, 0xde, 0xd0, 0xa7, 0x98, 0x64, + 0xf9, 0x7f, 0xae, 0xa7, 0xe4, 0xe3, 0x18, 0x31, 0x05, 0xb1, 0x4f, 0x96, 0xc0, 0x6f, 0x7b, 0x9c, + 0x26, 0xa8, 0x43, 0x03, 0xb4, 0x9b, 0x69, 0xd1, 0xeb, 0xa0, 0xc0, 0x31, 0x1f, 0x20, 0x43, 0x6b, + 0x68, 0xcd, 0x15, 0x4f, 0x05, 0x7a, 0x03, 0x54, 0x02, 0xc4, 0xfc, 0x04, 0xc7, 0x1c, 0x53, 0x62, + 0x2c, 0xc9, 0xdc, 0xe2, 0x2b, 0x7d, 0x15, 0x14, 0x93, 0x21, 0xe9, 0x41, 0x66, 0xe4, 0x55, 0x61, + 0x32, 0x24, 0x6d, 0xa6, 0xdf, 0x06, 0xbf, 0x08, 0x01, 0xbd, 0xfe, 0x98, 0xa3, 0x9e, 0x4f, 0x03, + 0x64, 0x2c, 0x37, 0xb4, 0x66, 0xd5, 0xad, 0x4d, 0x52, 0xab, 0x7a, 0xd0, 0xde, 0xeb, 0xba, 0x63, + 0x2e, 0x05, 0x78, 0x55, 0x81, 0x9b, 0x45, 0xfa, 0x1a, 0x28, 0x32, 0x3a, 0x4c, 0x7c, 0x64, 0x14, + 0x64, 0xbb, 0x2c, 0xd2, 0x0d, 0x50, 0xea, 0x0f, 0xf1, 0x20, 0x40, 0x89, 0x51, 0x94, 0x89, 0x59, + 0xa8, 0x1f, 0x82, 0x35, 0x4c, 0x18, 0x87, 0x84, 0x63, 0xc8, 0x51, 0x2f, 0x46, 0x49, 0x84, 0x19, + 0x13, 0x6a, 0x4b, 0x0d, 0xad, 0x59, 0xd9, 0xde, 0x70, 0xae, 0xf5, 0xd7, 0x69, 0xfb, 0x3e, 0x62, + 0xac, 0x43, 0xc9, 0x11, 0x0e, 0xbd, 0xd5, 0x85, 0x16, 0xbb, 0xf3, 0x0e, 0xf6, 0x9b, 0x25, 0xf0, + 0xd7, 0xce, 0xa7, 0x4c, 0x87, 0x12, 0x9e, 0x40, 0x9f, 0x7f, 0x2f, 0xd3, 0xea, 0xa0, 0x00, 0x83, + 0x08, 0x13, 0xe9, 0xd5, 0x8a, 0xa7, 0x02, 0x7d, 0x03, 0x94, 0x84, 0x81, 0x3d, 0x1c, 0x48, 0x4f, + 0x96, 0x5d, 0x30, 0x49, 0xad, 0xa2, 0x70, 0x6b, 0xe7, 0xa1, 0x57, 0x14, 0xa9, 0x9d, 0x40, 0x94, + 0x0e, 0x60, 0x1f, 0x0d, 0x32, 0x77, 0x54, 0xa0, 0xdf, 0x01, 0x65, 0x4c, 0x30, 0xef, 0x45, 0x2c, + 0x94, 0x6e, 0x54, 0xdd, 0xbf, 0x3f, 0xa4, 0x96, 0x81, 0x88, 0x4f, 0x03, 0x4c, 0xc2, 0xd6, 0x63, + 0x46, 0x89, 0xe3, 0xc1, 0x51, 0x17, 0x31, 0x06, 0x43, 0xe4, 0x95, 0x04, 0xba, 0xcb, 0x42, 0x1d, + 0x82, 0xc2, 0xd1, 0x90, 0x04, 0xcc, 0x28, 0x37, 0xf2, 0xcd, 0xca, 0xf6, 0x9f, 0x8e, 0x5a, 0x3b, + 0x47, 0xac, 0xdd, 0xdc, 0xc1, 0x0e, 0xc5, 0xc4, 0xfd, 0xff, 0x34, 0xb5, 0x72, 0x2f, 0xdf, 0x5a, + 0xcd, 0x10, 0xf3, 0xe3, 0x61, 0xdf, 0xf1, 0x69, 0xd4, 0xca, 0x76, 0x54, 0xfd, 0xfc, 0xc7, 0x82, + 0x27, 0xd9, 0xfe, 0x89, 0x02, 0xe6, 0xa9, 0xce, 0xf6, 0x7b, 0x0d, 0xfc, 0xd1, 0xc5, 0x61, 0xf2, + 0x03, 0x7c, 0x5d, 0x07, 0x65, 0x3f, 0xa3, 0xc8, 0xac, 0x9d, 0xc7, 0x37, 0x73, 0xf7, 0x01, 0xa8, + 0x44, 0x4a, 0xaa, 0xb4, 0xb2, 0x78, 0x03, 0x2b, 0x41, 0x56, 0xd0, 0x65, 0xa1, 0xfd, 0x42, 0x03, + 0xbf, 0xef, 0xc7, 0x01, 0xe4, 0xa8, 0x2d, 0x26, 0xfa, 0xd5, 0xc7, 0xdc, 0x02, 0x2b, 0x04, 0x8d, + 0x7a, 0x6a, 0x57, 0xe4, 0x49, 0xdd, 0xfa, 0x34, 0xb5, 0x6a, 0x63, 0x18, 0x0d, 0xee, 0xdb, 0xf3, + 0x94, 0xed, 0x95, 0x09, 0x1a, 0x49, 0xca, 0x2f, 0x59, 0x60, 0x1f, 0x03, 0xbd, 0x33, 0x40, 0x30, + 0xf9, 0x36, 0xe2, 0x16, 0x99, 0xf2, 0x9f, 0x31, 0xbd, 0xd2, 0x40, 0x6d, 0x17, 0x13, 0xe1, 0x2e, + 0x9b, 0x13, 0x6d, 0x5e, 0x21, 0x72, 0x6b, 0xd3, 0xd4, 0xaa, 0xaa, 0x93, 0xc8, 0xd7, 0xf6, 0x8c, + 0xfa, 0xee, 0x35, 0xd4, 0xee, 0xda, 0x34, 0xb5, 0x74, 0x85, 0x5e, 0x48, 0xda, 0x57, 0x25, 0xdd, + 0x13, 0x92, 0xe4, 0x8c, 0xc5, 0x62, 0xe4, 0x9b, 0xcb, 0xae, 0x39, 0x49, 0xad, 0x92, 0x1a, 0x32, + 0x9b, 0xa6, 0xd6, 0xaf, 0xaa, 0xc3, 0x0c, 0x64, 0x7b, 0x25, 0x35, 0x78, 0x66, 0xbf, 0xd6, 0x80, + 0xbe, 0x4f, 0xe2, 0x9f, 0x49, 0xb3, 0xfb, 0xe8, 0xf4, 0xc2, 0xcc, 0x9d, 0x5f, 0x98, 0xb9, 0x93, + 0x89, 0xa9, 0x9d, 0x4e, 0x4c, 0xed, 0x6c, 0x62, 0x6a, 0xef, 0x26, 0xa6, 0xf6, 0xfc, 0xd2, 0xcc, + 0x9d, 0x5d, 0x9a, 0xb9, 0xf3, 0x4b, 0x33, 0x77, 0xb8, 0xb9, 0xf0, 0xc1, 0x76, 0x28, 0x8b, 0x0e, + 0x66, 0x97, 0x46, 0xd0, 0x7a, 0xa6, 0x2e, 0x0f, 0xf9, 0xd1, 0xf6, 0x8b, 0xf2, 0xd6, 0xb8, 0xf5, + 0x31, 0x00, 0x00, 0xff, 0xff, 0x96, 0x50, 0x86, 0x17, 0xcd, 0x06, 0x00, 0x00, } func (this *StoreCodeProposal) Equal(that interface{}) bool { @@ -1589,10 +1596,7 @@ func (m *StoreCodeProposal) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthProposal - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthProposal } if (iNdEx + skippy) > l { @@ -1889,10 +1893,7 @@ func (m *InstantiateContractProposal) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthProposal - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthProposal } if (iNdEx + skippy) > l { @@ -2123,10 +2124,7 @@ func (m *MigrateContractProposal) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthProposal - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthProposal } if (iNdEx + skippy) > l { @@ -2304,10 +2302,7 @@ func (m *UpdateAdminProposal) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthProposal - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthProposal } if (iNdEx + skippy) > l { @@ -2453,10 +2448,7 @@ func (m *ClearAdminProposal) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthProposal - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthProposal } if (iNdEx + skippy) > l { @@ -2646,10 +2638,7 @@ func (m *PinCodesProposal) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthProposal - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthProposal } if (iNdEx + skippy) > l { @@ -2839,10 +2828,7 @@ func (m *UnpinCodesProposal) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthProposal - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthProposal } if (iNdEx + skippy) > l { diff --git a/x/wasm/types/proposal.proto b/x/wasm/types/proposal.proto deleted file mode 100644 index 876b1e41e9..0000000000 --- a/x/wasm/types/proposal.proto +++ /dev/null @@ -1,113 +0,0 @@ -syntax = "proto3"; -package cosmwasm.wasm.v1beta1; - -import "gogoproto/gogo.proto"; -import "cosmos/base/v1beta1/coin.proto"; -import "x/wasm/types/types.proto"; - -option go_package = "github.com/CosmWasm/wasmd/x/wasm/types"; -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.goproto_getters_all) = false; -option (gogoproto.equal_all) = true; - -// StoreCodeProposal gov proposal content type to submit WASM code to the system -message StoreCodeProposal { - // Title is a short summary - string title = 1; - // Description is a human readable text - string description = 2; - // RunAs is the address that is passed to the contract's environment as sender - string run_as = 3; - // WASMByteCode can be raw or gzip compressed - bytes wasm_byte_code = 4 [(gogoproto.customname) = "WASMByteCode"]; - // Source is a valid absolute HTTPS URI to the contract's source code, optional - string source = 5; - // Builder is a valid docker image name with tag, optional - string builder = 6; - // InstantiatePermission to apply on contract creation, optional - AccessConfig instantiate_permission = 7; -} - -// InstantiateContractProposal gov proposal content type to instantiate a contract. -message InstantiateContractProposal { - // Title is a short summary - string title = 1; - // Description is a human readable text - string description = 2; - // RunAs is the address that is passed to the contract's environment as sender - string run_as = 3; - // Admin is an optional address that can execute migrations - string admin = 4; - // CodeID is the reference to the stored WASM code - uint64 code_id = 5 [(gogoproto.customname) = "CodeID"]; - // Label is optional metadata to be stored with a constract instance. - string label = 6; - // InitMsg json encoded message to be passed to the contract on instantiation - bytes init_msg = 7 [(gogoproto.casttype) = "encoding/json.RawMessage"]; - // Funds coins that are transferred to the contract on instantiation - repeated cosmos.base.v1beta1.Coin funds = 8 [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; -} - -// MigrateContractProposal gov proposal content type to migrate a contract. -message MigrateContractProposal { - // Title is a short summary - string title = 1; - // Description is a human readable text - string description = 2; - // RunAs is the address that is passed to the contract's environment as sender - string run_as = 3; - // Contract is the address of the smart contract - string contract = 4; - // CodeID references the new WASM code - uint64 code_id = 5 [(gogoproto.customname) = "CodeID"]; - // MigrateMsg json encoded message to be passed to the contract on migration - bytes migrate_msg = 6 [(gogoproto.casttype) = "encoding/json.RawMessage"]; -} - -// UpdateAdminProposal gov proposal content type to set an admin for a contract. -message UpdateAdminProposal { - // Title is a short summary - string title = 1; - // Description is a human readable text - string description = 2; - // NewAdmin address to be set - string new_admin = 3 [(gogoproto.moretags) = "yaml:\"new_admin\""]; - // Contract is the address of the smart contract - string contract = 4; -} - -// ClearAdminProposal gov proposal content type to clear the admin of a contract. -message ClearAdminProposal { - // Title is a short summary - string title = 1; - // Description is a human readable text - string description = 2; - // Contract is the address of the smart contract - string contract = 3; -} - -// PinCodesProposal gov proposal content type to pin a set of code ids in the wasmvm cache. -message PinCodesProposal { - // Title is a short summary - string title = 1 [(gogoproto.moretags) = "yaml:\"title\""]; - // Description is a human readable text - string description = 2 [(gogoproto.moretags) = "yaml:\"description\""]; - // CodeIDs references the new WASM codes - repeated uint64 code_ids = 3 [ - (gogoproto.customname) = "CodeIDs", - (gogoproto.moretags) = "yaml:\"code_ids\"" - ]; -} - -// UnpinCodesProposal gov proposal content type to unpin a set of code ids in the wasmvm cache. -message UnpinCodesProposal { - // Title is a short summary - string title = 1 [(gogoproto.moretags) = "yaml:\"title\""]; - // Description is a human readable text - string description = 2 [(gogoproto.moretags) = "yaml:\"description\""]; - // CodeIDs references the WASM codes - repeated uint64 code_ids = 3 [ - (gogoproto.customname) = "CodeIDs", - (gogoproto.moretags) = "yaml:\"code_ids\"" - ]; -} diff --git a/x/wasm/types/query.pb.go b/x/wasm/types/query.pb.go index 04e5a8584f..0805f736e3 100644 --- a/x/wasm/types/query.pb.go +++ b/x/wasm/types/query.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: x/wasm/types/query.proto +// source: cosmwasm/wasm/v1beta1/query.proto package types @@ -33,7 +33,8 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package -// QueryContractInfoRequest is the request type for the Query/ContractInfo RPC method +// QueryContractInfoRequest is the request type for the Query/ContractInfo RPC +// method type QueryContractInfoRequest struct { // address is the address of the contract to query Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` @@ -43,7 +44,7 @@ func (m *QueryContractInfoRequest) Reset() { *m = QueryContractInfoReque func (m *QueryContractInfoRequest) String() string { return proto.CompactTextString(m) } func (*QueryContractInfoRequest) ProtoMessage() {} func (*QueryContractInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_05d4eea78dee184d, []int{0} + return fileDescriptor_e8595715dfdf95d1, []int{0} } func (m *QueryContractInfoRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -72,7 +73,8 @@ func (m *QueryContractInfoRequest) XXX_DiscardUnknown() { var xxx_messageInfo_QueryContractInfoRequest proto.InternalMessageInfo -// QueryContractInfoResponse is the response type for the Query/ContractInfo RPC method +// QueryContractInfoResponse is the response type for the Query/ContractInfo RPC +// method type QueryContractInfoResponse struct { // address is the address of the contract Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` @@ -83,7 +85,7 @@ func (m *QueryContractInfoResponse) Reset() { *m = QueryContractInfoResp func (m *QueryContractInfoResponse) String() string { return proto.CompactTextString(m) } func (*QueryContractInfoResponse) ProtoMessage() {} func (*QueryContractInfoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_05d4eea78dee184d, []int{1} + return fileDescriptor_e8595715dfdf95d1, []int{1} } func (m *QueryContractInfoResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -112,7 +114,8 @@ func (m *QueryContractInfoResponse) XXX_DiscardUnknown() { var xxx_messageInfo_QueryContractInfoResponse proto.InternalMessageInfo -// QueryContractHistoryRequest is the request type for the Query/ContractHistory RPC method +// QueryContractHistoryRequest is the request type for the Query/ContractHistory +// RPC method type QueryContractHistoryRequest struct { // address is the address of the contract to query Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` @@ -124,7 +127,7 @@ func (m *QueryContractHistoryRequest) Reset() { *m = QueryContractHistor func (m *QueryContractHistoryRequest) String() string { return proto.CompactTextString(m) } func (*QueryContractHistoryRequest) ProtoMessage() {} func (*QueryContractHistoryRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_05d4eea78dee184d, []int{2} + return fileDescriptor_e8595715dfdf95d1, []int{2} } func (m *QueryContractHistoryRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -153,7 +156,8 @@ func (m *QueryContractHistoryRequest) XXX_DiscardUnknown() { var xxx_messageInfo_QueryContractHistoryRequest proto.InternalMessageInfo -// QueryContractHistoryResponse is the response type for the Query/ContractHistory RPC method +// QueryContractHistoryResponse is the response type for the +// Query/ContractHistory RPC method type QueryContractHistoryResponse struct { Entries []ContractCodeHistoryEntry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries"` // pagination defines the pagination in the response. @@ -164,7 +168,7 @@ func (m *QueryContractHistoryResponse) Reset() { *m = QueryContractHisto func (m *QueryContractHistoryResponse) String() string { return proto.CompactTextString(m) } func (*QueryContractHistoryResponse) ProtoMessage() {} func (*QueryContractHistoryResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_05d4eea78dee184d, []int{3} + return fileDescriptor_e8595715dfdf95d1, []int{3} } func (m *QueryContractHistoryResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -193,7 +197,8 @@ func (m *QueryContractHistoryResponse) XXX_DiscardUnknown() { var xxx_messageInfo_QueryContractHistoryResponse proto.InternalMessageInfo -// QueryContractsByCodeRequest is the request type for the Query/ContractsByCode RPC method +// QueryContractsByCodeRequest is the request type for the Query/ContractsByCode +// RPC method type QueryContractsByCodeRequest struct { CodeId uint64 `protobuf:"varint,1,opt,name=code_id,json=codeId,proto3" json:"code_id,omitempty"` // pagination defines an optional pagination for the request. @@ -204,7 +209,7 @@ func (m *QueryContractsByCodeRequest) Reset() { *m = QueryContractsByCod func (m *QueryContractsByCodeRequest) String() string { return proto.CompactTextString(m) } func (*QueryContractsByCodeRequest) ProtoMessage() {} func (*QueryContractsByCodeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_05d4eea78dee184d, []int{4} + return fileDescriptor_e8595715dfdf95d1, []int{4} } func (m *QueryContractsByCodeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -233,7 +238,8 @@ func (m *QueryContractsByCodeRequest) XXX_DiscardUnknown() { var xxx_messageInfo_QueryContractsByCodeRequest proto.InternalMessageInfo -// ContractInfoWithAddress adds the address (key) to the ContractInfo representation +// ContractInfoWithAddress adds the address (key) to the ContractInfo +// representation type ContractInfoWithAddress struct { Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` *ContractInfo `protobuf:"bytes,2,opt,name=contract_info,json=contractInfo,proto3,embedded=contract_info" json:""` @@ -243,7 +249,7 @@ func (m *ContractInfoWithAddress) Reset() { *m = ContractInfoWithAddress func (m *ContractInfoWithAddress) String() string { return proto.CompactTextString(m) } func (*ContractInfoWithAddress) ProtoMessage() {} func (*ContractInfoWithAddress) Descriptor() ([]byte, []int) { - return fileDescriptor_05d4eea78dee184d, []int{5} + return fileDescriptor_e8595715dfdf95d1, []int{5} } func (m *ContractInfoWithAddress) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -272,7 +278,8 @@ func (m *ContractInfoWithAddress) XXX_DiscardUnknown() { var xxx_messageInfo_ContractInfoWithAddress proto.InternalMessageInfo -// QueryContractsByCodeResponse is the response type for the Query/ContractsByCode RPC method +// QueryContractsByCodeResponse is the response type for the +// Query/ContractsByCode RPC method type QueryContractsByCodeResponse struct { ContractInfos []ContractInfoWithAddress `protobuf:"bytes,1,rep,name=contract_infos,json=contractInfos,proto3" json:"contract_infos"` // pagination defines the pagination in the response. @@ -283,7 +290,7 @@ func (m *QueryContractsByCodeResponse) Reset() { *m = QueryContractsByCo func (m *QueryContractsByCodeResponse) String() string { return proto.CompactTextString(m) } func (*QueryContractsByCodeResponse) ProtoMessage() {} func (*QueryContractsByCodeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_05d4eea78dee184d, []int{6} + return fileDescriptor_e8595715dfdf95d1, []int{6} } func (m *QueryContractsByCodeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -312,7 +319,8 @@ func (m *QueryContractsByCodeResponse) XXX_DiscardUnknown() { var xxx_messageInfo_QueryContractsByCodeResponse proto.InternalMessageInfo -// QueryAllContractStateRequest is the request type for the Query/AllContractState RPC method +// QueryAllContractStateRequest is the request type for the +// Query/AllContractState RPC method type QueryAllContractStateRequest struct { // address is the address of the contract Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` @@ -324,7 +332,7 @@ func (m *QueryAllContractStateRequest) Reset() { *m = QueryAllContractSt func (m *QueryAllContractStateRequest) String() string { return proto.CompactTextString(m) } func (*QueryAllContractStateRequest) ProtoMessage() {} func (*QueryAllContractStateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_05d4eea78dee184d, []int{7} + return fileDescriptor_e8595715dfdf95d1, []int{7} } func (m *QueryAllContractStateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -353,7 +361,8 @@ func (m *QueryAllContractStateRequest) XXX_DiscardUnknown() { var xxx_messageInfo_QueryAllContractStateRequest proto.InternalMessageInfo -// QueryAllContractStateResponse is the response type for the Query/AllContractState RPC method +// QueryAllContractStateResponse is the response type for the +// Query/AllContractState RPC method type QueryAllContractStateResponse struct { Models []Model `protobuf:"bytes,1,rep,name=models,proto3" json:"models"` // pagination defines the pagination in the response. @@ -364,7 +373,7 @@ func (m *QueryAllContractStateResponse) Reset() { *m = QueryAllContractS func (m *QueryAllContractStateResponse) String() string { return proto.CompactTextString(m) } func (*QueryAllContractStateResponse) ProtoMessage() {} func (*QueryAllContractStateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_05d4eea78dee184d, []int{8} + return fileDescriptor_e8595715dfdf95d1, []int{8} } func (m *QueryAllContractStateResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -393,7 +402,8 @@ func (m *QueryAllContractStateResponse) XXX_DiscardUnknown() { var xxx_messageInfo_QueryAllContractStateResponse proto.InternalMessageInfo -// QueryRawContractStateRequest is the request type for the Query/RawContractState RPC method +// QueryRawContractStateRequest is the request type for the +// Query/RawContractState RPC method type QueryRawContractStateRequest struct { // address is the address of the contract Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` @@ -404,7 +414,7 @@ func (m *QueryRawContractStateRequest) Reset() { *m = QueryRawContractSt func (m *QueryRawContractStateRequest) String() string { return proto.CompactTextString(m) } func (*QueryRawContractStateRequest) ProtoMessage() {} func (*QueryRawContractStateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_05d4eea78dee184d, []int{9} + return fileDescriptor_e8595715dfdf95d1, []int{9} } func (m *QueryRawContractStateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -433,7 +443,8 @@ func (m *QueryRawContractStateRequest) XXX_DiscardUnknown() { var xxx_messageInfo_QueryRawContractStateRequest proto.InternalMessageInfo -// QueryRawContractStateResponse is the response type for the Query/RawContractState RPC method +// QueryRawContractStateResponse is the response type for the +// Query/RawContractState RPC method type QueryRawContractStateResponse struct { // Data contains the raw store data Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` @@ -443,7 +454,7 @@ func (m *QueryRawContractStateResponse) Reset() { *m = QueryRawContractS func (m *QueryRawContractStateResponse) String() string { return proto.CompactTextString(m) } func (*QueryRawContractStateResponse) ProtoMessage() {} func (*QueryRawContractStateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_05d4eea78dee184d, []int{10} + return fileDescriptor_e8595715dfdf95d1, []int{10} } func (m *QueryRawContractStateResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -472,7 +483,8 @@ func (m *QueryRawContractStateResponse) XXX_DiscardUnknown() { var xxx_messageInfo_QueryRawContractStateResponse proto.InternalMessageInfo -// QuerySmartContractStateRequest is the request type for the Query/SmartContractState RPC method +// QuerySmartContractStateRequest is the request type for the +// Query/SmartContractState RPC method type QuerySmartContractStateRequest struct { // address is the address of the contract Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` @@ -484,7 +496,7 @@ func (m *QuerySmartContractStateRequest) Reset() { *m = QuerySmartContra func (m *QuerySmartContractStateRequest) String() string { return proto.CompactTextString(m) } func (*QuerySmartContractStateRequest) ProtoMessage() {} func (*QuerySmartContractStateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_05d4eea78dee184d, []int{11} + return fileDescriptor_e8595715dfdf95d1, []int{11} } func (m *QuerySmartContractStateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -513,7 +525,8 @@ func (m *QuerySmartContractStateRequest) XXX_DiscardUnknown() { var xxx_messageInfo_QuerySmartContractStateRequest proto.InternalMessageInfo -// QuerySmartContractStateResponse is the response type for the Query/SmartContractState RPC method +// QuerySmartContractStateResponse is the response type for the +// Query/SmartContractState RPC method type QuerySmartContractStateResponse struct { // Data contains the json data returned from the smart contract Data encoding_json.RawMessage `protobuf:"bytes,1,opt,name=data,proto3,casttype=encoding/json.RawMessage" json:"data,omitempty"` @@ -523,7 +536,7 @@ func (m *QuerySmartContractStateResponse) Reset() { *m = QuerySmartContr func (m *QuerySmartContractStateResponse) String() string { return proto.CompactTextString(m) } func (*QuerySmartContractStateResponse) ProtoMessage() {} func (*QuerySmartContractStateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_05d4eea78dee184d, []int{12} + return fileDescriptor_e8595715dfdf95d1, []int{12} } func (m *QuerySmartContractStateResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -561,7 +574,7 @@ func (m *QueryCodeRequest) Reset() { *m = QueryCodeRequest{} } func (m *QueryCodeRequest) String() string { return proto.CompactTextString(m) } func (*QueryCodeRequest) ProtoMessage() {} func (*QueryCodeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_05d4eea78dee184d, []int{13} + return fileDescriptor_e8595715dfdf95d1, []int{13} } func (m *QueryCodeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -603,7 +616,7 @@ func (m *CodeInfoResponse) Reset() { *m = CodeInfoResponse{} } func (m *CodeInfoResponse) String() string { return proto.CompactTextString(m) } func (*CodeInfoResponse) ProtoMessage() {} func (*CodeInfoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_05d4eea78dee184d, []int{14} + return fileDescriptor_e8595715dfdf95d1, []int{14} } func (m *CodeInfoResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -642,7 +655,7 @@ func (m *QueryCodeResponse) Reset() { *m = QueryCodeResponse{} } func (m *QueryCodeResponse) String() string { return proto.CompactTextString(m) } func (*QueryCodeResponse) ProtoMessage() {} func (*QueryCodeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_05d4eea78dee184d, []int{15} + return fileDescriptor_e8595715dfdf95d1, []int{15} } func (m *QueryCodeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -681,7 +694,7 @@ func (m *QueryCodesRequest) Reset() { *m = QueryCodesRequest{} } func (m *QueryCodesRequest) String() string { return proto.CompactTextString(m) } func (*QueryCodesRequest) ProtoMessage() {} func (*QueryCodesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_05d4eea78dee184d, []int{16} + return fileDescriptor_e8595715dfdf95d1, []int{16} } func (m *QueryCodesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -721,7 +734,7 @@ func (m *QueryCodesResponse) Reset() { *m = QueryCodesResponse{} } func (m *QueryCodesResponse) String() string { return proto.CompactTextString(m) } func (*QueryCodesResponse) ProtoMessage() {} func (*QueryCodesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_05d4eea78dee184d, []int{17} + return fileDescriptor_e8595715dfdf95d1, []int{17} } func (m *QueryCodesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -771,80 +784,80 @@ func init() { proto.RegisterType((*QueryCodesResponse)(nil), "cosmwasm.wasm.v1beta1.QueryCodesResponse") } -func init() { proto.RegisterFile("x/wasm/types/query.proto", fileDescriptor_05d4eea78dee184d) } +func init() { proto.RegisterFile("cosmwasm/wasm/v1beta1/query.proto", fileDescriptor_e8595715dfdf95d1) } -var fileDescriptor_05d4eea78dee184d = []byte{ - // 1107 bytes of a gzipped FileDescriptorProto +var fileDescriptor_e8595715dfdf95d1 = []byte{ + // 1105 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x97, 0xcf, 0x6f, 0x1b, 0x45, - 0x14, 0xc7, 0x3d, 0xa9, 0xf3, 0xc3, 0xd3, 0x14, 0xc2, 0xa8, 0xd0, 0xc5, 0xb8, 0xeb, 0x68, 0x41, - 0xa9, 0x5b, 0xa4, 0xdd, 0xfc, 0x2a, 0x82, 0x72, 0xaa, 0x53, 0x20, 0x95, 0x28, 0x3f, 0x36, 0x42, - 0x11, 0xf4, 0x10, 0x8d, 0x77, 0xa7, 0xf6, 0x22, 0x7b, 0x27, 0xdd, 0x99, 0x90, 0x58, 0x51, 0x28, - 0xe2, 0xc2, 0x09, 0x81, 0xc4, 0x91, 0x0b, 0x07, 0x0e, 0xa8, 0xc0, 0xbd, 0x47, 0x0e, 0x1c, 0x72, - 0x8c, 0xc4, 0x85, 0x93, 0x05, 0x0e, 0x42, 0x28, 0x7f, 0x42, 0x4f, 0x68, 0x66, 0x67, 0x93, 0x5d, - 0xc7, 0xeb, 0x75, 0x90, 0x45, 0x2f, 0xd6, 0x8e, 0x77, 0xde, 0x9b, 0xcf, 0xfb, 0xbe, 0x99, 0xf7, - 0x66, 0xa1, 0xb6, 0x63, 0x6d, 0x63, 0xd6, 0xb2, 0x78, 0x7b, 0x93, 0x30, 0xeb, 0xfe, 0x16, 0x09, - 0xda, 0xe6, 0x66, 0x40, 0x39, 0x45, 0xcf, 0x3a, 0x94, 0xb5, 0xc4, 0x3b, 0x53, 0xfe, 0x7c, 0xb2, - 0x50, 0x23, 0x1c, 0x2f, 0x14, 0x2f, 0xd6, 0x69, 0x9d, 0xca, 0x19, 0x96, 0x78, 0x0a, 0x27, 0x17, - 0x93, 0x6e, 0xe4, 0xaf, 0x7a, 0x53, 0xaa, 0x53, 0x5a, 0x6f, 0x12, 0x0b, 0x6f, 0x7a, 0x16, 0xf6, - 0x7d, 0xca, 0x31, 0xf7, 0xa8, 0x1f, 0xbd, 0xbd, 0x26, 0x16, 0xa1, 0xcc, 0xaa, 0x61, 0x46, 0xc2, - 0xd5, 0x2d, 0xb5, 0x90, 0xb5, 0x89, 0xeb, 0x9e, 0x2f, 0x27, 0x87, 0x73, 0x8d, 0x65, 0xa8, 0xbd, - 0x2f, 0x66, 0xac, 0x50, 0x9f, 0x07, 0xd8, 0xe1, 0xb7, 0xfd, 0x7b, 0xd4, 0x26, 0xf7, 0xb7, 0x08, - 0xe3, 0x48, 0x83, 0x93, 0xd8, 0x75, 0x03, 0xc2, 0x98, 0x06, 0x66, 0x41, 0xa5, 0x60, 0x47, 0x43, - 0xe3, 0x2b, 0x00, 0x9f, 0xef, 0x63, 0xc6, 0x36, 0xa9, 0xcf, 0x48, 0xba, 0x1d, 0xb2, 0xe1, 0x05, - 0x47, 0x59, 0x6c, 0x78, 0xfe, 0x3d, 0xaa, 0x8d, 0xcd, 0x82, 0xca, 0xf9, 0xc5, 0x17, 0xcd, 0xbe, - 0xb2, 0x98, 0x71, 0xef, 0xd5, 0xa9, 0x83, 0x4e, 0x19, 0x1c, 0x75, 0xca, 0x39, 0x7b, 0xda, 0x89, - 0xfd, 0x7f, 0x23, 0xff, 0xcf, 0x77, 0x65, 0x60, 0x3c, 0x80, 0x2f, 0x24, 0x80, 0x56, 0x3d, 0xc6, - 0x69, 0xd0, 0xce, 0x0c, 0x05, 0xbd, 0x09, 0xe1, 0x89, 0x28, 0x8a, 0x67, 0xce, 0x0c, 0x15, 0x34, - 0x85, 0x82, 0x66, 0x98, 0xbf, 0x88, 0xe9, 0x3d, 0x5c, 0x27, 0xca, 0xab, 0x1d, 0xb3, 0x34, 0x1e, - 0x01, 0x58, 0xea, 0x4f, 0xa0, 0x54, 0x79, 0x17, 0x4e, 0x12, 0x9f, 0x07, 0x1e, 0x11, 0x08, 0xe7, - 0x2a, 0xe7, 0x17, 0xad, 0x8c, 0xa8, 0x57, 0xa8, 0x4b, 0x94, 0x93, 0x37, 0x7c, 0x1e, 0xb4, 0xab, - 0xf9, 0x7d, 0x11, 0x7d, 0xe4, 0x05, 0xbd, 0xd5, 0x87, 0xfc, 0x4a, 0x26, 0x79, 0x48, 0x93, 0x40, - 0xff, 0xb4, 0x47, 0x3b, 0x56, 0x6d, 0x8b, 0xb5, 0x23, 0xed, 0x2e, 0xc1, 0x49, 0x87, 0xba, 0x64, - 0xc3, 0x73, 0xa5, 0x76, 0x79, 0x7b, 0x42, 0x0c, 0x6f, 0xbb, 0x23, 0x93, 0xee, 0x4b, 0x00, 0x2f, - 0xc5, 0x53, 0xbd, 0xee, 0xf1, 0xc6, 0x4d, 0x95, 0x9e, 0x27, 0xb1, 0x97, 0x7e, 0xed, 0x4d, 0xe5, - 0xb1, 0x20, 0x2a, 0x95, 0x77, 0xe1, 0x53, 0x89, 0xa5, 0xa3, 0x8c, 0x9a, 0x43, 0xac, 0x1d, 0x0b, - 0x4e, 0x25, 0xf4, 0x42, 0x1c, 0x61, 0x84, 0x69, 0xfd, 0x2c, 0x0a, 0xe3, 0x66, 0xb3, 0x19, 0x11, - 0xac, 0x71, 0xcc, 0xc9, 0xff, 0x77, 0x28, 0xbe, 0x07, 0xf0, 0x72, 0x0a, 0x82, 0x92, 0xf2, 0x06, - 0x9c, 0x68, 0x51, 0x97, 0x34, 0x23, 0x09, 0x4b, 0x29, 0x12, 0xde, 0x11, 0x93, 0x94, 0x60, 0xca, - 0x62, 0x74, 0x4a, 0xad, 0x2b, 0xa1, 0x6c, 0xbc, 0x7d, 0x46, 0xa1, 0x2e, 0x43, 0x28, 0xd7, 0xd8, - 0x70, 0x31, 0xc7, 0x12, 0x61, 0xda, 0x2e, 0xc8, 0x7f, 0x6e, 0x61, 0x8e, 0x8d, 0x25, 0x15, 0xfe, - 0x69, 0xc7, 0x2a, 0x7c, 0x04, 0xf3, 0xd2, 0x12, 0x48, 0x4b, 0xf9, 0x6c, 0x7c, 0x08, 0x75, 0x69, - 0xb4, 0xd6, 0xc2, 0x01, 0x1f, 0x2d, 0xcf, 0x1a, 0x2c, 0xa7, 0xba, 0x56, 0x44, 0xf3, 0x71, 0xa2, - 0x6a, 0xe9, 0x71, 0xa7, 0xac, 0x11, 0xdf, 0xa1, 0xae, 0xe7, 0xd7, 0xad, 0x8f, 0x19, 0xf5, 0x4d, - 0x1b, 0x6f, 0xdf, 0x21, 0x8c, 0x09, 0x2d, 0x43, 0xde, 0x97, 0xe1, 0x8c, 0x3a, 0x2d, 0xd9, 0x35, - 0xc3, 0xf8, 0x1b, 0xc0, 0x19, 0x31, 0x31, 0xd1, 0x30, 0xae, 0xf6, 0xcc, 0xae, 0xce, 0x74, 0x3b, - 0xe5, 0x09, 0x39, 0xed, 0xd6, 0x51, 0xa7, 0x3c, 0xe6, 0xb9, 0xc7, 0x35, 0x47, 0x83, 0x93, 0x4e, - 0x40, 0x30, 0xa7, 0x81, 0x8c, 0xae, 0x60, 0x47, 0x43, 0xf4, 0x01, 0x2c, 0x08, 0x9c, 0x8d, 0x06, - 0x66, 0x0d, 0xed, 0x9c, 0xa4, 0x7f, 0xf5, 0x71, 0xa7, 0xbc, 0x5c, 0xf7, 0x78, 0x63, 0xab, 0x66, - 0x3a, 0xb4, 0x65, 0x71, 0xe2, 0xbb, 0x24, 0x68, 0x79, 0x3e, 0x8f, 0x3f, 0x36, 0xbd, 0x1a, 0xb3, - 0x6a, 0x6d, 0x4e, 0x98, 0xb9, 0x4a, 0x76, 0xaa, 0xe2, 0xc1, 0x9e, 0x12, 0xae, 0x56, 0x31, 0x6b, - 0xa0, 0xe7, 0xe0, 0x04, 0xa3, 0x5b, 0x81, 0x43, 0xb4, 0xbc, 0x5c, 0x4f, 0x8d, 0x04, 0x48, 0x6d, - 0xcb, 0x6b, 0xba, 0x24, 0xd0, 0xc6, 0x43, 0x10, 0x35, 0x54, 0x45, 0xe4, 0x0b, 0x00, 0x9f, 0x89, - 0xc9, 0xa2, 0x22, 0x7d, 0x07, 0x16, 0xc2, 0x48, 0x45, 0xc1, 0x02, 0xb1, 0x1d, 0xdb, 0xaf, 0x68, - 0x24, 0x55, 0x8a, 0x15, 0xad, 0x29, 0x47, 0xbd, 0x43, 0x25, 0x95, 0x2d, 0x99, 0xe9, 0xea, 0xd4, - 0x51, 0xa7, 0x2c, 0xc7, 0x61, 0x66, 0x14, 0xc9, 0xdd, 0x18, 0x08, 0x8b, 0x12, 0x94, 0x3c, 0xe1, - 0xe0, 0x3f, 0x9f, 0xf0, 0x1f, 0x01, 0x44, 0x71, 0xef, 0x2a, 0xce, 0xb7, 0x21, 0x3c, 0x8e, 0x33, - 0x3a, 0xda, 0x43, 0x07, 0x1a, 0x9e, 0xf2, 0x42, 0x14, 0xe4, 0xe8, 0x0e, 0xfa, 0xe2, 0x43, 0x08, - 0xc7, 0x25, 0x2d, 0xfa, 0x16, 0xc0, 0xe9, 0x78, 0x59, 0x46, 0x69, 0xdd, 0x38, 0xed, 0x76, 0x54, - 0x9c, 0x1f, 0xde, 0x20, 0x24, 0x31, 0x2a, 0x9f, 0xff, 0xf6, 0xd7, 0x37, 0x63, 0x06, 0x9a, 0x0d, - 0xaf, 0x75, 0xd1, 0x9d, 0x2c, 0x2a, 0xff, 0xd6, 0xae, 0x3a, 0xc5, 0x7b, 0xe8, 0x27, 0x00, 0x9f, - 0xee, 0xb9, 0x47, 0xa0, 0xc5, 0x61, 0xd6, 0x4b, 0x5e, 0x7b, 0x8a, 0x4b, 0x67, 0xb2, 0x51, 0x98, - 0xf3, 0x12, 0xf3, 0x1a, 0xaa, 0x64, 0x61, 0x5a, 0x0d, 0x85, 0xf6, 0x30, 0x86, 0xab, 0x7a, 0xe5, - 0x70, 0xb8, 0xc9, 0x9b, 0xc6, 0x70, 0xb8, 0x3d, 0xcd, 0xd8, 0x30, 0x25, 0x6e, 0x05, 0xcd, 0xf5, - 0xe2, 0xba, 0xc4, 0xda, 0x55, 0x65, 0x65, 0xef, 0x98, 0x9e, 0xa1, 0x9f, 0x01, 0x9c, 0xe9, 0x6d, - 0x47, 0x68, 0xe0, 0xca, 0x29, 0xfd, 0xb3, 0xb8, 0x7c, 0x36, 0xa3, 0x2c, 0xde, 0x53, 0xf2, 0x32, - 0x89, 0xf6, 0x08, 0xc0, 0x99, 0xde, 0xfe, 0x31, 0x98, 0x37, 0xa5, 0x8d, 0x0d, 0xe6, 0x4d, 0x6b, - 0x51, 0xc6, 0x6b, 0x92, 0x77, 0x09, 0x2d, 0x64, 0xf2, 0x06, 0x78, 0xdb, 0xda, 0x3d, 0x69, 0x3f, - 0x7b, 0xe8, 0x17, 0x00, 0xd1, 0xe9, 0x56, 0x83, 0xae, 0x0f, 0xe2, 0x48, 0xed, 0x7a, 0xc5, 0x57, - 0xce, 0x6a, 0xa6, 0x02, 0x78, 0x5d, 0x06, 0x70, 0x1d, 0x2d, 0x65, 0x0b, 0x2e, 0x9c, 0x24, 0x43, - 0x78, 0x00, 0xf3, 0x72, 0x3b, 0x5f, 0x19, 0xbc, 0x35, 0x4f, 0xf6, 0x70, 0x25, 0x7b, 0xa2, 0xe2, - 0x7a, 0x49, 0x72, 0xe9, 0xa8, 0x34, 0x68, 0xe3, 0xa2, 0x1d, 0x38, 0x2e, 0x4b, 0x2b, 0xca, 0x74, - 0x1c, 0xd5, 0xf6, 0xe2, 0xd5, 0x21, 0x66, 0x2a, 0x86, 0xa2, 0x64, 0xb8, 0x88, 0xd0, 0x69, 0x86, - 0xea, 0xea, 0xfe, 0x9f, 0x7a, 0xee, 0x87, 0xae, 0x9e, 0xdb, 0xef, 0xea, 0xe0, 0xa0, 0xab, 0x83, - 0x3f, 0xba, 0x3a, 0xf8, 0xfa, 0x50, 0xcf, 0x1d, 0x1c, 0xea, 0xb9, 0xdf, 0x0f, 0xf5, 0xdc, 0x47, - 0x73, 0xb1, 0xde, 0xba, 0x42, 0x59, 0x6b, 0x5d, 0xf8, 0x10, 0x8e, 0x5c, 0x2b, 0xfe, 0xe9, 0x5a, - 0x9b, 0x90, 0xdf, 0x9a, 0x4b, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x47, 0x8e, 0x3f, 0x56, 0x18, - 0x0f, 0x00, 0x00, + 0x14, 0xc7, 0x3d, 0xa9, 0xe3, 0xc4, 0xd3, 0x14, 0xcc, 0xa8, 0x50, 0x63, 0xdc, 0x75, 0x58, 0x50, + 0xea, 0x16, 0x69, 0x37, 0x89, 0x53, 0x04, 0xe5, 0x54, 0xa7, 0x40, 0x2a, 0x51, 0x7e, 0x6c, 0x84, + 0x22, 0xe8, 0x21, 0x1a, 0xef, 0x4e, 0xed, 0x45, 0xf6, 0x8e, 0xbb, 0x33, 0x26, 0xb1, 0xa2, 0x50, + 0xc4, 0x85, 0x13, 0x02, 0x89, 0x23, 0x17, 0x0e, 0x1c, 0x50, 0x81, 0x7b, 0x8f, 0x1c, 0x38, 0xe4, + 0x18, 0x89, 0x0b, 0x27, 0x0b, 0x1c, 0x84, 0x50, 0xfe, 0x84, 0x9e, 0xd0, 0xce, 0xce, 0x3a, 0xbb, + 0x8e, 0xd7, 0xeb, 0x20, 0x0b, 0x2e, 0xd6, 0x8e, 0xfd, 0xde, 0x9b, 0xcf, 0xfb, 0xbe, 0x99, 0xf7, + 0xd6, 0xf0, 0x79, 0x93, 0xb2, 0xd6, 0x0e, 0x66, 0x2d, 0x5d, 0x7c, 0x7c, 0xbc, 0x52, 0x23, 0x1c, + 0xaf, 0xe8, 0xf7, 0x3b, 0xc4, 0xed, 0x6a, 0x6d, 0x97, 0x72, 0x8a, 0x9e, 0x0e, 0x4c, 0x34, 0xf1, + 0x21, 0x4d, 0x0a, 0x17, 0xeb, 0xb4, 0x4e, 0x85, 0x85, 0xee, 0x3d, 0xf9, 0xc6, 0x85, 0x98, 0x78, + 0xbc, 0xdb, 0x26, 0x4c, 0x9a, 0x14, 0xeb, 0x94, 0xd6, 0x9b, 0x44, 0xc7, 0x6d, 0x5b, 0xc7, 0x8e, + 0x43, 0x39, 0xe6, 0x36, 0x75, 0x82, 0x5f, 0xaf, 0x79, 0x01, 0x28, 0xd3, 0x6b, 0x98, 0x11, 0x1f, + 0x63, 0x10, 0xa4, 0x8d, 0xeb, 0xb6, 0x23, 0x8c, 0x7d, 0x5b, 0x75, 0x0d, 0xe6, 0xdf, 0xf3, 0x2c, + 0xd6, 0xa9, 0xc3, 0x5d, 0x6c, 0xf2, 0xdb, 0xce, 0x3d, 0x6a, 0x90, 0xfb, 0x1d, 0xc2, 0x38, 0xca, + 0xc3, 0x39, 0x6c, 0x59, 0x2e, 0x61, 0x2c, 0x0f, 0x16, 0x41, 0x39, 0x6b, 0x04, 0x4b, 0xf5, 0x4b, + 0x00, 0x9f, 0x1d, 0xe1, 0xc6, 0xda, 0xd4, 0x61, 0x24, 0xde, 0x0f, 0x19, 0xf0, 0x82, 0x29, 0x3d, + 0xb6, 0x6d, 0xe7, 0x1e, 0xcd, 0xcf, 0x2c, 0x82, 0xf2, 0xf9, 0xd5, 0x17, 0xb4, 0x91, 0xfa, 0x68, + 0xe1, 0xe8, 0xd5, 0xf9, 0xc3, 0x5e, 0x09, 0x1c, 0xf7, 0x4a, 0x29, 0x63, 0xc1, 0x0c, 0x7d, 0x7f, + 0x23, 0xfd, 0xf7, 0xb7, 0x25, 0xa0, 0x3e, 0x80, 0xcf, 0x45, 0x80, 0x36, 0x6c, 0xc6, 0xa9, 0xdb, + 0x4d, 0x4c, 0x05, 0xbd, 0x01, 0xe1, 0x89, 0x28, 0x92, 0x67, 0x49, 0xf3, 0x15, 0xd4, 0x3c, 0x05, + 0x35, 0xbf, 0x90, 0x01, 0xd3, 0xbb, 0xb8, 0x4e, 0x64, 0x54, 0x23, 0xe4, 0xa9, 0x3e, 0x02, 0xb0, + 0x38, 0x9a, 0x40, 0xaa, 0xf2, 0x0e, 0x9c, 0x23, 0x0e, 0x77, 0x6d, 0xe2, 0x21, 0x9c, 0x2b, 0x9f, + 0x5f, 0xd5, 0x13, 0xb2, 0x5e, 0xa7, 0x16, 0x91, 0x41, 0x5e, 0x77, 0xb8, 0xdb, 0xad, 0xa6, 0x0f, + 0xbc, 0xec, 0x83, 0x28, 0xe8, 0xcd, 0x11, 0xe4, 0x57, 0x12, 0xc9, 0x7d, 0x9a, 0x08, 0xfa, 0x27, + 0x43, 0xda, 0xb1, 0x6a, 0xd7, 0xdb, 0x3b, 0xd0, 0xee, 0x12, 0x9c, 0x33, 0xa9, 0x45, 0xb6, 0x6d, + 0x4b, 0x68, 0x97, 0x36, 0x32, 0xde, 0xf2, 0xb6, 0x35, 0x35, 0xe9, 0xbe, 0x00, 0xf0, 0x52, 0xb8, + 0xd4, 0x5b, 0x36, 0x6f, 0xdc, 0x94, 0xe5, 0xf9, 0x3f, 0xce, 0xd2, 0x2f, 0xc3, 0xa5, 0x1c, 0x08, + 0x22, 0x4b, 0x79, 0x17, 0x3e, 0x11, 0xd9, 0x3a, 0xa8, 0xa8, 0x36, 0xc1, 0xde, 0xa1, 0xe4, 0x64, + 0x41, 0x2f, 0x84, 0x11, 0xa6, 0x58, 0xd6, 0x4f, 0x83, 0x34, 0x6e, 0x36, 0x9b, 0x01, 0xc1, 0x26, + 0xc7, 0x9c, 0xfc, 0x77, 0x97, 0xe2, 0x3b, 0x00, 0x2f, 0xc7, 0x20, 0x48, 0x29, 0x6f, 0xc0, 0x4c, + 0x8b, 0x5a, 0xa4, 0x19, 0x48, 0x58, 0x8c, 0x91, 0xf0, 0x8e, 0x67, 0x24, 0x05, 0x93, 0x1e, 0xd3, + 0x53, 0x6a, 0x4b, 0x0a, 0x65, 0xe0, 0x9d, 0x33, 0x0a, 0x75, 0x19, 0x42, 0xb1, 0xc7, 0xb6, 0x85, + 0x39, 0x16, 0x08, 0x0b, 0x46, 0x56, 0x7c, 0x73, 0x0b, 0x73, 0xac, 0x56, 0x64, 0xfa, 0xa7, 0x03, + 0xcb, 0xf4, 0x11, 0x4c, 0x0b, 0x4f, 0x20, 0x3c, 0xc5, 0xb3, 0xfa, 0x01, 0x54, 0x84, 0xd3, 0x66, + 0x0b, 0xbb, 0x7c, 0xba, 0x3c, 0x9b, 0xb0, 0x14, 0x1b, 0x5a, 0x12, 0x2d, 0x87, 0x89, 0xaa, 0xc5, + 0xc7, 0xbd, 0x52, 0x9e, 0x38, 0x26, 0xb5, 0x6c, 0xa7, 0xae, 0x7f, 0xc4, 0xa8, 0xa3, 0x19, 0x78, + 0xe7, 0x0e, 0x61, 0xcc, 0xd3, 0xd2, 0xe7, 0x7d, 0x09, 0xe6, 0xe4, 0x6d, 0x49, 0xee, 0x19, 0xea, + 0x5f, 0x00, 0xe6, 0x3c, 0xc3, 0xc8, 0xc0, 0xb8, 0x3a, 0x64, 0x5d, 0xcd, 0xf5, 0x7b, 0xa5, 0x8c, + 0x30, 0xbb, 0x75, 0xdc, 0x2b, 0xcd, 0xd8, 0xd6, 0xa0, 0xe7, 0xe4, 0xe1, 0x9c, 0xe9, 0x12, 0xcc, + 0xa9, 0x2b, 0xb2, 0xcb, 0x1a, 0xc1, 0x12, 0xbd, 0x0f, 0xb3, 0x1e, 0xce, 0x76, 0x03, 0xb3, 0x46, + 0xfe, 0x9c, 0xa0, 0x7f, 0xe5, 0x71, 0xaf, 0xb4, 0x56, 0xb7, 0x79, 0xa3, 0x53, 0xd3, 0x4c, 0xda, + 0xd2, 0x39, 0x71, 0x2c, 0xe2, 0xb6, 0x6c, 0x87, 0x87, 0x1f, 0x9b, 0x76, 0x8d, 0xe9, 0xb5, 0x2e, + 0x27, 0x4c, 0xdb, 0x20, 0xbb, 0x55, 0xef, 0xc1, 0x98, 0xf7, 0x42, 0x6d, 0x60, 0xd6, 0x40, 0xcf, + 0xc0, 0x0c, 0xa3, 0x1d, 0xd7, 0x24, 0xf9, 0xb4, 0xd8, 0x4f, 0xae, 0x3c, 0x90, 0x5a, 0xc7, 0x6e, + 0x5a, 0xc4, 0xcd, 0xcf, 0xfa, 0x20, 0x72, 0x29, 0x9b, 0xc8, 0xe7, 0x00, 0x3e, 0x15, 0x92, 0x45, + 0x66, 0xfa, 0x36, 0xcc, 0xfa, 0x99, 0x7a, 0x0d, 0x0b, 0x84, 0x4e, 0xec, 0xa8, 0xa6, 0x11, 0x55, + 0x29, 0xd4, 0xb4, 0xe6, 0x4d, 0xf9, 0x1b, 0x2a, 0xca, 0x6a, 0x89, 0x4a, 0x57, 0xe7, 0x8f, 0x7b, + 0x25, 0xb1, 0xf6, 0x2b, 0x23, 0x49, 0xee, 0x86, 0x40, 0x58, 0x50, 0xa0, 0xe8, 0x0d, 0x07, 0xff, + 0xfa, 0x86, 0xff, 0x00, 0x20, 0x0a, 0x47, 0x97, 0x79, 0xbe, 0x05, 0xe1, 0x20, 0xcf, 0xe0, 0x6a, + 0x4f, 0x9c, 0xa8, 0x7f, 0xcb, 0xb3, 0x41, 0x92, 0xd3, 0xbb, 0xe8, 0xab, 0x0f, 0x21, 0x9c, 0x15, + 0xb4, 0xe8, 0x1b, 0x00, 0x17, 0xc2, 0x6d, 0x19, 0xc5, 0x4d, 0xe3, 0xb8, 0xb7, 0xa3, 0xc2, 0xf2, + 0xe4, 0x0e, 0x3e, 0x89, 0x5a, 0xfe, 0xec, 0xd7, 0x3f, 0xbf, 0x9e, 0x51, 0xd1, 0x62, 0xf4, 0xc5, + 0x2e, 0x68, 0xff, 0xfa, 0x9e, 0xbc, 0xc5, 0xfb, 0xe8, 0x47, 0x00, 0x9f, 0x1c, 0x7a, 0x8f, 0x40, + 0xab, 0x93, 0xec, 0x17, 0x7d, 0xed, 0x29, 0x54, 0xce, 0xe4, 0x23, 0x31, 0x97, 0x05, 0xe6, 0x35, + 0x54, 0x4e, 0xc2, 0xd4, 0x1b, 0x12, 0xed, 0x61, 0x08, 0x57, 0xce, 0xca, 0xc9, 0x70, 0xa3, 0x6f, + 0x1a, 0x93, 0xe1, 0x0e, 0x0d, 0x63, 0x55, 0x13, 0xb8, 0x65, 0xb4, 0x34, 0x8c, 0x6b, 0x11, 0x7d, + 0x4f, 0xb6, 0x95, 0xfd, 0x01, 0x3d, 0x43, 0x3f, 0x01, 0x98, 0x1b, 0x1e, 0x47, 0x68, 0xec, 0xce, + 0x31, 0xf3, 0xb3, 0xb0, 0x76, 0x36, 0xa7, 0x24, 0xde, 0x53, 0xf2, 0x32, 0x81, 0xf6, 0x08, 0xc0, + 0xdc, 0xf0, 0xfc, 0x18, 0xcf, 0x1b, 0x33, 0xc6, 0xc6, 0xf3, 0xc6, 0x8d, 0x28, 0xf5, 0x55, 0xc1, + 0x5b, 0x41, 0x2b, 0x89, 0xbc, 0x2e, 0xde, 0xd1, 0xf7, 0x4e, 0xc6, 0xcf, 0x3e, 0xfa, 0x19, 0x40, + 0x74, 0x7a, 0xd4, 0xa0, 0xeb, 0xe3, 0x38, 0x62, 0xa7, 0x5e, 0xe1, 0xe5, 0xb3, 0xba, 0xc9, 0x04, + 0x5e, 0x13, 0x09, 0x5c, 0x47, 0x95, 0x64, 0xc1, 0xbd, 0x20, 0xd1, 0x14, 0x1e, 0xc0, 0xb4, 0x38, + 0xce, 0x57, 0xc6, 0x1f, 0xcd, 0x93, 0x33, 0x5c, 0x4e, 0x36, 0x94, 0x5c, 0x2f, 0x0a, 0x2e, 0x05, + 0x15, 0xc7, 0x1d, 0x5c, 0xb4, 0x0b, 0x67, 0x45, 0x6b, 0x45, 0x89, 0x81, 0x83, 0xde, 0x5e, 0xb8, + 0x3a, 0x81, 0xa5, 0x64, 0x28, 0x08, 0x86, 0x8b, 0x08, 0x9d, 0x66, 0xa8, 0x6e, 0x1c, 0xfc, 0xa1, + 0xa4, 0xbe, 0xef, 0x2b, 0xa9, 0x83, 0xbe, 0x02, 0x0e, 0xfb, 0x0a, 0xf8, 0xbd, 0xaf, 0x80, 0xaf, + 0x8e, 0x94, 0xd4, 0xe1, 0x91, 0x92, 0xfa, 0xed, 0x48, 0x49, 0x7d, 0xb8, 0x14, 0x9a, 0xad, 0xeb, + 0x94, 0xb5, 0xb6, 0x82, 0x3f, 0xad, 0x96, 0xbe, 0xeb, 0x07, 0x14, 0x7f, 0x5a, 0x6b, 0x19, 0xf1, + 0x5f, 0xb3, 0xf2, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x6e, 0x56, 0xdc, 0x6b, 0x2a, 0x0f, 0x00, + 0x00, } func (this *QueryContractInfoResponse) Equal(that interface{}) bool { @@ -1310,7 +1323,7 @@ var _Query_serviceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "x/wasm/types/query.proto", + Metadata: "cosmwasm/wasm/v1beta1/query.proto", } func (m *QueryContractInfoRequest) Marshal() (dAtA []byte, err error) { @@ -2429,10 +2442,7 @@ func (m *QueryContractInfoRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } if (iNdEx + skippy) > l { @@ -2550,10 +2560,7 @@ func (m *QueryContractInfoResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } if (iNdEx + skippy) > l { @@ -2671,10 +2678,7 @@ func (m *QueryContractHistoryRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } if (iNdEx + skippy) > l { @@ -2794,10 +2798,7 @@ func (m *QueryContractHistoryResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } if (iNdEx + skippy) > l { @@ -2902,10 +2903,7 @@ func (m *QueryContractsByCodeRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } if (iNdEx + skippy) > l { @@ -3023,10 +3021,7 @@ func (m *ContractInfoWithAddress) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } if (iNdEx + skippy) > l { @@ -3146,10 +3141,7 @@ func (m *QueryContractsByCodeResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } if (iNdEx + skippy) > l { @@ -3267,10 +3259,7 @@ func (m *QueryAllContractStateRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } if (iNdEx + skippy) > l { @@ -3390,10 +3379,7 @@ func (m *QueryAllContractStateResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } if (iNdEx + skippy) > l { @@ -3509,10 +3495,7 @@ func (m *QueryRawContractStateRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } if (iNdEx + skippy) > l { @@ -3596,10 +3579,7 @@ func (m *QueryRawContractStateResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } if (iNdEx + skippy) > l { @@ -3715,10 +3695,7 @@ func (m *QuerySmartContractStateRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } if (iNdEx + skippy) > l { @@ -3802,10 +3779,7 @@ func (m *QuerySmartContractStateResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } if (iNdEx + skippy) > l { @@ -3874,10 +3848,7 @@ func (m *QueryCodeRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } if (iNdEx + skippy) > l { @@ -4076,10 +4047,7 @@ func (m *CodeInfoResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } if (iNdEx + skippy) > l { @@ -4199,10 +4167,7 @@ func (m *QueryCodeResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } if (iNdEx + skippy) > l { @@ -4288,10 +4253,7 @@ func (m *QueryCodesRequest) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } if (iNdEx + skippy) > l { @@ -4411,10 +4373,7 @@ func (m *QueryCodesResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthQuery } if (iNdEx + skippy) > l { diff --git a/x/wasm/types/query.pb.gw.go b/x/wasm/types/query.pb.gw.go index 8630e48008..fbde946d49 100644 --- a/x/wasm/types/query.pb.gw.go +++ b/x/wasm/types/query.pb.gw.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: x/wasm/types/query.proto +// source: cosmwasm/wasm/v1beta1/query.proto /* Package types is a reverse proxy. @@ -20,7 +20,6 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" ) @@ -31,7 +30,6 @@ var _ status.Status var _ = runtime.String var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage -var _ = metadata.Join func request_Query_ContractInfo_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq QueryContractInfoRequest @@ -548,14 +546,12 @@ func local_request_Query_Codes_0(ctx context.Context, marshaler runtime.Marshale // RegisterQueryHandlerServer registers the http handlers for service Query to "mux". // UnaryRPC :call QueryServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterQueryHandlerFromEndpoint instead. +// Note that using this registration option will cause many gRPC library features (such as grpc.SendHeader, etc) to stop working. Consider using RegisterQueryHandlerFromEndpoint instead. func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, server QueryServer) error { mux.Handle("GET", pattern_Query_ContractInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -563,7 +559,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_ContractInfo_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -577,8 +572,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_ContractHistory_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -586,7 +579,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_ContractHistory_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -600,8 +592,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_ContractsByCode_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -609,7 +599,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_ContractsByCode_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -623,8 +612,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_AllContractState_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -632,7 +619,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_AllContractState_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -646,8 +632,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_RawContractState_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -655,7 +639,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_RawContractState_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -669,8 +652,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_SmartContractState_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -678,7 +659,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_SmartContractState_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -692,8 +672,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_Code_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -701,7 +679,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_Code_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -715,8 +692,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_Codes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -724,7 +699,6 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_Codes_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) diff --git a/x/wasm/types/query.proto b/x/wasm/types/query.proto deleted file mode 100644 index d907d92fb3..0000000000 --- a/x/wasm/types/query.proto +++ /dev/null @@ -1,175 +0,0 @@ -syntax = "proto3"; -package cosmwasm.wasm.v1beta1; - -import "gogoproto/gogo.proto"; -import "x/wasm/types/types.proto"; -import "google/api/annotations.proto"; -import "cosmos/base/query/v1beta1/pagination.proto"; - -option go_package = "github.com/CosmWasm/wasmd/x/wasm/types"; -option (gogoproto.goproto_getters_all) = false; -option (gogoproto.equal_all) = false; - -// Query provides defines the gRPC querier service -service Query { - // ContractInfo gets the contract meta data - rpc ContractInfo (QueryContractInfoRequest) returns (QueryContractInfoResponse) { - option (google.api.http).get = "/wasm/v1beta1/contract/{address}"; - } - // ContractHistory gets the contract code history - rpc ContractHistory (QueryContractHistoryRequest) returns (QueryContractHistoryResponse) { - option (google.api.http).get = "/wasm/v1beta1/contract/{address}/history"; - } - // ContractsByCode lists all smart contracts for a code id - rpc ContractsByCode (QueryContractsByCodeRequest) returns (QueryContractsByCodeResponse) { - option (google.api.http).get = "/wasm/v1beta1/code/{code_id}/contracts"; - } - // AllContractState gets all raw store data for a single contract - rpc AllContractState (QueryAllContractStateRequest) returns (QueryAllContractStateResponse) { - option (google.api.http).get = "/wasm/v1beta1/contract/{address}/state"; - } - // RawContractState gets single key from the raw store data of a contract - rpc RawContractState (QueryRawContractStateRequest) returns (QueryRawContractStateResponse) { - option (google.api.http).get = "/wasm/v1beta1/contract/{address}/raw/{query_data}"; - } - // SmartContractState get smart query result from the contract - rpc SmartContractState (QuerySmartContractStateRequest) returns (QuerySmartContractStateResponse) { - option (google.api.http).get = "/wasm/v1beta1/contract/{address}/smart/{query_data}"; - } - // Code gets the binary code and metadata for a singe wasm code - rpc Code (QueryCodeRequest) returns (QueryCodeResponse) { - option (google.api.http).get = "/wasm/v1beta1/code/{code_id}"; - } - // Codes gets the metadata for all stored wasm codes - rpc Codes (QueryCodesRequest) returns (QueryCodesResponse) { - option (google.api.http).get = "/wasm/v1beta1/code"; - } -} - -// QueryContractInfoRequest is the request type for the Query/ContractInfo RPC method -message QueryContractInfoRequest { - // address is the address of the contract to query - string address = 1; -} -// QueryContractInfoResponse is the response type for the Query/ContractInfo RPC method -message QueryContractInfoResponse { - option (gogoproto.equal) = true; - - // address is the address of the contract - string address = 1; - ContractInfo contract_info = 2 [(gogoproto.embed) = true, (gogoproto.jsontag) = ""]; -} - -// QueryContractHistoryRequest is the request type for the Query/ContractHistory RPC method -message QueryContractHistoryRequest { - // address is the address of the contract to query - string address = 1; - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 2; -} - -// QueryContractHistoryResponse is the response type for the Query/ContractHistory RPC method -message QueryContractHistoryResponse { - repeated ContractCodeHistoryEntry entries = 1 [(gogoproto.nullable) = false]; - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryContractsByCodeRequest is the request type for the Query/ContractsByCode RPC method -message QueryContractsByCodeRequest { - uint64 code_id = 1; // grpc-gateway_out does not support Go style CodID - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 2; -} - -// ContractInfoWithAddress adds the address (key) to the ContractInfo representation -message ContractInfoWithAddress { - option (gogoproto.equal) = true; - - string address = 1; - ContractInfo contract_info = 2 [(gogoproto.embed) = true, (gogoproto.jsontag) = ""]; -} -// QueryContractsByCodeResponse is the response type for the Query/ContractsByCode RPC method -message QueryContractsByCodeResponse { - repeated ContractInfoWithAddress contract_infos = 1 [(gogoproto.nullable) = false]; - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryAllContractStateRequest is the request type for the Query/AllContractState RPC method -message QueryAllContractStateRequest { - // address is the address of the contract - string address = 1; - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 2; -} - -// QueryAllContractStateResponse is the response type for the Query/AllContractState RPC method -message QueryAllContractStateResponse { - repeated Model models = 1 [(gogoproto.nullable) = false]; - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryRawContractStateRequest is the request type for the Query/RawContractState RPC method -message QueryRawContractStateRequest { - // address is the address of the contract - string address = 1; - bytes query_data = 2; -} - -// QueryRawContractStateResponse is the response type for the Query/RawContractState RPC method -message QueryRawContractStateResponse { - // Data contains the raw store data - bytes data = 1; -} - -// QuerySmartContractStateRequest is the request type for the Query/SmartContractState RPC method -message QuerySmartContractStateRequest { - // address is the address of the contract - string address = 1; - // QueryData contains the query data passed to the contract - bytes query_data = 2; -} - -// QuerySmartContractStateResponse is the response type for the Query/SmartContractState RPC method -message QuerySmartContractStateResponse { - // Data contains the json data returned from the smart contract - bytes data = 1 [(gogoproto.casttype) = "encoding/json.RawMessage"]; -} - -// QueryCodeRequest is the request type for the Query/Code RPC method -message QueryCodeRequest { - uint64 code_id = 1; // grpc-gateway_out does not support Go style CodID -} - -// CodeInfoResponse contains code meta data from CodeInfo -message CodeInfoResponse { - option (gogoproto.equal) = true; - - uint64 code_id = 1 [(gogoproto.customname) = "CodeID", (gogoproto.jsontag) = "id"]; // id for legacy support - string creator = 2; - bytes data_hash = 3 [(gogoproto.casttype) = "github.com/tendermint/tendermint/libs/bytes.HexBytes"]; - string source = 4; - string builder = 5; -} - -// QueryCodeResponse is the response type for the Query/Code RPC method -message QueryCodeResponse { - option (gogoproto.equal) = true; - CodeInfoResponse code_info = 1 [(gogoproto.embed) = true, (gogoproto.jsontag) = ""]; - bytes data = 2 [(gogoproto.jsontag) = "data"]; -} - -// QueryCodesRequest is the request type for the Query/Codes RPC method -message QueryCodesRequest { - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 1; -} - -// QueryCodesResponse is the response type for the Query/Codes RPC method -message QueryCodesResponse { - repeated CodeInfoResponse code_infos = 1 [(gogoproto.nullable) = false]; - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} diff --git a/x/wasm/types/tx.pb.go b/x/wasm/types/tx.pb.go index 9fb9592410..d9a9cf005e 100644 --- a/x/wasm/types/tx.pb.go +++ b/x/wasm/types/tx.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: x/wasm/types/tx.proto +// source: cosmwasm/wasm/v1beta1/tx.proto package types @@ -37,11 +37,13 @@ type MsgStoreCode struct { Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` // WASMByteCode can be raw or gzip compressed WASMByteCode []byte `protobuf:"bytes,2,opt,name=wasm_byte_code,json=wasmByteCode,proto3" json:"wasm_byte_code,omitempty"` - // Source is a valid absolute HTTPS URI to the contract's source code, optional + // Source is a valid absolute HTTPS URI to the contract's source code, + // optional Source string `protobuf:"bytes,3,opt,name=source,proto3" json:"source,omitempty"` // Builder is a valid docker image name with tag, optional Builder string `protobuf:"bytes,4,opt,name=builder,proto3" json:"builder,omitempty"` - // InstantiatePermission access control to apply on contract creation, optional + // InstantiatePermission access control to apply on contract creation, + // optional InstantiatePermission *AccessConfig `protobuf:"bytes,5,opt,name=instantiate_permission,json=instantiatePermission,proto3" json:"instantiate_permission,omitempty"` } @@ -49,7 +51,7 @@ func (m *MsgStoreCode) Reset() { *m = MsgStoreCode{} } func (m *MsgStoreCode) String() string { return proto.CompactTextString(m) } func (*MsgStoreCode) ProtoMessage() {} func (*MsgStoreCode) Descriptor() ([]byte, []int) { - return fileDescriptor_fdaa78bc8a72122f, []int{0} + return fileDescriptor_b74028d4038589a4, []int{0} } func (m *MsgStoreCode) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -88,7 +90,7 @@ func (m *MsgStoreCodeResponse) Reset() { *m = MsgStoreCodeResponse{} } func (m *MsgStoreCodeResponse) String() string { return proto.CompactTextString(m) } func (*MsgStoreCodeResponse) ProtoMessage() {} func (*MsgStoreCodeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_fdaa78bc8a72122f, []int{1} + return fileDescriptor_b74028d4038589a4, []int{1} } func (m *MsgStoreCodeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -117,7 +119,8 @@ func (m *MsgStoreCodeResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgStoreCodeResponse proto.InternalMessageInfo -// MsgInstantiateContract create a new smart contract instance for the given code id. +// MsgInstantiateContract create a new smart contract instance for the given +// code id. type MsgInstantiateContract struct { // Sender is the that actor that signed the messages Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` @@ -137,7 +140,7 @@ func (m *MsgInstantiateContract) Reset() { *m = MsgInstantiateContract{} func (m *MsgInstantiateContract) String() string { return proto.CompactTextString(m) } func (*MsgInstantiateContract) ProtoMessage() {} func (*MsgInstantiateContract) Descriptor() ([]byte, []int) { - return fileDescriptor_fdaa78bc8a72122f, []int{2} + return fileDescriptor_b74028d4038589a4, []int{2} } func (m *MsgInstantiateContract) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -178,7 +181,7 @@ func (m *MsgInstantiateContractResponse) Reset() { *m = MsgInstantiateCo func (m *MsgInstantiateContractResponse) String() string { return proto.CompactTextString(m) } func (*MsgInstantiateContractResponse) ProtoMessage() {} func (*MsgInstantiateContractResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_fdaa78bc8a72122f, []int{3} + return fileDescriptor_b74028d4038589a4, []int{3} } func (m *MsgInstantiateContractResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -223,7 +226,7 @@ func (m *MsgExecuteContract) Reset() { *m = MsgExecuteContract{} } func (m *MsgExecuteContract) String() string { return proto.CompactTextString(m) } func (*MsgExecuteContract) ProtoMessage() {} func (*MsgExecuteContract) Descriptor() ([]byte, []int) { - return fileDescriptor_fdaa78bc8a72122f, []int{4} + return fileDescriptor_b74028d4038589a4, []int{4} } func (m *MsgExecuteContract) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -262,7 +265,7 @@ func (m *MsgExecuteContractResponse) Reset() { *m = MsgExecuteContractRe func (m *MsgExecuteContractResponse) String() string { return proto.CompactTextString(m) } func (*MsgExecuteContractResponse) ProtoMessage() {} func (*MsgExecuteContractResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_fdaa78bc8a72122f, []int{5} + return fileDescriptor_b74028d4038589a4, []int{5} } func (m *MsgExecuteContractResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -307,7 +310,7 @@ func (m *MsgMigrateContract) Reset() { *m = MsgMigrateContract{} } func (m *MsgMigrateContract) String() string { return proto.CompactTextString(m) } func (*MsgMigrateContract) ProtoMessage() {} func (*MsgMigrateContract) Descriptor() ([]byte, []int) { - return fileDescriptor_fdaa78bc8a72122f, []int{6} + return fileDescriptor_b74028d4038589a4, []int{6} } func (m *MsgMigrateContract) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -347,7 +350,7 @@ func (m *MsgMigrateContractResponse) Reset() { *m = MsgMigrateContractRe func (m *MsgMigrateContractResponse) String() string { return proto.CompactTextString(m) } func (*MsgMigrateContractResponse) ProtoMessage() {} func (*MsgMigrateContractResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_fdaa78bc8a72122f, []int{7} + return fileDescriptor_b74028d4038589a4, []int{7} } func (m *MsgMigrateContractResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -390,7 +393,7 @@ func (m *MsgUpdateAdmin) Reset() { *m = MsgUpdateAdmin{} } func (m *MsgUpdateAdmin) String() string { return proto.CompactTextString(m) } func (*MsgUpdateAdmin) ProtoMessage() {} func (*MsgUpdateAdmin) Descriptor() ([]byte, []int) { - return fileDescriptor_fdaa78bc8a72122f, []int{8} + return fileDescriptor_b74028d4038589a4, []int{8} } func (m *MsgUpdateAdmin) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -427,7 +430,7 @@ func (m *MsgUpdateAdminResponse) Reset() { *m = MsgUpdateAdminResponse{} func (m *MsgUpdateAdminResponse) String() string { return proto.CompactTextString(m) } func (*MsgUpdateAdminResponse) ProtoMessage() {} func (*MsgUpdateAdminResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_fdaa78bc8a72122f, []int{9} + return fileDescriptor_b74028d4038589a4, []int{9} } func (m *MsgUpdateAdminResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -468,7 +471,7 @@ func (m *MsgClearAdmin) Reset() { *m = MsgClearAdmin{} } func (m *MsgClearAdmin) String() string { return proto.CompactTextString(m) } func (*MsgClearAdmin) ProtoMessage() {} func (*MsgClearAdmin) Descriptor() ([]byte, []int) { - return fileDescriptor_fdaa78bc8a72122f, []int{10} + return fileDescriptor_b74028d4038589a4, []int{10} } func (m *MsgClearAdmin) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -505,7 +508,7 @@ func (m *MsgClearAdminResponse) Reset() { *m = MsgClearAdminResponse{} } func (m *MsgClearAdminResponse) String() string { return proto.CompactTextString(m) } func (*MsgClearAdminResponse) ProtoMessage() {} func (*MsgClearAdminResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_fdaa78bc8a72122f, []int{11} + return fileDescriptor_b74028d4038589a4, []int{11} } func (m *MsgClearAdminResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -549,61 +552,61 @@ func init() { proto.RegisterType((*MsgClearAdminResponse)(nil), "cosmwasm.wasm.v1beta1.MsgClearAdminResponse") } -func init() { proto.RegisterFile("x/wasm/types/tx.proto", fileDescriptor_fdaa78bc8a72122f) } - -var fileDescriptor_fdaa78bc8a72122f = []byte{ - // 804 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0x4f, 0x6f, 0xe3, 0x44, - 0x14, 0x8f, 0x9b, 0x7f, 0xcd, 0x4b, 0x28, 0xc8, 0x34, 0xc5, 0x18, 0xe4, 0x44, 0x29, 0xa0, 0x20, - 0xa8, 0xdd, 0x16, 0x01, 0x07, 0xc4, 0xa1, 0x49, 0x39, 0xf4, 0x60, 0x84, 0x5c, 0xa1, 0x4a, 0x95, - 0x50, 0x98, 0xd8, 0x53, 0x63, 0x88, 0x67, 0x22, 0xcf, 0x84, 0xb4, 0xe2, 0x1b, 0x70, 0xe2, 0x0b, - 0xf0, 0x05, 0x10, 0x1f, 0xa4, 0xc7, 0x1e, 0x57, 0x5a, 0x29, 0xbb, 0x9b, 0x5e, 0xf7, 0x13, 0xec, - 0x69, 0x35, 0xb6, 0xe3, 0xb8, 0xd9, 0x38, 0xf2, 0x6a, 0xb5, 0x97, 0x64, 0xde, 0xcc, 0xef, 0xfd, - 0x7e, 0x7e, 0x3f, 0xbd, 0x37, 0x1a, 0x68, 0x5e, 0x1b, 0x53, 0xc4, 0x7c, 0x83, 0xdf, 0x8c, 0x31, - 0x33, 0xf8, 0xb5, 0x3e, 0x0e, 0x28, 0xa7, 0x72, 0xd3, 0xa6, 0xcc, 0x17, 0x07, 0x7a, 0xf8, 0xf3, - 0xe7, 0xd1, 0x10, 0x73, 0x74, 0xa4, 0x6a, 0x62, 0x9b, 0x32, 0x63, 0x88, 0x18, 0x36, 0xe2, 0x4d, - 0xc3, 0xa6, 0x1e, 0x89, 0xd2, 0xd4, 0x5d, 0x97, 0xba, 0x34, 0x5c, 0x1a, 0x62, 0x15, 0xef, 0x2a, - 0x0f, 0x35, 0xc4, 0x6f, 0x74, 0xd2, 0x79, 0x2e, 0x41, 0xc3, 0x64, 0xee, 0x39, 0xa7, 0x01, 0xee, - 0x53, 0x07, 0xcb, 0x7b, 0x50, 0x61, 0x98, 0x38, 0x38, 0x50, 0xa4, 0xb6, 0xd4, 0xad, 0x59, 0x71, - 0x24, 0x7f, 0x03, 0x3b, 0x82, 0x62, 0x30, 0xbc, 0xe1, 0x78, 0x60, 0x53, 0x07, 0x2b, 0x5b, 0x6d, - 0xa9, 0xdb, 0xe8, 0xbd, 0x37, 0x9f, 0xb5, 0x1a, 0x17, 0x27, 0xe7, 0x66, 0xef, 0x86, 0x87, 0x0c, - 0x56, 0x43, 0xe0, 0x16, 0x51, 0xc8, 0x47, 0x27, 0x81, 0x8d, 0x95, 0x62, 0xcc, 0x17, 0x46, 0xb2, - 0x02, 0xd5, 0xe1, 0xc4, 0x1b, 0x09, 0xa1, 0x52, 0x78, 0xb0, 0x08, 0xe5, 0x4b, 0xd8, 0xf3, 0x08, - 0xe3, 0x88, 0x70, 0x0f, 0x71, 0x3c, 0x18, 0xe3, 0xc0, 0xf7, 0x18, 0xf3, 0x28, 0x51, 0xca, 0x6d, - 0xa9, 0x5b, 0x3f, 0xde, 0xd7, 0xd7, 0x5a, 0xa3, 0x9f, 0xd8, 0x36, 0x66, 0xac, 0x4f, 0xc9, 0x95, - 0xe7, 0x5a, 0xcd, 0x14, 0xc5, 0x4f, 0x09, 0x43, 0xe7, 0x3b, 0xd8, 0x4d, 0x57, 0x6b, 0x61, 0x36, - 0xa6, 0x84, 0x61, 0x79, 0x1f, 0xaa, 0xa2, 0xa6, 0x81, 0xe7, 0x84, 0x65, 0x97, 0x7a, 0x30, 0x9f, - 0xb5, 0x2a, 0x02, 0x72, 0x76, 0x6a, 0x55, 0xc4, 0xd1, 0x99, 0xd3, 0xf9, 0x77, 0x0b, 0xf6, 0x4c, - 0xe6, 0x9e, 0x2d, 0x99, 0xfb, 0x94, 0xf0, 0x00, 0xd9, 0x3c, 0xd3, 0xb5, 0x5d, 0x28, 0x23, 0xc7, - 0xf7, 0x48, 0x68, 0x56, 0xcd, 0x8a, 0x82, 0xb4, 0x5a, 0x31, 0x4b, 0x4d, 0xa4, 0x8e, 0xd0, 0x10, - 0x8f, 0x62, 0x7b, 0xa2, 0x40, 0xfe, 0x16, 0xb6, 0x3d, 0xe2, 0xf1, 0x81, 0xcf, 0xdc, 0xd0, 0x8e, - 0x46, 0xef, 0xe3, 0x17, 0xb3, 0x96, 0x82, 0x89, 0x4d, 0x1d, 0x8f, 0xb8, 0xc6, 0xef, 0x8c, 0x12, - 0xdd, 0x42, 0x53, 0x13, 0x33, 0x86, 0x5c, 0x6c, 0x55, 0x05, 0xda, 0x64, 0xae, 0x8c, 0xa0, 0x7c, - 0x35, 0x21, 0x0e, 0x53, 0x2a, 0xed, 0x62, 0xb7, 0x7e, 0xfc, 0xa1, 0x1e, 0x35, 0x92, 0x2e, 0x1a, - 0x29, 0xb1, 0xb0, 0x4f, 0x3d, 0xd2, 0x3b, 0xbc, 0x9d, 0xb5, 0x0a, 0xff, 0x3d, 0x69, 0x75, 0x5d, - 0x8f, 0xff, 0x36, 0x19, 0xea, 0x36, 0xf5, 0x8d, 0xb8, 0xeb, 0xa2, 0xbf, 0x03, 0xe6, 0xfc, 0x11, - 0x37, 0x91, 0x48, 0x60, 0x56, 0xc4, 0xdc, 0xf9, 0x11, 0xb4, 0xf5, 0xf6, 0x24, 0x36, 0x2b, 0x50, - 0x45, 0x8e, 0x13, 0x60, 0xc6, 0x62, 0x9f, 0x16, 0xa1, 0x2c, 0x43, 0xc9, 0x41, 0x1c, 0x45, 0x4d, - 0x65, 0x85, 0xeb, 0xce, 0x63, 0x09, 0x64, 0x93, 0xb9, 0x3f, 0x5c, 0x63, 0x7b, 0x92, 0xc3, 0x6b, - 0x15, 0xb6, 0xed, 0x18, 0x13, 0xdb, 0x9d, 0xc4, 0xb2, 0x0e, 0x45, 0xe1, 0x58, 0x31, 0x87, 0x63, - 0x02, 0xb8, 0x74, 0xab, 0xfc, 0xd6, 0xdc, 0x3a, 0x04, 0xf5, 0xd5, 0xe2, 0x12, 0xa7, 0x16, 0x7e, - 0x48, 0x29, 0x3f, 0xfe, 0x8f, 0xfc, 0x30, 0x3d, 0x37, 0x40, 0x6f, 0xe8, 0x47, 0xae, 0x0e, 0xfc, - 0x1e, 0xea, 0x7e, 0xa4, 0x15, 0xb6, 0x5b, 0x29, 0x87, 0x79, 0x10, 0x27, 0x98, 0xcc, 0x8d, 0x0b, - 0x5c, 0xf9, 0xda, 0x8d, 0x05, 0x22, 0xd8, 0x31, 0x99, 0xfb, 0xf3, 0xd8, 0x41, 0x1c, 0x9f, 0x84, - 0x93, 0x92, 0x55, 0xdb, 0x47, 0x50, 0x23, 0x78, 0x3a, 0x48, 0xcf, 0xd6, 0x36, 0xc1, 0xd3, 0x28, - 0x29, 0x5d, 0x78, 0xf1, 0x61, 0xe1, 0x1d, 0x25, 0x1c, 0xe1, 0x94, 0xc4, 0xe2, 0x83, 0x3a, 0x7d, - 0x78, 0xc7, 0x64, 0x6e, 0x7f, 0x84, 0x51, 0xb0, 0x59, 0x7b, 0x13, 0xfd, 0x07, 0xd0, 0x7c, 0x40, - 0xb2, 0x60, 0x3f, 0xfe, 0xbb, 0x0c, 0x45, 0x31, 0x86, 0xbf, 0x40, 0x6d, 0x79, 0xd7, 0x66, 0xdd, - 0x64, 0xe9, 0x2b, 0x4a, 0xfd, 0x22, 0x07, 0x28, 0x71, 0xf5, 0x2f, 0x78, 0x7f, 0xdd, 0xf5, 0x74, - 0x90, 0xcd, 0xb1, 0x06, 0xae, 0x7e, 0xfd, 0x5a, 0xf0, 0x44, 0x9c, 0xc2, 0xbb, 0xab, 0xb3, 0xfa, - 0x79, 0x36, 0xd3, 0x0a, 0x54, 0x3d, 0xca, 0x0d, 0x4d, 0x0b, 0xae, 0x0e, 0xc3, 0x06, 0xc1, 0x15, - 0xe8, 0x26, 0xc1, 0xac, 0xa6, 0xb5, 0xa1, 0x9e, 0xee, 0xce, 0x4f, 0xb3, 0x19, 0x52, 0x30, 0xf5, - 0x20, 0x17, 0x2c, 0x11, 0xf9, 0x15, 0x20, 0xd5, 0x85, 0x9f, 0x64, 0x27, 0x2f, 0x51, 0xea, 0x97, - 0x79, 0x50, 0x0b, 0x85, 0xde, 0xe9, 0xed, 0x33, 0xad, 0x70, 0x3b, 0xd7, 0xa4, 0xbb, 0xb9, 0x26, - 0x3d, 0x9d, 0x6b, 0xd2, 0x3f, 0xf7, 0x5a, 0xe1, 0xee, 0x5e, 0x2b, 0x3c, 0xba, 0xd7, 0x0a, 0x97, - 0x9f, 0xa5, 0x6e, 0xb2, 0x3e, 0x65, 0xfe, 0x85, 0x78, 0x39, 0x08, 0x56, 0xc7, 0x48, 0x3f, 0x23, - 0x86, 0x95, 0xf0, 0x05, 0xf1, 0xd5, 0xcb, 0x00, 0x00, 0x00, 0xff, 0xff, 0x23, 0x6f, 0xe6, 0xee, - 0xc1, 0x08, 0x00, 0x00, +func init() { proto.RegisterFile("cosmwasm/wasm/v1beta1/tx.proto", fileDescriptor_b74028d4038589a4) } + +var fileDescriptor_b74028d4038589a4 = []byte{ + // 803 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xcd, 0x6e, 0xdb, 0x46, + 0x10, 0x16, 0xad, 0x3f, 0x6b, 0xa4, 0xba, 0x05, 0x6b, 0xbb, 0x2c, 0x5b, 0x50, 0xaa, 0xdc, 0x16, + 0x2a, 0x5a, 0x53, 0xb6, 0x8b, 0x36, 0x87, 0x20, 0x07, 0x4b, 0xce, 0xc1, 0x07, 0x06, 0x01, 0x8d, + 0xc0, 0x80, 0x81, 0x40, 0x59, 0x91, 0x6b, 0x86, 0x89, 0xb8, 0x2b, 0x70, 0xa9, 0xc8, 0x46, 0xde, + 0x20, 0xa7, 0xbc, 0x40, 0x5e, 0x20, 0xc8, 0x83, 0xf8, 0xe8, 0x63, 0x80, 0x00, 0x4a, 0x22, 0x5f, + 0xf3, 0x04, 0x39, 0x05, 0x5c, 0xfe, 0x88, 0x56, 0x44, 0x81, 0x41, 0x90, 0x0b, 0xc5, 0xd1, 0x7e, + 0xf3, 0x7d, 0x9c, 0x0f, 0x33, 0x83, 0x05, 0xc5, 0xa0, 0xcc, 0x19, 0x23, 0xe6, 0xb4, 0xf9, 0xe3, + 0xc9, 0x6e, 0x1f, 0x7b, 0x68, 0xb7, 0xed, 0x9d, 0xa9, 0x43, 0x97, 0x7a, 0x54, 0xdc, 0x88, 0xce, + 0x55, 0xfe, 0x08, 0xcf, 0x65, 0x9e, 0x46, 0x59, 0xbb, 0x8f, 0x18, 0x8e, 0x93, 0x0c, 0x6a, 0x93, + 0x20, 0x4d, 0x5e, 0xb7, 0xa8, 0x45, 0xf9, 0x6b, 0xdb, 0x7f, 0x0b, 0xff, 0xfd, 0x2d, 0x45, 0xec, + 0x7c, 0x88, 0x59, 0x00, 0x69, 0x7e, 0x10, 0xa0, 0xa6, 0x31, 0xeb, 0xc8, 0xa3, 0x2e, 0xee, 0x52, + 0x13, 0x8b, 0x9b, 0x50, 0x62, 0x98, 0x98, 0xd8, 0x95, 0x84, 0x86, 0xd0, 0xaa, 0xe8, 0x61, 0x24, + 0xfe, 0x0f, 0x6b, 0x3e, 0x49, 0xaf, 0x7f, 0xee, 0xe1, 0x9e, 0x41, 0x4d, 0x2c, 0xad, 0x34, 0x84, + 0x56, 0xad, 0xf3, 0xc3, 0x74, 0x52, 0xaf, 0x1d, 0xef, 0x1f, 0x69, 0x9d, 0x73, 0x8f, 0x33, 0xe8, + 0x35, 0x1f, 0x17, 0x45, 0x9c, 0x8f, 0x8e, 0x5c, 0x03, 0x4b, 0xf9, 0x90, 0x8f, 0x47, 0xa2, 0x04, + 0xe5, 0xfe, 0xc8, 0x1e, 0xf8, 0x42, 0x05, 0x7e, 0x10, 0x85, 0xe2, 0x09, 0x6c, 0xda, 0x84, 0x79, + 0x88, 0x78, 0x36, 0xf2, 0x70, 0x6f, 0x88, 0x5d, 0xc7, 0x66, 0xcc, 0xa6, 0x44, 0x2a, 0x36, 0x84, + 0x56, 0x75, 0x6f, 0x4b, 0x5d, 0xe8, 0x91, 0xba, 0x6f, 0x18, 0x98, 0xb1, 0x2e, 0x25, 0xa7, 0xb6, + 0xa5, 0x6f, 0x24, 0x28, 0xee, 0xc6, 0x0c, 0xcd, 0x9b, 0xb0, 0x9e, 0xac, 0x56, 0xc7, 0x6c, 0x48, + 0x09, 0xc3, 0xe2, 0x16, 0x94, 0xfd, 0x9a, 0x7a, 0xb6, 0xc9, 0xcb, 0x2e, 0x74, 0x60, 0x3a, 0xa9, + 0x97, 0x7c, 0xc8, 0xe1, 0x81, 0x5e, 0xf2, 0x8f, 0x0e, 0xcd, 0xe6, 0x8b, 0x15, 0xd8, 0xd4, 0x98, + 0x75, 0x38, 0x63, 0xee, 0x52, 0xe2, 0xb9, 0xc8, 0xf0, 0x52, 0x5d, 0x5b, 0x87, 0x22, 0x32, 0x1d, + 0x9b, 0x70, 0xb3, 0x2a, 0x7a, 0x10, 0x24, 0xd5, 0xf2, 0x69, 0x6a, 0x7e, 0xea, 0x00, 0xf5, 0xf1, + 0x20, 0xb4, 0x27, 0x08, 0xc4, 0x1b, 0xb0, 0x6a, 0x13, 0xdb, 0xeb, 0x39, 0xcc, 0xe2, 0x76, 0xd4, + 0x3a, 0xbf, 0x7e, 0x9c, 0xd4, 0x25, 0x4c, 0x0c, 0x6a, 0xda, 0xc4, 0x6a, 0x3f, 0x62, 0x94, 0xa8, + 0x3a, 0x1a, 0x6b, 0x98, 0x31, 0x64, 0x61, 0xbd, 0xec, 0xa3, 0x35, 0x66, 0x89, 0x08, 0x8a, 0xa7, + 0x23, 0x62, 0x32, 0xa9, 0xd4, 0xc8, 0xb7, 0xaa, 0x7b, 0x3f, 0xab, 0x41, 0x47, 0xa9, 0x7e, 0x47, + 0xc5, 0x16, 0x76, 0xa9, 0x4d, 0x3a, 0x3b, 0x17, 0x93, 0x7a, 0xee, 0xe5, 0xdb, 0x7a, 0xcb, 0xb2, + 0xbd, 0x87, 0xa3, 0xbe, 0x6a, 0x50, 0xa7, 0x1d, 0xb6, 0x5f, 0xf0, 0xb3, 0xcd, 0xcc, 0xc7, 0x61, + 0x13, 0xf9, 0x09, 0x4c, 0x0f, 0x98, 0x9b, 0x77, 0x40, 0x59, 0x6c, 0x4f, 0x6c, 0xb3, 0x04, 0x65, + 0x64, 0x9a, 0x2e, 0x66, 0x2c, 0xf4, 0x29, 0x0a, 0x45, 0x11, 0x0a, 0x26, 0xf2, 0x50, 0xd0, 0x54, + 0x3a, 0x7f, 0x6f, 0xbe, 0x11, 0x40, 0xd4, 0x98, 0x75, 0xfb, 0x0c, 0x1b, 0xa3, 0x0c, 0x5e, 0xcb, + 0xb0, 0x6a, 0x84, 0x98, 0xd0, 0xee, 0x38, 0x16, 0x55, 0xc8, 0xfb, 0x8e, 0xe5, 0x33, 0x38, 0xe6, + 0x03, 0x67, 0x6e, 0x15, 0xbf, 0x99, 0x5b, 0x3b, 0x20, 0x7f, 0x5e, 0x5c, 0xec, 0x54, 0xe4, 0x87, + 0x90, 0xf0, 0xe3, 0x55, 0xe0, 0x87, 0x66, 0x5b, 0x2e, 0xfa, 0x4a, 0x3f, 0x32, 0x75, 0xe0, 0x2d, + 0xa8, 0x3a, 0x81, 0x16, 0x6f, 0xb7, 0x42, 0x06, 0xf3, 0x20, 0x4c, 0xd0, 0x98, 0x15, 0x16, 0x38, + 0xf7, 0xb5, 0x4b, 0x0b, 0x44, 0xb0, 0xa6, 0x31, 0xeb, 0xde, 0xd0, 0x44, 0x1e, 0xde, 0xe7, 0x93, + 0x92, 0x56, 0xdb, 0x2f, 0x50, 0x21, 0x78, 0xdc, 0x4b, 0xce, 0xd6, 0x2a, 0xc1, 0xe3, 0x20, 0x29, + 0x59, 0x78, 0xfe, 0x7a, 0xe1, 0x4d, 0x89, 0x8f, 0x70, 0x42, 0x22, 0xfa, 0xa0, 0x66, 0x17, 0xbe, + 0xd3, 0x98, 0xd5, 0x1d, 0x60, 0xe4, 0x2e, 0xd7, 0x5e, 0x46, 0xff, 0x13, 0x6c, 0x5c, 0x23, 0x89, + 0xd8, 0xf7, 0x9e, 0x15, 0x21, 0xef, 0x8f, 0xe1, 0x7d, 0xa8, 0xcc, 0x76, 0x6d, 0xda, 0x26, 0x4b, + 0xae, 0x28, 0xf9, 0xef, 0x0c, 0xa0, 0xd8, 0xd5, 0xa7, 0xf0, 0xe3, 0xa2, 0xf5, 0xb4, 0x9d, 0xce, + 0xb1, 0x00, 0x2e, 0xff, 0xf7, 0x45, 0xf0, 0x58, 0x9c, 0xc2, 0xf7, 0xf3, 0xb3, 0xfa, 0x57, 0x3a, + 0xd3, 0x1c, 0x54, 0xde, 0xcd, 0x0c, 0x4d, 0x0a, 0xce, 0x0f, 0xc3, 0x12, 0xc1, 0x39, 0xe8, 0x32, + 0xc1, 0xb4, 0xa6, 0x35, 0xa0, 0x9a, 0xec, 0xce, 0x3f, 0xd2, 0x19, 0x12, 0x30, 0x79, 0x3b, 0x13, + 0x2c, 0x16, 0x79, 0x00, 0x90, 0xe8, 0xc2, 0xdf, 0xd3, 0x93, 0x67, 0x28, 0xf9, 0x9f, 0x2c, 0xa8, + 0x48, 0xa1, 0x73, 0x70, 0xf1, 0x5e, 0xc9, 0x5d, 0x4c, 0x15, 0xe1, 0x72, 0xaa, 0x08, 0xef, 0xa6, + 0x8a, 0xf0, 0xfc, 0x4a, 0xc9, 0x5d, 0x5e, 0x29, 0xb9, 0xd7, 0x57, 0x4a, 0xee, 0xe4, 0xcf, 0xc4, + 0x26, 0xeb, 0x52, 0xe6, 0x1c, 0x47, 0x17, 0x08, 0xb3, 0x7d, 0x16, 0x5c, 0x24, 0xf8, 0x36, 0xeb, + 0x97, 0xf8, 0x0d, 0xe2, 0xdf, 0x4f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xcb, 0xa6, 0x0b, 0x09, 0xd3, + 0x08, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -875,7 +878,7 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "x/wasm/types/tx.proto", + Metadata: "cosmwasm/wasm/v1beta1/tx.proto", } func (m *MsgStoreCode) Marshal() (dAtA []byte, err error) { @@ -1813,10 +1816,7 @@ func (m *MsgStoreCode) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTx } if (iNdEx + skippy) > l { @@ -1885,10 +1885,7 @@ func (m *MsgStoreCodeResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTx } if (iNdEx + skippy) > l { @@ -2121,10 +2118,7 @@ func (m *MsgInstantiateContract) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTx } if (iNdEx + skippy) > l { @@ -2240,10 +2234,7 @@ func (m *MsgInstantiateContractResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTx } if (iNdEx + skippy) > l { @@ -2425,10 +2416,7 @@ func (m *MsgExecuteContract) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTx } if (iNdEx + skippy) > l { @@ -2512,10 +2500,7 @@ func (m *MsgExecuteContractResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTx } if (iNdEx + skippy) > l { @@ -2682,10 +2667,7 @@ func (m *MsgMigrateContract) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTx } if (iNdEx + skippy) > l { @@ -2769,10 +2751,7 @@ func (m *MsgMigrateContractResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTx } if (iNdEx + skippy) > l { @@ -2918,10 +2897,7 @@ func (m *MsgUpdateAdmin) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTx } if (iNdEx + skippy) > l { @@ -2971,10 +2947,7 @@ func (m *MsgUpdateAdminResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTx } if (iNdEx + skippy) > l { @@ -3088,10 +3061,7 @@ func (m *MsgClearAdmin) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTx } if (iNdEx + skippy) > l { @@ -3141,10 +3111,7 @@ func (m *MsgClearAdminResponse) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTx - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTx } if (iNdEx + skippy) > l { diff --git a/x/wasm/types/types.pb.go b/x/wasm/types/types.pb.go index eed0b27771..99ab489bb4 100644 --- a/x/wasm/types/types.pb.go +++ b/x/wasm/types/types.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: x/wasm/types/types.proto +// source: cosmwasm/wasm/v1beta1/types.proto package types @@ -55,7 +55,7 @@ var AccessType_value = map[string]int32{ } func (AccessType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8b85390a762df19f, []int{0} + return fileDescriptor_2548aa229a1f29bc, []int{0} } // ContractCodeHistoryOperationType actions that caused a code change @@ -91,7 +91,7 @@ func (x ContractCodeHistoryOperationType) String() string { } func (ContractCodeHistoryOperationType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_8b85390a762df19f, []int{1} + return fileDescriptor_2548aa229a1f29bc, []int{1} } // AccessTypeParam @@ -103,7 +103,7 @@ func (m *AccessTypeParam) Reset() { *m = AccessTypeParam{} } func (m *AccessTypeParam) String() string { return proto.CompactTextString(m) } func (*AccessTypeParam) ProtoMessage() {} func (*AccessTypeParam) Descriptor() ([]byte, []int) { - return fileDescriptor_8b85390a762df19f, []int{0} + return fileDescriptor_2548aa229a1f29bc, []int{0} } func (m *AccessTypeParam) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -142,7 +142,7 @@ func (m *AccessConfig) Reset() { *m = AccessConfig{} } func (m *AccessConfig) String() string { return proto.CompactTextString(m) } func (*AccessConfig) ProtoMessage() {} func (*AccessConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_8b85390a762df19f, []int{1} + return fileDescriptor_2548aa229a1f29bc, []int{1} } func (m *AccessConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -181,7 +181,7 @@ type Params struct { func (m *Params) Reset() { *m = Params{} } func (*Params) ProtoMessage() {} func (*Params) Descriptor() ([]byte, []int) { - return fileDescriptor_8b85390a762df19f, []int{2} + return fileDescriptor_2548aa229a1f29bc, []int{2} } func (m *Params) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -216,7 +216,8 @@ type CodeInfo struct { CodeHash []byte `protobuf:"bytes,1,opt,name=code_hash,json=codeHash,proto3" json:"code_hash,omitempty"` // Creator address who initially stored the code Creator string `protobuf:"bytes,2,opt,name=creator,proto3" json:"creator,omitempty"` - // Source is a valid absolute HTTPS URI to the contract's source code, optional + // Source is a valid absolute HTTPS URI to the contract's source code, + // optional Source string `protobuf:"bytes,3,opt,name=source,proto3" json:"source,omitempty"` // Builder is a valid docker image name with tag, optional Builder string `protobuf:"bytes,4,opt,name=builder,proto3" json:"builder,omitempty"` @@ -228,7 +229,7 @@ func (m *CodeInfo) Reset() { *m = CodeInfo{} } func (m *CodeInfo) String() string { return proto.CompactTextString(m) } func (*CodeInfo) ProtoMessage() {} func (*CodeInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_8b85390a762df19f, []int{3} + return fileDescriptor_2548aa229a1f29bc, []int{3} } func (m *CodeInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -268,7 +269,8 @@ type ContractInfo struct { // Label is optional metadata to be stored with a contract instance. Label string `protobuf:"bytes,4,opt,name=label,proto3" json:"label,omitempty"` // Created Tx position when the contract was instantiated. - // This data should kept internal and not be exposed via query results. Just use for sorting + // This data should kept internal and not be exposed via query results. Just + // use for sorting Created *AbsoluteTxPosition `protobuf:"bytes,5,opt,name=created,proto3" json:"created,omitempty"` IBCPortID string `protobuf:"bytes,6,opt,name=ibc_port_id,json=ibcPortId,proto3" json:"ibc_port_id,omitempty"` } @@ -277,7 +279,7 @@ func (m *ContractInfo) Reset() { *m = ContractInfo{} } func (m *ContractInfo) String() string { return proto.CompactTextString(m) } func (*ContractInfo) ProtoMessage() {} func (*ContractInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_8b85390a762df19f, []int{4} + return fileDescriptor_2548aa229a1f29bc, []int{4} } func (m *ContractInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -320,7 +322,7 @@ func (m *ContractCodeHistoryEntry) Reset() { *m = ContractCodeHistoryEnt func (m *ContractCodeHistoryEntry) String() string { return proto.CompactTextString(m) } func (*ContractCodeHistoryEntry) ProtoMessage() {} func (*ContractCodeHistoryEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_8b85390a762df19f, []int{5} + return fileDescriptor_2548aa229a1f29bc, []int{5} } func (m *ContractCodeHistoryEntry) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -349,11 +351,13 @@ func (m *ContractCodeHistoryEntry) XXX_DiscardUnknown() { var xxx_messageInfo_ContractCodeHistoryEntry proto.InternalMessageInfo -// AbsoluteTxPosition is a unique transaction position that allows for global ordering of transactions. +// AbsoluteTxPosition is a unique transaction position that allows for global +// ordering of transactions. type AbsoluteTxPosition struct { // BlockHeight is the block the contract was created at BlockHeight uint64 `protobuf:"varint,1,opt,name=block_height,json=blockHeight,proto3" json:"block_height,omitempty"` - // TxIndex is a monotonic counter within the block (actual transaction index, or gas consumed) + // TxIndex is a monotonic counter within the block (actual transaction index, + // or gas consumed) TxIndex uint64 `protobuf:"varint,2,opt,name=tx_index,json=txIndex,proto3" json:"tx_index,omitempty"` } @@ -361,7 +365,7 @@ func (m *AbsoluteTxPosition) Reset() { *m = AbsoluteTxPosition{} } func (m *AbsoluteTxPosition) String() string { return proto.CompactTextString(m) } func (*AbsoluteTxPosition) ProtoMessage() {} func (*AbsoluteTxPosition) Descriptor() ([]byte, []int) { - return fileDescriptor_8b85390a762df19f, []int{6} + return fileDescriptor_2548aa229a1f29bc, []int{6} } func (m *AbsoluteTxPosition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -402,7 +406,7 @@ func (m *Model) Reset() { *m = Model{} } func (m *Model) String() string { return proto.CompactTextString(m) } func (*Model) ProtoMessage() {} func (*Model) Descriptor() ([]byte, []int) { - return fileDescriptor_8b85390a762df19f, []int{7} + return fileDescriptor_2548aa229a1f29bc, []int{7} } func (m *Model) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -444,80 +448,81 @@ func init() { proto.RegisterType((*Model)(nil), "cosmwasm.wasm.v1beta1.Model") } -func init() { proto.RegisterFile("x/wasm/types/types.proto", fileDescriptor_8b85390a762df19f) } - -var fileDescriptor_8b85390a762df19f = []byte{ - // 1119 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0xcd, 0x8f, 0xdb, 0x44, - 0x14, 0x8f, 0x93, 0xec, 0xd7, 0x74, 0x69, 0xd3, 0xa1, 0x4b, 0xd3, 0x50, 0x92, 0xd4, 0xe5, 0x63, - 0xfb, 0x41, 0x42, 0x0b, 0xa2, 0xa8, 0xb7, 0xc4, 0x31, 0x5d, 0x57, 0x6c, 0x12, 0x4d, 0xb2, 0xb4, - 0x8b, 0x84, 0xac, 0xb1, 0x3d, 0x9b, 0x1d, 0x6a, 0x7b, 0x22, 0xcf, 0xa4, 0x4d, 0xfa, 0x17, 0xa0, - 0xe5, 0x82, 0x38, 0x71, 0x20, 0x12, 0x12, 0x08, 0xf5, 0x4f, 0xe9, 0x05, 0xa9, 0x47, 0x4e, 0x11, - 0xa4, 0x42, 0x82, 0xeb, 0x72, 0xeb, 0x09, 0x79, 0x26, 0xab, 0x58, 0xf4, 0x63, 0xc3, 0x25, 0x9a, - 0xf7, 0xe6, 0xfd, 0x7e, 0xef, 0xfd, 0xde, 0xcc, 0x73, 0x06, 0xe4, 0x87, 0xd5, 0x07, 0x98, 0x07, - 0x55, 0x31, 0xea, 0x13, 0xae, 0x7e, 0x2b, 0xfd, 0x88, 0x09, 0x06, 0x37, 0x5c, 0xc6, 0x83, 0x78, - 0xaf, 0x22, 0x7f, 0xee, 0x5f, 0x73, 0x88, 0xc0, 0xd7, 0x0a, 0x67, 0x7a, 0xac, 0xc7, 0x64, 0x44, - 0x35, 0x5e, 0xa9, 0x60, 0xdd, 0x01, 0xa7, 0x6a, 0xae, 0x4b, 0x38, 0xef, 0x8e, 0xfa, 0xa4, 0x8d, - 0x23, 0x1c, 0x40, 0x0b, 0x2c, 0xdd, 0xc7, 0xfe, 0x80, 0xe4, 0xb5, 0xb2, 0xb6, 0x79, 0xf2, 0xfa, - 0x85, 0xca, 0x0b, 0xf9, 0x2a, 0x73, 0x58, 0x3d, 0x77, 0x38, 0x29, 0xad, 0x8f, 0x70, 0xe0, 0xdf, - 0xd4, 0x25, 0x52, 0x47, 0x8a, 0xe1, 0x66, 0xf6, 0xfb, 0x1f, 0x4b, 0x9a, 0xfe, 0x83, 0x06, 0xd6, - 0x55, 0xb4, 0xc1, 0xc2, 0x3d, 0xda, 0x83, 0x77, 0x01, 0xe8, 0x93, 0x28, 0xa0, 0x9c, 0x53, 0x16, - 0x2e, 0x9e, 0x66, 0xe3, 0x70, 0x52, 0x3a, 0xad, 0xd2, 0xcc, 0xe1, 0x3a, 0x4a, 0x70, 0xc1, 0xab, - 0x60, 0x05, 0x7b, 0x5e, 0x44, 0x38, 0xcf, 0xa7, 0xcb, 0xda, 0xe6, 0x5a, 0x1d, 0x1e, 0x4e, 0x4a, - 0x27, 0x15, 0x66, 0xb6, 0xa1, 0xa3, 0xa3, 0x90, 0x59, 0x79, 0x7f, 0xa6, 0xc1, 0xb2, 0x54, 0xce, - 0xa1, 0x00, 0xd0, 0x65, 0x1e, 0xb1, 0x07, 0x7d, 0x9f, 0x61, 0xcf, 0xc6, 0x32, 0xb7, 0x2c, 0xf0, - 0xc4, 0xf5, 0x8b, 0xaf, 0x2c, 0x50, 0x29, 0xab, 0x5f, 0x78, 0x3c, 0x29, 0xa5, 0x0e, 0x27, 0xa5, - 0x73, 0x2a, 0xe5, 0xf3, 0x64, 0x3a, 0xca, 0xc5, 0xce, 0x1d, 0xe9, 0x53, 0x50, 0xf8, 0x9d, 0x06, - 0x8a, 0x34, 0xe4, 0x02, 0x87, 0x82, 0x62, 0x41, 0x6c, 0x8f, 0xec, 0xe1, 0x81, 0x2f, 0xec, 0x44, - 0x8f, 0xd2, 0x8b, 0xf6, 0xe8, 0xd2, 0xe1, 0xa4, 0xf4, 0x8e, 0x4a, 0xfe, 0x6a, 0x4a, 0x1d, 0x9d, - 0x4f, 0x04, 0x34, 0xd4, 0x7e, 0x7b, 0xde, 0xc9, 0xdb, 0x00, 0x06, 0x78, 0x68, 0xc7, 0x79, 0x6c, - 0x29, 0x83, 0xd3, 0x87, 0x24, 0x9f, 0x29, 0x6b, 0x9b, 0xd9, 0xfa, 0x5b, 0x73, 0x85, 0xcf, 0xc7, - 0xe8, 0xe8, 0x54, 0x80, 0x87, 0x77, 0x30, 0x0f, 0x0c, 0xe6, 0x91, 0x0e, 0x7d, 0xa8, 0xae, 0x41, - 0x4a, 0xff, 0x55, 0x03, 0xab, 0xb1, 0xcb, 0x0a, 0xf7, 0x18, 0x7c, 0x13, 0xac, 0x49, 0xc4, 0x3e, - 0xe6, 0xfb, 0xb2, 0xc1, 0xeb, 0x68, 0x35, 0x76, 0x6c, 0x61, 0xbe, 0x0f, 0xf3, 0x60, 0xc5, 0x8d, - 0x08, 0x16, 0x2c, 0x52, 0xa7, 0x88, 0x8e, 0x4c, 0xf8, 0x06, 0x58, 0xe6, 0x6c, 0x10, 0xb9, 0xaa, - 0x92, 0x35, 0x34, 0xb3, 0x62, 0x84, 0x33, 0xa0, 0xbe, 0x47, 0xa2, 0x7c, 0x56, 0x21, 0x66, 0x26, - 0xbc, 0x0b, 0x60, 0xb2, 0x11, 0xae, 0x3c, 0xa7, 0xfc, 0xd2, 0xe2, 0x47, 0x9a, 0x8d, 0x8f, 0x14, - 0x9d, 0x4e, 0x90, 0xa8, 0x0d, 0xfd, 0x1f, 0x0d, 0xac, 0x1b, 0x2c, 0x14, 0x11, 0x76, 0x85, 0xd4, - 0x74, 0x11, 0xac, 0x48, 0x4d, 0xd4, 0x93, 0x8a, 0xb2, 0x75, 0x30, 0x9d, 0x94, 0x96, 0xa5, 0xe4, - 0x06, 0x5a, 0x8e, 0xb7, 0x2c, 0xef, 0x15, 0xda, 0xce, 0x80, 0x25, 0xec, 0x05, 0x34, 0x9c, 0x49, - 0x53, 0x46, 0xec, 0xf5, 0xb1, 0x43, 0xfc, 0x99, 0x2e, 0x65, 0x40, 0x63, 0xc6, 0x42, 0xbc, 0x99, - 0x94, 0x4b, 0x2f, 0x93, 0xe2, 0x70, 0xe6, 0x0f, 0x04, 0xe9, 0x0e, 0xdb, 0x8c, 0x53, 0x41, 0x59, - 0x88, 0x8e, 0x90, 0xf0, 0x7d, 0x70, 0x82, 0x3a, 0xae, 0xdd, 0x67, 0x91, 0x88, 0x6b, 0x5e, 0x96, - 0x03, 0xf3, 0xda, 0x74, 0x52, 0x5a, 0xb3, 0xea, 0x46, 0x9b, 0x45, 0xc2, 0x6a, 0xa0, 0x35, 0xea, - 0xb8, 0x72, 0xe9, 0xdd, 0xcc, 0xfe, 0x15, 0x4f, 0xcb, 0x37, 0x69, 0x90, 0x3f, 0x52, 0x1d, 0x4b, - 0xdb, 0xa2, 0x5c, 0xb0, 0x68, 0x64, 0x86, 0x22, 0x1a, 0xc1, 0x1d, 0xb0, 0xc6, 0xfa, 0x24, 0xc2, - 0x62, 0x3e, 0xd7, 0x37, 0x5e, 0x52, 0xd8, 0x0b, 0x38, 0x5a, 0x47, 0xd0, 0xf8, 0x26, 0xa3, 0x39, - 0x53, 0xb2, 0xb1, 0xe9, 0x97, 0x36, 0xd6, 0x00, 0x2b, 0x83, 0xbe, 0x27, 0x5b, 0x92, 0xf9, 0xdf, - 0x2d, 0x99, 0x21, 0x61, 0x05, 0x64, 0x02, 0xde, 0x93, 0xbd, 0x5e, 0xaf, 0x9f, 0x7f, 0x36, 0x29, - 0xe5, 0x49, 0xe8, 0x32, 0x8f, 0x86, 0xbd, 0xea, 0x57, 0x9c, 0x85, 0x15, 0x84, 0x1f, 0x6c, 0x13, - 0xce, 0x71, 0x8f, 0xa0, 0x38, 0x50, 0x47, 0x00, 0x3e, 0x4f, 0x07, 0x2f, 0x80, 0x75, 0xc7, 0x67, - 0xee, 0x3d, 0x7b, 0x9f, 0xd0, 0xde, 0xbe, 0x50, 0xb7, 0x01, 0x9d, 0x90, 0xbe, 0x2d, 0xe9, 0x82, - 0xe7, 0xc0, 0xaa, 0x18, 0xda, 0x34, 0xf4, 0xc8, 0x50, 0x69, 0x42, 0x2b, 0x62, 0x68, 0xc5, 0xa6, - 0x4e, 0xc1, 0xd2, 0x36, 0xf3, 0x88, 0x0f, 0x6f, 0x83, 0xcc, 0x3d, 0x32, 0x52, 0xd3, 0x51, 0xff, - 0xe4, 0xd9, 0xa4, 0xf4, 0x51, 0x8f, 0x8a, 0xfd, 0x81, 0x53, 0x71, 0x59, 0x50, 0x15, 0x24, 0xf4, - 0xe2, 0x69, 0x0d, 0x45, 0x72, 0xe9, 0x53, 0x87, 0x57, 0x9d, 0x91, 0x20, 0xbc, 0xb2, 0x45, 0x86, - 0xf5, 0x78, 0x81, 0x62, 0x92, 0xf8, 0x1a, 0xa9, 0x8f, 0x7a, 0x5a, 0xce, 0x9a, 0x32, 0x2e, 0xff, - 0xad, 0x01, 0x30, 0xff, 0x78, 0xc0, 0x8f, 0xc1, 0xd9, 0x9a, 0x61, 0x98, 0x9d, 0x8e, 0xdd, 0xdd, - 0x6d, 0x9b, 0xf6, 0x4e, 0xb3, 0xd3, 0x36, 0x0d, 0xeb, 0x53, 0xcb, 0x6c, 0xe4, 0x52, 0x85, 0x73, - 0x07, 0xe3, 0xf2, 0xc6, 0x3c, 0x78, 0x27, 0xe4, 0x7d, 0xe2, 0xd2, 0x3d, 0x4a, 0x3c, 0x78, 0x15, - 0xc0, 0x24, 0xae, 0xd9, 0xaa, 0xb7, 0x1a, 0xbb, 0x39, 0xad, 0x70, 0xe6, 0x60, 0x5c, 0xce, 0xcd, - 0x21, 0x4d, 0xe6, 0x30, 0x6f, 0x04, 0x6f, 0x80, 0x7c, 0x32, 0xba, 0xd5, 0xfc, 0x6c, 0xd7, 0xae, - 0x35, 0x1a, 0xc8, 0xec, 0x74, 0x72, 0xe9, 0xff, 0xa6, 0x69, 0x85, 0xfe, 0xa8, 0xa6, 0x3e, 0xd7, - 0xf0, 0x3a, 0xd8, 0x48, 0x02, 0xcd, 0xcf, 0x4d, 0xb4, 0x2b, 0x33, 0x65, 0x0a, 0x67, 0x0f, 0xc6, - 0xe5, 0xd7, 0xe7, 0x28, 0xf3, 0x3e, 0x89, 0x46, 0x71, 0xb2, 0xc2, 0xea, 0xd7, 0x3f, 0x15, 0x53, - 0x8f, 0x7e, 0x2e, 0xa6, 0x2e, 0xff, 0x92, 0x01, 0xe5, 0xe3, 0x2e, 0x1d, 0x24, 0xe0, 0x03, 0xa3, - 0xd5, 0xec, 0xa2, 0x9a, 0xd1, 0xb5, 0x8d, 0x56, 0xc3, 0xb4, 0xb7, 0xac, 0x4e, 0xb7, 0x85, 0x76, - 0xed, 0x56, 0xdb, 0x44, 0xb5, 0xae, 0xd5, 0x6a, 0xbe, 0xa8, 0x35, 0xd5, 0x83, 0x71, 0xf9, 0xca, - 0x71, 0xdc, 0xc9, 0x86, 0xdd, 0x01, 0x97, 0x16, 0x4a, 0x63, 0x35, 0xad, 0x6e, 0x4e, 0x2b, 0x6c, - 0x1e, 0x8c, 0xcb, 0x6f, 0x1f, 0xc7, 0x6f, 0x85, 0x54, 0xc0, 0x2f, 0xc1, 0xd5, 0x85, 0x88, 0xb7, - 0xad, 0x5b, 0xa8, 0xd6, 0x35, 0x73, 0xe9, 0xc2, 0x95, 0x83, 0x71, 0xf9, 0xbd, 0xe3, 0xb8, 0xb7, - 0x69, 0x2f, 0xc2, 0x82, 0x2c, 0x4c, 0x7f, 0xcb, 0x6c, 0x9a, 0x1d, 0xab, 0x93, 0xcb, 0x2c, 0x46, - 0x7f, 0x8b, 0x84, 0x84, 0x53, 0x5e, 0xc8, 0xc6, 0x87, 0x55, 0xdf, 0x7a, 0xfc, 0x47, 0x31, 0xf5, - 0x68, 0x5a, 0xd4, 0x1e, 0x4f, 0x8b, 0xda, 0x93, 0x69, 0x51, 0xfb, 0x7d, 0x5a, 0xd4, 0xbe, 0x7d, - 0x5a, 0x4c, 0x3d, 0x79, 0x5a, 0x4c, 0xfd, 0xf6, 0xb4, 0x98, 0xfa, 0xe2, 0xdd, 0xc4, 0x1c, 0x18, - 0x8c, 0x07, 0xf1, 0x9f, 0x8d, 0x7c, 0x0d, 0x79, 0xd5, 0xe4, 0xab, 0xc8, 0x59, 0x96, 0x6f, 0x9c, - 0x0f, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xe7, 0xbc, 0x7e, 0xd9, 0x2c, 0x09, 0x00, 0x00, +func init() { proto.RegisterFile("cosmwasm/wasm/v1beta1/types.proto", fileDescriptor_2548aa229a1f29bc) } + +var fileDescriptor_2548aa229a1f29bc = []byte{ + // 1123 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0xcd, 0x6f, 0x1b, 0x45, + 0x14, 0xf7, 0xda, 0xce, 0xd7, 0x34, 0xb4, 0xee, 0xd0, 0x50, 0xd7, 0x14, 0xdb, 0xd9, 0xf2, 0x91, + 0x7e, 0x60, 0xd3, 0x82, 0x28, 0xea, 0xcd, 0x5e, 0x2f, 0xcd, 0x56, 0xc4, 0xb6, 0xc6, 0x0e, 0x6d, + 0x90, 0xd0, 0x6a, 0x76, 0x77, 0xe2, 0x0c, 0xdd, 0xdd, 0xb1, 0x76, 0xc6, 0xad, 0xdd, 0xbf, 0x00, + 0x85, 0x0b, 0xe2, 0xc4, 0x81, 0x48, 0x48, 0x20, 0xd4, 0x3f, 0xa5, 0x17, 0xa4, 0x1e, 0x39, 0x59, + 0x90, 0x0a, 0x09, 0xae, 0xe1, 0xd6, 0x13, 0xda, 0x19, 0x5b, 0x5e, 0xd1, 0x36, 0x31, 0x97, 0xd5, + 0xbc, 0x37, 0xef, 0xf7, 0x7b, 0xef, 0xf7, 0x66, 0xde, 0x6a, 0xc0, 0xba, 0xcb, 0x78, 0xf0, 0x10, + 0xf3, 0xa0, 0x2a, 0x3f, 0x0f, 0xae, 0x3b, 0x44, 0xe0, 0xeb, 0x55, 0x31, 0xea, 0x13, 0x5e, 0xe9, + 0x47, 0x4c, 0x30, 0xb8, 0x36, 0x0d, 0xa9, 0xc8, 0xcf, 0x24, 0xa4, 0x70, 0xae, 0xc7, 0x7a, 0x4c, + 0x46, 0x54, 0xe3, 0x95, 0x0a, 0xd6, 0x1d, 0x70, 0xa6, 0xe6, 0xba, 0x84, 0xf3, 0xee, 0xa8, 0x4f, + 0xda, 0x38, 0xc2, 0x01, 0xb4, 0xc0, 0xc2, 0x03, 0xec, 0x0f, 0x48, 0x5e, 0x2b, 0x6b, 0x1b, 0xa7, + 0x6f, 0xac, 0x57, 0x5e, 0xca, 0x57, 0x99, 0xc1, 0xea, 0xb9, 0xa3, 0x71, 0x69, 0x75, 0x84, 0x03, + 0xff, 0x96, 0x2e, 0x91, 0x3a, 0x52, 0x0c, 0xb7, 0xb2, 0xdf, 0xff, 0x58, 0xd2, 0xf4, 0x1f, 0x34, + 0xb0, 0xaa, 0xa2, 0x0d, 0x16, 0xee, 0xd2, 0x1e, 0xbc, 0x07, 0x40, 0x9f, 0x44, 0x01, 0xe5, 0x9c, + 0xb2, 0x70, 0xfe, 0x34, 0x6b, 0x47, 0xe3, 0xd2, 0x59, 0x95, 0x66, 0x06, 0xd7, 0x51, 0x82, 0x0b, + 0x5e, 0x03, 0x4b, 0xd8, 0xf3, 0x22, 0xc2, 0x79, 0x3e, 0x5d, 0xd6, 0x36, 0x56, 0xea, 0xf0, 0x68, + 0x5c, 0x3a, 0xad, 0x30, 0x93, 0x0d, 0x1d, 0x4d, 0x43, 0x26, 0xe5, 0xfd, 0x99, 0x06, 0x8b, 0x52, + 0x39, 0x87, 0x02, 0x40, 0x97, 0x79, 0xc4, 0x1e, 0xf4, 0x7d, 0x86, 0x3d, 0x1b, 0xcb, 0xdc, 0xb2, + 0xc0, 0x53, 0x37, 0x2e, 0x1d, 0x5b, 0xa0, 0x52, 0x56, 0x5f, 0x7f, 0x32, 0x2e, 0xa5, 0x8e, 0xc6, + 0xa5, 0x0b, 0x2a, 0xe5, 0x8b, 0x64, 0x3a, 0xca, 0xc5, 0xce, 0x6d, 0xe9, 0x53, 0x50, 0xf8, 0x9d, + 0x06, 0x8a, 0x34, 0xe4, 0x02, 0x87, 0x82, 0x62, 0x41, 0x6c, 0x8f, 0xec, 0xe2, 0x81, 0x2f, 0xec, + 0x44, 0x8f, 0xd2, 0xf3, 0xf6, 0xe8, 0xf2, 0xd1, 0xb8, 0xf4, 0x8e, 0x4a, 0x7e, 0x3c, 0xa5, 0x8e, + 0x2e, 0x26, 0x02, 0x1a, 0x6a, 0xbf, 0x3d, 0xeb, 0xe4, 0x1d, 0x00, 0x03, 0x3c, 0xb4, 0xe3, 0x3c, + 0xb6, 0x94, 0xc1, 0xe9, 0x23, 0x92, 0xcf, 0x94, 0xb5, 0x8d, 0x6c, 0xfd, 0xad, 0x99, 0xc2, 0x17, + 0x63, 0x74, 0x74, 0x26, 0xc0, 0xc3, 0xbb, 0x98, 0x07, 0x06, 0xf3, 0x48, 0x87, 0x3e, 0x52, 0xd7, + 0x20, 0xa5, 0xff, 0xaa, 0x81, 0xe5, 0xd8, 0x65, 0x85, 0xbb, 0x0c, 0xbe, 0x09, 0x56, 0x24, 0x62, + 0x0f, 0xf3, 0x3d, 0xd9, 0xe0, 0x55, 0xb4, 0x1c, 0x3b, 0x36, 0x31, 0xdf, 0x83, 0x79, 0xb0, 0xe4, + 0x46, 0x04, 0x0b, 0x16, 0xa9, 0x53, 0x44, 0x53, 0x13, 0xbe, 0x01, 0x16, 0x39, 0x1b, 0x44, 0xae, + 0xaa, 0x64, 0x05, 0x4d, 0xac, 0x18, 0xe1, 0x0c, 0xa8, 0xef, 0x91, 0x28, 0x9f, 0x55, 0x88, 0x89, + 0x09, 0xef, 0x01, 0x98, 0x6c, 0x84, 0x2b, 0xcf, 0x29, 0xbf, 0x30, 0xff, 0x91, 0x66, 0xe3, 0x23, + 0x45, 0x67, 0x13, 0x24, 0x6a, 0x43, 0xff, 0x47, 0x03, 0xab, 0x06, 0x0b, 0x45, 0x84, 0x5d, 0x21, + 0x35, 0x5d, 0x02, 0x4b, 0x52, 0x13, 0xf5, 0xa4, 0xa2, 0x6c, 0x1d, 0x1c, 0x8e, 0x4b, 0x8b, 0x52, + 0x72, 0x03, 0x2d, 0xc6, 0x5b, 0x96, 0x77, 0x8c, 0xb6, 0x73, 0x60, 0x01, 0x7b, 0x01, 0x0d, 0x27, + 0xd2, 0x94, 0x11, 0x7b, 0x7d, 0xec, 0x10, 0x7f, 0xa2, 0x4b, 0x19, 0xd0, 0x98, 0xb0, 0x10, 0x6f, + 0x22, 0xe5, 0xf2, 0xab, 0xa4, 0x38, 0x9c, 0xf9, 0x03, 0x41, 0xba, 0xc3, 0x36, 0xe3, 0x54, 0x50, + 0x16, 0xa2, 0x29, 0x12, 0xbe, 0x0f, 0x4e, 0x51, 0xc7, 0xb5, 0xfb, 0x2c, 0x12, 0x71, 0xcd, 0x8b, + 0x72, 0x60, 0x5e, 0x3b, 0x1c, 0x97, 0x56, 0xac, 0xba, 0xd1, 0x66, 0x91, 0xb0, 0x1a, 0x68, 0x85, + 0x3a, 0xae, 0x5c, 0x7a, 0xb7, 0xb2, 0x7f, 0xc5, 0xd3, 0xf2, 0x4d, 0x1a, 0xe4, 0xa7, 0xaa, 0x63, + 0x69, 0x9b, 0x94, 0x0b, 0x16, 0x8d, 0xcc, 0x50, 0x44, 0x23, 0xb8, 0x0d, 0x56, 0x58, 0x9f, 0x44, + 0x58, 0xcc, 0xe6, 0xfa, 0xe6, 0x2b, 0x0a, 0x7b, 0x09, 0x47, 0x6b, 0x0a, 0x8d, 0x6f, 0x32, 0x9a, + 0x31, 0x25, 0x1b, 0x9b, 0x7e, 0x65, 0x63, 0x0d, 0xb0, 0x34, 0xe8, 0x7b, 0xb2, 0x25, 0x99, 0xff, + 0xdd, 0x92, 0x09, 0x12, 0x56, 0x40, 0x26, 0xe0, 0x3d, 0xd9, 0xeb, 0xd5, 0xfa, 0xc5, 0xe7, 0xe3, + 0x52, 0x9e, 0x84, 0x2e, 0xf3, 0x68, 0xd8, 0xab, 0x7e, 0xc5, 0x59, 0x58, 0x41, 0xf8, 0xe1, 0x16, + 0xe1, 0x1c, 0xf7, 0x08, 0x8a, 0x03, 0x75, 0x04, 0xe0, 0x8b, 0x74, 0x70, 0x1d, 0xac, 0x3a, 0x3e, + 0x73, 0xef, 0xdb, 0x7b, 0x84, 0xf6, 0xf6, 0x84, 0xba, 0x0d, 0xe8, 0x94, 0xf4, 0x6d, 0x4a, 0x17, + 0xbc, 0x00, 0x96, 0xc5, 0xd0, 0xa6, 0xa1, 0x47, 0x86, 0x4a, 0x13, 0x5a, 0x12, 0x43, 0x2b, 0x36, + 0x75, 0x0a, 0x16, 0xb6, 0x98, 0x47, 0x7c, 0x78, 0x07, 0x64, 0xee, 0x93, 0x91, 0x9a, 0x8e, 0xfa, + 0x27, 0xcf, 0xc7, 0xa5, 0x8f, 0x7a, 0x54, 0xec, 0x0d, 0x9c, 0x8a, 0xcb, 0x82, 0xaa, 0x20, 0xa1, + 0x17, 0x4f, 0x6b, 0x28, 0x92, 0x4b, 0x9f, 0x3a, 0xbc, 0xea, 0x8c, 0x04, 0xe1, 0x95, 0x4d, 0x32, + 0xac, 0xc7, 0x0b, 0x14, 0x93, 0xc4, 0xd7, 0x48, 0xfd, 0xd4, 0xd3, 0x72, 0xd6, 0x94, 0x71, 0xe5, + 0x6f, 0x0d, 0x80, 0xd9, 0xcf, 0x03, 0x7e, 0x0c, 0xce, 0xd7, 0x0c, 0xc3, 0xec, 0x74, 0xec, 0xee, + 0x4e, 0xdb, 0xb4, 0xb7, 0x9b, 0x9d, 0xb6, 0x69, 0x58, 0x9f, 0x5a, 0x66, 0x23, 0x97, 0x2a, 0x5c, + 0xd8, 0x3f, 0x28, 0xaf, 0xcd, 0x82, 0xb7, 0x43, 0xde, 0x27, 0x2e, 0xdd, 0xa5, 0xc4, 0x83, 0xd7, + 0x00, 0x4c, 0xe2, 0x9a, 0xad, 0x7a, 0xab, 0xb1, 0x93, 0xd3, 0x0a, 0xe7, 0xf6, 0x0f, 0xca, 0xb9, + 0x19, 0xa4, 0xc9, 0x1c, 0xe6, 0x8d, 0xe0, 0x4d, 0x90, 0x4f, 0x46, 0xb7, 0x9a, 0x9f, 0xed, 0xd8, + 0xb5, 0x46, 0x03, 0x99, 0x9d, 0x4e, 0x2e, 0xfd, 0xdf, 0x34, 0xad, 0xd0, 0x1f, 0xd5, 0xd4, 0xef, + 0x1a, 0xde, 0x00, 0x6b, 0x49, 0xa0, 0xf9, 0xb9, 0x89, 0x76, 0x64, 0xa6, 0x4c, 0xe1, 0xfc, 0xfe, + 0x41, 0xf9, 0xf5, 0x19, 0xca, 0x7c, 0x40, 0xa2, 0x51, 0x9c, 0xac, 0xb0, 0xfc, 0xf5, 0x4f, 0xc5, + 0xd4, 0xe3, 0x9f, 0x8b, 0xa9, 0x2b, 0xbf, 0x64, 0x40, 0xf9, 0xa4, 0x4b, 0x07, 0x09, 0xf8, 0xc0, + 0x68, 0x35, 0xbb, 0xa8, 0x66, 0x74, 0x6d, 0xa3, 0xd5, 0x30, 0xed, 0x4d, 0xab, 0xd3, 0x6d, 0xa1, + 0x1d, 0xbb, 0xd5, 0x36, 0x51, 0xad, 0x6b, 0xb5, 0x9a, 0x2f, 0x6b, 0x4d, 0x75, 0xff, 0xa0, 0x7c, + 0xf5, 0x24, 0xee, 0x64, 0xc3, 0xee, 0x82, 0xcb, 0x73, 0xa5, 0xb1, 0x9a, 0x56, 0x37, 0xa7, 0x15, + 0x36, 0xf6, 0x0f, 0xca, 0x6f, 0x9f, 0xc4, 0x6f, 0x85, 0x54, 0xc0, 0x2f, 0xc1, 0xb5, 0xb9, 0x88, + 0xb7, 0xac, 0xdb, 0xa8, 0xd6, 0x35, 0x73, 0xe9, 0xc2, 0xd5, 0xfd, 0x83, 0xf2, 0x7b, 0x27, 0x71, + 0x6f, 0xd1, 0x5e, 0x84, 0x05, 0x99, 0x9b, 0xfe, 0xb6, 0xd9, 0x34, 0x3b, 0x56, 0x27, 0x97, 0x99, + 0x8f, 0xfe, 0x36, 0x09, 0x09, 0xa7, 0xbc, 0x90, 0x8d, 0x0f, 0xab, 0xbe, 0xf9, 0xe4, 0x8f, 0x62, + 0xea, 0xf1, 0x61, 0x51, 0x7b, 0x72, 0x58, 0xd4, 0x9e, 0x1e, 0x16, 0xb5, 0xdf, 0x0f, 0x8b, 0xda, + 0xb7, 0xcf, 0x8a, 0xa9, 0xa7, 0xcf, 0x8a, 0xa9, 0xdf, 0x9e, 0x15, 0x53, 0x5f, 0xbc, 0x9b, 0x98, + 0x03, 0x83, 0xf1, 0xe0, 0xee, 0xf4, 0x3d, 0xe4, 0x55, 0x87, 0xea, 0x5d, 0x24, 0xdf, 0x43, 0xce, + 0xa2, 0x7c, 0xe3, 0x7c, 0xf8, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd8, 0xd8, 0x83, 0x31, 0x35, + 0x09, 0x00, 0x00, } func (this *AccessTypeParam) Equal(that interface{}) bool { @@ -1350,10 +1355,7 @@ func (m *AccessTypeParam) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTypes - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTypes } if (iNdEx + skippy) > l { @@ -1454,10 +1456,7 @@ func (m *AccessConfig) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTypes - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTypes } if (iNdEx + skippy) > l { @@ -1578,10 +1577,7 @@ func (m *Params) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTypes - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTypes } if (iNdEx + skippy) > l { @@ -1794,10 +1790,7 @@ func (m *CodeInfo) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTypes - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTypes } if (iNdEx + skippy) > l { @@ -2030,10 +2023,7 @@ func (m *ContractInfo) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTypes - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTypes } if (iNdEx + skippy) > l { @@ -2191,10 +2181,7 @@ func (m *ContractCodeHistoryEntry) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTypes - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTypes } if (iNdEx + skippy) > l { @@ -2282,10 +2269,7 @@ func (m *AbsoluteTxPosition) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTypes - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTypes } if (iNdEx + skippy) > l { @@ -2403,10 +2387,7 @@ func (m *Model) Unmarshal(dAtA []byte) error { if err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthTypes - } - if (iNdEx + skippy) < 0 { + if (skippy < 0) || (iNdEx+skippy) < 0 { return ErrInvalidLengthTypes } if (iNdEx + skippy) > l { diff --git a/x/wasm/types/types.proto b/x/wasm/types/types.proto deleted file mode 100644 index 64c538db1f..0000000000 --- a/x/wasm/types/types.proto +++ /dev/null @@ -1,115 +0,0 @@ -syntax = "proto3"; -package cosmwasm.wasm.v1beta1; - -import "gogoproto/gogo.proto"; - -option go_package = "github.com/CosmWasm/wasmd/x/wasm/types"; -option (gogoproto.goproto_getters_all) = false; -option (gogoproto.equal_all) = true; - -// AccessType permission types -enum AccessType { - option (gogoproto.goproto_enum_prefix) = false; - option (gogoproto.goproto_enum_stringer) = false; - // AccessTypeUnspecified placeholder for empty value - ACCESS_TYPE_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "AccessTypeUnspecified"]; - // AccessTypeNobody forbidden - ACCESS_TYPE_NOBODY = 1 [(gogoproto.enumvalue_customname) = "AccessTypeNobody"]; - // AccessTypeOnlyAddress restricted to an address - ACCESS_TYPE_ONLY_ADDRESS = 2 [(gogoproto.enumvalue_customname) = "AccessTypeOnlyAddress"]; - // AccessTypeEverybody unrestricted - ACCESS_TYPE_EVERYBODY = 3 [(gogoproto.enumvalue_customname) = "AccessTypeEverybody"]; -} - -// AccessTypeParam -message AccessTypeParam { - option (gogoproto.goproto_stringer) = true; - AccessType value = 1 [(gogoproto.moretags) = "yaml:\"value\""]; -} - -// AccessConfig access control type. -message AccessConfig { - option (gogoproto.goproto_stringer) = true; - AccessType permission = 1 [(gogoproto.moretags) = "yaml:\"permission\""]; - string address = 2 [(gogoproto.moretags) = "yaml:\"address\""]; -} - -// Params defines the set of wasm parameters. -message Params { - option (gogoproto.goproto_stringer) = false; - AccessConfig code_upload_access = 1 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"code_upload_access\""]; - AccessType instantiate_default_permission = 2 [(gogoproto.moretags) = "yaml:\"instantiate_default_permission\""]; - uint64 max_wasm_code_size = 3 [(gogoproto.moretags) = "yaml:\"max_wasm_code_size\""]; -} - -// CodeInfo is data for the uploaded contract WASM code -message CodeInfo { - // CodeHash is the unique identifier created by wasmvm - bytes code_hash = 1; - // Creator address who initially stored the code - string creator = 2; - // Source is a valid absolute HTTPS URI to the contract's source code, optional - string source = 3; - // Builder is a valid docker image name with tag, optional - string builder = 4; - // InstantiateConfig access control to apply on contract creation, optional - AccessConfig instantiate_config = 5 [(gogoproto.nullable) = false]; -} - -// ContractInfo stores a WASM contract instance -message ContractInfo { - option (gogoproto.equal) = true; - - // CodeID is the reference to the stored Wasm code - uint64 code_id = 1 [(gogoproto.customname) = "CodeID"]; - // Creator address who initially instantiated the contract - string creator = 2; - // Admin is an optional address that can execute migrations - string admin = 3; - // Label is optional metadata to be stored with a contract instance. - string label = 4; - // Created Tx position when the contract was instantiated. - // This data should kept internal and not be exposed via query results. Just use for sorting - AbsoluteTxPosition created = 5; - string ibc_port_id = 6 [(gogoproto.customname) = "IBCPortID"]; -} - -// ContractCodeHistoryOperationType actions that caused a code change -enum ContractCodeHistoryOperationType { - option (gogoproto.goproto_enum_prefix) = false; - // ContractCodeHistoryOperationTypeUnspecified placeholder for empty value - CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "ContractCodeHistoryOperationTypeUnspecified"]; - // ContractCodeHistoryOperationTypeInit on chain contract instantiation - CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT = 1 [(gogoproto.enumvalue_customname) = "ContractCodeHistoryOperationTypeInit"]; - // ContractCodeHistoryOperationTypeMigrate code migration - CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE = 2 [(gogoproto.enumvalue_customname) = "ContractCodeHistoryOperationTypeMigrate"]; - // ContractCodeHistoryOperationTypeGenesis based on genesis data - CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS = 3 [(gogoproto.enumvalue_customname) = "ContractCodeHistoryOperationTypeGenesis"]; -} - -// ContractCodeHistoryEntry metadata to a contract. -message ContractCodeHistoryEntry { - ContractCodeHistoryOperationType operation = 1; - // CodeID is the reference to the stored WASM code - uint64 code_id = 2 [(gogoproto.customname) = "CodeID"]; - // Updated Tx position when the operation was executed. - AbsoluteTxPosition updated = 3; - bytes msg = 4 [(gogoproto.casttype) = "encoding/json.RawMessage"]; - -} - -// AbsoluteTxPosition is a unique transaction position that allows for global ordering of transactions. -message AbsoluteTxPosition { - // BlockHeight is the block the contract was created at - uint64 block_height = 1; - // TxIndex is a monotonic counter within the block (actual transaction index, or gas consumed) - uint64 tx_index = 2; -} - -// Model is a struct that holds a KV pair -message Model { - // hex-encode key to read it better (this is often ascii) - bytes key = 1 [(gogoproto.casttype) = "github.com/tendermint/tendermint/libs/bytes.HexBytes"]; - // base64-encode raw value - bytes value = 2; -}