这是我的测试网合约: https ://rinkeby.etherscan.io/address/0xa63a032185452a2ab7da24a26ca9342e78e799a7
我所需要的只是了解如何才能完成 50 次空投,但只能从我的钱包地址进行。
(只需要确保没有其他人可以在 etherscan 上“写合同”并发送空投)
这是我的测试网合约: https ://rinkeby.etherscan.io/address/0xa63a032185452a2ab7da24a26ca9342e78e799a7
我所需要的只是了解如何才能完成 50 次空投,但只能从我的钱包地址进行。
(只需要确保没有其他人可以在 etherscan 上“写合同”并发送空投)
您可以添加一个条件来验证这msg.sender
是您的地址。我看到您已经在使用该ownable
模式(可能是 OpenZeppelin 实现),因此您可以使用它。
当您部署合约时,构造函数将您的地址分配给_owner
变量。如果交易不是从地址发送的,还有一个onlyOwner()
修饰符会引发异常(有效地恢复交易) 。_owner
所以你可以更新你的airdrop()
函数来使用onlyOwner()
修饰符。
function airdrop(bytes memory code) public onlyOwner() {
然后,您将airdrop()
只能从部署令牌的地址(或通过该函数成为新所有者transferOwnership()
)执行该函数。
如果您从任何其他地址执行该函数,它将恢复。