译文出自:登链翻译计划
译者:翻译小组
校对:Tiny熊
智能合约可以部署其他智能合约,通常称为工厂模式),让你不是创建一个合约跟踪很多事情,而是创建多个智能合约,每个合约只跟踪各个的事情。使用这种模式可以简化合约代码,减少某些类型的安全漏洞的影响。
在这篇文章中,我将带你了解一个例子,这个例子是基于最近的一次审计中发现的一个关键漏洞修改而来。如果使用了工厂模式,这个漏洞就不会那么严重了。
一个错误的智能合约
下面是一个智能合约,通过一个相当简单的接口来出售WETH。如果你有WETH,你只需要approve这个智能合约来出售你的代币,它将确保你得到正确的金额。只要批准了足够的代币,任何人都可以向你购买WETH。
合约采用提现模式向卖家交付出售所得的ETH,但合约作者却犯了严重错误,代码如下:
//技术上可以实现出售任何代币,但这个例子仅出售WETH。//因为这里不想关注价格
乌克兰数字转型部将使用Crystal Blockchain的区块链软件追踪可疑加密交易:金色财经报道,乌克兰数字转型部上周与BitFury的加密货币衍生公司Crystal Blockchain B.V.签署了一项协议,以启动虚拟资产监控计划。Crystal Blockchain行政总裁Marina Khaustova表示,该部官员将使用该公司的软件来追踪可疑的加密交易的来源[2020/7/25]
//从指定的seller购买WETH
历史上的今天丨马耳他公司注册局将使用区块链系统:2019年5月8日,马耳他公司注册局将在区块链驱动的系统上运行。据悉,公司注册处是一个公共登记处,包含新公司和现有公司的官方信息和文件。该机构此前属于马耳他金融服务管理局(MFSA),已于去年年底成为一个独立的实体。
2018年5月8日,Facebook将构建专注于区块链的团队,旨在解决隐私保护问题。Facebook高管戴维?马库斯(David Marcus)将接手这个致力于探索区块链技术的团队,该团队虽然不到12人,但将包括Instagram的工程副总裁James Everingham,以及Instagram的产品副总裁Kevin Weil。[2020/5/8]
//出售者调用,提取ETHfunctionwithdraw(uint256amount)external{require(amount<=balanceOf,"Insufficientfunds.");//Whoops!Forgotthis://balanceOf-=amount;(boolsuccess,)=msg
}
如果你想知道为什么代码使用
//不用再指定seller
functionwithdraw(uint256amount)external{require(msg
}
免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。
本文来源于非小号媒体平台:
登链社区
现已在非小号资讯平台发布105篇作品,
非小号开放平台欢迎币圈作者入驻
入驻指南:
/apply_guide/
本文网址:
/news/9798515.html
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场
上一篇:
盘点零知识证明代表性项目:如何影响和塑造区块链生态系统?
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。