乐趣区

EOSIO 指南(链API)

链 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 来获取正确的签名。

退出移动版