We Are What We Eat 是一款主打可以吃的 NFT,并和 VR 金奖导演黄心健、国际名厨江振诚、当代表演艺术家张逸君共同合作。
We Are What We Eat 原先规划的总发行量为 250 个,并在 2022.01.10 顺利完成 200 个预售,热门程度让网站一度被瘫痪
而这次的瓜,爆发在 2022.01.11 团队因应公售调整增发量时,输入了错误的合约开启时间,导致被机器人与后续涌入的 fliper 在几分钟内薄荷完,并超发到 450 个,dis 群在暴动后关闭群全频发言
这个合约的唯一能用的薄荷功能为 presale,预售时是用这个,公售时也是用这个
在 presale 功能,可以限制特定时间点开放薄荷,若是在特定时间点之前发送的交易则会被退还。到目前为止都很正常,这个功能是没有问题的
有问题的是项目方设置公售开放时间与调整发行量时,设置与预售一模一样的时间戳记,导致交易完成合约即被打开
以上的设定都是团队透过 setActivity 功能进行,这个功能可以设定薄荷的价格、开启时间、最大发行量,不小心粗心提早开启合约这事情常有,而被机器人抢薄荷是每天都在发生的事情,大部分的瓜也都会在这边结束
但有意思的事情来了,明明不是说好发 250 个吗?为这么这合约会被薄荷到 450 个,整整超出 200 个呢?
仔细一看,原来这个坑就在看似平常的 setActivity 里
如同前所说 setActivity 功能可以设定薄荷的价格、开启时间、最大发行量、铸造的合约
但这个功能,在每次设置时,都会把已经计算过的发行量归零
所以在新设置可以薄荷的量为 250 个的时候,原本已经计算过的发行量从 200 被重新设置为 0,可以薄荷的空间又出现了 250 个
也就是今天这个合约,就算没有科学家、就算设置了正确的开启时间,也会被自己捅死
因为如果前端有一点延迟,也会被普通的小白用户疯狂薄荷然后炸掉。光是预售网站就炸掉了,我实在是不敢想像公售的样子
所以基本上这个瓜是项目方自己一手种的,很明显没有认真测试过合约,不是说粗心就完事,不能怪科学家爆你后门,是你自己把后门打开的
那要如何避免这些坑呢?
如果项目方把我解除封锁,我就会分享一下
今天你封锁一个我,还会有千千万万个我,我之后也会尽力找到你们的后门,然后公布给大家