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

2021-08-21 02:38:47 字數 3732 閱讀 6907

本文將介紹如何使用eosio自帶的合約"currency",實現建立錢包-建立賬戶-執行合約 的完整流程

前一篇文章介紹了如何使用docker搭建並執行eosio本地節點,本文將繼續介紹如何在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。

分別將兩組private key匯入錢包

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

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

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

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

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

![螢幕快照 2018-04-14 上午11.00.47](螢幕快照 2018-04-14 上午11.00.47.png)

上傳currency賬戶

cleos set contract currency contracts/currency
![螢幕快照 2018-04-14 上午11.01.16](螢幕快照 2018-04-14 上午11.01.16.png)

再次驗證currency賬戶是否已經存在

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

![螢幕快照 2018-04-14 上午11.01.24](螢幕快照 2018-04-14 上午11.01.24.png)

執行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,初始化成功。

![螢幕快照 2018-04-14 上午11.03.12](螢幕快照 2018-04-14 上午11.03.12.png)

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

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

cleos get table currency currency accounts

cleos get table currency eosio accounts

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

![螢幕快照 2018-04-14 上午11.06.34](螢幕快照 2018-04-14 上午11.06.34.png)

開始轉賬。

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

![螢幕快照 2018-04-14 上午11.08.07](螢幕快照 2018-04-14 上午11.08.07.png)

至此,整個流程結束。

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

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

eosio開發(一)使用docker構建本地環境

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

eosio開發(三)錢包、賬戶與賬戶許可權之概念篇

eosio開發(四)- nodeos、keosd與cleos

eosio開發(五)- 錢包之實戰篇

eosio開發(六)- 賬戶之實戰篇

eosio開發(七)- 使用clion檢視eos**

eosio開發(八)- 智慧型合約基礎概念

eos wiki-local-environment

accounts & permissions

深入理解 eos 賬戶許可權對映

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

本文將介紹如何在docker環境下,使用系統自帶的合約 currency 實現建立錢包 建立賬戶 執行合約的完整流程。docker pull eosio eos 啟動nodeos節點 docker run name nodeos p 8888 8888 p 9876 9876 t eosio eos...

每天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...