美文网首页
区块链EOS|智能合约入门2——部署token合约并发行、交易币

区块链EOS|智能合约入门2——部署token合约并发行、交易币

作者: 十里寻枫 | 来源:发表于2020-04-27 01:41 被阅读0次

    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文章

    相关文章

      网友评论

          本文标题:区块链EOS|智能合约入门2——部署token合约并发行、交易币

          本文链接:https://www.haomeiwen.com/subject/cckewhtx.html