一、拍卖合约
智能合约定义成员变量、event等,构造函数初始化受益人、拍卖结束时间,如下所示:
出价的函数如下,标注payable说明函数可以接收转账,require(now <= auctionEnd)检查拍卖是否结束,如果已经结束就抛出异常,然后检查出价是否大于最高出价,然后将出价人记录到bidders数组(因为bids哈希表不支持遍历),然后记录新的最高出价人,记录日志,如下所示:
结束拍卖的函数如下,首先检查拍卖是否结束,拍卖没有结束就调用该函数就会抛出异常,然后检查是否已经被调过,重复调用会抛出异常,然后将最高出价转给出价人,将钱退回给未中标的人,然后标注函数执行完成,记录日志,如下所示:
二、收款地址未定义fallback函数的问题
如果一个黑客通过外部账户发起交易调用自己的合约的