solidity 合约入金出金(eth)

solidity 合约入金出金(eth),第1张

合约入金(eth)

        合约入金有四个方式:

                合约函数入金,只需合约函数 用 public payable修饰即可

                回调函数入金(无参数函数也叫callback函数)用public payable修饰即可 如

                        function () public payable{}

                外部账户直接给已存在的合约地址转入eth

                外部地址部署智能合约时转入eth

                

合约出金(eth)

        合约要出金给他人账户,必须在合约内执行调用,调用方式有三种

                receiveAddress.transfer(uint256 amount)

                receiveAddress.send(uint256 amount)

                receiveAddress.call.valle()

合约内出金方法是否抛出异常发送交易的gaslimit是否会调用receiveAddress的callback()函数
transfer会抛异常,触发回滚23000会调用
send不抛,但返回false23000会调用
call不抛,但返回false不限制(容易因为调用address的callback()导致恶意攻击)会调用

            出金注意事项:

                1.尽量使用前两种出金

                2.慎重使用call出金,理由因为不限制gaslimit,若address的callback()有恶意攻击代码,可能带来不可预估的损失,如递归式恶意调用你的程序

                3.无论哪种,出金前,先做数据 *** 作,在做出金函数调用

    

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/800873.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-07
下一篇 2022-05-07

发表评论

登录后才能评论

评论列表(0条)

保存