文章目录一、拍卖合约二、收款地址未定义fallback函数的问题fallback问题的解决方案三、重入攻击(Re-entrancy Attack)的问题重入攻击的解决方案 一、拍卖合约 智能合约定义成员变量、event等,构造函数初始化受益人、拍卖结束时间,如下所示: 出价的函数如下,标注payable说明函数可以接收转账,require(now <= auctionEnd)检查拍卖是否结束,如果已经结束就抛出异常,然后检查出价是否大于最高出价,然后将出价人记录到bidders数组(因为bids哈希表不支持遍历),然后记录新的最高出价人,记录日志,如下所示: 结束拍卖的函数如下,首先