共计 10273 个字符,预计需要花费 26 分钟才能阅读完成。
链 API
get_info
返回包含区块链的各种详细信息的对象。
http://127.0.0.1:8888/v1/chain/get_info
Node
var request = require(“request”);
var options = {method: ‘POST’,
url: ‘http://127.0.0.1:8888/v1/chain/get_info’ };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
响应
{
“server_version”: “d9ad8eec”,
“head_block_num”: 8592,
“last_irreversible_block_num”: 8591,
“head_block_id”: “00002190e805475db152be7d3f4f1a075efaed42827cd551b0e23c7feabbedac”,
“head_block_time”: “2018-04-27T17:40:34”,
“head_block_producer”: “eosio”
}
get_block
返回包含有关区块链上特定块的各种详细信息的对象。
http://127.0.0.1:8888/v1/chain/get_block
Node
var request = require(“request”);
var options = {method: ‘POST’,
url: ‘http://127.0.0.1:8888/v1/chain/get_block’ };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
body 参数
参数名
参数类型
描述
必要
示例
block_num_or_id
string
提供块编号或块 ID
是
5
响应
{
“previous”: “00000004471d48fe40706e73ce27f9cf7bac1704ae55279c7a58c0173718a711”,
“timestamp”: “2018-04-18T16:24:23.500”,
“transaction_mroot”: “e366c0cc3519bb0f2ddaec20928fa4d6aae546194bb1c4205c67be429147ed4a”,
“action_mroot”: “77e5e91b594ab4ebc44ebc8c7ecdc9d26409c5a07452d3b20a4840562fdeb658”,
“block_mroot”: “4ef85b0d212f3fffabdd65680d32dd7dded3461d9df226a6e3dc232e42978f8b”,
“producer”: “eosio”,
“schedule_version”: 0,
“new_producers”: null,
“producer_signature”: “EOSJzEdFDsueKCerL7a6AdxMxiT851cEiugFB7ux1PAGn5eMmco8j32NsaKupxibheQGVFEqyEdjMub67VZjKmsLzuNxxKtUA”,
“regions”: [{
“region”: 0,
“cycles_summary”: [
[{
“read_locks”: [],
“write_locks”: [],
“transactions”: [{
“status”: “executed”,
“kcpu_usage”: 2,
“net_usage_words”: 38,
“id”: “9880c128683e24845ccd282ebe026bd522f7fa9c6278d885f6ed35164c680669”
}]
}]
]
}],
“input_transactions”: [],
“id”: “000000056d75b0581b4fbb96affa36669a37173d21f46f8cb974f760e94bbe14”,
“block_num”: 5,
“ref_block_prefix”: 2528857883
}
get_block_header_state
http://127.0.0.1:8888/v1/chain/get_block_header_state
Node
var request = require(“request”);
var options = {method: ‘POST’,
url: ‘http://127.0.0.1:8888/v1/chain/get_block_header_state’ };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
body 参数
参数名
参数类型
描述
必要
示例
block_num_or_id
string
提供块编号或块 ID
否
1
get_account
返回一个对象,其中包含有关区块链上特定帐户的各种详细信息。
http://127.0.0.1:8888/v1/chain/get_account
Node
var request = require(“request”);
var options = {method: ‘POST’,
url: ‘http://127.0.0.1:8888/v1/chain/get_account’ };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
body 参数
参数名
参数类型
描述
必要
示例
account_name
string
提供帐户名称
是
eosio
响应
{
“account_name”: “eosio”,
“permissions”: [{
“perm_name”: “active”,
“parent”: “owner”,
“required_auth”: {
“threshold”: 1,
“keys”: [{
“key”: “EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV”,
“weight”: 1
}],
“accounts”: []
}
}, {
“perm_name”: “owner”,
“parent”: “”,
“required_auth”: {
“threshold”: 1,
“keys”: [{
“key”: “EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV”,
“weight”: 1
}],
“accounts”: []
}
}]
}
get_abi
http://127.0.0.1:8888/v1/chain/get_abi
Node
var request = require(“request”);
var options = {method: ‘POST’,
url: ‘http://127.0.0.1:8888/v1/chain/get_abi’ };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
body 参数
参数名
参数类型
描述
必要
示例
account_name
string
要检索 ABI 的帐户名称
否
eosio.token
get_code
返回一个对象,其中包含有关区块链上特定智能合约的各种详细信息。
http://127.0.0.1:8888/v1/chain/get_code
Node
var request = require(“request”);
var options = {method: ‘POST’,
url: ‘http://127.0.0.1:8888/v1/chain/get_code’ };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
body 参数
参数名
参数类型
描述
必要
示例
account_name
string
提供智能合约帐户名称
是
currency
响应
{
“name”:”currency”,
“code_hash”:”a1c8c84b4700c09c8edb83522237439e33cf011a4d7ace51075998bd002e04c9″,
“wast”:”(module\n (type $0 (func (param i64 i64 i32) (result i32)))\n …truncated”,
“abi”: {
“types”: [{
“new_type_name”: “account_name”,
“type”: “name”
}
],
“structs”: [{
“name”: “transfer”,
“base”: “”,
“fields”: [
{“name”:”from”, “type”:”account_name”},
{“name”:”to”, “type”:”account_name”},
{“name”:”quantity”, “type”:”uint64″}
]
},{
“name”: “account”,
“base”: “”,
“fields”: [
{“name”:”key”, “type”:”name”},
{“name”:”balance”, “type”:”uint64″}
]
}
],
“actions”: [{
“name”: “transfer”,
“type”: “transfer”
}
],
“tables”: [{
“name”: “account”,
“type”: “account”,
“index_type”: “i64”,
“key_names” : [“key”],
“key_types” : [“name”]
}
]
}
code_as_wasm 自 1.2.2 起已弃用。
get_raw_code_and_abi
http://127.0.0.1:8888/v1/chain/get_raw_code_and_abi
Node
var request = require(“request”);
var options = {method: ‘POST’,
url: ‘http://127.0.0.1:8888/v1/chain/get_raw_code_and_abi’ };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
body 参数
参数名
参数类型
描述
必要
示例
account_name
string
帐户名称以获取代码和 abi
否
eosio
get_table_rows
返回包含指定表中行的对象。
http://127.0.0.1:8888/v1/chain/get_table_rows
Node
var request = require(“request”);
var options = {method: ‘POST’,
url: ‘http://127.0.0.1:8888/v1/chain/get_table_rows’ };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
body 参数
参数名
参数类型
描述
必要
示例
scope
string
数据范围所在的帐户名称
是
inita
code
string
控制提供的表的智能合约的名称
是
currency
table
stirng
要查询的表的名称
是
account
table_key
string
否
inita
json
boolean
返回 json 对象或返回格式化的响应
是
true
lower_bound
string
过滤结果以返回不小于集合中提供的值的第一个元素
否
upper_bound
string
过滤结果以返回大于集合中提供的值的第一个元素
否
limit
int32
限制响应中返回的结果
否
10
index_position
string
使用的索引的位置,例如,1 表示主索引,2 表示次要索引,等等
否
1
key_type
string
index_position 指定的键的类型(例如:uint64_t 或 name)
否
encode_type
string
否
dec
响应
{
“rows”: [
{
“account”: “account”,
“balance”: 1000
}
],
“more”: false
}
get_table_by_scope
http://127.0.0.1:8888/v1/chain/get_table_by_scope
Node
var request = require(“request”);
var options = {method: ‘POST’,
url: ‘http://127.0.0.1:8888/v1/chain/get_table_by_scope’ };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
body 参数
参数名
参数类型
描述
必要
示例
code
string
返回表数据的合同的 name
是
table
string
按表过滤结果
否
0
lower_bound
string
过滤结果以返回不小于集合中提供的值的第一个元素
否
upper_bound
string
过滤结果以返回大于集合中提供的值的第一个元素
否
limit
int32
限制响应中返回的结果
否
10
get_currency_balance
http://127.0.0.1:8888/v1/chain/get_currency_balance
Node
var request = require(“request”);
var options = {method: ‘POST’,
url: ‘http://127.0.0.1:8888/v1/chain/get_currency_balance’ };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
查询参数
参数名
参数类型
描述
必要
示例
code
string
否
account
string
获取余额的账户
否
symbol
string
要查询的符号
否
abi_json_to_bin
将 json 序列化为二进制十六进制,生成的二进制十六进制通常用于 push_transaction 中的数据字段。
http://127.0.0.1:8888/v1/chain/abi_json_to_bin
Node
var request = require(“request”);
var options = {method: ‘POST’,
url: ‘http://127.0.0.1:8888/v1/chain/abi_json_to_bin’ };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
body 参数
参数名
参数类型
描述
必要
示例
code
string
提供帐户名称
否
currency
action
string
提供操作参数
否
transfer
args
json
提供 json 参数
否
{“from”:”eosio”,”to”:”eosio”,”quantity”:1000}
响应
{
“binargs”: “000000008093dd74000000000094dd74e803000000000000”,
“required_scope”: [],
“required_auth”: []
}
abi_bin_to_json
将二进制十六进制序列化为 json。
http://127.0.0.1:8888/v1/chain/abi_bin_to_json
Node
var request = require(“request”);
var options = {method: ‘POST’,
url: ‘http://127.0.0.1:8888/v1/chain/abi_bin_to_json’ };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
body 参数
参数名
参数类型
描述
必要
示例
code
string
提供帐户名称
是
currency
action
string
提供操作名称
是
transfer
binargs
string
提供二进制参数
是
响应
{
“args”: {
“from”: “initb”,
“to”: “initc”,
“quantity”: 1000
},
“required_scope”: [],
“required_auth”: []
}
get_required_keys
返回签名交易所需的密钥。
http://127.0.0.1:8888/v1/chain/get_required_keys
Node
var request = require(“request”);
var options = {method: ‘POST’,
url: ‘http://127.0.0.1:8888/v1/chain/get_required_keys’ };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
body 参数
参数名
参数类型
描述
必要
示例
transaction
json
提供交易对象
是
available_keys
字符串数组
提供可用的密钥
是
响应
{
“required_keys”: [
“EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV”
]
}
示例
transaction
{
“ref_block_num”: “100”,
“ref_block_prefix”: “137469861”,
“expiration”: “2017-09-25T06:28:49”,
“scope”: [“initb”, “initc”],
“actions”: [{
“code”: “currency”,
“type”: “transfer”,
“recipients”: [“initb”, “initc”],
“authorization”: [{
“account”: “initb”,
“permission”: “active”
}],
“data”: “000000000041934b000000008041934be803000000000000”
}],
“signatures”: [],
“authorizations”: []
}
available_keys
[“EOS4toFS3YXEQCkuuw1aqDLrtHim86Gz9u3hBdcBw5KNPZcursVHq”,
“EOS7d9A3uLe6As66jzN8j44TXJUqJSK3bFjjEEqR4oTvNAB3iM9SA”,
“EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV”]
get_currency_stats
http://127.0.0.1:8888/v1/chain/get_currency_stats
Node
var request = require(“request”);
var options = {method: ‘POST’,
url: ‘http://127.0.0.1:8888/v1/chain/get_currency_stats’ };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
body 参数
参数名
参数类型
描述
必要
示例
code
string
否
symbol
string
获取统计数据的货币符号
否
SYS
get_producers
http://127.0.0.1:8888/v1/chain/get_producers
Node
var request = require(“request”);
var options = {method: ‘POST’,
url: ‘http://127.0.0.1:8888/v1/chain/get_producers’ };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
body 参数
参数名
参数类型
描述
必要
示例
limit
string
要检索的生产者总数
否
lower_bound
string
否
json
boolean
以 JSON 格式返回结果?
否
true
push_block
http://127.0.0.1:8888/v1/chain/push_block
Node
var request = require(“request”);
var options = {method: ‘POST’,
url: ‘http://127.0.0.1:8888/v1/chain/push_block’ };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
body 参数
参数名
参数类型
描述
必要
示例
timestamp
date-time
否
producer
string
否
confirmed
int32
否
0
previous
string
否
transaction_mroot
string
否
action_mroot
int32
否
0
version
string
否
new_producers
字符串数组
否
header_extensions
字符串数组
否
producer_signature
string
否
transactions
array
否
block_extensions
字符串数组
否
push_transaction
此方法需要 JSON 格式的交易,并尝试将其应用于区块链。
http://127.0.0.1:8888/v1/chain/push_transaction
Node
var request = require(“request”);
var options = {method: ‘POST’,
url: ‘http://127.0.0.1:8888/v1/chain/push_transaction’ };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
body 参数
参数名
参数类型
描述
必要
示例
signatures
字符串数组
授权交易所需的签名数组
否
compression
string
使用压缩,通常是 false
否
false
packed_context_free_data
string
json 到十六进制
否
packed_trx
string
json 十六进制
否
响应
{
‘transaction_id’ = “1…”
}
push_transactions
此方法需要 JSON 格式的交易,并尝试将其应用于区块链,此方法一次推送多个交易。
http://127.0.0.1:8888/v1/chain/push_transactions
Node
var request = require(“request”);
var options = {method: ‘POST’,
url: ‘http://127.0.0.1:8888/v1/chain/push_transactions’ };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
body 参数
参数名
参数类型
描述
必要
示例
body
json
提供交易的授权
否
响应
{
‘transaction_id’ = “1…”
}
这里的 ref_block_num 和 ref_block_prefix 是 last_irreversible_block 的 /v1/chain/get_block 的结果,可以通过调用 /v1/chain/get_info 找到 last_irreversible_block,你还需要使用 /v1/wallet/sign_transaction 来获取正确的签名。