Nubit Node API Example
Here is an example of how to make a Node API call using curl
. This example demonstrates how to retrieve the sync state of the header. Replace <YOUR_API_KEY>
with your actual API key and <YOUR_NODE_ENDPOINT>
with the endpoint of the node you started (for example, 127.0.0.1:26658
).
Copy curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer <YOUR_API_KEY>" -d '{"id": 1, "jsonrpc": "2.0", "method": "header.SyncState", "params": []}' < YOUR_NODE_ENDPOIN T >
This command will send a POST
request to the specified endpoint with the necessary headers and JSON payload. The Authorization
header contains the Bearer token, which is your API key, and the payload specifies the RPC method header.SyncState
with an empty parameter list.
OpenRPC 1.2.6
The Nubit Node API is the collection of RPC methods that can be used to interact with the services provided by Nubit Data Availability Nodes.
Headers
BLOB
Get
Get retrieves the blob by KZG commitment under the given namespace and height.
Auth level: read
Copy func Get(
height uint64,
namespace share.Namespace,
commitment blob.KzgCommitment,
) *blob.Blob
Copy {
"jsonrpc": "2.0",
"method": "blob.Get",
"params": [
42,
"AAAAAAAAAAAAAAAAAAAAAAAAAAECAwQFBgcICRA=",
"Bw=="
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"commitment": "20qrISWy41i+3YG4pGbmtw3BbsK875MrcRX8bTgJOMk=",
"data": "VGhpcyBpcyBhbiBleGFtcGxlIG9mIHNvbWUgYmxvYiBkYXRh",
"index": -1,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAECAwQFBgcICRA=",
"share_version": 0
},
"id": 0
}
GetAll
GetAll returns all blobs at the given height under the given namespaces.
Auth level: read
Copy func GetAll(
height uint64,
namespaces []share.Namespace,
) []*blob.Blob
Copy {
"jsonrpc": "2.0",
"method": "blob.GetAll",
"params": [
42,
[
"AAAAAAAAAAAAAAAAAAAAAAAAAAECAwQFBgcICRA="
]
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": [
{
"commitment": "20qrISWy41i+3YG4pGbmtw3BbsK875MrcRX8bTgJOMk=",
"data": "VGhpcyBpcyBhbiBleGFtcGxlIG9mIHNvbWUgYmxvYiBkYXRh",
"index": -1,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAECAwQFBgcICRA=",
"share_version": 0
}
],
"id": 0
}
GetProof
GetProof retrieves proofs in the given namespaces at the given height by commitment.
Auth level: read
Copy func GetProof(
height uint64,
namespace share.Namespace,
commitment blob.KzgCommitment,
) *blob.Proof
Copy {
"jsonrpc": "2.0",
"method": "blob.GetProof",
"params": [
42,
"AAAAAAAAAAAAAAAAAAAAAAAAAAECAwQFBgcICRA=",
"Bw=="
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": [
{
"end": 15,
"inclusion_or_absence": true,
"open_end": {
"index": 15,
"proof": "gniKhnjrWbFG15O2a795/oEczV+xCXeho3zw6GV8W9OKA3eAqeU3FRVi5a+QcWU7",
"value": "AAAAAAAAAAAAAAAAAAAAAAAAADEyMzQ1Njc4OTAAAAAAAAAAAAAAAAAAAAAAAAAAMTIzNDU2Nzg5MAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ=="
},
"open_post_index": {
"index": 16,
"proof": "g7rrqOPnk4zsgq4S95DWAenHg0zYnOD6VaKo+MGbXG+BOedF1SNLjbusbz3NbTN/",
"value": "//////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAfXpxe3B3fH90RnV0dN89CwsL7UkU5OaRFqBeuwnzFGc8VKvZgAx62brz2XriGHoP2OODkCZW83/LuvPZ2ENF9ZRUq9mADBiBupEmCFFU49hvJ+In4mur46smgSLJqwh/VCb2ySJvDCfY2A26v0OHCwsLCwsLCwsLCwsLCwsLCwsLCxhR9iKFzGuvCL9TQrFKQvcZL9q87TwsLSJaMq/Icw1R4uorDG9wWc26WiMUfS12hvXLrAtDRPWD9Vb1ad1+89gd89h6fn8mkQzzetgNfpFRhcxuGHqDq9l8DSZDUPW+QjWBuSD6M8Gyx49a75IETxt8ir7Ql3jWGck0/svbar0SQ5b15RusveVDQ/WG9ZarVKvZQ5aFvxhrrRDTzlMl1o3jiGu5oc2JoHouUzRjBz0UpYLMiFw7MPk6dDeT+vLKFUccS9uvgXqKbGf5azrTB7Kv0VzLLhEw4jcTEZpx90Os5VOWkka4kwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCw=="
},
"open_pre_index": {
"index": 1,
"proof": "qm4Yt72dEqxKQ58lkke6RWbhTU69vnCwkXuzzP4SvYYOE4QwxZ1gqzlJD6LVu4Ij",
"value": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAEAAAFWAAAAJtQCCsgCCpsBCpgBCh0vbnViaXQuYmxvYi52MS5Nc2dQYXlGb3JCbG9icxJ3CixudWJpdDF4bHB5OTJuZ3N6aHZodjd1Z3V5eDRqdTlybnkzajR6dGhzc2VsMBIdAAAAAAAAAAAAAAAAAAAAAAAAADEyMzQ1Njc4OTAaA9CGAyIg7VsJh9zUxTSOPDh7umUydvOgdHqDtydsjiX5WsXmDApCAQASZgpQCkYKHy9jb3Ntb3MuY3J5cHRvLnNlY3AyNTZrMS5QdWJLZXkSIwohA0h4VRz7Le/pipiOr0nx2ghLxCH2FQaTIGpZtkJKJhicEgQKAggBGAISEgoMCgR1bnViEgQ1MDE3ELTPHhpAk7Bn7DdV2Cf9yS78GlmyyM35lUE27OuoFMK5zmBY+35T6F98l0o4eC7EQ//CN7nPyOk45+tC/KUUdmCNpcySIhIBAhoESU5EWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
},
"open_start": {
"index": 2,
"proof": "kb7NqWxKwPmMRprmNfUbtWqoAqzDsvFaqLniBQAPr0bB6Z1JSXrdx9ztQoDQKQOh",
"value": "AAAAAAAAAAAAAAAAAAAAAAAAADEyMzQ1Njc4OTAAAAAAAAAAAAAAAAAAAAAAAAAAMTIzNDU2Nzg5MAEAAMNQAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ=="
},
"post_index": 16,
"pre_index": 1,
"start": 2
}
],
"id": 0
}
Included
Included checks whether a blob's given commitment(Merkle subtree root) is included at given height and under the namespace.
Auth level: read
Copy func Included(
height uint64,
namespace share.Namespace,
proof *blob.Proof,
commitment blob.KzgCommitment,
) bool
Copy {
"jsonrpc": "2.0",
"method": "blob.Included",
"params": [
42,
"AAAAAAAAAAAAAAAAAAAAAAAAAAECAwQFBgcICRA=",
[
{
"end": 15,
"inclusion_or_absence": true,
"open_end": {
"index": 15,
"proof": "gniKhnjrWbFG15O2a795/oEczV+xCXeho3zw6GV8W9OKA3eAqeU3FRVi5a+QcWU7",
"value": "AAAAAAAAAAAAAAAAAAAAAAAAADEyMzQ1Njc4OTAAAAAAAAAAAAAAAAAAAAAAAAAAMTIzNDU2Nzg5MAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ=="
},
"open_post_index": {
"index": 16,
"proof": "g7rrqOPnk4zsgq4S95DWAenHg0zYnOD6VaKo+MGbXG+BOedF1SNLjbusbz3NbTN/",
"value": "//////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAfXpxe3B3fH90RnV0dN89CwsL7UkU5OaRFqBeuwnzFGc8VKvZgAx62brz2XriGHoP2OODkCZW83/LuvPZ2ENF9ZRUq9mADBiBupEmCFFU49hvJ+In4mur46smgSLJqwh/VCb2ySJvDCfY2A26v0OHCwsLCwsLCwsLCwsLCwsLCwsLCxhR9iKFzGuvCL9TQrFKQvcZL9q87TwsLSJaMq/Icw1R4uorDG9wWc26WiMUfS12hvXLrAtDRPWD9Vb1ad1+89gd89h6fn8mkQzzetgNfpFRhcxuGHqDq9l8DSZDUPW+QjWBuSD6M8Gyx49a75IETxt8ir7Ql3jWGck0/svbar0SQ5b15RusveVDQ/WG9ZarVKvZQ5aFvxhrrRDTzlMl1o3jiGu5oc2JoHouUzRjBz0UpYLMiFw7MPk6dDeT+vLKFUccS9uvgXqKbGf5azrTB7Kv0VzLLhEw4jcTEZpx90Os5VOWkka4kwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCw=="
},
"open_pre_index": {
"index": 1,
"proof": "qm4Yt72dEqxKQ58lkke6RWbhTU69vnCwkXuzzP4SvYYOE4QwxZ1gqzlJD6LVu4Ij",
"value": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAEAAAFWAAAAJtQCCsgCCpsBCpgBCh0vbnViaXQuYmxvYi52MS5Nc2dQYXlGb3JCbG9icxJ3CixudWJpdDF4bHB5OTJuZ3N6aHZodjd1Z3V5eDRqdTlybnkzajR6dGhzc2VsMBIdAAAAAAAAAAAAAAAAAAAAAAAAADEyMzQ1Njc4OTAaA9CGAyIg7VsJh9zUxTSOPDh7umUydvOgdHqDtydsjiX5WsXmDApCAQASZgpQCkYKHy9jb3Ntb3MuY3J5cHRvLnNlY3AyNTZrMS5QdWJLZXkSIwohA0h4VRz7Le/pipiOr0nx2ghLxCH2FQaTIGpZtkJKJhicEgQKAggBGAISEgoMCgR1bnViEgQ1MDE3ELTPHhpAk7Bn7DdV2Cf9yS78GlmyyM35lUE27OuoFMK5zmBY+35T6F98l0o4eC7EQ//CN7nPyOk45+tC/KUUdmCNpcySIhIBAhoESU5EWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
},
"open_start": {
"index": 2,
"proof": "kb7NqWxKwPmMRprmNfUbtWqoAqzDsvFaqLniBQAPr0bB6Z1JSXrdx9ztQoDQKQOh",
"value": "AAAAAAAAAAAAAAAAAAAAAAAAADEyMzQ1Njc4OTAAAAAAAAAAAAAAAAAAAAAAAAAAMTIzNDU2Nzg5MAEAAMNQAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ=="
},
"post_index": 16,
"pre_index": 1,
"start": 2
}
],
"Bw=="
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": true,
"id": 0
}
Submit
Submit sends Blobs and reports the height in which they were included. Allows sending multiple Blobs atomically synchronously. Uses default wallet registered on the Node.
Auth level: write
Copy func Submit(
blobs []*blob.Blob,
gasPrice blob.GasPrice,
) uint64
Copy {
"jsonrpc": "2.0",
"method": "blob.Submit",
"params": [
[
{
"commitment": "20qrISWy41i+3YG4pGbmtw3BbsK875MrcRX8bTgJOMk=",
"data": "VGhpcyBpcyBhbiBleGFtcGxlIG9mIHNvbWUgYmxvYiBkYXRh",
"index": -1,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAECAwQFBgcICRA=",
"share_version": 0
}
],
0.002
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": 42,
"id": 0
}
DAS
SamplingStats
SamplingStats returns the current statistics over the DA sampling process.
Auth level: read
Copy func SamplingStats() das.SamplingStats
Copy {
"jsonrpc": "2.0",
"method": "das.SamplingStats",
"params": null,
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"catch_up_done": false,
"concurrency": 6,
"head_of_catchup": 34101,
"head_of_sampled_chain": 1092,
"is_running": true,
"network_head_height": 470292,
"workers": [
{
"current": 1093,
"from": 1002,
"job_type": "catchup",
"to": 1101
},
{
"current": 33343,
"from": 33302,
"job_type": "catchup",
"to": 33401
},
{
"current": 34047,
"from": 34002,
"job_type": "catchup",
"to": 34101
},
{
"current": 1327,
"from": 1302,
"job_type": "catchup",
"to": 1401
},
{
"current": 1197,
"from": 1102,
"job_type": "catchup",
"to": 1201
},
{
"current": 1408,
"from": 1402,
"job_type": "catchup",
"to": 1501
}
]
},
"id": 0
}
WaitCatchUp
WaitCatchUp blocks until DASer finishes catching up to the network head.
Auth level: read
Copy {
"jsonrpc": "2.0",
"method": "das.WaitCatchUp",
"params": null,
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": null,
"id": 0
}
GetBtcHeight
GetBtcHeight returns the anchored Bitcoin height by the height of the Nubit DA Chain. Allow modular Apps to link Bitcoin Chain and Nubit DA Chain via consensus.
Auth level: read
Copy func GetBtcHeight(nubitHeight uint64) uint64
Copy {
"jsonrpc": "2.0",
"method": "header.GetBtcHeight",
"params": [
42
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": 42,
"id": 0
}
GetByHash
GetByHash returns the header of the given hash from the node's header store.
Auth level: read
Copy func GetByHash(hash libhead.Hash) *header.ExtendedHeader
Copy {
"jsonrpc": "2.0",
"method": "header.GetByHash",
"params": [
"07"
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"commit": {
"block_id": {
"hash": "A7F6B1CF33313121539206754A73FDC22ADA48C4AA8C4BB4F707ED2E089E59D3",
"parts": {
"hash": "6634FE1E1DDDCB9914ACE81F146013986F5FDA03A8F1C16DC5ECA0D9B0E08FBC",
"total": 1
}
},
"height": 67374,
"round": 0,
"signatures": [
{
"block_id_flag": 2,
"signature": "HyR/uRIUNc5GNqQteZyrVjJM47SI9sRAgrLsNqJDls3AzbvHUfN4zzWyw0afyEvNm98Bm2GIoJoZC5D8oQvdBA==",
"timestamp": "2023-02-25T12:10:38.130121476Z",
"validator_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA"
}
]
},
"dah": {
"column_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
],
"row_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
]
},
"header": {
"app_hash": "1FC70854A185737C7FD720FCCE9167876EE4B9ABE23DB1EBB8C552D3E3978435",
"chain_id": "testnet",
"consensus_hash": "048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F",
"data_hash": "257760461993F8F197B421EC7435F3C36C3734923E3DA9A42DC73B05F07B3D08",
"evidence_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"height": "67374",
"last_block_id": {
"hash": "47A2C7758760988500B2F043D3903BBBF1C8B383CA33CF7056AA45E22055663E",
"parts": {
"hash": "33B012F244E27672169DD3D62CDBC92DA9486E410A5530F41FE6A890D8E2EE42",
"total": 1
}
},
"last_commit_hash": "888D47F5E9473501C99F2B6136B6B9FFBC9D1CD2F54002BCD5DF002FFEF0A83D",
"last_results_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"next_validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"proposer_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"time": "2023-02-25T12:10:28.067566292Z",
"validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"version": {
"block": "11"
}
},
"validator_set": {
"proposer": {
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
},
"validators": [
{
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
}
]
}
},
"id": 0
}
GetByHeight
GetByHeight returns the ExtendedHeader at the given height if it is currently available.
Auth level: read
Copy func GetByHeight(u uint64) *header.ExtendedHeader
Copy {
"jsonrpc": "2.0",
"method": "header.GetByHeight",
"params": [
42
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"commit": {
"block_id": {
"hash": "A7F6B1CF33313121539206754A73FDC22ADA48C4AA8C4BB4F707ED2E089E59D3",
"parts": {
"hash": "6634FE1E1DDDCB9914ACE81F146013986F5FDA03A8F1C16DC5ECA0D9B0E08FBC",
"total": 1
}
},
"height": 67374,
"round": 0,
"signatures": [
{
"block_id_flag": 2,
"signature": "HyR/uRIUNc5GNqQteZyrVjJM47SI9sRAgrLsNqJDls3AzbvHUfN4zzWyw0afyEvNm98Bm2GIoJoZC5D8oQvdBA==",
"timestamp": "2023-02-25T12:10:38.130121476Z",
"validator_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA"
}
]
},
"dah": {
"column_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
],
"row_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
]
},
"header": {
"app_hash": "1FC70854A185737C7FD720FCCE9167876EE4B9ABE23DB1EBB8C552D3E3978435",
"chain_id": "testnet",
"consensus_hash": "048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F",
"data_hash": "257760461993F8F197B421EC7435F3C36C3734923E3DA9A42DC73B05F07B3D08",
"evidence_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"height": "67374",
"last_block_id": {
"hash": "47A2C7758760988500B2F043D3903BBBF1C8B383CA33CF7056AA45E22055663E",
"parts": {
"hash": "33B012F244E27672169DD3D62CDBC92DA9486E410A5530F41FE6A890D8E2EE42",
"total": 1
}
},
"last_commit_hash": "888D47F5E9473501C99F2B6136B6B9FFBC9D1CD2F54002BCD5DF002FFEF0A83D",
"last_results_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"next_validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"proposer_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"time": "2023-02-25T12:10:28.067566292Z",
"validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"version": {
"block": "11"
}
},
"validator_set": {
"proposer": {
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
},
"validators": [
{
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
}
]
}
},
"id": 0
}
GetHeightRangeAtBtcHeight
GetHeightRangeAtBtcHeight returns the anchored Nubit height range by the height of the Bitcoin Chain. Allow modular Apps to link Bitcoin Chain and Nubit DA Chain via consensus.
Auth level: read
Copy func GetHeightRangeAtBtcHeight(btcHeight uint64) []*header.ExtendedHeader
Copy {
"jsonrpc": "2.0",
"method": "header.GetHeightRangeAtBtcHeight",
"params": [
42
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": [
{
"commit": {
"block_id": {
"hash": "A7F6B1CF33313121539206754A73FDC22ADA48C4AA8C4BB4F707ED2E089E59D3",
"parts": {
"hash": "6634FE1E1DDDCB9914ACE81F146013986F5FDA03A8F1C16DC5ECA0D9B0E08FBC",
"total": 1
}
},
"height": 67374,
"round": 0,
"signatures": [
{
"block_id_flag": 2,
"signature": "HyR/uRIUNc5GNqQteZyrVjJM47SI9sRAgrLsNqJDls3AzbvHUfN4zzWyw0afyEvNm98Bm2GIoJoZC5D8oQvdBA==",
"timestamp": "2023-02-25T12:10:38.130121476Z",
"validator_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA"
}
]
},
"dah": {
"column_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
],
"row_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
]
},
"header": {
"app_hash": "1FC70854A185737C7FD720FCCE9167876EE4B9ABE23DB1EBB8C552D3E3978435",
"chain_id": "testnet",
"consensus_hash": "048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F",
"data_hash": "257760461993F8F197B421EC7435F3C36C3734923E3DA9A42DC73B05F07B3D08",
"evidence_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"height": "67374",
"last_block_id": {
"hash": "47A2C7758760988500B2F043D3903BBBF1C8B383CA33CF7056AA45E22055663E",
"parts": {
"hash": "33B012F244E27672169DD3D62CDBC92DA9486E410A5530F41FE6A890D8E2EE42",
"total": 1
}
},
"last_commit_hash": "888D47F5E9473501C99F2B6136B6B9FFBC9D1CD2F54002BCD5DF002FFEF0A83D",
"last_results_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"next_validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"proposer_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"time": "2023-02-25T12:10:28.067566292Z",
"validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"version": {
"block": "11"
}
},
"validator_set": {
"proposer": {
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
},
"validators": [
{
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
}
]
}
}
],
"id": 0
}
GetRangeByHeight
GetRangeByHeight returns the given range (from:to) of ExtendedHeaders from the node's header store and verifies that the returned headers are adjacent to each other.
Auth level: read
Copy func GetRangeByHeight(
from *header.ExtendedHeader,
to uint64,
) []*header.ExtendedHeader
Copy {
"jsonrpc": "2.0",
"method": "header.GetRangeByHeight",
"params": [
{
"commit": {
"block_id": {
"hash": "A7F6B1CF33313121539206754A73FDC22ADA48C4AA8C4BB4F707ED2E089E59D3",
"parts": {
"hash": "6634FE1E1DDDCB9914ACE81F146013986F5FDA03A8F1C16DC5ECA0D9B0E08FBC",
"total": 1
}
},
"height": 67374,
"round": 0,
"signatures": [
{
"block_id_flag": 2,
"signature": "HyR/uRIUNc5GNqQteZyrVjJM47SI9sRAgrLsNqJDls3AzbvHUfN4zzWyw0afyEvNm98Bm2GIoJoZC5D8oQvdBA==",
"timestamp": "2023-02-25T12:10:38.130121476Z",
"validator_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA"
}
]
},
"dah": {
"column_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
],
"row_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
]
},
"header": {
"app_hash": "1FC70854A185737C7FD720FCCE9167876EE4B9ABE23DB1EBB8C552D3E3978435",
"chain_id": "testnet",
"consensus_hash": "048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F",
"data_hash": "257760461993F8F197B421EC7435F3C36C3734923E3DA9A42DC73B05F07B3D08",
"evidence_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"height": "67374",
"last_block_id": {
"hash": "47A2C7758760988500B2F043D3903BBBF1C8B383CA33CF7056AA45E22055663E",
"parts": {
"hash": "33B012F244E27672169DD3D62CDBC92DA9486E410A5530F41FE6A890D8E2EE42",
"total": 1
}
},
"last_commit_hash": "888D47F5E9473501C99F2B6136B6B9FFBC9D1CD2F54002BCD5DF002FFEF0A83D",
"last_results_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"next_validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"proposer_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"time": "2023-02-25T12:10:28.067566292Z",
"validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"version": {
"block": "11"
}
},
"validator_set": {
"proposer": {
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
},
"validators": [
{
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
}
]
}
},
42
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": [
{
"commit": {
"block_id": {
"hash": "A7F6B1CF33313121539206754A73FDC22ADA48C4AA8C4BB4F707ED2E089E59D3",
"parts": {
"hash": "6634FE1E1DDDCB9914ACE81F146013986F5FDA03A8F1C16DC5ECA0D9B0E08FBC",
"total": 1
}
},
"height": 67374,
"round": 0,
"signatures": [
{
"block_id_flag": 2,
"signature": "HyR/uRIUNc5GNqQteZyrVjJM47SI9sRAgrLsNqJDls3AzbvHUfN4zzWyw0afyEvNm98Bm2GIoJoZC5D8oQvdBA==",
"timestamp": "2023-02-25T12:10:38.130121476Z",
"validator_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA"
}
]
},
"dah": {
"column_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
],
"row_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
]
},
"header": {
"app_hash": "1FC70854A185737C7FD720FCCE9167876EE4B9ABE23DB1EBB8C552D3E3978435",
"chain_id": "testnet",
"consensus_hash": "048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F",
"data_hash": "257760461993F8F197B421EC7435F3C36C3734923E3DA9A42DC73B05F07B3D08",
"evidence_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"height": "67374",
"last_block_id": {
"hash": "47A2C7758760988500B2F043D3903BBBF1C8B383CA33CF7056AA45E22055663E",
"parts": {
"hash": "33B012F244E27672169DD3D62CDBC92DA9486E410A5530F41FE6A890D8E2EE42",
"total": 1
}
},
"last_commit_hash": "888D47F5E9473501C99F2B6136B6B9FFBC9D1CD2F54002BCD5DF002FFEF0A83D",
"last_results_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"next_validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"proposer_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"time": "2023-02-25T12:10:28.067566292Z",
"validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"version": {
"block": "11"
}
},
"validator_set": {
"proposer": {
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
},
"validators": [
{
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
}
]
}
}
],
"id": 0
}
LocalHead
LocalHead returns the ExtendedHeader of the chain head.
Auth level: read
Copy func LocalHead() *header.ExtendedHeader
Copy {
"jsonrpc": "2.0",
"method": "header.LocalHead",
"params": null,
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"commit": {
"block_id": {
"hash": "A7F6B1CF33313121539206754A73FDC22ADA48C4AA8C4BB4F707ED2E089E59D3",
"parts": {
"hash": "6634FE1E1DDDCB9914ACE81F146013986F5FDA03A8F1C16DC5ECA0D9B0E08FBC",
"total": 1
}
},
"height": 67374,
"round": 0,
"signatures": [
{
"block_id_flag": 2,
"signature": "HyR/uRIUNc5GNqQteZyrVjJM47SI9sRAgrLsNqJDls3AzbvHUfN4zzWyw0afyEvNm98Bm2GIoJoZC5D8oQvdBA==",
"timestamp": "2023-02-25T12:10:38.130121476Z",
"validator_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA"
}
]
},
"dah": {
"column_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
],
"row_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
]
},
"header": {
"app_hash": "1FC70854A185737C7FD720FCCE9167876EE4B9ABE23DB1EBB8C552D3E3978435",
"chain_id": "testnet",
"consensus_hash": "048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F",
"data_hash": "257760461993F8F197B421EC7435F3C36C3734923E3DA9A42DC73B05F07B3D08",
"evidence_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"height": "67374",
"last_block_id": {
"hash": "47A2C7758760988500B2F043D3903BBBF1C8B383CA33CF7056AA45E22055663E",
"parts": {
"hash": "33B012F244E27672169DD3D62CDBC92DA9486E410A5530F41FE6A890D8E2EE42",
"total": 1
}
},
"last_commit_hash": "888D47F5E9473501C99F2B6136B6B9FFBC9D1CD2F54002BCD5DF002FFEF0A83D",
"last_results_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"next_validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"proposer_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"time": "2023-02-25T12:10:28.067566292Z",
"validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"version": {
"block": "11"
}
},
"validator_set": {
"proposer": {
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
},
"validators": [
{
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
}
]
}
},
"id": 0
}
NetworkHead
NetworkHead provides the Syncer's view of the current network head.
Auth level: read
Copy func NetworkHead() *header.ExtendedHeader
Copy {
"jsonrpc": "2.0",
"method": "header.NetworkHead",
"params": null,
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"commit": {
"block_id": {
"hash": "A7F6B1CF33313121539206754A73FDC22ADA48C4AA8C4BB4F707ED2E089E59D3",
"parts": {
"hash": "6634FE1E1DDDCB9914ACE81F146013986F5FDA03A8F1C16DC5ECA0D9B0E08FBC",
"total": 1
}
},
"height": 67374,
"round": 0,
"signatures": [
{
"block_id_flag": 2,
"signature": "HyR/uRIUNc5GNqQteZyrVjJM47SI9sRAgrLsNqJDls3AzbvHUfN4zzWyw0afyEvNm98Bm2GIoJoZC5D8oQvdBA==",
"timestamp": "2023-02-25T12:10:38.130121476Z",
"validator_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA"
}
]
},
"dah": {
"column_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
],
"row_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
]
},
"header": {
"app_hash": "1FC70854A185737C7FD720FCCE9167876EE4B9ABE23DB1EBB8C552D3E3978435",
"chain_id": "testnet",
"consensus_hash": "048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F",
"data_hash": "257760461993F8F197B421EC7435F3C36C3734923E3DA9A42DC73B05F07B3D08",
"evidence_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"height": "67374",
"last_block_id": {
"hash": "47A2C7758760988500B2F043D3903BBBF1C8B383CA33CF7056AA45E22055663E",
"parts": {
"hash": "33B012F244E27672169DD3D62CDBC92DA9486E410A5530F41FE6A890D8E2EE42",
"total": 1
}
},
"last_commit_hash": "888D47F5E9473501C99F2B6136B6B9FFBC9D1CD2F54002BCD5DF002FFEF0A83D",
"last_results_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"next_validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"proposer_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"time": "2023-02-25T12:10:28.067566292Z",
"validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"version": {
"block": "11"
}
},
"validator_set": {
"proposer": {
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
},
"validators": [
{
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
}
]
}
},
"id": 0
}
Subscribe
Subscribe to recent ExtendedHeaders from the network.
Auth level: read
Copy func Subscribe() <-chan *header.ExtendedHeader
Copy {
"jsonrpc": "2.0",
"method": "header.Subscribe",
"params": null,
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": null,
"id": 0
}
SyncState
SyncState returns the current state of the header Syncer.
Auth level: read
Copy func SyncState() sync.State
Copy {
"jsonrpc": "2.0",
"method": "header.SyncState",
"params": null,
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"end": "0001-01-01T00:00:00Z",
"error": "string value",
"from_hash": "07",
"from_height": 42,
"height": 42,
"id": 42,
"start": "0001-01-01T00:00:00Z",
"to_hash": "07",
"to_height": 42
},
"id": 0
}
SyncWait
SyncWait blocks until the header Syncer is synced to network head.
Auth level: read
Copy {
"jsonrpc": "2.0",
"method": "header.SyncWait",
"params": null,
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": null,
"id": 0
}
WaitForHeight
WaitForHeight blocks until the header at the given height has been processed by the store or context deadline is exceeded.
Auth level: read
Copy func WaitForHeight(u uint64) *header.ExtendedHeader
Copy {
"jsonrpc": "2.0",
"method": "header.WaitForHeight",
"params": [
42
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"commit": {
"block_id": {
"hash": "A7F6B1CF33313121539206754A73FDC22ADA48C4AA8C4BB4F707ED2E089E59D3",
"parts": {
"hash": "6634FE1E1DDDCB9914ACE81F146013986F5FDA03A8F1C16DC5ECA0D9B0E08FBC",
"total": 1
}
},
"height": 67374,
"round": 0,
"signatures": [
{
"block_id_flag": 2,
"signature": "HyR/uRIUNc5GNqQteZyrVjJM47SI9sRAgrLsNqJDls3AzbvHUfN4zzWyw0afyEvNm98Bm2GIoJoZC5D8oQvdBA==",
"timestamp": "2023-02-25T12:10:38.130121476Z",
"validator_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA"
}
]
},
"dah": {
"column_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
],
"row_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
]
},
"header": {
"app_hash": "1FC70854A185737C7FD720FCCE9167876EE4B9ABE23DB1EBB8C552D3E3978435",
"chain_id": "testnet",
"consensus_hash": "048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F",
"data_hash": "257760461993F8F197B421EC7435F3C36C3734923E3DA9A42DC73B05F07B3D08",
"evidence_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"height": "67374",
"last_block_id": {
"hash": "47A2C7758760988500B2F043D3903BBBF1C8B383CA33CF7056AA45E22055663E",
"parts": {
"hash": "33B012F244E27672169DD3D62CDBC92DA9486E410A5530F41FE6A890D8E2EE42",
"total": 1
}
},
"last_commit_hash": "888D47F5E9473501C99F2B6136B6B9FFBC9D1CD2F54002BCD5DF002FFEF0A83D",
"last_results_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"next_validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"proposer_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"time": "2023-02-25T12:10:28.067566292Z",
"validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"version": {
"block": "11"
}
},
"validator_set": {
"proposer": {
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
},
"validators": [
{
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
}
]
}
},
"id": 0
}
NODE
AuthNew
AuthNew signs and returns a new token with the given permissions.
Auth level: admin
Copy func AuthNew(perms []auth.Permission) string
Copy {
"jsonrpc": "2.0",
"method": "node.AuthNew",
"params": [
[
"admin"
]
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": "string value",
"id": 0
}
AuthVerify
AuthVerify returns the permissions assigned to the given token.
Auth level: admin
Copy func AuthVerify(token string) []auth.Permission
Copy {
"jsonrpc": "2.0",
"method": "node.AuthVerify",
"params": [
"string value"
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": [
"admin"
],
"id": 0
}
Info
Info returns administrative information about the node.
Auth level: admin
Copy {
"jsonrpc": "2.0",
"method": "node.Info",
"params": null,
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"api_version": "string value",
"type": 3
},
"id": 0
}
LogLevelSet
LogLevelSet sets the given component log level to the given level.
Auth level: admin
Copy func LogLevelSet(
name string,
level string,
)
Copy {
"jsonrpc": "2.0",
"method": "node.LogLevelSet",
"params": [
"string value",
"string value"
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": null,
"id": 0
}
Ready
Ready returns true once the node's RPC is ready to accept requests.
Auth level: read
Copy {
"jsonrpc": "2.0",
"method": "node.Ready",
"params": null,
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": true,
"id": 0
}
P2P
BandwidthForPeer
BandwidthForPeer returns a Stats struct with bandwidth metrics associated with the given peer.ID. The metrics returned include all traffic sent / received for the peer, regardless of protocol.
Auth level: admin
Copy func BandwidthForPeer(id peer.ID) metrics.Stats
Copy {
"jsonrpc": "2.0",
"method": "p2p.BandwidthForPeer",
"params": [
"CovLVG4fQcqUS6DmoMxAwVJGNW6PMzfwTG6BHW9NH9TLGHcbRfvPVc3JVhnufK3HTzStoTo"
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"RateIn": 42,
"RateOut": 42,
"TotalIn": 42,
"TotalOut": 42
},
"id": 0
}
BandwidthForProtocol
BandwidthForProtocol returns a Stats struct with bandwidth metrics associated with the given protocol.ID.
Auth level: admin
Copy func BandwidthForProtocol(proto protocol.ID) metrics.Stats
Copy {
"jsonrpc": "2.0",
"method": "p2p.BandwidthForProtocol",
"params": [
"/nubit/testnet/ipfs/bitswap"
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"RateIn": 42,
"RateOut": 42,
"TotalIn": 42,
"TotalOut": 42
},
"id": 0
}
BandwidthStats
BandwidthStats returns a Stats struct with bandwidth metrics for all data sent/received by the local peer, regardless of protocol or remote peer IDs.
Auth level: admin
Copy func BandwidthStats() metrics.Stats
Copy {
"jsonrpc": "2.0",
"method": "p2p.BandwidthStats",
"params": null,
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"RateIn": 42,
"RateOut": 42,
"TotalIn": 42,
"TotalOut": 42
},
"id": 0
}
BlockPeer
BlockPeer adds a peer to the set of blocked peers.
Auth level: admin
Copy func BlockPeer(p peer.ID)
Copy {
"jsonrpc": "2.0",
"method": "p2p.BlockPeer",
"params": [
"CovLVG4fQcqUS6DmoMxAwVJGNW6PMzfwTG6BHW9NH9TLGHcbRfvPVc3JVhnufK3HTzStoTo"
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": null,
"id": 0
}
ClosePeer
ClosePeer closes the connection to a given peer.
Auth level: admin
Copy func ClosePeer(id peer.ID)
Copy {
"jsonrpc": "2.0",
"method": "p2p.ClosePeer",
"params": [
"CovLVG4fQcqUS6DmoMxAwVJGNW6PMzfwTG6BHW9NH9TLGHcbRfvPVc3JVhnufK3HTzStoTo"
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": null,
"id": 0
}
Connect
Connect ensures there is a connection between this host and the peer with given peer.
Auth level: admin
Copy func Connect(pi peer.AddrInfo)
Copy {
"jsonrpc": "2.0",
"method": "p2p.Connect",
"params": [
{
"Addrs": [
"/ip6/::1/udp/2121/quic-v1"
],
"ID": "CovLVG4fQcqUS6DmoMxAwVJGNW6PMzfwTG6BHW9NH9TLGHcbRfvPVc3JVhnufK3HTzStoTo"
}
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": null,
"id": 0
}
Connectedness
Connectedness returns a state signaling connection capabilities.
Auth level: admin
Copy func Connectedness(id peer.ID) network.Connectedness
Copy {
"jsonrpc": "2.0",
"method": "p2p.Connectedness",
"params": [
"CovLVG4fQcqUS6DmoMxAwVJGNW6PMzfwTG6BHW9NH9TLGHcbRfvPVc3JVhnufK3HTzStoTo"
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": 1,
"id": 0
}
Info
Info returns address information about the host.
Auth level: admin
Copy func Info() peer.AddrInfo
Copy {
"jsonrpc": "2.0",
"method": "p2p.Info",
"params": null,
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"Addrs": [
"/ip6/::1/udp/2121/quic-v1"
],
"ID": "CovLVG4fQcqUS6DmoMxAwVJGNW6PMzfwTG6BHW9NH9TLGHcbRfvPVc3JVhnufK3HTzStoTo"
},
"id": 0
}
IsProtected
IsProtected returns whether the given peer is protected.
Auth level: admin
Copy func IsProtected(
id peer.ID,
tag string,
) bool
Copy {
"jsonrpc": "2.0",
"method": "p2p.IsProtected",
"params": [
"CovLVG4fQcqUS6DmoMxAwVJGNW6PMzfwTG6BHW9NH9TLGHcbRfvPVc3JVhnufK3HTzStoTo",
"string value"
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": true,
"id": 0
}
ListBlockedPeers
ListBlockedPeers returns a list of blocked peers.
Auth level: admin
Copy func ListBlockedPeers() []peer.ID
Copy {
"jsonrpc": "2.0",
"method": "p2p.ListBlockedPeers",
"params": null,
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": [
"CovLVG4fQcqUS6DmoMxAwVJGNW6PMzfwTG6BHW9NH9TLGHcbRfvPVc3JVhnufK3HTzStoTo"
],
"id": 0
}
NATStatus
NATStatus returns the current NAT status.
Auth level: admin
Copy func NATStatus() network.Reachability
Copy {
"jsonrpc": "2.0",
"method": "p2p.NATStatus",
"params": null,
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": 2,
"id": 0
}
PeerInfo
PeerInfo returns a small slice of information Peerstore has on the given peer.
Auth level: admin
Copy func PeerInfo(id peer.ID) peer.AddrInfo
Copy {
"jsonrpc": "2.0",
"method": "p2p.PeerInfo",
"params": [
"CovLVG4fQcqUS6DmoMxAwVJGNW6PMzfwTG6BHW9NH9TLGHcbRfvPVc3JVhnufK3HTzStoTo"
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"Addrs": [
"/ip6/::1/udp/2121/quic-v1"
],
"ID": "CovLVG4fQcqUS6DmoMxAwVJGNW6PMzfwTG6BHW9NH9TLGHcbRfvPVc3JVhnufK3HTzStoTo"
},
"id": 0
}
Peers
Peers returns connected peers.
Auth level: admin
Copy func Peers() []peer.ID
Copy {
"jsonrpc": "2.0",
"method": "p2p.Peers",
"params": null,
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": [
"CovLVG4fQcqUS6DmoMxAwVJGNW6PMzfwTG6BHW9NH9TLGHcbRfvPVc3JVhnufK3HTzStoTo"
],
"id": 0
}
Protect
Protect adds a peer to the list of peers who have a bidirectional peering agreement that they are protected from being trimmed, dropped or negatively scored.
Auth level: admin
Copy func Protect(
id peer.ID,
tag string,
)
Copy {
"jsonrpc": "2.0",
"method": "p2p.Protect",
"params": [
"CovLVG4fQcqUS6DmoMxAwVJGNW6PMzfwTG6BHW9NH9TLGHcbRfvPVc3JVhnufK3HTzStoTo",
"string value"
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": null,
"id": 0
}
PubSubPeers
PubSubPeers returns the peer IDs of the peers joined on the given topic.
Auth level: admin
Copy func PubSubPeers(topic string) []peer.ID
Copy {
"jsonrpc": "2.0",
"method": "p2p.PubSubPeers",
"params": [
"string value"
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": [
"CovLVG4fQcqUS6DmoMxAwVJGNW6PMzfwTG6BHW9NH9TLGHcbRfvPVc3JVhnufK3HTzStoTo"
],
"id": 0
}
ResourceState
ResourceState returns the state of the resource manager.
Auth level: admin
Copy func ResourceState() rcmgr.ResourceManagerStat
Copy {
"jsonrpc": "2.0",
"method": "p2p.ResourceState",
"params": null,
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"Peers": {
"\u0000$\b\u0001\u0012 �-��\u0026��Y�k�\u000e\u0011�S�RM\u0013�\u0015��$����*�\u0002W": {
"Memory": 1048576,
"NumConnsInbound": 0,
"NumConnsOutbound": 3,
"NumFD": 3,
"NumStreamsInbound": 1,
"NumStreamsOutbound": 3
}
},
"Protocols": {
"/floodsub/1.0.0": {
"Memory": 0,
"NumConnsInbound": 0,
"NumConnsOutbound": 0,
"NumFD": 0,
"NumStreamsInbound": 2,
"NumStreamsOutbound": 0
},
"/ipfs/id/1.0.0": {
"Memory": 0,
"NumConnsInbound": 0,
"NumConnsOutbound": 0,
"NumFD": 0,
"NumStreamsInbound": 0,
"NumStreamsOutbound": 1
},
"/meshsub/1.1.0": {
"Memory": 0,
"NumConnsInbound": 0,
"NumConnsOutbound": 0,
"NumFD": 0,
"NumStreamsInbound": 2,
"NumStreamsOutbound": 4
},
"/nubit/arabica-3/ipfs/bitswap/1.2.0": {
"Memory": 0,
"NumConnsInbound": 0,
"NumConnsOutbound": 0,
"NumFD": 0,
"NumStreamsInbound": 0,
"NumStreamsOutbound": 4
},
"/nubit/arabica-3/kad/1.0.0": {
"Memory": 0,
"NumConnsInbound": 0,
"NumConnsOutbound": 0,
"NumFD": 0,
"NumStreamsInbound": 0,
"NumStreamsOutbound": 4
}
},
"Services": {
"libp2p.autonat": {
"Memory": 0,
"NumConnsInbound": 0,
"NumConnsOutbound": 0,
"NumFD": 0,
"NumStreamsInbound": 0,
"NumStreamsOutbound": 0
},
"libp2p.identify": {
"Memory": 0,
"NumConnsInbound": 0,
"NumConnsOutbound": 0,
"NumFD": 0,
"NumStreamsInbound": 0,
"NumStreamsOutbound": 0
}
},
"System": {
"Memory": 4456448,
"NumConnsInbound": 0,
"NumConnsOutbound": 13,
"NumFD": 7,
"NumStreamsInbound": 4,
"NumStreamsOutbound": 13
},
"Transient": {
"Memory": 0,
"NumConnsInbound": 0,
"NumConnsOutbound": 0,
"NumFD": 0,
"NumStreamsInbound": 0,
"NumStreamsOutbound": 0
}
},
"id": 0
}
UnblockPeer
UnblockPeer removes a peer from the set of blocked peers.
Auth level: admin
Copy func UnblockPeer(p peer.ID)
Copy {
"jsonrpc": "2.0",
"method": "p2p.UnblockPeer",
"params": [
"CovLVG4fQcqUS6DmoMxAwVJGNW6PMzfwTG6BHW9NH9TLGHcbRfvPVc3JVhnufK3HTzStoTo"
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": null,
"id": 0
}
Unprotect
Unprotect removes a peer from the list of peers who have a bidirectional peering agreement that they are protected from being trimmed, dropped or negatively scored, returning a bool representing whether the given peer is protected or not.
Auth level: admin
Copy func Unprotect(
id peer.ID,
tag string,
) bool
Copy {
"jsonrpc": "2.0",
"method": "p2p.Unprotect",
"params": [
"CovLVG4fQcqUS6DmoMxAwVJGNW6PMzfwTG6BHW9NH9TLGHcbRfvPVc3JVhnufK3HTzStoTo",
"string value"
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": true,
"id": 0
}
SHARE
GetEDS
GetEDS gets the full EDS identified by the given extended header.
Auth level: read
Copy func GetEDS(header *header.ExtendedHeader) *rsmt2d.ExtendedDataSquare
Copy {
"jsonrpc": "2.0",
"method": "share.GetEDS",
"params": [
{
"commit": {
"block_id": {
"hash": "A7F6B1CF33313121539206754A73FDC22ADA48C4AA8C4BB4F707ED2E089E59D3",
"parts": {
"hash": "6634FE1E1DDDCB9914ACE81F146013986F5FDA03A8F1C16DC5ECA0D9B0E08FBC",
"total": 1
}
},
"height": 67374,
"round": 0,
"signatures": [
{
"block_id_flag": 2,
"signature": "HyR/uRIUNc5GNqQteZyrVjJM47SI9sRAgrLsNqJDls3AzbvHUfN4zzWyw0afyEvNm98Bm2GIoJoZC5D8oQvdBA==",
"timestamp": "2023-02-25T12:10:38.130121476Z",
"validator_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA"
}
]
},
"dah": {
"column_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
],
"row_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
]
},
"header": {
"app_hash": "1FC70854A185737C7FD720FCCE9167876EE4B9ABE23DB1EBB8C552D3E3978435",
"chain_id": "testnet",
"consensus_hash": "048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F",
"data_hash": "257760461993F8F197B421EC7435F3C36C3734923E3DA9A42DC73B05F07B3D08",
"evidence_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"height": "67374",
"last_block_id": {
"hash": "47A2C7758760988500B2F043D3903BBBF1C8B383CA33CF7056AA45E22055663E",
"parts": {
"hash": "33B012F244E27672169DD3D62CDBC92DA9486E410A5530F41FE6A890D8E2EE42",
"total": 1
}
},
"last_commit_hash": "888D47F5E9473501C99F2B6136B6B9FFBC9D1CD2F54002BCD5DF002FFEF0A83D",
"last_results_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"next_validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"proposer_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"time": "2023-02-25T12:10:28.067566292Z",
"validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"version": {
"block": "11"
}
},
"validator_set": {
"proposer": {
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
},
"validators": [
{
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
}
]
}
}
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"codec": "Leopard",
"data_square": [
"//////////////////////////////////////4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
"//////////////////////////////////////4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
"//////////////////////////////////////4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",
"//////////////////////////////////////4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
]
},
"id": 0
}
GetShare
GetShare gets a Share by coordinates in EDS.
Auth level: read
Copy func GetShare(
header *header.ExtendedHeader,
row int,
col int,
) share.Share
Copy {
"jsonrpc": "2.0",
"method": "share.GetShare",
"params": [
{
"commit": {
"block_id": {
"hash": "A7F6B1CF33313121539206754A73FDC22ADA48C4AA8C4BB4F707ED2E089E59D3",
"parts": {
"hash": "6634FE1E1DDDCB9914ACE81F146013986F5FDA03A8F1C16DC5ECA0D9B0E08FBC",
"total": 1
}
},
"height": 67374,
"round": 0,
"signatures": [
{
"block_id_flag": 2,
"signature": "HyR/uRIUNc5GNqQteZyrVjJM47SI9sRAgrLsNqJDls3AzbvHUfN4zzWyw0afyEvNm98Bm2GIoJoZC5D8oQvdBA==",
"timestamp": "2023-02-25T12:10:38.130121476Z",
"validator_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA"
}
]
},
"dah": {
"column_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
],
"row_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
]
},
"header": {
"app_hash": "1FC70854A185737C7FD720FCCE9167876EE4B9ABE23DB1EBB8C552D3E3978435",
"chain_id": "testnet",
"consensus_hash": "048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F",
"data_hash": "257760461993F8F197B421EC7435F3C36C3734923E3DA9A42DC73B05F07B3D08",
"evidence_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"height": "67374",
"last_block_id": {
"hash": "47A2C7758760988500B2F043D3903BBBF1C8B383CA33CF7056AA45E22055663E",
"parts": {
"hash": "33B012F244E27672169DD3D62CDBC92DA9486E410A5530F41FE6A890D8E2EE42",
"total": 1
}
},
"last_commit_hash": "888D47F5E9473501C99F2B6136B6B9FFBC9D1CD2F54002BCD5DF002FFEF0A83D",
"last_results_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"next_validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"proposer_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"time": "2023-02-25T12:10:28.067566292Z",
"validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"version": {
"block": "11"
}
},
"validator_set": {
"proposer": {
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
},
"validators": [
{
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
}
]
}
},
42,
42
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": "Ynl0ZSBhcnJheQ==",
"id": 0
}
GetSharesByNamespace
GetSharesByNamespace gets all shares from an EDS within the given namespace. Shares are returned in a row-by-row order if the namespace spans multiple rows.
Auth level: read
Copy func GetSharesByNamespace(
header *header.ExtendedHeader,
namespace share.Namespace,
) share.NamespacedShares
Copy {
"jsonrpc": "2.0",
"method": "share.GetSharesByNamespace",
"params": [
{
"commit": {
"block_id": {
"hash": "A7F6B1CF33313121539206754A73FDC22ADA48C4AA8C4BB4F707ED2E089E59D3",
"parts": {
"hash": "6634FE1E1DDDCB9914ACE81F146013986F5FDA03A8F1C16DC5ECA0D9B0E08FBC",
"total": 1
}
},
"height": 67374,
"round": 0,
"signatures": [
{
"block_id_flag": 2,
"signature": "HyR/uRIUNc5GNqQteZyrVjJM47SI9sRAgrLsNqJDls3AzbvHUfN4zzWyw0afyEvNm98Bm2GIoJoZC5D8oQvdBA==",
"timestamp": "2023-02-25T12:10:38.130121476Z",
"validator_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA"
}
]
},
"dah": {
"column_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
],
"row_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
]
},
"header": {
"app_hash": "1FC70854A185737C7FD720FCCE9167876EE4B9ABE23DB1EBB8C552D3E3978435",
"chain_id": "testnet",
"consensus_hash": "048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F",
"data_hash": "257760461993F8F197B421EC7435F3C36C3734923E3DA9A42DC73B05F07B3D08",
"evidence_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"height": "67374",
"last_block_id": {
"hash": "47A2C7758760988500B2F043D3903BBBF1C8B383CA33CF7056AA45E22055663E",
"parts": {
"hash": "33B012F244E27672169DD3D62CDBC92DA9486E410A5530F41FE6A890D8E2EE42",
"total": 1
}
},
"last_commit_hash": "888D47F5E9473501C99F2B6136B6B9FFBC9D1CD2F54002BCD5DF002FFEF0A83D",
"last_results_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"next_validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"proposer_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"time": "2023-02-25T12:10:28.067566292Z",
"validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"version": {
"block": "11"
}
},
"validator_set": {
"proposer": {
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
},
"validators": [
{
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
}
]
}
},
"AAAAAAAAAAAAAAAAAAAAAAAAAAECAwQFBgcICRA="
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": [
{
"proof": {
"end": 15,
"inclusion_or_absence": true,
"open_end": {
"index": 15,
"proof": "gniKhnjrWbFG15O2a795/oEczV+xCXeho3zw6GV8W9OKA3eAqeU3FRVi5a+QcWU7",
"value": "AAAAAAAAAAAAAAAAAAAAAAAAADEyMzQ1Njc4OTAAAAAAAAAAAAAAAAAAAAAAAAAAMTIzNDU2Nzg5MAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ=="
},
"open_post_index": {
"index": 16,
"proof": "g7rrqOPnk4zsgq4S95DWAenHg0zYnOD6VaKo+MGbXG+BOedF1SNLjbusbz3NbTN/",
"value": "//////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAfXpxe3B3fH90RnV0dN89CwsL7UkU5OaRFqBeuwnzFGc8VKvZgAx62brz2XriGHoP2OODkCZW83/LuvPZ2ENF9ZRUq9mADBiBupEmCFFU49hvJ+In4mur46smgSLJqwh/VCb2ySJvDCfY2A26v0OHCwsLCwsLCwsLCwsLCwsLCwsLCxhR9iKFzGuvCL9TQrFKQvcZL9q87TwsLSJaMq/Icw1R4uorDG9wWc26WiMUfS12hvXLrAtDRPWD9Vb1ad1+89gd89h6fn8mkQzzetgNfpFRhcxuGHqDq9l8DSZDUPW+QjWBuSD6M8Gyx49a75IETxt8ir7Ql3jWGck0/svbar0SQ5b15RusveVDQ/WG9ZarVKvZQ5aFvxhrrRDTzlMl1o3jiGu5oc2JoHouUzRjBz0UpYLMiFw7MPk6dDeT+vLKFUccS9uvgXqKbGf5azrTB7Kv0VzLLhEw4jcTEZpx90Os5VOWkka4kwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCwsLCw=="
},
"open_pre_index": {
"index": 1,
"proof": "qm4Yt72dEqxKQ58lkke6RWbhTU69vnCwkXuzzP4SvYYOE4QwxZ1gqzlJD6LVu4Ij",
"value": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAEAAAFWAAAAJtQCCsgCCpsBCpgBCh0vbnViaXQuYmxvYi52MS5Nc2dQYXlGb3JCbG9icxJ3CixudWJpdDF4bHB5OTJuZ3N6aHZodjd1Z3V5eDRqdTlybnkzajR6dGhzc2VsMBIdAAAAAAAAAAAAAAAAAAAAAAAAADEyMzQ1Njc4OTAaA9CGAyIg7VsJh9zUxTSOPDh7umUydvOgdHqDtydsjiX5WsXmDApCAQASZgpQCkYKHy9jb3Ntb3MuY3J5cHRvLnNlY3AyNTZrMS5QdWJLZXkSIwohA0h4VRz7Le/pipiOr0nx2ghLxCH2FQaTIGpZtkJKJhicEgQKAggBGAISEgoMCgR1bnViEgQ1MDE3ELTPHhpAk7Bn7DdV2Cf9yS78GlmyyM35lUE27OuoFMK5zmBY+35T6F98l0o4eC7EQ//CN7nPyOk45+tC/KUUdmCNpcySIhIBAhoESU5EWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="
},
"open_start": {
"index": 2,
"proof": "kb7NqWxKwPmMRprmNfUbtWqoAqzDsvFaqLniBQAPr0bB6Z1JSXrdx9ztQoDQKQOh",
"value": "AAAAAAAAAAAAAAAAAAAAAAAAADEyMzQ1Njc4OTAAAAAAAAAAAAAAAAAAAAAAAAAAMTIzNDU2Nzg5MAEAAMNQAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ=="
},
"post_index": 16,
"pre_index": 1,
"start": 2
},
"shares": [
"Ynl0ZSBhcnJheQ=="
]
}
],
"id": 0
}
SharesAvailable
SharesAvailable subjectively validates if Shares committed to the given ExtendedHeader are available on the Network.
Auth level: read
Copy func SharesAvailable(header *header.ExtendedHeader)
Copy {
"jsonrpc": "2.0",
"method": "share.SharesAvailable",
"params": [
{
"commit": {
"block_id": {
"hash": "A7F6B1CF33313121539206754A73FDC22ADA48C4AA8C4BB4F707ED2E089E59D3",
"parts": {
"hash": "6634FE1E1DDDCB9914ACE81F146013986F5FDA03A8F1C16DC5ECA0D9B0E08FBC",
"total": 1
}
},
"height": 67374,
"round": 0,
"signatures": [
{
"block_id_flag": 2,
"signature": "HyR/uRIUNc5GNqQteZyrVjJM47SI9sRAgrLsNqJDls3AzbvHUfN4zzWyw0afyEvNm98Bm2GIoJoZC5D8oQvdBA==",
"timestamp": "2023-02-25T12:10:38.130121476Z",
"validator_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA"
}
]
},
"dah": {
"column_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
],
"row_roots": [
"//////////7//////////ql+/VFmJ8PWE9BcjrTDLrY/hzVeGdzFCpfEhiXDXZmt",
"/////////////////////zHeGnUtPJn8QyPpePSYl4qRVrcUvG2fwptyoA85Myik"
]
},
"header": {
"app_hash": "1FC70854A185737C7FD720FCCE9167876EE4B9ABE23DB1EBB8C552D3E3978435",
"chain_id": "testnet",
"consensus_hash": "048091BC7DDC283F77BFBF91D73C44DA58C3DF8A9CBC867405D8B7F3DAADA22F",
"data_hash": "257760461993F8F197B421EC7435F3C36C3734923E3DA9A42DC73B05F07B3D08",
"evidence_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"height": "67374",
"last_block_id": {
"hash": "47A2C7758760988500B2F043D3903BBBF1C8B383CA33CF7056AA45E22055663E",
"parts": {
"hash": "33B012F244E27672169DD3D62CDBC92DA9486E410A5530F41FE6A890D8E2EE42",
"total": 1
}
},
"last_commit_hash": "888D47F5E9473501C99F2B6136B6B9FFBC9D1CD2F54002BCD5DF002FFEF0A83D",
"last_results_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
"next_validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"proposer_address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"time": "2023-02-25T12:10:28.067566292Z",
"validators_hash": "883A0C92B8D976312B249C1397E73CF2981A9EB715717CBEE3800B8380C22C1D",
"version": {
"block": "11"
}
},
"validator_set": {
"proposer": {
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
},
"validators": [
{
"address": "57DC09D28388DBF977CFC30EF50BE8B644CCC1FA",
"proposer_priority": "0",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "aoB4xU9//HAqOP9ciyp0+PTdZxt/UGKgZOabU6JxW8o="
},
"voting_power": "5000000000"
}
]
}
}
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": null,
"id": 0
}
STATE
AccountAddress
AccountAddress retrieves the address of the node's account/signer
Auth level: read
Copy func AccountAddress() state.Address
Copy {
"jsonrpc": "2.0",
"method": "state.AccountAddress",
"params": null,
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": "nubit1t3egzn706ukv03f66qv6yveeafgge2rtpq9w8t",
"id": 0
}
Balance
Balance retrieves the Nubit coin balance for the node's account/signer and verifies it against the corresponding block's AppHash.
Auth level: read
Copy func Balance() *state.Balance
Copy {
"jsonrpc": "2.0",
"method": "state.Balance",
"params": null,
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"amount": "42",
"denom": "string value"
},
"id": 0
}
BalanceForAddress
BalanceForAddress retrieves the Nubit coin balance for the given address and verifies the returned balance against the corresponding block's AppHash.
NOTE: the balance returned is the balance reported by the block right before the node's current head (head-1). This is due to the fact that for block N, the block's AppHash
is the result of applying the previous block's transaction list.
Auth level: read
Copy func BalanceForAddress(addr state.Address) *state.Balance
Copy {
"jsonrpc": "2.0",
"method": "state.BalanceForAddress",
"params": [
"nubit1t3egzn706ukv03f66qv6yveeafgge2rtpq9w8t"
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"amount": "42",
"denom": "string value"
},
"id": 0
}
BeginRedelegate
BeginRedelegate sends a user's delegated tokens to a new validator for redelegation.
Auth level: write
Copy func BeginRedelegate(
srcValAddr state.ValAddress,
dstValAddr state.ValAddress,
amount state.Int,
fee state.Int,
gasLim uint64,
) *state.TxResponse
Copy {
"jsonrpc": "2.0",
"method": "state.BeginRedelegate",
"params": [
"nubitvaloper1t3egzn706ukv03f66qv6yveeafgge2rtmp2fl0",
"nubitvaloper1t3egzn706ukv03f66qv6yveeafgge2rtmp2fl0",
"42",
"42",
42
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"data": "12260A242F636F736D6F732E62616E6B2E763162657461312E4D736753656E64526573706F6E7365",
"events": [
{
"attributes": [
{
"index": true,
"key": "ZmVl",
"value": null
}
],
"type": "tx"
},
{
"attributes": [
{
"index": true,
"key": "YWNjX3NlcQ==",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2gvMA=="
}
],
"type": "tx"
},
{
"attributes": [
{
"index": true,
"key": "c2lnbmF0dXJl",
"value": "R3NlVjhGNThFNGphR05LU0NicDBvNmRILytKK3BNQjNvUmtoNVpKNE8rVjdvNVVYQkJNNXpmNkdiYnN6OW9Takc1OUZkSHJRYzFvVVVBbnRBZW1wV0E9PQ=="
}
],
"type": "tx"
},
{
"attributes": [
{
"index": true,
"key": "YWN0aW9u",
"value": "L2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZA=="
}
],
"type": "message"
},
{
"attributes": [
{
"index": true,
"key": "c3BlbmRlcg==",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2g="
},
{
"index": true,
"key": "YW1vdW50",
"value": "MzB1dGlh"
}
],
"type": "coin_spent"
},
{
"attributes": [
{
"index": true,
"key": "cmVjZWl2ZXI=",
"value": "Y2VsZXN0aWExMmxlczhsOGd6c2Fjamp4d3VtOXdkeTdtZTh4OXhhanFjaDRneXc="
},
{
"index": true,
"key": "YW1vdW50",
"value": "MzB1dGlh"
}
],
"type": "coin_received"
},
{
"attributes": [
{
"index": true,
"key": "cmVjaXBpZW50",
"value": "Y2VsZXN0aWExMmxlczhsOGd6c2Fjamp4d3VtOXdkeTdtZTh4OXhhanFjaDRneXc="
},
{
"index": true,
"key": "c2VuZGVy",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2g="
},
{
"index": true,
"key": "YW1vdW50",
"value": "MzB1dGlh"
}
],
"type": "transfer"
},
{
"attributes": [
{
"index": true,
"key": "c2VuZGVy",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2g="
}
],
"type": "message"
},
{
"attributes": [
{
"index": true,
"key": "bW9kdWxl",
"value": "YmFuaw=="
}
],
"type": "message"
}
],
"gas_used": 69085,
"gas_wanted": 10000000,
"height": 30497,
"logs": [
{
"events": [
{
"attributes": [
{
"key": "receiver",
"value": "nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw"
},
{
"key": "amount",
"value": "30unub"
}
],
"type": "coin_received"
},
{
"attributes": [
{
"key": "spender",
"value": "nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h"
},
{
"key": "amount",
"value": "30unub"
}
],
"type": "coin_spent"
},
{
"attributes": [
{
"key": "action",
"value": "/cosmos.bank.v1beta1.MsgSend"
},
{
"key": "sender",
"value": "nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h"
},
{
"key": "module",
"value": "bank"
}
],
"type": "message"
},
{
"attributes": [
{
"key": "recipient",
"value": "nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw"
},
{
"key": "sender",
"value": "nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h"
},
{
"key": "amount",
"value": "30unub"
}
],
"type": "transfer"
}
],
"msg_index": 0
}
],
"raw_log": "[{\"msg_index\":0,\"events\":[{\"type\":\"coin_received\",\"attributes\":[{\"key\":\"receiver\",\"value\":\"nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw\"},{\"key\":\"amount\",\"value\":\"30unub\"}]},{\"type\":\"coin_spent\",\"attributes\":[{\"key\":\"spender\",\"value\":\"nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h\"},{\"key\":\"amount\",\"value\":\"30unub\"}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/cosmos.bank.v1beta1.MsgSend\"},{\"key\":\"sender\",\"value\":\"nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h\"},{\"key\":\"module\",\"value\":\"bank\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw\"},{\"key\":\"sender\",\"value\":\"nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h\"},{\"key\":\"amount\",\"value\":\"30unub\"}]}]}]",
"txhash": "05D9016060072AA71B007A6CFB1B895623192D6616D513017964C3BFCD047282"
},
"id": 0
}
CancelUnbondingDelegation
CancelUnbondingDelegation cancels a user's pending undelegation from a validator.
Auth level: write
Copy func CancelUnbondingDelegation(
valAddr state.ValAddress,
amount state.Int,
height state.Int,
fee state.Int,
gasLim uint64,
) *state.TxResponse
Copy {
"jsonrpc": "2.0",
"method": "state.CancelUnbondingDelegation",
"params": [
"nubitvaloper1t3egzn706ukv03f66qv6yveeafgge2rtmp2fl0",
"42",
"42",
"42",
42
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"data": "12260A242F636F736D6F732E62616E6B2E763162657461312E4D736753656E64526573706F6E7365",
"events": [
{
"attributes": [
{
"index": true,
"key": "ZmVl",
"value": null
}
],
"type": "tx"
},
{
"attributes": [
{
"index": true,
"key": "YWNjX3NlcQ==",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2gvMA=="
}
],
"type": "tx"
},
{
"attributes": [
{
"index": true,
"key": "c2lnbmF0dXJl",
"value": "R3NlVjhGNThFNGphR05LU0NicDBvNmRILytKK3BNQjNvUmtoNVpKNE8rVjdvNVVYQkJNNXpmNkdiYnN6OW9Takc1OUZkSHJRYzFvVVVBbnRBZW1wV0E9PQ=="
}
],
"type": "tx"
},
{
"attributes": [
{
"index": true,
"key": "YWN0aW9u",
"value": "L2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZA=="
}
],
"type": "message"
},
{
"attributes": [
{
"index": true,
"key": "c3BlbmRlcg==",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2g="
},
{
"index": true,
"key": "YW1vdW50",
"value": "MzB1dGlh"
}
],
"type": "coin_spent"
},
{
"attributes": [
{
"index": true,
"key": "cmVjZWl2ZXI=",
"value": "Y2VsZXN0aWExMmxlczhsOGd6c2Fjamp4d3VtOXdkeTdtZTh4OXhhanFjaDRneXc="
},
{
"index": true,
"key": "YW1vdW50",
"value": "MzB1dGlh"
}
],
"type": "coin_received"
},
{
"attributes": [
{
"index": true,
"key": "cmVjaXBpZW50",
"value": "Y2VsZXN0aWExMmxlczhsOGd6c2Fjamp4d3VtOXdkeTdtZTh4OXhhanFjaDRneXc="
},
{
"index": true,
"key": "c2VuZGVy",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2g="
},
{
"index": true,
"key": "YW1vdW50",
"value": "MzB1dGlh"
}
],
"type": "transfer"
},
{
"attributes": [
{
"index": true,
"key": "c2VuZGVy",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2g="
}
],
"type": "message"
},
{
"attributes": [
{
"index": true,
"key": "bW9kdWxl",
"value": "YmFuaw=="
}
],
"type": "message"
}
],
"gas_used": 69085,
"gas_wanted": 10000000,
"height": 30497,
"logs": [
{
"events": [
{
"attributes": [
{
"key": "receiver",
"value": "nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw"
},
{
"key": "amount",
"value": "30unub"
}
],
"type": "coin_received"
},
{
"attributes": [
{
"key": "spender",
"value": "nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h"
},
{
"key": "amount",
"value": "30unub"
}
],
"type": "coin_spent"
},
{
"attributes": [
{
"key": "action",
"value": "/cosmos.bank.v1beta1.MsgSend"
},
{
"key": "sender",
"value": "nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h"
},
{
"key": "module",
"value": "bank"
}
],
"type": "message"
},
{
"attributes": [
{
"key": "recipient",
"value": "nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw"
},
{
"key": "sender",
"value": "nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h"
},
{
"key": "amount",
"value": "30unub"
}
],
"type": "transfer"
}
],
"msg_index": 0
}
],
"raw_log": "[{\"msg_index\":0,\"events\":[{\"type\":\"coin_received\",\"attributes\":[{\"key\":\"receiver\",\"value\":\"nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw\"},{\"key\":\"amount\",\"value\":\"30unub\"}]},{\"type\":\"coin_spent\",\"attributes\":[{\"key\":\"spender\",\"value\":\"nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h\"},{\"key\":\"amount\",\"value\":\"30unub\"}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/cosmos.bank.v1beta1.MsgSend\"},{\"key\":\"sender\",\"value\":\"nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h\"},{\"key\":\"module\",\"value\":\"bank\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw\"},{\"key\":\"sender\",\"value\":\"nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h\"},{\"key\":\"amount\",\"value\":\"30unub\"}]}]}]",
"txhash": "05D9016060072AA71B007A6CFB1B895623192D6616D513017964C3BFCD047282"
},
"id": 0
}
Delegate
Delegate sends a user's liquid tokens to a validator for delegation.
Auth level: write
Copy func Delegate(
delAddr state.ValAddress,
amount state.Int,
fee state.Int,
gasLim uint64,
) *state.TxResponse
Copy {
"jsonrpc": "2.0",
"method": "state.Delegate",
"params": [
"nubitvaloper1t3egzn706ukv03f66qv6yveeafgge2rtmp2fl0",
"42",
"42",
42
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"data": "12260A242F636F736D6F732E62616E6B2E763162657461312E4D736753656E64526573706F6E7365",
"events": [
{
"attributes": [
{
"index": true,
"key": "ZmVl",
"value": null
}
],
"type": "tx"
},
{
"attributes": [
{
"index": true,
"key": "YWNjX3NlcQ==",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2gvMA=="
}
],
"type": "tx"
},
{
"attributes": [
{
"index": true,
"key": "c2lnbmF0dXJl",
"value": "R3NlVjhGNThFNGphR05LU0NicDBvNmRILytKK3BNQjNvUmtoNVpKNE8rVjdvNVVYQkJNNXpmNkdiYnN6OW9Takc1OUZkSHJRYzFvVVVBbnRBZW1wV0E9PQ=="
}
],
"type": "tx"
},
{
"attributes": [
{
"index": true,
"key": "YWN0aW9u",
"value": "L2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZA=="
}
],
"type": "message"
},
{
"attributes": [
{
"index": true,
"key": "c3BlbmRlcg==",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2g="
},
{
"index": true,
"key": "YW1vdW50",
"value": "MzB1dGlh"
}
],
"type": "coin_spent"
},
{
"attributes": [
{
"index": true,
"key": "cmVjZWl2ZXI=",
"value": "Y2VsZXN0aWExMmxlczhsOGd6c2Fjamp4d3VtOXdkeTdtZTh4OXhhanFjaDRneXc="
},
{
"index": true,
"key": "YW1vdW50",
"value": "MzB1dGlh"
}
],
"type": "coin_received"
},
{
"attributes": [
{
"index": true,
"key": "cmVjaXBpZW50",
"value": "Y2VsZXN0aWExMmxlczhsOGd6c2Fjamp4d3VtOXdkeTdtZTh4OXhhanFjaDRneXc="
},
{
"index": true,
"key": "c2VuZGVy",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2g="
},
{
"index": true,
"key": "YW1vdW50",
"value": "MzB1dGlh"
}
],
"type": "transfer"
},
{
"attributes": [
{
"index": true,
"key": "c2VuZGVy",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2g="
}
],
"type": "message"
},
{
"attributes": [
{
"index": true,
"key": "bW9kdWxl",
"value": "YmFuaw=="
}
],
"type": "message"
}
],
"gas_used": 69085,
"gas_wanted": 10000000,
"height": 30497,
"logs": [
{
"events": [
{
"attributes": [
{
"key": "receiver",
"value": "nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw"
},
{
"key": "amount",
"value": "30unub"
}
],
"type": "coin_received"
},
{
"attributes": [
{
"key": "spender",
"value": "nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h"
},
{
"key": "amount",
"value": "30unub"
}
],
"type": "coin_spent"
},
{
"attributes": [
{
"key": "action",
"value": "/cosmos.bank.v1beta1.MsgSend"
},
{
"key": "sender",
"value": "nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h"
},
{
"key": "module",
"value": "bank"
}
],
"type": "message"
},
{
"attributes": [
{
"key": "recipient",
"value": "nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw"
},
{
"key": "sender",
"value": "nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h"
},
{
"key": "amount",
"value": "30unub"
}
],
"type": "transfer"
}
],
"msg_index": 0
}
],
"raw_log": "[{\"msg_index\":0,\"events\":[{\"type\":\"coin_received\",\"attributes\":[{\"key\":\"receiver\",\"value\":\"nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw\"},{\"key\":\"amount\",\"value\":\"30unub\"}]},{\"type\":\"coin_spent\",\"attributes\":[{\"key\":\"spender\",\"value\":\"nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h\"},{\"key\":\"amount\",\"value\":\"30unub\"}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/cosmos.bank.v1beta1.MsgSend\"},{\"key\":\"sender\",\"value\":\"nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h\"},{\"key\":\"module\",\"value\":\"bank\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw\"},{\"key\":\"sender\",\"value\":\"nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h\"},{\"key\":\"amount\",\"value\":\"30unub\"}]}]}]",
"txhash": "05D9016060072AA71B007A6CFB1B895623192D6616D513017964C3BFCD047282"
},
"id": 0
}
QueryDelegation
QueryDelegation retrieves the delegation information between a delegator and a validator.
Auth level: read
Copy func QueryDelegation(valAddr state.ValAddress) *types.QueryDelegationResponse
Copy {
"jsonrpc": "2.0",
"method": "state.QueryDelegation",
"params": [
"nubitvaloper1t3egzn706ukv03f66qv6yveeafgge2rtmp2fl0"
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"delegation_response": {
"balance": {
"amount": "42",
"denom": "string value"
},
"delegation": {
"delegator_address": "string value",
"shares": "0",
"validator_address": "string value"
}
}
},
"id": 0
}
QueryRedelegations
QueryRedelegations retrieves the status of the redelegations between a delegator and a validator.
Auth level: read
Copy func QueryRedelegations(
srcValAddr state.ValAddress,
dstValAddr state.ValAddress,
) *types.QueryRedelegationsResponse
Copy {
"jsonrpc": "2.0",
"method": "state.QueryRedelegations",
"params": [
"nubitvaloper1t3egzn706ukv03f66qv6yveeafgge2rtmp2fl0",
"nubitvaloper1t3egzn706ukv03f66qv6yveeafgge2rtmp2fl0"
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"pagination": {
"next_key": "Ynl0ZSBhcnJheQ==",
"total": 42
},
"redelegation_responses": [
{
"entries": [
{
"balance": "42",
"redelegation_entry": {
"completion_time": "0001-01-01T00:00:00Z",
"creation_height": 42,
"initial_balance": "42",
"shares_dst": "0"
}
}
],
"redelegation": {
"delegator_address": "string value",
"entries": [
{
"completion_time": "0001-01-01T00:00:00Z",
"creation_height": 42,
"initial_balance": "42",
"shares_dst": "0"
}
],
"validator_dst_address": "string value",
"validator_src_address": "string value"
}
}
]
},
"id": 0
}
QueryUnbonding
QueryUnbonding retrieves the unbonding status between a delegator and a validator.
Auth level: read
Copy func QueryUnbonding(valAddr state.ValAddress) *types.QueryUnbondingDelegationResponse
Copy {
"jsonrpc": "2.0",
"method": "state.QueryUnbonding",
"params": [
"nubitvaloper1t3egzn706ukv03f66qv6yveeafgge2rtmp2fl0"
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"unbond": {
"delegator_address": "string value",
"entries": [
{
"balance": "42",
"completion_time": "0001-01-01T00:00:00Z",
"creation_height": 42,
"initial_balance": "42"
}
],
"validator_address": "string value"
}
},
"id": 0
}
SubmitBlob
SubmitBlob builds, signs and submits a SubmitBlobPayment transaction.
Auth level: write
Copy func SubmitBlob(
fee state.Int,
gasLim uint64,
blobs []*blob.Blob,
) *state.TxResponse
Copy {
"jsonrpc": "2.0",
"method": "state.SubmitBlob",
"params": [
"42",
42,
[
{
"commitment": "20qrISWy41i+3YG4pGbmtw3BbsK875MrcRX8bTgJOMk=",
"data": "VGhpcyBpcyBhbiBleGFtcGxlIG9mIHNvbWUgYmxvYiBkYXRh",
"index": -1,
"namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAECAwQFBgcICRA=",
"share_version": 0
}
]
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"data": "12260A242F636F736D6F732E62616E6B2E763162657461312E4D736753656E64526573706F6E7365",
"events": [
{
"attributes": [
{
"index": true,
"key": "ZmVl",
"value": null
}
],
"type": "tx"
},
{
"attributes": [
{
"index": true,
"key": "YWNjX3NlcQ==",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2gvMA=="
}
],
"type": "tx"
},
{
"attributes": [
{
"index": true,
"key": "c2lnbmF0dXJl",
"value": "R3NlVjhGNThFNGphR05LU0NicDBvNmRILytKK3BNQjNvUmtoNVpKNE8rVjdvNVVYQkJNNXpmNkdiYnN6OW9Takc1OUZkSHJRYzFvVVVBbnRBZW1wV0E9PQ=="
}
],
"type": "tx"
},
{
"attributes": [
{
"index": true,
"key": "YWN0aW9u",
"value": "L2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZA=="
}
],
"type": "message"
},
{
"attributes": [
{
"index": true,
"key": "c3BlbmRlcg==",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2g="
},
{
"index": true,
"key": "YW1vdW50",
"value": "MzB1dGlh"
}
],
"type": "coin_spent"
},
{
"attributes": [
{
"index": true,
"key": "cmVjZWl2ZXI=",
"value": "Y2VsZXN0aWExMmxlczhsOGd6c2Fjamp4d3VtOXdkeTdtZTh4OXhhanFjaDRneXc="
},
{
"index": true,
"key": "YW1vdW50",
"value": "MzB1dGlh"
}
],
"type": "coin_received"
},
{
"attributes": [
{
"index": true,
"key": "cmVjaXBpZW50",
"value": "Y2VsZXN0aWExMmxlczhsOGd6c2Fjamp4d3VtOXdkeTdtZTh4OXhhanFjaDRneXc="
},
{
"index": true,
"key": "c2VuZGVy",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2g="
},
{
"index": true,
"key": "YW1vdW50",
"value": "MzB1dGlh"
}
],
"type": "transfer"
},
{
"attributes": [
{
"index": true,
"key": "c2VuZGVy",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2g="
}
],
"type": "message"
},
{
"attributes": [
{
"index": true,
"key": "bW9kdWxl",
"value": "YmFuaw=="
}
],
"type": "message"
}
],
"gas_used": 69085,
"gas_wanted": 10000000,
"height": 30497,
"logs": [
{
"events": [
{
"attributes": [
{
"key": "receiver",
"value": "nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw"
},
{
"key": "amount",
"value": "30unub"
}
],
"type": "coin_received"
},
{
"attributes": [
{
"key": "spender",
"value": "nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h"
},
{
"key": "amount",
"value": "30unub"
}
],
"type": "coin_spent"
},
{
"attributes": [
{
"key": "action",
"value": "/cosmos.bank.v1beta1.MsgSend"
},
{
"key": "sender",
"value": "nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h"
},
{
"key": "module",
"value": "bank"
}
],
"type": "message"
},
{
"attributes": [
{
"key": "recipient",
"value": "nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw"
},
{
"key": "sender",
"value": "nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h"
},
{
"key": "amount",
"value": "30unub"
}
],
"type": "transfer"
}
],
"msg_index": 0
}
],
"raw_log": "[{\"msg_index\":0,\"events\":[{\"type\":\"coin_received\",\"attributes\":[{\"key\":\"receiver\",\"value\":\"nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw\"},{\"key\":\"amount\",\"value\":\"30unub\"}]},{\"type\":\"coin_spent\",\"attributes\":[{\"key\":\"spender\",\"value\":\"nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h\"},{\"key\":\"amount\",\"value\":\"30unub\"}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/cosmos.bank.v1beta1.MsgSend\"},{\"key\":\"sender\",\"value\":\"nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h\"},{\"key\":\"module\",\"value\":\"bank\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw\"},{\"key\":\"sender\",\"value\":\"nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h\"},{\"key\":\"amount\",\"value\":\"30unub\"}]}]}]",
"txhash": "05D9016060072AA71B007A6CFB1B895623192D6616D513017964C3BFCD047282"
},
"id": 0
}
SubmitTx
SubmitTx submits the given transaction/message to the Nubit network and blocks until the tx is included in a block.
Auth level: read
Copy func SubmitTx(tx state.Tx) *state.TxResponse
Copy {
"jsonrpc": "2.0",
"method": "state.SubmitTx",
"params": [
"Bw=="
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"data": "12260A242F636F736D6F732E62616E6B2E763162657461312E4D736753656E64526573706F6E7365",
"events": [
{
"attributes": [
{
"index": true,
"key": "ZmVl",
"value": null
}
],
"type": "tx"
},
{
"attributes": [
{
"index": true,
"key": "YWNjX3NlcQ==",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2gvMA=="
}
],
"type": "tx"
},
{
"attributes": [
{
"index": true,
"key": "c2lnbmF0dXJl",
"value": "R3NlVjhGNThFNGphR05LU0NicDBvNmRILytKK3BNQjNvUmtoNVpKNE8rVjdvNVVYQkJNNXpmNkdiYnN6OW9Takc1OUZkSHJRYzFvVVVBbnRBZW1wV0E9PQ=="
}
],
"type": "tx"
},
{
"attributes": [
{
"index": true,
"key": "YWN0aW9u",
"value": "L2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZA=="
}
],
"type": "message"
},
{
"attributes": [
{
"index": true,
"key": "c3BlbmRlcg==",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2g="
},
{
"index": true,
"key": "YW1vdW50",
"value": "MzB1dGlh"
}
],
"type": "coin_spent"
},
{
"attributes": [
{
"index": true,
"key": "cmVjZWl2ZXI=",
"value": "Y2VsZXN0aWExMmxlczhsOGd6c2Fjamp4d3VtOXdkeTdtZTh4OXhhanFjaDRneXc="
},
{
"index": true,
"key": "YW1vdW50",
"value": "MzB1dGlh"
}
],
"type": "coin_received"
},
{
"attributes": [
{
"index": true,
"key": "cmVjaXBpZW50",
"value": "Y2VsZXN0aWExMmxlczhsOGd6c2Fjamp4d3VtOXdkeTdtZTh4OXhhanFjaDRneXc="
},
{
"index": true,
"key": "c2VuZGVy",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2g="
},
{
"index": true,
"key": "YW1vdW50",
"value": "MzB1dGlh"
}
],
"type": "transfer"
},
{
"attributes": [
{
"index": true,
"key": "c2VuZGVy",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2g="
}
],
"type": "message"
},
{
"attributes": [
{
"index": true,
"key": "bW9kdWxl",
"value": "YmFuaw=="
}
],
"type": "message"
}
],
"gas_used": 69085,
"gas_wanted": 10000000,
"height": 30497,
"logs": [
{
"events": [
{
"attributes": [
{
"key": "receiver",
"value": "nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw"
},
{
"key": "amount",
"value": "30unub"
}
],
"type": "coin_received"
},
{
"attributes": [
{
"key": "spender",
"value": "nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h"
},
{
"key": "amount",
"value": "30unub"
}
],
"type": "coin_spent"
},
{
"attributes": [
{
"key": "action",
"value": "/cosmos.bank.v1beta1.MsgSend"
},
{
"key": "sender",
"value": "nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h"
},
{
"key": "module",
"value": "bank"
}
],
"type": "message"
},
{
"attributes": [
{
"key": "recipient",
"value": "nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw"
},
{
"key": "sender",
"value": "nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h"
},
{
"key": "amount",
"value": "30unub"
}
],
"type": "transfer"
}
],
"msg_index": 0
}
],
"raw_log": "[{\"msg_index\":0,\"events\":[{\"type\":\"coin_received\",\"attributes\":[{\"key\":\"receiver\",\"value\":\"nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw\"},{\"key\":\"amount\",\"value\":\"30unub\"}]},{\"type\":\"coin_spent\",\"attributes\":[{\"key\":\"spender\",\"value\":\"nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h\"},{\"key\":\"amount\",\"value\":\"30unub\"}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/cosmos.bank.v1beta1.MsgSend\"},{\"key\":\"sender\",\"value\":\"nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h\"},{\"key\":\"module\",\"value\":\"bank\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw\"},{\"key\":\"sender\",\"value\":\"nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h\"},{\"key\":\"amount\",\"value\":\"30unub\"}]}]}]",
"txhash": "05D9016060072AA71B007A6CFB1B895623192D6616D513017964C3BFCD047282"
},
"id": 0
}
Transfer
Transfer sends the given amount of coins from default wallet of the node to the given account address.
Auth level: write
Copy func Transfer(
to state.AccAddress,
amount state.Int,
fee state.Int,
gasLimit uint64,
) *state.TxResponse
Copy {
"jsonrpc": "2.0",
"method": "state.Transfer",
"params": [
"nubit1t3egzn706ukv03f66qv6yveeafgge2rtpq9w8t",
"42",
"42",
42
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"data": "12260A242F636F736D6F732E62616E6B2E763162657461312E4D736753656E64526573706F6E7365",
"events": [
{
"attributes": [
{
"index": true,
"key": "ZmVl",
"value": null
}
],
"type": "tx"
},
{
"attributes": [
{
"index": true,
"key": "YWNjX3NlcQ==",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2gvMA=="
}
],
"type": "tx"
},
{
"attributes": [
{
"index": true,
"key": "c2lnbmF0dXJl",
"value": "R3NlVjhGNThFNGphR05LU0NicDBvNmRILytKK3BNQjNvUmtoNVpKNE8rVjdvNVVYQkJNNXpmNkdiYnN6OW9Takc1OUZkSHJRYzFvVVVBbnRBZW1wV0E9PQ=="
}
],
"type": "tx"
},
{
"attributes": [
{
"index": true,
"key": "YWN0aW9u",
"value": "L2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZA=="
}
],
"type": "message"
},
{
"attributes": [
{
"index": true,
"key": "c3BlbmRlcg==",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2g="
},
{
"index": true,
"key": "YW1vdW50",
"value": "MzB1dGlh"
}
],
"type": "coin_spent"
},
{
"attributes": [
{
"index": true,
"key": "cmVjZWl2ZXI=",
"value": "Y2VsZXN0aWExMmxlczhsOGd6c2Fjamp4d3VtOXdkeTdtZTh4OXhhanFjaDRneXc="
},
{
"index": true,
"key": "YW1vdW50",
"value": "MzB1dGlh"
}
],
"type": "coin_received"
},
{
"attributes": [
{
"index": true,
"key": "cmVjaXBpZW50",
"value": "Y2VsZXN0aWExMmxlczhsOGd6c2Fjamp4d3VtOXdkeTdtZTh4OXhhanFjaDRneXc="
},
{
"index": true,
"key": "c2VuZGVy",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2g="
},
{
"index": true,
"key": "YW1vdW50",
"value": "MzB1dGlh"
}
],
"type": "transfer"
},
{
"attributes": [
{
"index": true,
"key": "c2VuZGVy",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2g="
}
],
"type": "message"
},
{
"attributes": [
{
"index": true,
"key": "bW9kdWxl",
"value": "YmFuaw=="
}
],
"type": "message"
}
],
"gas_used": 69085,
"gas_wanted": 10000000,
"height": 30497,
"logs": [
{
"events": [
{
"attributes": [
{
"key": "receiver",
"value": "nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw"
},
{
"key": "amount",
"value": "30unub"
}
],
"type": "coin_received"
},
{
"attributes": [
{
"key": "spender",
"value": "nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h"
},
{
"key": "amount",
"value": "30unub"
}
],
"type": "coin_spent"
},
{
"attributes": [
{
"key": "action",
"value": "/cosmos.bank.v1beta1.MsgSend"
},
{
"key": "sender",
"value": "nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h"
},
{
"key": "module",
"value": "bank"
}
],
"type": "message"
},
{
"attributes": [
{
"key": "recipient",
"value": "nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw"
},
{
"key": "sender",
"value": "nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h"
},
{
"key": "amount",
"value": "30unub"
}
],
"type": "transfer"
}
],
"msg_index": 0
}
],
"raw_log": "[{\"msg_index\":0,\"events\":[{\"type\":\"coin_received\",\"attributes\":[{\"key\":\"receiver\",\"value\":\"nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw\"},{\"key\":\"amount\",\"value\":\"30unub\"}]},{\"type\":\"coin_spent\",\"attributes\":[{\"key\":\"spender\",\"value\":\"nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h\"},{\"key\":\"amount\",\"value\":\"30unub\"}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/cosmos.bank.v1beta1.MsgSend\"},{\"key\":\"sender\",\"value\":\"nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h\"},{\"key\":\"module\",\"value\":\"bank\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw\"},{\"key\":\"sender\",\"value\":\"nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h\"},{\"key\":\"amount\",\"value\":\"30unub\"}]}]}]",
"txhash": "05D9016060072AA71B007A6CFB1B895623192D6616D513017964C3BFCD047282"
},
"id": 0
}
Undelegate
Undelegate undelegates a user's delegated tokens, unbonding them from the current validator.
Auth level: write
Copy func Undelegate(
delAddr state.ValAddress,
amount state.Int,
fee state.Int,
gasLim uint64,
) *state.TxResponse
Copy {
"jsonrpc": "2.0",
"method": "state.Undelegate",
"params": [
"nubitvaloper1t3egzn706ukv03f66qv6yveeafgge2rtmp2fl0",
"42",
"42",
42
],
"id": 0
}
Copy {
"jsonrpc": "2.0",
"result": {
"data": "12260A242F636F736D6F732E62616E6B2E763162657461312E4D736753656E64526573706F6E7365",
"events": [
{
"attributes": [
{
"index": true,
"key": "ZmVl",
"value": null
}
],
"type": "tx"
},
{
"attributes": [
{
"index": true,
"key": "YWNjX3NlcQ==",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2gvMA=="
}
],
"type": "tx"
},
{
"attributes": [
{
"index": true,
"key": "c2lnbmF0dXJl",
"value": "R3NlVjhGNThFNGphR05LU0NicDBvNmRILytKK3BNQjNvUmtoNVpKNE8rVjdvNVVYQkJNNXpmNkdiYnN6OW9Takc1OUZkSHJRYzFvVVVBbnRBZW1wV0E9PQ=="
}
],
"type": "tx"
},
{
"attributes": [
{
"index": true,
"key": "YWN0aW9u",
"value": "L2Nvc21vcy5iYW5rLnYxYmV0YTEuTXNnU2VuZA=="
}
],
"type": "message"
},
{
"attributes": [
{
"index": true,
"key": "c3BlbmRlcg==",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2g="
},
{
"index": true,
"key": "YW1vdW50",
"value": "MzB1dGlh"
}
],
"type": "coin_spent"
},
{
"attributes": [
{
"index": true,
"key": "cmVjZWl2ZXI=",
"value": "Y2VsZXN0aWExMmxlczhsOGd6c2Fjamp4d3VtOXdkeTdtZTh4OXhhanFjaDRneXc="
},
{
"index": true,
"key": "YW1vdW50",
"value": "MzB1dGlh"
}
],
"type": "coin_received"
},
{
"attributes": [
{
"index": true,
"key": "cmVjaXBpZW50",
"value": "Y2VsZXN0aWExMmxlczhsOGd6c2Fjamp4d3VtOXdkeTdtZTh4OXhhanFjaDRneXc="
},
{
"index": true,
"key": "c2VuZGVy",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2g="
},
{
"index": true,
"key": "YW1vdW50",
"value": "MzB1dGlh"
}
],
"type": "transfer"
},
{
"attributes": [
{
"index": true,
"key": "c2VuZGVy",
"value": "Y2VsZXN0aWExMzc3azVhbjNmOTR2Nnd5YWNldTBjZjRucTZnazJqdHBjNDZnN2g="
}
],
"type": "message"
},
{
"attributes": [
{
"index": true,
"key": "bW9kdWxl",
"value": "YmFuaw=="
}
],
"type": "message"
}
],
"gas_used": 69085,
"gas_wanted": 10000000,
"height": 30497,
"logs": [
{
"events": [
{
"attributes": [
{
"key": "receiver",
"value": "nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw"
},
{
"key": "amount",
"value": "30unub"
}
],
"type": "coin_received"
},
{
"attributes": [
{
"key": "spender",
"value": "nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h"
},
{
"key": "amount",
"value": "30unub"
}
],
"type": "coin_spent"
},
{
"attributes": [
{
"key": "action",
"value": "/cosmos.bank.v1beta1.MsgSend"
},
{
"key": "sender",
"value": "nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h"
},
{
"key": "module",
"value": "bank"
}
],
"type": "message"
},
{
"attributes": [
{
"key": "recipient",
"value": "nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw"
},
{
"key": "sender",
"value": "nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h"
},
{
"key": "amount",
"value": "30unub"
}
],
"type": "transfer"
}
],
"msg_index": 0
}
],
"raw_log": "[{\"msg_index\":0,\"events\":[{\"type\":\"coin_received\",\"attributes\":[{\"key\":\"receiver\",\"value\":\"nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw\"},{\"key\":\"amount\",\"value\":\"30unub\"}]},{\"type\":\"coin_spent\",\"attributes\":[{\"key\":\"spender\",\"value\":\"nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h\"},{\"key\":\"amount\",\"value\":\"30unub\"}]},{\"type\":\"message\",\"attributes\":[{\"key\":\"action\",\"value\":\"/cosmos.bank.v1beta1.MsgSend\"},{\"key\":\"sender\",\"value\":\"nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h\"},{\"key\":\"module\",\"value\":\"bank\"}]},{\"type\":\"transfer\",\"attributes\":[{\"key\":\"recipient\",\"value\":\"nubit12les8l8gzsacjjxwum9wdy7me8x9xajqch4gyw\"},{\"key\":\"sender\",\"value\":\"nubit1377k5an3f94v6wyaceu0cf4nq6gk2jtpc46g7h\"},{\"key\":\"amount\",\"value\":\"30unub\"}]}]}]",
"txhash": "05D9016060072AA71B007A6CFB1B895623192D6616D513017964C3BFCD047282"
},
"id": 0
}