链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_tname
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_numref_block_prefixlast_irreversible_block/v1/chain/get_block的结果,可以通过调用/v1/chain/get_info找到last_irreversible_block,你还需要使用/v1/wallet/sign_transaction来获取正确的签名。

博弈
2.5k 声望1.5k 粉丝

态度决定一切


引用和评论

0 条评论