查询链上数据

getBlockByNum

通过高度查询区块内容。

getBlockByNum(blockNum)

参数

  1. blockNum(long)*

区块高度。

返回

Block 对象。

异常

IllegalException,参数不正确(如区块不存在)时抛出此异常。

示例

wrapper.getBlockByNum(10)

执行结果:

block_header {
    raw_data {
      timestamp: 1572510150000
      txTrieRoot: "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
      parentHash: "\000\000\000\000\000\000\000\t\210\236\253\326\027\343\241\240\324\030\255\243\330\203\241\002\217\372 \354\261\'{H"
      number: 10
      witness_address: "A\324\244\374\'C\357\b\310\216\265\256\316|\304\255\0327D\222\220"
      version: 9
    }
    witness_signature: "\354_\342^31\231\022\201\366\333S\335\324\334\317\034O\036\3439\347\344\377\252\371\251\020\264\277lj\032\005\241\261\255Tt\261\363\252v\250\0008\227W\356\371\rT\335\263;>=\314\366V\021\372?\003\001"
  }

getBlockByLatestNum

查询最新的若干个区块。

getBlockByLatestNum(num)

参数

  1. num(long)*

查询的块数,必须在 1-99 之间。

返回

BlockListExtention 对象。

异常

IllegalException,参数不在 1-99 之间时抛出此异常。

示例

wrapper.getBlockByLatestNum(2);

执行结果:

block {
    transactions {
      transaction {
        raw_data {
          ref_block_bytes: "w\v"
          ref_block_hash: "\307\3062\245\312;G\257"
          expiration: 1614763632000
          contract {
            type: TriggerSmartContract
            parameter {
              type_url: "type.googleapis.com/protocol.TriggerSmartContract"
              value: "\n\025A\006\001\273\365u\212\277P3\372\277`\022[L\262\216{\225J\022\025AN\034~z\227\027A\330T=\231\006\255\321\361\232\330\031KT\"D\251\005\234\273\000\000\000\000\000\000\000\000\000\000\000ASd\326\f\244\362\362<\346\025S\375\272/aZ\250\226\2026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\[email protected]"
            }
          }
          timestamp: 1614763575881
          fee_limit: 5000000
        }
        signature: "?\360\325:\[email protected]\017\340\244\265\026$\276\004\247\316\355\265\035\037m\343J\361H\367\224\211\333\341\317\037\002\350\215V\310\235c\023W\371?\322\v&\245k\356\a\230\323\032\234\370\034v\203\333\302/\252\340I\000"
        ret {
          contractRet: SUCCESS
        }
      }
      txid: "0\036\246\245\356!3\305A\a\270*;by$qPR\317\2517n\366Uc\377\017\034-\261\a"
      result {
        result: true
      }
    }
    ...
block_header {
    raw_data {
      timestamp: 1614763578000
      txTrieRoot: "\212\[email protected]\257\327\224fU\304k%\206\325O(\[email protected]\325!\353n>4\326+\377I\302\357\033"
      parentHash: "\000\000\000\000\000\324w\f\023y\365\200\350\2676\277\276e\266#\230\300\311Eh2u\330\021\346\276\205"
      number: 13924109
      witness_address: "Aw\024\200\351\353\2102\232\t9g\262\350\234\t\325K\273\023>"
      version: 20
    }
    witness_signature: "\2260\\\003\307\315\2213>\265\320\[email protected]\303\002<\244\234\2326\261%2\004\027\324\033\240d\v\031\371\021\213\323g\353jGc;\024\226nL\"6U\033\336\002\021\336\274\b\232\037o42\370\304D\335\000"
  }
  blockid: "\000\000\000\000\000\324w\rI<\363\300\345\251\024F\001i\016\231\267*I\200\316e\005\a\f\250\253\025"
}
...

getBlockByLimitNext

查询指定范围的区块。

getBlockByLimitNext(startNum, endNum)

参数

  1. startNum(long)*

起始块高度,包括此块。

  1. endNum(long)*

结束块高度,不包括该块。

返回

BlockListExtention 对象。

异常

IllegalException,参数不正确或者 startNum 和 endNum 之间相差超过100时抛出此异常。

示例

wrapper.getBlockByLimitNext(0,2);

执行结果:

block {
    transactions {
      transaction {
        raw_data {
          contract {
            type: TransferContract
            parameter {
              type_url: "type.googleapis.com/protocol.TransferContract"
              value: "\n\0270x000000000000000000000\022\025A~\225\344_Z`\314E\362\320\257\343~\351\367\177\270\316\237\377\030\200\200\216\306\233\377\355\257\001"
            }
          }
        }
      }
      txid: "\037\332\245\273v\343\301\245C\017}\211 \376,\353\310\022\n\024\310{:\234\2726\340\241\033h\265~"
      result {
        result: true
      }
    }
    ...
block_header {
    raw_data {
      txTrieRoot: "eV\251h($\215k\211\317\320H}L\357\202\2614\265TM\304(\310\242\030\276\262\333\205\253$"
      parentHash: "\345\2173\371\272\3710]\306\370+\237\0314\352\217\n\336-\357\271Q%\215P\026p(\307\2005\037"
      witness_address: "A new system must allow existing systems to be linked together without requiring any central control or coordination"
    }
  }
  blockid: "\000\000\000\000\000\000\000\000\326\230\324\031,V\313k\347$\245XD\216&\204\200-\344\326\315\206\220\334"
}

getNowBlock

查询最新块。

getNowBlock()

返回

Block 对象。

异常

IllegalException,查询最新块失败时抛出此异常。

示例

wrapper.getNowBlock();

执行结果:

transactions {
    raw_data {
      ref_block_bytes: "vy"
      ref_block_hash: "f\005\240\236L\371\307\221"
      expiration: 1614763188000
      contract {
        type: TriggerSmartContract
        parameter {
          type_url: "type.googleapis.com/protocol.TriggerSmartContract"
          value: "\n\025A\006\001\273\365u\212\277P3\372\277`\022[L\262\216{\225J\022\025AN\034~z\227\027A\330T=\231\006\255\321\361\232\330\031KT\"D\251\005\234\273\000\000\000\000\000\000\000\000\000\000\000ASd\326\f\244\362\362<\346\025S\375\272/aZ\250\226\2026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\[email protected]"
        }
      }
      timestamp: 1614763131403
      fee_limit: 5000000
    }
    signature: "H\0312\345e\227\033g\316\304\313\016R\275Sh\"N4\213\002S%\363q\252\373\rh\006\363\t|\263\225Q\001d?`R\2765 +#>\343\024\363\3107\371e\374\271\216rS\321\016H\325\364\001"
    ret {
      contractRet: SUCCESS
    }
  }
  ...
  block_header {
    raw_data {
      timestamp: 1614763134000
      txTrieRoot: "\000\275AwP\a\001f\344#\"\245\307\037\277\342\367\257\360\333\201\032]N\024Y+\341ac\2240"
      parentHash: "\000\000\000\000\000\324vz\003\0200\022\340\272\361A\337\245\212\341\035Q^2^\004M\325\201\347e}"
      number: 13923963
      witness_address: "A\fLd \037f\243\'\031\317\232\264\346\364\256\3263\vH\275"
      version: 20
    }
    witness_signature: "\315\002\203>\v\254\310\363\'M\332\315`bJ\\\263\023\317\034B\251\032\363\303i\276\246\2269\325Ee\211v\375k9\003X\tZ\3756\266\237\r4\025\257\362\3270\276\032\212-\026\266}\347d\260\037\000"
  }

getTransactionById

按交易哈希查询交易。

getTransactionById(txID)

参数

  1. txID(String)*

交易 ID,即交易哈希,HEX 格式。

返回

Transaction 对象。

异常

IllegalException,参数不正确时抛出此异常。

示例

wrapper.getTransactionById("786c7516df88941e33ea44f03e637bd8c1ddcfd058634574102c6e3cfb93de0d");

执行结果:

raw_data {
    ref_block_bytes: "T("
    ref_block_hash: "\236\255\354O\002\260\333\266"
    expiration: 1606991088000
    contract {
      type: TriggerSmartContract
      parameter {
        type_url: "type.googleapis.com/protocol.TriggerSmartContract"
        value: "\n\025A,\303\3379\362\325AU\361\\\016\213q)Xr5\346\322X\022\025A \343\347\200\310\016\373\362#\310\371\266\334\310\f\016\336\v\033\345\"\244\002\365W#Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\316{\'\346\270\270\346\210\217\347\274\226\345\217\267\':\'GN001208300ZK\',\'\346\270\270\346\210\217\345\271\263\345\217\260\':\'AG\346\227\227\350\210\260\345\216\205\',\'\346\270\270\346\210\217\347\261\273\345\236\213\':\'\347\231\276\345\256\266\344\271\220\',\'\346\270\270\346\210\217\347\273\223\346\236\234\':\'\345\272\2048\351\227\2623\',\'\345\210\233\345\273\272\346\227\266\351\227\264\':\'Mon Aug 31 01:55:24 PST 2020\',\'\346\210\252\346\255\242\346\227\245\346\234\237\':\'Mon Aug 31 01:55:49 PST 2020\'}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
      }
    }
    timestamp: 1606991030518
    fee_limit: 1000000
  }
  signature: "\271\325\213%\214\256\316\3778\304\206m\346\363!h\355i\374\304\212\337\332\227\032\271\363\261\300\262\362*S\306\272{\027\264\003\302\271\335)\210\017\360\243\"\216\325\335\333\360Wu\2265\205y\356\336\344F\000\001"
  ret {
    contractRet: SUCCESS
  }

getTransactionInfoById

查询交易的 Info 信息,包括交易的 fee 信息,所在区块,虚拟机 log 等。

getTransactionInfoById(txID)

参数

  1. txID(String)*

交易 ID,即交易哈希, HEX 格式。

返回

TransactionInfo 对象。

异常

IllegalException,参数不正确时抛出此异常。

示例

wrapper.getTransactionInfoById("786c7516df88941e33ea44f03e637bd8c1ddcfd058634574102c6e3cfb93de0d");

执行结果:

id: "xlu\026\337\210\224\0363\352D\360>c{\330\301\335\317\320XcEt\020,n<\373\223\336\r"
  fee: 202080
  blockNumber: 11359274
  blockTimeStamp: 1606991034000
  contractResult: ""
  contract_address: "A \343\347\200\310\016\373\362#\310\371\266\334\310\f\016\336\v\033\345"
  receipt {
    energy_fee: 179280
    energy_usage_total: 4482
    net_fee: 22800
    result: SUCCESS
  }
  log {
    address: " \343\347\200\310\016\373\362#\310\371\266\334\310\f\016\336\v\033\345"
    topics: "\262tu\a\244n\032\274\354\241\234N\271W)&\301\206\342\fd\2204\250\r\321\254.\302\034\262q"
    data: "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\316{\'\346\270\270\346\210\217\347\274\226\345\217\267\':\'GN001208300ZK\',\'\346\270\270\346\210\217\345\271\263\345\217\260\':\'AG\346\227\227\350\210\260\345\216\205\',\'\346\270\270\346\210\217\347\261\273\345\236\213\':\'\347\231\276\345\256\266\344\271\220\',\'\346\270\270\346\210\217\347\273\223\346\236\234\':\'\345\272\2048\351\227\2623\',\'\345\210\233\345\273\272\346\227\266\351\227\264\':\'Mon Aug 31 01:55:24 PST 2020\',\'\346\210\252\346\255\242\346\227\245\346\234\237\':\'Mon Aug 31 01:55:49 PST 2020\'}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
  }

getTransactionInfoByBlockNum

获取特定区块的所有交易 Info 信息。

getTransactionInfoByBlockNum(blockNum)

参数

  1. blockNum(long)*

区块高度。

返回

TransactionInfoList 对象。

异常

IllegalException,参数不正确或查不到交易时抛出此异常。

示例

wrapper.getTransactionInfoByBlockNum(11359274);

执行结果:

transactionInfo {
    id: "xlu\026\337\210\224\0363\352D\360>c{\330\301\335\317\320XcEt\020,n<\373\223\336\r"
    fee: 202080
    blockNumber: 11359274
    blockTimeStamp: 1606991034000
    contractResult: ""
    contract_address: "A \343\347\200\310\016\373\362#\310\371\266\334\310\f\016\336\v\033\345"
    receipt {
      energy_fee: 179280
      energy_usage_total: 4482
      net_fee: 22800
      result: SUCCESS
    }
    log {
      address: " \343\347\200\310\016\373\362#\310\371\266\334\310\f\016\336\v\033\345"
      topics: "\262tu\a\244n\032\274\354\241\234N\271W)&\301\206\342\fd\2204\250\r\321\254.\302\034\262q"
      data: "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\316{\'\346\270\270\346\210\217\347\274\226\345\217\267\':\'GN001208300ZK\',\'\346\270\270\346\210\217\345\271\263\345\217\260\':\'AG\346\227\227\350\210\260\345\216\205\',\'\346\270\270\346\210\217\347\261\273\345\236\213\':\'\347\231\276\345\256\266\344\271\220\',\'\346\270\270\346\210\217\347\273\223\346\236\234\':\'\345\272\2048\351\227\2623\',\'\345\210\233\345\273\272\346\227\266\351\227\264\':\'Mon Aug 31 01:55:24 PST 2020\',\'\346\210\252\346\255\242\346\227\245\346\234\237\':\'Mon Aug 31 01:55:49 PST 2020\'}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
    }
  }
 ...

listNodes

查询当前节点所连接的节点信息。

listNodes()

返回

NodeList 对象。

异常

IllegalException,查新节点信息失败时抛出此异常。

示例

wrapper.listNodes();

执行结果:

nodes {
    address {
      host: "47.252.73.173"
      port: 18888
    }
  }
  ...

getNodeInfo

查询当前节点的信息。

getNodeInfo()

返回

NodeInfo 对象。

异常

IllegalException,查询节点信息失败时抛出此异常。

示例

wrapper.getNodeInfo();

执行结果:

beginSyncNum: 13924273
  block: "Num:13924292,ID:0000000000d477c4eb847d840e2be648712eaaccdc965f90c70d14a4f68b1bcf"
  solidityBlock: "Num:13924274,ID:0000000000d477b281ec179f56a8f5bdeeb1a8ab7e2531fe139ca2b82e4a9a1e"
  currentConnectCount: 30
  activeConnectCount: 3
  passiveConnectCount: 27
  totalFlow: 5258156
  peerInfoList {
    ...
  }
  ...
 configNodeInfo {
  ...
 }
 machineInfo {
  ...
  }
  ...
}

getChainParameters

查询当前所有提案参数,超级代表可以提议修改这些参数。

getChainParameters()

返回

ChainParameters 对象。

异常

IllegalException,查新提案参数失败时抛出此异常。

示例

wrapper.getChainParameters();

执行结果:

chainParameter {
    key: "getMaintenanceTimeInterval"
    value: 600000
  }
  ...