EOSIO開發(二)執行合約樣例

2021-08-23 12:40:45 字數 2347 閱讀 6849

本文將介紹如何在docker環境下,使用系統自帶的合約」currency」,實現建立錢包 - 建立賬戶 - 執行合約的完整流程。

docker pull eosio/eos

啟動nodeos節點

docker run --name nodeos -p 8888:8888 -p 9876:9876 -t eosio/eos /opt/eosio/bin/nodeosd.sh arg1 arg2

進入nodeos節點除錯介面,後續的命令都在該介面中執行。

docker exec -it nodeos /bin/bash
通過cleos wallet create命令建立錢包。

cleos wallet create

建立成功後,會生成乙個隨機密碼。

將bios合約關聯到eosio賬戶上,它將使eosio賬戶獲得超級管理員許可權,能夠直接操控其它賬戶的資源以及執行特殊api。

cleos set contract eosio ../contracts/eosio.bios -p
為賬戶建立ownerkey和activekey,注意 create key 命令需要執行兩次。

cleos create key # ownerkey 

cleos create key # activekey

這兩次命令將生成兩組private key和public key,分別對應ownerkey和activekey。

ownerkey

activekey

分別將兩組private key匯入錢包

cleos wallet import

cleos wallet import

通過cleos create account命令建立currency賬戶,並由eosio賬戶為其授權。

cleos create account eosio currency \\
驗證currency賬戶是否建立成功。

cleos get account currency
看到下面的賬戶資訊,則說明建立成功。

上傳之前,驗證區塊鏈中是否已經存在currency賬戶

cleos get code currency
如果返回hash code都為0,則說明賬戶不存在

上傳currency賬戶

cleos set contract currency contracts/currency
再次驗證currency賬戶是否已經存在

cleos get code currency
hash code不為0,上傳成功。

執行currency合約的create action與issue action,

cleos push action currency create '' --permission currency@active 

cleos push action currency issue '' --permission currency@active

執行完畢後,驗證currency賬戶中的餘額(balance)是否已經正確初始化。

cleos get table currency currency accounts
可以看到balance的值為1000.0000 cur,初始化成功。

現在我們通過智慧型合約來執行一次轉賬操作,從currency賬戶轉賬20.0000 cur到eosio賬戶。

轉賬之前看看兩個賬戶的餘額。

cleos get table currency currency accounts 

cleos get table currency eosio accounts

currency賬戶的餘額(balance)為1000.0000 cur,而eosio賬戶沒有餘額。

開始轉賬。

cleos push action currency transfer '' --permission currency@active
轉賬完成後,再次查詢餘額,currency賬戶是980,eosio賬戶則是20,轉賬成功。

至此,整個流程結束。

通過官方提供的currency合約,我們體驗了建立錢包 - 建立賬戶 - 執行合約的整個流程,這樣可以讓大家對eos合約的執行步驟有乙個初步印象。

至於在執行過程當中,涉及到一些更細節的問題,比如何編寫智慧型合約,cleos命令的具體語法以及作用,如果暫時不明白也沒有關係,後續的文章我們再一步步的深入學習。

**:

EOSIO開發(二)執行合約樣例

本文將介紹如何使用eosio自帶的合約 currency 實現建立錢包 建立賬戶 執行合約 的完整流程 前一篇文章介紹了如何使用docker搭建並執行eosio本地節點,本文將繼續介紹如何在docker環境下,使用系統自帶的合約 currency 實現建立錢包 建立賬戶 執行合約的完整流程。dock...

每天1點執行的oracle JOB樣例

declare x number begin sys.dbms job.submit job x what syn rpt members relation next date to date 02 07 2008 01 00 00 dd mm yyyy hh24 mi ss interval tr...

spring事務詳解(二)簡單樣例

spring事務詳解 一 初探事務 spring事務詳解 二 簡單樣例 spring事務詳解 三 原始碼詳解 spring事務詳解 四 測試驗證 spring事務詳解 五 總結提高 在spring中,事務有兩種實現方式 程式設計式事務管理 程式設計式事務管理使用底層原始碼可實現更細粒度的事務控制。s...