From 61c6cd2d4b3903da8bbb5d771dd815bdeb1c1000 Mon Sep 17 00:00:00 2001 From: Florent Lagrede Date: Mon, 12 Sep 2022 19:36:20 +0200 Subject: [PATCH] feat: add transfer ibc proto (#40) --- .../applications/transfer/v1/genesis.proto | 19 + .../ibc/applications/transfer/v1/query.proto | 105 + .../applications/transfer/v1/transfer.proto | 30 + .../ibc/applications/transfer/v1/tx.proto | 44 + .../api/proto/ibc/core/client/v1/client.proto | 103 + .../proto/ibc/core/client/v1/genesis.proto | 48 + .../api/proto/ibc/core/client/v1/query.proto | 207 ++ .../api/proto/ibc/core/client/v1/tx.proto | 100 + .../ibc/applications/transfer/v1/genesis.ts | 151 ++ .../ibc/applications/transfer/v1/query.ts | 964 ++++++++ .../ibc/applications/transfer/v1/transfer.ts | 227 ++ .../ibc/applications/transfer/v1/tx.ts | 309 +++ .../generated/ibc/core/client/v1/client.ts | 769 +++++++ .../generated/ibc/core/client/v1/genesis.ts | 458 ++++ .../src/generated/ibc/core/client/v1/query.ts | 1971 +++++++++++++++++ .../src/generated/ibc/core/client/v1/tx.ts | 920 ++++++++ 16 files changed, 6425 insertions(+) create mode 100644 packages/api/proto/ibc/applications/transfer/v1/genesis.proto create mode 100644 packages/api/proto/ibc/applications/transfer/v1/query.proto create mode 100644 packages/api/proto/ibc/applications/transfer/v1/transfer.proto create mode 100644 packages/api/proto/ibc/applications/transfer/v1/tx.proto create mode 100644 packages/api/proto/ibc/core/client/v1/client.proto create mode 100644 packages/api/proto/ibc/core/client/v1/genesis.proto create mode 100644 packages/api/proto/ibc/core/client/v1/query.proto create mode 100644 packages/api/proto/ibc/core/client/v1/tx.proto create mode 100644 packages/api/src/generated/ibc/applications/transfer/v1/genesis.ts create mode 100644 packages/api/src/generated/ibc/applications/transfer/v1/query.ts create mode 100644 packages/api/src/generated/ibc/applications/transfer/v1/transfer.ts create mode 100644 packages/api/src/generated/ibc/applications/transfer/v1/tx.ts create mode 100644 packages/api/src/generated/ibc/core/client/v1/client.ts create mode 100644 packages/api/src/generated/ibc/core/client/v1/genesis.ts create mode 100644 packages/api/src/generated/ibc/core/client/v1/query.ts create mode 100644 packages/api/src/generated/ibc/core/client/v1/tx.ts diff --git a/packages/api/proto/ibc/applications/transfer/v1/genesis.proto b/packages/api/proto/ibc/applications/transfer/v1/genesis.proto new file mode 100644 index 00000000..c42ebc0a --- /dev/null +++ b/packages/api/proto/ibc/applications/transfer/v1/genesis.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; + +package ibc.applications.transfer.v1; + +option go_package = "github.com/cosmos/ibc-go/v5/modules/apps/transfer/types"; + +import "ibc/applications/transfer/v1/transfer.proto"; +import "gogoproto/gogo.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]; +} \ No newline at end of file diff --git a/packages/api/proto/ibc/applications/transfer/v1/query.proto b/packages/api/proto/ibc/applications/transfer/v1/query.proto new file mode 100644 index 00000000..5b877832 --- /dev/null +++ b/packages/api/proto/ibc/applications/transfer/v1/query.proto @@ -0,0 +1,105 @@ +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/ibc-go/v5/modules/apps/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/apps/transfer/v1/denom_traces/{hash}"; + } + + // DenomTraces queries all denomination traces. + rpc DenomTraces(QueryDenomTracesRequest) returns (QueryDenomTracesResponse) { + option (google.api.http).get = "/ibc/apps/transfer/v1/denom_traces"; + } + + // Params queries all parameters of the ibc-transfer module. + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/ibc/apps/transfer/v1/params"; + } + + // DenomHash queries a denomination hash information. + rpc DenomHash(QueryDenomHashRequest) returns (QueryDenomHashResponse) { + option (google.api.http).get = "/ibc/apps/transfer/v1/denom_hashes/{trace}"; + } + + // EscrowAddress returns the escrow address for a particular port and channel id. + rpc EscrowAddress(QueryEscrowAddressRequest) returns (QueryEscrowAddressResponse) { + option (google.api.http).get = "/ibc/apps/transfer/v1/channels/{channel_id}/ports/{port_id}/escrow_address"; + } +} + +// QueryDenomTraceRequest is the request type for the Query/DenomTrace RPC +// method +message QueryDenomTraceRequest { + // hash (in hex format) or denom (full denom with ibc prefix) 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; +} + +// QueryDenomHashRequest is the request type for the Query/DenomHash RPC +// method +message QueryDenomHashRequest { + // The denomination trace ([port_id]/[channel_id])+/[denom] + string trace = 1; +} + +// QueryDenomHashResponse is the response type for the Query/DenomHash RPC +// method. +message QueryDenomHashResponse { + // hash (in hex format) of the denomination trace information. + string hash = 1; +} + +// QueryEscrowAddressRequest is the request type for the EscrowAddress RPC method. +message QueryEscrowAddressRequest { + // unique port identifier + string port_id = 1; + // unique channel identifier + string channel_id = 2; +} + +// QueryEscrowAddressResponse is the response type of the EscrowAddress RPC method. +message QueryEscrowAddressResponse { + // the escrow account address + string escrow_address = 1; +} \ No newline at end of file diff --git a/packages/api/proto/ibc/applications/transfer/v1/transfer.proto b/packages/api/proto/ibc/applications/transfer/v1/transfer.proto new file mode 100644 index 00000000..17b2b7ff --- /dev/null +++ b/packages/api/proto/ibc/applications/transfer/v1/transfer.proto @@ -0,0 +1,30 @@ +syntax = "proto3"; + +package ibc.applications.transfer.v1; + +option go_package = "github.com/cosmos/ibc-go/v5/modules/apps/transfer/types"; + +import "gogoproto/gogo.proto"; + +// 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\""]; +} \ No newline at end of file diff --git a/packages/api/proto/ibc/applications/transfer/v1/tx.proto b/packages/api/proto/ibc/applications/transfer/v1/tx.proto new file mode 100644 index 00000000..19f1d8a8 --- /dev/null +++ b/packages/api/proto/ibc/applications/transfer/v1/tx.proto @@ -0,0 +1,44 @@ +syntax = "proto3"; + +package ibc.applications.transfer.v1; + +option go_package = "github.com/cosmos/ibc-go/v5/modules/apps/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/ibc/tree/master/spec/app/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 absolute nanoseconds since unix epoch. + // 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 {} \ No newline at end of file diff --git a/packages/api/proto/ibc/core/client/v1/client.proto b/packages/api/proto/ibc/core/client/v1/client.proto new file mode 100644 index 00000000..d443fd0f --- /dev/null +++ b/packages/api/proto/ibc/core/client/v1/client.proto @@ -0,0 +1,103 @@ +syntax = "proto3"; + +package ibc.core.client.v1; + +option go_package = "github.com/cosmos/ibc-go/v5/modules/core/02-client/types"; + +import "gogoproto/gogo.proto"; +import "google/protobuf/any.proto"; +import "cosmos/upgrade/v1beta1/upgrade.proto"; +import "cosmos_proto/cosmos.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 substitute +// client's latest consensus state is copied over to the subject client. The proposal +// handler may fail if the subject and the substitute do not match in client and +// chain parameters (with exception to latest height, frozen height, and chain-id). +message ClientUpdateProposal { + option (gogoproto.goproto_getters) = false; + option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; + // 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 subject_client_id = 3 [(gogoproto.moretags) = "yaml:\"subject_client_id\""]; + // the substitute client identifier for the client standing in for the subject + // client + string substitute_client_id = 4 [(gogoproto.moretags) = "yaml:\"substitute_client_id\""]; +} + +// UpgradeProposal is a gov Content type for initiating an IBC breaking +// upgrade. +message UpgradeProposal { + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + option (gogoproto.equal) = true; + option (cosmos_proto.implements_interface) = "cosmos.gov.v1beta1.Content"; + + string title = 1; + string description = 2; + cosmos.upgrade.v1beta1.Plan plan = 3 [(gogoproto.nullable) = false]; + + // An UpgradedClientState must be provided to perform an IBC breaking upgrade. + // 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 = 4 [(gogoproto.moretags) = "yaml:\"upgraded_client_state\""]; +} + +// 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\""]; +} \ No newline at end of file diff --git a/packages/api/proto/ibc/core/client/v1/genesis.proto b/packages/api/proto/ibc/core/client/v1/genesis.proto new file mode 100644 index 00000000..437d2050 --- /dev/null +++ b/packages/api/proto/ibc/core/client/v1/genesis.proto @@ -0,0 +1,48 @@ +syntax = "proto3"; + +package ibc.core.client.v1; + +option go_package = "github.com/cosmos/ibc-go/v5/modules/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/packages/api/proto/ibc/core/client/v1/query.proto b/packages/api/proto/ibc/core/client/v1/query.proto new file mode 100644 index 00000000..10ea9487 --- /dev/null +++ b/packages/api/proto/ibc/core/client/v1/query.proto @@ -0,0 +1,207 @@ +syntax = "proto3"; + +package ibc.core.client.v1; + +option go_package = "github.com/cosmos/ibc-go/v5/modules/core/02-client/types"; + +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"; + +// 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/v1/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/v1/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/v1/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/v1/consensus_states/{client_id}"; + } + + // ConsensusStateHeights queries the height of every consensus states associated with a given client. + rpc ConsensusStateHeights(QueryConsensusStateHeightsRequest) returns (QueryConsensusStateHeightsResponse) { + option (google.api.http).get = "/ibc/core/client/v1/consensus_states/{client_id}/heights"; + } + + // Status queries the status of an IBC client. + rpc ClientStatus(QueryClientStatusRequest) returns (QueryClientStatusResponse) { + option (google.api.http).get = "/ibc/core/client/v1/client_status/{client_id}"; + } + + // ClientParams queries all parameters of the ibc client. + rpc ClientParams(QueryClientParamsRequest) returns (QueryClientParamsResponse) { + option (google.api.http).get = "/ibc/client/v1/params"; + } + + // UpgradedClientState queries an Upgraded IBC light client. + rpc UpgradedClientState(QueryUpgradedClientStateRequest) returns (QueryUpgradedClientStateResponse) { + option (google.api.http).get = "/ibc/core/client/v1/upgraded_client_states"; + } + + // UpgradedConsensusState queries an Upgraded IBC consensus state. + rpc UpgradedConsensusState(QueryUpgradedConsensusStateRequest) returns (QueryUpgradedConsensusStateResponse) { + option (google.api.http).get = "/ibc/core/client/v1/upgraded_consensus_states"; + } +} + +// 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; +} + +// QueryConsensusStateHeightsRequest is the request type for Query/ConsensusStateHeights +// RPC method. +message QueryConsensusStateHeightsRequest { + // client identifier + string client_id = 1; + // pagination request + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryConsensusStateHeightsResponse is the response type for the +// Query/ConsensusStateHeights RPC method +message QueryConsensusStateHeightsResponse { + // consensus state heights + repeated Height consensus_state_heights = 1 [(gogoproto.nullable) = false]; + // pagination response + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryClientStatusRequest is the request type for the Query/ClientStatus RPC +// method +message QueryClientStatusRequest { + // client unique identifier + string client_id = 1; +} + +// QueryClientStatusResponse is the response type for the Query/ClientStatus RPC +// method. It returns the current status of the IBC client. +message QueryClientStatusResponse { + string status = 1; +} + +// 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; +} + +// QueryUpgradedClientStateRequest is the request type for the +// Query/UpgradedClientState RPC method +message QueryUpgradedClientStateRequest {} + +// QueryUpgradedClientStateResponse is the response type for the +// Query/UpgradedClientState RPC method. +message QueryUpgradedClientStateResponse { + // client state associated with the request identifier + google.protobuf.Any upgraded_client_state = 1; +} + +// QueryUpgradedConsensusStateRequest is the request type for the +// Query/UpgradedConsensusState RPC method +message QueryUpgradedConsensusStateRequest {} + +// QueryUpgradedConsensusStateResponse is the response type for the +// Query/UpgradedConsensusState RPC method. +message QueryUpgradedConsensusStateResponse { + // Consensus state associated with the request identifier + google.protobuf.Any upgraded_consensus_state = 1; +} \ No newline at end of file diff --git a/packages/api/proto/ibc/core/client/v1/tx.proto b/packages/api/proto/ibc/core/client/v1/tx.proto new file mode 100644 index 00000000..ae225f43 --- /dev/null +++ b/packages/api/proto/ibc/core/client/v1/tx.proto @@ -0,0 +1,100 @@ +syntax = "proto3"; + +package ibc.core.client.v1; + +option go_package = "github.com/cosmos/ibc-go/v5/modules/core/02-client/types"; + +import "gogoproto/gogo.proto"; +import "google/protobuf/any.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 client message. +message MsgUpdateClient { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // client unique identifier + string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\""]; + // client message to update the light client + google.protobuf.Any client_message = 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. +// Warning: DEPRECATED +message MsgSubmitMisbehaviour { + option (gogoproto.equal) = false; + option (gogoproto.goproto_getters) = false; + + // client unique identifier + string client_id = 1 [(gogoproto.moretags) = "yaml:\"client_id\"", deprecated = true]; + // misbehaviour used for freezing the light client + google.protobuf.Any misbehaviour = 2 [deprecated = true]; + // signer address + string signer = 3 [deprecated = true]; +} + +// MsgSubmitMisbehaviourResponse defines the Msg/SubmitMisbehaviour response +// type. +message MsgSubmitMisbehaviourResponse {} \ No newline at end of file diff --git a/packages/api/src/generated/ibc/applications/transfer/v1/genesis.ts b/packages/api/src/generated/ibc/applications/transfer/v1/genesis.ts new file mode 100644 index 00000000..c99ad4fa --- /dev/null +++ b/packages/api/src/generated/ibc/applications/transfer/v1/genesis.ts @@ -0,0 +1,151 @@ +/* eslint-disable */ +import { messageTypeRegistry } from '../../../../typeRegistry'; +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; +import { + Params, + DenomTrace, +} from '../../../../ibc/applications/transfer/v1/transfer'; + +export const protobufPackage = 'ibc.applications.transfer.v1'; + +/** GenesisState defines the ibc-transfer genesis state */ +export interface GenesisState { + $type: 'ibc.applications.transfer.v1.GenesisState'; + portId: string; + denomTraces: DenomTrace[]; + params?: Params; +} + +function createBaseGenesisState(): GenesisState { + return { + $type: 'ibc.applications.transfer.v1.GenesisState', + portId: '', + denomTraces: [], + params: undefined, + }; +} + +export const GenesisState = { + $type: 'ibc.applications.transfer.v1.GenesisState' as const, + + encode( + message: GenesisState, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.portId !== '') { + writer.uint32(10).string(message.portId); + } + for (const v of message.denomTraces) { + DenomTrace.encode(v!, writer.uint32(18).fork()).ldelim(); + } + if (message.params !== undefined) { + Params.encode(message.params, writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGenesisState(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.portId = reader.string(); + break; + case 2: + message.denomTraces.push(DenomTrace.decode(reader, reader.uint32())); + break; + case 3: + message.params = Params.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GenesisState { + return { + $type: GenesisState.$type, + portId: isSet(object.portId) ? String(object.portId) : '', + denomTraces: Array.isArray(object?.denomTraces) + ? object.denomTraces.map((e: any) => DenomTrace.fromJSON(e)) + : [], + params: isSet(object.params) ? Params.fromJSON(object.params) : undefined, + }; + }, + + toJSON(message: GenesisState): unknown { + const obj: any = {}; + message.portId !== undefined && (obj.portId = message.portId); + if (message.denomTraces) { + obj.denomTraces = message.denomTraces.map(e => + e ? DenomTrace.toJSON(e) : undefined, + ); + } else { + obj.denomTraces = []; + } + message.params !== undefined && + (obj.params = message.params ? Params.toJSON(message.params) : undefined); + return obj; + }, + + fromPartial, I>>( + object: I, + ): GenesisState { + const message = createBaseGenesisState(); + message.portId = object.portId ?? ''; + message.denomTraces = + object.denomTraces?.map(e => DenomTrace.fromPartial(e)) || []; + message.params = + object.params !== undefined && object.params !== null + ? Params.fromPartial(object.params) + : undefined; + return message; + }, +}; + +messageTypeRegistry.set(GenesisState.$type, GenesisState); + +type Builtin = + | Date + | Function + | Uint8Array + | string + | number + | boolean + | undefined; + +export type DeepPartial = T extends Builtin + ? T + : T extends Long + ? string | number | Long + : T extends Array + ? Array> + : T extends ReadonlyArray + ? ReadonlyArray> + : T extends {} + ? { [K in Exclude]?: DeepPartial } + : Partial; + +type KeysOfUnion = T extends T ? keyof T : never; +export type Exact = P extends Builtin + ? P + : P & { [K in keyof P]: Exact } & Record< + Exclude | '$type'>, + never + >; + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/packages/api/src/generated/ibc/applications/transfer/v1/query.ts b/packages/api/src/generated/ibc/applications/transfer/v1/query.ts new file mode 100644 index 00000000..cf5b89ce --- /dev/null +++ b/packages/api/src/generated/ibc/applications/transfer/v1/query.ts @@ -0,0 +1,964 @@ +/* eslint-disable */ +import { messageTypeRegistry } from '../../../../typeRegistry'; +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; +import { + DenomTrace, + Params, +} from '../../../../ibc/applications/transfer/v1/transfer'; +import { + PageRequest, + PageResponse, +} from '../../../../cosmos/base/query/v1beta1/pagination'; + +export const protobufPackage = 'ibc.applications.transfer.v1'; + +/** + * QueryDenomTraceRequest is the request type for the Query/DenomTrace RPC + * method + */ +export interface QueryDenomTraceRequest { + $type: 'ibc.applications.transfer.v1.QueryDenomTraceRequest'; + /** hash (in hex format) or denom (full denom with ibc prefix) of the denomination trace information. */ + hash: string; +} + +/** + * QueryDenomTraceResponse is the response type for the Query/DenomTrace RPC + * method. + */ +export interface QueryDenomTraceResponse { + $type: 'ibc.applications.transfer.v1.QueryDenomTraceResponse'; + /** denom_trace returns the requested denomination trace information. */ + denomTrace?: DenomTrace; +} + +/** + * QueryConnectionsRequest is the request type for the Query/DenomTraces RPC + * method + */ +export interface QueryDenomTracesRequest { + $type: 'ibc.applications.transfer.v1.QueryDenomTracesRequest'; + /** pagination defines an optional pagination for the request. */ + pagination?: PageRequest; +} + +/** + * QueryConnectionsResponse is the response type for the Query/DenomTraces RPC + * method. + */ +export interface QueryDenomTracesResponse { + $type: 'ibc.applications.transfer.v1.QueryDenomTracesResponse'; + /** denom_traces returns all denominations trace information. */ + denomTraces: DenomTrace[]; + /** pagination defines the pagination in the response. */ + pagination?: PageResponse; +} + +/** QueryParamsRequest is the request type for the Query/Params RPC method. */ +export interface QueryParamsRequest { + $type: 'ibc.applications.transfer.v1.QueryParamsRequest'; +} + +/** QueryParamsResponse is the response type for the Query/Params RPC method. */ +export interface QueryParamsResponse { + $type: 'ibc.applications.transfer.v1.QueryParamsResponse'; + /** params defines the parameters of the module. */ + params?: Params; +} + +/** + * QueryDenomHashRequest is the request type for the Query/DenomHash RPC + * method + */ +export interface QueryDenomHashRequest { + $type: 'ibc.applications.transfer.v1.QueryDenomHashRequest'; + /** The denomination trace ([port_id]/[channel_id])+/[denom] */ + trace: string; +} + +/** + * QueryDenomHashResponse is the response type for the Query/DenomHash RPC + * method. + */ +export interface QueryDenomHashResponse { + $type: 'ibc.applications.transfer.v1.QueryDenomHashResponse'; + /** hash (in hex format) of the denomination trace information. */ + hash: string; +} + +/** QueryEscrowAddressRequest is the request type for the EscrowAddress RPC method. */ +export interface QueryEscrowAddressRequest { + $type: 'ibc.applications.transfer.v1.QueryEscrowAddressRequest'; + /** unique port identifier */ + portId: string; + /** unique channel identifier */ + channelId: string; +} + +/** QueryEscrowAddressResponse is the response type of the EscrowAddress RPC method. */ +export interface QueryEscrowAddressResponse { + $type: 'ibc.applications.transfer.v1.QueryEscrowAddressResponse'; + /** the escrow account address */ + escrowAddress: string; +} + +function createBaseQueryDenomTraceRequest(): QueryDenomTraceRequest { + return { + $type: 'ibc.applications.transfer.v1.QueryDenomTraceRequest', + hash: '', + }; +} + +export const QueryDenomTraceRequest = { + $type: 'ibc.applications.transfer.v1.QueryDenomTraceRequest' as const, + + encode( + message: QueryDenomTraceRequest, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.hash !== '') { + writer.uint32(10).string(message.hash); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryDenomTraceRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryDenomTraceRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.hash = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryDenomTraceRequest { + return { + $type: QueryDenomTraceRequest.$type, + hash: isSet(object.hash) ? String(object.hash) : '', + }; + }, + + toJSON(message: QueryDenomTraceRequest): unknown { + const obj: any = {}; + message.hash !== undefined && (obj.hash = message.hash); + return obj; + }, + + fromPartial, I>>( + object: I, + ): QueryDenomTraceRequest { + const message = createBaseQueryDenomTraceRequest(); + message.hash = object.hash ?? ''; + return message; + }, +}; + +messageTypeRegistry.set(QueryDenomTraceRequest.$type, QueryDenomTraceRequest); + +function createBaseQueryDenomTraceResponse(): QueryDenomTraceResponse { + return { + $type: 'ibc.applications.transfer.v1.QueryDenomTraceResponse', + denomTrace: undefined, + }; +} + +export const QueryDenomTraceResponse = { + $type: 'ibc.applications.transfer.v1.QueryDenomTraceResponse' as const, + + encode( + message: QueryDenomTraceResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.denomTrace !== undefined) { + DenomTrace.encode(message.denomTrace, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryDenomTraceResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryDenomTraceResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.denomTrace = DenomTrace.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryDenomTraceResponse { + return { + $type: QueryDenomTraceResponse.$type, + denomTrace: isSet(object.denomTrace) + ? DenomTrace.fromJSON(object.denomTrace) + : undefined, + }; + }, + + toJSON(message: QueryDenomTraceResponse): unknown { + const obj: any = {}; + message.denomTrace !== undefined && + (obj.denomTrace = message.denomTrace + ? DenomTrace.toJSON(message.denomTrace) + : undefined); + return obj; + }, + + fromPartial, I>>( + object: I, + ): QueryDenomTraceResponse { + const message = createBaseQueryDenomTraceResponse(); + message.denomTrace = + object.denomTrace !== undefined && object.denomTrace !== null + ? DenomTrace.fromPartial(object.denomTrace) + : undefined; + return message; + }, +}; + +messageTypeRegistry.set(QueryDenomTraceResponse.$type, QueryDenomTraceResponse); + +function createBaseQueryDenomTracesRequest(): QueryDenomTracesRequest { + return { + $type: 'ibc.applications.transfer.v1.QueryDenomTracesRequest', + pagination: undefined, + }; +} + +export const QueryDenomTracesRequest = { + $type: 'ibc.applications.transfer.v1.QueryDenomTracesRequest' as const, + + encode( + message: QueryDenomTracesRequest, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.pagination !== undefined) { + PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryDenomTracesRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryDenomTracesRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.pagination = PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryDenomTracesRequest { + return { + $type: QueryDenomTracesRequest.$type, + pagination: isSet(object.pagination) + ? PageRequest.fromJSON(object.pagination) + : undefined, + }; + }, + + toJSON(message: QueryDenomTracesRequest): unknown { + const obj: any = {}; + message.pagination !== undefined && + (obj.pagination = message.pagination + ? PageRequest.toJSON(message.pagination) + : undefined); + return obj; + }, + + fromPartial, I>>( + object: I, + ): QueryDenomTracesRequest { + const message = createBaseQueryDenomTracesRequest(); + message.pagination = + object.pagination !== undefined && object.pagination !== null + ? PageRequest.fromPartial(object.pagination) + : undefined; + return message; + }, +}; + +messageTypeRegistry.set(QueryDenomTracesRequest.$type, QueryDenomTracesRequest); + +function createBaseQueryDenomTracesResponse(): QueryDenomTracesResponse { + return { + $type: 'ibc.applications.transfer.v1.QueryDenomTracesResponse', + denomTraces: [], + pagination: undefined, + }; +} + +export const QueryDenomTracesResponse = { + $type: 'ibc.applications.transfer.v1.QueryDenomTracesResponse' as const, + + encode( + message: QueryDenomTracesResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + for (const v of message.denomTraces) { + DenomTrace.encode(v!, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + PageResponse.encode( + message.pagination, + writer.uint32(18).fork(), + ).ldelim(); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryDenomTracesResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryDenomTracesResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.denomTraces.push(DenomTrace.decode(reader, reader.uint32())); + break; + case 2: + message.pagination = PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryDenomTracesResponse { + return { + $type: QueryDenomTracesResponse.$type, + denomTraces: Array.isArray(object?.denomTraces) + ? object.denomTraces.map((e: any) => DenomTrace.fromJSON(e)) + : [], + pagination: isSet(object.pagination) + ? PageResponse.fromJSON(object.pagination) + : undefined, + }; + }, + + toJSON(message: QueryDenomTracesResponse): unknown { + const obj: any = {}; + if (message.denomTraces) { + obj.denomTraces = message.denomTraces.map(e => + e ? DenomTrace.toJSON(e) : undefined, + ); + } else { + obj.denomTraces = []; + } + message.pagination !== undefined && + (obj.pagination = message.pagination + ? PageResponse.toJSON(message.pagination) + : undefined); + return obj; + }, + + fromPartial, I>>( + object: I, + ): QueryDenomTracesResponse { + const message = createBaseQueryDenomTracesResponse(); + message.denomTraces = + object.denomTraces?.map(e => DenomTrace.fromPartial(e)) || []; + message.pagination = + object.pagination !== undefined && object.pagination !== null + ? PageResponse.fromPartial(object.pagination) + : undefined; + return message; + }, +}; + +messageTypeRegistry.set( + QueryDenomTracesResponse.$type, + QueryDenomTracesResponse, +); + +function createBaseQueryParamsRequest(): QueryParamsRequest { + return { $type: 'ibc.applications.transfer.v1.QueryParamsRequest' }; +} + +export const QueryParamsRequest = { + $type: 'ibc.applications.transfer.v1.QueryParamsRequest' as const, + + encode( + _: QueryParamsRequest, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryParamsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(_: any): QueryParamsRequest { + return { + $type: QueryParamsRequest.$type, + }; + }, + + toJSON(_: QueryParamsRequest): unknown { + const obj: any = {}; + return obj; + }, + + fromPartial, I>>( + _: I, + ): QueryParamsRequest { + const message = createBaseQueryParamsRequest(); + return message; + }, +}; + +messageTypeRegistry.set(QueryParamsRequest.$type, QueryParamsRequest); + +function createBaseQueryParamsResponse(): QueryParamsResponse { + return { + $type: 'ibc.applications.transfer.v1.QueryParamsResponse', + params: undefined, + }; +} + +export const QueryParamsResponse = { + $type: 'ibc.applications.transfer.v1.QueryParamsResponse' as const, + + encode( + message: QueryParamsResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.params !== undefined) { + Params.encode(message.params, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryParamsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.params = Params.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryParamsResponse { + return { + $type: QueryParamsResponse.$type, + params: isSet(object.params) ? Params.fromJSON(object.params) : undefined, + }; + }, + + toJSON(message: QueryParamsResponse): unknown { + const obj: any = {}; + message.params !== undefined && + (obj.params = message.params ? Params.toJSON(message.params) : undefined); + return obj; + }, + + fromPartial, I>>( + object: I, + ): QueryParamsResponse { + const message = createBaseQueryParamsResponse(); + message.params = + object.params !== undefined && object.params !== null + ? Params.fromPartial(object.params) + : undefined; + return message; + }, +}; + +messageTypeRegistry.set(QueryParamsResponse.$type, QueryParamsResponse); + +function createBaseQueryDenomHashRequest(): QueryDenomHashRequest { + return { + $type: 'ibc.applications.transfer.v1.QueryDenomHashRequest', + trace: '', + }; +} + +export const QueryDenomHashRequest = { + $type: 'ibc.applications.transfer.v1.QueryDenomHashRequest' as const, + + encode( + message: QueryDenomHashRequest, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.trace !== '') { + writer.uint32(10).string(message.trace); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryDenomHashRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryDenomHashRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.trace = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryDenomHashRequest { + return { + $type: QueryDenomHashRequest.$type, + trace: isSet(object.trace) ? String(object.trace) : '', + }; + }, + + toJSON(message: QueryDenomHashRequest): unknown { + const obj: any = {}; + message.trace !== undefined && (obj.trace = message.trace); + return obj; + }, + + fromPartial, I>>( + object: I, + ): QueryDenomHashRequest { + const message = createBaseQueryDenomHashRequest(); + message.trace = object.trace ?? ''; + return message; + }, +}; + +messageTypeRegistry.set(QueryDenomHashRequest.$type, QueryDenomHashRequest); + +function createBaseQueryDenomHashResponse(): QueryDenomHashResponse { + return { + $type: 'ibc.applications.transfer.v1.QueryDenomHashResponse', + hash: '', + }; +} + +export const QueryDenomHashResponse = { + $type: 'ibc.applications.transfer.v1.QueryDenomHashResponse' as const, + + encode( + message: QueryDenomHashResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.hash !== '') { + writer.uint32(10).string(message.hash); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryDenomHashResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryDenomHashResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.hash = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryDenomHashResponse { + return { + $type: QueryDenomHashResponse.$type, + hash: isSet(object.hash) ? String(object.hash) : '', + }; + }, + + toJSON(message: QueryDenomHashResponse): unknown { + const obj: any = {}; + message.hash !== undefined && (obj.hash = message.hash); + return obj; + }, + + fromPartial, I>>( + object: I, + ): QueryDenomHashResponse { + const message = createBaseQueryDenomHashResponse(); + message.hash = object.hash ?? ''; + return message; + }, +}; + +messageTypeRegistry.set(QueryDenomHashResponse.$type, QueryDenomHashResponse); + +function createBaseQueryEscrowAddressRequest(): QueryEscrowAddressRequest { + return { + $type: 'ibc.applications.transfer.v1.QueryEscrowAddressRequest', + portId: '', + channelId: '', + }; +} + +export const QueryEscrowAddressRequest = { + $type: 'ibc.applications.transfer.v1.QueryEscrowAddressRequest' as const, + + encode( + message: QueryEscrowAddressRequest, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.portId !== '') { + writer.uint32(10).string(message.portId); + } + if (message.channelId !== '') { + writer.uint32(18).string(message.channelId); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryEscrowAddressRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryEscrowAddressRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.portId = reader.string(); + break; + case 2: + message.channelId = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryEscrowAddressRequest { + return { + $type: QueryEscrowAddressRequest.$type, + portId: isSet(object.portId) ? String(object.portId) : '', + channelId: isSet(object.channelId) ? String(object.channelId) : '', + }; + }, + + toJSON(message: QueryEscrowAddressRequest): unknown { + const obj: any = {}; + message.portId !== undefined && (obj.portId = message.portId); + message.channelId !== undefined && (obj.channelId = message.channelId); + return obj; + }, + + fromPartial, I>>( + object: I, + ): QueryEscrowAddressRequest { + const message = createBaseQueryEscrowAddressRequest(); + message.portId = object.portId ?? ''; + message.channelId = object.channelId ?? ''; + return message; + }, +}; + +messageTypeRegistry.set( + QueryEscrowAddressRequest.$type, + QueryEscrowAddressRequest, +); + +function createBaseQueryEscrowAddressResponse(): QueryEscrowAddressResponse { + return { + $type: 'ibc.applications.transfer.v1.QueryEscrowAddressResponse', + escrowAddress: '', + }; +} + +export const QueryEscrowAddressResponse = { + $type: 'ibc.applications.transfer.v1.QueryEscrowAddressResponse' as const, + + encode( + message: QueryEscrowAddressResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.escrowAddress !== '') { + writer.uint32(10).string(message.escrowAddress); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryEscrowAddressResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryEscrowAddressResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.escrowAddress = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryEscrowAddressResponse { + return { + $type: QueryEscrowAddressResponse.$type, + escrowAddress: isSet(object.escrowAddress) + ? String(object.escrowAddress) + : '', + }; + }, + + toJSON(message: QueryEscrowAddressResponse): unknown { + const obj: any = {}; + message.escrowAddress !== undefined && + (obj.escrowAddress = message.escrowAddress); + return obj; + }, + + fromPartial, I>>( + object: I, + ): QueryEscrowAddressResponse { + const message = createBaseQueryEscrowAddressResponse(); + message.escrowAddress = object.escrowAddress ?? ''; + return message; + }, +}; + +messageTypeRegistry.set( + QueryEscrowAddressResponse.$type, + QueryEscrowAddressResponse, +); + +/** Query provides defines the gRPC querier service. */ +export interface Query { + /** DenomTrace queries a denomination trace information. */ + DenomTrace( + request: DeepPartial, + ): Promise; + /** DenomTraces queries all denomination traces. */ + DenomTraces( + request: DeepPartial, + ): Promise; + /** Params queries all parameters of the ibc-transfer module. */ + Params( + request: DeepPartial, + ): Promise; + /** DenomHash queries a denomination hash information. */ + DenomHash( + request: DeepPartial, + ): Promise; + /** EscrowAddress returns the escrow address for a particular port and channel id. */ + EscrowAddress( + request: DeepPartial, + ): Promise; +} + +export class QueryClientImpl implements Query { + private readonly rpc: Rpc; + constructor(rpc: Rpc) { + this.rpc = rpc; + this.DenomTrace = this.DenomTrace.bind(this); + this.DenomTraces = this.DenomTraces.bind(this); + this.Params = this.Params.bind(this); + this.DenomHash = this.DenomHash.bind(this); + this.EscrowAddress = this.EscrowAddress.bind(this); + } + DenomTrace( + request: DeepPartial, + ): Promise { + const fromPartial = QueryDenomTraceRequest.fromPartial(request); + const data = QueryDenomTraceRequest.encode(fromPartial).finish(); + const promise = this.rpc.request( + 'ibc.applications.transfer.v1.Query', + 'DenomTrace', + data, + ); + return promise.then(data => + QueryDenomTraceResponse.decode(new _m0.Reader(data)), + ); + } + + DenomTraces( + request: DeepPartial, + ): Promise { + const fromPartial = QueryDenomTracesRequest.fromPartial(request); + const data = QueryDenomTracesRequest.encode(fromPartial).finish(); + const promise = this.rpc.request( + 'ibc.applications.transfer.v1.Query', + 'DenomTraces', + data, + ); + return promise.then(data => + QueryDenomTracesResponse.decode(new _m0.Reader(data)), + ); + } + + Params( + request: DeepPartial, + ): Promise { + const fromPartial = QueryParamsRequest.fromPartial(request); + const data = QueryParamsRequest.encode(fromPartial).finish(); + const promise = this.rpc.request( + 'ibc.applications.transfer.v1.Query', + 'Params', + data, + ); + return promise.then(data => + QueryParamsResponse.decode(new _m0.Reader(data)), + ); + } + + DenomHash( + request: DeepPartial, + ): Promise { + const fromPartial = QueryDenomHashRequest.fromPartial(request); + const data = QueryDenomHashRequest.encode(fromPartial).finish(); + const promise = this.rpc.request( + 'ibc.applications.transfer.v1.Query', + 'DenomHash', + data, + ); + return promise.then(data => + QueryDenomHashResponse.decode(new _m0.Reader(data)), + ); + } + + EscrowAddress( + request: DeepPartial, + ): Promise { + const fromPartial = QueryEscrowAddressRequest.fromPartial(request); + const data = QueryEscrowAddressRequest.encode(fromPartial).finish(); + const promise = this.rpc.request( + 'ibc.applications.transfer.v1.Query', + 'EscrowAddress', + data, + ); + return promise.then(data => + QueryEscrowAddressResponse.decode(new _m0.Reader(data)), + ); + } +} + +interface Rpc { + request( + service: string, + method: string, + data: Uint8Array, + ): Promise; +} + +type Builtin = + | Date + | Function + | Uint8Array + | string + | number + | boolean + | undefined; + +export type DeepPartial = T extends Builtin + ? T + : T extends Long + ? string | number | Long + : T extends Array + ? Array> + : T extends ReadonlyArray + ? ReadonlyArray> + : T extends {} + ? { [K in Exclude]?: DeepPartial } + : Partial; + +type KeysOfUnion = T extends T ? keyof T : never; +export type Exact = P extends Builtin + ? P + : P & { [K in keyof P]: Exact } & Record< + Exclude | '$type'>, + never + >; + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/packages/api/src/generated/ibc/applications/transfer/v1/transfer.ts b/packages/api/src/generated/ibc/applications/transfer/v1/transfer.ts new file mode 100644 index 00000000..ebd3a168 --- /dev/null +++ b/packages/api/src/generated/ibc/applications/transfer/v1/transfer.ts @@ -0,0 +1,227 @@ +/* eslint-disable */ +import { messageTypeRegistry } from '../../../../typeRegistry'; +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; + +export const protobufPackage = 'ibc.applications.transfer.v1'; + +/** + * DenomTrace contains the base denomination for ICS20 fungible tokens and the + * source tracing information path. + */ +export interface DenomTrace { + $type: 'ibc.applications.transfer.v1.DenomTrace'; + /** + * path defines the chain of port/channel identifiers used for tracing the + * source of the fungible token. + */ + path: string; + /** base denomination of the relayed fungible token. */ + baseDenom: string; +} + +/** + * 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. + */ +export interface Params { + $type: 'ibc.applications.transfer.v1.Params'; + /** + * send_enabled enables or disables all cross-chain token transfers from this + * chain. + */ + sendEnabled: boolean; + /** + * receive_enabled enables or disables all cross-chain token transfers to this + * chain. + */ + receiveEnabled: boolean; +} + +function createBaseDenomTrace(): DenomTrace { + return { + $type: 'ibc.applications.transfer.v1.DenomTrace', + path: '', + baseDenom: '', + }; +} + +export const DenomTrace = { + $type: 'ibc.applications.transfer.v1.DenomTrace' as const, + + encode( + message: DenomTrace, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.path !== '') { + writer.uint32(10).string(message.path); + } + if (message.baseDenom !== '') { + writer.uint32(18).string(message.baseDenom); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): DenomTrace { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseDenomTrace(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.path = reader.string(); + break; + case 2: + message.baseDenom = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): DenomTrace { + return { + $type: DenomTrace.$type, + path: isSet(object.path) ? String(object.path) : '', + baseDenom: isSet(object.baseDenom) ? String(object.baseDenom) : '', + }; + }, + + toJSON(message: DenomTrace): unknown { + const obj: any = {}; + message.path !== undefined && (obj.path = message.path); + message.baseDenom !== undefined && (obj.baseDenom = message.baseDenom); + return obj; + }, + + fromPartial, I>>( + object: I, + ): DenomTrace { + const message = createBaseDenomTrace(); + message.path = object.path ?? ''; + message.baseDenom = object.baseDenom ?? ''; + return message; + }, +}; + +messageTypeRegistry.set(DenomTrace.$type, DenomTrace); + +function createBaseParams(): Params { + return { + $type: 'ibc.applications.transfer.v1.Params', + sendEnabled: false, + receiveEnabled: false, + }; +} + +export const Params = { + $type: 'ibc.applications.transfer.v1.Params' as const, + + encode( + message: Params, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.sendEnabled === true) { + writer.uint32(8).bool(message.sendEnabled); + } + if (message.receiveEnabled === true) { + writer.uint32(16).bool(message.receiveEnabled); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Params { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseParams(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.sendEnabled = reader.bool(); + break; + case 2: + message.receiveEnabled = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Params { + return { + $type: Params.$type, + sendEnabled: isSet(object.sendEnabled) + ? Boolean(object.sendEnabled) + : false, + receiveEnabled: isSet(object.receiveEnabled) + ? Boolean(object.receiveEnabled) + : false, + }; + }, + + toJSON(message: Params): unknown { + const obj: any = {}; + message.sendEnabled !== undefined && + (obj.sendEnabled = message.sendEnabled); + message.receiveEnabled !== undefined && + (obj.receiveEnabled = message.receiveEnabled); + return obj; + }, + + fromPartial, I>>(object: I): Params { + const message = createBaseParams(); + message.sendEnabled = object.sendEnabled ?? false; + message.receiveEnabled = object.receiveEnabled ?? false; + return message; + }, +}; + +messageTypeRegistry.set(Params.$type, Params); + +type Builtin = + | Date + | Function + | Uint8Array + | string + | number + | boolean + | undefined; + +export type DeepPartial = T extends Builtin + ? T + : T extends Long + ? string | number | Long + : T extends Array + ? Array> + : T extends ReadonlyArray + ? ReadonlyArray> + : T extends {} + ? { [K in Exclude]?: DeepPartial } + : Partial; + +type KeysOfUnion = T extends T ? keyof T : never; +export type Exact = P extends Builtin + ? P + : P & { [K in keyof P]: Exact } & Record< + Exclude | '$type'>, + never + >; + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/packages/api/src/generated/ibc/applications/transfer/v1/tx.ts b/packages/api/src/generated/ibc/applications/transfer/v1/tx.ts new file mode 100644 index 00000000..8d1f5e3a --- /dev/null +++ b/packages/api/src/generated/ibc/applications/transfer/v1/tx.ts @@ -0,0 +1,309 @@ +/* eslint-disable */ +import { messageTypeRegistry } from '../../../../typeRegistry'; +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; +import { Coin } from '../../../../cosmos/base/v1beta1/coin'; +import { Height } from '../../../../ibc/core/client/v1/client'; + +export const protobufPackage = 'ibc.applications.transfer.v1'; + +/** + * MsgTransfer defines a msg to transfer fungible tokens (i.e Coins) between + * ICS20 enabled chains. See ICS Spec here: + * https://github.com/cosmos/ibc/tree/master/spec/app/ics-020-fungible-token-transfer#data-structures + */ +export interface MsgTransfer { + $type: 'ibc.applications.transfer.v1.MsgTransfer'; + /** the port on which the packet will be sent */ + sourcePort: string; + /** the channel by which the packet will be sent */ + sourceChannel: string; + /** the tokens to be transferred */ + token?: Coin; + /** the sender address */ + sender: string; + /** the recipient address on the destination chain */ + receiver: string; + /** + * Timeout height relative to the current block height. + * The timeout is disabled when set to 0. + */ + timeoutHeight?: Height; + /** + * Timeout timestamp in absolute nanoseconds since unix epoch. + * The timeout is disabled when set to 0. + */ + timeoutTimestamp: Long; +} + +/** MsgTransferResponse defines the Msg/Transfer response type. */ +export interface MsgTransferResponse { + $type: 'ibc.applications.transfer.v1.MsgTransferResponse'; +} + +function createBaseMsgTransfer(): MsgTransfer { + return { + $type: 'ibc.applications.transfer.v1.MsgTransfer', + sourcePort: '', + sourceChannel: '', + token: undefined, + sender: '', + receiver: '', + timeoutHeight: undefined, + timeoutTimestamp: Long.UZERO, + }; +} + +export const MsgTransfer = { + $type: 'ibc.applications.transfer.v1.MsgTransfer' as const, + + encode( + message: MsgTransfer, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.sourcePort !== '') { + writer.uint32(10).string(message.sourcePort); + } + if (message.sourceChannel !== '') { + writer.uint32(18).string(message.sourceChannel); + } + if (message.token !== undefined) { + Coin.encode(message.token, writer.uint32(26).fork()).ldelim(); + } + if (message.sender !== '') { + writer.uint32(34).string(message.sender); + } + if (message.receiver !== '') { + writer.uint32(42).string(message.receiver); + } + if (message.timeoutHeight !== undefined) { + Height.encode(message.timeoutHeight, writer.uint32(50).fork()).ldelim(); + } + if (!message.timeoutTimestamp.isZero()) { + writer.uint32(56).uint64(message.timeoutTimestamp); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MsgTransfer { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgTransfer(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.sourcePort = reader.string(); + break; + case 2: + message.sourceChannel = reader.string(); + break; + case 3: + message.token = Coin.decode(reader, reader.uint32()); + break; + case 4: + message.sender = reader.string(); + break; + case 5: + message.receiver = reader.string(); + break; + case 6: + message.timeoutHeight = Height.decode(reader, reader.uint32()); + break; + case 7: + message.timeoutTimestamp = reader.uint64() as Long; + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): MsgTransfer { + return { + $type: MsgTransfer.$type, + sourcePort: isSet(object.sourcePort) ? String(object.sourcePort) : '', + sourceChannel: isSet(object.sourceChannel) + ? String(object.sourceChannel) + : '', + token: isSet(object.token) ? Coin.fromJSON(object.token) : undefined, + sender: isSet(object.sender) ? String(object.sender) : '', + receiver: isSet(object.receiver) ? String(object.receiver) : '', + timeoutHeight: isSet(object.timeoutHeight) + ? Height.fromJSON(object.timeoutHeight) + : undefined, + timeoutTimestamp: isSet(object.timeoutTimestamp) + ? Long.fromString(object.timeoutTimestamp) + : Long.UZERO, + }; + }, + + toJSON(message: MsgTransfer): unknown { + const obj: any = {}; + message.sourcePort !== undefined && (obj.sourcePort = message.sourcePort); + message.sourceChannel !== undefined && + (obj.sourceChannel = message.sourceChannel); + message.token !== undefined && + (obj.token = message.token ? Coin.toJSON(message.token) : undefined); + message.sender !== undefined && (obj.sender = message.sender); + message.receiver !== undefined && (obj.receiver = message.receiver); + message.timeoutHeight !== undefined && + (obj.timeoutHeight = message.timeoutHeight + ? Height.toJSON(message.timeoutHeight) + : undefined); + message.timeoutTimestamp !== undefined && + (obj.timeoutTimestamp = ( + message.timeoutTimestamp || Long.UZERO + ).toString()); + return obj; + }, + + fromPartial, I>>( + object: I, + ): MsgTransfer { + const message = createBaseMsgTransfer(); + message.sourcePort = object.sourcePort ?? ''; + message.sourceChannel = object.sourceChannel ?? ''; + message.token = + object.token !== undefined && object.token !== null + ? Coin.fromPartial(object.token) + : undefined; + message.sender = object.sender ?? ''; + message.receiver = object.receiver ?? ''; + message.timeoutHeight = + object.timeoutHeight !== undefined && object.timeoutHeight !== null + ? Height.fromPartial(object.timeoutHeight) + : undefined; + message.timeoutTimestamp = + object.timeoutTimestamp !== undefined && object.timeoutTimestamp !== null + ? Long.fromValue(object.timeoutTimestamp) + : Long.UZERO; + return message; + }, +}; + +messageTypeRegistry.set(MsgTransfer.$type, MsgTransfer); + +function createBaseMsgTransferResponse(): MsgTransferResponse { + return { $type: 'ibc.applications.transfer.v1.MsgTransferResponse' }; +} + +export const MsgTransferResponse = { + $type: 'ibc.applications.transfer.v1.MsgTransferResponse' as const, + + encode( + _: MsgTransferResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MsgTransferResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgTransferResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(_: any): MsgTransferResponse { + return { + $type: MsgTransferResponse.$type, + }; + }, + + toJSON(_: MsgTransferResponse): unknown { + const obj: any = {}; + return obj; + }, + + fromPartial, I>>( + _: I, + ): MsgTransferResponse { + const message = createBaseMsgTransferResponse(); + return message; + }, +}; + +messageTypeRegistry.set(MsgTransferResponse.$type, MsgTransferResponse); + +/** Msg defines the ibc/transfer Msg service. */ +export interface Msg { + /** Transfer defines a rpc handler method for MsgTransfer. */ + Transfer(request: DeepPartial): Promise; +} + +export class MsgClientImpl implements Msg { + private readonly rpc: Rpc; + constructor(rpc: Rpc) { + this.rpc = rpc; + this.Transfer = this.Transfer.bind(this); + } + Transfer(request: DeepPartial): Promise { + const fromPartial = MsgTransfer.fromPartial(request); + const data = MsgTransfer.encode(fromPartial).finish(); + const promise = this.rpc.request( + 'ibc.applications.transfer.v1.Msg', + 'Transfer', + data, + ); + return promise.then(data => + MsgTransferResponse.decode(new _m0.Reader(data)), + ); + } +} + +interface Rpc { + request( + service: string, + method: string, + data: Uint8Array, + ): Promise; +} + +type Builtin = + | Date + | Function + | Uint8Array + | string + | number + | boolean + | undefined; + +export type DeepPartial = T extends Builtin + ? T + : T extends Long + ? string | number | Long + : T extends Array + ? Array> + : T extends ReadonlyArray + ? ReadonlyArray> + : T extends {} + ? { [K in Exclude]?: DeepPartial } + : Partial; + +type KeysOfUnion = T extends T ? keyof T : never; +export type Exact = P extends Builtin + ? P + : P & { [K in keyof P]: Exact } & Record< + Exclude | '$type'>, + never + >; + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/packages/api/src/generated/ibc/core/client/v1/client.ts b/packages/api/src/generated/ibc/core/client/v1/client.ts new file mode 100644 index 00000000..40386539 --- /dev/null +++ b/packages/api/src/generated/ibc/core/client/v1/client.ts @@ -0,0 +1,769 @@ +/* eslint-disable */ +import { messageTypeRegistry } from '../../../../typeRegistry'; +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; +import { Any } from '../../../../google/protobuf/any'; +import { Plan } from '../../../../cosmos/upgrade/v1beta1/upgrade'; + +export const protobufPackage = 'ibc.core.client.v1'; + +/** + * IdentifiedClientState defines a client state with an additional client + * identifier field. + */ +export interface IdentifiedClientState { + $type: 'ibc.core.client.v1.IdentifiedClientState'; + /** client identifier */ + clientId: string; + /** client state */ + clientState?: Any; +} + +/** + * ConsensusStateWithHeight defines a consensus state with an additional height + * field. + */ +export interface ConsensusStateWithHeight { + $type: 'ibc.core.client.v1.ConsensusStateWithHeight'; + /** consensus state height */ + height?: Height; + /** consensus state */ + consensusState?: Any; +} + +/** + * ClientConsensusStates defines all the stored consensus states for a given + * client. + */ +export interface ClientConsensusStates { + $type: 'ibc.core.client.v1.ClientConsensusStates'; + /** client identifier */ + clientId: string; + /** consensus states and their heights associated with the client */ + consensusStates: ConsensusStateWithHeight[]; +} + +/** + * ClientUpdateProposal is a governance proposal. If it passes, the substitute + * client's latest consensus state is copied over to the subject client. The proposal + * handler may fail if the subject and the substitute do not match in client and + * chain parameters (with exception to latest height, frozen height, and chain-id). + */ +export interface ClientUpdateProposal { + $type: 'ibc.core.client.v1.ClientUpdateProposal'; + /** the title of the update proposal */ + title: string; + /** the description of the proposal */ + description: string; + /** the client identifier for the client to be updated if the proposal passes */ + subjectClientId: string; + /** + * the substitute client identifier for the client standing in for the subject + * client + */ + substituteClientId: string; +} + +/** + * UpgradeProposal is a gov Content type for initiating an IBC breaking + * upgrade. + */ +export interface UpgradeProposal { + $type: 'ibc.core.client.v1.UpgradeProposal'; + title: string; + description: string; + plan?: Plan; + /** + * An UpgradedClientState must be provided to perform an IBC breaking upgrade. + * 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 + */ + upgradedClientState?: Any; +} + +/** + * 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 + */ +export interface Height { + $type: 'ibc.core.client.v1.Height'; + /** the revision that the client is currently on */ + revisionNumber: Long; + /** the height within the given revision */ + revisionHeight: Long; +} + +/** Params defines the set of IBC light client parameters. */ +export interface Params { + $type: 'ibc.core.client.v1.Params'; + /** allowed_clients defines the list of allowed client state types. */ + allowedClients: string[]; +} + +function createBaseIdentifiedClientState(): IdentifiedClientState { + return { + $type: 'ibc.core.client.v1.IdentifiedClientState', + clientId: '', + clientState: undefined, + }; +} + +export const IdentifiedClientState = { + $type: 'ibc.core.client.v1.IdentifiedClientState' as const, + + encode( + message: IdentifiedClientState, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.clientId !== '') { + writer.uint32(10).string(message.clientId); + } + if (message.clientState !== undefined) { + Any.encode(message.clientState, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): IdentifiedClientState { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseIdentifiedClientState(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clientId = reader.string(); + break; + case 2: + message.clientState = Any.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): IdentifiedClientState { + return { + $type: IdentifiedClientState.$type, + clientId: isSet(object.clientId) ? String(object.clientId) : '', + clientState: isSet(object.clientState) + ? Any.fromJSON(object.clientState) + : undefined, + }; + }, + + toJSON(message: IdentifiedClientState): unknown { + const obj: any = {}; + message.clientId !== undefined && (obj.clientId = message.clientId); + message.clientState !== undefined && + (obj.clientState = message.clientState + ? Any.toJSON(message.clientState) + : undefined); + return obj; + }, + + fromPartial, I>>( + object: I, + ): IdentifiedClientState { + const message = createBaseIdentifiedClientState(); + message.clientId = object.clientId ?? ''; + message.clientState = + object.clientState !== undefined && object.clientState !== null + ? Any.fromPartial(object.clientState) + : undefined; + return message; + }, +}; + +messageTypeRegistry.set(IdentifiedClientState.$type, IdentifiedClientState); + +function createBaseConsensusStateWithHeight(): ConsensusStateWithHeight { + return { + $type: 'ibc.core.client.v1.ConsensusStateWithHeight', + height: undefined, + consensusState: undefined, + }; +} + +export const ConsensusStateWithHeight = { + $type: 'ibc.core.client.v1.ConsensusStateWithHeight' as const, + + encode( + message: ConsensusStateWithHeight, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.height !== undefined) { + Height.encode(message.height, writer.uint32(10).fork()).ldelim(); + } + if (message.consensusState !== undefined) { + Any.encode(message.consensusState, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): ConsensusStateWithHeight { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseConsensusStateWithHeight(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.height = Height.decode(reader, reader.uint32()); + break; + case 2: + message.consensusState = Any.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ConsensusStateWithHeight { + return { + $type: ConsensusStateWithHeight.$type, + height: isSet(object.height) ? Height.fromJSON(object.height) : undefined, + consensusState: isSet(object.consensusState) + ? Any.fromJSON(object.consensusState) + : undefined, + }; + }, + + toJSON(message: ConsensusStateWithHeight): unknown { + const obj: any = {}; + message.height !== undefined && + (obj.height = message.height ? Height.toJSON(message.height) : undefined); + message.consensusState !== undefined && + (obj.consensusState = message.consensusState + ? Any.toJSON(message.consensusState) + : undefined); + return obj; + }, + + fromPartial, I>>( + object: I, + ): ConsensusStateWithHeight { + const message = createBaseConsensusStateWithHeight(); + message.height = + object.height !== undefined && object.height !== null + ? Height.fromPartial(object.height) + : undefined; + message.consensusState = + object.consensusState !== undefined && object.consensusState !== null + ? Any.fromPartial(object.consensusState) + : undefined; + return message; + }, +}; + +messageTypeRegistry.set( + ConsensusStateWithHeight.$type, + ConsensusStateWithHeight, +); + +function createBaseClientConsensusStates(): ClientConsensusStates { + return { + $type: 'ibc.core.client.v1.ClientConsensusStates', + clientId: '', + consensusStates: [], + }; +} + +export const ClientConsensusStates = { + $type: 'ibc.core.client.v1.ClientConsensusStates' as const, + + encode( + message: ClientConsensusStates, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.clientId !== '') { + writer.uint32(10).string(message.clientId); + } + for (const v of message.consensusStates) { + ConsensusStateWithHeight.encode(v!, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): ClientConsensusStates { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseClientConsensusStates(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clientId = reader.string(); + break; + case 2: + message.consensusStates.push( + ConsensusStateWithHeight.decode(reader, reader.uint32()), + ); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ClientConsensusStates { + return { + $type: ClientConsensusStates.$type, + clientId: isSet(object.clientId) ? String(object.clientId) : '', + consensusStates: Array.isArray(object?.consensusStates) + ? object.consensusStates.map((e: any) => + ConsensusStateWithHeight.fromJSON(e), + ) + : [], + }; + }, + + toJSON(message: ClientConsensusStates): unknown { + const obj: any = {}; + message.clientId !== undefined && (obj.clientId = message.clientId); + if (message.consensusStates) { + obj.consensusStates = message.consensusStates.map(e => + e ? ConsensusStateWithHeight.toJSON(e) : undefined, + ); + } else { + obj.consensusStates = []; + } + return obj; + }, + + fromPartial, I>>( + object: I, + ): ClientConsensusStates { + const message = createBaseClientConsensusStates(); + message.clientId = object.clientId ?? ''; + message.consensusStates = + object.consensusStates?.map(e => + ConsensusStateWithHeight.fromPartial(e), + ) || []; + return message; + }, +}; + +messageTypeRegistry.set(ClientConsensusStates.$type, ClientConsensusStates); + +function createBaseClientUpdateProposal(): ClientUpdateProposal { + return { + $type: 'ibc.core.client.v1.ClientUpdateProposal', + title: '', + description: '', + subjectClientId: '', + substituteClientId: '', + }; +} + +export const ClientUpdateProposal = { + $type: 'ibc.core.client.v1.ClientUpdateProposal' as const, + + encode( + message: ClientUpdateProposal, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.title !== '') { + writer.uint32(10).string(message.title); + } + if (message.description !== '') { + writer.uint32(18).string(message.description); + } + if (message.subjectClientId !== '') { + writer.uint32(26).string(message.subjectClientId); + } + if (message.substituteClientId !== '') { + writer.uint32(34).string(message.substituteClientId); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): ClientUpdateProposal { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseClientUpdateProposal(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.title = reader.string(); + break; + case 2: + message.description = reader.string(); + break; + case 3: + message.subjectClientId = reader.string(); + break; + case 4: + message.substituteClientId = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ClientUpdateProposal { + return { + $type: ClientUpdateProposal.$type, + title: isSet(object.title) ? String(object.title) : '', + description: isSet(object.description) ? String(object.description) : '', + subjectClientId: isSet(object.subjectClientId) + ? String(object.subjectClientId) + : '', + substituteClientId: isSet(object.substituteClientId) + ? String(object.substituteClientId) + : '', + }; + }, + + toJSON(message: ClientUpdateProposal): unknown { + const obj: any = {}; + message.title !== undefined && (obj.title = message.title); + message.description !== undefined && + (obj.description = message.description); + message.subjectClientId !== undefined && + (obj.subjectClientId = message.subjectClientId); + message.substituteClientId !== undefined && + (obj.substituteClientId = message.substituteClientId); + return obj; + }, + + fromPartial, I>>( + object: I, + ): ClientUpdateProposal { + const message = createBaseClientUpdateProposal(); + message.title = object.title ?? ''; + message.description = object.description ?? ''; + message.subjectClientId = object.subjectClientId ?? ''; + message.substituteClientId = object.substituteClientId ?? ''; + return message; + }, +}; + +messageTypeRegistry.set(ClientUpdateProposal.$type, ClientUpdateProposal); + +function createBaseUpgradeProposal(): UpgradeProposal { + return { + $type: 'ibc.core.client.v1.UpgradeProposal', + title: '', + description: '', + plan: undefined, + upgradedClientState: undefined, + }; +} + +export const UpgradeProposal = { + $type: 'ibc.core.client.v1.UpgradeProposal' as const, + + encode( + message: UpgradeProposal, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.title !== '') { + writer.uint32(10).string(message.title); + } + if (message.description !== '') { + writer.uint32(18).string(message.description); + } + if (message.plan !== undefined) { + Plan.encode(message.plan, writer.uint32(26).fork()).ldelim(); + } + if (message.upgradedClientState !== undefined) { + Any.encode( + message.upgradedClientState, + writer.uint32(34).fork(), + ).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UpgradeProposal { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUpgradeProposal(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.title = reader.string(); + break; + case 2: + message.description = reader.string(); + break; + case 3: + message.plan = Plan.decode(reader, reader.uint32()); + break; + case 4: + message.upgradedClientState = Any.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): UpgradeProposal { + return { + $type: UpgradeProposal.$type, + title: isSet(object.title) ? String(object.title) : '', + description: isSet(object.description) ? String(object.description) : '', + plan: isSet(object.plan) ? Plan.fromJSON(object.plan) : undefined, + upgradedClientState: isSet(object.upgradedClientState) + ? Any.fromJSON(object.upgradedClientState) + : undefined, + }; + }, + + toJSON(message: UpgradeProposal): unknown { + const obj: any = {}; + message.title !== undefined && (obj.title = message.title); + message.description !== undefined && + (obj.description = message.description); + message.plan !== undefined && + (obj.plan = message.plan ? Plan.toJSON(message.plan) : undefined); + message.upgradedClientState !== undefined && + (obj.upgradedClientState = message.upgradedClientState + ? Any.toJSON(message.upgradedClientState) + : undefined); + return obj; + }, + + fromPartial, I>>( + object: I, + ): UpgradeProposal { + const message = createBaseUpgradeProposal(); + message.title = object.title ?? ''; + message.description = object.description ?? ''; + message.plan = + object.plan !== undefined && object.plan !== null + ? Plan.fromPartial(object.plan) + : undefined; + message.upgradedClientState = + object.upgradedClientState !== undefined && + object.upgradedClientState !== null + ? Any.fromPartial(object.upgradedClientState) + : undefined; + return message; + }, +}; + +messageTypeRegistry.set(UpgradeProposal.$type, UpgradeProposal); + +function createBaseHeight(): Height { + return { + $type: 'ibc.core.client.v1.Height', + revisionNumber: Long.UZERO, + revisionHeight: Long.UZERO, + }; +} + +export const Height = { + $type: 'ibc.core.client.v1.Height' as const, + + encode( + message: Height, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (!message.revisionNumber.isZero()) { + writer.uint32(8).uint64(message.revisionNumber); + } + if (!message.revisionHeight.isZero()) { + writer.uint32(16).uint64(message.revisionHeight); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Height { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseHeight(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.revisionNumber = reader.uint64() as Long; + break; + case 2: + message.revisionHeight = reader.uint64() as Long; + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Height { + return { + $type: Height.$type, + revisionNumber: isSet(object.revisionNumber) + ? Long.fromString(object.revisionNumber) + : Long.UZERO, + revisionHeight: isSet(object.revisionHeight) + ? Long.fromString(object.revisionHeight) + : Long.UZERO, + }; + }, + + toJSON(message: Height): unknown { + const obj: any = {}; + message.revisionNumber !== undefined && + (obj.revisionNumber = (message.revisionNumber || Long.UZERO).toString()); + message.revisionHeight !== undefined && + (obj.revisionHeight = (message.revisionHeight || Long.UZERO).toString()); + return obj; + }, + + fromPartial, I>>(object: I): Height { + const message = createBaseHeight(); + message.revisionNumber = + object.revisionNumber !== undefined && object.revisionNumber !== null + ? Long.fromValue(object.revisionNumber) + : Long.UZERO; + message.revisionHeight = + object.revisionHeight !== undefined && object.revisionHeight !== null + ? Long.fromValue(object.revisionHeight) + : Long.UZERO; + return message; + }, +}; + +messageTypeRegistry.set(Height.$type, Height); + +function createBaseParams(): Params { + return { $type: 'ibc.core.client.v1.Params', allowedClients: [] }; +} + +export const Params = { + $type: 'ibc.core.client.v1.Params' as const, + + encode( + message: Params, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + for (const v of message.allowedClients) { + writer.uint32(10).string(v!); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Params { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseParams(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.allowedClients.push(reader.string()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Params { + return { + $type: Params.$type, + allowedClients: Array.isArray(object?.allowedClients) + ? object.allowedClients.map((e: any) => String(e)) + : [], + }; + }, + + toJSON(message: Params): unknown { + const obj: any = {}; + if (message.allowedClients) { + obj.allowedClients = message.allowedClients.map(e => e); + } else { + obj.allowedClients = []; + } + return obj; + }, + + fromPartial, I>>(object: I): Params { + const message = createBaseParams(); + message.allowedClients = object.allowedClients?.map(e => e) || []; + return message; + }, +}; + +messageTypeRegistry.set(Params.$type, Params); + +type Builtin = + | Date + | Function + | Uint8Array + | string + | number + | boolean + | undefined; + +export type DeepPartial = T extends Builtin + ? T + : T extends Long + ? string | number | Long + : T extends Array + ? Array> + : T extends ReadonlyArray + ? ReadonlyArray> + : T extends {} + ? { [K in Exclude]?: DeepPartial } + : Partial; + +type KeysOfUnion = T extends T ? keyof T : never; +export type Exact = P extends Builtin + ? P + : P & { [K in keyof P]: Exact } & Record< + Exclude | '$type'>, + never + >; + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/packages/api/src/generated/ibc/core/client/v1/genesis.ts b/packages/api/src/generated/ibc/core/client/v1/genesis.ts new file mode 100644 index 00000000..2a55ba19 --- /dev/null +++ b/packages/api/src/generated/ibc/core/client/v1/genesis.ts @@ -0,0 +1,458 @@ +/* eslint-disable */ +import { messageTypeRegistry } from '../../../../typeRegistry'; +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; +import { + Params, + IdentifiedClientState, + ClientConsensusStates, +} from '../../../../ibc/core/client/v1/client'; + +export const protobufPackage = 'ibc.core.client.v1'; + +/** GenesisState defines the ibc client submodule's genesis state. */ +export interface GenesisState { + $type: 'ibc.core.client.v1.GenesisState'; + /** client states with their corresponding identifiers */ + clients: IdentifiedClientState[]; + /** consensus states from each client */ + clientsConsensus: ClientConsensusStates[]; + /** metadata from each client */ + clientsMetadata: IdentifiedGenesisMetadata[]; + params?: Params; + /** create localhost on initialization */ + createLocalhost: boolean; + /** the sequence for the next generated client identifier */ + nextClientSequence: Long; +} + +/** + * GenesisMetadata defines the genesis type for metadata that clients may return + * with ExportMetadata + */ +export interface GenesisMetadata { + $type: 'ibc.core.client.v1.GenesisMetadata'; + /** store key of metadata without clientID-prefix */ + key: Uint8Array; + /** metadata value */ + value: Uint8Array; +} + +/** + * IdentifiedGenesisMetadata has the client metadata with the corresponding + * client id. + */ +export interface IdentifiedGenesisMetadata { + $type: 'ibc.core.client.v1.IdentifiedGenesisMetadata'; + clientId: string; + clientMetadata: GenesisMetadata[]; +} + +function createBaseGenesisState(): GenesisState { + return { + $type: 'ibc.core.client.v1.GenesisState', + clients: [], + clientsConsensus: [], + clientsMetadata: [], + params: undefined, + createLocalhost: false, + nextClientSequence: Long.UZERO, + }; +} + +export const GenesisState = { + $type: 'ibc.core.client.v1.GenesisState' as const, + + encode( + message: GenesisState, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + for (const v of message.clients) { + IdentifiedClientState.encode(v!, writer.uint32(10).fork()).ldelim(); + } + for (const v of message.clientsConsensus) { + ClientConsensusStates.encode(v!, writer.uint32(18).fork()).ldelim(); + } + for (const v of message.clientsMetadata) { + IdentifiedGenesisMetadata.encode(v!, writer.uint32(26).fork()).ldelim(); + } + if (message.params !== undefined) { + Params.encode(message.params, writer.uint32(34).fork()).ldelim(); + } + if (message.createLocalhost === true) { + writer.uint32(40).bool(message.createLocalhost); + } + if (!message.nextClientSequence.isZero()) { + writer.uint32(48).uint64(message.nextClientSequence); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGenesisState(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clients.push( + IdentifiedClientState.decode(reader, reader.uint32()), + ); + break; + case 2: + message.clientsConsensus.push( + ClientConsensusStates.decode(reader, reader.uint32()), + ); + break; + case 3: + message.clientsMetadata.push( + IdentifiedGenesisMetadata.decode(reader, reader.uint32()), + ); + break; + case 4: + message.params = Params.decode(reader, reader.uint32()); + break; + case 5: + message.createLocalhost = reader.bool(); + break; + case 6: + message.nextClientSequence = reader.uint64() as Long; + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GenesisState { + return { + $type: GenesisState.$type, + clients: Array.isArray(object?.clients) + ? object.clients.map((e: any) => IdentifiedClientState.fromJSON(e)) + : [], + clientsConsensus: Array.isArray(object?.clientsConsensus) + ? object.clientsConsensus.map((e: any) => + ClientConsensusStates.fromJSON(e), + ) + : [], + clientsMetadata: Array.isArray(object?.clientsMetadata) + ? object.clientsMetadata.map((e: any) => + IdentifiedGenesisMetadata.fromJSON(e), + ) + : [], + params: isSet(object.params) ? Params.fromJSON(object.params) : undefined, + createLocalhost: isSet(object.createLocalhost) + ? Boolean(object.createLocalhost) + : false, + nextClientSequence: isSet(object.nextClientSequence) + ? Long.fromString(object.nextClientSequence) + : Long.UZERO, + }; + }, + + toJSON(message: GenesisState): unknown { + const obj: any = {}; + if (message.clients) { + obj.clients = message.clients.map(e => + e ? IdentifiedClientState.toJSON(e) : undefined, + ); + } else { + obj.clients = []; + } + if (message.clientsConsensus) { + obj.clientsConsensus = message.clientsConsensus.map(e => + e ? ClientConsensusStates.toJSON(e) : undefined, + ); + } else { + obj.clientsConsensus = []; + } + if (message.clientsMetadata) { + obj.clientsMetadata = message.clientsMetadata.map(e => + e ? IdentifiedGenesisMetadata.toJSON(e) : undefined, + ); + } else { + obj.clientsMetadata = []; + } + message.params !== undefined && + (obj.params = message.params ? Params.toJSON(message.params) : undefined); + message.createLocalhost !== undefined && + (obj.createLocalhost = message.createLocalhost); + message.nextClientSequence !== undefined && + (obj.nextClientSequence = ( + message.nextClientSequence || Long.UZERO + ).toString()); + return obj; + }, + + fromPartial, I>>( + object: I, + ): GenesisState { + const message = createBaseGenesisState(); + message.clients = + object.clients?.map(e => IdentifiedClientState.fromPartial(e)) || []; + message.clientsConsensus = + object.clientsConsensus?.map(e => ClientConsensusStates.fromPartial(e)) || + []; + message.clientsMetadata = + object.clientsMetadata?.map(e => + IdentifiedGenesisMetadata.fromPartial(e), + ) || []; + message.params = + object.params !== undefined && object.params !== null + ? Params.fromPartial(object.params) + : undefined; + message.createLocalhost = object.createLocalhost ?? false; + message.nextClientSequence = + object.nextClientSequence !== undefined && + object.nextClientSequence !== null + ? Long.fromValue(object.nextClientSequence) + : Long.UZERO; + return message; + }, +}; + +messageTypeRegistry.set(GenesisState.$type, GenesisState); + +function createBaseGenesisMetadata(): GenesisMetadata { + return { + $type: 'ibc.core.client.v1.GenesisMetadata', + key: new Uint8Array(), + value: new Uint8Array(), + }; +} + +export const GenesisMetadata = { + $type: 'ibc.core.client.v1.GenesisMetadata' as const, + + encode( + message: GenesisMetadata, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.key.length !== 0) { + writer.uint32(10).bytes(message.key); + } + if (message.value.length !== 0) { + writer.uint32(18).bytes(message.value); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): GenesisMetadata { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseGenesisMetadata(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.key = reader.bytes(); + break; + case 2: + message.value = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): GenesisMetadata { + return { + $type: GenesisMetadata.$type, + key: isSet(object.key) ? bytesFromBase64(object.key) : new Uint8Array(), + value: isSet(object.value) + ? bytesFromBase64(object.value) + : new Uint8Array(), + }; + }, + + toJSON(message: GenesisMetadata): unknown { + const obj: any = {}; + message.key !== undefined && + (obj.key = base64FromBytes( + message.key !== undefined ? message.key : new Uint8Array(), + )); + message.value !== undefined && + (obj.value = base64FromBytes( + message.value !== undefined ? message.value : new Uint8Array(), + )); + return obj; + }, + + fromPartial, I>>( + object: I, + ): GenesisMetadata { + const message = createBaseGenesisMetadata(); + message.key = object.key ?? new Uint8Array(); + message.value = object.value ?? new Uint8Array(); + return message; + }, +}; + +messageTypeRegistry.set(GenesisMetadata.$type, GenesisMetadata); + +function createBaseIdentifiedGenesisMetadata(): IdentifiedGenesisMetadata { + return { + $type: 'ibc.core.client.v1.IdentifiedGenesisMetadata', + clientId: '', + clientMetadata: [], + }; +} + +export const IdentifiedGenesisMetadata = { + $type: 'ibc.core.client.v1.IdentifiedGenesisMetadata' as const, + + encode( + message: IdentifiedGenesisMetadata, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.clientId !== '') { + writer.uint32(10).string(message.clientId); + } + for (const v of message.clientMetadata) { + GenesisMetadata.encode(v!, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): IdentifiedGenesisMetadata { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseIdentifiedGenesisMetadata(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clientId = reader.string(); + break; + case 2: + message.clientMetadata.push( + GenesisMetadata.decode(reader, reader.uint32()), + ); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): IdentifiedGenesisMetadata { + return { + $type: IdentifiedGenesisMetadata.$type, + clientId: isSet(object.clientId) ? String(object.clientId) : '', + clientMetadata: Array.isArray(object?.clientMetadata) + ? object.clientMetadata.map((e: any) => GenesisMetadata.fromJSON(e)) + : [], + }; + }, + + toJSON(message: IdentifiedGenesisMetadata): unknown { + const obj: any = {}; + message.clientId !== undefined && (obj.clientId = message.clientId); + if (message.clientMetadata) { + obj.clientMetadata = message.clientMetadata.map(e => + e ? GenesisMetadata.toJSON(e) : undefined, + ); + } else { + obj.clientMetadata = []; + } + return obj; + }, + + fromPartial, I>>( + object: I, + ): IdentifiedGenesisMetadata { + const message = createBaseIdentifiedGenesisMetadata(); + message.clientId = object.clientId ?? ''; + message.clientMetadata = + object.clientMetadata?.map(e => GenesisMetadata.fromPartial(e)) || []; + return message; + }, +}; + +messageTypeRegistry.set( + IdentifiedGenesisMetadata.$type, + IdentifiedGenesisMetadata, +); + +declare var self: any | undefined; +declare var window: any | undefined; +declare var global: any | undefined; +var globalThis: any = (() => { + if (typeof globalThis !== 'undefined') return globalThis; + if (typeof self !== 'undefined') return self; + if (typeof window !== 'undefined') return window; + if (typeof global !== 'undefined') return global; + throw 'Unable to locate global object'; +})(); + +const atob: (b64: string) => string = + globalThis.atob || + (b64 => globalThis.Buffer.from(b64, 'base64').toString('binary')); +function bytesFromBase64(b64: string): Uint8Array { + const bin = atob(b64); + const arr = new Uint8Array(bin.length); + for (let i = 0; i < bin.length; ++i) { + arr[i] = bin.charCodeAt(i); + } + return arr; +} + +const btoa: (bin: string) => string = + globalThis.btoa || + (bin => globalThis.Buffer.from(bin, 'binary').toString('base64')); +function base64FromBytes(arr: Uint8Array): string { + const bin: string[] = []; + for (const byte of arr) { + bin.push(String.fromCharCode(byte)); + } + return btoa(bin.join('')); +} + +type Builtin = + | Date + | Function + | Uint8Array + | string + | number + | boolean + | undefined; + +export type DeepPartial = T extends Builtin + ? T + : T extends Long + ? string | number | Long + : T extends Array + ? Array> + : T extends ReadonlyArray + ? ReadonlyArray> + : T extends {} + ? { [K in Exclude]?: DeepPartial } + : Partial; + +type KeysOfUnion = T extends T ? keyof T : never; +export type Exact = P extends Builtin + ? P + : P & { [K in keyof P]: Exact } & Record< + Exclude | '$type'>, + never + >; + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/packages/api/src/generated/ibc/core/client/v1/query.ts b/packages/api/src/generated/ibc/core/client/v1/query.ts new file mode 100644 index 00000000..6e26a67f --- /dev/null +++ b/packages/api/src/generated/ibc/core/client/v1/query.ts @@ -0,0 +1,1971 @@ +/* eslint-disable */ +import { messageTypeRegistry } from '../../../../typeRegistry'; +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; +import { Any } from '../../../../google/protobuf/any'; +import { + Height, + Params, + IdentifiedClientState, + ConsensusStateWithHeight, +} from '../../../../ibc/core/client/v1/client'; +import { + PageRequest, + PageResponse, +} from '../../../../cosmos/base/query/v1beta1/pagination'; + +export const protobufPackage = 'ibc.core.client.v1'; + +/** + * QueryClientStateRequest is the request type for the Query/ClientState RPC + * method + */ +export interface QueryClientStateRequest { + $type: 'ibc.core.client.v1.QueryClientStateRequest'; + /** client state unique identifier */ + clientId: string; +} + +/** + * 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. + */ +export interface QueryClientStateResponse { + $type: 'ibc.core.client.v1.QueryClientStateResponse'; + /** client state associated with the request identifier */ + clientState?: Any; + /** merkle proof of existence */ + proof: Uint8Array; + /** height at which the proof was retrieved */ + proofHeight?: Height; +} + +/** + * QueryClientStatesRequest is the request type for the Query/ClientStates RPC + * method + */ +export interface QueryClientStatesRequest { + $type: 'ibc.core.client.v1.QueryClientStatesRequest'; + /** pagination request */ + pagination?: PageRequest; +} + +/** + * QueryClientStatesResponse is the response type for the Query/ClientStates RPC + * method. + */ +export interface QueryClientStatesResponse { + $type: 'ibc.core.client.v1.QueryClientStatesResponse'; + /** list of stored ClientStates of the chain. */ + clientStates: IdentifiedClientState[]; + /** pagination response */ + pagination?: PageResponse; +} + +/** + * 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. + */ +export interface QueryConsensusStateRequest { + $type: 'ibc.core.client.v1.QueryConsensusStateRequest'; + /** client identifier */ + clientId: string; + /** consensus state revision number */ + revisionNumber: Long; + /** consensus state revision height */ + revisionHeight: Long; + /** + * latest_height overrrides the height field and queries the latest stored + * ConsensusState + */ + latestHeight: boolean; +} + +/** + * QueryConsensusStateResponse is the response type for the Query/ConsensusState + * RPC method + */ +export interface QueryConsensusStateResponse { + $type: 'ibc.core.client.v1.QueryConsensusStateResponse'; + /** consensus state associated with the client identifier at the given height */ + consensusState?: Any; + /** merkle proof of existence */ + proof: Uint8Array; + /** height at which the proof was retrieved */ + proofHeight?: Height; +} + +/** + * QueryConsensusStatesRequest is the request type for the Query/ConsensusStates + * RPC method. + */ +export interface QueryConsensusStatesRequest { + $type: 'ibc.core.client.v1.QueryConsensusStatesRequest'; + /** client identifier */ + clientId: string; + /** pagination request */ + pagination?: PageRequest; +} + +/** + * QueryConsensusStatesResponse is the response type for the + * Query/ConsensusStates RPC method + */ +export interface QueryConsensusStatesResponse { + $type: 'ibc.core.client.v1.QueryConsensusStatesResponse'; + /** consensus states associated with the identifier */ + consensusStates: ConsensusStateWithHeight[]; + /** pagination response */ + pagination?: PageResponse; +} + +/** + * QueryConsensusStateHeightsRequest is the request type for Query/ConsensusStateHeights + * RPC method. + */ +export interface QueryConsensusStateHeightsRequest { + $type: 'ibc.core.client.v1.QueryConsensusStateHeightsRequest'; + /** client identifier */ + clientId: string; + /** pagination request */ + pagination?: PageRequest; +} + +/** + * QueryConsensusStateHeightsResponse is the response type for the + * Query/ConsensusStateHeights RPC method + */ +export interface QueryConsensusStateHeightsResponse { + $type: 'ibc.core.client.v1.QueryConsensusStateHeightsResponse'; + /** consensus state heights */ + consensusStateHeights: Height[]; + /** pagination response */ + pagination?: PageResponse; +} + +/** + * QueryClientStatusRequest is the request type for the Query/ClientStatus RPC + * method + */ +export interface QueryClientStatusRequest { + $type: 'ibc.core.client.v1.QueryClientStatusRequest'; + /** client unique identifier */ + clientId: string; +} + +/** + * QueryClientStatusResponse is the response type for the Query/ClientStatus RPC + * method. It returns the current status of the IBC client. + */ +export interface QueryClientStatusResponse { + $type: 'ibc.core.client.v1.QueryClientStatusResponse'; + status: string; +} + +/** + * QueryClientParamsRequest is the request type for the Query/ClientParams RPC + * method. + */ +export interface QueryClientParamsRequest { + $type: 'ibc.core.client.v1.QueryClientParamsRequest'; +} + +/** + * QueryClientParamsResponse is the response type for the Query/ClientParams RPC + * method. + */ +export interface QueryClientParamsResponse { + $type: 'ibc.core.client.v1.QueryClientParamsResponse'; + /** params defines the parameters of the module. */ + params?: Params; +} + +/** + * QueryUpgradedClientStateRequest is the request type for the + * Query/UpgradedClientState RPC method + */ +export interface QueryUpgradedClientStateRequest { + $type: 'ibc.core.client.v1.QueryUpgradedClientStateRequest'; +} + +/** + * QueryUpgradedClientStateResponse is the response type for the + * Query/UpgradedClientState RPC method. + */ +export interface QueryUpgradedClientStateResponse { + $type: 'ibc.core.client.v1.QueryUpgradedClientStateResponse'; + /** client state associated with the request identifier */ + upgradedClientState?: Any; +} + +/** + * QueryUpgradedConsensusStateRequest is the request type for the + * Query/UpgradedConsensusState RPC method + */ +export interface QueryUpgradedConsensusStateRequest { + $type: 'ibc.core.client.v1.QueryUpgradedConsensusStateRequest'; +} + +/** + * QueryUpgradedConsensusStateResponse is the response type for the + * Query/UpgradedConsensusState RPC method. + */ +export interface QueryUpgradedConsensusStateResponse { + $type: 'ibc.core.client.v1.QueryUpgradedConsensusStateResponse'; + /** Consensus state associated with the request identifier */ + upgradedConsensusState?: Any; +} + +function createBaseQueryClientStateRequest(): QueryClientStateRequest { + return { $type: 'ibc.core.client.v1.QueryClientStateRequest', clientId: '' }; +} + +export const QueryClientStateRequest = { + $type: 'ibc.core.client.v1.QueryClientStateRequest' as const, + + encode( + message: QueryClientStateRequest, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.clientId !== '') { + writer.uint32(10).string(message.clientId); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryClientStateRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryClientStateRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clientId = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryClientStateRequest { + return { + $type: QueryClientStateRequest.$type, + clientId: isSet(object.clientId) ? String(object.clientId) : '', + }; + }, + + toJSON(message: QueryClientStateRequest): unknown { + const obj: any = {}; + message.clientId !== undefined && (obj.clientId = message.clientId); + return obj; + }, + + fromPartial, I>>( + object: I, + ): QueryClientStateRequest { + const message = createBaseQueryClientStateRequest(); + message.clientId = object.clientId ?? ''; + return message; + }, +}; + +messageTypeRegistry.set(QueryClientStateRequest.$type, QueryClientStateRequest); + +function createBaseQueryClientStateResponse(): QueryClientStateResponse { + return { + $type: 'ibc.core.client.v1.QueryClientStateResponse', + clientState: undefined, + proof: new Uint8Array(), + proofHeight: undefined, + }; +} + +export const QueryClientStateResponse = { + $type: 'ibc.core.client.v1.QueryClientStateResponse' as const, + + encode( + message: QueryClientStateResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.clientState !== undefined) { + Any.encode(message.clientState, writer.uint32(10).fork()).ldelim(); + } + if (message.proof.length !== 0) { + writer.uint32(18).bytes(message.proof); + } + if (message.proofHeight !== undefined) { + Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryClientStateResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryClientStateResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clientState = Any.decode(reader, reader.uint32()); + break; + case 2: + message.proof = reader.bytes(); + break; + case 3: + message.proofHeight = Height.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryClientStateResponse { + return { + $type: QueryClientStateResponse.$type, + clientState: isSet(object.clientState) + ? Any.fromJSON(object.clientState) + : undefined, + proof: isSet(object.proof) + ? bytesFromBase64(object.proof) + : new Uint8Array(), + proofHeight: isSet(object.proofHeight) + ? Height.fromJSON(object.proofHeight) + : undefined, + }; + }, + + toJSON(message: QueryClientStateResponse): unknown { + const obj: any = {}; + message.clientState !== undefined && + (obj.clientState = message.clientState + ? Any.toJSON(message.clientState) + : undefined); + message.proof !== undefined && + (obj.proof = base64FromBytes( + message.proof !== undefined ? message.proof : new Uint8Array(), + )); + message.proofHeight !== undefined && + (obj.proofHeight = message.proofHeight + ? Height.toJSON(message.proofHeight) + : undefined); + return obj; + }, + + fromPartial, I>>( + object: I, + ): QueryClientStateResponse { + const message = createBaseQueryClientStateResponse(); + message.clientState = + object.clientState !== undefined && object.clientState !== null + ? Any.fromPartial(object.clientState) + : undefined; + message.proof = object.proof ?? new Uint8Array(); + message.proofHeight = + object.proofHeight !== undefined && object.proofHeight !== null + ? Height.fromPartial(object.proofHeight) + : undefined; + return message; + }, +}; + +messageTypeRegistry.set( + QueryClientStateResponse.$type, + QueryClientStateResponse, +); + +function createBaseQueryClientStatesRequest(): QueryClientStatesRequest { + return { + $type: 'ibc.core.client.v1.QueryClientStatesRequest', + pagination: undefined, + }; +} + +export const QueryClientStatesRequest = { + $type: 'ibc.core.client.v1.QueryClientStatesRequest' as const, + + encode( + message: QueryClientStatesRequest, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.pagination !== undefined) { + PageRequest.encode(message.pagination, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryClientStatesRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryClientStatesRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.pagination = PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryClientStatesRequest { + return { + $type: QueryClientStatesRequest.$type, + pagination: isSet(object.pagination) + ? PageRequest.fromJSON(object.pagination) + : undefined, + }; + }, + + toJSON(message: QueryClientStatesRequest): unknown { + const obj: any = {}; + message.pagination !== undefined && + (obj.pagination = message.pagination + ? PageRequest.toJSON(message.pagination) + : undefined); + return obj; + }, + + fromPartial, I>>( + object: I, + ): QueryClientStatesRequest { + const message = createBaseQueryClientStatesRequest(); + message.pagination = + object.pagination !== undefined && object.pagination !== null + ? PageRequest.fromPartial(object.pagination) + : undefined; + return message; + }, +}; + +messageTypeRegistry.set( + QueryClientStatesRequest.$type, + QueryClientStatesRequest, +); + +function createBaseQueryClientStatesResponse(): QueryClientStatesResponse { + return { + $type: 'ibc.core.client.v1.QueryClientStatesResponse', + clientStates: [], + pagination: undefined, + }; +} + +export const QueryClientStatesResponse = { + $type: 'ibc.core.client.v1.QueryClientStatesResponse' as const, + + encode( + message: QueryClientStatesResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + for (const v of message.clientStates) { + IdentifiedClientState.encode(v!, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + PageResponse.encode( + message.pagination, + writer.uint32(18).fork(), + ).ldelim(); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryClientStatesResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryClientStatesResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clientStates.push( + IdentifiedClientState.decode(reader, reader.uint32()), + ); + break; + case 2: + message.pagination = PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryClientStatesResponse { + return { + $type: QueryClientStatesResponse.$type, + clientStates: Array.isArray(object?.clientStates) + ? object.clientStates.map((e: any) => IdentifiedClientState.fromJSON(e)) + : [], + pagination: isSet(object.pagination) + ? PageResponse.fromJSON(object.pagination) + : undefined, + }; + }, + + toJSON(message: QueryClientStatesResponse): unknown { + const obj: any = {}; + if (message.clientStates) { + obj.clientStates = message.clientStates.map(e => + e ? IdentifiedClientState.toJSON(e) : undefined, + ); + } else { + obj.clientStates = []; + } + message.pagination !== undefined && + (obj.pagination = message.pagination + ? PageResponse.toJSON(message.pagination) + : undefined); + return obj; + }, + + fromPartial, I>>( + object: I, + ): QueryClientStatesResponse { + const message = createBaseQueryClientStatesResponse(); + message.clientStates = + object.clientStates?.map(e => IdentifiedClientState.fromPartial(e)) || []; + message.pagination = + object.pagination !== undefined && object.pagination !== null + ? PageResponse.fromPartial(object.pagination) + : undefined; + return message; + }, +}; + +messageTypeRegistry.set( + QueryClientStatesResponse.$type, + QueryClientStatesResponse, +); + +function createBaseQueryConsensusStateRequest(): QueryConsensusStateRequest { + return { + $type: 'ibc.core.client.v1.QueryConsensusStateRequest', + clientId: '', + revisionNumber: Long.UZERO, + revisionHeight: Long.UZERO, + latestHeight: false, + }; +} + +export const QueryConsensusStateRequest = { + $type: 'ibc.core.client.v1.QueryConsensusStateRequest' as const, + + encode( + message: QueryConsensusStateRequest, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.clientId !== '') { + writer.uint32(10).string(message.clientId); + } + if (!message.revisionNumber.isZero()) { + writer.uint32(16).uint64(message.revisionNumber); + } + if (!message.revisionHeight.isZero()) { + writer.uint32(24).uint64(message.revisionHeight); + } + if (message.latestHeight === true) { + writer.uint32(32).bool(message.latestHeight); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryConsensusStateRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryConsensusStateRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clientId = reader.string(); + break; + case 2: + message.revisionNumber = reader.uint64() as Long; + break; + case 3: + message.revisionHeight = reader.uint64() as Long; + break; + case 4: + message.latestHeight = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryConsensusStateRequest { + return { + $type: QueryConsensusStateRequest.$type, + clientId: isSet(object.clientId) ? String(object.clientId) : '', + revisionNumber: isSet(object.revisionNumber) + ? Long.fromString(object.revisionNumber) + : Long.UZERO, + revisionHeight: isSet(object.revisionHeight) + ? Long.fromString(object.revisionHeight) + : Long.UZERO, + latestHeight: isSet(object.latestHeight) + ? Boolean(object.latestHeight) + : false, + }; + }, + + toJSON(message: QueryConsensusStateRequest): unknown { + const obj: any = {}; + message.clientId !== undefined && (obj.clientId = message.clientId); + message.revisionNumber !== undefined && + (obj.revisionNumber = (message.revisionNumber || Long.UZERO).toString()); + message.revisionHeight !== undefined && + (obj.revisionHeight = (message.revisionHeight || Long.UZERO).toString()); + message.latestHeight !== undefined && + (obj.latestHeight = message.latestHeight); + return obj; + }, + + fromPartial, I>>( + object: I, + ): QueryConsensusStateRequest { + const message = createBaseQueryConsensusStateRequest(); + message.clientId = object.clientId ?? ''; + message.revisionNumber = + object.revisionNumber !== undefined && object.revisionNumber !== null + ? Long.fromValue(object.revisionNumber) + : Long.UZERO; + message.revisionHeight = + object.revisionHeight !== undefined && object.revisionHeight !== null + ? Long.fromValue(object.revisionHeight) + : Long.UZERO; + message.latestHeight = object.latestHeight ?? false; + return message; + }, +}; + +messageTypeRegistry.set( + QueryConsensusStateRequest.$type, + QueryConsensusStateRequest, +); + +function createBaseQueryConsensusStateResponse(): QueryConsensusStateResponse { + return { + $type: 'ibc.core.client.v1.QueryConsensusStateResponse', + consensusState: undefined, + proof: new Uint8Array(), + proofHeight: undefined, + }; +} + +export const QueryConsensusStateResponse = { + $type: 'ibc.core.client.v1.QueryConsensusStateResponse' as const, + + encode( + message: QueryConsensusStateResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.consensusState !== undefined) { + Any.encode(message.consensusState, writer.uint32(10).fork()).ldelim(); + } + if (message.proof.length !== 0) { + writer.uint32(18).bytes(message.proof); + } + if (message.proofHeight !== undefined) { + Height.encode(message.proofHeight, writer.uint32(26).fork()).ldelim(); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryConsensusStateResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryConsensusStateResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.consensusState = Any.decode(reader, reader.uint32()); + break; + case 2: + message.proof = reader.bytes(); + break; + case 3: + message.proofHeight = Height.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryConsensusStateResponse { + return { + $type: QueryConsensusStateResponse.$type, + consensusState: isSet(object.consensusState) + ? Any.fromJSON(object.consensusState) + : undefined, + proof: isSet(object.proof) + ? bytesFromBase64(object.proof) + : new Uint8Array(), + proofHeight: isSet(object.proofHeight) + ? Height.fromJSON(object.proofHeight) + : undefined, + }; + }, + + toJSON(message: QueryConsensusStateResponse): unknown { + const obj: any = {}; + message.consensusState !== undefined && + (obj.consensusState = message.consensusState + ? Any.toJSON(message.consensusState) + : undefined); + message.proof !== undefined && + (obj.proof = base64FromBytes( + message.proof !== undefined ? message.proof : new Uint8Array(), + )); + message.proofHeight !== undefined && + (obj.proofHeight = message.proofHeight + ? Height.toJSON(message.proofHeight) + : undefined); + return obj; + }, + + fromPartial, I>>( + object: I, + ): QueryConsensusStateResponse { + const message = createBaseQueryConsensusStateResponse(); + message.consensusState = + object.consensusState !== undefined && object.consensusState !== null + ? Any.fromPartial(object.consensusState) + : undefined; + message.proof = object.proof ?? new Uint8Array(); + message.proofHeight = + object.proofHeight !== undefined && object.proofHeight !== null + ? Height.fromPartial(object.proofHeight) + : undefined; + return message; + }, +}; + +messageTypeRegistry.set( + QueryConsensusStateResponse.$type, + QueryConsensusStateResponse, +); + +function createBaseQueryConsensusStatesRequest(): QueryConsensusStatesRequest { + return { + $type: 'ibc.core.client.v1.QueryConsensusStatesRequest', + clientId: '', + pagination: undefined, + }; +} + +export const QueryConsensusStatesRequest = { + $type: 'ibc.core.client.v1.QueryConsensusStatesRequest' as const, + + encode( + message: QueryConsensusStatesRequest, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.clientId !== '') { + writer.uint32(10).string(message.clientId); + } + if (message.pagination !== undefined) { + PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryConsensusStatesRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryConsensusStatesRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clientId = reader.string(); + break; + case 2: + message.pagination = PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryConsensusStatesRequest { + return { + $type: QueryConsensusStatesRequest.$type, + clientId: isSet(object.clientId) ? String(object.clientId) : '', + pagination: isSet(object.pagination) + ? PageRequest.fromJSON(object.pagination) + : undefined, + }; + }, + + toJSON(message: QueryConsensusStatesRequest): unknown { + const obj: any = {}; + message.clientId !== undefined && (obj.clientId = message.clientId); + message.pagination !== undefined && + (obj.pagination = message.pagination + ? PageRequest.toJSON(message.pagination) + : undefined); + return obj; + }, + + fromPartial, I>>( + object: I, + ): QueryConsensusStatesRequest { + const message = createBaseQueryConsensusStatesRequest(); + message.clientId = object.clientId ?? ''; + message.pagination = + object.pagination !== undefined && object.pagination !== null + ? PageRequest.fromPartial(object.pagination) + : undefined; + return message; + }, +}; + +messageTypeRegistry.set( + QueryConsensusStatesRequest.$type, + QueryConsensusStatesRequest, +); + +function createBaseQueryConsensusStatesResponse(): QueryConsensusStatesResponse { + return { + $type: 'ibc.core.client.v1.QueryConsensusStatesResponse', + consensusStates: [], + pagination: undefined, + }; +} + +export const QueryConsensusStatesResponse = { + $type: 'ibc.core.client.v1.QueryConsensusStatesResponse' as const, + + encode( + message: QueryConsensusStatesResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + for (const v of message.consensusStates) { + ConsensusStateWithHeight.encode(v!, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + PageResponse.encode( + message.pagination, + writer.uint32(18).fork(), + ).ldelim(); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryConsensusStatesResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryConsensusStatesResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.consensusStates.push( + ConsensusStateWithHeight.decode(reader, reader.uint32()), + ); + break; + case 2: + message.pagination = PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryConsensusStatesResponse { + return { + $type: QueryConsensusStatesResponse.$type, + consensusStates: Array.isArray(object?.consensusStates) + ? object.consensusStates.map((e: any) => + ConsensusStateWithHeight.fromJSON(e), + ) + : [], + pagination: isSet(object.pagination) + ? PageResponse.fromJSON(object.pagination) + : undefined, + }; + }, + + toJSON(message: QueryConsensusStatesResponse): unknown { + const obj: any = {}; + if (message.consensusStates) { + obj.consensusStates = message.consensusStates.map(e => + e ? ConsensusStateWithHeight.toJSON(e) : undefined, + ); + } else { + obj.consensusStates = []; + } + message.pagination !== undefined && + (obj.pagination = message.pagination + ? PageResponse.toJSON(message.pagination) + : undefined); + return obj; + }, + + fromPartial, I>>( + object: I, + ): QueryConsensusStatesResponse { + const message = createBaseQueryConsensusStatesResponse(); + message.consensusStates = + object.consensusStates?.map(e => + ConsensusStateWithHeight.fromPartial(e), + ) || []; + message.pagination = + object.pagination !== undefined && object.pagination !== null + ? PageResponse.fromPartial(object.pagination) + : undefined; + return message; + }, +}; + +messageTypeRegistry.set( + QueryConsensusStatesResponse.$type, + QueryConsensusStatesResponse, +); + +function createBaseQueryConsensusStateHeightsRequest(): QueryConsensusStateHeightsRequest { + return { + $type: 'ibc.core.client.v1.QueryConsensusStateHeightsRequest', + clientId: '', + pagination: undefined, + }; +} + +export const QueryConsensusStateHeightsRequest = { + $type: 'ibc.core.client.v1.QueryConsensusStateHeightsRequest' as const, + + encode( + message: QueryConsensusStateHeightsRequest, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.clientId !== '') { + writer.uint32(10).string(message.clientId); + } + if (message.pagination !== undefined) { + PageRequest.encode(message.pagination, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryConsensusStateHeightsRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryConsensusStateHeightsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clientId = reader.string(); + break; + case 2: + message.pagination = PageRequest.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryConsensusStateHeightsRequest { + return { + $type: QueryConsensusStateHeightsRequest.$type, + clientId: isSet(object.clientId) ? String(object.clientId) : '', + pagination: isSet(object.pagination) + ? PageRequest.fromJSON(object.pagination) + : undefined, + }; + }, + + toJSON(message: QueryConsensusStateHeightsRequest): unknown { + const obj: any = {}; + message.clientId !== undefined && (obj.clientId = message.clientId); + message.pagination !== undefined && + (obj.pagination = message.pagination + ? PageRequest.toJSON(message.pagination) + : undefined); + return obj; + }, + + fromPartial< + I extends Exact, I>, + >(object: I): QueryConsensusStateHeightsRequest { + const message = createBaseQueryConsensusStateHeightsRequest(); + message.clientId = object.clientId ?? ''; + message.pagination = + object.pagination !== undefined && object.pagination !== null + ? PageRequest.fromPartial(object.pagination) + : undefined; + return message; + }, +}; + +messageTypeRegistry.set( + QueryConsensusStateHeightsRequest.$type, + QueryConsensusStateHeightsRequest, +); + +function createBaseQueryConsensusStateHeightsResponse(): QueryConsensusStateHeightsResponse { + return { + $type: 'ibc.core.client.v1.QueryConsensusStateHeightsResponse', + consensusStateHeights: [], + pagination: undefined, + }; +} + +export const QueryConsensusStateHeightsResponse = { + $type: 'ibc.core.client.v1.QueryConsensusStateHeightsResponse' as const, + + encode( + message: QueryConsensusStateHeightsResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + for (const v of message.consensusStateHeights) { + Height.encode(v!, writer.uint32(10).fork()).ldelim(); + } + if (message.pagination !== undefined) { + PageResponse.encode( + message.pagination, + writer.uint32(18).fork(), + ).ldelim(); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryConsensusStateHeightsResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryConsensusStateHeightsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.consensusStateHeights.push( + Height.decode(reader, reader.uint32()), + ); + break; + case 2: + message.pagination = PageResponse.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryConsensusStateHeightsResponse { + return { + $type: QueryConsensusStateHeightsResponse.$type, + consensusStateHeights: Array.isArray(object?.consensusStateHeights) + ? object.consensusStateHeights.map((e: any) => Height.fromJSON(e)) + : [], + pagination: isSet(object.pagination) + ? PageResponse.fromJSON(object.pagination) + : undefined, + }; + }, + + toJSON(message: QueryConsensusStateHeightsResponse): unknown { + const obj: any = {}; + if (message.consensusStateHeights) { + obj.consensusStateHeights = message.consensusStateHeights.map(e => + e ? Height.toJSON(e) : undefined, + ); + } else { + obj.consensusStateHeights = []; + } + message.pagination !== undefined && + (obj.pagination = message.pagination + ? PageResponse.toJSON(message.pagination) + : undefined); + return obj; + }, + + fromPartial< + I extends Exact, I>, + >(object: I): QueryConsensusStateHeightsResponse { + const message = createBaseQueryConsensusStateHeightsResponse(); + message.consensusStateHeights = + object.consensusStateHeights?.map(e => Height.fromPartial(e)) || []; + message.pagination = + object.pagination !== undefined && object.pagination !== null + ? PageResponse.fromPartial(object.pagination) + : undefined; + return message; + }, +}; + +messageTypeRegistry.set( + QueryConsensusStateHeightsResponse.$type, + QueryConsensusStateHeightsResponse, +); + +function createBaseQueryClientStatusRequest(): QueryClientStatusRequest { + return { $type: 'ibc.core.client.v1.QueryClientStatusRequest', clientId: '' }; +} + +export const QueryClientStatusRequest = { + $type: 'ibc.core.client.v1.QueryClientStatusRequest' as const, + + encode( + message: QueryClientStatusRequest, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.clientId !== '') { + writer.uint32(10).string(message.clientId); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryClientStatusRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryClientStatusRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clientId = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryClientStatusRequest { + return { + $type: QueryClientStatusRequest.$type, + clientId: isSet(object.clientId) ? String(object.clientId) : '', + }; + }, + + toJSON(message: QueryClientStatusRequest): unknown { + const obj: any = {}; + message.clientId !== undefined && (obj.clientId = message.clientId); + return obj; + }, + + fromPartial, I>>( + object: I, + ): QueryClientStatusRequest { + const message = createBaseQueryClientStatusRequest(); + message.clientId = object.clientId ?? ''; + return message; + }, +}; + +messageTypeRegistry.set( + QueryClientStatusRequest.$type, + QueryClientStatusRequest, +); + +function createBaseQueryClientStatusResponse(): QueryClientStatusResponse { + return { $type: 'ibc.core.client.v1.QueryClientStatusResponse', status: '' }; +} + +export const QueryClientStatusResponse = { + $type: 'ibc.core.client.v1.QueryClientStatusResponse' as const, + + encode( + message: QueryClientStatusResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.status !== '') { + writer.uint32(10).string(message.status); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryClientStatusResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryClientStatusResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.status = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryClientStatusResponse { + return { + $type: QueryClientStatusResponse.$type, + status: isSet(object.status) ? String(object.status) : '', + }; + }, + + toJSON(message: QueryClientStatusResponse): unknown { + const obj: any = {}; + message.status !== undefined && (obj.status = message.status); + return obj; + }, + + fromPartial, I>>( + object: I, + ): QueryClientStatusResponse { + const message = createBaseQueryClientStatusResponse(); + message.status = object.status ?? ''; + return message; + }, +}; + +messageTypeRegistry.set( + QueryClientStatusResponse.$type, + QueryClientStatusResponse, +); + +function createBaseQueryClientParamsRequest(): QueryClientParamsRequest { + return { $type: 'ibc.core.client.v1.QueryClientParamsRequest' }; +} + +export const QueryClientParamsRequest = { + $type: 'ibc.core.client.v1.QueryClientParamsRequest' as const, + + encode( + _: QueryClientParamsRequest, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryClientParamsRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryClientParamsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(_: any): QueryClientParamsRequest { + return { + $type: QueryClientParamsRequest.$type, + }; + }, + + toJSON(_: QueryClientParamsRequest): unknown { + const obj: any = {}; + return obj; + }, + + fromPartial, I>>( + _: I, + ): QueryClientParamsRequest { + const message = createBaseQueryClientParamsRequest(); + return message; + }, +}; + +messageTypeRegistry.set( + QueryClientParamsRequest.$type, + QueryClientParamsRequest, +); + +function createBaseQueryClientParamsResponse(): QueryClientParamsResponse { + return { + $type: 'ibc.core.client.v1.QueryClientParamsResponse', + params: undefined, + }; +} + +export const QueryClientParamsResponse = { + $type: 'ibc.core.client.v1.QueryClientParamsResponse' as const, + + encode( + message: QueryClientParamsResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.params !== undefined) { + Params.encode(message.params, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryClientParamsResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryClientParamsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.params = Params.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryClientParamsResponse { + return { + $type: QueryClientParamsResponse.$type, + params: isSet(object.params) ? Params.fromJSON(object.params) : undefined, + }; + }, + + toJSON(message: QueryClientParamsResponse): unknown { + const obj: any = {}; + message.params !== undefined && + (obj.params = message.params ? Params.toJSON(message.params) : undefined); + return obj; + }, + + fromPartial, I>>( + object: I, + ): QueryClientParamsResponse { + const message = createBaseQueryClientParamsResponse(); + message.params = + object.params !== undefined && object.params !== null + ? Params.fromPartial(object.params) + : undefined; + return message; + }, +}; + +messageTypeRegistry.set( + QueryClientParamsResponse.$type, + QueryClientParamsResponse, +); + +function createBaseQueryUpgradedClientStateRequest(): QueryUpgradedClientStateRequest { + return { $type: 'ibc.core.client.v1.QueryUpgradedClientStateRequest' }; +} + +export const QueryUpgradedClientStateRequest = { + $type: 'ibc.core.client.v1.QueryUpgradedClientStateRequest' as const, + + encode( + _: QueryUpgradedClientStateRequest, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryUpgradedClientStateRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryUpgradedClientStateRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(_: any): QueryUpgradedClientStateRequest { + return { + $type: QueryUpgradedClientStateRequest.$type, + }; + }, + + toJSON(_: QueryUpgradedClientStateRequest): unknown { + const obj: any = {}; + return obj; + }, + + fromPartial, I>>( + _: I, + ): QueryUpgradedClientStateRequest { + const message = createBaseQueryUpgradedClientStateRequest(); + return message; + }, +}; + +messageTypeRegistry.set( + QueryUpgradedClientStateRequest.$type, + QueryUpgradedClientStateRequest, +); + +function createBaseQueryUpgradedClientStateResponse(): QueryUpgradedClientStateResponse { + return { + $type: 'ibc.core.client.v1.QueryUpgradedClientStateResponse', + upgradedClientState: undefined, + }; +} + +export const QueryUpgradedClientStateResponse = { + $type: 'ibc.core.client.v1.QueryUpgradedClientStateResponse' as const, + + encode( + message: QueryUpgradedClientStateResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.upgradedClientState !== undefined) { + Any.encode( + message.upgradedClientState, + writer.uint32(10).fork(), + ).ldelim(); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryUpgradedClientStateResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryUpgradedClientStateResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.upgradedClientState = Any.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryUpgradedClientStateResponse { + return { + $type: QueryUpgradedClientStateResponse.$type, + upgradedClientState: isSet(object.upgradedClientState) + ? Any.fromJSON(object.upgradedClientState) + : undefined, + }; + }, + + toJSON(message: QueryUpgradedClientStateResponse): unknown { + const obj: any = {}; + message.upgradedClientState !== undefined && + (obj.upgradedClientState = message.upgradedClientState + ? Any.toJSON(message.upgradedClientState) + : undefined); + return obj; + }, + + fromPartial< + I extends Exact, I>, + >(object: I): QueryUpgradedClientStateResponse { + const message = createBaseQueryUpgradedClientStateResponse(); + message.upgradedClientState = + object.upgradedClientState !== undefined && + object.upgradedClientState !== null + ? Any.fromPartial(object.upgradedClientState) + : undefined; + return message; + }, +}; + +messageTypeRegistry.set( + QueryUpgradedClientStateResponse.$type, + QueryUpgradedClientStateResponse, +); + +function createBaseQueryUpgradedConsensusStateRequest(): QueryUpgradedConsensusStateRequest { + return { $type: 'ibc.core.client.v1.QueryUpgradedConsensusStateRequest' }; +} + +export const QueryUpgradedConsensusStateRequest = { + $type: 'ibc.core.client.v1.QueryUpgradedConsensusStateRequest' as const, + + encode( + _: QueryUpgradedConsensusStateRequest, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryUpgradedConsensusStateRequest { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryUpgradedConsensusStateRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(_: any): QueryUpgradedConsensusStateRequest { + return { + $type: QueryUpgradedConsensusStateRequest.$type, + }; + }, + + toJSON(_: QueryUpgradedConsensusStateRequest): unknown { + const obj: any = {}; + return obj; + }, + + fromPartial< + I extends Exact, I>, + >(_: I): QueryUpgradedConsensusStateRequest { + const message = createBaseQueryUpgradedConsensusStateRequest(); + return message; + }, +}; + +messageTypeRegistry.set( + QueryUpgradedConsensusStateRequest.$type, + QueryUpgradedConsensusStateRequest, +); + +function createBaseQueryUpgradedConsensusStateResponse(): QueryUpgradedConsensusStateResponse { + return { + $type: 'ibc.core.client.v1.QueryUpgradedConsensusStateResponse', + upgradedConsensusState: undefined, + }; +} + +export const QueryUpgradedConsensusStateResponse = { + $type: 'ibc.core.client.v1.QueryUpgradedConsensusStateResponse' as const, + + encode( + message: QueryUpgradedConsensusStateResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.upgradedConsensusState !== undefined) { + Any.encode( + message.upgradedConsensusState, + writer.uint32(10).fork(), + ).ldelim(); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): QueryUpgradedConsensusStateResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseQueryUpgradedConsensusStateResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.upgradedConsensusState = Any.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): QueryUpgradedConsensusStateResponse { + return { + $type: QueryUpgradedConsensusStateResponse.$type, + upgradedConsensusState: isSet(object.upgradedConsensusState) + ? Any.fromJSON(object.upgradedConsensusState) + : undefined, + }; + }, + + toJSON(message: QueryUpgradedConsensusStateResponse): unknown { + const obj: any = {}; + message.upgradedConsensusState !== undefined && + (obj.upgradedConsensusState = message.upgradedConsensusState + ? Any.toJSON(message.upgradedConsensusState) + : undefined); + return obj; + }, + + fromPartial< + I extends Exact, I>, + >(object: I): QueryUpgradedConsensusStateResponse { + const message = createBaseQueryUpgradedConsensusStateResponse(); + message.upgradedConsensusState = + object.upgradedConsensusState !== undefined && + object.upgradedConsensusState !== null + ? Any.fromPartial(object.upgradedConsensusState) + : undefined; + return message; + }, +}; + +messageTypeRegistry.set( + QueryUpgradedConsensusStateResponse.$type, + QueryUpgradedConsensusStateResponse, +); + +/** Query provides defines the gRPC querier service */ +export interface Query { + /** ClientState queries an IBC light client. */ + ClientState( + request: DeepPartial, + ): Promise; + /** ClientStates queries all the IBC light clients of a chain. */ + ClientStates( + request: DeepPartial, + ): Promise; + /** + * ConsensusState queries a consensus state associated with a client state at + * a given height. + */ + ConsensusState( + request: DeepPartial, + ): Promise; + /** + * ConsensusStates queries all the consensus state associated with a given + * client. + */ + ConsensusStates( + request: DeepPartial, + ): Promise; + /** ConsensusStateHeights queries the height of every consensus states associated with a given client. */ + ConsensusStateHeights( + request: DeepPartial, + ): Promise; + /** Status queries the status of an IBC client. */ + ClientStatus( + request: DeepPartial, + ): Promise; + /** ClientParams queries all parameters of the ibc client. */ + ClientParams( + request: DeepPartial, + ): Promise; + /** UpgradedClientState queries an Upgraded IBC light client. */ + UpgradedClientState( + request: DeepPartial, + ): Promise; + /** UpgradedConsensusState queries an Upgraded IBC consensus state. */ + UpgradedConsensusState( + request: DeepPartial, + ): Promise; +} + +export class QueryClientImpl implements Query { + private readonly rpc: Rpc; + constructor(rpc: Rpc) { + this.rpc = rpc; + this.ClientState = this.ClientState.bind(this); + this.ClientStates = this.ClientStates.bind(this); + this.ConsensusState = this.ConsensusState.bind(this); + this.ConsensusStates = this.ConsensusStates.bind(this); + this.ConsensusStateHeights = this.ConsensusStateHeights.bind(this); + this.ClientStatus = this.ClientStatus.bind(this); + this.ClientParams = this.ClientParams.bind(this); + this.UpgradedClientState = this.UpgradedClientState.bind(this); + this.UpgradedConsensusState = this.UpgradedConsensusState.bind(this); + } + ClientState( + request: DeepPartial, + ): Promise { + const fromPartial = QueryClientStateRequest.fromPartial(request); + const data = QueryClientStateRequest.encode(fromPartial).finish(); + const promise = this.rpc.request( + 'ibc.core.client.v1.Query', + 'ClientState', + data, + ); + return promise.then(data => + QueryClientStateResponse.decode(new _m0.Reader(data)), + ); + } + + ClientStates( + request: DeepPartial, + ): Promise { + const fromPartial = QueryClientStatesRequest.fromPartial(request); + const data = QueryClientStatesRequest.encode(fromPartial).finish(); + const promise = this.rpc.request( + 'ibc.core.client.v1.Query', + 'ClientStates', + data, + ); + return promise.then(data => + QueryClientStatesResponse.decode(new _m0.Reader(data)), + ); + } + + ConsensusState( + request: DeepPartial, + ): Promise { + const fromPartial = QueryConsensusStateRequest.fromPartial(request); + const data = QueryConsensusStateRequest.encode(fromPartial).finish(); + const promise = this.rpc.request( + 'ibc.core.client.v1.Query', + 'ConsensusState', + data, + ); + return promise.then(data => + QueryConsensusStateResponse.decode(new _m0.Reader(data)), + ); + } + + ConsensusStates( + request: DeepPartial, + ): Promise { + const fromPartial = QueryConsensusStatesRequest.fromPartial(request); + const data = QueryConsensusStatesRequest.encode(fromPartial).finish(); + const promise = this.rpc.request( + 'ibc.core.client.v1.Query', + 'ConsensusStates', + data, + ); + return promise.then(data => + QueryConsensusStatesResponse.decode(new _m0.Reader(data)), + ); + } + + ConsensusStateHeights( + request: DeepPartial, + ): Promise { + const fromPartial = QueryConsensusStateHeightsRequest.fromPartial(request); + const data = QueryConsensusStateHeightsRequest.encode(fromPartial).finish(); + const promise = this.rpc.request( + 'ibc.core.client.v1.Query', + 'ConsensusStateHeights', + data, + ); + return promise.then(data => + QueryConsensusStateHeightsResponse.decode(new _m0.Reader(data)), + ); + } + + ClientStatus( + request: DeepPartial, + ): Promise { + const fromPartial = QueryClientStatusRequest.fromPartial(request); + const data = QueryClientStatusRequest.encode(fromPartial).finish(); + const promise = this.rpc.request( + 'ibc.core.client.v1.Query', + 'ClientStatus', + data, + ); + return promise.then(data => + QueryClientStatusResponse.decode(new _m0.Reader(data)), + ); + } + + ClientParams( + request: DeepPartial, + ): Promise { + const fromPartial = QueryClientParamsRequest.fromPartial(request); + const data = QueryClientParamsRequest.encode(fromPartial).finish(); + const promise = this.rpc.request( + 'ibc.core.client.v1.Query', + 'ClientParams', + data, + ); + return promise.then(data => + QueryClientParamsResponse.decode(new _m0.Reader(data)), + ); + } + + UpgradedClientState( + request: DeepPartial, + ): Promise { + const fromPartial = QueryUpgradedClientStateRequest.fromPartial(request); + const data = QueryUpgradedClientStateRequest.encode(fromPartial).finish(); + const promise = this.rpc.request( + 'ibc.core.client.v1.Query', + 'UpgradedClientState', + data, + ); + return promise.then(data => + QueryUpgradedClientStateResponse.decode(new _m0.Reader(data)), + ); + } + + UpgradedConsensusState( + request: DeepPartial, + ): Promise { + const fromPartial = QueryUpgradedConsensusStateRequest.fromPartial(request); + const data = + QueryUpgradedConsensusStateRequest.encode(fromPartial).finish(); + const promise = this.rpc.request( + 'ibc.core.client.v1.Query', + 'UpgradedConsensusState', + data, + ); + return promise.then(data => + QueryUpgradedConsensusStateResponse.decode(new _m0.Reader(data)), + ); + } +} + +interface Rpc { + request( + service: string, + method: string, + data: Uint8Array, + ): Promise; +} + +declare var self: any | undefined; +declare var window: any | undefined; +declare var global: any | undefined; +var globalThis: any = (() => { + if (typeof globalThis !== 'undefined') return globalThis; + if (typeof self !== 'undefined') return self; + if (typeof window !== 'undefined') return window; + if (typeof global !== 'undefined') return global; + throw 'Unable to locate global object'; +})(); + +const atob: (b64: string) => string = + globalThis.atob || + (b64 => globalThis.Buffer.from(b64, 'base64').toString('binary')); +function bytesFromBase64(b64: string): Uint8Array { + const bin = atob(b64); + const arr = new Uint8Array(bin.length); + for (let i = 0; i < bin.length; ++i) { + arr[i] = bin.charCodeAt(i); + } + return arr; +} + +const btoa: (bin: string) => string = + globalThis.btoa || + (bin => globalThis.Buffer.from(bin, 'binary').toString('base64')); +function base64FromBytes(arr: Uint8Array): string { + const bin: string[] = []; + for (const byte of arr) { + bin.push(String.fromCharCode(byte)); + } + return btoa(bin.join('')); +} + +type Builtin = + | Date + | Function + | Uint8Array + | string + | number + | boolean + | undefined; + +export type DeepPartial = T extends Builtin + ? T + : T extends Long + ? string | number | Long + : T extends Array + ? Array> + : T extends ReadonlyArray + ? ReadonlyArray> + : T extends {} + ? { [K in Exclude]?: DeepPartial } + : Partial; + +type KeysOfUnion = T extends T ? keyof T : never; +export type Exact = P extends Builtin + ? P + : P & { [K in keyof P]: Exact } & Record< + Exclude | '$type'>, + never + >; + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +} diff --git a/packages/api/src/generated/ibc/core/client/v1/tx.ts b/packages/api/src/generated/ibc/core/client/v1/tx.ts new file mode 100644 index 00000000..4c97fe1e --- /dev/null +++ b/packages/api/src/generated/ibc/core/client/v1/tx.ts @@ -0,0 +1,920 @@ +/* eslint-disable */ +import { messageTypeRegistry } from '../../../../typeRegistry'; +import Long from 'long'; +import _m0 from 'protobufjs/minimal'; +import { Any } from '../../../../google/protobuf/any'; + +export const protobufPackage = 'ibc.core.client.v1'; + +/** MsgCreateClient defines a message to create an IBC client */ +export interface MsgCreateClient { + $type: 'ibc.core.client.v1.MsgCreateClient'; + /** light client state */ + clientState?: Any; + /** + * consensus state associated with the client that corresponds to a given + * height. + */ + consensusState?: Any; + /** signer address */ + signer: string; +} + +/** MsgCreateClientResponse defines the Msg/CreateClient response type. */ +export interface MsgCreateClientResponse { + $type: 'ibc.core.client.v1.MsgCreateClientResponse'; +} + +/** + * MsgUpdateClient defines an sdk.Msg to update a IBC client state using + * the given client message. + */ +export interface MsgUpdateClient { + $type: 'ibc.core.client.v1.MsgUpdateClient'; + /** client unique identifier */ + clientId: string; + /** client message to update the light client */ + clientMessage?: Any; + /** signer address */ + signer: string; +} + +/** MsgUpdateClientResponse defines the Msg/UpdateClient response type. */ +export interface MsgUpdateClientResponse { + $type: 'ibc.core.client.v1.MsgUpdateClientResponse'; +} + +/** + * MsgUpgradeClient defines an sdk.Msg to upgrade an IBC client to a new client + * state + */ +export interface MsgUpgradeClient { + $type: 'ibc.core.client.v1.MsgUpgradeClient'; + /** client unique identifier */ + clientId: string; + /** upgraded client state */ + clientState?: Any; + /** + * upgraded consensus state, only contains enough information to serve as a + * basis of trust in update logic + */ + consensusState?: Any; + /** proof that old chain committed to new client */ + proofUpgradeClient: Uint8Array; + /** proof that old chain committed to new consensus state */ + proofUpgradeConsensusState: Uint8Array; + /** signer address */ + signer: string; +} + +/** MsgUpgradeClientResponse defines the Msg/UpgradeClient response type. */ +export interface MsgUpgradeClientResponse { + $type: 'ibc.core.client.v1.MsgUpgradeClientResponse'; +} + +/** + * MsgSubmitMisbehaviour defines an sdk.Msg type that submits Evidence for + * light client misbehaviour. + * Warning: DEPRECATED + */ +export interface MsgSubmitMisbehaviour { + $type: 'ibc.core.client.v1.MsgSubmitMisbehaviour'; + /** + * client unique identifier + * + * @deprecated + */ + clientId: string; + /** + * misbehaviour used for freezing the light client + * + * @deprecated + */ + misbehaviour?: Any; + /** + * signer address + * + * @deprecated + */ + signer: string; +} + +/** + * MsgSubmitMisbehaviourResponse defines the Msg/SubmitMisbehaviour response + * type. + */ +export interface MsgSubmitMisbehaviourResponse { + $type: 'ibc.core.client.v1.MsgSubmitMisbehaviourResponse'; +} + +function createBaseMsgCreateClient(): MsgCreateClient { + return { + $type: 'ibc.core.client.v1.MsgCreateClient', + clientState: undefined, + consensusState: undefined, + signer: '', + }; +} + +export const MsgCreateClient = { + $type: 'ibc.core.client.v1.MsgCreateClient' as const, + + encode( + message: MsgCreateClient, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.clientState !== undefined) { + Any.encode(message.clientState, writer.uint32(10).fork()).ldelim(); + } + if (message.consensusState !== undefined) { + Any.encode(message.consensusState, writer.uint32(18).fork()).ldelim(); + } + if (message.signer !== '') { + writer.uint32(26).string(message.signer); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MsgCreateClient { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgCreateClient(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clientState = Any.decode(reader, reader.uint32()); + break; + case 2: + message.consensusState = Any.decode(reader, reader.uint32()); + break; + case 3: + message.signer = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): MsgCreateClient { + return { + $type: MsgCreateClient.$type, + clientState: isSet(object.clientState) + ? Any.fromJSON(object.clientState) + : undefined, + consensusState: isSet(object.consensusState) + ? Any.fromJSON(object.consensusState) + : undefined, + signer: isSet(object.signer) ? String(object.signer) : '', + }; + }, + + toJSON(message: MsgCreateClient): unknown { + const obj: any = {}; + message.clientState !== undefined && + (obj.clientState = message.clientState + ? Any.toJSON(message.clientState) + : undefined); + message.consensusState !== undefined && + (obj.consensusState = message.consensusState + ? Any.toJSON(message.consensusState) + : undefined); + message.signer !== undefined && (obj.signer = message.signer); + return obj; + }, + + fromPartial, I>>( + object: I, + ): MsgCreateClient { + const message = createBaseMsgCreateClient(); + message.clientState = + object.clientState !== undefined && object.clientState !== null + ? Any.fromPartial(object.clientState) + : undefined; + message.consensusState = + object.consensusState !== undefined && object.consensusState !== null + ? Any.fromPartial(object.consensusState) + : undefined; + message.signer = object.signer ?? ''; + return message; + }, +}; + +messageTypeRegistry.set(MsgCreateClient.$type, MsgCreateClient); + +function createBaseMsgCreateClientResponse(): MsgCreateClientResponse { + return { $type: 'ibc.core.client.v1.MsgCreateClientResponse' }; +} + +export const MsgCreateClientResponse = { + $type: 'ibc.core.client.v1.MsgCreateClientResponse' as const, + + encode( + _: MsgCreateClientResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): MsgCreateClientResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgCreateClientResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(_: any): MsgCreateClientResponse { + return { + $type: MsgCreateClientResponse.$type, + }; + }, + + toJSON(_: MsgCreateClientResponse): unknown { + const obj: any = {}; + return obj; + }, + + fromPartial, I>>( + _: I, + ): MsgCreateClientResponse { + const message = createBaseMsgCreateClientResponse(); + return message; + }, +}; + +messageTypeRegistry.set(MsgCreateClientResponse.$type, MsgCreateClientResponse); + +function createBaseMsgUpdateClient(): MsgUpdateClient { + return { + $type: 'ibc.core.client.v1.MsgUpdateClient', + clientId: '', + clientMessage: undefined, + signer: '', + }; +} + +export const MsgUpdateClient = { + $type: 'ibc.core.client.v1.MsgUpdateClient' as const, + + encode( + message: MsgUpdateClient, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.clientId !== '') { + writer.uint32(10).string(message.clientId); + } + if (message.clientMessage !== undefined) { + Any.encode(message.clientMessage, writer.uint32(18).fork()).ldelim(); + } + if (message.signer !== '') { + writer.uint32(26).string(message.signer); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpdateClient { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgUpdateClient(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clientId = reader.string(); + break; + case 2: + message.clientMessage = Any.decode(reader, reader.uint32()); + break; + case 3: + message.signer = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): MsgUpdateClient { + return { + $type: MsgUpdateClient.$type, + clientId: isSet(object.clientId) ? String(object.clientId) : '', + clientMessage: isSet(object.clientMessage) + ? Any.fromJSON(object.clientMessage) + : undefined, + signer: isSet(object.signer) ? String(object.signer) : '', + }; + }, + + toJSON(message: MsgUpdateClient): unknown { + const obj: any = {}; + message.clientId !== undefined && (obj.clientId = message.clientId); + message.clientMessage !== undefined && + (obj.clientMessage = message.clientMessage + ? Any.toJSON(message.clientMessage) + : undefined); + message.signer !== undefined && (obj.signer = message.signer); + return obj; + }, + + fromPartial, I>>( + object: I, + ): MsgUpdateClient { + const message = createBaseMsgUpdateClient(); + message.clientId = object.clientId ?? ''; + message.clientMessage = + object.clientMessage !== undefined && object.clientMessage !== null + ? Any.fromPartial(object.clientMessage) + : undefined; + message.signer = object.signer ?? ''; + return message; + }, +}; + +messageTypeRegistry.set(MsgUpdateClient.$type, MsgUpdateClient); + +function createBaseMsgUpdateClientResponse(): MsgUpdateClientResponse { + return { $type: 'ibc.core.client.v1.MsgUpdateClientResponse' }; +} + +export const MsgUpdateClientResponse = { + $type: 'ibc.core.client.v1.MsgUpdateClientResponse' as const, + + encode( + _: MsgUpdateClientResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): MsgUpdateClientResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgUpdateClientResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(_: any): MsgUpdateClientResponse { + return { + $type: MsgUpdateClientResponse.$type, + }; + }, + + toJSON(_: MsgUpdateClientResponse): unknown { + const obj: any = {}; + return obj; + }, + + fromPartial, I>>( + _: I, + ): MsgUpdateClientResponse { + const message = createBaseMsgUpdateClientResponse(); + return message; + }, +}; + +messageTypeRegistry.set(MsgUpdateClientResponse.$type, MsgUpdateClientResponse); + +function createBaseMsgUpgradeClient(): MsgUpgradeClient { + return { + $type: 'ibc.core.client.v1.MsgUpgradeClient', + clientId: '', + clientState: undefined, + consensusState: undefined, + proofUpgradeClient: new Uint8Array(), + proofUpgradeConsensusState: new Uint8Array(), + signer: '', + }; +} + +export const MsgUpgradeClient = { + $type: 'ibc.core.client.v1.MsgUpgradeClient' as const, + + encode( + message: MsgUpgradeClient, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.clientId !== '') { + writer.uint32(10).string(message.clientId); + } + if (message.clientState !== undefined) { + Any.encode(message.clientState, writer.uint32(18).fork()).ldelim(); + } + if (message.consensusState !== undefined) { + Any.encode(message.consensusState, writer.uint32(26).fork()).ldelim(); + } + if (message.proofUpgradeClient.length !== 0) { + writer.uint32(34).bytes(message.proofUpgradeClient); + } + if (message.proofUpgradeConsensusState.length !== 0) { + writer.uint32(42).bytes(message.proofUpgradeConsensusState); + } + if (message.signer !== '') { + writer.uint32(50).string(message.signer); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MsgUpgradeClient { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgUpgradeClient(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clientId = reader.string(); + break; + case 2: + message.clientState = Any.decode(reader, reader.uint32()); + break; + case 3: + message.consensusState = Any.decode(reader, reader.uint32()); + break; + case 4: + message.proofUpgradeClient = reader.bytes(); + break; + case 5: + message.proofUpgradeConsensusState = reader.bytes(); + break; + case 6: + message.signer = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): MsgUpgradeClient { + return { + $type: MsgUpgradeClient.$type, + clientId: isSet(object.clientId) ? String(object.clientId) : '', + clientState: isSet(object.clientState) + ? Any.fromJSON(object.clientState) + : undefined, + consensusState: isSet(object.consensusState) + ? Any.fromJSON(object.consensusState) + : undefined, + proofUpgradeClient: isSet(object.proofUpgradeClient) + ? bytesFromBase64(object.proofUpgradeClient) + : new Uint8Array(), + proofUpgradeConsensusState: isSet(object.proofUpgradeConsensusState) + ? bytesFromBase64(object.proofUpgradeConsensusState) + : new Uint8Array(), + signer: isSet(object.signer) ? String(object.signer) : '', + }; + }, + + toJSON(message: MsgUpgradeClient): unknown { + const obj: any = {}; + message.clientId !== undefined && (obj.clientId = message.clientId); + message.clientState !== undefined && + (obj.clientState = message.clientState + ? Any.toJSON(message.clientState) + : undefined); + message.consensusState !== undefined && + (obj.consensusState = message.consensusState + ? Any.toJSON(message.consensusState) + : undefined); + message.proofUpgradeClient !== undefined && + (obj.proofUpgradeClient = base64FromBytes( + message.proofUpgradeClient !== undefined + ? message.proofUpgradeClient + : new Uint8Array(), + )); + message.proofUpgradeConsensusState !== undefined && + (obj.proofUpgradeConsensusState = base64FromBytes( + message.proofUpgradeConsensusState !== undefined + ? message.proofUpgradeConsensusState + : new Uint8Array(), + )); + message.signer !== undefined && (obj.signer = message.signer); + return obj; + }, + + fromPartial, I>>( + object: I, + ): MsgUpgradeClient { + const message = createBaseMsgUpgradeClient(); + message.clientId = object.clientId ?? ''; + message.clientState = + object.clientState !== undefined && object.clientState !== null + ? Any.fromPartial(object.clientState) + : undefined; + message.consensusState = + object.consensusState !== undefined && object.consensusState !== null + ? Any.fromPartial(object.consensusState) + : undefined; + message.proofUpgradeClient = object.proofUpgradeClient ?? new Uint8Array(); + message.proofUpgradeConsensusState = + object.proofUpgradeConsensusState ?? new Uint8Array(); + message.signer = object.signer ?? ''; + return message; + }, +}; + +messageTypeRegistry.set(MsgUpgradeClient.$type, MsgUpgradeClient); + +function createBaseMsgUpgradeClientResponse(): MsgUpgradeClientResponse { + return { $type: 'ibc.core.client.v1.MsgUpgradeClientResponse' }; +} + +export const MsgUpgradeClientResponse = { + $type: 'ibc.core.client.v1.MsgUpgradeClientResponse' as const, + + encode( + _: MsgUpgradeClientResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): MsgUpgradeClientResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgUpgradeClientResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(_: any): MsgUpgradeClientResponse { + return { + $type: MsgUpgradeClientResponse.$type, + }; + }, + + toJSON(_: MsgUpgradeClientResponse): unknown { + const obj: any = {}; + return obj; + }, + + fromPartial, I>>( + _: I, + ): MsgUpgradeClientResponse { + const message = createBaseMsgUpgradeClientResponse(); + return message; + }, +}; + +messageTypeRegistry.set( + MsgUpgradeClientResponse.$type, + MsgUpgradeClientResponse, +); + +function createBaseMsgSubmitMisbehaviour(): MsgSubmitMisbehaviour { + return { + $type: 'ibc.core.client.v1.MsgSubmitMisbehaviour', + clientId: '', + misbehaviour: undefined, + signer: '', + }; +} + +export const MsgSubmitMisbehaviour = { + $type: 'ibc.core.client.v1.MsgSubmitMisbehaviour' as const, + + encode( + message: MsgSubmitMisbehaviour, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.clientId !== '') { + writer.uint32(10).string(message.clientId); + } + if (message.misbehaviour !== undefined) { + Any.encode(message.misbehaviour, writer.uint32(18).fork()).ldelim(); + } + if (message.signer !== '') { + writer.uint32(26).string(message.signer); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): MsgSubmitMisbehaviour { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgSubmitMisbehaviour(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.clientId = reader.string(); + break; + case 2: + message.misbehaviour = Any.decode(reader, reader.uint32()); + break; + case 3: + message.signer = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): MsgSubmitMisbehaviour { + return { + $type: MsgSubmitMisbehaviour.$type, + clientId: isSet(object.clientId) ? String(object.clientId) : '', + misbehaviour: isSet(object.misbehaviour) + ? Any.fromJSON(object.misbehaviour) + : undefined, + signer: isSet(object.signer) ? String(object.signer) : '', + }; + }, + + toJSON(message: MsgSubmitMisbehaviour): unknown { + const obj: any = {}; + message.clientId !== undefined && (obj.clientId = message.clientId); + message.misbehaviour !== undefined && + (obj.misbehaviour = message.misbehaviour + ? Any.toJSON(message.misbehaviour) + : undefined); + message.signer !== undefined && (obj.signer = message.signer); + return obj; + }, + + fromPartial, I>>( + object: I, + ): MsgSubmitMisbehaviour { + const message = createBaseMsgSubmitMisbehaviour(); + message.clientId = object.clientId ?? ''; + message.misbehaviour = + object.misbehaviour !== undefined && object.misbehaviour !== null + ? Any.fromPartial(object.misbehaviour) + : undefined; + message.signer = object.signer ?? ''; + return message; + }, +}; + +messageTypeRegistry.set(MsgSubmitMisbehaviour.$type, MsgSubmitMisbehaviour); + +function createBaseMsgSubmitMisbehaviourResponse(): MsgSubmitMisbehaviourResponse { + return { $type: 'ibc.core.client.v1.MsgSubmitMisbehaviourResponse' }; +} + +export const MsgSubmitMisbehaviourResponse = { + $type: 'ibc.core.client.v1.MsgSubmitMisbehaviourResponse' as const, + + encode( + _: MsgSubmitMisbehaviourResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): MsgSubmitMisbehaviourResponse { + const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgSubmitMisbehaviourResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(_: any): MsgSubmitMisbehaviourResponse { + return { + $type: MsgSubmitMisbehaviourResponse.$type, + }; + }, + + toJSON(_: MsgSubmitMisbehaviourResponse): unknown { + const obj: any = {}; + return obj; + }, + + fromPartial, I>>( + _: I, + ): MsgSubmitMisbehaviourResponse { + const message = createBaseMsgSubmitMisbehaviourResponse(); + return message; + }, +}; + +messageTypeRegistry.set( + MsgSubmitMisbehaviourResponse.$type, + MsgSubmitMisbehaviourResponse, +); + +/** Msg defines the ibc/client Msg service. */ +export interface Msg { + /** CreateClient defines a rpc handler method for MsgCreateClient. */ + CreateClient( + request: DeepPartial, + ): Promise; + /** UpdateClient defines a rpc handler method for MsgUpdateClient. */ + UpdateClient( + request: DeepPartial, + ): Promise; + /** UpgradeClient defines a rpc handler method for MsgUpgradeClient. */ + UpgradeClient( + request: DeepPartial, + ): Promise; + /** SubmitMisbehaviour defines a rpc handler method for MsgSubmitMisbehaviour. */ + SubmitMisbehaviour( + request: DeepPartial, + ): Promise; +} + +export class MsgClientImpl implements Msg { + private readonly rpc: Rpc; + constructor(rpc: Rpc) { + this.rpc = rpc; + this.CreateClient = this.CreateClient.bind(this); + this.UpdateClient = this.UpdateClient.bind(this); + this.UpgradeClient = this.UpgradeClient.bind(this); + this.SubmitMisbehaviour = this.SubmitMisbehaviour.bind(this); + } + CreateClient( + request: DeepPartial, + ): Promise { + const fromPartial = MsgCreateClient.fromPartial(request); + const data = MsgCreateClient.encode(fromPartial).finish(); + const promise = this.rpc.request( + 'ibc.core.client.v1.Msg', + 'CreateClient', + data, + ); + return promise.then(data => + MsgCreateClientResponse.decode(new _m0.Reader(data)), + ); + } + + UpdateClient( + request: DeepPartial, + ): Promise { + const fromPartial = MsgUpdateClient.fromPartial(request); + const data = MsgUpdateClient.encode(fromPartial).finish(); + const promise = this.rpc.request( + 'ibc.core.client.v1.Msg', + 'UpdateClient', + data, + ); + return promise.then(data => + MsgUpdateClientResponse.decode(new _m0.Reader(data)), + ); + } + + UpgradeClient( + request: DeepPartial, + ): Promise { + const fromPartial = MsgUpgradeClient.fromPartial(request); + const data = MsgUpgradeClient.encode(fromPartial).finish(); + const promise = this.rpc.request( + 'ibc.core.client.v1.Msg', + 'UpgradeClient', + data, + ); + return promise.then(data => + MsgUpgradeClientResponse.decode(new _m0.Reader(data)), + ); + } + + SubmitMisbehaviour( + request: DeepPartial, + ): Promise { + const fromPartial = MsgSubmitMisbehaviour.fromPartial(request); + const data = MsgSubmitMisbehaviour.encode(fromPartial).finish(); + const promise = this.rpc.request( + 'ibc.core.client.v1.Msg', + 'SubmitMisbehaviour', + data, + ); + return promise.then(data => + MsgSubmitMisbehaviourResponse.decode(new _m0.Reader(data)), + ); + } +} + +interface Rpc { + request( + service: string, + method: string, + data: Uint8Array, + ): Promise; +} + +declare var self: any | undefined; +declare var window: any | undefined; +declare var global: any | undefined; +var globalThis: any = (() => { + if (typeof globalThis !== 'undefined') return globalThis; + if (typeof self !== 'undefined') return self; + if (typeof window !== 'undefined') return window; + if (typeof global !== 'undefined') return global; + throw 'Unable to locate global object'; +})(); + +const atob: (b64: string) => string = + globalThis.atob || + (b64 => globalThis.Buffer.from(b64, 'base64').toString('binary')); +function bytesFromBase64(b64: string): Uint8Array { + const bin = atob(b64); + const arr = new Uint8Array(bin.length); + for (let i = 0; i < bin.length; ++i) { + arr[i] = bin.charCodeAt(i); + } + return arr; +} + +const btoa: (bin: string) => string = + globalThis.btoa || + (bin => globalThis.Buffer.from(bin, 'binary').toString('base64')); +function base64FromBytes(arr: Uint8Array): string { + const bin: string[] = []; + for (const byte of arr) { + bin.push(String.fromCharCode(byte)); + } + return btoa(bin.join('')); +} + +type Builtin = + | Date + | Function + | Uint8Array + | string + | number + | boolean + | undefined; + +export type DeepPartial = T extends Builtin + ? T + : T extends Long + ? string | number | Long + : T extends Array + ? Array> + : T extends ReadonlyArray + ? ReadonlyArray> + : T extends {} + ? { [K in Exclude]?: DeepPartial } + : Partial; + +type KeysOfUnion = T extends T ? keyof T : never; +export type Exact = P extends Builtin + ? P + : P & { [K in keyof P]: Exact } & Record< + Exclude | '$type'>, + never + >; + +if (_m0.util.Long !== Long) { + _m0.util.Long = Long as any; + _m0.configure(); +} + +function isSet(value: any): boolean { + return value !== null && value !== undefined; +}