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。
注:转自CSDN文章。
网友评论