如何只允许智能合约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()
功能成为新所有者).
如果您从任何其他地址执行函数,它将恢复。
这是我的测试网合约: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()
功能成为新所有者).
如果您从任何其他地址执行函数,它将恢复。