openapi: 3.0.0
|
|
info:
|
|
title: Tendermint RPC
|
|
contact:
|
|
name: Tendermint RPC
|
|
url: https://github.com/tendermint/tendermint/issues/new/choose
|
|
description: |
|
|
Tendermint supports the following RPC protocols:
|
|
|
|
* URI over HTTP
|
|
* JSONRPC over HTTP
|
|
* JSONRPC over websockets
|
|
|
|
## Configuration
|
|
|
|
RPC can be configured by tuning parameters under `[rpc]` table in the
|
|
`$TMHOME/config/config.toml` file or by using the `--rpc.X` command-line
|
|
flags.
|
|
|
|
Default rpc listen address is `tcp://0.0.0.0:26657`.
|
|
To set another address, set the `laddr` config parameter to desired value.
|
|
CORS (Cross-Origin Resource Sharing) can be enabled by setting
|
|
`cors_allowed_origins`, `cors_allowed_methods`, `cors_allowed_headers`
|
|
config parameters.
|
|
|
|
## Arguments
|
|
|
|
Arguments which expect strings or byte arrays may be passed as quoted
|
|
strings, like `"abc"` or as `0x`-prefixed strings, like `0x616263`.
|
|
|
|
## URI/HTTP
|
|
|
|
A REST like interface.
|
|
|
|
curl localhost:26657/block?height=5
|
|
|
|
## JSONRPC/HTTP
|
|
|
|
JSONRPC requests can be POST'd to the root RPC endpoint via HTTP.
|
|
|
|
curl --header "Content-Type: application/json" --request POST --data '{"method": "block", "params": ["5"], "id": 1}' localhost:26657
|
|
|
|
## JSONRPC/websockets
|
|
|
|
JSONRPC requests can be also made via websocket.
|
|
The websocket endpoint is at `/websocket`, e.g. `localhost:26657/websocket`.
|
|
Asynchronous RPC functions like event `subscribe` and `unsubscribe` are
|
|
only available via websockets.
|
|
|
|
Example using https://github.com/hashrocket/ws:
|
|
|
|
ws ws://localhost:26657/websocket
|
|
> { "jsonrpc": "2.0", "method": "subscribe", "params": ["tm.event='NewBlock'"], "id": 1 }
|
|
version: "Master"
|
|
license:
|
|
name: Apache 2.0
|
|
url: https://github.com/tendermint/tendermint/blob/master/LICENSE
|
|
servers:
|
|
- url: https://rpc.cosmos.network
|
|
description: Cosmos mainnet node to interact with the Tendermint RPC
|
|
- url: http://localhost:26657
|
|
description: Interact with the Tendermint RPC locally on your device
|
|
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
|
|
- name: Unsafe
|
|
description: Unsafe APIs
|
|
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://docs.tendermint.com/master/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://docs.tendermint.com/master/tendermint-core/using-tendermint.html#formatting
|
|
for formatting/encoding rules.
|
|
parameters:
|
|
- in: query
|
|
name: tx
|
|
required: true
|
|
schema:
|
|
type: string
|
|
example: "456"
|
|
description: The transaction
|
|
responses:
|
|
"200":
|
|
description: Empty
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BroadcastTxResponse"
|
|
"500":
|
|
description: Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/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://docs.tendermint.com/master/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://docs.tendermint.com/master/tendermint-core/using-tendermint.html#formatting
|
|
for formatting/encoding rules.
|
|
parameters:
|
|
- in: query
|
|
name: tx
|
|
required: true
|
|
schema:
|
|
type: string
|
|
example: "123"
|
|
description: The transaction
|
|
responses:
|
|
"200":
|
|
description: empty answer
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BroadcastTxResponse"
|
|
"500":
|
|
description: empty error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/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://docs.tendermint.com/master/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://docs.tendermint.com/master/tendermint-core/using-tendermint.html#formatting
|
|
for formatting/encoding rules.
|
|
parameters:
|
|
- in: query
|
|
name: tx
|
|
required: true
|
|
schema:
|
|
type: string
|
|
example: "785"
|
|
description: The transaction
|
|
responses:
|
|
"200":
|
|
description: empty answer
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BroadcastTxCommitResponse"
|
|
"500":
|
|
description: empty error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/check_tx:
|
|
get:
|
|
summary: Checks the transaction without executing it.
|
|
tags:
|
|
- Tx
|
|
operationId: check_tx
|
|
description: |
|
|
The transaction won't be added to the mempool.
|
|
|
|
Please refer to
|
|
https://docs.tendermint.com/master/tendermint-core/using-tendermint.html#formatting
|
|
for formatting/encoding rules.
|
|
parameters:
|
|
- in: query
|
|
name: tx
|
|
required: true
|
|
schema:
|
|
type: string
|
|
example: "785"
|
|
description: The transaction
|
|
responses:
|
|
"200":
|
|
description: ABCI application's CheckTx response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CheckTxResponse"
|
|
"500":
|
|
description: empty error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/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" AND "EXISTS". 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: abci.EventAttribute{
|
|
{Key: []byte("address"), Value: []byte("AddrA"), Index: true},
|
|
{Key: []byte("source"), Value: []byte("SrcX"), Index: true},
|
|
{Key: []byte("amount"), Value: []byte("..."), Index: true},
|
|
{Key: []byte("balance"), Value: []byte("..."), Index: true},
|
|
},
|
|
},
|
|
{
|
|
Type: "rewards.withdraw",
|
|
Attributes: abci.EventAttribute{
|
|
{Key: []byte("address"), Value: []byte("AddrB"), Index: true},
|
|
{Key: []byte("source"), Value: []byte("SrcY"), Index: true},
|
|
{Key: []byte("amount"), Value: []byte("..."), Index: true},
|
|
{Key: []byte("balance"), Value: []byte("..."), Index: true},
|
|
},
|
|
},
|
|
{
|
|
Type: "transfer",
|
|
Attributes: abci.EventAttribute{
|
|
{Key: []byte("sender"), Value: []byte("AddrC"), Index: true},
|
|
{Key: []byte("recipient"), Value: []byte("AddrD"), Index: true},
|
|
{Key: []byte("amount"), Value: []byte("..."), Index: true},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
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 rpchttp "github.com/tendermint/rpc/client/http"
|
|
import "github.com/tendermint/tendermint/types"
|
|
|
|
client := rpchttp.New("tcp://0.0.0.0:26657")
|
|
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))
|
|
}
|
|
}()
|
|
```
|
|
|
|
NOTE: if you're not reading events fast enough, Tendermint might
|
|
terminate the subscription.
|
|
parameters:
|
|
- in: query
|
|
name: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
example: tm.event = 'Tx' AND tx.height = 5
|
|
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.
|
|
responses:
|
|
"200":
|
|
description: empty answer
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EmptyResponse"
|
|
"500":
|
|
description: empty error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/unsubscribe:
|
|
get:
|
|
summary: Unsubscribe from event on Websocket
|
|
tags:
|
|
- Websocket
|
|
operationId: unsubscribe
|
|
description: |
|
|
```go
|
|
client := rpchttp.New("tcp://0.0.0.0:26657")
|
|
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
|
|
required: true
|
|
schema:
|
|
type: string
|
|
example: tm.event = 'Tx' AND tx.height = 5
|
|
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.
|
|
responses:
|
|
"200":
|
|
description: Answer
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EmptyResponse"
|
|
"500":
|
|
description: Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/unsubscribe_all:
|
|
get:
|
|
summary: Unsubscribe from all events via WebSocket
|
|
tags:
|
|
- Websocket
|
|
operationId: unsubscribe_all
|
|
description: |
|
|
Unsubscribe from all events via WebSocket
|
|
responses:
|
|
"200":
|
|
description: empty answer
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EmptyResponse"
|
|
"500":
|
|
description: empty error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/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.
|
|
responses:
|
|
"200":
|
|
description: Gets Node Health
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/EmptyResponse"
|
|
"500":
|
|
description: empty error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/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, current max peer height, and time.
|
|
responses:
|
|
"200":
|
|
description: Status of the node
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/StatusResponse"
|
|
"500":
|
|
description: empty error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/net_info:
|
|
get:
|
|
summary: Network informations
|
|
operationId: net_info
|
|
tags:
|
|
- Info
|
|
description: |
|
|
Get network info.
|
|
responses:
|
|
"200":
|
|
description: empty answer
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NetInfoResponse"
|
|
"500":
|
|
description: empty error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/dial_seeds:
|
|
get:
|
|
summary: Dial Seeds (Unsafe)
|
|
operationId: dial_seeds
|
|
tags:
|
|
- Unsafe
|
|
description: |
|
|
Dial a peer, this route in under unsafe, and has to manually enabled to use
|
|
|
|
**Example:** curl 'localhost:26657/dial_seeds?seeds=\["f9baeaa15fedf5e1ef7448dd60f46c01f1a9e9c4@1.2.3.4:26656","0491d373a8e0fcf1023aaf18c51d6a1d0d4f31bd@5.6.7.8:26656"\]'
|
|
parameters:
|
|
- in: query
|
|
name: peers
|
|
description: list of seed nodes to dial
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example: "f9baeaa15fedf5e1ef7448dd60f46c01f1a9e9c4@1.2.3.4:26656"
|
|
responses:
|
|
"200":
|
|
description: Dialing seeds in progress. See /net_info for details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/dialResp"
|
|
"500":
|
|
description: empty error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/dial_peers:
|
|
get:
|
|
summary: Add Peers/Persistent Peers (unsafe)
|
|
operationId: dial_peers
|
|
tags:
|
|
- Unsafe
|
|
description: |
|
|
Set a persistent peer, this route in under unsafe, and has to manually enabled to use.
|
|
|
|
**Example:** curl 'localhost:26657/dial_peers?peers=\["f9baeaa15fedf5e1ef7448dd60f46c01f1a9e9c4@1.2.3.4:26656","0491d373a8e0fcf1023aaf18c51d6a1d0d4f31bd@5.6.7.8:26656"\]&persistent=false'
|
|
parameters:
|
|
- in: query
|
|
name: persistent
|
|
description: Have the peers you are dialing be persistent
|
|
schema:
|
|
type: boolean
|
|
example: true
|
|
- in: query
|
|
name: unconditional
|
|
description: Have the peers you are dialing be unconditional
|
|
schema:
|
|
type: boolean
|
|
example: true
|
|
- in: query
|
|
name: private
|
|
description: Have the peers you are dialing be private
|
|
schema:
|
|
type: boolean
|
|
example: true
|
|
- in: query
|
|
name: peers
|
|
description: array of peers to dial
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example: "f9baeaa15fedf5e1ef7448dd60f46c01f1a9e9c4@1.2.3.4:26656"
|
|
responses:
|
|
"200":
|
|
description: Dialing seeds in progress. See /net_info for details
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/dialResp"
|
|
"500":
|
|
description: empty error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/blockchain:
|
|
get:
|
|
summary: "Get block headers (max: 20) for minHeight <= height <= maxHeight."
|
|
operationId: blockchain
|
|
parameters:
|
|
- in: query
|
|
name: minHeight
|
|
description: Minimum block height to return
|
|
schema:
|
|
type: integer
|
|
example: 1
|
|
- in: query
|
|
name: maxHeight
|
|
description: Maximum block height to return
|
|
schema:
|
|
type: integer
|
|
example: 2
|
|
tags:
|
|
- Info
|
|
description: |
|
|
Get block headers for minHeight <= height maxHeight.
|
|
|
|
If maxHeight does not yet exist, blocks up to the current height will
|
|
be returned. If minHeight does not exist (due to pruning), earliest
|
|
existing height will be used.
|
|
|
|
At most 20 items will be returned. Block headers are returned in
|
|
descending order (highest first).
|
|
responses:
|
|
"200":
|
|
description: Block headers, returned in descending order (highest first).
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BlockchainResponse"
|
|
"500":
|
|
description: Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/block:
|
|
get:
|
|
summary: Get block at a specified height
|
|
operationId: block
|
|
parameters:
|
|
- in: query
|
|
name: height
|
|
schema:
|
|
type: integer
|
|
default: 0
|
|
example: 1
|
|
description: height to return. If no height is provided, it will fetch the latest block.
|
|
tags:
|
|
- Info
|
|
description: |
|
|
Get Block.
|
|
responses:
|
|
"200":
|
|
description: Block informations.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BlockResponse"
|
|
"500":
|
|
description: Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/block_by_hash:
|
|
get:
|
|
summary: Get block by hash
|
|
operationId: block_by_hash
|
|
parameters:
|
|
- in: query
|
|
name: hash
|
|
description: block hash
|
|
required: true
|
|
schema:
|
|
type: string
|
|
example: "0xD70952032620CC4E2737EB8AC379806359D8E0B17B0488F627997A0B043ABDED"
|
|
tags:
|
|
- Info
|
|
description: |
|
|
Get Block By Hash.
|
|
responses:
|
|
"200":
|
|
description: Block informations.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BlockResponse"
|
|
"500":
|
|
description: Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/block_results:
|
|
get:
|
|
summary: Get block results at a specified height
|
|
operationId: block_results
|
|
parameters:
|
|
- in: query
|
|
name: height
|
|
description: height to return. If no height is provided, it will fetch informations regarding the latest block.
|
|
schema:
|
|
type: integer
|
|
default: 0
|
|
example: 1
|
|
tags:
|
|
- Info
|
|
description: |
|
|
Get block_results.
|
|
responses:
|
|
"200":
|
|
description: Block results.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BlockSearchResponse"
|
|
"500":
|
|
description: Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/commit:
|
|
get:
|
|
summary: Get commit results at a specified height
|
|
operationId: commit
|
|
parameters:
|
|
- in: query
|
|
name: height
|
|
description: height to return. If no height is provided, it will fetch commit informations regarding the latest block.
|
|
schema:
|
|
type: integer
|
|
default: 0
|
|
example: 1
|
|
tags:
|
|
- Info
|
|
description: |
|
|
Get Commit.
|
|
responses:
|
|
"200":
|
|
description: |
|
|
Commit results.
|
|
|
|
canonical switches from false to true for block H once block H+1 has been committed. Until then it's subjective and only reflects what this node has seen so far.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/CommitResponse"
|
|
"500":
|
|
description: Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/validators:
|
|
get:
|
|
summary: Get validator set at a specified height
|
|
operationId: validators
|
|
parameters:
|
|
- in: query
|
|
name: height
|
|
description: height to return. If no height is provided, it will fetch validator set which corresponds to the latest block.
|
|
schema:
|
|
type: integer
|
|
default: 0
|
|
example: 1
|
|
- in: query
|
|
name: page
|
|
description: "Page number (1-based)"
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
default: 1
|
|
example: 1
|
|
- in: query
|
|
name: per_page
|
|
description: "Number of entries per page (max: 100)"
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
example: 30
|
|
default: 30
|
|
tags:
|
|
- Info
|
|
description: |
|
|
Get Validators. Validators are sorted first by voting power (descending), then by address (ascending).
|
|
responses:
|
|
"200":
|
|
description: Commit results.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ValidatorsResponse"
|
|
"500":
|
|
description: Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/genesis:
|
|
get:
|
|
summary: Get Genesis
|
|
operationId: genesis
|
|
tags:
|
|
- Info
|
|
description: |
|
|
Get genesis.
|
|
responses:
|
|
"200":
|
|
description: Genesis results.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/GenesisResponse"
|
|
"500":
|
|
description: Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/dump_consensus_state:
|
|
get:
|
|
summary: Get consensus state
|
|
operationId: dump_consensus_state
|
|
tags:
|
|
- Info
|
|
description: |
|
|
Get consensus state.
|
|
|
|
Not safe to call from inside the ABCI application during a block execution.
|
|
responses:
|
|
"200":
|
|
description: |
|
|
Complete consensus state.
|
|
|
|
See https://pkg.go.dev/github.com/tendermint/tendermint/types?tab=doc#Vote.String for Vote string description.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/DumpConsensusResponse"
|
|
"500":
|
|
description: Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/consensus_state:
|
|
get:
|
|
summary: Get consensus state
|
|
operationId: consensus_state
|
|
tags:
|
|
- Info
|
|
description: |
|
|
Get consensus state.
|
|
|
|
Not safe to call from inside the ABCI application during a block execution.
|
|
responses:
|
|
"200":
|
|
description: consensus state results.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ConsensusStateResponse"
|
|
"500":
|
|
description: Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/consensus_params:
|
|
get:
|
|
summary: Get consensus parameters
|
|
operationId: consensus_params
|
|
parameters:
|
|
- in: query
|
|
name: height
|
|
description: height to return. If no height is provided, it will fetch commit informations regarding the latest block.
|
|
schema:
|
|
type: integer
|
|
default: 0
|
|
example: 1
|
|
tags:
|
|
- Info
|
|
description: |
|
|
Get consensus parameters.
|
|
responses:
|
|
"200":
|
|
description: consensus parameters results.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ConsensusParamsResponse"
|
|
"500":
|
|
description: Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/unconfirmed_txs:
|
|
get:
|
|
summary: Get the list of unconfirmed transactions
|
|
operationId: unconfirmed_txs
|
|
parameters:
|
|
- in: query
|
|
name: limit
|
|
description: Maximum number of unconfirmed transactions to return (max 100)
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
default: 30
|
|
example: 1
|
|
tags:
|
|
- Info
|
|
description: |
|
|
Get list of unconfirmed transactions
|
|
responses:
|
|
"200":
|
|
description: List of unconfirmed transactions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/UnconfirmedTransactionsResponse"
|
|
"500":
|
|
description: Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/num_unconfirmed_txs:
|
|
get:
|
|
summary: Get data about unconfirmed transactions
|
|
operationId: num_unconfirmed_txs
|
|
tags:
|
|
- Info
|
|
description: |
|
|
Get data about unconfirmed transactions
|
|
responses:
|
|
"200":
|
|
description: status about unconfirmed transactions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/NumUnconfirmedTransactionsResponse"
|
|
"500":
|
|
description: Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/tx_search:
|
|
get:
|
|
summary: Search for transactions
|
|
description: |
|
|
Search for transactions w/ their results.
|
|
|
|
See /subscribe for the query syntax.
|
|
operationId: tx_search
|
|
parameters:
|
|
- in: query
|
|
name: query
|
|
description: Query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
example: "tx.height=1000"
|
|
- in: query
|
|
name: prove
|
|
description: Include proofs of the transactions inclusion in the block
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
example: true
|
|
- in: query
|
|
name: page
|
|
description: "Page number (1-based)"
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
default: 1
|
|
example: 1
|
|
- in: query
|
|
name: per_page
|
|
description: "Number of entries per page (max: 100)"
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
default: 30
|
|
example: 30
|
|
- in: query
|
|
name: order_by
|
|
description: Order in which transactions are sorted ("asc" or "desc"), by height & index. If empty, default sorting will be still applied.
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: "desc"
|
|
example: "asc"
|
|
tags:
|
|
- Info
|
|
responses:
|
|
"200":
|
|
description: List of unconfirmed transactions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TxSearchResponse"
|
|
"500":
|
|
description: Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/block_search:
|
|
get:
|
|
summary: Search for blocks by BeginBlock and EndBlock events
|
|
description: |
|
|
Search for blocks by BeginBlock and EndBlock events.
|
|
|
|
See /subscribe for the query syntax.
|
|
operationId: block_search
|
|
parameters:
|
|
- in: query
|
|
name: query
|
|
description: Query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
example: "block.height > 1000 AND valset.changed > 0"
|
|
- in: query
|
|
name: page
|
|
description: "Page number (1-based)"
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
default: 1
|
|
example: 1
|
|
- in: query
|
|
name: per_page
|
|
description: "Number of entries per page (max: 100)"
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
default: 30
|
|
example: 30
|
|
- in: query
|
|
name: order_by
|
|
description: Order in which blocks are sorted ("asc" or "desc"), by height. If empty, default sorting will be still applied.
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: "desc"
|
|
example: "asc"
|
|
tags:
|
|
- Info
|
|
responses:
|
|
"200":
|
|
description: List of paginated blocks matching the search criteria.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BlockResultsResponse"
|
|
"500":
|
|
description: Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
|
|
/tx:
|
|
get:
|
|
summary: Get transactions by hash
|
|
operationId: tx
|
|
parameters:
|
|
- in: query
|
|
name: hash
|
|
description: transaction Hash to retrive
|
|
required: true
|
|
schema:
|
|
type: string
|
|
example: "0xD70952032620CC4E2737EB8AC379806359D8E0B17B0488F627997A0B043ABDED"
|
|
- in: query
|
|
name: prove
|
|
description: Include proofs of the transactions inclusion in the block
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
example: true
|
|
default: false
|
|
tags:
|
|
- Info
|
|
description: |
|
|
Get a trasasction
|
|
responses:
|
|
"200":
|
|
description: Get a transaction`
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/TxResponse"
|
|
"500":
|
|
description: Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/abci_info:
|
|
get:
|
|
summary: Get some info about the application.
|
|
operationId: abci_info
|
|
tags:
|
|
- ABCI
|
|
description: |
|
|
Get some info about the application.
|
|
responses:
|
|
"200":
|
|
description: Get some info about the application.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ABCIInfoResponse"
|
|
"500":
|
|
description: Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/abci_query:
|
|
get:
|
|
summary: Query the application for some information.
|
|
operationId: abci_query
|
|
parameters:
|
|
- in: query
|
|
name: path
|
|
description: Path to the data ("/a/b/c")
|
|
required: true
|
|
schema:
|
|
type: string
|
|
example: "/a/b/c"
|
|
- in: query
|
|
name: data
|
|
description: Data
|
|
required: true
|
|
schema:
|
|
type: string
|
|
example: "IHAVENOIDEA"
|
|
- in: query
|
|
name: height
|
|
description: Height (0 means latest)
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
example: 1
|
|
default: 0
|
|
- in: query
|
|
name: prove
|
|
description: Include proofs of the transactions inclusion in the block
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
example: true
|
|
default: false
|
|
tags:
|
|
- ABCI
|
|
description: |
|
|
Query the application for some information.
|
|
responses:
|
|
"200":
|
|
description: Response of the submitted query
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ABCIQueryResponse"
|
|
"500":
|
|
description: Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/broadcast_evidence:
|
|
get:
|
|
summary: Broadcast evidence of the misbehavior.
|
|
operationId: broadcast_evidence
|
|
parameters:
|
|
- in: query
|
|
name: evidence
|
|
description: JSON evidence
|
|
required: true
|
|
schema:
|
|
type: string
|
|
example: "JSON_EVIDENCE_encoded"
|
|
tags:
|
|
- Evidence
|
|
description: |
|
|
Broadcast evidence of the misbehavior.
|
|
responses:
|
|
"200":
|
|
description: Broadcast evidence of the misbehavior.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/BroadcastEvidenceResponse"
|
|
"500":
|
|
description: Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
/re_index:
|
|
post:
|
|
summary: Re-index the block/tx event data (Unsafe)
|
|
operationId: re_index
|
|
tags:
|
|
- Unsafe
|
|
description: |
|
|
re-index the block/tx event data to the indexer database, this route in under unsafe, and has to manually enabled to use
|
|
|
|
**Example:** curl -X POST "localhost:26657/re_index?start_height=1&end_height=2"
|
|
parameters:
|
|
- in: query
|
|
name: start_height
|
|
description: the block height would like to start for re-index.
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
example: 1
|
|
- in: query
|
|
name: end_height
|
|
description: the block height would like to finish for re-index.
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
example: 2
|
|
responses:
|
|
"200":
|
|
description: Re-index finished
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ReIndexResponse"
|
|
"500":
|
|
description: Request error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/ErrorResponse"
|
|
|
|
components:
|
|
schemas:
|
|
JSONRPC:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
example: 0
|
|
jsonrpc:
|
|
type: string
|
|
example: "2.0"
|
|
EmptyResponse:
|
|
description: Empty Response
|
|
allOf:
|
|
- $ref: "#/components/schemas/JSONRPC"
|
|
- type: object
|
|
properties:
|
|
result:
|
|
type: object
|
|
additionalProperties: {}
|
|
ErrorResponse:
|
|
description: Error Response
|
|
allOf:
|
|
- $ref: "#/components/schemas/JSONRPC"
|
|
- type: object
|
|
properties:
|
|
error:
|
|
type: string
|
|
example: "Description of failure"
|
|
ProtocolVersion:
|
|
type: object
|
|
properties:
|
|
p2p:
|
|
type: string
|
|
example: "7"
|
|
block:
|
|
type: string
|
|
example: "10"
|
|
app:
|
|
type: string
|
|
example: "0"
|
|
PubKey:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
example: "tendermint/PubKeyEd25519"
|
|
value:
|
|
type: string
|
|
example: "A6DoBUypNtUAyEHWtQ9bFjfNg8Bo9CrnkUGl6k6OHN4="
|
|
NodeInfo:
|
|
type: object
|
|
properties:
|
|
protocol_version:
|
|
$ref: "#/components/schemas/ProtocolVersion"
|
|
id:
|
|
type: string
|
|
example: "5576458aef205977e18fd50b274e9b5d9014525a"
|
|
listen_addr:
|
|
type: string
|
|
example: "tcp://0.0.0.0:26656"
|
|
network:
|
|
type: string
|
|
example: "cosmoshub-2"
|
|
version:
|
|
type: string
|
|
example: "0.32.1"
|
|
channels:
|
|
type: string
|
|
example: "4020212223303800"
|
|
moniker:
|
|
type: string
|
|
example: "moniker-node"
|
|
other:
|
|
type: object
|
|
properties:
|
|
tx_index:
|
|
type: string
|
|
example: "on"
|
|
rpc_address:
|
|
type: string
|
|
example: "tcp://0.0.0.0:26657"
|
|
SyncInfo:
|
|
type: object
|
|
properties:
|
|
latest_block_hash:
|
|
type: string
|
|
example: "790BA84C3545FCCC49A5C629CEE6EA58A6E875C3862175BDC11EE7AF54703501"
|
|
latest_app_hash:
|
|
type: string
|
|
example: "C9AEBB441B787D9F1D846DE51F3826F4FD386108B59B08239653ABF59455C3F8"
|
|
latest_block_height:
|
|
type: string
|
|
example: "1262196"
|
|
latest_block_time:
|
|
type: string
|
|
example: "2019-08-01T11:52:22.818762194Z"
|
|
earliest_block_hash:
|
|
type: string
|
|
example: "790BA84C3545FCCC49A5C629CEE6EA58A6E875C3862175BDC11EE7AF54703501"
|
|
earliest_app_hash:
|
|
type: string
|
|
example: "C9AEBB441B787D9F1D846DE51F3826F4FD386108B59B08239653ABF59455C3F8"
|
|
earliest_block_height:
|
|
type: string
|
|
example: "1262196"
|
|
earliest_block_time:
|
|
type: string
|
|
example: "2019-08-01T11:52:22.818762194Z"
|
|
max_peer_block_height:
|
|
type: string
|
|
example: "1262196"
|
|
catching_up:
|
|
type: boolean
|
|
example: false
|
|
ValidatorInfo:
|
|
type: object
|
|
properties:
|
|
address:
|
|
type: string
|
|
example: "5D6A51A8E9899C44079C6AF90618BA0369070E6E"
|
|
pub_key:
|
|
$ref: "#/components/schemas/PubKey"
|
|
voting_power:
|
|
type: string
|
|
example: "0"
|
|
Status:
|
|
description: Status Response
|
|
type: object
|
|
properties:
|
|
node_info:
|
|
$ref: "#/components/schemas/NodeInfo"
|
|
sync_info:
|
|
$ref: "#/components/schemas/SyncInfo"
|
|
validator_info:
|
|
$ref: "#/components/schemas/ValidatorInfo"
|
|
StatusResponse:
|
|
description: Status Response
|
|
allOf:
|
|
- $ref: "#/components/schemas/JSONRPC"
|
|
- type: object
|
|
properties:
|
|
result:
|
|
$ref: "#/components/schemas/Status"
|
|
Monitor:
|
|
type: object
|
|
properties:
|
|
Active:
|
|
type: boolean
|
|
example: true
|
|
Start:
|
|
type: string
|
|
example: "2019-07-31T14:31:28.66Z"
|
|
Duration:
|
|
type: string
|
|
example: "168901060000000"
|
|
Idle:
|
|
type: string
|
|
example: "168901040000000"
|
|
Bytes:
|
|
type: string
|
|
example: "5"
|
|
Samples:
|
|
type: string
|
|
example: "1"
|
|
InstRate:
|
|
type: string
|
|
example: "0"
|
|
CurRate:
|
|
type: string
|
|
example: "0"
|
|
AvgRate:
|
|
type: string
|
|
example: "0"
|
|
PeakRate:
|
|
type: string
|
|
example: "0"
|
|
BytesRem:
|
|
type: string
|
|
example: "0"
|
|
TimeRem:
|
|
type: string
|
|
example: "0"
|
|
Progress:
|
|
type: integer
|
|
example: 0
|
|
Channel:
|
|
type: object
|
|
properties:
|
|
ID:
|
|
type: integer
|
|
example: 48
|
|
SendQueueCapacity:
|
|
type: string
|
|
example: "1"
|
|
SendQueueSize:
|
|
type: string
|
|
example: "0"
|
|
Priority:
|
|
type: string
|
|
example: "5"
|
|
RecentlySent:
|
|
type: string
|
|
example: "0"
|
|
ConnectionStatus:
|
|
type: object
|
|
properties:
|
|
Duration:
|
|
type: string
|
|
example: "168901057956119"
|
|
SendMonitor:
|
|
$ref: "#/components/schemas/Monitor"
|
|
RecvMonitor:
|
|
$ref: "#/components/schemas/Monitor"
|
|
Channels:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Channel"
|
|
Peer:
|
|
type: object
|
|
properties:
|
|
node_info:
|
|
$ref: "#/components/schemas/NodeInfo"
|
|
is_outbound:
|
|
type: boolean
|
|
example: true
|
|
connection_status:
|
|
$ref: "#/components/schemas/ConnectionStatus"
|
|
remote_ip:
|
|
type: string
|
|
example: "95.179.155.35"
|
|
NetInfo:
|
|
type: object
|
|
properties:
|
|
listening:
|
|
type: boolean
|
|
example: true
|
|
listeners:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example: "Listener(@)"
|
|
n_peers:
|
|
type: string
|
|
example: "1"
|
|
peers:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Peer"
|
|
NetInfoResponse:
|
|
description: NetInfo Response
|
|
allOf:
|
|
- $ref: "#/components/schemas/JSONRPC"
|
|
- type: object
|
|
properties:
|
|
result:
|
|
$ref: "#/components/schemas/NetInfo"
|
|
|
|
BlockMeta:
|
|
type: object
|
|
properties:
|
|
block_id:
|
|
$ref: "#/components/schemas/BlockID"
|
|
block_size:
|
|
type: integer
|
|
example: 1000000
|
|
header:
|
|
$ref: "#/components/schemas/BlockHeader"
|
|
num_txs:
|
|
type: string
|
|
example: "54"
|
|
|
|
Blockchain:
|
|
type: object
|
|
required:
|
|
- "last_height"
|
|
- "block_metas"
|
|
properties:
|
|
last_height:
|
|
type: string
|
|
example: "1276718"
|
|
block_metas:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/BlockMeta"
|
|
|
|
BlockchainResponse:
|
|
description: Blockchain info
|
|
allOf:
|
|
- $ref: "#/components/schemas/JSONRPC"
|
|
- type: object
|
|
properties:
|
|
result:
|
|
$ref: "#/components/schemas/Blockchain"
|
|
|
|
Commit:
|
|
required:
|
|
- "type"
|
|
- "height"
|
|
- "round"
|
|
- "block_id"
|
|
- "timestamp"
|
|
- "validator_address"
|
|
- "validator_index"
|
|
- "signature"
|
|
properties:
|
|
type:
|
|
type: integer
|
|
example: 2
|
|
height:
|
|
type: string
|
|
example: "1262085"
|
|
round:
|
|
type: integer
|
|
example: 0
|
|
block_id:
|
|
$ref: "#/components/schemas/BlockID"
|
|
timestamp:
|
|
type: string
|
|
example: "2019-08-01T11:39:38.867269833Z"
|
|
validator_address:
|
|
type: string
|
|
example: "000001E443FD237E4B616E2FA69DF4EE3D49A94F"
|
|
validator_index:
|
|
type: integer
|
|
example: 0
|
|
signature:
|
|
type: string
|
|
example: "DBchvucTzAUEJnGYpNvMdqLhBAHG4Px8BsOBB3J3mAFCLGeuG7uJqy+nVngKzZdPhPi8RhmE/xcw/M9DOJjEDg=="
|
|
|
|
Block:
|
|
type: object
|
|
properties:
|
|
header:
|
|
$ref: "#/components/schemas/BlockHeader"
|
|
data:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example: "yQHwYl3uCkKoo2GaChRnd+THLQ2RM87nEZrE19910Z28ABIUWW/t8AtIMwcyU0sT32RcMDI9GF0aEAoFdWF0b20SBzEwMDAwMDASEwoNCgV1YXRvbRIEMzEwMRCd8gEaagom61rphyEDoJPxlcjRoNDtZ9xMdvs+lRzFaHe2dl2P5R2yVCWrsHISQKkqX5H1zXAIJuC57yw0Yb03Fwy75VRip0ZBtLiYsUqkOsPUoQZAhDNP+6LY+RUwz/nVzedkF0S29NZ32QXdGv0="
|
|
evidence:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Evidence"
|
|
last_commit:
|
|
type: object
|
|
properties:
|
|
height:
|
|
type: integer
|
|
round:
|
|
type: integer
|
|
block_id:
|
|
$ref: "#/components/schemas/BlockID"
|
|
signatures:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Commit"
|
|
|
|
Evidence:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
height:
|
|
type: integer
|
|
time:
|
|
type: integer
|
|
total_voting_power:
|
|
type: integer
|
|
validator:
|
|
$ref: "#/components/schemas/Validator"
|
|
|
|
BlockComplete:
|
|
type: object
|
|
properties:
|
|
block_id:
|
|
$ref: "#/components/schemas/BlockID"
|
|
block:
|
|
$ref: "#/components/schemas/Block"
|
|
BlockResponse:
|
|
description: Blockc info
|
|
allOf:
|
|
- $ref: "#/components/schemas/JSONRPC"
|
|
- type: object
|
|
properties:
|
|
result:
|
|
$ref: "#/components/schemas/BlockComplete"
|
|
|
|
################## FROM NOW ON NEEDS REFACTOR ##################
|
|
BlockResultsResponse:
|
|
type: object
|
|
required:
|
|
- "jsonrpc"
|
|
- "id"
|
|
- "result"
|
|
properties:
|
|
jsonrpc:
|
|
type: string
|
|
example: "2.0"
|
|
id:
|
|
type: integer
|
|
example: 0
|
|
result:
|
|
type: object
|
|
required:
|
|
- "height"
|
|
properties:
|
|
height:
|
|
type: string
|
|
example: "12"
|
|
txs_results:
|
|
type: array
|
|
nullable: true
|
|
items:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: "0"
|
|
data:
|
|
type: string
|
|
example: ""
|
|
log:
|
|
type: string
|
|
example: "not enough gas"
|
|
info:
|
|
type: string
|
|
example: ""
|
|
gas_wanted:
|
|
type: string
|
|
example: "100"
|
|
gas_used:
|
|
type: string
|
|
example: "100"
|
|
events:
|
|
type: array
|
|
nullable: true
|
|
items:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
example: "app"
|
|
attributes:
|
|
type: array
|
|
nullable: false
|
|
items:
|
|
$ref: "#/components/schemas/Event"
|
|
codespace:
|
|
type: string
|
|
example: "ibc"
|
|
total_gas_used:
|
|
type: string
|
|
example: "100"
|
|
begin_block_events:
|
|
type: array
|
|
nullable: true
|
|
items:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
example: "app"
|
|
attributes:
|
|
type: array
|
|
nullable: false
|
|
items:
|
|
$ref: "#/components/schemas/Event"
|
|
end_block:
|
|
type: array
|
|
nullable: true
|
|
items:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
example: "app"
|
|
attributes:
|
|
type: array
|
|
nullable: false
|
|
items:
|
|
$ref: "#/components/schemas/Event"
|
|
validator_updates:
|
|
type: array
|
|
nullable: true
|
|
items:
|
|
type: object
|
|
properties:
|
|
pub_key:
|
|
type: object
|
|
required:
|
|
- "type"
|
|
- "value"
|
|
properties:
|
|
type:
|
|
type: string
|
|
example: "tendermint/PubKeyEd25519"
|
|
value:
|
|
type: string
|
|
example: "9tK9IT+FPdf2qm+5c2qaxi10sWP+3erWTKgftn2PaQM="
|
|
power:
|
|
type: string
|
|
example: "300"
|
|
consensus_params_updates:
|
|
$ref: "#/components/schemas/ConsensusParams"
|
|
|
|
CommitResponse:
|
|
type: object
|
|
required:
|
|
- "jsonrpc"
|
|
- "id"
|
|
- "result"
|
|
properties:
|
|
jsonrpc:
|
|
type: string
|
|
example: "2.0"
|
|
id:
|
|
type: integer
|
|
example: 0
|
|
result:
|
|
required:
|
|
- "signed_header"
|
|
- "canonical"
|
|
properties:
|
|
signed_header:
|
|
required:
|
|
- "header"
|
|
- "commit"
|
|
properties:
|
|
header:
|
|
$ref: "#/components/schemas/BlockHeader"
|
|
commit:
|
|
required:
|
|
- "height"
|
|
- "round"
|
|
- "block_id"
|
|
- "signatures"
|
|
properties:
|
|
height:
|
|
type: string
|
|
example: "1311801"
|
|
round:
|
|
type: integer
|
|
example: 0
|
|
block_id:
|
|
$ref: "#/components/schemas/BlockID"
|
|
signatures:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
block_id_flag:
|
|
type: integer
|
|
example: 2
|
|
validator_address:
|
|
type: string
|
|
example: "000001E443FD237E4B616E2FA69DF4EE3D49A94F"
|
|
timestamp:
|
|
type: string
|
|
example: "2019-04-22T17:01:58.376629719Z"
|
|
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: integer
|
|
example: 0
|
|
result:
|
|
required:
|
|
- "block_height"
|
|
- "validators"
|
|
properties:
|
|
block_height:
|
|
type: string
|
|
example: "55"
|
|
validators:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ValidatorPriority"
|
|
count:
|
|
type: string
|
|
example: "1"
|
|
total:
|
|
type: string
|
|
example: "25"
|
|
type: object
|
|
GenesisResponse:
|
|
type: object
|
|
required:
|
|
- "jsonrpc"
|
|
- "id"
|
|
- "result"
|
|
properties:
|
|
jsonrpc:
|
|
type: string
|
|
example: "2.0"
|
|
id:
|
|
type: integer
|
|
example: 0
|
|
result:
|
|
type: object
|
|
required:
|
|
- "genesis"
|
|
properties:
|
|
genesis:
|
|
type: object
|
|
required:
|
|
- "genesis_time"
|
|
- "chain_id"
|
|
- "initial_height"
|
|
- "consensus_params"
|
|
- "validators"
|
|
- "app_hash"
|
|
properties:
|
|
genesis_time:
|
|
type: string
|
|
example: "2019-04-22T17:00:00Z"
|
|
chain_id:
|
|
type: string
|
|
example: "cosmoshub-2"
|
|
initial_height:
|
|
type: string
|
|
example: "2"
|
|
consensus_params:
|
|
$ref: "#/components/schemas/ConsensusParams"
|
|
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
|
|
|
|
DumpConsensusResponse:
|
|
type: object
|
|
required:
|
|
- "jsonrpc"
|
|
- "id"
|
|
- "result"
|
|
properties:
|
|
jsonrpc:
|
|
type: string
|
|
example: "2.0"
|
|
id:
|
|
type: integer
|
|
example: 0
|
|
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: integer
|
|
example: 0
|
|
step:
|
|
type: integer
|
|
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:
|
|
$ref: "#/components/schemas/ValidatorPriority"
|
|
proposer:
|
|
$ref: "#/components/schemas/ValidatorPriority"
|
|
type: object
|
|
locked_round:
|
|
type: integer
|
|
example: -1
|
|
valid_round:
|
|
type: string
|
|
example: "-1"
|
|
votes:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
round:
|
|
type: string
|
|
example: "0"
|
|
prevotes:
|
|
type: array
|
|
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
|
|
nullable: true
|
|
items:
|
|
type: string
|
|
example:
|
|
- "nil-Vote"
|
|
precommits_bit_array:
|
|
type: string
|
|
example: "BA{100:____________________________________________________________________________________________________} 0/170220253 = 0.00"
|
|
commit_round:
|
|
type: integer
|
|
example: -1
|
|
last_commit:
|
|
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:
|
|
$ref: "#/components/schemas/ValidatorPriority"
|
|
proposer:
|
|
$ref: "#/components/schemas/ValidatorPriority"
|
|
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: integer
|
|
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: integer
|
|
example: 0
|
|
hash:
|
|
type: string
|
|
example: ""
|
|
type: object
|
|
proposal_pol_round:
|
|
nullable: true
|
|
type: integer
|
|
example: -1
|
|
proposal_pol:
|
|
nullable: true
|
|
type: string
|
|
example: "____________________________________________________________________________________________________"
|
|
prevotes:
|
|
nullable: true
|
|
type: string
|
|
example: "___________________x________________________________________________________________________________"
|
|
precommits:
|
|
nullable: true
|
|
type: string
|
|
example: "____________________________________________________________________________________________________"
|
|
last_commit_round:
|
|
nullable: true
|
|
type: integer
|
|
example: 0
|
|
last_commit:
|
|
nullable: true
|
|
type: string
|
|
example: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
|
catchup_commit_round:
|
|
type: integer
|
|
nullable: true
|
|
example: -1
|
|
catchup_commit:
|
|
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: integer
|
|
example: 0
|
|
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"
|
|
- "proposer"
|
|
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: integer
|
|
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"
|
|
proposer:
|
|
type: object
|
|
properties:
|
|
address:
|
|
type: string
|
|
example: "D540AB022088612AC74B287D076DBFBC4A377A2E"
|
|
index:
|
|
type: integer
|
|
example: 0
|
|
type: object
|
|
type: object
|
|
|
|
ConsensusParamsResponse:
|
|
type: object
|
|
required:
|
|
- "jsonrpc"
|
|
- "id"
|
|
- "result"
|
|
properties:
|
|
jsonrpc:
|
|
type: string
|
|
example: "2.0"
|
|
id:
|
|
type: integer
|
|
example: 0
|
|
result:
|
|
type: object
|
|
required:
|
|
- "block_height"
|
|
- "consensus_params"
|
|
properties:
|
|
block_height:
|
|
type: string
|
|
example: "1"
|
|
consensus_params:
|
|
$ref: "#/components/schemas/ConsensusParams"
|
|
|
|
NumUnconfirmedTransactionsResponse:
|
|
type: object
|
|
required:
|
|
- "jsonrpc"
|
|
- "id"
|
|
- "result"
|
|
properties:
|
|
jsonrpc:
|
|
type: string
|
|
example: "2.0"
|
|
id:
|
|
type: integer
|
|
example: 0
|
|
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
|
|
# nullable: true
|
|
# items:
|
|
# type: string
|
|
# 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: integer
|
|
example: 0
|
|
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
|
|
nullable: true
|
|
items:
|
|
type: string
|
|
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: integer
|
|
example: 0
|
|
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: integer
|
|
example: 0
|
|
tx_result:
|
|
required:
|
|
- "log"
|
|
- "gas_wanted"
|
|
- "gas_used"
|
|
- "tags"
|
|
properties:
|
|
log:
|
|
type: string
|
|
example: '[{"msg_index":"0","success":true,"log":""}]'
|
|
gas_wanted:
|
|
type: string
|
|
example: "200000"
|
|
gas_used:
|
|
type: string
|
|
example: "28596"
|
|
tags:
|
|
$ref: "#/components/schemas/Event"
|
|
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: integer
|
|
example: 0
|
|
result:
|
|
required:
|
|
- "hash"
|
|
- "height"
|
|
- "index"
|
|
- "tx_result"
|
|
- "tx"
|
|
properties:
|
|
hash:
|
|
type: string
|
|
example: "D70952032620CC4E2737EB8AC379806359D8E0B17B0488F627997A0B043ABDED"
|
|
height:
|
|
type: string
|
|
example: "1000"
|
|
index:
|
|
type: integer
|
|
example: 0
|
|
tx_result:
|
|
required:
|
|
- "log"
|
|
- "gas_wanted"
|
|
- "gas_used"
|
|
- "tags"
|
|
properties:
|
|
log:
|
|
type: string
|
|
example: '[{"msg_index":"0","success":true,"log":""}]'
|
|
gas_wanted:
|
|
type: string
|
|
example: "200000"
|
|
gas_used:
|
|
type: string
|
|
example: "28596"
|
|
tags:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Event"
|
|
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: integer
|
|
example: 0
|
|
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: integer
|
|
example: 0
|
|
jsonrpc:
|
|
type: string
|
|
example: "2.0"
|
|
|
|
BroadcastEvidenceResponse:
|
|
type: object
|
|
required:
|
|
- "id"
|
|
- "jsonrpc"
|
|
properties:
|
|
error:
|
|
type: string
|
|
example: ""
|
|
result:
|
|
type: string
|
|
example: ""
|
|
id:
|
|
type: integer
|
|
example: 0
|
|
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: integer
|
|
example: 0
|
|
jsonrpc:
|
|
type: string
|
|
example: "2.0"
|
|
|
|
CheckTxResponse:
|
|
type: object
|
|
required:
|
|
- "error"
|
|
- "result"
|
|
- "id"
|
|
- "jsonrpc"
|
|
properties:
|
|
error:
|
|
type: string
|
|
example: ""
|
|
result:
|
|
required:
|
|
- "log"
|
|
- "data"
|
|
- "code"
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: "0"
|
|
data:
|
|
type: string
|
|
example: ""
|
|
log:
|
|
type: string
|
|
example: ""
|
|
info:
|
|
type: string
|
|
example: ""
|
|
gas_wanted:
|
|
type: string
|
|
example: "1"
|
|
gas_used:
|
|
type: string
|
|
example: "0"
|
|
events:
|
|
type: array
|
|
nullable: true
|
|
items:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
example: "app"
|
|
attributes:
|
|
type: array
|
|
nullable: false
|
|
items:
|
|
$ref: "#/components/schemas/Event"
|
|
codespace:
|
|
type: string
|
|
example: "bank"
|
|
type: object
|
|
id:
|
|
type: integer
|
|
example: 0
|
|
jsonrpc:
|
|
type: string
|
|
example: "2.0"
|
|
|
|
BroadcastTxResponse:
|
|
type: object
|
|
required:
|
|
- "jsonrpc"
|
|
- "id"
|
|
- "result"
|
|
- "error"
|
|
properties:
|
|
jsonrpc:
|
|
type: string
|
|
example: "2.0"
|
|
id:
|
|
type: integer
|
|
example: 0
|
|
result:
|
|
required:
|
|
- "code"
|
|
- "data"
|
|
- "log"
|
|
- "hash"
|
|
properties:
|
|
code:
|
|
type: string
|
|
example: "0"
|
|
data:
|
|
type: string
|
|
example: ""
|
|
log:
|
|
type: string
|
|
example: ""
|
|
codespace:
|
|
type: string
|
|
example: "ibc"
|
|
hash:
|
|
type: string
|
|
example: "0D33F2F03A5234F38706E43004489E061AC40A2E"
|
|
type: object
|
|
error:
|
|
type: string
|
|
example: ""
|
|
|
|
dialResp:
|
|
type: object
|
|
properties:
|
|
Log:
|
|
type: string
|
|
example: "Dialing seeds in progress. See /net_info for details"
|
|
|
|
ReIndexResponse:
|
|
type: object
|
|
properties:
|
|
Log:
|
|
type: string
|
|
example: "Finished re-indexing the block/tx events."
|
|
|
|
BlockSearchResponse:
|
|
type: object
|
|
required:
|
|
- "jsonrpc"
|
|
- "id"
|
|
- "result"
|
|
properties:
|
|
jsonrpc:
|
|
type: string
|
|
example: "2.0"
|
|
id:
|
|
type: integer
|
|
example: 0
|
|
result:
|
|
required:
|
|
- "blocks"
|
|
- "total_count"
|
|
properties:
|
|
blocks:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/BlockComplete"
|
|
total_count:
|
|
type: integer
|
|
example: 2
|
|
type: object
|
|
|
|
###### Reuseable types ######
|
|
|
|
# Validator type with proposer prioirty
|
|
ValidatorPriority:
|
|
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"
|
|
|
|
# Stripped down validator
|
|
Validator:
|
|
type: object
|
|
properties:
|
|
pub_key:
|
|
$ref: "#/components/schemas/PubKey"
|
|
voting_power:
|
|
type: integer
|
|
address:
|
|
type: string
|
|
|
|
# Consensus Params
|
|
ConsensusParams:
|
|
type: object
|
|
nullable: true
|
|
required:
|
|
- "block"
|
|
- "evidence"
|
|
- "validator"
|
|
properties:
|
|
block:
|
|
type: object
|
|
required:
|
|
- "max_bytes"
|
|
- "max_gas"
|
|
- "time_iota_ms"
|
|
properties:
|
|
max_bytes:
|
|
type: string
|
|
example: "22020096"
|
|
max_gas:
|
|
type: string
|
|
example: "1000"
|
|
time_iota_ms:
|
|
type: string
|
|
example: "1000"
|
|
evidence:
|
|
type: object
|
|
required:
|
|
- "max_age"
|
|
properties:
|
|
max_age:
|
|
type: string
|
|
example: "100000"
|
|
validator:
|
|
type: object
|
|
required:
|
|
- "pub_key_types"
|
|
properties:
|
|
pub_key_types:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example:
|
|
- "ed25519"
|
|
|
|
# Events in tendermint
|
|
Event:
|
|
type: object
|
|
properties:
|
|
key:
|
|
type: string
|
|
example: "YWN0aW9u"
|
|
value:
|
|
type: string
|
|
example: "c2VuZA=="
|
|
index:
|
|
type: boolean
|
|
example: false
|
|
|
|
# Block Header
|
|
BlockHeader:
|
|
required:
|
|
- "version"
|
|
- "chain_id"
|
|
- "height"
|
|
- "time"
|
|
- "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"
|
|
last_block_id:
|
|
$ref: "#/components/schemas/BlockID"
|
|
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
|
|
|
|
BlockID:
|
|
required:
|
|
- "hash"
|
|
- "parts"
|
|
properties:
|
|
hash:
|
|
type: string
|
|
example: "112BC173FD838FB68EB43476816CD7B4C6661B6884A9E357B417EE957E1CF8F7"
|
|
parts:
|
|
required:
|
|
- "total"
|
|
- "hash"
|
|
properties:
|
|
total:
|
|
type: integer
|
|
example: 1
|
|
hash:
|
|
type: string
|
|
example: "38D4B26B5B725C4F13571EFE022C030390E4C33C8CF6F88EDD142EA769642DBD"
|
|
type: object
|