Skip to content

Instantly share code, notes, and snippets.

@DonkeVerse
Last active January 7, 2022 06:03
Show Gist options
  • Save DonkeVerse/909e17661908a0dc5e65e0573c027b64 to your computer and use it in GitHub Desktop.
Save DonkeVerse/909e17661908a0dc5e65e0573c027b64 to your computer and use it in GitHub Desktop.
function publicMint(bytes calldata _signature) external payable {
    uint256 _totalSupply = totalSupply;
    require(_totalSupply < MAX_SUPPLY, "max supply");
    require(msg.sender == tx.origin, "no bots");
    require(publicMintingAddress ==
        keccak256(
            abi.encodePacked(
                "\x19Ethereum Signed Message:\n32", 
                bytes32(uint256(uint160(msg.sender)))))
            .recover(_signature),
        "not allowed"
    );
    
    require(balanceOf(msg.sender) < 2, "too many");
    require(msg.value == PRICE, "wrong price");

    _mint(msg.sender, _totalSupply);
    unchecked {
        _totalSupply++;
    }
    totalSupply = _totalSupply;
}
·---------------------------------------|---------------------------|
|         Solc version: 0.8.10          ·  Optimizer enabled: true  ·
········································|···························|
|  Methods                                                           
···············|························|·············|·············|
|  Contract    ·  Method                ·  Min        ·  Max        ·
···············|························|·············|·············|
|  GasContest  ·  publicMint            ·      64191  ·      81291  ·
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment