EOS rpc 介面
阿新 • • 發佈:2019-01-30
get_info
獲取與節點相關的最新資訊
get_info 用法示例
curl http://127.0.0.1:8888/v1/chain/get_info
get_info結果示例
{ "server_version": "b2eb1667", "head_block_num": 259590, "last_irreversible_block_num": 259573, "head_block_id": "0003f60677f3707f0704f16177bf5f007ebd45eb6efbb749fb1c468747f72046", "head_block_time": "2017-12-10T17:05:36", "head_block_producer": "initp", "recent_slots": "1111111111111111111111111111111111111111111111111111111111111111", "participation_rate": "1.00000000000000000" }
get_block
獲取一個塊的資訊
get_block 用法示例
$ curl http://127.0.0.1:8888/v1/chain/get_block -X POST -d '{"block_num_or_id":5}'
$ curl http://127.0.0.1:8888/v1/chain/get_block -X POST -d '{"block_num_or_id":0000000445a9f27898383fd7de32835d5d6a978cc14ce40d9f327b5329de796b}'
get_block 結果示例
{ "previous": "0000000445a9f27898383fd7de32835d5d6a978cc14ce40d9f327b5329de796b", "timestamp": "2017-07-18T20:16:36", "transaction_merkle_root": "0000000000000000000000000000000000000000000000000000000000000000", "producer": "initf", "producer_changes": [ ], "producer_signature": "204cb94b3186c3b4a7f88be4e9db9f8af2ffdb7ef0f27a065c8177a5fcfacf876f684e59c39fb009903c0c59220b147bb07f1144df1c65d26c57b534a76dd29073", "cycles": [ ], "id":"000000050c0175cbf218a70131ddc3c3fab8b6e954edef77e0bfe7c36b599b1d", "block_num":5, "ref_block_prefix":27728114 }
get_account
獲取賬戶的資訊
get_account 用法示例
$ curl http://127.0.0.1:8888/v1/chain/get_account -X POST -d '{"account_name":"inita"}'
get_account 結果示例
{ "name": "inita", "eos_balance": "999998.9574 EOS", "staked_balance": "0.0000 EOS", "unstaking_balance": "0.0000 EOS", "last_unstaking_time": "2106-02-07T06:28:15", "permissions": [ { "name": "active", "parent": "owner", "required_auth": { "threshold": 1, "keys": [ { "key": "EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV", "weight": 1 } ], "accounts": [] } }, { "name": "owner", "parent": "owner", "required_auth": { "threshold": 1, "keys": [ { "key": "EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV", "weight": 1 } ], "accounts": [] } } ] }
get_code
獲取智慧合約程式碼
get_code 用法示例
$ curl http://127.0.0.1:8888/v1/chain/get_code -X POST -d '{"account_name":"currency"}'
get_code 結果示例
{
"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"]
}
]
}
}
get_table_rows
獲取智慧合約資料
get_table_rows 用法示例
$ curl http://127.0.0.1:8888/v1/chain/get_table_rows -X POST -d '{"scope":"inita", "code":"currency", "table":"account", "json": true}'
$ curl http://127.0.0.1:8888/v1/chain/get_table_rows -X POST -d '{"scope":"inita", "code":"currency", "table":"account", "json": true, "lower_bound":0, "upper_bound":-1, "limit":10}'
get_table_rows 結果示例
{
"rows": [
{
"account": "account",
"balance": 1000
}
],
"more": false
}
abi_json_to_bin
將json序列化為二進位制十六進位制。得到的二進位制十六進位制通常用於push_transaction中的資料欄位。
abi_json_to_bin 用法示例
$ curl http://127.0.0.1:8888/v1/chain/abi_json_to_bin -X POST -d '{"code":"currency", "action":"transfer", "args":{"from":"initb", "to":"initc", "quantity":1000}}'
abi_json_to_bin 結果示例
{
"binargs": "000000008093dd74000000000094dd74e803000000000000",
"required_scope": [],
"required_auth": []
}
abi_bin_to_json
將二進位制十六進位制序列化為json。
abi_bin_to_json 用法示例
$ curl http://127.0.0.1:8888/v1/chain/abi_bin_to_json -X POST -d '{"code":"currency", "action":"transfer", "binargs":"000000008093dd74000000000094dd74e803000000000000"}'
abi_bin_to_json 結果示例
{
"args": {
"from": "initb",
"to": "initc",
"quantity": 1000
},
"required_scope": [],
"required_auth": []
}
push_transaction
此方法預期採用JSON格式的事務,並將嘗試將其應用於區塊鏈。
成功的返回
成功時它將返回HTTP 200和事務ID。
{
"transaction_id": "..."
}
僅僅因為交易是在本地進行的,並不意味著交易已經被合併到一個區塊中。
錯誤的返回
如果發生錯誤,它將返回HTTP 400(無效引數)或500(內部伺服器錯誤)
HTTP/1.1 500 Internal Server Error
Content-Length: 1466
...error message...
push_transactions
該方法一次推送多個事務。
push_transactions 用法示例
curl http://localhost:8888/v1/chain/push_transaction -X POST -d '[{"ref_block_num":"101","ref_block_prefix":"4159312339","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":[]}, {"ref_block_num":"101","ref_block_prefix":"4159312339","expiration":"2017-09-25T06:28:49","scope":["inita","initc"],"actions":[{"code":"currency","type":"transfer","recipients":["inita","initc"],"authorization":[{"account":"inita","permission":"active"}],"data":"000000008040934b000000008041934be803000000000000"}],"signatures":[],"authorizations":[]}]'
get_required_keys
獲取必需的金鑰,從金鑰列表中籤署交易。
get_required_keys 用法示例
curl http://localhost:8888/v1/chain/get_required_keys -X POST -d '{"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_required_keys 結果示例
{
"required_keys": [
"EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV"
]
}
get_required_keys
獲取必需的金鑰,從金鑰列表中籤署交易。
get_required_keys 用法示例
curl http://localhost:8888/v1/chain/get_required_keys -X POST -d '{"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_required_keys 結果示例
{
"required_keys": [
"EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV"
]
}
錢包介面
wallet_create
用給定的名稱建立一個新的錢包.
wallet_create 用法示例
$ curl http://localhost:8889/v1/wallet/create -X POST -d '"default"'
wallet_create 結果示例
該命令將返回將來可用於解鎖錢包的密碼.
PW5KFWYKqvt63d4iNvedfDEPVZL227D3RQ1zpVFzuUwhMAJmRAYyX
wallet_open
開啟給定名稱的現有錢包.
wallet_open 用法示例
$ curl http://localhost:8889/v1/wallet/open -X POST -d '"default"'
wallet_open 結果示例
{}
wallet_lock_all
鎖定所有錢包.
wallet_lock_all 用法示例
$ curl http://localhost:8889/v1/wallet/lock_all
wallet_lock_all 結果示例
{}
wallet_unlock
用給定的名稱和密碼解鎖錢包.
wallet_unlock 用法示例
$ curl http://localhost:8889/v1/wallet/unlock -X POST -d '["default", "PW5KFWYKqvt63d4iNvedfDEPVZL227D3RQ1zpVFzuUwhMAJmRAYyX"]'
wallet_unlock 結果示例
{}
wallet_list
列出所有錢包.
wallet_list 用法示例
$ curl http://localhost:8889/v1/wallet/list_wallets
wallet_list 結果示例
["default *"]
wallet_list_keys
列出所有錢包中的所有金鑰對.
wallet_list_keys 用法示例
$ curl http://localhost:8889/v1/wallet/list_keys
wallet_list_keys 結果示例
[["EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV","5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"]]
wallet_get_public_keys
列出所有錢包中的所有公鑰.
wallet_get_public_keys 用法示例
$ curl http://localhost:8889/v1/wallet/get_public_keys
wallet_get_public_keys 結果示例
["EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV"]
wallet_set_timeout
設定錢包自動鎖定超時(以秒為單位).
wallet_set_timeout 用法示例
$ curl http://localhost:8889/v1/wallet/set_timeout -X POST -d '10'
wallet_set_timeout 結果示例
{}
wallet_sign_trx
給定一個事務陣列的簽名事務,需要公鑰和鏈ID.
wallet_sign_trx 用法示例
$ curl http://localhost:8889/v1/wallet/sign_transaction -X POST -d '[{"ref_block_num":21453,"ref_block_prefix":3165644999,"expiration":"2017-12-08T10:28:49","scope":["initb","initc"],"read_scope":[],"messages":[{"code":"currency","type":"transfer","authorization":[{"account":"initb","permission":"active"}],"data":"000000008093dd74000000000094dd74e803000000000000"}],"signatures":[]}, ["EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV"], ""]'```
wallet_sign_trx 結果示例
{
"ref_block_num": 21453,
"ref_block_prefix": 3165644999,
"expiration": "2017-12-08T10:28:49",
"scope": [
"initb",
"initc"
],
"read_scope": [],
"messages": [
{
"code": "currency",
"type": "transfer",
"authorization": [
{
"account": "initb",
"permission": "active"
}
],
"data": "000000008093dd74000000000094dd74e803000000000000"
}
],
"signatures": [
"1f393cc5ce6a6951fb53b11812345bcf14ffd978b07be386fd639eaf440bca7dca16b14833ec661ca0703d15e55a2a599a36d55ce78c4539433f6ce8bcee0158c3"
]
}