Fallback函数的使用

特点:
1.无名字,无参数,无返回值
2.如果请求的方法在合约中不存在,则会调用fallback函数
3.对合约转账的时候,会自动执行fallback函数(可能会产生Reentrancy漏洞)
4.在高版本中已经将定义形式改为
fallback() external {}
5.不带Fallback的合约向带Fallback的合约发送ether,会触发Fallback(触发的是带fallback的一方)

发送会成功,触发事件

pragma solidity ^0.4.0;contract fallbackTest{uint public a;function(){a=1;}function Call(){//this.call(0xabc52577);this.call(bytes32(keccak256("tzy577()")));}}contract target{uint public temp=0;function() payable{temp=1;}
}contract tansfer2Contract{function transfer2Contract(address ad) payable public{ad.call(msg.value);}
}

a的初始值为0:

调用Call函数后,会自动调用fallback使a的值变为1

在合约target中,temp的初始值为0:

随后对target合约调用call方法传递以太,fallback自动运行,使得temp变为1

参考:1.https://www.jianshu.com/p/932803ea26bb
2.https://solidity.readthedocs.io/en/v0.5.3/contracts.html

Fallback函数相关推荐

  1. 智能合约语法详谈——this.|view 函数 pure 函数|fallback函数

    this. 使用 this. 即为外部访问 contract C {uint public data;function X() public {data = 3;//内部访问uint val = th ...

  2. fallback 和 receive 回退函数

    //纯转账调用receiver回退函数,例如对每个空empty calldata的调用 // 除了纯转账外,所有的调用都会调用fallback function. receive() 一个合约只能有一 ...

  3. 以太坊Solidity语言的Receive函数和Fallback回退函数详解

    Solidity语言中关于回退函数的定义: 回退函数是一个不接受任何参数也不返回任何值的特殊函数: 如果在对合约的调用中,没有其它函数与给定的函数标识符匹配时,回退函数会被调用: 每当合约接收到以太币 ...

  4. 以太坊漏洞分析————4、底层函数误用漏洞

    引子:阵有纵横,天衡为梁,地轴为柱.梁柱以精兵为之,故观其阵,则知精兵之所有.共战他敌时,频更其阵,暗中抽换其精兵,或竟代其为梁柱,势成阵塌,遂兼其兵.并此敌以击他敌之首策 --<三十六计第二十 ...

  5. Sentinel中有时候会搞乱的blockHandler与fallback

    前言 之前老顾介绍了sentinel的降级熔断文章,有些小伙伴在使用的过程中对blockhandler和fallback的使用会搞乱,这里老顾在这里在继续强化一下他们的区别以及使用. 两者区别 这里说 ...

  6. 偷天换日合约易主,地址变脸移花接木——底层函数误用漏洞 | 漏洞分析连载之四

    安全,区块链领域举足轻重的话题,为什么一行代码能瞬间蒸发几十亿市值?合约底层函数的使用不当会引起哪些漏洞?可注入call漏洞和delegatecall误用漏洞会导致什么风险? 「区块链大本营」携手「链 ...

  7. 偷天换日合约易主,地址变脸移花接木——底层函数误用漏洞 | 漏洞分析连载之四...

    安全,区块链领域举足轻重的话题,为什么一行代码能瞬间蒸发几十亿市值?合约底层函数的使用不当会引起哪些漏洞?可注入call漏洞和delegatecall误用漏洞会导致什么风险? 「区块链大本营」携手「链 ...

  8. Solidity 中 receive 函数 和 callback函数分析

    在使用transfer 和 send 方法的是后需要关注一下 receive方法和callback方法. receive 接收以太函数 一个合约最多有一个 receive 函数, 声明函数为: rec ...

  9. solidity之函数篇

    solidity 之函数篇 函数可见性(Function Visibility) Solidity 中主要有 4 种可见性的关键字 Public:公有函数 Private:私有函数,只有定义该函数的合 ...

最新文章

  1. 主题分享 | 王建民:关于工业软件人才培养的思考
  2. Laravel 5.5 的错误异常处理机制以及应用实例
  3. Windows下禁止ping命令(禁用ICMP协议访问)
  4. 给opentaps添加定制的表和字段
  5. 用随机梯度下降来优化人生
  6. 企业之HA~cluster
  7. nbear分页 效率低_为什么大家都说“SELECT *”效率低?
  8. Httpd-2.2.0虚拟主机目录权限问题
  9. 汽车功能安全标准“ISO 26262”导入实践(上)
  10. VGG19识别CIFAR10数据集(Pytorch实战)
  11. php 版onvif 客户端,onvif协议网络摄像机(IPC)客户端程序
  12. 三角函数和角与差角公式的图形解释
  13. 总纲-信息、网络等级保护测评机构 、名单-等保测评机构目录-等保测评公司推荐目录
  14. linux 深信服ssl_mac访问不了深信服的ssl vpn
  15. ubuntu 16.04 通过wine安装Kindle for pc 中文无乱码
  16. 查询rssi指令_你的 iPhone 信号有多差?教你一招查询信号强度
  17. cpu负载过高产生的原因及排查
  18. PADS 免费视频教程
  19. 探索水面无人艇运动控制
  20. 要么忙着活,要么忙着死

热门文章

  1. TigerGraph评论:专为深度分析而设计的图形数据库
  2. 极光im java_java手写一个迷你版的Tomcat代码分享
  3. JavaScript 10进制转换为类似‘0x00d5’格式的16进制
  4. 中国蚁剑连接一句话木马
  5. 4002 构造数组(可重复组合数问题--隔板法)
  6. False data injection attacks and the insider threat in smart systems
  7. GetElementById
  8. 转专业考试c语言试题,C语言程序设计实训题目.doc
  9. 【游戏引擎Easy2D】一篇打通引擎进阶类型,Keycode+MouseCode+Image
  10. 哔咔服务器维护时间,哔咔