diff --git a/source/includes/_changelog.md b/source/includes/_changelog.md index 90681f37..dd4c5044 100644 --- a/source/includes/_changelog.md +++ b/source/includes/_changelog.md @@ -6,6 +6,7 @@ - Added support for all queries from the `tendermint` module - Added support for all queries from the `IBC transfer` module - Added support for all queries from the `IBC core channel` module + - Added support for all queries from the `IBC core client` module ## 2024-03-08 - Updated the API documentation to include all queries and messages for the `distribution` and `chain exchange` modules diff --git a/source/includes/_ibccoreclient.md b/source/includes/_ibccoreclient.md new file mode 100644 index 00000000..70aa0a6e --- /dev/null +++ b/source/includes/_ibccoreclient.md @@ -0,0 +1,1960 @@ +# - IBC Core Client + +Includes all the messages and queries associated to clients and consensus from the IBC core client module + +## ClientState + +Queries an IBC light client + +**IP rate limit group:** `chain` + +### Request Parameters +> Request Example: + + + +```py +import asyncio + +from google.protobuf import symbol_database + +from pyinjective.async_client import AsyncClient +from pyinjective.core.network import Network + + +async def main() -> None: + network = Network.testnet() + client = AsyncClient(network) + + client_id = "07-tendermint-0" + + state = await client.fetch_ibc_client_state(client_id=client_id) + print(state) + + +if __name__ == "__main__": + symbol_db = symbol_database.Default() + asyncio.get_event_loop().run_until_complete(main()) +``` + + + + +```go +package main + +import ( + "context" + "fmt" + + "github.com/InjectiveLabs/sdk-go/client" + + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + clientId := "07-tendermint-0" + ctx := context.Background() + + res, err := chainClient.FetchIBCClientState(ctx, clientId) + if err != nil { + fmt.Println(err) + } + + fmt.Print(res) + +} +``` + + + +
ParameterTypeDescriptionRequired
client_idStringClient state unique identifierYes
+ + +### Response Parameters +> Response Example: + +``` json +{ + "clientState":{ + "@type":"/ibc.lightclients.tendermint.v1.ClientState", + "chainId":"band-laozi-testnet4", + "trustLevel":{ + "numerator":"1", + "denominator":"3" + }, + "trustingPeriod":"1209600s", + "unbondingPeriod":"1814400s", + "maxClockDrift":"20s", + "frozenHeight":{ + "revisionNumber":"0", + "revisionHeight":"0" + }, + "latestHeight":{ + "revisionHeight":"7379538", + "revisionNumber":"0" + }, + "proofSpecs":[ + { + "leafSpec":{ + "hash":"SHA256", + "prehashValue":"SHA256", + "length":"VAR_PROTO", + "prefix":"AA==", + "prehashKey":"NO_HASH" + }, + "innerSpec":{ + "childOrder":[ + 0, + 1 + ], + "childSize":33, + "minPrefixLength":4, + "maxPrefixLength":12, + "hash":"SHA256", + "emptyChild":"" + }, + "maxDepth":0, + "minDepth":0, + "prehashKeyBeforeComparison":false + }, + { + "leafSpec":{ + "hash":"SHA256", + "prehashValue":"SHA256", + "length":"VAR_PROTO", + "prefix":"AA==", + "prehashKey":"NO_HASH" + }, + "innerSpec":{ + "childOrder":[ + 0, + 1 + ], + "childSize":32, + "minPrefixLength":1, + "maxPrefixLength":1, + "hash":"SHA256", + "emptyChild":"" + }, + "maxDepth":0, + "minDepth":0, + "prehashKeyBeforeComparison":false + } + ], + "upgradePath":[ + "upgrade", + "upgradedIBCState" + ], + "allowUpdateAfterExpiry":true, + "allowUpdateAfterMisbehaviour":true + }, + "proofHeight":{ + "revisionNumber":"888", + "revisionHeight":"27527237" + }, + "proof":"" +} +``` + + + + +
ParameterTypeDescription
client_stateAnyClient state associated with the request identifier
proofByte ArrayMerkle proof of existence
proof_heightHeightHeight at which the proof was retrieved
+ + +
+ +**Height** + + + +
ParameterTypeDescription
revision_numberIntegerThe revision that the client is currently on
revision_heightIntegerThe height within the given revision
+ + + +## ClientStates + +Queries all the IBC light clients of a chain + +**IP rate limit group:** `chain` + +### Request Parameters +> Request Example: + + + +```py +import asyncio + +from google.protobuf import symbol_database + +from pyinjective.async_client import AsyncClient +from pyinjective.client.model.pagination import PaginationOption +from pyinjective.core.network import Network + + +async def main() -> None: + network = Network.testnet() + client = AsyncClient(network) + + pagination = PaginationOption(skip=2, limit=4) + + states = await client.fetch_ibc_client_states(pagination=pagination) + print(states) + + +if __name__ == "__main__": + symbol_db = symbol_database.Default() + asyncio.get_event_loop().run_until_complete(main()) +``` + + + + +```go +package main + +import ( + "context" + "fmt" + + "github.com/cosmos/cosmos-sdk/types/query" + + "github.com/InjectiveLabs/sdk-go/client" + + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + pagination := query.PageRequest{Offset: 2, Limit: 4} + ctx := context.Background() + + res, err := chainClient.FetchIBCClientStates(ctx, &pagination) + if err != nil { + fmt.Println(err) + } + + fmt.Print(res) + +} +``` + + + +
ParameterTypeDescriptionRequired
paginationPageRequestThe optional pagination for the requestNo
+ + +### Response Parameters +> Response Example: + +``` json +{ + "clientStates":[ + { + "clientId":"07-tendermint-0", + "clientState":{ + "@type":"/ibc.lightclients.tendermint.v1.ClientState", + "chainId":"band-laozi-testnet4", + "trustLevel":{ + "numerator":"1", + "denominator":"3" + }, + "trustingPeriod":"1209600s", + "unbondingPeriod":"1814400s", + "maxClockDrift":"20s", + "frozenHeight":{ + "revisionNumber":"0", + "revisionHeight":"0" + }, + "latestHeight":{ + "revisionHeight":"7379538", + "revisionNumber":"0" + }, + "proofSpecs":[ + { + "leafSpec":{ + "hash":"SHA256", + "prehashValue":"SHA256", + "length":"VAR_PROTO", + "prefix":"AA==", + "prehashKey":"NO_HASH" + }, + "innerSpec":{ + "childOrder":[ + 0, + 1 + ], + "childSize":33, + "minPrefixLength":4, + "maxPrefixLength":12, + "hash":"SHA256", + "emptyChild":"" + }, + "maxDepth":0, + "minDepth":0, + "prehashKeyBeforeComparison":false + }, + { + "leafSpec":{ + "hash":"SHA256", + "prehashValue":"SHA256", + "length":"VAR_PROTO", + "prefix":"AA==", + "prehashKey":"NO_HASH" + }, + "innerSpec":{ + "childOrder":[ + 0, + 1 + ], + "childSize":32, + "minPrefixLength":1, + "maxPrefixLength":1, + "hash":"SHA256", + "emptyChild":"" + }, + "maxDepth":0, + "minDepth":0, + "prehashKeyBeforeComparison":false + } + ], + "upgradePath":[ + "upgrade", + "upgradedIBCState" + ], + "allowUpdateAfterExpiry":true, + "allowUpdateAfterMisbehaviour":true + } + }, + { + "clientId":"07-tendermint-1", + "clientState":{ + "@type":"/ibc.lightclients.tendermint.v1.ClientState", + "chainId":"band-laozi-testnet4", + "trustLevel":{ + "numerator":"1", + "denominator":"3" + }, + "trustingPeriod":"1209600s", + "unbondingPeriod":"1814400s", + "maxClockDrift":"20s", + "frozenHeight":{ + "revisionNumber":"0", + "revisionHeight":"0" + }, + "latestHeight":{ + "revisionHeight":"7692651", + "revisionNumber":"0" + }, + "proofSpecs":[ + { + "leafSpec":{ + "hash":"SHA256", + "prehashValue":"SHA256", + "length":"VAR_PROTO", + "prefix":"AA==", + "prehashKey":"NO_HASH" + }, + "innerSpec":{ + "childOrder":[ + 0, + 1 + ], + "childSize":33, + "minPrefixLength":4, + "maxPrefixLength":12, + "hash":"SHA256", + "emptyChild":"" + }, + "maxDepth":0, + "minDepth":0, + "prehashKeyBeforeComparison":false + }, + { + "leafSpec":{ + "hash":"SHA256", + "prehashValue":"SHA256", + "length":"VAR_PROTO", + "prefix":"AA==", + "prehashKey":"NO_HASH" + }, + "innerSpec":{ + "childOrder":[ + 0, + 1 + ], + "childSize":32, + "minPrefixLength":1, + "maxPrefixLength":1, + "hash":"SHA256", + "emptyChild":"" + }, + "maxDepth":0, + "minDepth":0, + "prehashKeyBeforeComparison":false + } + ], + "upgradePath":[ + "upgrade", + "upgradedIBCState" + ], + "allowUpdateAfterExpiry":true, + "allowUpdateAfterMisbehaviour":true + } + }, + { + "clientId":"07-tendermint-10", + "clientState":{ + "@type":"/ibc.lightclients.tendermint.v1.ClientState", + "chainId":"pisco-1", + "trustLevel":{ + "numerator":"1", + "denominator":"3" + }, + "trustingPeriod":"345600s", + "unbondingPeriod":"432000s", + "maxClockDrift":"50s", + "frozenHeight":{ + "revisionNumber":"0", + "revisionHeight":"0" + }, + "latestHeight":{ + "revisionNumber":"1", + "revisionHeight":"2304261" + }, + "proofSpecs":[ + { + "leafSpec":{ + "hash":"SHA256", + "prehashValue":"SHA256", + "length":"VAR_PROTO", + "prefix":"AA==", + "prehashKey":"NO_HASH" + }, + "innerSpec":{ + "childOrder":[ + 0, + 1 + ], + "childSize":33, + "minPrefixLength":4, + "maxPrefixLength":12, + "hash":"SHA256", + "emptyChild":"" + }, + "maxDepth":0, + "minDepth":0, + "prehashKeyBeforeComparison":false + }, + { + "leafSpec":{ + "hash":"SHA256", + "prehashValue":"SHA256", + "length":"VAR_PROTO", + "prefix":"AA==", + "prehashKey":"NO_HASH" + }, + "innerSpec":{ + "childOrder":[ + 0, + 1 + ], + "childSize":32, + "minPrefixLength":1, + "maxPrefixLength":1, + "hash":"SHA256", + "emptyChild":"" + }, + "maxDepth":0, + "minDepth":0, + "prehashKeyBeforeComparison":false + } + ], + "upgradePath":[ + "upgrade", + "upgradedIBCState" + ], + "allowUpdateAfterExpiry":true, + "allowUpdateAfterMisbehaviour":true + } + }, + { + "clientId":"07-tendermint-100", + "clientState":{ + "@type":"/ibc.lightclients.tendermint.v1.ClientState", + "chainId":"osmo-test-4", + "trustLevel":{ + "numerator":"1", + "denominator":"3" + }, + "trustingPeriod":"806400s", + "unbondingPeriod":"1209600s", + "maxClockDrift":"20s", + "frozenHeight":{ + "revisionNumber":"0", + "revisionHeight":"0" + }, + "latestHeight":{ + "revisionNumber":"4", + "revisionHeight":"10356505" + }, + "proofSpecs":[ + { + "leafSpec":{ + "hash":"SHA256", + "prehashValue":"SHA256", + "length":"VAR_PROTO", + "prefix":"AA==", + "prehashKey":"NO_HASH" + }, + "innerSpec":{ + "childOrder":[ + 0, + 1 + ], + "childSize":33, + "minPrefixLength":4, + "maxPrefixLength":12, + "hash":"SHA256", + "emptyChild":"" + }, + "maxDepth":0, + "minDepth":0, + "prehashKeyBeforeComparison":false + }, + { + "leafSpec":{ + "hash":"SHA256", + "prehashValue":"SHA256", + "length":"VAR_PROTO", + "prefix":"AA==", + "prehashKey":"NO_HASH" + }, + "innerSpec":{ + "childOrder":[ + 0, + 1 + ], + "childSize":32, + "minPrefixLength":1, + "maxPrefixLength":1, + "hash":"SHA256", + "emptyChild":"" + }, + "maxDepth":0, + "minDepth":0, + "prehashKeyBeforeComparison":false + } + ], + "upgradePath":[ + "upgrade", + "upgradedIBCState" + ], + "allowUpdateAfterExpiry":true, + "allowUpdateAfterMisbehaviour":true + } + }, + { + "clientId":"07-tendermint-101", + "clientState":{ + "@type":"/ibc.lightclients.tendermint.v1.ClientState", + "chainId":"osmo-test-4", + "trustLevel":{ + "numerator":"1", + "denominator":"3" + }, + "trustingPeriod":"806400s", + "unbondingPeriod":"1209600s", + "maxClockDrift":"20s", + "frozenHeight":{ + "revisionNumber":"0", + "revisionHeight":"0" + }, + "latestHeight":{ + "revisionNumber":"4", + "revisionHeight":"10356847" + }, + "proofSpecs":[ + { + "leafSpec":{ + "hash":"SHA256", + "prehashValue":"SHA256", + "length":"VAR_PROTO", + "prefix":"AA==", + "prehashKey":"NO_HASH" + }, + "innerSpec":{ + "childOrder":[ + 0, + 1 + ], + "childSize":33, + "minPrefixLength":4, + "maxPrefixLength":12, + "hash":"SHA256", + "emptyChild":"" + }, + "maxDepth":0, + "minDepth":0, + "prehashKeyBeforeComparison":false + }, + { + "leafSpec":{ + "hash":"SHA256", + "prehashValue":"SHA256", + "length":"VAR_PROTO", + "prefix":"AA==", + "prehashKey":"NO_HASH" + }, + "innerSpec":{ + "childOrder":[ + 0, + 1 + ], + "childSize":32, + "minPrefixLength":1, + "maxPrefixLength":1, + "hash":"SHA256", + "emptyChild":"" + }, + "maxDepth":0, + "minDepth":0, + "prehashKeyBeforeComparison":false + } + ], + "upgradePath":[ + "upgrade", + "upgradedIBCState" + ], + "allowUpdateAfterExpiry":true, + "allowUpdateAfterMisbehaviour":true + } + }, + { + "clientId":"07-tendermint-102", + "clientState":{ + "@type":"/ibc.lightclients.tendermint.v1.ClientState", + "chainId":"osmo-test-4", + "trustLevel":{ + "numerator":"1", + "denominator":"3" + }, + "trustingPeriod":"806400s", + "unbondingPeriod":"1209600s", + "maxClockDrift":"20s", + "frozenHeight":{ + "revisionNumber":"0", + "revisionHeight":"0" + }, + "latestHeight":{ + "revisionNumber":"4", + "revisionHeight":"10357322" + }, + "proofSpecs":[ + { + "leafSpec":{ + "hash":"SHA256", + "prehashValue":"SHA256", + "length":"VAR_PROTO", + "prefix":"AA==", + "prehashKey":"NO_HASH" + }, + "innerSpec":{ + "childOrder":[ + 0, + 1 + ], + "childSize":33, + "minPrefixLength":4, + "maxPrefixLength":12, + "hash":"SHA256", + "emptyChild":"" + }, + "maxDepth":0, + "minDepth":0, + "prehashKeyBeforeComparison":false + }, + { + "leafSpec":{ + "hash":"SHA256", + "prehashValue":"SHA256", + "length":"VAR_PROTO", + "prefix":"AA==", + "prehashKey":"NO_HASH" + }, + "innerSpec":{ + "childOrder":[ + 0, + 1 + ], + "childSize":32, + "minPrefixLength":1, + "maxPrefixLength":1, + "hash":"SHA256", + "emptyChild":"" + }, + "maxDepth":0, + "minDepth":0, + "prehashKeyBeforeComparison":false + } + ], + "upgradePath":[ + "upgrade", + "upgradedIBCState" + ], + "allowUpdateAfterExpiry":true, + "allowUpdateAfterMisbehaviour":true + } + }, + { + "clientId":"07-tendermint-103", + "clientState":{ + "@type":"/ibc.lightclients.tendermint.v1.ClientState", + "chainId":"galileo-3", + "trustLevel":{ + "numerator":"1", + "denominator":"3" + }, + "trustingPeriod":"604800s", + "unbondingPeriod":"1814400s", + "maxClockDrift":"30s", + "frozenHeight":{ + "revisionNumber":"0", + "revisionHeight":"0" + }, + "latestHeight":{ + "revisionNumber":"3", + "revisionHeight":"2848767" + }, + "proofSpecs":[ + { + "leafSpec":{ + "hash":"SHA256", + "prehashValue":"SHA256", + "length":"VAR_PROTO", + "prefix":"AA==", + "prehashKey":"NO_HASH" + }, + "innerSpec":{ + "childOrder":[ + 0, + 1 + ], + "childSize":33, + "minPrefixLength":4, + "maxPrefixLength":12, + "hash":"SHA256", + "emptyChild":"" + }, + "maxDepth":0, + "minDepth":0, + "prehashKeyBeforeComparison":false + }, + { + "leafSpec":{ + "hash":"SHA256", + "prehashValue":"SHA256", + "length":"VAR_PROTO", + "prefix":"AA==", + "prehashKey":"NO_HASH" + }, + "innerSpec":{ + "childOrder":[ + 0, + 1 + ], + "childSize":32, + "minPrefixLength":1, + "maxPrefixLength":1, + "hash":"SHA256", + "emptyChild":"" + }, + "maxDepth":0, + "minDepth":0, + "prehashKeyBeforeComparison":false + } + ], + "upgradePath":[ + "upgrade", + "upgradedIBCState" + ], + "allowUpdateAfterExpiry":true, + "allowUpdateAfterMisbehaviour":true + } + } + ], + "pagination":{ + "nextKey":"LzA3LXRlbmRlcm1pbnQtMTAzL2NsaWVudFN0YXRl", + "total":"0" + } +} +``` + + + +
ParameterTypeDescription
client_statesIdentifiedClientState ArrayClient state associated with the request identifier
paginationPageResponsePagination information in the response
+ + +
+ +**IdentifiedClientState** + + + +
ParameterTypeDescription
client_idStringClient identifier
client_stateAnyClient state
+ + + +## ConsensusState + +Queries a consensus state associated with a client state at a given height + +**IP rate limit group:** `chain` + +### Request Parameters +> Request Example: + + + +```py +import asyncio + +from google.protobuf import symbol_database + +from pyinjective.async_client import AsyncClient +from pyinjective.core.network import Network + + +async def main() -> None: + network = Network.testnet() + client = AsyncClient(network) + + client_id = "07-tendermint-0" + revision_number = 0 + revision_height = 7379538 + + state = await client.fetch_ibc_consensus_state( + client_id=client_id, revision_number=revision_number, revision_height=revision_height + ) + print(state) + + +if __name__ == "__main__": + symbol_db = symbol_database.Default() + asyncio.get_event_loop().run_until_complete(main()) +``` + + + + +```go +package main + +import ( + "context" + "fmt" + + "github.com/InjectiveLabs/sdk-go/client" + + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + clientId := "07-tendermint-0" + revisionNumber := uint64(0) + revisionHeight := uint64(7379538) + latestHeight := false + + ctx := context.Background() + + res, err := chainClient.FetchIBCConsensusState(ctx, clientId, revisionNumber, revisionHeight, latestHeight) + if err != nil { + fmt.Println(err) + } + + fmt.Print(res) + +} +``` + + + + + + +
ParameterTypeDescriptionRequired
client_idStringClient identifierYes
revision_numberIntegerConsensus state revision numberYes
client_idIntegerConsensus state revision heightYes
latest_heightBooleanOverrrides the height field and queries the latest stored ConsensusStateNo
+ + +### Response Parameters +> Response Example: + +``` json +{ + "consensusState":{ + "@type":"/ibc.lightclients.tendermint.v1.ConsensusState", + "timestamp":"2022-07-04T10:34:53.874345276Z", + "root":{ + "hash":"viI6JuzZ/kOAh6jIeecglN7Xt+mGQT/PpvAGqGLcVmM=" + }, + "nextValidatorsHash":"olPEfP4dzPCC07Oyg/3+6U5/uumw/HmELk2MwpMogSg=" + }, + "proofHeight":{ + "revisionNumber":"888", + "revisionHeight":"27531028" + }, + "proof":"" +} +``` + + + + +
ParameterTypeDescription
consensus_stateAnyClient state associated with the request identifier
proofByte ArrayMerkle proof of existence
proof_heightHeightHeight at which the proof was retrieved
+ + +
+ +**Height** + + + +
ParameterTypeDescription
revision_numberIntegerThe revision that the client is currently on
revision_heightIntegerThe height within the given revision
+ + + +## ConsensusStates + +Queries all the consensus state associated with a given client + +**IP rate limit group:** `chain` + +### Request Parameters +> Request Example: + + + +```py +import asyncio + +from google.protobuf import symbol_database + +from pyinjective.async_client import AsyncClient +from pyinjective.client.model.pagination import PaginationOption +from pyinjective.core.network import Network + + +async def main() -> None: + network = Network.testnet() + client = AsyncClient(network) + + client_id = "07-tendermint-0" + pagination = PaginationOption(skip=2, limit=4) + + states = await client.fetch_ibc_consensus_states(client_id=client_id, pagination=pagination) + print(states) + + +if __name__ == "__main__": + symbol_db = symbol_database.Default() + asyncio.get_event_loop().run_until_complete(main()) +``` + + + + +```go +package main + +import ( + "context" + "fmt" + + "github.com/cosmos/cosmos-sdk/types/query" + + "github.com/InjectiveLabs/sdk-go/client" + + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + clientId := "07-tendermint-0" + pagination := query.PageRequest{Offset: 2, Limit: 4} + ctx := context.Background() + + res, err := chainClient.FetchIBCConsensusStates(ctx, clientId, &pagination) + if err != nil { + fmt.Println(err) + } + + fmt.Print(res) + +} +``` + + + + +
ParameterTypeDescriptionRequired
client_idStringClient identifierYes
paginationPageRequestThe optional pagination for the requestNo
+ + +### Response Parameters +> Response Example: + +``` json +{ + "consensusStates":[ + { + "height":{ + "revisionHeight":"7379500", + "revisionNumber":"0" + }, + "consensusState":{ + "@type":"/ibc.lightclients.tendermint.v1.ConsensusState", + "timestamp":"2022-07-04T10:32:23.232327085Z", + "root":{ + "hash":"PlwKOemX6GQh/sGlPzvT89sRijeZa0pUK+sjvASu/5s=" + }, + "nextValidatorsHash":"olPEfP4dzPCC07Oyg/3+6U5/uumw/HmELk2MwpMogSg=" + } + }, + { + "height":{ + "revisionHeight":"7379506", + "revisionNumber":"0" + }, + "consensusState":{ + "@type":"/ibc.lightclients.tendermint.v1.ConsensusState", + "timestamp":"2022-07-04T10:32:46.188675417Z", + "root":{ + "hash":"LTmLr8YzxO/yfajKO1RrnZeTK3JUMrvYcm/IZyi0XeY=" + }, + "nextValidatorsHash":"olPEfP4dzPCC07Oyg/3+6U5/uumw/HmELk2MwpMogSg=" + } + }, + { + "height":{ + "revisionHeight":"7379521", + "revisionNumber":"0" + }, + "consensusState":{ + "@type":"/ibc.lightclients.tendermint.v1.ConsensusState", + "timestamp":"2022-07-04T10:33:46.953207174Z", + "root":{ + "hash":"lyXb+gmcyDOcHL35Zppqv10y0irbqlnsllERaOEb9R4=" + }, + "nextValidatorsHash":"olPEfP4dzPCC07Oyg/3+6U5/uumw/HmELk2MwpMogSg=" + } + }, + { + "height":{ + "revisionHeight":"7379538", + "revisionNumber":"0" + }, + "consensusState":{ + "@type":"/ibc.lightclients.tendermint.v1.ConsensusState", + "timestamp":"2022-07-04T10:34:53.874345276Z", + "root":{ + "hash":"viI6JuzZ/kOAh6jIeecglN7Xt+mGQT/PpvAGqGLcVmM=" + }, + "nextValidatorsHash":"olPEfP4dzPCC07Oyg/3+6U5/uumw/HmELk2MwpMogSg=" + } + } + ], + "pagination":{ + "nextKey":"", + "total":"0" + } +} +``` + + + +
ParameterTypeDescription
consensus_statesConsensusStateWithHeight ArrayConsensus states associated with the identifier
paginationPageResponsePagination information in the response
+ + +
+ +**ConsensusStateWithHeight** + + + +
ParameterTypeDescription
heightHeightConsensus state height
consensus_stateAnyConsensus state
+ + +
+ +**Height** + + + +
ParameterTypeDescription
revision_numberIntegerThe revision that the client is currently on
revision_heightIntegerThe height within the given revision
+ + + +## ConsensusStateHeights + +Queries the height of every consensus states associated with a given client + +**IP rate limit group:** `chain` + +### Request Parameters +> Request Example: + + + +```py +import asyncio + +from google.protobuf import symbol_database + +from pyinjective.async_client import AsyncClient +from pyinjective.client.model.pagination import PaginationOption +from pyinjective.core.network import Network + + +async def main() -> None: + network = Network.testnet() + client = AsyncClient(network) + + client_id = "07-tendermint-0" + pagination = PaginationOption(skip=2, limit=4) + + states = await client.fetch_ibc_consensus_state_heights(client_id=client_id, pagination=pagination) + print(states) + + +if __name__ == "__main__": + symbol_db = symbol_database.Default() + asyncio.get_event_loop().run_until_complete(main()) +``` + + + + +```go +package main + +import ( + "context" + "fmt" + + "github.com/cosmos/cosmos-sdk/types/query" + + "github.com/InjectiveLabs/sdk-go/client" + + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + clientId := "07-tendermint-0" + pagination := query.PageRequest{Offset: 2, Limit: 4} + ctx := context.Background() + + res, err := chainClient.FetchIBCConsensusStateHeights(ctx, clientId, &pagination) + if err != nil { + fmt.Println(err) + } + + fmt.Print(res) + +} +``` + + + + +
ParameterTypeDescriptionRequired
client_idStringClient identifierYes
paginationPageRequestThe optional pagination for the requestNo
+ + +### Response Parameters +> Response Example: + +``` json +{ + "consensusStateHeights":[ + { + "revisionHeight":"7379500", + "revisionNumber":"0" + }, + { + "revisionHeight":"7379506", + "revisionNumber":"0" + }, + { + "revisionHeight":"7379521", + "revisionNumber":"0" + }, + { + "revisionHeight":"7379538", + "revisionNumber":"0" + } + ], + "pagination":{ + "nextKey":"", + "total":"0" + } +} +``` + + + +
ParameterTypeDescription
consensus_state_heightsHeight ArrayConsensus state heights
paginationPageResponsePagination information in the response
+ + +
+ +**Height** + + + +
ParameterTypeDescription
revision_numberIntegerThe revision that the client is currently on
revision_heightIntegerThe height within the given revision
+ + + +## ClientStatus + +Queries the status of an IBC client + +**IP rate limit group:** `chain` + +### Request Parameters +> Request Example: + + + +```py +import asyncio + +from google.protobuf import symbol_database + +from pyinjective.async_client import AsyncClient +from pyinjective.core.network import Network + + +async def main() -> None: + network = Network.testnet() + client = AsyncClient(network) + + client_id = "07-tendermint-0" + + state = await client.fetch_ibc_client_status(client_id=client_id) + print(state) + + +if __name__ == "__main__": + symbol_db = symbol_database.Default() + asyncio.get_event_loop().run_until_complete(main()) +``` + + + + +```go +package main + +import ( + "context" + "encoding/json" + "fmt" + + "github.com/InjectiveLabs/sdk-go/client" + + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + clientId := "07-tendermint-0" + ctx := context.Background() + + res, err := chainClient.FetchIBCClientStatus(ctx, clientId) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} +``` + + + +
ParameterTypeDescriptionRequired
client_idStringClient unique identifierYes
+ + +### Response Parameters +> Response Example: + +``` json +{ + "status":"Expired" +} +``` + + +
ParameterTypeDescription
statusStringClient status
+ + + +## ClientParams + +Queries all parameters of the ibc client submodule + +**IP rate limit group:** `chain` + +### Request Parameters +> Request Example: + + + +```py +import asyncio + +from google.protobuf import symbol_database + +from pyinjective.async_client import AsyncClient +from pyinjective.core.network import Network + + +async def main() -> None: + network = Network.testnet() + client = AsyncClient(network) + + params = await client.fetch_ibc_client_params() + print(params) + + +if __name__ == "__main__": + symbol_db = symbol_database.Default() + asyncio.get_event_loop().run_until_complete(main()) +``` + + + + +```go +package main + +import ( + "context" + "encoding/json" + "fmt" + + "github.com/InjectiveLabs/sdk-go/client" + + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + res, err := chainClient.FetchIBCClientParams(ctx) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} +``` + + +No parameters + +### Response Parameters +> Response Example: + +``` json +{ + "params":{ + "allowedClients":[ + "06-solomachine", + "07-tendermint" + ] + } +} +``` + + +
ParameterTypeDescription
paramsparamsModule's parameters
+ + +
+ +**Params** + + +
ParameterTypeDescription
allowed_clientsString ArrayAllowed_clients defines the list of allowed client state types which can be created and interacted with. If a client type is removed from the allowed clients list, usage of this client will be disabled until it is added again to the list
+ + + +## UpgradedClientState + +Queries an Upgraded IBC light client + +**IP rate limit group:** `chain` + +### Request Parameters +> Request Example: + + + +```py +import asyncio + +from google.protobuf import symbol_database + +from pyinjective.async_client import AsyncClient +from pyinjective.core.network import Network + + +async def main() -> None: + network = Network.testnet() + client = AsyncClient(network) + + state = await client.fetch_ibc_upgraded_client_state() + print(state) + + +if __name__ == "__main__": + symbol_db = symbol_database.Default() + asyncio.get_event_loop().run_until_complete(main()) +``` + + + + +```go +package main + +import ( + "context" + "encoding/json" + "fmt" + + "github.com/InjectiveLabs/sdk-go/client" + + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + res, err := chainClient.FetchIBCUpgradedClientState(ctx) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} +``` + + +No parameters + +### Response Parameters +> Response Example: + +``` json + +``` + + +
ParameterTypeDescription
upgraded_client_stateAnyClient state associated with the request identifier
+ + + +## UpgradedConsensusState + +Queries an Upgraded IBC consensus state + +**IP rate limit group:** `chain` + +### Request Parameters +> Request Example: + + + +```py +import asyncio + +from google.protobuf import symbol_database + +from pyinjective.async_client import AsyncClient +from pyinjective.core.network import Network + + +async def main() -> None: + network = Network.testnet() + client = AsyncClient(network) + + state = await client.fetch_ibc_upgraded_consensus_state() + print(state) + + +if __name__ == "__main__": + symbol_db = symbol_database.Default() + asyncio.get_event_loop().run_until_complete(main()) +``` + + + + +```go +package main + +import ( + "context" + "encoding/json" + "fmt" + + "github.com/InjectiveLabs/sdk-go/client" + + chainclient "github.com/InjectiveLabs/sdk-go/client/chain" + "github.com/InjectiveLabs/sdk-go/client/common" + rpchttp "github.com/cometbft/cometbft/rpc/client/http" + + "os" +) + +func main() { + network := common.LoadNetwork("testnet", "lb") + tmClient, err := rpchttp.New(network.TmEndpoint, "/websocket") + if err != nil { + panic(err) + } + + senderAddress, cosmosKeyring, err := chainclient.InitCosmosKeyring( + os.Getenv("HOME")+"/.injectived", + "injectived", + "file", + "inj-user", + "12345678", + "5d386fbdbf11f1141010f81a46b40f94887367562bd33b452bbaa6ce1cd1381e", // keyring will be used if pk not provided + false, + ) + + if err != nil { + panic(err) + } + + clientCtx, err := chainclient.NewClientContext( + network.ChainId, + senderAddress.String(), + cosmosKeyring, + ) + + if err != nil { + panic(err) + } + + clientCtx = clientCtx.WithNodeURI(network.TmEndpoint).WithClient(tmClient) + + chainClient, err := chainclient.NewChainClient( + clientCtx, + network, + common.OptionGasPrices(client.DefaultGasPriceWithDenom), + ) + + if err != nil { + panic(err) + } + + ctx := context.Background() + + res, err := chainClient.FetchIBCUpgradedConsensusState(ctx) + if err != nil { + fmt.Println(err) + } + + str, _ := json.MarshalIndent(res, "", " ") + fmt.Print(string(str)) + +} +``` + + +No parameters + +### Response Parameters +> Response Example: + +``` json + +``` + + +
ParameterTypeDescription
upgraded_consensus_stateAnyConsensus state associated with the request identifier
+ \ No newline at end of file diff --git a/source/index.html.md b/source/index.html.md index f739319d..e8198d00 100644 --- a/source/index.html.md +++ b/source/index.html.md @@ -37,6 +37,7 @@ includes: - spot - binaryoptions - ibccorechannel + - ibccoreclient - ibctransfer - insurance - oracle diff --git a/source/json_tables/chain/ibc/core/client/consensusStateWithHeight.json b/source/json_tables/chain/ibc/core/client/consensusStateWithHeight.json new file mode 100644 index 00000000..6931aff1 --- /dev/null +++ b/source/json_tables/chain/ibc/core/client/consensusStateWithHeight.json @@ -0,0 +1,4 @@ +[ + {"Parameter": "height", "Type": "Height", "Description": "Consensus state height"}, + {"Parameter": "consensus_state", "Type": "Any", "Description": "Consensus state"} +] \ No newline at end of file diff --git a/source/json_tables/chain/ibc/core/client/identifiedClientState.json b/source/json_tables/chain/ibc/core/client/identifiedClientState.json new file mode 100644 index 00000000..6b6e737f --- /dev/null +++ b/source/json_tables/chain/ibc/core/client/identifiedClientState.json @@ -0,0 +1,4 @@ +[ + {"Parameter": "client_id", "Type": "String", "Description": "Client identifier"}, + {"Parameter": "client_state", "Type": "Any", "Description": "Client state"} +] \ No newline at end of file diff --git a/source/json_tables/chain/ibc/core/client/params.json b/source/json_tables/chain/ibc/core/client/params.json new file mode 100644 index 00000000..31c14807 --- /dev/null +++ b/source/json_tables/chain/ibc/core/client/params.json @@ -0,0 +1,3 @@ +[ + {"Parameter": "allowed_clients", "Type": "String Array", "Description": "Allowed_clients defines the list of allowed client state types which can be created and interacted with. If a client type is removed from the allowed clients list, usage of this client will be disabled until it is added again to the list"} +] \ No newline at end of file diff --git a/source/json_tables/chain/ibc/core/client/queryClientParamsResponse.json b/source/json_tables/chain/ibc/core/client/queryClientParamsResponse.json new file mode 100644 index 00000000..973f011e --- /dev/null +++ b/source/json_tables/chain/ibc/core/client/queryClientParamsResponse.json @@ -0,0 +1,3 @@ +[ + {"Parameter": "params", "Type": "params", "Description": "Module's parameters"} +] \ No newline at end of file diff --git a/source/json_tables/chain/ibc/core/client/queryClientStateRequest.json b/source/json_tables/chain/ibc/core/client/queryClientStateRequest.json new file mode 100644 index 00000000..486be60e --- /dev/null +++ b/source/json_tables/chain/ibc/core/client/queryClientStateRequest.json @@ -0,0 +1,3 @@ +[ + {"Parameter": "client_id", "Type": "String", "Description": "Client state unique identifier", "Required": "Yes"} +] \ No newline at end of file diff --git a/source/json_tables/chain/ibc/core/client/queryClientStateResponse.json b/source/json_tables/chain/ibc/core/client/queryClientStateResponse.json new file mode 100644 index 00000000..9ef3661e --- /dev/null +++ b/source/json_tables/chain/ibc/core/client/queryClientStateResponse.json @@ -0,0 +1,5 @@ +[ + {"Parameter": "client_state", "Type": "Any", "Description": "Client state associated with the request identifier"}, + {"Parameter": "proof", "Type": "Byte Array", "Description": "Merkle proof of existence"}, + {"Parameter": "proof_height", "Type": "Height", "Description": "Height at which the proof was retrieved"} +] \ No newline at end of file diff --git a/source/json_tables/chain/ibc/core/client/queryClientStatesRequest.json b/source/json_tables/chain/ibc/core/client/queryClientStatesRequest.json new file mode 100644 index 00000000..9da294d1 --- /dev/null +++ b/source/json_tables/chain/ibc/core/client/queryClientStatesRequest.json @@ -0,0 +1,3 @@ +[ + {"Parameter": "pagination", "Type": "PageRequest", "Description": "The optional pagination for the request", "Required": "No"} +] \ No newline at end of file diff --git a/source/json_tables/chain/ibc/core/client/queryClientStatesResponse.json b/source/json_tables/chain/ibc/core/client/queryClientStatesResponse.json new file mode 100644 index 00000000..7d0d42d8 --- /dev/null +++ b/source/json_tables/chain/ibc/core/client/queryClientStatesResponse.json @@ -0,0 +1,4 @@ +[ + {"Parameter": "client_states", "Type": "IdentifiedClientState Array", "Description": "Client state associated with the request identifier"}, + {"Parameter": "pagination", "Type": "PageResponse", "Description": "Pagination information in the response"} +] \ No newline at end of file diff --git a/source/json_tables/chain/ibc/core/client/queryClientStatusRequest.json b/source/json_tables/chain/ibc/core/client/queryClientStatusRequest.json new file mode 100644 index 00000000..77a27792 --- /dev/null +++ b/source/json_tables/chain/ibc/core/client/queryClientStatusRequest.json @@ -0,0 +1,3 @@ +[ + {"Parameter": "client_id", "Type": "String", "Description": "Client unique identifier", "Required": "Yes"} +] \ No newline at end of file diff --git a/source/json_tables/chain/ibc/core/client/queryClientStatusResponse.json b/source/json_tables/chain/ibc/core/client/queryClientStatusResponse.json new file mode 100644 index 00000000..51ea3f45 --- /dev/null +++ b/source/json_tables/chain/ibc/core/client/queryClientStatusResponse.json @@ -0,0 +1,3 @@ +[ + {"Parameter": "status", "Type": "String", "Description": "Client status"} +] \ No newline at end of file diff --git a/source/json_tables/chain/ibc/core/client/queryConsensusStateHeightsRequest.json b/source/json_tables/chain/ibc/core/client/queryConsensusStateHeightsRequest.json new file mode 100644 index 00000000..99fe4f32 --- /dev/null +++ b/source/json_tables/chain/ibc/core/client/queryConsensusStateHeightsRequest.json @@ -0,0 +1,4 @@ +[ + {"Parameter": "client_id", "Type": "String", "Description": "Client identifier", "Required": "Yes"}, + {"Parameter": "pagination", "Type": "PageRequest", "Description": "The optional pagination for the request", "Required": "No"} +] \ No newline at end of file diff --git a/source/json_tables/chain/ibc/core/client/queryConsensusStateHeightsResponse.json b/source/json_tables/chain/ibc/core/client/queryConsensusStateHeightsResponse.json new file mode 100644 index 00000000..25cb1581 --- /dev/null +++ b/source/json_tables/chain/ibc/core/client/queryConsensusStateHeightsResponse.json @@ -0,0 +1,4 @@ +[ + {"Parameter": "consensus_state_heights", "Type": "Height Array", "Description": "Consensus state heights"}, + {"Parameter": "pagination", "Type": "PageResponse", "Description": "Pagination information in the response"} +] \ No newline at end of file diff --git a/source/json_tables/chain/ibc/core/client/queryConsensusStateRequest.json b/source/json_tables/chain/ibc/core/client/queryConsensusStateRequest.json new file mode 100644 index 00000000..ca0076b7 --- /dev/null +++ b/source/json_tables/chain/ibc/core/client/queryConsensusStateRequest.json @@ -0,0 +1,6 @@ +[ + {"Parameter": "client_id", "Type": "String", "Description": "Client identifier", "Required": "Yes"}, + {"Parameter": "revision_number", "Type": "Integer", "Description": "Consensus state revision number", "Required": "Yes"}, + {"Parameter": "client_id", "Type": "Integer", "Description": "Consensus state revision height", "Required": "Yes"}, + {"Parameter": "latest_height", "Type": "Boolean", "Description": "Overrrides the height field and queries the latest stored ConsensusState", "Required": "No"} +] \ No newline at end of file diff --git a/source/json_tables/chain/ibc/core/client/queryConsensusStateResponse.json b/source/json_tables/chain/ibc/core/client/queryConsensusStateResponse.json new file mode 100644 index 00000000..f4b7bdf0 --- /dev/null +++ b/source/json_tables/chain/ibc/core/client/queryConsensusStateResponse.json @@ -0,0 +1,5 @@ +[ + {"Parameter": "consensus_state", "Type": "Any", "Description": "Client state associated with the request identifier"}, + {"Parameter": "proof", "Type": "Byte Array", "Description": "Merkle proof of existence"}, + {"Parameter": "proof_height", "Type": "Height", "Description": "Height at which the proof was retrieved"} +] \ No newline at end of file diff --git a/source/json_tables/chain/ibc/core/client/queryConsensusStatesRequest.json b/source/json_tables/chain/ibc/core/client/queryConsensusStatesRequest.json new file mode 100644 index 00000000..99fe4f32 --- /dev/null +++ b/source/json_tables/chain/ibc/core/client/queryConsensusStatesRequest.json @@ -0,0 +1,4 @@ +[ + {"Parameter": "client_id", "Type": "String", "Description": "Client identifier", "Required": "Yes"}, + {"Parameter": "pagination", "Type": "PageRequest", "Description": "The optional pagination for the request", "Required": "No"} +] \ No newline at end of file diff --git a/source/json_tables/chain/ibc/core/client/queryConsensusStatesResponse.json b/source/json_tables/chain/ibc/core/client/queryConsensusStatesResponse.json new file mode 100644 index 00000000..639cef2e --- /dev/null +++ b/source/json_tables/chain/ibc/core/client/queryConsensusStatesResponse.json @@ -0,0 +1,4 @@ +[ + {"Parameter": "consensus_states", "Type": "ConsensusStateWithHeight Array", "Description": "Consensus states associated with the identifier"}, + {"Parameter": "pagination", "Type": "PageResponse", "Description": "Pagination information in the response"} +] \ No newline at end of file diff --git a/source/json_tables/chain/ibc/core/client/queryUpgradedClientStateResponse.json b/source/json_tables/chain/ibc/core/client/queryUpgradedClientStateResponse.json new file mode 100644 index 00000000..99567127 --- /dev/null +++ b/source/json_tables/chain/ibc/core/client/queryUpgradedClientStateResponse.json @@ -0,0 +1,3 @@ +[ + {"Parameter": "upgraded_client_state", "Type": "Any", "Description": "Client state associated with the request identifier"} +] \ No newline at end of file diff --git a/source/json_tables/chain/ibc/core/client/queryUpgradedConsensusStateResponse.json b/source/json_tables/chain/ibc/core/client/queryUpgradedConsensusStateResponse.json new file mode 100644 index 00000000..948ae7ab --- /dev/null +++ b/source/json_tables/chain/ibc/core/client/queryUpgradedConsensusStateResponse.json @@ -0,0 +1,3 @@ +[ + {"Parameter": "upgraded_consensus_state", "Type": "Any", "Description": "Consensus state associated with the request identifier"} +] \ No newline at end of file