區塊鏈EOS|智能合約入門2——部署token合約併發行、交易幣

系列文章
1. Hello World!
2. 部署token合約併發行、交易幣(本文)
3. 解析abi文件


正文

1. 獲取token合約
首先將目錄切換到放合約到文件夾。

cd /Users/yourUserName/Documents/EOS/contracts

接着獲取合約。

git clone https://github.com/EOSIO/eosio.contracts --branch v1.7.0 --single-branch

這時候你的目錄下會多出一個叫eosio.contract的文件夾,這個文件包含了一些合約,在本文中只需要用到eosio.token合約,故切換到該目錄下。

cd eosio.contracts/contracts/eosio.token

2. 部署合約
在部署之前,創建一個叫eosio.token的賬戶,後續將token合約部署到該賬戶上。這裏用EOS的開發公鑰創建該用戶。

cleos create account eosio eosio.token EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV

接着編譯toekn合約。

eosio-cpp -I include -o eosio.token.wasm src/eosio.token.cpp --abigen

然後部署到eosio.token賬戶上。

cleos set contract eosio.token /Users/yourUserName/Documents/EOS/contracts/eosio.contracts/contracts/eosio.token --abi eosio.token.abi -p eosio.token@active

3. 創造token

cleos push action eosio.token create '[ "alice", "1000000000.0000 SYS"]' -p eosio.token@active

該命令行執行了eosio.token合約中的create方法,該方法需要兩個參數——發行者和最大發行量。此時alice具有發行token到權力,但最多隻能發行1000000000.0000個SYS幣。
*create方法名如下,具體源碼可以在eosio.token/src/eosio.token.cpp文件中找到。

void token::create( const name&   issuer, const asset&  maximum_supply )
{
    ...
}

4. 發行token

cleos push action eosio.token issue '[ "alice", "100.0000 SYS", "memo" ]' -p alice@active

該命令執行了eosi.token中到issue方法,該方法需要三個參數——接收者,幣的數量,備註。
此時,alice發行並擁有了100.0000個SYS。
*issue方法名及參數如下,具體源碼同樣可以在eosio.token/src/eosio.token.cpp文件中找到。

void token::issue( const name& to, const asset& quantity, const string& memo )
{
	...
}

輸出結果如下

executed transaction: d1466bb28eb63a9328d92ddddc660461a16c405dffc500ce4a75a10aa173347a  128 bytes  205 us
#   eosio.token <= eosio.token::issue           {"to":"alice","quantity":"100.0000 SYS","memo":"memo"}
warning: transaction executed locally, but may not be confirmed by the network yet         ]

5. 交易token
此時,alice想要給bob轉25個SYS,可以執行以下命令。

cleos push action eosio.token transfer '[ "alice", "bob", "25.0000 SYS", "m" ]' -p alice@active

*transfer方法的源碼同樣可以在同樣的地方找到。
爲了驗證幣是否成功轉發,執行以下命令。

cleos get currency balance eosio.token bob SYS

輸出結果。

25.0000 SYS

同樣可以驗證alice只剩75.000 SYS。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章