github源码:我在这呢
有时候当调用智能合约的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
更多
想了解更多,请关注公众号哦!
