0

这是我的测试网合约: https ://rinkeby.etherscan.io/address/0xa63a032185452a2ab7da24a26ca9342e78e799a7

我所需要的只是了解如何才能完成 50 次空投,但只能从我的钱包地址进行。

(只需要确保没有其他人可以在 etherscan 上“写合同”并发送空投)

4

1 回答 1

0

您可以添加一个条件来验证这msg.sender是您的地址。我看到您已经在使用该ownable模式(可能是 OpenZeppelin 实现),因此您可以使用它。

当您部署合约时,构造函数将您的地址分配给_owner变量。如果交易不是从地址发送的,还有一个onlyOwner()修饰符会引发异常(有效地恢复交易) 。_owner

所以你可以更新你的airdrop()函数来使用onlyOwner()修饰符。

function airdrop(bytes memory code) public onlyOwner() {

然后,您将airdrop()只能从部署令牌的地址(或通过该函数成为新所有者transferOwnership())执行该函数。

如果您从任何其他地址执行该函数,它将恢复。

于 2021-07-09T19:59:03.257 回答