【三胖聊区块链-EOS】(九)EOS入门系列-智能合约之付款操作(Payable actions)

1,299 阅读1分钟

github源码:我在这呢

上一篇: 【三胖聊区块链-EOS】(八)EOS入门系列-智能合约之自定义权限

有时候当调用智能合约的action时,需要支付一定的费用,在此之前要了解EOS提供的一个可以法币的智能合约:eosio.token,需要提交部署好这个智能合约。

思路:

  • 新建一个合约hodl,并创建合约账户hodl
  • 存款:当调用eosio.token合约的转账操作时,会自动调用到hodl合约的存款操作(即将代币转账到hodl合约账户里)
  • 取款:将代币从hodl合约账户转回到原来的账户
  • 测试转账和取款

合约有内联操作,需要给hodl合约账户添加eosio.code权限
cleos set account permission hodl active --add-code

on_notify:修饰的action会被合约eosio.token的transfer action 自动执行 [[eosio::on_notify("eosio.token::transfer")]]

代码示例:


存款测试:

  • 1.创建一个测试账户han,并转移一个代币到han里
    cleos create account eosio han DEVELOPMENT_KEY

  • 2.调用eosio.token合约,由alice账户给han转账100 SYS

cleos push action eosio.token transfer 
'[ "alice", "han", "100.0000 SYS", "Slecht geld verdrijft goed" ]' 
-p alice@active
  • 3.账户han将代币转入合同hodl
    cleos transfer han hodl '0.0001 SYS' 'Hodl!' -p han@active

取款测试:

cleos push action hodl party '["han"]' -p han@active

更多

想了解更多,请关注公众号哦!