注意:本文節(jié)選&翻譯自https://infinitexlabs.com/first-steps-in-eos-blockchain-development/
對搭建EOSIO開發(fā)環(huán)境感興趣的,也可以查看EOS官方的本地環(huán)境搭建教程:https://github.com/EOSIO/eos/wiki/Local-Environment
因文章較長,我分成了上中下三篇社付,本篇是下篇。
內(nèi)容簡介:
1唱蒸、為currency合約創(chuàng)建一個賬號
2敷矫、上傳currency合約到區(qū)塊鏈
3呈野、用currency合約交易
為“currency”合約創(chuàng)建一個賬號
這個被命名為“currency”的賬號將會被用于“currency”合約低矮。生成兩對 公鑰/私鑰,稍后將其分配為public-OwnerKey 和 public-ActiveKey被冒。
cd ~/eos/build/programs/cleos/
./cleos create key?# OwnerKey
./cleos create key?# ActiveKey
這將輸出以下格式的兩對公鑰和私鑰:
Private key: XXXXXXXXXXXXXXXXXXXXXXX
Public key: XXXXXXXXXXXXXXXXXXXXXXX
把兩個私鑰導(dǎo)入到錢包:
./cleos wallet import
./cleos wallet import
請注意军掂,如果你未指定錢包的名稱轮蜕,則將使用“默認(rèn)”。另外良姆,不要忘記保存你生成的密鑰肠虽。
通過 cleos create account 命令來創(chuàng)建賬號。該創(chuàng)建將會被eosio賬戶授權(quán)玛追。上面生成的兩個公鑰將與該賬戶關(guān)聯(lián)税课,一個作為其OwnerKey,另一個作為其ActiveKey痊剖。如果它執(zhí)行成功了韩玩,你應(yīng)該會得到一個JSON返回,并返回一個確認(rèn)其已成功執(zhí)行的事物ID陆馁。
./cleos create account eosio currency
executed transaction: f280ab10e0734f7d2ff3d84f84a4189c7e3f17b739469121bf28abcecbf6f1b1 364 bytes 1000 cycles
你可以通過下面的命令來校驗賬號是否已經(jīng)創(chuàng)建成功了
./cleos get account currency
如果一切順利找颓,你將得到一個類似下面格式的json數(shù)據(jù):
上傳“currency”合約樣本到區(qū)塊鏈
在上傳一個合約之前,你需要去校驗區(qū)塊鏈上還沒有這個合約
./cleos get code currency
code hash: 0000000000000000000000000000000000000000000000000000000000000000
使用currency賬戶上傳currency合約樣本叮贩。響應(yīng)應(yīng)該是帶有一些JSON的transaction_id击狮。這表示你的合同已成功上傳:
cleos set contract currency build/contracts/currency/ build/contracts/currency/currency.wast build/contracts/currency/currency.abi
同樣,你也可以通過以下命令校驗代碼已經(jīng)被設(shè)置:
./cleos get code currency
code hash: 9b9db1a7940503a88535517049e64467a6e8f4e9e03af15e9968ec89dd794975
在使用currency合約之前益老,你必須 create 然后 issue 合約:
./cleos push action currency create ‘{“issuer”:”currency”,”maximum_supply”:”1000000.0000 CUR”,”can_freeze”:”0”,”can_recall”:”0”,”can_whitelist”:”0”}’ —permission currency@active
./cleos push action currency issue ‘{“to”:”currency”,”quantity”:”1000.0000 CUR”,”memo”:””}’ —permission currency@active
然后校驗currency合約是否已經(jīng)有了合適的初始余額:
./cleos get table currency currency accounts
{ “rows”: [{ “balance”: “1000.0000 CUR”, “frozen: 0, “whitelist”: 1 } ], “more”: false }
通過“currency”合約轉(zhuǎn)賬
下面演示從 currency賬號轉(zhuǎn)賬 “20.0000 CUR” 到 “eosio”賬號彪蓬。一個成功的交易將生成一個交易ID和JSON輸出:
./cleos push action currency transfer ‘{“from”:”currency”,”to”:”eosio”,”quantity”:”20.0000 CUR”,”memo”:”my first transfer”}’ —permission currency@active
executed transaction: 943fc09b6ccc426d172fdda87c70e02eeb9934790b2f23ce6da298e98f06f07f 284 bytes 1000 cycles
>>?transfer
最后,我們校驗一下“currency”合約的余額:
檢查前一個交易涉及的兩個賬戶的狀態(tài)
./cleos get table currency eosio accounts
./cleos get table currency currency accounts
接收賬戶eosio現(xiàn)在有20的余額捺萌,發(fā)送賬戶的currency現(xiàn)在比最初的發(fā)行少20個档冬。
總結(jié):
我們首先安裝了EOSIO,并建立了我們的開發(fā)環(huán)境桃纯。然后酷誓,我們安裝了合約開發(fā)所需的可執(zhí)行程序,并且我們已經(jīng)開始了我們的第一個testnet節(jié)點态坦,它在區(qū)塊鏈上生成塊盐数。之后,我們學(xué)習(xí)如何生成公鑰/私鑰并將它們導(dǎo)入我們的錢包伞梯。我們使用公鑰- OwnerKey 和 ActiveKey 創(chuàng)建一個賬戶娘扩,并且我們部署了樣本currency合約。最后壮锻,我們使用currency合約進(jìn)行了一筆交易。
完涮阔。
相關(guān)閱讀: