2

プロモーションの景品の場合に、パブリック ユーザーが 0 のミント価格 (ガス料金を除く) で 1 つの NFT のみをミントするように制限するミント機能の開発について、いくつかの助けを求めたいと思います。これは可能ですか?補足的な一元化されたソリューションであっても、提案を歓迎します..

これまでの私の機能は次のとおりです。現時点では、NFT の無料マイニングの数を制限できる唯一の方法は、コントラクトの所有者がマイニングを実行することです。ただし、特に無料の NFT の数が多く、それに伴いガス料金が発生する場合は、パブリック ユーザーにこの機能を実行してもらいたいと思います。OpenZeppelin Contracts に基づいています。

contract MyTestContract is ERC721, ERC721Enumerable, Ownable {

bool public preLaunchActive = false;
uint256 public maxGiveAway = 3;

function myPreLaunchGiveAway(uint amount, address to) public onlyOwner {
    require(preLaunchActive, "preLaunchActive state is not active.");
    require(amount <= maxGiveAway, "No more available.");
    require(amount > 0, "Amount must be greater than 0.");
    for (uint i = 0; i < amount; i++) {
        uint256 tokenId = totalSupply();
        if (tokenId < maxGiveAway) {
            _safeMint(to, tokenId);
        }
    }

    maxGiveAway = maxGiveAway.sub(amount);
}

}
4

1 に答える 1

0
require(balanceOf(msg.sender) <= maxGiveAway,"No more available.!");

ユーザーが許可された最大数を提供できるようにします!

于 2022-01-08T02:52:27.303 に答える