如何只允许智能合约erc-721空投来自一个地址

How to only allow smart contract erc-721 airdrops to be from one address

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

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

(只需要确保没有其他人可以去 'write contract' 在 etherscan 上发送空投)

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

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

因此您可以更新 airdrop() 函数以使用 onlyOwner() 修饰符。

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

然后你将只能从部署令牌的地址执行airdrop()功能(或通过transferOwnership()功能成为新所有者).

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