合约平台提供很多查询接口,查询的对象主要围绕区块、交易、账户和合约。
查询区块头
QueryBlockHeader
用于查询指定的区块头,可按照区块高度 number
或者区块哈希 hash
查询目标区块头。
请求参数
以下两个参数必须使用其中一个。
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
block_number | false | number | 目标区块高度值 |
hash | false | string | 目标区块的哈希值,为 16 进制表示,需“0x”作为前缀。 |
示例 1
按照区块高度查询。
chain.ctr.QueryBlockHeader({
block_number: 30, // 实际按需赋值区块高度
}, (err, data) => {
console.log(data)
})
示例 2
按照区块哈希查询。
chain.ctr.QueryBlockHeader({
hash: '0xe6eebd5b7a6eff8f0af9ac151160e59cc7ec98429822400fc78906c3895bc1aa', // 实际按需赋值哈希值
}, (err, data) => {
console.log(data)
})
查询区块
QueryLastBlock
查询最后一个区块。该接口无需请求参数。
示例
chain.ctr.QueryLastBlock({}, (err, data) => {
console.log(data)
})
QueryBlock
查询指定的区块,可按照区块高度 number
或者区块哈希 hash
查询目标区块。
请求参数
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
block_number | false | number | 目标区块高度值 |
hash | false | string | 目标区块的哈希值,为 16 进制表示,需“0x”作为前缀。 |
以上两个参数必须使用其中一个。
示例 1
按照区块高度查询。
chain.ctr.QueryBlock({
block_number: 30, // 实际按需赋值区块高度
}, (err, data) => {
console.log(data)
})
示例 2
按照区块哈希查询。
chain.ctr.QueryBlock({
hash: '0xe6eebd5b7a6eff8f0af9ac151160e59cc7ec98429822400fc78906c3895bc1aa', // 实际按需赋值哈希值
}, (err, data) => {
console.log(data)
})
查询交易
QueryTransaction
用于查询指定的交易,通过交易哈希查询。
请求参数
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
hash | true | string | 目标交易的哈希值,为 16 进制表示,需“0x”作为前缀。 |
示例
chain.ctr.QueryTransaction({
hash: '0xf66621372a13c813fe978c060e11a93c28b75f90d2200b9fa700f21433a96a77' //按需配置
}, (err, data) => {
console.log('QueryTransaction:', data)
})
查询收据
QueryTransactionReceipt
用于查询指定的交易收据,通过交易哈希查询。
请求参数
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
hash | true | string | 目标交易的哈希值,为 16 进制表示,需“0x”作为前缀。 |
示例
chain.ctr.QueryTransactionReceipt({
hash: '0xf66621372a13c813fe978c060e11a93c28b75f90d2200b9fa700f21433a96a77' //按需配置
}, (err, data) => {
console.log('QueryTransactionReceipt:', data)
})
查询账户
QueryAccount
用于查询指定账户,需给定目标账户的 name
,接口会通过计算传入的 name
哈希值作为目标账户 identity
;也可以直接给定目标账户的 identity 的 16 进制字符串,且以“0x”为前缀。
请求参数
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
from | true | string | 目标账户 name(非“0x”前缀)或 identity 的 16 进制表示(以“0x”为前缀)。如果是 name ,接口会通过计算 name 的哈希得到此账户 identity。 |
示例 1
使用账户 name
。
chain.ctr.QueryAccount({
from: 'Tester001'
}, (err, data) => {
console.log('QueryAccount:', data)
})
示例 2
使用账户 identity 的 16 进制表示。
chain.ctr.QueryAccount({
from: '0xc60a9d48105950a0cca07a4c6320b98c303ad42d694a634529e8e1a0a16fcdb5'
}, (err, data) => {
console.log('QueryAccount:', data)
})
查询合约账户
QueryContract
查询指定合约账户,需给定目标合约的 name
,接口会通过计算传入的 name
哈希值作为目标合约 identity
;也可以直接给定目标合约的 identity 的 16 进制字符串,且以“0x”为前缀。
请求参数
将以下参数整体封装为 object 传入。
参数 | 必选 | 类型 | 说明 |
---|---|---|---|
from | true | string | 目标合约 name(非“0x”前缀)或 identity 的 16 进制表示(以“0x”为前缀)。如果是 name ,接口会通过计算 name 的哈希得到此合约。 |
示例
contractName = 'contract'+Date.now()
let myContract = chain.ctr.contract(contractName, abi)
myContract.new(bytecode, {
from: 'Tester001'
}, (err, contract, data) => {
console.log('contract deploy result:', data)
// 查询刚部署的合约
chain.ctr.QueryContract({
from: contractName
}, (err, data) => {
console.log('QueryContract:', data)
})
})
文档内容是否对您有帮助?