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;
-}