根據合約ABI,消息應該是合約。async
例如,貨幣合約的ABI被構造以下。工具
$ cleos get code -a currency.abi currency code hash: 9b9db1a7940503a88535517049e64467a6e8f4e9e03af15e9968ec89dd794975 saving abi to currency.abi $ cat currency.abi { "types": [{ "newTypeName": "AccountName", "type": "Name" } ], "structs": [{ "name": "transfer", "base": "", "fields": { "from": "AccountName", "to": "AccountName", "amount": "UInt64" } },{ "name": "account", "base": "", "fields": { "account": "Name", "balance": "UInt64" } } ], "actions": [{ "action": "transfer", "type": "transfer" } ], "tables": [{ "table": "account", "indextype": "i64", "keynames": [ "account" ], "keytype": [], "type": "account" } ] }
從上面的abi中,咱們能夠看到貨幣合約接受一個叫作transfer的操做,它接受帶有from,to和amount字段的消息。學習
$ ./cleos push message currency transfer '{"from":"currency","to":"tester","amount":50}' -S currency -S tester -p currency@active 1589302ms thread-0 main.cpp:271 operator() ] Converting argument to binary... 1589304ms thread-0 main.cpp:290 operator() ] Transaction result: { "transaction_id": "1c4911c0b277566dce4217edbbca0f688f7bdef761ed445ff31b31f286720057", "processed": { "refBlockNum": 1173, "refBlockPrefix": 2184027244, "expiration": "2017-08-24T18:28:07", "scope": [ "currency", "tester" ], "signatures": [], "messages": [{ "code": "currency", "type": "transfer", "authorization": [{ "account": "currency", "permission": "active" } ], "data": { "from": "currency", "to": "tester", "quantity": 50 }, "hex_data": "00000079b822651d00000000c84267a13200000000000000" } ], "output": [{ "notify": [{ "name": "tester", "output": { "notify": [], "sync_transactions": [], "async_transactions": [] } } ], "sync_transactions": [], "async_transactions": [] } ] } }
分享個《EOS智能合約與DApp開發入門教程》,歡迎你們來學習互動:區塊鏈
EOS教程code
本教程幫助你快速入門EOS區塊鏈去中心化應用的開發,內容涵蓋EOS工具鏈、帳戶與錢包、發行代幣、智能合約開發與部署、使用代碼與智能合約交互等核心知識點,最後綜合運用React和EOS的各知識點完成一個便籤DApp的開發。教程