全部产品

查询接口

更新时间:2019-08-27 00:30

合约平台提供很多查询接口,查询的对象主要围绕区块、交易、账户和合约。

查询区块头

QueryBlockHeader 用于查询指定的区块头,可按照区块高度 number 或者区块哈希 hash 查询目标区块头。

请求参数

以下两个参数必须使用其中一个。

参数 必选 类型 说明
block_number false number 目标区块高度值
hash false string 目标区块的哈希值,为 16 进制表示,需“0x”作为前缀。

示例 1

按照区块高度查询。

  1. chain.ctr.QueryBlockHeader({
  2. block_number: 30, // 实际按需赋值区块高度
  3. }, (err, data) => {
  4. console.log(data)
  5. })

示例 2

按照区块哈希查询。

  1. chain.ctr.QueryBlockHeader({
  2. hash: '0xe6eebd5b7a6eff8f0af9ac151160e59cc7ec98429822400fc78906c3895bc1aa', // 实际按需赋值哈希值
  3. }, (err, data) => {
  4. console.log(data)
  5. })

查询区块

QueryLastBlock

查询最后一个区块。该接口无需请求参数。

示例

  1. chain.ctr.QueryLastBlock({}, (err, data) => {
  2. console.log(data)
  3. })

QueryBlock

查询指定的区块,可按照区块高度 number 或者区块哈希 hash 查询目标区块。

请求参数

参数 必选 类型 说明
block_number false number 目标区块高度值
hash false string 目标区块的哈希值,为 16 进制表示,需“0x”作为前缀。

以上两个参数必须使用其中一个。

示例 1

按照区块高度查询。

  1. chain.ctr.QueryBlock({
  2. block_number: 30, // 实际按需赋值区块高度
  3. }, (err, data) => {
  4. console.log(data)
  5. })

示例 2

按照区块哈希查询。

  1. chain.ctr.QueryBlock({
  2. hash: '0xe6eebd5b7a6eff8f0af9ac151160e59cc7ec98429822400fc78906c3895bc1aa', // 实际按需赋值哈希值
  3. }, (err, data) => {
  4. console.log(data)
  5. })

查询交易

QueryTransaction 用于查询指定的交易,通过交易哈希查询。

请求参数

参数 必选 类型 说明
hash true string 目标交易的哈希值,为 16 进制表示,需“0x”作为前缀。

示例

  1. chain.ctr.QueryTransaction({
  2. hash: '0xf66621372a13c813fe978c060e11a93c28b75f90d2200b9fa700f21433a96a77' //按需配置
  3. }, (err, data) => {
  4. console.log('QueryTransaction:', data)
  5. })

查询收据

QueryTransactionReceipt 用于查询指定的交易收据,通过交易哈希查询。

请求参数

参数 必选 类型 说明
hash true string 目标交易的哈希值,为 16 进制表示,需“0x”作为前缀。

示例

  1. chain.ctr.QueryTransactionReceipt({
  2. hash: '0xf66621372a13c813fe978c060e11a93c28b75f90d2200b9fa700f21433a96a77' //按需配置
  3. }, (err, data) => {
  4. console.log('QueryTransactionReceipt:', data)
  5. })

查询账户

QueryAccount 用于查询指定账户,需给定目标账户的 name,接口会通过计算传入的 name 哈希值作为目标账户 identity;也可以直接给定目标账户的 identity 的 16 进制字符串,且以“0x”为前缀。

请求参数

参数 必选 类型 说明
from true string 目标账户 name(非“0x”前缀)或 identity 的 16 进制表示(以“0x”为前缀)。如果是 name,接口会通过计算 name 的哈希得到此账户 identity。

示例 1

使用账户 name

  1. chain.ctr.QueryAccount({
  2. from: 'Tester001'
  3. }, (err, data) => {
  4. console.log('QueryAccount:', data)
  5. })

示例 2

使用账户 identity 的 16 进制表示。

  1. chain.ctr.QueryAccount({
  2. from: '0xc60a9d48105950a0cca07a4c6320b98c303ad42d694a634529e8e1a0a16fcdb5'
  3. }, (err, data) => {
  4. console.log('QueryAccount:', data)
  5. })

查询合约账户

QueryContract 查询指定合约账户,需给定目标合约的 name,接口会通过计算传入的 name 哈希值作为目标合约 identity;也可以直接给定目标合约的 identity 的 16 进制字符串,且以“0x”为前缀。

请求参数

将以下参数整体封装为 object 传入。

参数 必选 类型 说明
from true string 目标合约 name(非“0x”前缀)或 identity 的 16 进制表示(以“0x”为前缀)。如果是 name,接口会通过计算 name 的哈希得到此合约。

示例

  1. contractName = 'contract'+Date.now()
  2. let myContract = chain.ctr.contract(contractName, abi)
  3. myContract.new(bytecode, {
  4. from: 'Tester001'
  5. }, (err, contract, data) => {
  6. console.log('contract deploy result:', data)
  7. // 查询刚部署的合约
  8. chain.ctr.QueryContract({
  9. from: contractName
  10. }, (err, data) => {
  11. console.log('QueryContract:', data)
  12. })
  13. })