链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
来获取正确的签名。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。