swagger: "2.0" info: version: "Master" title: RPC client for Tendermint description: A REST interface for state queries, transaction generation and broadcasting. license: name: Apache 2.0 url: https://github.com/tendermint/tendermint/blob/master/LICENSE tags: - name: Websocket description: Subscribe/unsubscribe are reserved for websocket events. - name: Info description: Informations about the node APIs - name: Tx description: Transactions broadcast APIs - name: ABCI description: ABCI APIs - name: Evidence description: Evidence APIs schemes: - https host: stargate.cosmos.network:26657 securityDefinitions: kms: type: basic paths: /broadcast_tx_sync: get: summary: Returns with the response from CheckTx. Does not wait for DeliverTx result. tags: - Tx operationId: broadcast_tx_sync description: | If you want to be sure that the transaction is included in a block, you can subscribe for the result using JSONRPC via a websocket. See https://tendermint.com/docs/app-dev/subscribing-to-events-via-websocket.html If you haven't received anything after a couple of blocks, resend it. If the same happens again, send it to some other node. A few reasons why it could happen: 1. malicious node can drop or pretend it had committed your tx 2. malicious proposer (not necessary the one you're communicating with) can drop transactions, which might become valid in the future (https://github.com/tendermint/tendermint/issues/3322) Please refer to https://tendermint.com/docs/tendermint-core/using-tendermint.html#formatting for formatting/encoding rules. parameters: - in: query name: tx type: string required: true description: The transaction x-example: "456" produces: - application/json responses: 200: description: empty answer schema: $ref: "#/definitions/BroadcastTxResponse" 500: description: empty error schema: $ref: "#/definitions/ErrorResponse" /broadcast_tx_async: get: summary: Returns right away, with no response. Does not wait for CheckTx nor DeliverTx results. tags: - Tx operationId: broadcast_tx_async description: | If you want to be sure that the transaction is included in a block, you can subscribe for the result using JSONRPC via a websocket. See https://tendermint.com/docs/app-dev/subscribing-to-events-via-websocket.html If you haven't received anything after a couple of blocks, resend it. If the same happens again, send it to some other node. A few reasons why it could happen: 1. malicious node can drop or pretend it had committed your tx 2. malicious proposer (not necessary the one you're communicating with) can drop transactions, which might become valid in the future (https://github.com/tendermint/tendermint/issues/3322) 3. node can be offline Please refer to https://tendermint.com/docs/tendermint-core/using-tendermint.html#formatting for formatting/encoding rules. parameters: - in: query name: tx type: string required: true description: The transaction x-example: "123" produces: - application/json responses: 200: description: empty answer schema: $ref: "#/definitions/BroadcastTxResponse" 500: description: empty error schema: $ref: "#/definitions/ErrorResponse" /broadcast_tx_commit: get: summary: Returns with the responses from CheckTx and DeliverTx. tags: - Tx operationId: broadcast_tx_commit description: | IMPORTANT: use only for testing and development. In production, use BroadcastTxSync or BroadcastTxAsync. You can subscribe for the transaction result using JSONRPC via a websocket. See https://tendermint.com/docs/app-dev/subscribing-to-events-via-websocket.html CONTRACT: only returns error if mempool.CheckTx() errs or if we timeout waiting for tx to commit. If CheckTx or DeliverTx fail, no error will be returned, but the returned result will contain a non-OK ABCI code. Please refer to https://tendermint.com/docs/tendermint-core/using-tendermint.html#formatting for formatting/encoding rules. parameters: - in: query name: tx type: string required: true description: The transaction x-example: "785" produces: - application/json responses: 200: description: empty answer schema: $ref: "#/definitions/BroadcastTxCommitResponse" 500: description: empty error schema: $ref: "#/definitions/ErrorResponse" /subscribe: get: summary: Subscribe for events via WebSocket. tags: - Websocket operationId: subscribe description: | To tell which events you want, you need to provide a query. query is a string, which has a form: "condition AND condition ..." (no OR at the moment). condition has a form: "key operation operand". key is a string with a restricted set of possible symbols ( \t\n\r\\()"'=>< are not allowed). operation can be "=", "<", "<=", ">", ">=", "CONTAINS". operand can be a string (escaped with single quotes), number, date or time. Examples: tm.event = 'NewBlock' # new blocks tm.event = 'CompleteProposal' # node got a complete proposal tm.event = 'Tx' AND tx.hash = 'XYZ' # single transaction tm.event = 'Tx' AND tx.height = 5 # all txs of the fifth block tx.height = 5 # all txs of the fifth block Tendermint provides a few predefined keys: tm.event, tx.hash and tx.height. Note for transactions, you can define additional keys by providing events with DeliverTx response. import ( abci "github.com/tendermint/tendermint/abci/types" "github.com/tendermint/tendermint/libs/pubsub/query" ) abci.ResponseDeliverTx{ Events: []abci.Event{ { Type: "rewards.withdraw", Attributes: cmn.KVPairs{ cmn.KVPair{Key: []byte("address"), Value: []byte("AddrA")}, cmn.KVPair{Key: []byte("source"), Value: []byte("SrcX")}, cmn.KVPair{Key: []byte("amount"), Value: []byte("...")}, cmn.KVPair{Key: []byte("balance"), Value: []byte("...")}, }, }, { Type: "rewards.withdraw", Attributes: cmn.KVPairs{ cmn.KVPair{Key: []byte("address"), Value: []byte("AddrB")}, cmn.KVPair{Key: []byte("source"), Value: []byte("SrcY")}, cmn.KVPair{Key: []byte("amount"), Value: []byte("...")}, cmn.KVPair{Key: []byte("balance"), Value: []byte("...")}, }, }, { Type: "transfer", Attributes: cmn.KVPairs{ cmn.KVPair{Key: []byte("sender"), Value: []byte("AddrC")}, cmn.KVPair{Key: []byte("recipient"), Value: []byte("AddrD")}, cmn.KVPair{Key: []byte("amount"), Value: []byte("...")}, }, }, }, } All events are indexed by a composite key of the form {eventType}.{evenAttrKey}. In the above examples, the following keys would be indexed: - rewards.withdraw.address - rewards.withdraw.source - rewards.withdraw.amount - rewards.withdraw.balance - transfer.sender - transfer.recipient - transfer.amount Multiple event types with duplicate keys are allowed and are meant to categorize unique and distinct events. In the above example, all events indexed under the key `rewards.withdraw.address` will have the following values stored and queryable: - AddrA - AddrB To create a query for txs where address AddrA withdrew rewards: query.MustParse("tm.event = 'Tx' AND rewards.withdraw.address = 'AddrA'") To create a query for txs where address AddrA withdrew rewards from source Y: query.MustParse("tm.event = 'Tx' AND rewards.withdraw.address = 'AddrA' AND rewards.withdraw.source = 'Y'") To create a query for txs where AddrA transferred funds: query.MustParse("tm.event = 'Tx' AND transfer.sender = 'AddrA'") The following queries would return no results: query.MustParse("tm.event = 'Tx' AND transfer.sender = 'AddrZ'") query.MustParse("tm.event = 'Tx' AND rewards.withdraw.address = 'AddrZ'") query.MustParse("tm.event = 'Tx' AND rewards.withdraw.source = 'W'") See list of all possible events here https://godoc.org/github.com/tendermint/tendermint/types#pkg-constants For complete query syntax, check out https://godoc.org/github.com/tendermint/tendermint/libs/pubsub/query. ```go import "github.com/tendermint/tendermint/types" client := client.NewHTTP("tcp:0.0.0.0:26657", "/websocket") err := client.Start() if err != nil { handle error } defer client.Stop() ctx, cancel := context.WithTimeout(context.Background(), 1 * time.Second) defer cancel() query := "tm.event = 'Tx' AND tx.height = 3" txs, err := client.Subscribe(ctx, "test-client", query) if err != nil { handle error } go func() { for e := range txs { fmt.Println("got ", e.Data.(types.EventDataTx)) } }() ``` parameters: - in: query name: query type: string required: true description: | query is a string, which has a form: "condition AND condition ..." (no OR at the moment). condition has a form: "key operation operand". key is a string with a restricted set of possible symbols ( \t\n\r\\()"'=>< are not allowed). operation can be "=", "<", "<=", ">", ">=", "CONTAINS". operand can be a string (escaped with single quotes), number, date or time. x-example: tm.event = 'Tx' AND tx.height = 5 produces: - application/json responses: 200: description: empty answer schema: $ref: "#/definitions/EmptyResponse" 500: description: empty error schema: $ref: "#/definitions/ErrorResponse" /unsubscribe: get: summary: Unsubscribe from event on Websocket tags: - Websocket operationId: unsubscribe description: | ```go client := client.NewHTTP("tcp:0.0.0.0:26657", "/websocket") err := client.Start() if err != nil { handle error } defer client.Stop() query := "tm.event = 'Tx' AND tx.height = 3" err = client.Unsubscribe(context.Background(), "test-client", query) if err != nil { handle error } ``` parameters: - in: query name: query type: string required: true description: | query is a string, which has a form: "condition AND condition ..." (no OR at the moment). condition has a form: "key operation operand". key is a string with a restricted set of possible symbols ( \t\n\r\\()"'=>< are not allowed). operation can be "=", "<", "<=", ">", ">=", "CONTAINS". operand can be a string (escaped with single quotes), number, date or time. x-example: tm.event = 'Tx' AND tx.height = 5 produces: - application/json responses: 200: description: empty answer schema: $ref: "#/definitions/EmptyResponse" 500: description: empty error schema: $ref: "#/definitions/ErrorResponse" /unsubscribe_all: get: summary: Unsubscribe from all events via WebSocket tags: - Websocket operationId: unsubscribe_all description: | Unsubscribe from all events via WebSocket produces: - application/json responses: 200: description: empty answer schema: $ref: "#/definitions/EmptyResponse" 500: description: empty error schema: $ref: "#/definitions/ErrorResponse" /health: get: summary: Node heartbeat tags: - Info operationId: health description: | Get node health. Returns empty result (200 OK) on success, no response - in case of an error. produces: - application/json responses: 200: description: empty answer schema: $ref: "#/definitions/EmptyResponse" 500: description: empty error schema: $ref: "#/definitions/ErrorResponse" /status: get: summary: Node Status operationId: status tags: - Info description: | Get Tendermint status including node info, pubkey, latest block hash, app hash, block height and time. produces: - application/json responses: 200: description: Status of the node schema: $ref: "#/definitions/StatusResponse" 500: description: empty error schema: $ref: "#/definitions/ErrorResponse" /net_info: get: summary: Network informations operationId: net_info tags: - Info description: | Get network info. produces: - application/json responses: 200: description: empty answer schema: $ref: "#/definitions/NetInfoResponse" 500: description: empty error schema: $ref: "#/definitions/ErrorResponse" /blockchain: get: summary: Get block headers for minHeight <= height <= maxHeight. operationId: blockchain parameters: - in: query name: minHeight type: number description: Minimum block height to return x-example: 1 - in: query name: maxHeight type: number description: Maximum block height to return x-example: 2 tags: - Info description: | Get Blockchain info. produces: - application/json responses: 200: description: Block headers, returned in descending order (highest first). schema: $ref: "#/definitions/BlockchainResponse" 500: description: Error schema: $ref: "#/definitions/ErrorResponse" /block: get: summary: Get block at a specified height operationId: block parameters: - in: query name: height type: number description: height to return. If no height is provided, it will fetch the latest block. 0 means latest default: 0 x-example: 1 tags: - Info description: | Get Block. produces: - application/json responses: 200: description: Block informations. schema: $ref: "#/definitions/BlockResponse" 500: description: Error schema: $ref: "#/definitions/ErrorResponse" /block_results: get: summary: Get block results at a specified height operationId: block_results parameters: - in: query name: height type: number description: height to return. If no height is provided, it will fetch informations regarding the latest block. 0 means latest default: 0 x-example: 1 tags: - Info description: | Get block_results. produces: - application/json responses: 200: description: Block results. schema: $ref: "#/definitions/BlockResultsResponse" 500: description: Error schema: $ref: "#/definitions/ErrorResponse" /commit: get: summary: Get commit results at a specified height operationId: commit parameters: - in: query name: height type: number description: height to return. If no height is provided, it will fetch commit informations regarding the latest block. 0 means latest default: 0 x-example: 1 tags: - Info description: | Get Commit. produces: - application/json responses: 200: description: Commit results. schema: $ref: "#/definitions/CommitResponse" 500: description: Error schema: $ref: "#/definitions/ErrorResponse" /validators: get: summary: Get validator set at a specified height operationId: validators parameters: - in: query name: height type: number description: height to return. If no height is provided, it will fetch validato set at the latest block. 0 means latest default: 0 x-example: 1 tags: - Info description: | Get Validators. produces: - application/json responses: 200: description: Commit results. schema: $ref: "#/definitions/ValidatorsResponse" 500: description: Error schema: $ref: "#/definitions/ErrorResponse" /genesis: get: summary: Get Genesis operationId: genesis tags: - Info description: | Get genesis. produces: - application/json responses: 200: description: Genesis results. schema: $ref: "#/definitions/GenesisResponse" 500: description: Error schema: $ref: "#/definitions/ErrorResponse" /dump_consensus_state: get: summary: Get consensus state operationId: dump_consensus_state tags: - Info description: | Get consensus state. produces: - application/json responses: 200: description: consensus state results. schema: $ref: "#/definitions/DumpConsensusResponse" 500: description: Error schema: $ref: "#/definitions/ErrorResponse" /consensus_state: get: summary: Get consensus state operationId: consensus_state tags: - Info description: | Get consensus state. produces: - application/json responses: 200: description: consensus state results. schema: $ref: "#/definitions/ConsensusStateResponse" 500: description: Error schema: $ref: "#/definitions/ErrorResponse" /consensus_params: get: summary: Get consensus parameters operationId: consensus_params parameters: - in: query name: height type: number description: height to return. If no height is provided, it will fetch commit informations regarding the latest block. 0 means latest default: 0 x-example: 1 tags: - Info description: | Get consensus parameters. produces: - application/json responses: 200: description: consensus parameters results. schema: $ref: "#/definitions/ConsensusParamsResponse" 500: description: Error schema: $ref: "#/definitions/ErrorResponse" /unconfirmed_txs: get: summary: Get the list of unconfirmed transactions operationId: unconfirmed_txs parameters: - in: query name: limit type: number description: Maximum number of unconfirmed transactions to return x-example: 1 tags: - Info description: | Get list of unconfirmed transactions produces: - application/json responses: 200: description: List of unconfirmed transactions schema: $ref: "#/definitions/UnconfirmedTransactionsResponse" 500: description: Error schema: $ref: "#/definitions/ErrorResponse" /num_unconfirmed_txs: get: summary: Get data about unconfirmed transactions operationId: num_unconfirmed_txs tags: - Info description: | Get data about unconfirmed transactions produces: - application/json responses: 200: description: status about unconfirmed transactions schema: $ref: "#/definitions/NumUnconfirmedTransactionsResponse" 500: description: Error schema: $ref: "#/definitions/ErrorResponse" /tx_search: get: summary: Search for transactions operationId: tx_search parameters: - in: query name: query type: string description: Query required: true x-example: "tx.height=1000" - in: query name: prove type: boolean description: Include proofs of the transactions inclusion in the block required: false x-example: true default: false - in: query name: page type: number description: "Page number (1-based)" required: false x-example: 1 default: 1 - in: query name: per_page type: number description: "Number of entries per page (max: 100)" required: false x-example: 30 default: 30 tags: - Info description: | Get list of unconfirmed transactions produces: - application/json responses: 200: description: List of unconfirmed transactions schema: $ref: "#/definitions/TxSearchResponse" 500: description: Error schema: $ref: "#/definitions/ErrorResponse" /tx: get: summary: Get transactions by hash operationId: tx parameters: - in: query name: hash type: string description: transaction Hash to retrive required: true x-example: "0xD70952032620CC4E2737EB8AC379806359D8E0B17B0488F627997A0B043ABDED" - in: query name: prove type: boolean description: Include proofs of the transactions inclusion in the block required: false x-example: true default: false tags: - Info description: | Get a trasasction produces: - application/json responses: 200: description: Get a transaction schema: $ref: "#/definitions/TxResponse" 500: description: Error schema: $ref: "#/definitions/ErrorResponse" /abci_info: get: summary: Get some info about the application. operationId: abci_info tags: - ABCI description: | Get some info about the application. produces: - application/json responses: 200: description: Get some info about the application. schema: $ref: "#/definitions/ABCIInfoResponse" 500: description: Error schema: $ref: "#/definitions/ErrorResponse" /abci_query: get: summary: Query the application for some information. operationId: abci_query parameters: - in: query name: path type: string description: Path to the data ("/a/b/c") required: true x-example: "/a/b/c" - in: query name: data type: string description: Data required: true x-example: "IHAVENOIDEA" - in: query name: height type: number description: Height (0 means latest) required: false x-example: 1 default: 0 - in: query name: prove type: boolean description: Include proofs of the transactions inclusion in the block required: false x-example: true default: false tags: - ABCI description: | Query the application for some information. produces: - application/json responses: 200: description: Response of the submitted query schema: $ref: "#/definitions/ABCIQueryResponse" 500: description: Error schema: $ref: "#/definitions/ErrorResponse" /broadcast_evidence: get: summary: Broadcast evidence of the misbehavior. operationId: broadcast_evidence parameters: - in: query name: evidence type: string description: Amino-encoded JSON evidence required: true x-example: "JSON_EVIDENCE_Amino_encoded" tags: - Info description: | Broadcast evidence of the misbehavior. produces: - application/json responses: 200: description: Broadcast evidence of the misbehavior. schema: $ref: "#/definitions/BroadcastEvidenceResponse" 500: description: Error schema: $ref: "#/definitions/ErrorResponse" definitions: JSONRPC: type: object properties: id: type: string x-example: "" jsonrpc: type: string x-example: "2.0" EmptyResponse: description: Empty Response allOf: - $ref: "#/definitions/JSONRPC" - type: object properties: result: type: object additionalProperties: {} ErrorResponse: description: Error Response allOf: - $ref: "#/definitions/JSONRPC" - type: object properties: error: type: string x-example: "Description of failure" ProtocolVersion: type: object properties: p2p: type: string x-example: "7" block: type: string x-example: "10" app: type: string x-example: "0" PubKey: type: object properties: type: type: string x-example: "tendermint/PubKeyEd25519" value: type: string x-example: "A6DoBUypNtUAyEHWtQ9bFjfNg8Bo9CrnkUGl6k6OHN4=" NodeInfo: type: object properties: protocol_version: $ref: "#/definitions/ProtocolVersion" id: type: string x-example: "5576458aef205977e18fd50b274e9b5d9014525a" listen_addr: type: string x-example: "tcp:0.0.0.0:26656" network: type: string x-example: "cosmoshub-2" version: type: string x-example: "0.32.1" channels: type: string x-example: "4020212223303800" moniker: type: string x-example: "moniker-node" other: type: object properties: tx_index: type: string x-example: "on" rpc_address: type: string x-example: "tcp:0.0.0.0:26657" x-example: "moniker-node" SyncInfo: type: object properties: latest_block_hash: type: string x-example: "790BA84C3545FCCC49A5C629CEE6EA58A6E875C3862175BDC11EE7AF54703501" latest_app_hash: type: string x-example: "C9AEBB441B787D9F1D846DE51F3826F4FD386108B59B08239653ABF59455C3F8" latest_block_height: type: string x-example: "1262196" latest_block_time: type: string x-example: "2019-08-01T11:52:22.818762194Z" catching_up: type: boolean x-example: false ValidatorInfo: type: object properties: address: type: string x-example: "5D6A51A8E9899C44079C6AF90618BA0369070E6E" pub_key: $ref: "#/definitions/PubKey" voting_power: type: string x-example: "0" Status: description: Status Response type: object properties: node_info: $ref: "#/definitions/NodeInfo" sync_info: $ref: "#/definitions/SyncInfo" validator_info: $ref: "#/definitions/ValidatorInfo" StatusResponse: description: Status Response allOf: - $ref: "#/definitions/JSONRPC" - type: object properties: result: $ref: "#/definitions/Status" Monitor: type: object properties: Active: type: boolean x-example: true Start: type: string x-example: "2019-07-31T14:31:28.66Z" Duration: type: string x-example: "168901060000000" Idle: type: string x-example: "168901040000000" Bytes: type: string x-example: "5" Samples: type: string x-example: "1" InstRate: type: string x-example: "0" CurRate: type: string x-example: "0" AvgRate: type: string x-example: "0" PeakRate: type: string x-example: "0" BytesRem: type: string x-example: "0" TimeRem: type: string x-example: "0" Progress: type: number x-example: 0 Channel: type: object properties: ID: type: number x-example: 48 SendQueueCapacity: type: string x-example: "1" SendQueueSize: type: string x-example: "0" Priority: type: string x-example: "5" RecentlySent: type: string x-example: "0" ConnectionStatus: type: object properties: Duration: type: string x-example: "168901057956119" SendMonitor: $ref: "#/definitions/Monitor" RecvMonitor: $ref: "#/definitions/Monitor" Channels: type: array items: $ref: "#/definitions/Channel" Peer: type: object properties: node_info: $ref: "#/definitions/NodeInfo" is_outbound: type: boolean x-example: true connection_status: $ref: "#/definitions/ConnectionStatus" remote_ip: type: string x-example: "95.179.155.35" NetInfo: type: object properties: listening: type: boolean x-example: true listeners: type: array items: type: string x-example: "Listener(@)" n_peers: type: number x-example: "1" peers: type: array items: $ref: "#/definitions/Peer" NetInfoResponse: description: NetInfo Response allOf: - $ref: "#/definitions/JSONRPC" - type: object properties: result: $ref: "#/definitions/NetInfo" BlockID: required: - "hash" - "parts" properties: hash: type: string x-example: "D82C2734BB0E76C772A10994B210EF9D11505D1B98CB189D9CF7F9A5488672A5" parts: required: - "total" - "hash" properties: total: type: string x-example: "1" hash: type: string x-example: "CB02DCAA7FB46BF874052EC2273FD0B1F2CF2E1593298D9781E60FE9C3DB8638" type: object type: object BlockMetaHeader: required: - "version" - "chain_id" - "height" - "time" - "num_txs" - "total_txs" - "last_block_id" - "last_commit_hash" - "data_hash" - "validators_hash" - "next_validators_hash" - "consensus_hash" - "app_hash" - "last_results_hash" - "evidence_hash" - "proposer_address" properties: version: required: - "block" - "app" properties: block: type: string x-example: "10" app: type: string x-example: "0" type: object chain_id: type: string x-example: "cosmoshub-2" height: type: string x-example: "12" time: type: string x-example: "2019-04-22T17:01:51.701356223Z" num_txs: type: string x-example: "2" total_txs: type: string x-example: "3" last_block_id: $ref: "#/definitions/BlockID" last_commit_hash: type: string x-example: "21B9BC845AD2CB2C4193CDD17BFC506F1EBE5A7402E84AD96E64171287A34812" data_hash: type: string x-example: "970886F99E77ED0D60DA8FCE0447C2676E59F2F77302B0C4AA10E1D02F18EF73" validators_hash: type: string x-example: "D658BFD100CA8025CFD3BECFE86194322731D387286FBD26E059115FD5F2BCA0" next_validators_hash: type: string x-example: "D658BFD100CA8025CFD3BECFE86194322731D387286FBD26E059115FD5F2BCA0" consensus_hash: type: string x-example: "0F2908883A105C793B74495EB7D6DF2EEA479ED7FC9349206A65CB0F9987A0B8" app_hash: type: string x-example: "223BF64D4A01074DC523A80E76B9BBC786C791FB0A1893AC5B14866356FCFD6C" last_results_hash: type: string x-example: "" evidence_hash: type: string x-example: "" proposer_address: type: string x-example: "D540AB022088612AC74B287D076DBFBC4A377A2E" type: object BlockMetaId: required: - "hash" - "parts" properties: hash: type: string x-example: "112BC173FD838FB68EB43476816CD7B4C6661B6884A9E357B417EE957E1CF8F7" parts: required: - "total" - "hash" properties: total: type: string x-example: "1" hash: type: string x-example: "38D4B26B5B725C4F13571EFE022C030390E4C33C8CF6F88EDD142EA769642DBD" type: object type: object BlockMeta: type: object properties: block_id: $ref: "#/definitions/BlockMetaId" header: $ref: "#/definitions/BlockMetaHeader" Blockchain: type: object required: - "last_height" - "block_metas" properties: last_height: type: string x-example: "1276718" block_metas: type: "array" items: $ref: "#/definitions/BlockMeta" BlockchainResponse: description: Blockchain info allOf: - $ref: "#/definitions/JSONRPC" - type: object properties: result: $ref: "#/definitions/Blockchain" Commit: required: - "type" - "height" - "round" - "block_id" - "timestamp" - "validator_address" - "validator_index" - "signature" properties: type: type: number x-example: 2 height: type: string x-example: "1262085" round: type: string x-example: "0" block_id: $ref: "#/definitions/BlockID" timestamp: type: string x-example: "2019-08-01T11:39:38.867269833Z" validator_address: type: string x-example: "000001E443FD237E4B616E2FA69DF4EE3D49A94F" validator_index: type: string x-example: "0" signature: type: string x-example: "DBchvucTzAUEJnGYpNvMdqLhBAHG4Px8BsOBB3J3mAFCLGeuG7uJqy+nVngKzZdPhPi8RhmE/xcw/M9DOJjEDg==" Block: type: object properties: header: $ref: "#/definitions/BlockMetaHeader" data: type: array items: type: string x-example: "yQHwYl3uCkKoo2GaChRnd+THLQ2RM87nEZrE19910Z28ABIUWW/t8AtIMwcyU0sT32RcMDI9GF0aEAoFdWF0b20SBzEwMDAwMDASEwoNCgV1YXRvbRIEMzEwMRCd8gEaagom61rphyEDoJPxlcjRoNDtZ9xMdvs+lRzFaHe2dl2P5R2yVCWrsHISQKkqX5H1zXAIJuC57yw0Yb03Fwy75VRip0ZBtLiYsUqkOsPUoQZAhDNP+6LY+RUwz/nVzedkF0S29NZ32QXdGv0=" evidence: type: array items: $ref: "#/definitions/Evidence" last_commit: type: object properties: block_id: $ref: "#/definitions/BlockID" precommits: type: array items: $ref: "#/definitions/Commit" Validator: type: object properties: pub_key: $ref: "#/definitions/PubKey" voting_power: type: number address: type: string Evidence: type: object properties: type: type: string height: type: number time: type: number total_voting_power: type: number validator: $ref: "#/definitions/Validator" BlockComplete: type: object properties: block_meta: $ref: "#/definitions/BlockMeta" block: $ref: "#/definitions/Block" BlockResponse: description: Blockc info allOf: - $ref: "#/definitions/JSONRPC" - type: object properties: result: $ref: "#/definitions/BlockComplete" Tag: type: object properties: key: type: string example: "YWN0aW9u" value: type: string example: "c2VuZA==" ################## FROM NOW ON NEEDS REFACTOR ################## BlockResultsResponse: type: "object" required: - "jsonrpc" - "id" - "result" properties: jsonrpc: type: "string" example: "2.0" id: type: "string" example: "" result: required: - "height" - "results" properties: height: type: "string" example: "12" results: required: - "deliver_tx" - "end_block" - "begin_block" properties: deliver_tx: type: "array" x-nullable: true items: type: "object" properties: log: type: "string" example: '[{"msg_index":"0","success":true,"log":""}]' gasWanted: type: "string" example: "25629" gasUsed: type: "string" example: "25629" tags: type: "array" items: type: "object" properties: key: type: "string" example: "YWN0aW9u" value: type: "string" example: "c2VuZA==" end_block: required: - "validator_updates" properties: {} type: "object" begin_block: properties: {} type: "object" type: "object" type: "object" CommitResponse: type: "object" required: - "jsonrpc" - "id" - "result" properties: jsonrpc: type: "string" example: "2.0" id: type: "string" example: "" result: required: - "signed_header" - "canonical" properties: signed_header: required: - "header" - "commit" properties: header: required: - "version" - "chain_id" - "height" - "time" - "num_txs" - "total_txs" - "last_block_id" - "last_commit_hash" - "data_hash" - "validators_hash" - "next_validators_hash" - "consensus_hash" - "app_hash" - "last_results_hash" - "evidence_hash" - "proposer_address" properties: version: required: - "block" - "app" properties: block: type: "string" example: "10" app: type: "string" example: "0" type: "object" chain_id: type: "string" example: "cosmoshub-2" height: type: "string" example: "12" time: type: "string" example: "2019-04-22T17:01:51.701356223Z" num_txs: type: "string" example: "2" total_txs: type: "string" example: "3" last_block_id: required: - "hash" - "parts" properties: hash: type: "string" example: "D82C2734BB0E76C772A10994B210EF9D11505D1B98CB189D9CF7F9A5488672A5" parts: required: - "total" - "hash" properties: total: type: "string" example: "1" hash: type: "string" example: "CB02DCAA7FB46BF874052EC2273FD0B1F2CF2E1593298D9781E60FE9C3DB8638" type: "object" type: "object" last_commit_hash: type: "string" example: "21B9BC845AD2CB2C4193CDD17BFC506F1EBE5A7402E84AD96E64171287A34812" data_hash: type: "string" example: "970886F99E77ED0D60DA8FCE0447C2676E59F2F77302B0C4AA10E1D02F18EF73" validators_hash: type: "string" example: "D658BFD100CA8025CFD3BECFE86194322731D387286FBD26E059115FD5F2BCA0" next_validators_hash: type: "string" example: "D658BFD100CA8025CFD3BECFE86194322731D387286FBD26E059115FD5F2BCA0" consensus_hash: type: "string" example: "0F2908883A105C793B74495EB7D6DF2EEA479ED7FC9349206A65CB0F9987A0B8" app_hash: type: "string" example: "223BF64D4A01074DC523A80E76B9BBC786C791FB0A1893AC5B14866356FCFD6C" last_results_hash: type: "string" example: "" evidence_hash: type: "string" example: "" proposer_address: type: "string" example: "D540AB022088612AC74B287D076DBFBC4A377A2E" type: "object" commit: required: - "block_id" - "precommits" properties: block_id: required: - "hash" - "parts" properties: hash: type: "string" example: "112BC173FD838FB68EB43476816CD7B4C6661B6884A9E357B417EE957E1CF8F7" parts: required: - "total" - "hash" properties: total: type: "string" example: "1" hash: type: "string" example: "38D4B26B5B725C4F13571EFE022C030390E4C33C8CF6F88EDD142EA769642DBD" type: "object" type: "object" precommits: type: "array" items: type: "object" properties: type: type: "number" example: 2 height: type: "string" example: "12" round: type: "string" example: "0" block_id: required: - "hash" - "parts" properties: hash: type: "string" example: "112BC173FD838FB68EB43476816CD7B4C6661B6884A9E357B417EE957E1CF8F7" parts: required: - "total" - "hash" properties: total: type: "string" example: "1" hash: type: "string" example: "38D4B26B5B725C4F13571EFE022C030390E4C33C8CF6F88EDD142EA769642DBD" type: "object" type: "object" timestamp: type: "string" example: "2019-04-22T17:01:58.376629719Z" validator_address: type: "string" example: "000001E443FD237E4B616E2FA69DF4EE3D49A94F" validator_index: type: "string" example: "0" signature: type: "string" example: "14jaTQXYRt8kbLKEhdHq7AXycrFImiLuZx50uOjs2+Zv+2i7RTG/jnObD07Jo2ubZ8xd7bNBJMqkgtkd0oQHAw==" type: "object" type: "object" canonical: type: "boolean" example: true type: "object" ValidatorsResponse: type: object required: - "jsonrpc" - "id" - "result" properties: jsonrpc: type: "string" example: "2.0" id: type: "string" example: "" result: required: - "block_height" - "validators" properties: block_height: type: "string" example: "55" validators: type: "array" items: type: "object" properties: address: type: "string" example: "000001E443FD237E4B616E2FA69DF4EE3D49A94F" pub_key: required: - "type" - "value" properties: type: type: "string" example: "tendermint/PubKeyEd25519" value: type: "string" example: "9tK9IT+FPdf2qm+5c2qaxi10sWP+3erWTKgftn2PaQM=" type: "object" voting_power: type: "string" example: "250353" proposer_priority: type: "string" example: "13769415" type: "object" GenesisResponse: type: object required: - "jsonrpc" - "id" - "result" properties: jsonrpc: type: "string" example: "2.0" id: type: "string" example: "" result: required: - "genesis" properties: genesis: required: - "genesis_time" - "chain_id" - "consensus_params" - "validators" - "app_hash" properties: genesis_time: type: "string" example: "2019-04-22T17:00:00Z" chain_id: type: "string" example: "cosmoshub-2" consensus_params: required: - "block" - "evidence" - "validator" properties: block: required: - "max_bytes" - "max_gas" - "time_iota_ms" properties: max_bytes: type: "string" example: "200000" max_gas: type: "string" example: "2000000" time_iota_ms: type: "string" example: "1000" type: "object" evidence: required: - "max_age" properties: max_age: type: "string" example: "1000000" type: "object" validator: required: - "pub_key_types" properties: pub_key_types: type: "array" items: type: "string" example: - "ed25519" type: "object" type: "object" validators: type: "array" items: type: "object" properties: address: type: "string" example: "B00A6323737F321EB0B8D59C6FD497A14B60938A" pub_key: required: - "type" - "value" properties: type: type: "string" example: "tendermint/PubKeyEd25519" value: type: "string" example: "cOQZvh/h9ZioSeUMZB/1Vy1Xo5x2sjrVjlE/qHnYifM=" type: "object" power: type: "string" example: "9328525" name: type: "string" example: "Certus One" app_hash: type: "string" example: "" app_state: properties: {} type: "object" type: "object" type: "object" DumpConsensusResponse: type: object required: - "jsonrpc" - "id" - "result" properties: jsonrpc: type: "string" example: "2.0" id: type: "string" example: "" result: required: - "round_state" - "peers" properties: round_state: required: - "height" - "round" - "step" - "start_time" - "commit_time" - "validators" - "proposal" - "proposal_block" - "proposal_block_parts" - "locked_round" - "locked_block" - "locked_block_parts" - "valid_round" - "valid_block" - "valid_block_parts" - "votes" - "commit_round" - "last_commit" - "last_validators" - "triggered_timeout_precommit" properties: height: type: "string" example: "1311801" round: type: "string" example: "0" step: type: "number" example: 3 start_time: type: "string" example: "2019-08-05T11:28:49.064658805Z" commit_time: type: "string" example: "2019-08-05T11:28:44.064658805Z" validators: required: - "validators" - "proposer" properties: validators: type: "array" items: type: "object" properties: address: type: "string" example: "000001E443FD237E4B616E2FA69DF4EE3D49A94F" pub_key: required: - "type" - "value" properties: type: type: "string" example: "tendermint/PubKeyEd25519" value: type: "string" example: "9tK9IT+FPdf2qm+5c2qaxi10sWP+3erWTKgftn2PaQM=" type: "object" voting_power: type: "string" example: "239727" proposer_priority: type: "string" example: "-11896414" proposer: required: - "address" - "pub_key" - "voting_power" - "proposer_priority" properties: address: type: "string" example: "708FDDCE121CDADA502F2B0252FEF13FDAA31E50" pub_key: required: - "type" - "value" properties: type: type: "string" example: "tendermint/PubKeyEd25519" value: type: "string" example: "VNMNfw7mrQBSpEvCtA9ykOe6BoR00RM9b/a9v3vXZhY=" type: "object" voting_power: type: "string" example: "295360" proposer_priority: type: "string" example: "-88886833" type: "object" type: "object" locked_round: type: "string" example: "-1" valid_round: type: "string" example: "-1" votes: type: "array" items: type: "object" properties: round: type: "string" example: "0" prevotes: type: "array" x-nullable: true items: type: "string" example: - "nil-Vote" - "Vote{19:46A3F8B8393B 1311801/00/1(Prevote) 000000000000 64CE682305CB @ 2019-08-05T11:28:47.374703444Z}" prevotes_bit_array: type: "string" example: "BA{100:___________________x________________________________________________________________________________} 209706/170220253 = 0.00" precommits: type: "array" x-nullable: true items: type: "string" example: - "nil-Vote" precommits_bit_array: type: "string" example: "BA{100:____________________________________________________________________________________________________} 0/170220253 = 0.00" commit_round: type: "string" example: "-1" last_commit: x-nullable: true required: - "votes" - "votes_bit_array" - "peer_maj_23s" properties: votes: type: "array" items: type: "string" example: - "Vote{0:000001E443FD 1311800/00/2(Precommit) 3071ADB27D1A 77EE1B6B6847 @ 2019-08-05T11:28:43.810128139Z}" votes_bit_array: type: "string" example: "BA{100:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx} 170220253/170220253 = 1.00" peer_maj_23s: properties: {} type: "object" type: "object" last_validators: required: - "validators" - "proposer" properties: validators: type: "array" items: type: "object" properties: address: type: "string" example: "000001E443FD237E4B616E2FA69DF4EE3D49A94F" pub_key: required: - "type" - "value" properties: type: type: "string" example: "tendermint/PubKeyEd25519" value: type: "string" example: "9tK9IT+FPdf2qm+5c2qaxi10sWP+3erWTKgftn2PaQM=" type: "object" voting_power: type: "string" example: "239727" proposer_priority: type: "string" example: "-12136141" proposer: required: - "address" - "pub_key" - "voting_power" - "proposer_priority" properties: address: type: "string" example: "B00A6323737F321EB0B8D59C6FD497A14B60938A" pub_key: required: - "type" - "value" properties: type: type: "string" example: "tendermint/PubKeyEd25519" value: type: "string" example: "cOQZvh/h9ZioSeUMZB/1Vy1Xo5x2sjrVjlE/qHnYifM=" type: "object" voting_power: type: "string" example: "8590153" proposer_priority: type: "string" example: "-79515145" type: "object" type: "object" triggered_timeout_precommit: type: "boolean" example: false type: "object" peers: type: "array" items: type: "object" properties: node_address: type: "string" example: "357f6a6c1d27414579a8185060aa8adf9815c43c@68.183.41.207:26656" peer_state: required: - "round_state" - "stats" properties: round_state: required: - "height" - "round" - "step" - "start_time" - "proposal" - "proposal_block_parts_header" - "proposal_block_parts" - "proposal_pol_round" - "proposal_pol" - "prevotes" - "precommits" - "last_commit_round" - "last_commit" - "catchup_commit_round" - "catchup_commit" properties: height: type: "string" example: "1311801" round: type: "string" example: "0" step: type: "number" example: 3 start_time: type: "string" example: "2019-08-05T11:28:49.21730864Z" proposal: type: "boolean" example: false proposal_block_parts_header: required: - "total" - "hash" properties: total: type: "string" example: "0" hash: type: "string" example: "" type: "object" proposal_pol_round: x-nullable: true type: "string" example: "-1" proposal_pol: x-nullable: true type: "string" example: "____________________________________________________________________________________________________" prevotes: x-nullable: true type: "string" example: "___________________x________________________________________________________________________________" precommits: x-nullable: true type: "string" example: "____________________________________________________________________________________________________" last_commit_round: x-nullable: true type: "string" example: "0" last_commit: x-nullable: true type: "string" example: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" catchup_commit_round: type: "string" x-nullable: true example: "-1" catchup_commit: x-nullable: true type: "string" example: "____________________________________________________________________________________________________" type: "object" stats: required: - "votes" - "block_parts" properties: votes: type: "string" example: "1159558" block_parts: type: "string" example: "4786" type: "object" type: "object" type: "object" ConsensusStateResponse: type: object required: - "jsonrpc" - "id" - "result" properties: jsonrpc: type: "string" example: "2.0" id: type: "string" example: "" result: required: - "round_state" properties: round_state: required: - "height/round/step" - "start_time" - "proposal_block_hash" - "locked_block_hash" - "valid_block_hash" - "height_vote_set" properties: height/round/step: type: "string" example: "1262197/0/8" start_time: type: "string" example: "2019-08-01T11:52:38.962730289Z" proposal_block_hash: type: "string" example: "634ADAF1F402663BEC2ABC340ECE8B4B45AA906FA603272ACC5F5EED3097E009" locked_block_hash: type: "string" example: "634ADAF1F402663BEC2ABC340ECE8B4B45AA906FA603272ACC5F5EED3097E009" valid_block_hash: type: "string" example: "634ADAF1F402663BEC2ABC340ECE8B4B45AA906FA603272ACC5F5EED3097E009" height_vote_set: type: "array" items: type: "object" properties: round: type: "string" example: "0" prevotes: type: "array" items: type: "string" example: - "Vote{0:000001E443FD 1262197/00/1(Prevote) 634ADAF1F402 7BB974E1BA40 @ 2019-08-01T11:52:35.513572509Z}" - "nil-Vote" prevotes_bit_array: type: "string" example: "BA{100:xxxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx} 169753436/170151262 = 1.00" precommits: type: "array" items: type: "string" example: - "Vote{5:18C78D135C9D 1262197/00/2(Precommit) 634ADAF1F402 8B5EFFFEABCD @ 2019-08-01T11:52:36.25600005Z}" - "nil-Vote" precommits_bit_array: type: "string" example: "BA{100:xxxxxx_xxxxx_xxxx_x_xxx_xx_xx_xx__x_x_x__xxxxxxxxxxxxxx_xxxx_xx_xxxxxx_xxxxxxxx_xxxx_xxx_x_xxxx__xxx} 118726247/170151262 = 0.70" type: "object" type: "object" ConsensusParamsResponse: type: object required: - "jsonrpc" - "id" - "result" properties: jsonrpc: type: "string" example: "2.0" id: type: "string" example: "" result: required: - "block_height" - "consensus_params" properties: block_height: type: "string" example: "1313448" consensus_params: required: - "block" - "evidence" - "validator" properties: block: required: - "max_bytes" - "max_gas" - "time_iota_ms" properties: max_bytes: type: "string" example: "200000" max_gas: type: "string" example: "2000000" time_iota_ms: type: "string" example: "1000" type: "object" evidence: required: - "max_age" properties: max_age: type: "string" example: "1000000" type: "object" validator: required: - "pub_key_types" properties: pub_key_types: type: "array" items: type: "string" example: - "ed25519" type: "object" type: "object" type: "object" NumUnconfirmedTransactionsResponse: type: object required: - "jsonrpc" - "id" - "result" properties: jsonrpc: type: "string" example: "2.0" id: type: "string" example: "" result: required: - "n_txs" - "total" - "total_bytes" properties: n_txs: type: "string" example: "31" total: type: "string" example: "82" total_bytes: type: "string" example: "19974" # txs: # type: "array" # x-nullable: true # items: # type: "string" # x-nullable: true # example: # - "gAPwYl3uCjCMTXENChSMnIkb5ZpYHBKIZqecFEV2tuZr7xIUA75/FmYq9WymsOBJ0XSJ8yV8zmQKMIxNcQ0KFIyciRvlmlgcEohmp5wURXa25mvvEhQbrvwbvlNiT+Yjr86G+YQNx7kRVgowjE1xDQoUjJyJG+WaWBwSiGannBRFdrbma+8SFK2m+1oxgILuQLO55n8mWfnbIzyPCjCMTXENChSMnIkb5ZpYHBKIZqecFEV2tuZr7xIUQNGfkmhTNMis4j+dyMDIWXdIPiYKMIxNcQ0KFIyciRvlmlgcEohmp5wURXa25mvvEhS8sL0D0wwgGCItQwVowak5YB38KRIUCg4KBXVhdG9tEgUxMDA1NBDoxRgaagom61rphyECn8x7emhhKdRCB2io7aS/6Cpuq5NbVqbODmqOT3jWw6kSQKUresk+d+Gw0BhjiggTsu8+1voW+VlDCQ1GRYnMaFOHXhyFv7BCLhFWxLxHSAYT8a5XqoMayosZf9mANKdXArA=" type: "object" UnconfirmedTransactionsResponse: type: object required: - "jsonrpc" - "id" - "result" properties: jsonrpc: type: "string" example: "2.0" id: type: "string" example: "" result: required: - "n_txs" - "total" - "total_bytes" - "txs" properties: n_txs: type: "string" example: "82" total: type: "string" example: "82" total_bytes: type: "string" example: "19974" txs: type: array x-nullable: true items: type: string x-nullable: true example: - "gAPwYl3uCjCMTXENChSMnIkb5ZpYHBKIZqecFEV2tuZr7xIUA75/FmYq9WymsOBJ0XSJ8yV8zmQKMIxNcQ0KFIyciRvlmlgcEohmp5wURXa25mvvEhQbrvwbvlNiT+Yjr86G+YQNx7kRVgowjE1xDQoUjJyJG+WaWBwSiGannBRFdrbma+8SFK2m+1oxgILuQLO55n8mWfnbIzyPCjCMTXENChSMnIkb5ZpYHBKIZqecFEV2tuZr7xIUQNGfkmhTNMis4j+dyMDIWXdIPiYKMIxNcQ0KFIyciRvlmlgcEohmp5wURXa25mvvEhS8sL0D0wwgGCItQwVowak5YB38KRIUCg4KBXVhdG9tEgUxMDA1NBDoxRgaagom61rphyECn8x7emhhKdRCB2io7aS/6Cpuq5NbVqbODmqOT3jWw6kSQKUresk+d+Gw0BhjiggTsu8+1voW+VlDCQ1GRYnMaFOHXhyFv7BCLhFWxLxHSAYT8a5XqoMayosZf9mANKdXArA=" type: "object" TxSearchResponse: type: object required: - "jsonrpc" - "id" - "result" properties: jsonrpc: type: "string" example: "2.0" id: type: "string" example: "" result: required: - "txs" - "total_count" properties: txs: type: "array" items: type: "object" properties: hash: type: "string" example: "D70952032620CC4E2737EB8AC379806359D8E0B17B0488F627997A0B043ABDED" height: type: "string" example: "1000" index: type: "number" example: 0 tx_result: required: - "log" - "gasWanted" - "gasUsed" - "tags" properties: log: type: "string" example: '[{"msg_index":"0","success":true,"log":""}]' gasWanted: type: "string" example: "200000" gasUsed: type: "string" example: "28596" tags: type: "array" items: type: "object" properties: key: type: "string" example: "YWN0aW9u" value: type: "string" example: "c2VuZA==" type: "object" tx: type: "string" example: "5wHwYl3uCkaoo2GaChQmSIu8hxpJxLcCuIi8fiHN4TMwrRIU/Af1cEG7Rcs/6LjTl7YjRSymJfYaFAoFdWF0b20SCzE0OTk5OTk1MDAwEhMKDQoFdWF0b20SBDUwMDAQwJoMGmoKJuta6YchAwswBShaB1wkZBctLIhYqBC3JrAI28XGzxP+rVEticGEEkAc+khTkKL9CDE47aDvjEHvUNt+izJfT4KVF2v2JkC+bmlH9K08q3PqHeMI9Z5up+XMusnTqlP985KF+SI5J3ZOIhhNYWRlIGJ5IENpcmNsZSB3aXRoIGxvdmU=" proof: required: - "RootHash" - "Data" - "Proof" properties: RootHash: type: "string" example: "72FE6BF6D4109105357AECE0A82E99D0F6288854D16D8767C5E72C57F876A14D" Data: type: "string" example: "5wHwYl3uCkaoo2GaChQmSIu8hxpJxLcCuIi8fiHN4TMwrRIU/Af1cEG7Rcs/6LjTl7YjRSymJfYaFAoFdWF0b20SCzE0OTk5OTk1MDAwEhMKDQoFdWF0b20SBDUwMDAQwJoMGmoKJuta6YchAwswBShaB1wkZBctLIhYqBC3JrAI28XGzxP+rVEticGEEkAc+khTkKL9CDE47aDvjEHvUNt+izJfT4KVF2v2JkC+bmlH9K08q3PqHeMI9Z5up+XMusnTqlP985KF+SI5J3ZOIhhNYWRlIGJ5IENpcmNsZSB3aXRoIGxvdmU=" Proof: required: - "total" - "index" - "leaf_hash" - "aunts" properties: total: type: "string" example: "2" index: type: "string" example: "0" leaf_hash: type: "string" example: "eoJxKCzF3m72Xiwb/Q43vJ37/2Sx8sfNS9JKJohlsYI=" aunts: type: "array" items: type: "string" example: - "eWb+HG/eMmukrQj4vNGyFYb3nKQncAWacq4HF5eFzDY=" type: "object" type: "object" total_count: type: "string" example: "2" type: "object" TxResponse: type: object required: - "jsonrpc" - "id" - "result" properties: jsonrpc: type: "string" example: "2.0" id: type: "string" example: "" result: required: - "hash" - "height" - "index" - "tx_result" - "tx" properties: hash: type: "string" example: "D70952032620CC4E2737EB8AC379806359D8E0B17B0488F627997A0B043ABDED" height: type: "string" example: "1000" index: type: "number" example: 0 tx_result: required: - "log" - "gasWanted" - "gasUsed" - "tags" properties: log: type: "string" example: '[{"msg_index":"0","success":true,"log":""}]' gasWanted: type: "string" example: "200000" gasUsed: type: "string" example: "28596" tags: type: "array" items: type: "object" properties: key: type: "string" example: "YWN0aW9u" value: type: "string" example: "c2VuZA==" type: "object" tx: type: "string" example: "5wHwYl3uCkaoo2GaChQmSIu8hxpJxLcCuIi8fiHN4TMwrRIU/Af1cEG7Rcs/6LjTl7YjRSymJfYaFAoFdWF0b20SCzE0OTk5OTk1MDAwEhMKDQoFdWF0b20SBDUwMDAQwJoMGmoKJuta6YchAwswBShaB1wkZBctLIhYqBC3JrAI28XGzxP+rVEticGEEkAc+khTkKL9CDE47aDvjEHvUNt+izJfT4KVF2v2JkC+bmlH9K08q3PqHeMI9Z5up+XMusnTqlP985KF+SI5J3ZOIhhNYWRlIGJ5IENpcmNsZSB3aXRoIGxvdmU=" type: "object" ABCIInfoResponse: type: object required: - "jsonrpc" - "id" properties: jsonrpc: type: "string" example: "2.0" id: type: "string" example: "" result: required: - "response" properties: response: required: - "data" - "app_version" - "version" properties: data: type: "string" example: '{"size":0}' version: type: string example: "0.16.1" app_version: type: "string" example: "1314126" type: "object" type: "object" ABCIQueryResponse: type: object required: - "error" - "result" - "id" - "jsonrpc" properties: error: type: "string" example: "" result: required: - "response" properties: response: required: - "log" - "height" - "proof" - "value" - "key" - "index" - "code" properties: log: type: "string" example: "exists" height: type: "string" example: "0" proof: type: "string" example: "010114FED0DAD959F36091AD761C922ABA3CBF1D8349990101020103011406AA2262E2F448242DF2C2607C3CDC705313EE3B0001149D16177BC71E445476174622EA559715C293740C" value: type: "string" example: "61626364" key: type: "string" example: "61626364" index: type: "string" example: "-1" code: type: "string" example: "0" type: "object" type: "object" id: type: "string" example: "" jsonrpc: type: "string" example: "2.0" BroadcastEvidenceResponse: type: object required: - "id" - "jsonrpc" properties: error: type: "string" example: "" result: type: "string" example: "" id: type: "string" example: "" jsonrpc: type: "string" example: "2.0" BroadcastTxCommitResponse: type: object required: - "error" - "result" - "id" - "jsonrpc" properties: error: type: "string" example: "" result: required: - "height" - "hash" - "deliver_tx" - "check_tx" properties: height: type: "string" example: "26682" hash: type: "string" example: "75CA0F856A4DA078FC4911580360E70CEFB2EBEE" deliver_tx: required: - "log" - "data" - "code" properties: log: type: "string" example: "" data: type: "string" example: "" code: type: "string" example: "0" type: "object" check_tx: required: - "log" - "data" - "code" properties: log: type: "string" example: "" data: type: "string" example: "" code: type: "string" example: "0" type: "object" type: "object" id: type: "string" example: "" jsonrpc: type: "string" example: "2.0" BroadcastTxResponse: type: object required: - "jsonrpc" - "id" - "result" - "error" properties: jsonrpc: type: "string" example: "2.0" id: type: "string" example: "" result: required: - "code" - "data" - "log" - "hash" properties: code: type: "string" example: "0" data: type: "string" example: "" log: type: "string" example: "" hash: type: "string" example: "0D33F2F03A5234F38706E43004489E061AC40A2E" type: "object" error: type: "string" example: ""