{
  "nested": {
    "forge_abi": {
      "nested": {
        "RequestVerifyTx": {
          "fields": {
            "tx": {
              "type": "Transaction",
              "id": 1
            },
            "states": {
              "rule": "repeated",
              "type": "AccountState",
              "id": 2
            },
            "assets": {
              "rule": "repeated",
              "type": "AssetState",
              "id": 3
            },
            "stakes": {
              "rule": "repeated",
              "type": "StakeState",
              "id": 4
            },
            "context": {
              "type": "AbciContext",
              "id": 5
            },
            "appState": {
              "type": "ForgeState",
              "id": 15
            }
          }
        },
        "ResponseVerifyTx": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            }
          }
        },
        "RequestUpdateState": {
          "fields": {
            "tx": {
              "type": "Transaction",
              "id": 1
            },
            "states": {
              "rule": "repeated",
              "type": "AccountState",
              "id": 2
            },
            "assets": {
              "rule": "repeated",
              "type": "AssetState",
              "id": 3
            },
            "stakes": {
              "rule": "repeated",
              "type": "StakeState",
              "id": 4
            },
            "context": {
              "type": "AbciContext",
              "id": 5
            },
            "appState": {
              "type": "ForgeState",
              "id": 15
            }
          }
        },
        "ResponseUpdateState": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "states": {
              "rule": "repeated",
              "type": "AccountState",
              "id": 2
            },
            "assets": {
              "rule": "repeated",
              "type": "AssetState",
              "id": 3
            },
            "stakes": {
              "rule": "repeated",
              "type": "StakeState",
              "id": 4
            },
            "appState": {
              "type": "ForgeState",
              "id": 15
            }
          }
        },
        "RequestInfo": {
          "fields": {
            "forgeVersion": {
              "type": "string",
              "id": 1
            }
          }
        },
        "ResponseInfo": {
          "fields": {
            "typeUrls": {
              "rule": "repeated",
              "type": "string",
              "id": 1
            },
            "appHash": {
              "type": "bytes",
              "id": 2
            }
          }
        },
        "Request": {
          "oneofs": {
            "value": {
              "oneof": [
                "verifyTx",
                "updateState",
                "info"
              ]
            }
          },
          "fields": {
            "verifyTx": {
              "type": "RequestVerifyTx",
              "id": 1
            },
            "updateState": {
              "type": "RequestUpdateState",
              "id": 2
            },
            "info": {
              "type": "RequestInfo",
              "id": 3
            }
          }
        },
        "Response": {
          "oneofs": {
            "value": {
              "oneof": [
                "verifyTx",
                "updateState",
                "info"
              ]
            }
          },
          "fields": {
            "verifyTx": {
              "type": "ResponseVerifyTx",
              "id": 1
            },
            "updateState": {
              "type": "ResponseUpdateState",
              "id": 2
            },
            "info": {
              "type": "ResponseInfo",
              "id": 3
            }
          }
        },
        "ForgeAppRpc": {
          "methods": {
            "process_one": {
              "requestType": "Request",
              "responseType": "Response"
            },
            "process": {
              "requestType": "Request",
              "requestStream": true,
              "responseType": "Response",
              "responseStream": true
            }
          }
        },
        "StatusCode": {
          "values": {
            "ok": 0,
            "invalid_nonce": 1,
            "invalid_signature": 2,
            "invalid_sender_state": 3,
            "invalid_receiver_state": 4,
            "insufficient_data": 5,
            "insufficient_fund": 6,
            "invalid_owner": 7,
            "invalid_tx": 8,
            "unsupported_tx": 9,
            "expired_tx": 10,
            "too_many_txs": 11,
            "invalid_moniker": 16,
            "invalid_passphrase": 17,
            "invalid_multisig": 20,
            "invalid_wallet": 21,
            "invalid_chain_id": 22,
            "consensus_rpc_error": 24,
            "storage_rpc_error": 25,
            "noent": 26,
            "account_migrated": 27,
            "unsupported_stake": 30,
            "insufficient_stake": 31,
            "invalid_stake_state": 32,
            "expired_wallet_token": 33,
            "banned_unstake": 34,
            "invalid_asset": 35,
            "invalid_tx_size": 36,
            "invalid_signer_state": 37,
            "invalid_forge_state": 38,
            "expired_asset": 39,
            "untransferrable_asset": 40,
            "readonly_asset": 41,
            "consumed_asset": 42,
            "forbidden": 403,
            "internal": 500,
            "timeout": 504
          }
        },
        "TopicType": {
          "values": {
            "transfer": 0,
            "exchange": 1,
            "declare": 2,
            "create_asset": 3,
            "update_asset": 4,
            "stake": 5,
            "account_migrate": 6,
            "begin_block": 16,
            "end_block": 17,
            "consensus_upgrade": 21,
            "declare_file": 22,
            "sys_upgrade": 23,
            "application": 24,
            "consume_asset": 25,
            "poke": 26,
            "account_state": 129,
            "asset_state": 130,
            "forge_state": 131,
            "stake_state": 132
          }
        },
        "KeyType": {
          "values": {
            "ed25519": 0,
            "secp256k1": 1
          }
        },
        "HashType": {
          "values": {
            "keccak": 0,
            "sha3": 1,
            "sha2": 2,
            "keccak_384": 6,
            "sha3_384": 7,
            "keccak_512": 13,
            "sha3_512": 14
          }
        },
        "EncodingType": {
          "values": {
            "base16": 0,
            "base58": 1
          }
        },
        "RoleType": {
          "values": {
            "role_account": 0,
            "role_node": 1,
            "role_device": 2,
            "role_application": 3,
            "role_smart_contract": 4,
            "role_bot": 5,
            "role_asset": 6,
            "role_stake": 7,
            "role_validator": 8
          }
        },
        "UpgradeType": {
          "values": {
            "config_app": 0,
            "config_forge": 1,
            "config_dfs": 2,
            "config_consensus": 3,
            "config_p2p": 4,
            "exe_app": 10,
            "exe_forge": 11,
            "exe_dfs": 12,
            "exe_consensus": 13,
            "exe_p2p": 14
          }
        },
        "UpgradeAction": {
          "values": {
            "verify": 0,
            "backup": 1,
            "replace": 2,
            "restart_app": 10,
            "restart_dfs": 11,
            "restart_consensus": 12,
            "restart_p2p": 13,
            "restart_forge": 14,
            "rollback_if_fail": 30,
            "restart_all_if_fail": 31,
            "crash_if_fail": 33,
            "drop_address_book": 50
          }
        },
        "StateType": {
          "values": {
            "state_account": 0,
            "state_asset": 1,
            "state_channel": 2,
            "state_forge": 3,
            "state_stake": 4
          }
        },
        "StakeType": {
          "values": {
            "stake_node": 0,
            "stake_user": 1,
            "stake_asset": 2,
            "stake_chain": 3
          }
        },
        "BigUint": {
          "fields": {
            "value": {
              "type": "bytes",
              "id": 1
            }
          }
        },
        "BigSint": {
          "fields": {
            "value": {
              "type": "bytes",
              "id": 1
            },
            "minus": {
              "type": "bool",
              "id": 2
            }
          }
        },
        "WalletType": {
          "fields": {
            "pk": {
              "type": "KeyType",
              "id": 1
            },
            "hash": {
              "type": "HashType",
              "id": 2
            },
            "address": {
              "type": "EncodingType",
              "id": 3
            },
            "role": {
              "type": "RoleType",
              "id": 4
            }
          }
        },
        "WalletInfo": {
          "fields": {
            "type": {
              "type": "WalletType",
              "id": 1
            },
            "sk": {
              "type": "bytes",
              "id": 2
            },
            "pk": {
              "type": "bytes",
              "id": 3
            },
            "address": {
              "type": "string",
              "id": 4
            }
          }
        },
        "ChainInfo": {
          "fields": {
            "id": {
              "type": "string",
              "id": 1
            },
            "network": {
              "type": "string",
              "id": 2
            },
            "moniker": {
              "type": "string",
              "id": 3
            },
            "consensusVersion": {
              "type": "string",
              "id": 4
            },
            "synced": {
              "type": "bool",
              "id": 5
            },
            "appHash": {
              "type": "bytes",
              "id": 6
            },
            "blockHash": {
              "type": "bytes",
              "id": 7
            },
            "blockHeight": {
              "type": "uint64",
              "id": 8
            },
            "blockTime": {
              "type": "google.protobuf.Timestamp",
              "id": 9
            },
            "address": {
              "type": "string",
              "id": 10
            },
            "votingPower": {
              "type": "uint64",
              "id": 11
            },
            "totalTxs": {
              "type": "uint64",
              "id": 12
            },
            "version": {
              "type": "string",
              "id": 13
            },
            "dataVersion": {
              "type": "string",
              "id": 14
            },
            "forgeAppsVersion": {
              "keyType": "string",
              "type": "string",
              "id": 15
            },
            "supportedTxs": {
              "rule": "repeated",
              "type": "string",
              "id": 16
            }
          }
        },
        "NodeInfo": {
          "fields": {
            "id": {
              "type": "string",
              "id": 1
            },
            "network": {
              "type": "string",
              "id": 2
            },
            "moniker": {
              "type": "string",
              "id": 3
            },
            "consensusVersion": {
              "type": "string",
              "id": 4
            },
            "synced": {
              "type": "bool",
              "id": 5
            },
            "appHash": {
              "type": "bytes",
              "id": 6
            },
            "blockHash": {
              "type": "bytes",
              "id": 7
            },
            "blockHeight": {
              "type": "uint64",
              "id": 8
            },
            "blockTime": {
              "type": "google.protobuf.Timestamp",
              "id": 9
            },
            "address": {
              "type": "string",
              "id": 10
            },
            "votingPower": {
              "type": "uint64",
              "id": 11
            },
            "totalTxs": {
              "type": "uint64",
              "id": 12
            },
            "version": {
              "type": "string",
              "id": 13
            },
            "dataVersion": {
              "type": "string",
              "id": 14
            },
            "forgeAppsVersion": {
              "keyType": "string",
              "type": "string",
              "id": 15
            },
            "supportedTxs": {
              "rule": "repeated",
              "type": "string",
              "id": 16
            },
            "ip": {
              "type": "string",
              "id": 17
            },
            "geoInfo": {
              "type": "GeoInfo",
              "id": 18
            },
            "p2pAddress": {
              "type": "string",
              "id": 19
            }
          }
        },
        "Validator": {
          "fields": {
            "address": {
              "type": "string",
              "id": 1
            },
            "power": {
              "type": "uint64",
              "id": 2
            }
          }
        },
        "ConsensusParams": {
          "fields": {
            "maxBytes": {
              "type": "uint64",
              "id": 1
            },
            "maxGas": {
              "type": "sint64",
              "id": 2
            },
            "maxValidators": {
              "type": "uint32",
              "id": 3
            },
            "maxCandidates": {
              "type": "uint32",
              "id": 4
            },
            "pubKeyTypes": {
              "rule": "repeated",
              "type": "string",
              "id": 5
            },
            "validators": {
              "rule": "repeated",
              "type": "Validator",
              "id": 6
            },
            "validatorChanged": {
              "type": "bool",
              "id": 7
            },
            "paramChanged": {
              "type": "bool",
              "id": 8
            }
          }
        },
        "UpgradeTask": {
          "fields": {
            "type": {
              "type": "UpgradeType",
              "id": 1
            },
            "dataHash": {
              "type": "string",
              "id": 2
            },
            "actions": {
              "rule": "repeated",
              "type": "UpgradeAction",
              "id": 4
            }
          }
        },
        "UpgradeTasks": {
          "fields": {
            "item": {
              "rule": "repeated",
              "type": "UpgradeTask",
              "id": 1
            }
          }
        },
        "AbciContext": {
          "fields": {
            "txHash": {
              "type": "string",
              "id": 1
            },
            "blockHeight": {
              "type": "uint64",
              "id": 2
            },
            "blockTime": {
              "type": "google.protobuf.Timestamp",
              "id": 3
            },
            "totalTxs": {
              "type": "uint64",
              "id": 4
            },
            "txStatistics": {
              "type": "TxStatistics",
              "id": 5
            },
            "txIndex": {
              "type": "uint32",
              "id": 6
            },
            "lastBlockTime": {
              "type": "google.protobuf.Timestamp",
              "id": 7
            }
          }
        },
        "Multisig": {
          "fields": {
            "signer": {
              "type": "string",
              "id": 1
            },
            "pk": {
              "type": "bytes",
              "id": 2
            },
            "signature": {
              "type": "bytes",
              "id": 3
            },
            "data": {
              "type": "google.protobuf.Any",
              "id": 15
            }
          }
        },
        "Transaction": {
          "fields": {
            "from": {
              "type": "string",
              "id": 1
            },
            "nonce": {
              "type": "uint64",
              "id": 2
            },
            "chainId": {
              "type": "string",
              "id": 3
            },
            "pk": {
              "type": "bytes",
              "id": 4
            },
            "signature": {
              "type": "bytes",
              "id": 13
            },
            "signatures": {
              "rule": "repeated",
              "type": "Multisig",
              "id": 14
            },
            "itx": {
              "type": "google.protobuf.Any",
              "id": 15
            }
          }
        },
        "TransactionInfo": {
          "oneofs": {
            "extraMeta": {
              "oneof": [
                "createAsset",
                "accountMigrate"
              ]
            }
          },
          "fields": {
            "tx": {
              "type": "Transaction",
              "id": 1
            },
            "height": {
              "type": "uint64",
              "id": 2
            },
            "index": {
              "type": "uint32",
              "id": 3
            },
            "hash": {
              "type": "string",
              "id": 4
            },
            "tags": {
              "rule": "repeated",
              "type": "abci_vendor.KVPair",
              "id": 5
            },
            "code": {
              "type": "StatusCode",
              "id": 6
            },
            "time": {
              "type": "google.protobuf.Timestamp",
              "id": 7
            },
            "createAsset": {
              "type": "ExtraCreateAsset",
              "id": 8
            },
            "accountMigrate": {
              "type": "ExtraAccountMigrate",
              "id": 9
            }
          }
        },
        "TransactionConfig": {
          "fields": {
            "maxAssetSize": {
              "type": "uint32",
              "id": 1
            },
            "maxListSize": {
              "type": "uint32",
              "id": 2
            },
            "maxMultisig": {
              "type": "uint32",
              "id": 3
            },
            "minimumStake": {
              "type": "uint64",
              "id": 4
            }
          }
        },
        "BlockInfo": {
          "fields": {
            "height": {
              "type": "uint64",
              "id": 1
            },
            "numTxs": {
              "type": "uint32",
              "id": 2
            },
            "time": {
              "type": "google.protobuf.Timestamp",
              "id": 3
            },
            "appHash": {
              "type": "bytes",
              "id": 4
            },
            "proposer": {
              "type": "bytes",
              "id": 5
            },
            "txs": {
              "rule": "repeated",
              "type": "TransactionInfo",
              "id": 6
            },
            "totalTxs": {
              "type": "uint64",
              "id": 7
            },
            "invalidTxs": {
              "rule": "repeated",
              "type": "TransactionInfo",
              "id": 8
            },
            "txsHashes": {
              "rule": "repeated",
              "type": "string",
              "id": 9
            },
            "invalidTxsHashes": {
              "rule": "repeated",
              "type": "string",
              "id": 10
            },
            "consensusHash": {
              "type": "bytes",
              "id": 11
            },
            "dataHash": {
              "type": "bytes",
              "id": 12
            },
            "evidenceHash": {
              "type": "bytes",
              "id": 13
            },
            "lastCommitHash": {
              "type": "bytes",
              "id": 14
            },
            "lastResultsHash": {
              "type": "bytes",
              "id": 15
            },
            "nextValidatorsHash": {
              "type": "bytes",
              "id": 16
            },
            "validatorsHash": {
              "type": "bytes",
              "id": 17
            },
            "version": {
              "type": "abci_vendor.Version",
              "id": 18
            },
            "lastBlockId": {
              "type": "abci_vendor.BlockID",
              "id": 19
            }
          }
        },
        "TxStatus": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "hash": {
              "type": "string",
              "id": 2
            }
          }
        },
        "CircularQueue": {
          "fields": {
            "items": {
              "rule": "repeated",
              "type": "bytes",
              "id": 1
            },
            "typeUrl": {
              "type": "string",
              "id": 2
            },
            "maxItems": {
              "type": "uint32",
              "id": 3
            },
            "circular": {
              "type": "bool",
              "id": 4
            },
            "fifo": {
              "type": "bool",
              "id": 5
            }
          }
        },
        "StateContext": {
          "fields": {
            "genesisTx": {
              "type": "string",
              "id": 1
            },
            "renaissanceTx": {
              "type": "string",
              "id": 2
            },
            "genesisTime": {
              "type": "google.protobuf.Timestamp",
              "id": 3
            },
            "renaissanceTime": {
              "type": "google.protobuf.Timestamp",
              "id": 4
            }
          }
        },
        "StakeContext": {
          "fields": {
            "totalStakes": {
              "type": "BigUint",
              "id": 1
            },
            "totalUnstakes": {
              "type": "BigUint",
              "id": 2
            },
            "totalReceivedStakes": {
              "type": "BigUint",
              "id": 3
            },
            "recentStakes": {
              "type": "CircularQueue",
              "id": 4
            },
            "recentReceivedStakes": {
              "type": "CircularQueue",
              "id": 15
            }
          }
        },
        "StakeSummary": {
          "fields": {
            "totalStakes": {
              "type": "BigUint",
              "id": 1
            },
            "totalUnstakes": {
              "type": "BigUint",
              "id": 2
            },
            "context": {
              "type": "StateContext",
              "id": 3
            }
          }
        },
        "StakeConfig": {
          "fields": {
            "timeoutGeneral": {
              "type": "uint32",
              "id": 1
            },
            "timeoutStakeForNode": {
              "type": "uint32",
              "id": 2
            }
          }
        },
        "UnconfirmedTxs": {
          "fields": {
            "nTxs": {
              "type": "uint32",
              "id": 1
            },
            "txs": {
              "rule": "repeated",
              "type": "Transaction",
              "id": 2
            }
          }
        },
        "NetInfo": {
          "fields": {
            "listening": {
              "type": "bool",
              "id": 1
            },
            "listeners": {
              "rule": "repeated",
              "type": "string",
              "id": 2
            },
            "nPeers": {
              "type": "uint32",
              "id": 3
            },
            "peers": {
              "rule": "repeated",
              "type": "PeerInfo",
              "id": 4
            }
          }
        },
        "GeoInfo": {
          "fields": {
            "city": {
              "type": "string",
              "id": 1
            },
            "country": {
              "type": "string",
              "id": 2
            },
            "latitude": {
              "type": "float",
              "id": 3
            },
            "longitude": {
              "type": "float",
              "id": 4
            }
          }
        },
        "PeerInfo": {
          "fields": {
            "id": {
              "type": "string",
              "id": 1
            },
            "network": {
              "type": "string",
              "id": 2
            },
            "consensusVersion": {
              "type": "string",
              "id": 3
            },
            "moniker": {
              "type": "string",
              "id": 4
            },
            "ip": {
              "type": "string",
              "id": 5
            },
            "geoInfo": {
              "type": "GeoInfo",
              "id": 6
            }
          }
        },
        "ValidatorsInfo": {
          "fields": {
            "blockHeight": {
              "type": "uint64",
              "id": 1
            },
            "validators": {
              "rule": "repeated",
              "type": "ValidatorInfo",
              "id": 2
            }
          }
        },
        "ValidatorInfo": {
          "fields": {
            "address": {
              "type": "string",
              "id": 1
            },
            "pubKey": {
              "type": "abci_vendor.PubKey",
              "id": 2
            },
            "votingPower": {
              "type": "uint64",
              "id": 3
            },
            "proposerPriority": {
              "type": "string",
              "id": 4
            },
            "name": {
              "type": "string",
              "id": 5
            },
            "geoInfo": {
              "type": "GeoInfo",
              "id": 6
            }
          }
        },
        "GenesisInfo": {
          "fields": {
            "genesisTime": {
              "type": "string",
              "id": 1
            },
            "chainId": {
              "type": "string",
              "id": 2
            },
            "consensusParams": {
              "type": "abci_vendor.ConsensusParams",
              "id": 3
            },
            "validators": {
              "rule": "repeated",
              "type": "ValidatorInfo",
              "id": 4
            },
            "appHash": {
              "type": "string",
              "id": 5
            }
          }
        },
        "ForgeStatistics": {
          "fields": {
            "numBlocks": {
              "rule": "repeated",
              "type": "uint64",
              "id": 1
            },
            "numTxs": {
              "rule": "repeated",
              "type": "uint64",
              "id": 2
            },
            "numStakes": {
              "rule": "repeated",
              "type": "BigUint",
              "id": 3
            },
            "numValidators": {
              "rule": "repeated",
              "type": "uint32",
              "id": 4
            },
            "numAccountMigrateTxs": {
              "rule": "repeated",
              "type": "uint64",
              "id": 5
            },
            "numCreateAssetTxs": {
              "rule": "repeated",
              "type": "uint64",
              "id": 6
            },
            "numConsensusUpgradeTxs": {
              "rule": "repeated",
              "type": "uint32",
              "id": 7
            },
            "numDeclareTxs": {
              "rule": "repeated",
              "type": "uint64",
              "id": 8
            },
            "numDeclareFileTxs": {
              "rule": "repeated",
              "type": "uint64",
              "id": 9
            },
            "numExchangeTxs": {
              "rule": "repeated",
              "type": "uint64",
              "id": 10
            },
            "numStakeTxs": {
              "rule": "repeated",
              "type": "uint64",
              "id": 11
            },
            "numSysUpgradeTxs": {
              "rule": "repeated",
              "type": "uint32",
              "id": 12
            },
            "numTransferTxs": {
              "rule": "repeated",
              "type": "uint64",
              "id": 13
            },
            "numUpdateAssetTxs": {
              "rule": "repeated",
              "type": "uint64",
              "id": 14
            },
            "numConsumeAssetTxs": {
              "rule": "repeated",
              "type": "uint64",
              "id": 15
            },
            "numPokeTxs": {
              "rule": "repeated",
              "type": "uint64",
              "id": 16
            },
            "tps": {
              "rule": "repeated",
              "type": "uint32",
              "id": 17
            },
            "maxTps": {
              "type": "uint32",
              "id": 18
            },
            "avgTps": {
              "type": "uint32",
              "id": 19
            }
          }
        },
        "TxStatistics": {
          "fields": {
            "numAccountMigrateTxs": {
              "type": "uint64",
              "id": 1
            },
            "numCreateAssetTxs": {
              "type": "uint64",
              "id": 2
            },
            "numConsensusUpgradeTxs": {
              "type": "uint32",
              "id": 3
            },
            "numDeclareTxs": {
              "type": "uint64",
              "id": 4
            },
            "numDeclareFileTxs": {
              "type": "uint64",
              "id": 5
            },
            "numExchangeTxs": {
              "type": "uint64",
              "id": 6
            },
            "numStakeTxs": {
              "type": "uint64",
              "id": 7
            },
            "numSysUpgradeTxs": {
              "type": "uint32",
              "id": 8
            },
            "numTransferTxs": {
              "type": "uint64",
              "id": 9
            },
            "numUpdateAssetTxs": {
              "type": "uint64",
              "id": 10
            },
            "numConsumeAssetTxs": {
              "type": "uint64",
              "id": 11
            },
            "numPokeTxs": {
              "type": "uint64",
              "id": 12
            }
          }
        },
        "ForgeToken": {
          "fields": {
            "name": {
              "type": "string",
              "id": 1
            },
            "symbol": {
              "type": "string",
              "id": 2
            },
            "unit": {
              "type": "string",
              "id": 3
            },
            "description": {
              "type": "string",
              "id": 4
            },
            "icon": {
              "type": "bytes",
              "id": 5
            },
            "decimal": {
              "type": "uint32",
              "id": 6
            },
            "initialSupply": {
              "type": "uint64",
              "id": 7
            },
            "totalSupply": {
              "type": "uint64",
              "id": 8
            },
            "inflationRate": {
              "type": "uint32",
              "id": 9
            }
          }
        },
        "PokeInfo": {
          "fields": {
            "dailyLimit": {
              "type": "BigUint",
              "id": 1
            },
            "leftover": {
              "type": "BigUint",
              "id": 2
            },
            "amount": {
              "type": "BigUint",
              "id": 3
            }
          }
        },
        "PokeConfig": {
          "fields": {
            "address": {
              "type": "string",
              "id": 1
            },
            "dailyLimit": {
              "type": "uint64",
              "id": 2
            },
            "balance": {
              "type": "uint64",
              "id": 3
            },
            "amount": {
              "type": "uint64",
              "id": 4
            }
          }
        },
        "ExtraCreateAsset": {
          "fields": {
            "asset": {
              "type": "string",
              "id": 1
            }
          }
        },
        "ExtraAccountMigrate": {
          "fields": {
            "address": {
              "type": "string",
              "id": 1
            }
          }
        },
        "AccountState": {
          "fields": {
            "balance": {
              "type": "BigUint",
              "id": 1
            },
            "nonce": {
              "type": "uint64",
              "id": 2
            },
            "numTxs": {
              "type": "uint64",
              "id": 3
            },
            "address": {
              "type": "string",
              "id": 4
            },
            "pk": {
              "type": "bytes",
              "id": 5
            },
            "type": {
              "type": "WalletType",
              "id": 6
            },
            "moniker": {
              "type": "string",
              "id": 7
            },
            "context": {
              "type": "StateContext",
              "id": 8
            },
            "issuer": {
              "type": "string",
              "id": 9
            },
            "migratedTo": {
              "rule": "repeated",
              "type": "string",
              "id": 13
            },
            "migratedFrom": {
              "rule": "repeated",
              "type": "string",
              "id": 14
            },
            "numAssets": {
              "type": "uint64",
              "id": 15
            },
            "stake": {
              "type": "StakeContext",
              "id": 16
            },
            "pinnedFiles": {
              "type": "CircularQueue",
              "id": 17
            },
            "poke": {
              "type": "PokeInfo",
              "id": 18
            },
            "data": {
              "type": "google.protobuf.Any",
              "id": 50
            }
          }
        },
        "AssetState": {
          "fields": {
            "address": {
              "type": "string",
              "id": 1
            },
            "owner": {
              "type": "string",
              "id": 2
            },
            "moniker": {
              "type": "string",
              "id": 3
            },
            "readonly": {
              "type": "bool",
              "id": 4
            },
            "transferrable": {
              "type": "bool",
              "id": 5
            },
            "ttl": {
              "type": "uint32",
              "id": 6
            },
            "consumedTime": {
              "type": "google.protobuf.Timestamp",
              "id": 7
            },
            "issuer": {
              "type": "string",
              "id": 8
            },
            "stake": {
              "type": "StakeContext",
              "id": 13
            },
            "context": {
              "type": "StateContext",
              "id": 14
            },
            "data": {
              "type": "google.protobuf.Any",
              "id": 50
            }
          }
        },
        "ForgeState": {
          "fields": {
            "address": {
              "type": "string",
              "id": 1
            },
            "consensus": {
              "type": "ConsensusParams",
              "id": 2
            },
            "tasks": {
              "keyType": "uint64",
              "type": "UpgradeTasks",
              "id": 3
            },
            "stakeSummary": {
              "keyType": "uint32",
              "type": "StakeSummary",
              "id": 4
            },
            "version": {
              "type": "string",
              "id": 5
            },
            "dataVersion": {
              "type": "string",
              "id": 6
            },
            "forgeAppHash": {
              "type": "bytes",
              "id": 7
            },
            "token": {
              "type": "ForgeToken",
              "id": 8
            },
            "txConfig": {
              "type": "TransactionConfig",
              "id": 9
            },
            "stakeConfig": {
              "type": "StakeConfig",
              "id": 10
            },
            "pokeConfig": {
              "type": "PokeConfig",
              "id": 11
            },
            "data": {
              "type": "google.protobuf.Any",
              "id": 15
            }
          }
        },
        "RootState": {
          "fields": {
            "address": {
              "type": "string",
              "id": 1
            },
            "account": {
              "type": "bytes",
              "id": 2
            },
            "asset": {
              "type": "bytes",
              "id": 3
            },
            "receipt": {
              "type": "bytes",
              "id": 4
            }
          }
        },
        "StakeState": {
          "fields": {
            "address": {
              "type": "string",
              "id": 1
            },
            "from": {
              "type": "string",
              "id": 2
            },
            "to": {
              "type": "string",
              "id": 3
            },
            "balance": {
              "type": "BigUint",
              "id": 4
            },
            "message": {
              "type": "string",
              "id": 5
            },
            "context": {
              "type": "StateContext",
              "id": 14
            },
            "data": {
              "type": "google.protobuf.Any",
              "id": 15
            }
          }
        },
        "StatisticsState": {
          "fields": {
            "address": {
              "type": "string",
              "id": 1
            },
            "numBlocks": {
              "type": "uint64",
              "id": 2
            },
            "numTxs": {
              "type": "uint64",
              "id": 3
            },
            "numStakes": {
              "type": "BigUint",
              "id": 4
            },
            "numValidators": {
              "type": "uint32",
              "id": 5
            },
            "txStatistics": {
              "type": "TxStatistics",
              "id": 6
            }
          }
        },
        "BlacklistState": {
          "fields": {
            "address": {
              "rule": "repeated",
              "type": "string",
              "id": 1
            }
          }
        },
        "RequestCreateTx": {
          "fields": {
            "itx": {
              "type": "google.protobuf.Any",
              "id": 1
            },
            "from": {
              "type": "string",
              "id": 2
            },
            "nonce": {
              "type": "uint64",
              "id": 3
            },
            "wallet": {
              "type": "WalletInfo",
              "id": 4
            },
            "token": {
              "type": "string",
              "id": 5
            }
          }
        },
        "ResponseCreateTx": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "tx": {
              "type": "Transaction",
              "id": 2
            }
          }
        },
        "RequestMultisig": {
          "fields": {
            "tx": {
              "type": "Transaction",
              "id": 1
            },
            "data": {
              "type": "google.protobuf.Any",
              "id": 2
            },
            "wallet": {
              "type": "WalletInfo",
              "id": 3
            },
            "token": {
              "type": "string",
              "id": 4
            }
          }
        },
        "ResponseMultisig": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "tx": {
              "type": "Transaction",
              "id": 2
            }
          }
        },
        "RequestSendTx": {
          "fields": {
            "tx": {
              "type": "Transaction",
              "id": 1
            },
            "wallet": {
              "type": "WalletInfo",
              "id": 2
            },
            "token": {
              "type": "string",
              "id": 3
            },
            "commit": {
              "type": "bool",
              "id": 4
            }
          }
        },
        "ResponseSendTx": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "hash": {
              "type": "string",
              "id": 2
            }
          }
        },
        "RequestGetTx": {
          "fields": {
            "hash": {
              "type": "string",
              "id": 1
            }
          }
        },
        "ResponseGetTx": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "info": {
              "type": "TransactionInfo",
              "id": 2
            }
          }
        },
        "RequestGetBlock": {
          "fields": {
            "height": {
              "type": "uint64",
              "id": 1
            }
          }
        },
        "ResponseGetBlock": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "block": {
              "type": "BlockInfo",
              "id": 2
            }
          }
        },
        "RequestGetBlocks": {
          "fields": {
            "paging": {
              "type": "PageInput",
              "id": 1
            },
            "minHeight": {
              "type": "uint64",
              "id": 2
            },
            "maxHeight": {
              "type": "uint64",
              "id": 3
            },
            "emptyExcluded": {
              "type": "bool",
              "id": 4
            }
          }
        },
        "ResponseGetBlocks": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "page": {
              "type": "PageInfo",
              "id": 2
            },
            "blocks": {
              "rule": "repeated",
              "type": "BlockInfo",
              "id": 3
            }
          }
        },
        "RequestCreateWallet": {
          "fields": {
            "passphrase": {
              "type": "string",
              "id": 1
            },
            "type": {
              "type": "WalletType",
              "id": 2
            },
            "moniker": {
              "type": "string",
              "id": 3
            }
          }
        },
        "ResponseCreateWallet": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "token": {
              "type": "string",
              "id": 2
            },
            "wallet": {
              "type": "WalletInfo",
              "id": 3
            }
          }
        },
        "RequestLoadWallet": {
          "fields": {
            "address": {
              "type": "string",
              "id": 1
            },
            "passphrase": {
              "type": "string",
              "id": 2
            }
          }
        },
        "ResponseLoadWallet": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "token": {
              "type": "string",
              "id": 2
            },
            "wallet": {
              "type": "WalletInfo",
              "id": 3
            }
          }
        },
        "RequestRecoverWallet": {
          "fields": {
            "data": {
              "type": "bytes",
              "id": 1
            },
            "type": {
              "type": "WalletType",
              "id": 2
            },
            "passphrase": {
              "type": "string",
              "id": 3
            },
            "moniker": {
              "type": "string",
              "id": 4
            }
          }
        },
        "ResponseRecoverWallet": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "token": {
              "type": "string",
              "id": 2
            },
            "wallet": {
              "type": "WalletInfo",
              "id": 3
            }
          }
        },
        "RequestListWallet": {
          "fields": {}
        },
        "ResponseListWallet": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "address": {
              "type": "string",
              "id": 2
            }
          }
        },
        "RequestRemoveWallet": {
          "fields": {
            "address": {
              "type": "string",
              "id": 1
            }
          }
        },
        "ResponseRemoveWallet": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            }
          }
        },
        "RequestDeclareNode": {
          "fields": {
            "validator": {
              "type": "bool",
              "id": 1
            }
          }
        },
        "ResponseDeclareNode": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "wallet": {
              "type": "WalletInfo",
              "id": 3
            }
          }
        },
        "RequestGetAccountState": {
          "fields": {
            "address": {
              "type": "string",
              "id": 1
            },
            "keys": {
              "rule": "repeated",
              "type": "string",
              "id": 2
            },
            "height": {
              "type": "uint64",
              "id": 3
            }
          }
        },
        "ResponseGetAccountState": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "state": {
              "type": "AccountState",
              "id": 2
            }
          }
        },
        "RequestGetAssetState": {
          "fields": {
            "address": {
              "type": "string",
              "id": 1
            },
            "keys": {
              "rule": "repeated",
              "type": "string",
              "id": 2
            },
            "height": {
              "type": "uint64",
              "id": 3
            }
          }
        },
        "ResponseGetAssetState": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "state": {
              "type": "AssetState",
              "id": 2
            }
          }
        },
        "RequestGetStakeState": {
          "fields": {
            "address": {
              "type": "string",
              "id": 1
            },
            "keys": {
              "rule": "repeated",
              "type": "string",
              "id": 2
            },
            "height": {
              "type": "uint64",
              "id": 3
            }
          }
        },
        "ResponseGetStakeState": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "state": {
              "type": "StakeState",
              "id": 2
            }
          }
        },
        "RequestGetForgeState": {
          "fields": {
            "keys": {
              "rule": "repeated",
              "type": "string",
              "id": 1
            },
            "height": {
              "type": "uint64",
              "id": 3
            }
          }
        },
        "ResponseGetForgeState": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "state": {
              "type": "ForgeState",
              "id": 2
            }
          }
        },
        "RequestStoreFile": {
          "fields": {
            "chunk": {
              "type": "bytes",
              "id": 1
            }
          }
        },
        "ResponseStoreFile": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "hash": {
              "type": "string",
              "id": 2
            }
          }
        },
        "RequestLoadFile": {
          "fields": {
            "hash": {
              "type": "string",
              "id": 1
            }
          }
        },
        "ResponseLoadFile": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "chunk": {
              "type": "bytes",
              "id": 2
            }
          }
        },
        "RequestPinFile": {
          "fields": {
            "hash": {
              "type": "string",
              "id": 1
            }
          }
        },
        "ResponsePinFile": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            }
          }
        },
        "RequestGetChainInfo": {
          "fields": {}
        },
        "ResponseGetChainInfo": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "info": {
              "type": "ChainInfo",
              "id": 2
            }
          }
        },
        "RequestGetNodeInfo": {
          "fields": {}
        },
        "ResponseGetNodeInfo": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "info": {
              "type": "NodeInfo",
              "id": 2
            }
          }
        },
        "RequestSearch": {
          "fields": {
            "key": {
              "type": "string",
              "id": 1
            },
            "value": {
              "type": "string",
              "id": 2
            }
          }
        },
        "ResponseSearch": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "txs": {
              "rule": "repeated",
              "type": "TransactionInfo",
              "id": 2
            }
          }
        },
        "RequestGetUnconfirmedTxs": {
          "fields": {
            "limit": {
              "type": "uint32",
              "id": 1
            }
          }
        },
        "ResponseGetUnconfirmedTxs": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "unconfirmedTxs": {
              "type": "UnconfirmedTxs",
              "id": 2
            }
          }
        },
        "RequestGetNetInfo": {
          "fields": {}
        },
        "ResponseGetNetInfo": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "netInfo": {
              "type": "NetInfo",
              "id": 2
            }
          }
        },
        "RequestGetValidatorsInfo": {
          "fields": {}
        },
        "ResponseGetValidatorsInfo": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "validatorsInfo": {
              "type": "ValidatorsInfo",
              "id": 2
            }
          }
        },
        "RequestSubscribe": {
          "fields": {
            "type": {
              "type": "TopicType",
              "id": 1
            },
            "filter": {
              "type": "string",
              "id": 2
            }
          }
        },
        "ResponseSubscribe": {
          "oneofs": {
            "value": {
              "oneof": [
                "topic",
                "transfer",
                "accountMigrate",
                "confirm",
                "createAsset",
                "exchange",
                "revoke",
                "beginBlock",
                "endBlock",
                "declare",
                "updateAsset",
                "consensusUpgrade",
                "declareFile",
                "sysUpgrade",
                "stake",
                "accountState",
                "assetState",
                "forgeState",
                "stakeState"
              ]
            }
          },
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "topic": {
              "type": "string",
              "id": 2
            },
            "transfer": {
              "type": "Transaction",
              "id": 3
            },
            "accountMigrate": {
              "type": "Transaction",
              "id": 4
            },
            "confirm": {
              "type": "Transaction",
              "id": 5
            },
            "createAsset": {
              "type": "Transaction",
              "id": 6
            },
            "exchange": {
              "type": "Transaction",
              "id": 7
            },
            "revoke": {
              "type": "Transaction",
              "id": 8
            },
            "beginBlock": {
              "type": "abci_vendor.RequestBeginBlock",
              "id": 16
            },
            "endBlock": {
              "type": "abci_vendor.RequestEndBlock",
              "id": 17
            },
            "declare": {
              "type": "Transaction",
              "id": 19
            },
            "updateAsset": {
              "type": "Transaction",
              "id": 20
            },
            "consensusUpgrade": {
              "type": "Transaction",
              "id": 21
            },
            "declareFile": {
              "type": "Transaction",
              "id": 22
            },
            "sysUpgrade": {
              "type": "Transaction",
              "id": 23
            },
            "stake": {
              "type": "Transaction",
              "id": 24
            },
            "accountState": {
              "type": "Transaction",
              "id": 129
            },
            "assetState": {
              "type": "Transaction",
              "id": 130
            },
            "forgeState": {
              "type": "Transaction",
              "id": 131
            },
            "stakeState": {
              "type": "Transaction",
              "id": 132
            }
          }
        },
        "RequestUnsubscribe": {
          "fields": {
            "topic": {
              "type": "string",
              "id": 1
            }
          }
        },
        "ResponseUnsubscribe": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            }
          }
        },
        "RequestGetConfig": {
          "fields": {}
        },
        "ResponseGetConfig": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "config": {
              "type": "string",
              "id": 2
            }
          }
        },
        "ByDay": {
          "fields": {
            "startDate": {
              "type": "string",
              "id": 1
            },
            "endDate": {
              "type": "string",
              "id": 2
            }
          }
        },
        "ByHour": {
          "fields": {
            "date": {
              "type": "string",
              "id": 1
            }
          }
        },
        "RequestGetForgeStatistics": {
          "oneofs": {
            "value": {
              "oneof": [
                "dayInfo",
                "date"
              ]
            }
          },
          "fields": {
            "dayInfo": {
              "type": "ByDay",
              "id": 1
            },
            "date": {
              "type": "ByHour",
              "id": 2
            }
          }
        },
        "ResponseGetForgeStatistics": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "forgeStatistics": {
              "type": "ForgeStatistics",
              "id": 2
            }
          }
        },
        "RequestListTransactions": {
          "fields": {
            "paging": {
              "type": "PageInput",
              "id": 1
            },
            "timeFilter": {
              "type": "TimeFilter",
              "id": 2
            },
            "addressFilter": {
              "type": "AddressFilter",
              "id": 3
            },
            "typeFilter": {
              "type": "TypeFilter",
              "id": 4
            }
          }
        },
        "ResponseListTransactions": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "page": {
              "type": "PageInfo",
              "id": 2
            },
            "transactions": {
              "rule": "repeated",
              "type": "IndexedTransaction",
              "id": 3
            }
          }
        },
        "RequestGetAssetAddress": {
          "fields": {
            "senderAddress": {
              "type": "string",
              "id": 1
            },
            "itx": {
              "type": "CreateAssetTx",
              "id": 2
            },
            "walletType": {
              "type": "WalletType",
              "id": 3
            }
          }
        },
        "ResponseGetAssetAddress": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "assetAddress": {
              "type": "string",
              "id": 2
            }
          }
        },
        "RequestSignData": {
          "fields": {
            "data": {
              "type": "bytes",
              "id": 1
            },
            "wallet": {
              "type": "WalletInfo",
              "id": 2
            },
            "token": {
              "type": "string",
              "id": 3
            }
          }
        },
        "ResponseSignData": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "signature": {
              "type": "bytes",
              "id": 2
            }
          }
        },
        "RequestGetAssets": {
          "fields": {
            "paging": {
              "type": "PageInput",
              "id": 1
            },
            "ownerAddress": {
              "type": "string",
              "id": 2
            }
          }
        },
        "ResponseGetAssets": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "page": {
              "type": "PageInfo",
              "id": 2
            },
            "assets": {
              "rule": "repeated",
              "type": "IndexedAssetState",
              "id": 3
            }
          }
        },
        "RequestGetStakes": {
          "fields": {
            "paging": {
              "type": "PageInput",
              "id": 1
            },
            "addressFilter": {
              "type": "AddressFilter",
              "id": 2
            }
          }
        },
        "ResponseGetStakes": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "page": {
              "type": "PageInfo",
              "id": 2
            },
            "stakes": {
              "rule": "repeated",
              "type": "IndexedStakeState",
              "id": 3
            }
          }
        },
        "RequestGetTopAccounts": {
          "fields": {
            "paging": {
              "type": "PageInput",
              "id": 1
            }
          }
        },
        "ResponseGetTopAccounts": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "page": {
              "type": "PageInfo",
              "id": 2
            },
            "accounts": {
              "rule": "repeated",
              "type": "IndexedAccountState",
              "id": 3
            }
          }
        },
        "RequestListAssetTransactions": {
          "fields": {
            "paging": {
              "type": "PageInput",
              "id": 1
            },
            "address": {
              "type": "string",
              "id": 2
            }
          }
        },
        "ResponseListAssetTransactions": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "page": {
              "type": "PageInfo",
              "id": 2
            },
            "transactions": {
              "rule": "repeated",
              "type": "IndexedTransaction",
              "id": 3
            }
          }
        },
        "RequestListBlocks": {
          "fields": {
            "paging": {
              "type": "PageInput",
              "id": 1
            },
            "proposer": {
              "type": "string",
              "id": 2
            },
            "timeFilter": {
              "type": "TimeFilter",
              "id": 3
            },
            "heightFilter": {
              "type": "HeightFilter",
              "id": 4
            },
            "numTxsFilter": {
              "type": "NumTxsFilter",
              "id": 5
            },
            "numInvalidTxsFilter": {
              "type": "NumInvalidTxsFilter",
              "id": 6
            }
          }
        },
        "ResponseListBlocks": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "page": {
              "type": "PageInfo",
              "id": 2
            },
            "blocks": {
              "rule": "repeated",
              "type": "IndexedBlock",
              "id": 3
            }
          }
        },
        "RequestListAssets": {
          "fields": {
            "paging": {
              "type": "PageInput",
              "id": 1
            },
            "ownerAddress": {
              "type": "string",
              "id": 2
            }
          }
        },
        "ResponseListAssets": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "page": {
              "type": "PageInfo",
              "id": 2
            },
            "account": {
              "type": "IndexedAccountState",
              "id": 3
            },
            "assets": {
              "rule": "repeated",
              "type": "IndexedAssetState",
              "id": 4
            }
          }
        },
        "RequestGetHealthStatus": {
          "fields": {}
        },
        "ResponseGetHealthStatus": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "healthStatus": {
              "type": "HealthStatus",
              "id": 2
            }
          }
        },
        "RequestStartSimulator": {
          "fields": {}
        },
        "ResponseStartSimulator": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "result": {
              "type": "string",
              "id": 2
            }
          }
        },
        "RequestStopSimulator": {
          "fields": {}
        },
        "ResponseStopSimulator": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "result": {
              "type": "string",
              "id": 2
            }
          }
        },
        "RequestGetSimulatorStatus": {
          "fields": {}
        },
        "ResponseGetSimulatorStatus": {
          "fields": {
            "code": {
              "type": "StatusCode",
              "id": 1
            },
            "result": {
              "type": "string",
              "id": 2
            }
          }
        },
        "AccountMigrateTx": {
          "fields": {
            "pk": {
              "type": "bytes",
              "id": 1
            },
            "type": {
              "type": "WalletType",
              "id": 2
            },
            "data": {
              "type": "google.protobuf.Any",
              "id": 15
            }
          }
        },
        "ConsensusUpgradeTx": {
          "fields": {
            "validators": {
              "rule": "repeated",
              "type": "Validator",
              "id": 1
            },
            "maxBytes": {
              "type": "uint64",
              "id": 2
            },
            "maxGas": {
              "type": "sint64",
              "id": 3
            },
            "maxValidators": {
              "type": "uint32",
              "id": 4
            },
            "maxCandidates": {
              "type": "uint32",
              "id": 5
            },
            "data": {
              "type": "google.protobuf.Any",
              "id": 15
            }
          }
        },
        "ConsumeAssetTx": {
          "fields": {
            "issuer": {
              "type": "string",
              "id": 1
            },
            "address": {
              "type": "string",
              "id": 2
            },
            "data": {
              "type": "google.protobuf.Any",
              "id": 15
            }
          }
        },
        "CreateAssetTx": {
          "fields": {
            "moniker": {
              "type": "string",
              "id": 1
            },
            "data": {
              "type": "google.protobuf.Any",
              "id": 2
            },
            "readonly": {
              "type": "bool",
              "id": 3
            },
            "transferrable": {
              "type": "bool",
              "id": 4
            },
            "ttl": {
              "type": "uint32",
              "id": 5
            },
            "parent": {
              "type": "string",
              "id": 6
            }
          }
        },
        "DeclareTx": {
          "fields": {
            "moniker": {
              "type": "string",
              "id": 1
            },
            "issuer": {
              "type": "string",
              "id": 2
            },
            "data": {
              "type": "google.protobuf.Any",
              "id": 15
            }
          }
        },
        "DeclareFileTx": {
          "fields": {
            "hash": {
              "type": "string",
              "id": 1
            }
          }
        },
        "ExchangeInfo": {
          "fields": {
            "value": {
              "type": "BigUint",
              "id": 1
            },
            "assets": {
              "rule": "repeated",
              "type": "string",
              "id": 2
            }
          }
        },
        "ExchangeTx": {
          "fields": {
            "to": {
              "type": "string",
              "id": 1
            },
            "sender": {
              "type": "ExchangeInfo",
              "id": 2
            },
            "receiver": {
              "type": "ExchangeInfo",
              "id": 3
            },
            "expiredAt": {
              "type": "google.protobuf.Timestamp",
              "id": 4
            },
            "data": {
              "type": "google.protobuf.Any",
              "id": 15
            }
          }
        },
        "stakeForAsset": {
          "fields": {}
        },
        "stakeForChain": {
          "fields": {}
        },
        "StakeForNode": {
          "fields": {}
        },
        "stakeForUser": {
          "fields": {}
        },
        "StakeTx": {
          "fields": {
            "to": {
              "type": "string",
              "id": 1
            },
            "value": {
              "type": "BigSint",
              "id": 2
            },
            "message": {
              "type": "string",
              "id": 3
            },
            "data": {
              "type": "google.protobuf.Any",
              "id": 15
            }
          }
        },
        "SysUpgradeTx": {
          "fields": {
            "task": {
              "type": "UpgradeTask",
              "id": 1
            },
            "gracePeriod": {
              "type": "uint64",
              "id": 2
            },
            "data": {
              "type": "google.protobuf.Any",
              "id": 15
            }
          }
        },
        "TransferTx": {
          "fields": {
            "to": {
              "type": "string",
              "id": 1
            },
            "value": {
              "type": "BigUint",
              "id": 2
            },
            "assets": {
              "rule": "repeated",
              "type": "string",
              "id": 3
            },
            "data": {
              "type": "google.protobuf.Any",
              "id": 15
            }
          }
        },
        "UpdateAssetTx": {
          "fields": {
            "address": {
              "type": "string",
              "id": 1
            },
            "moniker": {
              "type": "string",
              "id": 2
            },
            "data": {
              "type": "google.protobuf.Any",
              "id": 15
            }
          }
        },
        "PokeTx": {
          "fields": {
            "date": {
              "type": "string",
              "id": 1
            },
            "address": {
              "type": "string",
              "id": 2
            },
            "data": {
              "type": "google.protobuf.Any",
              "id": 15
            }
          }
        },
        "PageOrder": {
          "fields": {
            "field": {
              "type": "string",
              "id": 1
            },
            "type": {
              "type": "string",
              "id": 2
            }
          }
        },
        "PageInput": {
          "fields": {
            "cursor": {
              "type": "string",
              "id": 1
            },
            "size": {
              "type": "uint32",
              "id": 2
            },
            "order": {
              "rule": "repeated",
              "type": "PageOrder",
              "id": 3
            }
          }
        },
        "TypeFilter": {
          "fields": {
            "types": {
              "rule": "repeated",
              "type": "string",
              "id": 1
            }
          }
        },
        "TimeFilter": {
          "fields": {
            "startDateTime": {
              "type": "string",
              "id": 1
            },
            "endDateTime": {
              "type": "string",
              "id": 2
            }
          }
        },
        "Direction": {
          "values": {
            "mutual": 0,
            "one_way": 1,
            "union": 2
          }
        },
        "AddressFilter": {
          "fields": {
            "sender": {
              "type": "string",
              "id": 1
            },
            "receiver": {
              "type": "string",
              "id": 2
            },
            "direction": {
              "type": "Direction",
              "id": 3
            }
          }
        },
        "PageInfo": {
          "fields": {
            "cursor": {
              "type": "string",
              "id": 1
            },
            "next": {
              "type": "bool",
              "id": 2
            },
            "total": {
              "type": "uint32",
              "id": 3
            }
          }
        },
        "IndexedTransaction": {
          "oneofs": {
            "value": {
              "oneof": [
                "consumeAsset",
                "createAsset",
                "exchange",
                "transfer",
                "updateAsset"
              ]
            }
          },
          "fields": {
            "hash": {
              "type": "string",
              "id": 1
            },
            "sender": {
              "type": "string",
              "id": 2
            },
            "receiver": {
              "type": "string",
              "id": 3
            },
            "time": {
              "type": "string",
              "id": 4
            },
            "type": {
              "type": "string",
              "id": 5
            },
            "tx": {
              "type": "Transaction",
              "id": 6
            },
            "consumeAsset": {
              "type": "IndexedConsumeAsset",
              "id": 7
            },
            "createAsset": {
              "type": "IndexedCreateAsset",
              "id": 8
            },
            "exchange": {
              "type": "IndexedExchange",
              "id": 9
            },
            "transfer": {
              "type": "IndexedTransfer",
              "id": 10
            },
            "updateAsset": {
              "type": "IndexedUpdateAsset",
              "id": 11
            }
          }
        },
        "IndexedAccountState": {
          "fields": {
            "address": {
              "type": "string",
              "id": 1
            },
            "balance": {
              "type": "BigUint",
              "id": 2
            },
            "numAssets": {
              "type": "uint64",
              "id": 3
            },
            "numTxs": {
              "type": "uint64",
              "id": 4
            },
            "nonce": {
              "type": "uint64",
              "id": 5
            },
            "genesisTime": {
              "type": "string",
              "id": 6
            },
            "renaissanceTime": {
              "type": "string",
              "id": 7
            },
            "moniker": {
              "type": "string",
              "id": 8
            },
            "migratedFrom": {
              "type": "string",
              "id": 9
            },
            "migratedTo": {
              "type": "string",
              "id": 10
            },
            "totalReceivedStakes": {
              "type": "BigUint",
              "id": 11
            },
            "totalStakes": {
              "type": "BigUint",
              "id": 12
            },
            "totalUnstakes": {
              "type": "BigUint",
              "id": 13
            },
            "recentNumTxs": {
              "rule": "repeated",
              "type": "uint64",
              "id": 14
            }
          }
        },
        "IndexedAssetState": {
          "fields": {
            "address": {
              "type": "string",
              "id": 1
            },
            "owner": {
              "type": "string",
              "id": 2
            },
            "genesisTime": {
              "type": "string",
              "id": 3
            },
            "renaissanceTime": {
              "type": "string",
              "id": 4
            },
            "moniker": {
              "type": "string",
              "id": 5
            },
            "readonly": {
              "type": "bool",
              "id": 6
            }
          }
        },
        "IndexedStakeState": {
          "fields": {
            "address": {
              "type": "string",
              "id": 1
            },
            "balance": {
              "type": "BigUint",
              "id": 2
            },
            "sender": {
              "type": "string",
              "id": 3
            },
            "receiver": {
              "type": "string",
              "id": 4
            },
            "genesisTime": {
              "type": "string",
              "id": 5
            },
            "renaissanceTime": {
              "type": "string",
              "id": 6
            },
            "message": {
              "type": "string",
              "id": 7
            },
            "type": {
              "type": "uint32",
              "id": 8
            }
          }
        },
        "IndexedConsumeAsset": {
          "fields": {
            "asset": {
              "type": "string",
              "id": 1
            }
          }
        },
        "IndexedCreateAsset": {
          "fields": {
            "asset": {
              "type": "string",
              "id": 1
            }
          }
        },
        "IndexedExchange": {
          "fields": {
            "senderAssets": {
              "rule": "repeated",
              "type": "string",
              "id": 1
            },
            "receiverAssets": {
              "rule": "repeated",
              "type": "string",
              "id": 2
            }
          }
        },
        "IndexedTransfer": {
          "fields": {
            "assets": {
              "rule": "repeated",
              "type": "string",
              "id": 1
            }
          }
        },
        "IndexedUpdateAsset": {
          "fields": {
            "asset": {
              "type": "string",
              "id": 1
            }
          }
        },
        "HeightFilter": {
          "fields": {
            "fromHeight": {
              "type": "uint64",
              "id": 1
            },
            "toHeight": {
              "type": "uint64",
              "id": 2
            }
          }
        },
        "NumTxsFilter": {
          "fields": {
            "minNumTxs": {
              "type": "uint64",
              "id": 1
            },
            "maxNumTxs": {
              "type": "uint64",
              "id": 2
            }
          }
        },
        "NumInvalidTxsFilter": {
          "fields": {
            "minNumInvalidTxs": {
              "type": "uint64",
              "id": 1
            },
            "maxNumInvalidTxs": {
              "type": "uint64",
              "id": 2
            }
          }
        },
        "IndexedBlock": {
          "fields": {
            "height": {
              "type": "uint64",
              "id": 1
            },
            "time": {
              "type": "string",
              "id": 2
            },
            "proposer": {
              "type": "string",
              "id": 3
            },
            "numTxs": {
              "type": "uint64",
              "id": 4
            },
            "numInvalidTxs": {
              "type": "uint64",
              "id": 5
            }
          }
        },
        "HealthStatus": {
          "fields": {
            "consensus": {
              "type": "ConsensusStatus",
              "id": 1
            },
            "network": {
              "type": "NetworkStatus",
              "id": 2
            },
            "storage": {
              "type": "StorageStatus",
              "id": 3
            },
            "forge": {
              "type": "ForgeStatus",
              "id": 4
            }
          }
        },
        "ConsensusStatus": {
          "fields": {
            "health": {
              "type": "bool",
              "id": 1
            },
            "synced": {
              "type": "bool",
              "id": 2
            },
            "blockHeight": {
              "type": "uint64",
              "id": 3
            }
          }
        },
        "NetworkStatus": {
          "fields": {
            "health": {
              "type": "bool",
              "id": 1
            },
            "numPeers": {
              "type": "uint32",
              "id": 2
            }
          }
        },
        "StorageStatus": {
          "fields": {
            "health": {
              "type": "bool",
              "id": 1
            },
            "indexerServer": {
              "type": "string",
              "id": 2
            },
            "stateDb": {
              "type": "string",
              "id": 3
            },
            "diskSpace": {
              "type": "DiskSpaceStatus",
              "id": 4
            }
          }
        },
        "DiskSpaceStatus": {
          "fields": {
            "forgeUsage": {
              "type": "string",
              "id": 1
            },
            "total": {
              "type": "string",
              "id": 2
            }
          }
        },
        "ForgeStatus": {
          "fields": {
            "health": {
              "type": "bool",
              "id": 1
            },
            "abiServer": {
              "type": "string",
              "id": 2
            },
            "forgeWeb": {
              "type": "string",
              "id": 3
            },
            "abciServer": {
              "type": "AbciServerStatus",
              "id": 4
            }
          }
        },
        "AbciServerStatus": {
          "fields": {
            "abciConsensus": {
              "type": "string",
              "id": 1
            },
            "abciInfo": {
              "type": "string",
              "id": 2
            }
          }
        },
        "ChainRpc": {
          "methods": {
            "create_tx": {
              "requestType": "RequestCreateTx",
              "responseType": "ResponseCreateTx"
            },
            "multisig": {
              "requestType": "RequestMultisig",
              "responseType": "ResponseMultisig"
            },
            "send_tx": {
              "requestType": "RequestSendTx",
              "responseType": "ResponseSendTx"
            },
            "get_tx": {
              "requestType": "RequestGetTx",
              "requestStream": true,
              "responseType": "ResponseGetTx",
              "responseStream": true
            },
            "get_block": {
              "requestType": "RequestGetBlock",
              "requestStream": true,
              "responseType": "ResponseGetBlock",
              "responseStream": true
            },
            "get_blocks": {
              "requestType": "RequestGetBlocks",
              "responseType": "ResponseGetBlocks"
            },
            "get_unconfirmed_txs": {
              "requestType": "RequestGetUnconfirmedTxs",
              "responseType": "ResponseGetUnconfirmedTxs"
            },
            "get_chain_info": {
              "requestType": "RequestGetChainInfo",
              "responseType": "ResponseGetChainInfo"
            },
            "get_node_info": {
              "requestType": "RequestGetNodeInfo",
              "responseType": "ResponseGetNodeInfo"
            },
            "search": {
              "requestType": "RequestSearch",
              "responseType": "ResponseSearch"
            },
            "get_net_info": {
              "requestType": "RequestGetNetInfo",
              "responseType": "ResponseGetNetInfo"
            },
            "get_validators_info": {
              "requestType": "RequestGetValidatorsInfo",
              "responseType": "ResponseGetValidatorsInfo"
            },
            "get_config": {
              "requestType": "RequestGetConfig",
              "responseType": "ResponseGetConfig"
            },
            "get_asset_address": {
              "requestType": "RequestGetAssetAddress",
              "responseType": "ResponseGetAssetAddress"
            },
            "sign_data": {
              "requestType": "RequestSignData",
              "responseType": "ResponseSignData"
            },
            "start_simulator": {
              "requestType": "RequestStartSimulator",
              "responseType": "ResponseStartSimulator"
            },
            "stop_simulator": {
              "requestType": "RequestStopSimulator",
              "responseType": "ResponseStopSimulator"
            },
            "get_simulator_status": {
              "requestType": "RequestGetSimulatorStatus",
              "responseType": "ResponseGetSimulatorStatus"
            }
          }
        },
        "EventRpc": {
          "methods": {
            "subscribe": {
              "requestType": "RequestSubscribe",
              "responseType": "ResponseSubscribe",
              "responseStream": true
            },
            "unsubscribe": {
              "requestType": "RequestUnsubscribe",
              "responseType": "ResponseUnsubscribe"
            }
          }
        },
        "FileRpc": {
          "methods": {
            "store_file": {
              "requestType": "RequestStoreFile",
              "requestStream": true,
              "responseType": "ResponseStoreFile"
            },
            "load_file": {
              "requestType": "RequestLoadFile",
              "responseType": "ResponseLoadFile",
              "responseStream": true
            },
            "pin_file": {
              "requestType": "RequestPinFile",
              "responseType": "ResponsePinFile"
            }
          }
        },
        "StateRpc": {
          "methods": {
            "get_account_state": {
              "requestType": "RequestGetAccountState",
              "requestStream": true,
              "responseType": "ResponseGetAccountState",
              "responseStream": true
            },
            "get_asset_state": {
              "requestType": "RequestGetAssetState",
              "requestStream": true,
              "responseType": "ResponseGetAssetState",
              "responseStream": true
            },
            "get_stake_state": {
              "requestType": "RequestGetStakeState",
              "requestStream": true,
              "responseType": "ResponseGetStakeState",
              "responseStream": true
            },
            "get_forge_state": {
              "requestType": "RequestGetForgeState",
              "responseType": "ResponseGetForgeState"
            }
          }
        },
        "WalletRpc": {
          "methods": {
            "create_wallet": {
              "requestType": "RequestCreateWallet",
              "responseType": "ResponseCreateWallet"
            },
            "load_wallet": {
              "requestType": "RequestLoadWallet",
              "responseType": "ResponseLoadWallet"
            },
            "recover_wallet": {
              "requestType": "RequestRecoverWallet",
              "responseType": "ResponseRecoverWallet"
            },
            "list_wallet": {
              "requestType": "RequestListWallet",
              "responseType": "ResponseListWallet",
              "responseStream": true
            },
            "remove_wallet": {
              "requestType": "RequestRemoveWallet",
              "responseType": "ResponseRemoveWallet"
            },
            "declare_node": {
              "requestType": "RequestDeclareNode",
              "responseType": "ResponseDeclareNode"
            }
          }
        },
        "StatisticRpc": {
          "methods": {
            "get_forge_statistics": {
              "requestType": "RequestGetForgeStatistics",
              "responseType": "ResponseGetForgeStatistics"
            },
            "list_transactions": {
              "requestType": "RequestListTransactions",
              "responseType": "ResponseListTransactions"
            },
            "get_assets": {
              "requestType": "RequestGetAssets",
              "responseType": "ResponseGetAssets"
            },
            "get_stakes": {
              "requestType": "RequestGetStakes",
              "responseType": "ResponseGetStakes"
            },
            "get_top_accounts": {
              "requestType": "RequestGetTopAccounts",
              "responseType": "ResponseGetTopAccounts"
            },
            "list_asset_transactions": {
              "requestType": "RequestListAssetTransactions",
              "responseType": "ResponseListAssetTransactions"
            },
            "list_blocks": {
              "requestType": "RequestListBlocks",
              "responseType": "ResponseListBlocks"
            },
            "list_assets": {
              "requestType": "RequestListAssets",
              "responseType": "ResponseListAssets"
            },
            "get_health_status": {
              "requestType": "RequestGetHealthStatus",
              "responseType": "ResponseGetHealthStatus"
            }
          }
        }
      }
    },
    "google": {
      "nested": {
        "protobuf": {
          "nested": {
            "Timestamp": {
              "fields": {
                "seconds": {
                  "type": "int64",
                  "id": 1
                },
                "nanos": {
                  "type": "int32",
                  "id": 2
                }
              }
            },
            "Any": {
              "fields": {
                "type_url": {
                  "type": "string",
                  "id": 1
                },
                "value": {
                  "type": "bytes",
                  "id": 2
                }
              }
            }
          }
        }
      }
    },
    "abci_vendor": {
      "nested": {
        "KVPair": {
          "fields": {
            "key": {
              "type": "bytes",
              "id": 1
            },
            "value": {
              "type": "bytes",
              "id": 2
            }
          }
        },
        "ProofOp": {
          "fields": {
            "type": {
              "type": "string",
              "id": 1
            },
            "key": {
              "type": "bytes",
              "id": 2
            },
            "data": {
              "type": "bytes",
              "id": 3
            }
          }
        },
        "Proof": {
          "fields": {
            "ops": {
              "rule": "repeated",
              "type": "ProofOp",
              "id": 1
            }
          }
        },
        "BlockParams": {
          "fields": {
            "maxBytes": {
              "type": "int64",
              "id": 1
            },
            "maxGas": {
              "type": "int64",
              "id": 2
            }
          }
        },
        "EvidenceParams": {
          "fields": {
            "maxAge": {
              "type": "int64",
              "id": 1
            }
          }
        },
        "ValidatorParams": {
          "fields": {
            "pubKeyTypes": {
              "rule": "repeated",
              "type": "string",
              "id": 1
            }
          }
        },
        "ConsensusParams": {
          "fields": {
            "block": {
              "type": "BlockParams",
              "id": 1
            },
            "evidence": {
              "type": "EvidenceParams",
              "id": 2
            },
            "validator": {
              "type": "ValidatorParams",
              "id": 3
            }
          }
        },
        "LastCommitInfo": {
          "fields": {
            "round": {
              "type": "int32",
              "id": 1
            },
            "votes": {
              "rule": "repeated",
              "type": "VoteInfo",
              "id": 2
            }
          }
        },
        "Version": {
          "fields": {
            "Block": {
              "type": "uint64",
              "id": 1
            },
            "App": {
              "type": "uint64",
              "id": 2
            }
          }
        },
        "BlockID": {
          "fields": {
            "hash": {
              "type": "bytes",
              "id": 1
            },
            "partsHeader": {
              "type": "PartSetHeader",
              "id": 2
            }
          }
        },
        "PartSetHeader": {
          "fields": {
            "total": {
              "type": "int32",
              "id": 1
            },
            "hash": {
              "type": "bytes",
              "id": 2
            }
          }
        },
        "Validator": {
          "fields": {
            "address": {
              "type": "bytes",
              "id": 1
            },
            "power": {
              "type": "int64",
              "id": 3
            }
          }
        },
        "ValidatorUpdate": {
          "fields": {
            "pubKey": {
              "type": "PubKey",
              "id": 1
            },
            "power": {
              "type": "int64",
              "id": 2
            }
          }
        },
        "VoteInfo": {
          "fields": {
            "validator": {
              "type": "Validator",
              "id": 1
            },
            "signedLastBlock": {
              "type": "bool",
              "id": 2
            }
          }
        },
        "PubKey": {
          "fields": {
            "type": {
              "type": "string",
              "id": 1
            },
            "data": {
              "type": "bytes",
              "id": 2
            }
          }
        },
        "Evidence": {
          "fields": {
            "type": {
              "type": "string",
              "id": 1
            },
            "validator": {
              "type": "Validator",
              "id": 2
            },
            "height": {
              "type": "int64",
              "id": 3
            },
            "time": {
              "type": "google.protobuf.Timestamp",
              "id": 4
            },
            "totalVotingPower": {
              "type": "int64",
              "id": 5
            }
          }
        },
        "Header": {
          "fields": {
            "version": {
              "type": "Version",
              "id": 1
            },
            "chainId": {
              "type": "string",
              "id": 2
            },
            "height": {
              "type": "int64",
              "id": 3
            },
            "time": {
              "type": "google.protobuf.Timestamp",
              "id": 4
            },
            "numTxs": {
              "type": "int64",
              "id": 5
            },
            "totalTxs": {
              "type": "int64",
              "id": 6
            },
            "lastBlockId": {
              "type": "BlockID",
              "id": 7
            },
            "lastCommitHash": {
              "type": "bytes",
              "id": 8
            },
            "dataHash": {
              "type": "bytes",
              "id": 9
            },
            "validatorsHash": {
              "type": "bytes",
              "id": 10
            },
            "nextValidatorsHash": {
              "type": "bytes",
              "id": 11
            },
            "consensusHash": {
              "type": "bytes",
              "id": 12
            },
            "appHash": {
              "type": "bytes",
              "id": 13
            },
            "lastResultsHash": {
              "type": "bytes",
              "id": 14
            },
            "evidenceHash": {
              "type": "bytes",
              "id": 15
            },
            "proposerAddress": {
              "type": "bytes",
              "id": 16
            }
          }
        },
        "RequestEcho": {
          "fields": {
            "message": {
              "type": "string",
              "id": 1
            }
          }
        },
        "RequestFlush": {
          "fields": {}
        },
        "RequestInfo": {
          "fields": {
            "version": {
              "type": "string",
              "id": 1
            },
            "blockVersion": {
              "type": "uint64",
              "id": 2
            },
            "p2pVersion": {
              "type": "uint64",
              "id": 3
            }
          }
        },
        "RequestSetOption": {
          "fields": {
            "key": {
              "type": "string",
              "id": 1
            },
            "value": {
              "type": "string",
              "id": 2
            }
          }
        },
        "RequestInitChain": {
          "fields": {
            "time": {
              "type": "google.protobuf.Timestamp",
              "id": 1
            },
            "chainId": {
              "type": "string",
              "id": 2
            },
            "consensusParams": {
              "type": "ConsensusParams",
              "id": 3
            },
            "validators": {
              "rule": "repeated",
              "type": "ValidatorUpdate",
              "id": 4
            },
            "appStateBytes": {
              "type": "bytes",
              "id": 5
            }
          }
        },
        "RequestQuery": {
          "fields": {
            "data": {
              "type": "bytes",
              "id": 1
            },
            "path": {
              "type": "string",
              "id": 2
            },
            "height": {
              "type": "int64",
              "id": 3
            },
            "prove": {
              "type": "bool",
              "id": 4
            }
          }
        },
        "RequestBeginBlock": {
          "fields": {
            "hash": {
              "type": "bytes",
              "id": 1
            },
            "header": {
              "type": "Header",
              "id": 2
            },
            "lastCommitInfo": {
              "type": "LastCommitInfo",
              "id": 3
            },
            "byzantineValidators": {
              "rule": "repeated",
              "type": "Evidence",
              "id": 4
            }
          }
        },
        "RequestCheckTx": {
          "fields": {
            "tx": {
              "type": "bytes",
              "id": 1
            }
          }
        },
        "RequestDeliverTx": {
          "fields": {
            "tx": {
              "type": "bytes",
              "id": 1
            }
          }
        },
        "RequestEndBlock": {
          "fields": {
            "height": {
              "type": "int64",
              "id": 1
            }
          }
        },
        "RequestCommit": {
          "fields": {}
        },
        "Request": {
          "oneofs": {
            "value": {
              "oneof": [
                "echo",
                "flush",
                "info",
                "setOption",
                "initChain",
                "query",
                "beginBlock",
                "checkTx",
                "deliverTx",
                "endBlock",
                "commit"
              ]
            }
          },
          "fields": {
            "echo": {
              "type": "RequestEcho",
              "id": 2
            },
            "flush": {
              "type": "RequestFlush",
              "id": 3
            },
            "info": {
              "type": "RequestInfo",
              "id": 4
            },
            "setOption": {
              "type": "RequestSetOption",
              "id": 5
            },
            "initChain": {
              "type": "RequestInitChain",
              "id": 6
            },
            "query": {
              "type": "RequestQuery",
              "id": 7
            },
            "beginBlock": {
              "type": "RequestBeginBlock",
              "id": 8
            },
            "checkTx": {
              "type": "RequestCheckTx",
              "id": 9
            },
            "deliverTx": {
              "type": "RequestDeliverTx",
              "id": 19
            },
            "endBlock": {
              "type": "RequestEndBlock",
              "id": 11
            },
            "commit": {
              "type": "RequestCommit",
              "id": 12
            }
          }
        },
        "ResponseException": {
          "fields": {
            "error": {
              "type": "string",
              "id": 1
            }
          }
        },
        "ResponseEcho": {
          "fields": {
            "message": {
              "type": "string",
              "id": 1
            }
          }
        },
        "ResponseFlush": {
          "fields": {}
        },
        "ResponseInfo": {
          "fields": {
            "data": {
              "type": "string",
              "id": 1
            },
            "version": {
              "type": "string",
              "id": 2
            },
            "appVersion": {
              "type": "uint64",
              "id": 3
            },
            "lastBlockHeight": {
              "type": "int64",
              "id": 4
            },
            "lastBlockAppHash": {
              "type": "bytes",
              "id": 5
            }
          }
        },
        "ResponseSetOption": {
          "fields": {
            "code": {
              "type": "uint32",
              "id": 1
            },
            "log": {
              "type": "string",
              "id": 3
            },
            "info": {
              "type": "string",
              "id": 4
            }
          }
        },
        "ResponseInitChain": {
          "fields": {
            "consensusParams": {
              "type": "ConsensusParams",
              "id": 1
            },
            "validators": {
              "rule": "repeated",
              "type": "ValidatorUpdate",
              "id": 2
            }
          }
        },
        "ResponseQuery": {
          "fields": {
            "code": {
              "type": "uint32",
              "id": 1
            },
            "log": {
              "type": "string",
              "id": 3
            },
            "info": {
              "type": "string",
              "id": 4
            },
            "index": {
              "type": "int64",
              "id": 5
            },
            "key": {
              "type": "bytes",
              "id": 6
            },
            "value": {
              "type": "bytes",
              "id": 7
            },
            "proof": {
              "type": "Proof",
              "id": 8
            },
            "height": {
              "type": "int64",
              "id": 9
            },
            "codespace": {
              "type": "string",
              "id": 10
            }
          }
        },
        "ResponseBeginBlock": {
          "fields": {
            "tags": {
              "rule": "repeated",
              "type": "KVPair",
              "id": 1
            }
          }
        },
        "ResponseCheckTx": {
          "fields": {
            "code": {
              "type": "uint32",
              "id": 1
            },
            "data": {
              "type": "bytes",
              "id": 2
            },
            "log": {
              "type": "string",
              "id": 3
            },
            "info": {
              "type": "string",
              "id": 4
            },
            "gasWanted": {
              "type": "int64",
              "id": 5
            },
            "gasUsed": {
              "type": "int64",
              "id": 6
            },
            "tags": {
              "rule": "repeated",
              "type": "KVPair",
              "id": 7
            },
            "codespace": {
              "type": "string",
              "id": 8
            }
          }
        },
        "ResponseDeliverTx": {
          "fields": {
            "code": {
              "type": "uint32",
              "id": 1
            },
            "data": {
              "type": "bytes",
              "id": 2
            },
            "log": {
              "type": "string",
              "id": 3
            },
            "info": {
              "type": "string",
              "id": 4
            },
            "gasWanted": {
              "type": "int64",
              "id": 5
            },
            "gasUsed": {
              "type": "int64",
              "id": 6
            },
            "tags": {
              "rule": "repeated",
              "type": "KVPair",
              "id": 7
            },
            "codespace": {
              "type": "string",
              "id": 8
            }
          }
        },
        "ResponseEndBlock": {
          "fields": {
            "validatorUpdates": {
              "rule": "repeated",
              "type": "ValidatorUpdate",
              "id": 1
            },
            "consensusParamUpdates": {
              "type": "ConsensusParams",
              "id": 2
            },
            "tags": {
              "rule": "repeated",
              "type": "KVPair",
              "id": 3
            }
          }
        },
        "ResponseCommit": {
          "fields": {
            "data": {
              "type": "bytes",
              "id": 2
            }
          }
        },
        "Response": {
          "oneofs": {
            "value": {
              "oneof": [
                "exception",
                "echo",
                "flush",
                "info",
                "setOption",
                "initChain",
                "query",
                "beginBlock",
                "checkTx",
                "deliverTx",
                "endBlock",
                "commit"
              ]
            }
          },
          "fields": {
            "exception": {
              "type": "ResponseException",
              "id": 1
            },
            "echo": {
              "type": "ResponseEcho",
              "id": 2
            },
            "flush": {
              "type": "ResponseFlush",
              "id": 3
            },
            "info": {
              "type": "ResponseInfo",
              "id": 4
            },
            "setOption": {
              "type": "ResponseSetOption",
              "id": 5
            },
            "initChain": {
              "type": "ResponseInitChain",
              "id": 6
            },
            "query": {
              "type": "ResponseQuery",
              "id": 7
            },
            "beginBlock": {
              "type": "ResponseBeginBlock",
              "id": 8
            },
            "checkTx": {
              "type": "ResponseCheckTx",
              "id": 9
            },
            "deliverTx": {
              "type": "ResponseDeliverTx",
              "id": 10
            },
            "endBlock": {
              "type": "ResponseEndBlock",
              "id": 11
            },
            "commit": {
              "type": "ResponseCommit",
              "id": 12
            }
          }
        },
        "RequestPing": {
          "fields": {}
        },
        "RequestBroadcastTx": {
          "fields": {
            "tx": {
              "type": "bytes",
              "id": 1
            }
          }
        },
        "ResponsePing": {
          "fields": {}
        },
        "ResponseBroadcastTx": {
          "fields": {
            "checkTx": {
              "type": "ResponseCheckTx",
              "id": 1
            },
            "deliverTx": {
              "type": "ResponseDeliverTx",
              "id": 2
            }
          }
        },
        "ABCIApplication": {
          "methods": {
            "Echo": {
              "requestType": "RequestEcho",
              "responseType": "ResponseEcho"
            },
            "Flush": {
              "requestType": "RequestFlush",
              "responseType": "ResponseFlush"
            },
            "Info": {
              "requestType": "RequestInfo",
              "responseType": "ResponseInfo"
            },
            "SetOption": {
              "requestType": "RequestSetOption",
              "responseType": "ResponseSetOption"
            },
            "DeliverTx": {
              "requestType": "RequestDeliverTx",
              "responseType": "ResponseDeliverTx"
            },
            "CheckTx": {
              "requestType": "RequestCheckTx",
              "responseType": "ResponseCheckTx"
            },
            "Query": {
              "requestType": "RequestQuery",
              "responseType": "ResponseQuery"
            },
            "Commit": {
              "requestType": "RequestCommit",
              "responseType": "ResponseCommit"
            },
            "InitChain": {
              "requestType": "RequestInitChain",
              "responseType": "ResponseInitChain"
            },
            "BeginBlock": {
              "requestType": "RequestBeginBlock",
              "responseType": "ResponseBeginBlock"
            },
            "EndBlock": {
              "requestType": "RequestEndBlock",
              "responseType": "ResponseEndBlock"
            }
          }
        }
      }
    }
  }
}