ETH Price: $2,440.68 (-0.16%)

Contract

0x000000000f30984DE6843bBC1d109c95EA6242ac
Transaction Hash
Method
Block
From
To
Mint_efficient_7...1262619722024-10-05 10:05:214 days ago1728122721IN
0x00000000...5EA6242ac
0.000322 ETH0.0000002793960.00156662
Mint_efficient_7...1262107752024-10-04 5:38:475 days ago1728020327IN
0x00000000...5EA6242ac
0.000855 ETH0.0000001999040.00101218
Mint_efficient_7...1260248352024-09-29 22:20:479 days ago1727648447IN
0x00000000...5EA6242ac
0.000255 ETH0.000000394040.0021244
Mint_efficient_7...1260126762024-09-29 15:35:2910 days ago1727624129IN
0x00000000...5EA6242ac
0.000599 ETH0.0000003821450.00182512
Mint_efficient_7...1258281902024-09-25 9:05:5714 days ago1727255157IN
0x00000000...5EA6242ac
0.000233 ETH0.0000003192630.00112824
Mint_efficient_7...1257901352024-09-24 11:57:2715 days ago1727179047IN
0x00000000...5EA6242ac
0.000255 ETH0.0000002988950.00093487
Mint_efficient_7...1255714802024-09-19 10:28:5720 days ago1726741737IN
0x00000000...5EA6242ac
0.000777 ETH0.0000004419840.00135127
Mint_efficient_7...1255636352024-09-19 6:07:2720 days ago1726726047IN
0x00000000...5EA6242ac
0.00021 ETH0.0000002538230.00095157
Mint_efficient_7...1255564252024-09-19 2:07:0720 days ago1726711627IN
0x00000000...5EA6242ac
0.00021 ETH0.0000006028860.00286315
Mint_efficient_7...1255497792024-09-18 22:25:3520 days ago1726698335IN
0x00000000...5EA6242ac
0.00021 ETH0.0000006652730.00396332
Mint_efficient_7...1255497412024-09-18 22:24:1920 days ago1726698259IN
0x00000000...5EA6242ac
0.00021 ETH0.000000823570.00496353
Mint_efficient_7...1255497272024-09-18 22:23:5120 days ago1726698231IN
0x00000000...5EA6242ac
0.00021 ETH0.0000006878430.00403924
Mint_efficient_7...1255497142024-09-18 22:23:2520 days ago1726698205IN
0x00000000...5EA6242ac
0.00021 ETH0.0000027058570.01731416
Mint_efficient_7...1255496982024-09-18 22:22:5320 days ago1726698173IN
0x00000000...5EA6242ac
0.00021 ETH0.0000008567460.00513375
Mint_efficient_7...1255496642024-09-18 22:21:4520 days ago1726698105IN
0x00000000...5EA6242ac
0.00021 ETH0.0000008909070.00529633
Mint_efficient_7...1255495772024-09-18 22:18:5120 days ago1726697931IN
0x00000000...5EA6242ac
0.00021 ETH0.0000045533610.0242676
Mint_efficient_7...1255427522024-09-18 18:31:2120 days ago1726684281IN
0x00000000...5EA6242ac
0.000235 ETH0.0000064459490.05447726
Mint_efficient_7...1255427302024-09-18 18:30:3720 days ago1726684237IN
0x00000000...5EA6242ac
0.000235 ETH0.0000083212210.05448867
Mint_efficient_7...1253575582024-09-14 11:38:1325 days ago1726313893IN
0x00000000...5EA6242ac
0.000533 ETH0.0000002070530.00129691
Mint_efficient_7...1253218302024-09-13 15:47:1726 days ago1726242437IN
0x00000000...5EA6242ac
0.000202 ETH0.0000066676780.0438734
Mint_efficient_7...1253216002024-09-13 15:39:3726 days ago1726241977IN
0x00000000...5EA6242ac
0.000202 ETH0.0000039635880.02591201
Mint_efficient_7...1253198132024-09-13 14:40:0326 days ago1726238403IN
0x00000000...5EA6242ac
0.000202 ETH0.0000012098460.0078501
Mint_efficient_7...1253163212024-09-13 12:43:3926 days ago1726231419IN
0x00000000...5EA6242ac
0.000202 ETH0.0000002472340.0015087
Mint_efficient_7...1253144742024-09-13 11:42:0526 days ago1726227725IN
0x00000000...5EA6242ac
0.000202 ETH0.0000001832950.0011078
Mint_efficient_7...1253140452024-09-13 11:27:4726 days ago1726226867IN
0x00000000...5EA6242ac
0.000202 ETH0.0000002232150.0011101
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
1262619722024-10-05 10:05:214 days ago1728122721
0x00000000...5EA6242ac
0.000322 ETH
1262107752024-10-04 5:38:475 days ago1728020327
0x00000000...5EA6242ac
0.000855 ETH
1260248352024-09-29 22:20:479 days ago1727648447
0x00000000...5EA6242ac
0.000255 ETH
1260126762024-09-29 15:35:2910 days ago1727624129
0x00000000...5EA6242ac
0.000599 ETH
1258281902024-09-25 9:05:5714 days ago1727255157
0x00000000...5EA6242ac
0.000233 ETH
1257901352024-09-24 11:57:2715 days ago1727179047
0x00000000...5EA6242ac
0.000255 ETH
1255714802024-09-19 10:28:5720 days ago1726741737
0x00000000...5EA6242ac
0.000777 ETH
1255636352024-09-19 6:07:2720 days ago1726726047
0x00000000...5EA6242ac
0.00021 ETH
1255564252024-09-19 2:07:0720 days ago1726711627
0x00000000...5EA6242ac
0.00021 ETH
1255497792024-09-18 22:25:3520 days ago1726698335
0x00000000...5EA6242ac
0.00021 ETH
1255497412024-09-18 22:24:1920 days ago1726698259
0x00000000...5EA6242ac
0.00021 ETH
1255497272024-09-18 22:23:5120 days ago1726698231
0x00000000...5EA6242ac
0.00021 ETH
1255497142024-09-18 22:23:2520 days ago1726698205
0x00000000...5EA6242ac
0.00021 ETH
1255496982024-09-18 22:22:5320 days ago1726698173
0x00000000...5EA6242ac
0.00021 ETH
1255496642024-09-18 22:21:4520 days ago1726698105
0x00000000...5EA6242ac
0.00021 ETH
1255495772024-09-18 22:18:5120 days ago1726697931
0x00000000...5EA6242ac
0.00021 ETH
1255427522024-09-18 18:31:2120 days ago1726684281
0x00000000...5EA6242ac
0.000235 ETH
1255427302024-09-18 18:30:3720 days ago1726684237
0x00000000...5EA6242ac
0.000235 ETH
1253575582024-09-14 11:38:1325 days ago1726313893
0x00000000...5EA6242ac
0.000533 ETH
1253218302024-09-13 15:47:1726 days ago1726242437
0x00000000...5EA6242ac
0.000202 ETH
1253216002024-09-13 15:39:3726 days ago1726241977
0x00000000...5EA6242ac
0.000202 ETH
1253198132024-09-13 14:40:0326 days ago1726238403
0x00000000...5EA6242ac
0.000202 ETH
1253163212024-09-13 12:43:3926 days ago1726231419
0x00000000...5EA6242ac
0.000202 ETH
1253144742024-09-13 11:42:0526 days ago1726227725
0x00000000...5EA6242ac
0.000202 ETH
1253140452024-09-13 11:27:4726 days ago1726226867
0x00000000...5EA6242ac
0.000202 ETH
View All Internal Transactions

Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BasicMintModule

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 250000 runs

Other Settings:
paris EvmVersion
File 1 of 8 : BasicMintModule.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

import {IBasicMintModule, IConfigurable} from "create/interfaces/v1/IBasicMintModule.sol";
import {IMintPayout} from "create/interfaces/v1/IMintPayout.sol";
import {IMintContract} from "create/interfaces/v1/IMintContract.sol";
import {BasicMintConfiguration} from "create/interfaces/v1/BasicMintConfiguration.sol";
import {Version} from "create/contracts/v1/Version.sol";

contract BasicMintModule is IBasicMintModule, Version {
    IMintPayout public immutable mintPayout;

    mapping(address => BasicMintConfiguration) private _configurations;
    mapping(address => mapping(address => uint256)) private _mintedByAddress;
    mapping(address => uint256) public mintedByContract;

    /// @notice Emitted when quantity is zero.
    error InvalidQuantity();
    /// @notice Emitted if the collector is minting too many tokens per transaction.
    error TooManyTokensPerTransaction();
    /// @notice Emitted if the collector is minting too many tokens per wallet.
    error TooManyTokensPerCollector();
    /// @notice Emitted if the collector is minting more tokens than this module is allowed to mint.
    error TooManyTokensForModule();
    /// @notice Emitted if the mint has not started yet.
    error MintNotStarted();
    /// @notice Emitted if the mint has ended.
    error MintEnded();
    /// @notice Emitted when the value sent is incorrect.
    error IncorrectPayment();
    /// @notice Emitted when the max supply is reached.
    error MaxSupplyReached();

    constructor(address _mintPayout) Version(1) {
        mintPayout = IMintPayout(_mintPayout);
    }

    /// @inheritdoc IConfigurable
    function updateConfiguration(bytes calldata args) external override {
        BasicMintConfiguration memory _config = abi.decode(args, (BasicMintConfiguration));

        _configurations[msg.sender] = _config;
        emit ConfigurationUpdated(msg.sender, _config);
    }

    /// @inheritdoc IBasicMintModule
    function configuration(address _contract) external view returns (BasicMintConfiguration memory) {
        return _configurations[_contract];
    }

    /// @inheritdoc IBasicMintModule
    function mint(address _contract, address _to, address _referrer, uint256 _quantity) external payable {
        _mint(_contract, _to, _referrer, _quantity);
    }

    /// @inheritdoc IBasicMintModule
    function mint_efficient_7e80c46e(address _contract, address _to, address _referrer, uint256 _quantity)
        external
        payable
    {
        _mint(_contract, _to, _referrer, _quantity);
    }

    /// @notice The implementation of the mint function.
    /// @dev This is implemented as an internal function to share the logic between the `mint` and `mint_efficient_7e80c46e` functions.
    /// See the documentation for those functions for information on the parameters.
    function _mint(address _contract, address _to, address _referrer, uint256 _quantity) internal {
        BasicMintConfiguration memory config = _configurations[_contract];

        if (_quantity == 0) revert InvalidQuantity();
        if (config.maxPerTransaction > 0 && _quantity > config.maxPerTransaction) revert TooManyTokensPerTransaction();

        if (config.maxPerWallet > 0) {
            if (_mintedByAddress[_contract][_to] + _quantity > config.maxPerWallet) {
                revert TooManyTokensPerCollector();
            }
        }

        if (config.maxForModule > 0 && mintedByContract[_contract] + _quantity > config.maxForModule) {
            revert TooManyTokensForModule();
        }

        if (block.timestamp < config.mintStart) revert MintNotStarted();
        if (config.mintEnd > 0 && block.timestamp > config.mintEnd) revert MintEnded();

        uint256 protocolFee = mintPayout.protocolFee();
        if (msg.value != (config.price + protocolFee) * _quantity) revert IncorrectPayment();

        if (config.maxSupply > 0 && IMintContract(_contract).totalMinted() + _quantity > config.maxSupply) {
            revert MaxSupplyReached();
        }

        _mintedByAddress[_contract][_to] += _quantity;
        mintedByContract[_contract] += _quantity;

        mintPayout.mintDeposit{value: msg.value}(_contract, msg.sender, _referrer, _quantity);
        IMintContract(_contract).mint(_to, _quantity);
    }
}

File 2 of 8 : IBasicMintModule.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

import {BasicMintConfiguration} from "create/interfaces/v1/BasicMintConfiguration.sol";
import {IConfigurable} from "create/interfaces/v1/IConfigurable.sol";

interface IBasicMintModuleEvents {
    /// @notice Emitted when a contract's basic mint configuration is updated.
    /// @param _contract The address of the contract being configured.
    /// @param _config The new configuration.
    event ConfigurationUpdated(address indexed _contract, BasicMintConfiguration _config);
}

interface IBasicMintModule is IConfigurable, IBasicMintModuleEvents {
    /// @notice Retrieves the basic minting configuration for a contract.
    /// @param _contract The address of the contract.
    /// @return The current minting configuration.
    function configuration(address _contract) external view returns (BasicMintConfiguration memory);

    /// @notice Mints tokens for a NFT contract to a recipient.
    /// @dev Reverts if the mint does not work in the current configuration.
    /// @param _contract The address of the contract to mint for.
    /// @param _to The recipient of the tokens.
    /// @param _referrer The referrer of this mint, or the zero address if none.
    /// @param _quantity The quantity of tokens to mint.
    function mint(address _contract, address _to, address _referrer, uint256 _quantity) external payable;

    /// @notice Mints tokens for a NFT contract to a recipient.
    /// @dev Reverts if the mint does not work in the current configuration.
    /// This function is preferred over `mint` because the four byte signature is 0x00000000 which is cheaper to call.
    /// The implementation is identical to `mint`.
    /// @param _contract The address of the contract to mint for.
    /// @param _to The recipient of the tokens.
    /// @param _referrer The referrer of this mint, or the zero address if none.
    /// @param _quantity The quantity of tokens to mint.
    function mint_efficient_7e80c46e(address _contract, address _to, address _referrer, uint256 _quantity)
        external
        payable;
}

File 3 of 8 : IMintPayout.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

interface IMintPayoutEvents {
    /// @notice Emitted when a deposit has been made.
    /// @param from The depositor's address.
    /// @param to The address receiving the deposit.
    /// @param reason The reason code for the deposit.
    /// @param amount The deposit amount.
    event Deposit(address from, address to, bytes4 reason, uint256 amount);

    /// @notice Emitted when a withdrawal has been made.
    /// @param from The address withdrawing.
    /// @param to The address receiving the withdrawn funds.
    /// @param amount The withdrawal amount.
    event Withdraw(address from, address to, uint256 amount);

    /// @notice Emitted during a mint deposit to provide additional context.
    /// @param depositedBy The address of the mint initiator.
    /// @param mintContract The mint contract address this mint deposit refers to.
    /// @param minter The address of the person minting.
    /// @param referrer The address of the referrer, or the zero address for no referrer.
    /// @param creator The address of the contract creator, or the protocol fee recipient if none.
    /// @param creatorPayout The amount being paid to the creator.
    /// @param referralPayout The amount being paid to the referrer.
    /// @param protocolPayout The amount being paid to the protocol.
    /// @param totalAmount The total deposit amount.
    /// @param quantity The number of tokens being minted.
    /// @param protocolFee The per-mint fee for the protocol.
    event MintDeposit(
        address depositedBy,
        address mintContract,
        address minter,
        address referrer,
        address creator,
        uint256 creatorPayout,
        uint256 referralPayout,
        uint256 protocolPayout,
        uint256 totalAmount,
        uint256 quantity,
        uint256 protocolFee
    );

    /// @notice Emitted when the protocol fee is updated.
    /// @param fee The new protocol fee.
    event ProtocolFeeUpdated(uint256 fee);
}

interface IMintPayout is IMintPayoutEvents {
    function balanceOf(address owner) external view returns (uint256);
    function totalSupply() external view returns (uint256);

    /// @notice The current protocol fee per-mint.
    function protocolFee() external view returns (uint256 fee);

    /// @notice Sets the protocol fee per-mint.
    /// @dev Only callable by the owner.
    /// @param fee The new protocol fee.
    function setProtocolFee(uint256 fee) external;

    /// @notice Magic value used to represent the fees belonging to the protocol.
    function protocolFeeRecipientAccount() external view returns (address);

    /// @notice Withdraws from the protocol fee balance.
    /// @dev Only callable by the owner.
    /// @param to The address receiving the withdrawn funds.
    /// @param amount The withdrawal amount.
    function withdrawProtocolFee(address to, uint256 amount) external;

    /// @notice Deposits ether for a mint.
    /// @dev Ensure that `quantity` is > 0. The `protocolFee` should be per-mint, not the total taken.
    /// Will trigger a `MintDeposit` event, followed by `Deposit` events for:
    /// creator payout, protocol payout, and referrer payout (if a referrer is specified).
    /// @param mintContract The mint contract address this mint deposit refers to.
    /// @param minter The address of the minter.
    /// @param referrer The address of the referrer, or the zero address for no referrer.
    /// @param quantity The amount being minted.
    function mintDeposit(address mintContract, address minter, address referrer, uint256 quantity) external payable;

    /// @notice Deposits ether to an address.
    /// @param to The address receiving the deposit.
    /// @param reason The reason code for the deposit.
    function deposit(address to, bytes4 reason) external payable;

    /// @notice Deposits ether to multiple addresses.
    /// @dev The length of `recipients`, `amounts`, and `reasons` must be the same.
    /// @param recipients List of addresses receiving the deposits.
    /// @param amounts List of deposit amounts.
    /// @param reasons List of reason codes for the deposits.
    function depositBatch(address[] calldata recipients, uint256[] calldata amounts, bytes4[] calldata reasons)
        external
        payable;

    /// @notice Withdraws ether from the `msg.sender`'s account to a specified address.
    /// @param to The address receiving the withdrawn funds.
    /// @param amount The withdrawal amount.
    function withdraw(address to, uint256 amount) external;

    /// @notice Withdraws all ether from the `msg.sender`'s account to a specified address.
    /// @param to The address receiving the withdrawn funds.
    function withdrawAll(address to) external;
}

File 4 of 8 : IMintContract.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

import {IMetadataRenderer} from "create/interfaces/v1/IMetadataRenderer.sol";

interface IMintContractEvents {
    /// @notice Emitted when the royalty is updated.
    event RoyaltyUpdated(uint256 bps);
    /// @notice Emitted when a new mint module is added.
    event ModuleAdded(address module);
    /// @notice Emitted when a mint module is removed.
    event ModuleRemoved(address module);
    /// @notice Emitted when the metadata renderer is updated.
    event MetadataRendererUpdated(address renderer);
}

interface IMintContract is IMintContractEvents {
    /// @notice Mints tokens using approved mint modules.
    /// @param to The address receiving the minted tokens.
    /// @param quantity The quantity of tokens to mint.
    function mint(address to, uint256 quantity) external;

    /// @notice Mints tokens, callable only by the contract owner.
    /// @param to The address receiving the minted tokens.
    /// @param quantity The quantity of tokens to mint.
    function adminMint(address to, uint256 quantity) external;

    /// @notice Retrieves the payout recipient address for this mint contract.
    /// @return recipient address of the payout recipient.
    function payoutRecipient() external view returns (address recipient);

    /// @notice Returns the total number of tokens minted.
    /// @return total number of tokens minted.
    function totalMinted() external view returns (uint256 total);

    /// @notice Adds a new mint module as an approved minter.
    /// @dev Can only be executed by the owner of the contract.
    /// Must be approved in the MintModuleRegistry.
    /// @param mintModule The contract address of the mint module.
    function addMintModule(address mintModule) external;

    /// @notice Removes a mint module as an approved minter.
    /// @dev Can only be executed by the owner of the contract.
    /// @param mintModule The contract address of the mint module.
    function removeMintModule(address mintModule) external;

    /// @notice Returns whether a mint module is approved.
    /// @param mintModule The contract address of the mint module.
    /// @return isApproved Whether the mint module is approved.
    function isMintModuleApproved(address mintModule) external view returns (bool isApproved);

    /// @notice Updates configuration located in an external contract.
    /// @dev Can only be executed by the owner of the contract.
    /// The cardinality of `configurables` and `configData` must be the same.
    /// @param configurables The contract addresses to configure.
    /// @param configData The configuration data for the contracts.
    function updateExternalConfiguration(address[] calldata configurables, bytes[] calldata configData) external;

    /// @notice Sets the metadata renderer.
    /// @dev This will not request a metadata refresh. If needed, call `refreshMetadata`.
    /// @param renderer The new metadata renderer.
    function setMetadataRenderer(IMetadataRenderer renderer) external;

    /// @notice Returns the metadata renderer for this contract.
    /// @return metadataRenderer The metadata renderer.
    function metadataRenderer() external returns (IMetadataRenderer metadataRenderer);

    /// @notice Triggers a batch metadata update.
    function refreshMetadata() external;

    /// @notice Updates the royalty for this contract.
    /// @dev Can only be called by the contract owner.
    /// Emits a `RoyaltyUpdated` event.
    /// @param bps The new royalty.
    function setRoyalty(uint256 bps) external;

    /// @notice Returns the royalty for this contract.
    /// @return bps The royalty.
    function royaltyBps() external returns (uint256 bps);
}

File 5 of 8 : BasicMintConfiguration.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

struct BasicMintConfiguration {
    /// @notice Purchase cost per token.
    uint256 price;
    /// @notice UNIX timestamp of mint start.
    uint64 mintStart;
    /// @notice UNIX timestamp of mint end, or zero if open-ended.
    uint64 mintEnd;
    /// @notice Maximum token purchase limit per wallet, or zero if no limit.
    uint32 maxPerWallet;
    /// @notice Maximum tokens mintable per transaction, or zero if no limit.
    uint32 maxPerTransaction;
    /// @notice Maximum tokens mintable by this module, or zero if no limit.
    uint32 maxForModule;
    /// @notice Maximum tokens that can be minted in total, or zero if no max.
    uint32 maxSupply;
}

File 6 of 8 : Version.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

abstract contract Version {
    /// @notice The version of the contract.
    uint32 public immutable contractVersion;

    constructor(uint32 _contractVersion) {
        contractVersion = _contractVersion;
    }
}

File 7 of 8 : IConfigurable.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

interface IConfigurable {
    /// @notice Updates the configuration for the calling contract.
    /// @param data The configuration data.
    function updateConfiguration(bytes calldata data) external;
}

File 8 of 8 : IMetadataRenderer.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;

interface IMetadataRenderer {
    /// @notice Retrieves the token URI for the specified token ID.
    /// @param tokenId The ID of the token.
    /// @return uri The URI of the token.
    function tokenURI(uint256 tokenId) external view returns (string memory uri);
}

Settings
{
  "remappings": [
    "ERC721A/=lib/ERC721A/contracts/",
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "openzeppelin/=lib/openzeppelin-contracts/contracts/",
    "solmate/=lib/solmate/src/",
    "solady/=lib/solady/src/",
    "fundrop/=src/Fundrop/",
    "operator-filter-registry/=lib/operator-filter-registry/src/",
    "base64/=lib/base64/",
    "create/=src/Create/",
    "erc4626-tests/=lib/operator-filter-registry/lib/openzeppelin-contracts/lib/erc4626-tests/",
    "erc721a-upgradeable/=lib/erc721a-upgradeable/contracts/",
    "openzeppelin-contracts-upgradeable/=lib/operator-filter-registry/lib/openzeppelin-contracts-upgradeable/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 250000
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_mintPayout","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"IncorrectPayment","type":"error"},{"inputs":[],"name":"InvalidQuantity","type":"error"},{"inputs":[],"name":"MaxSupplyReached","type":"error"},{"inputs":[],"name":"MintEnded","type":"error"},{"inputs":[],"name":"MintNotStarted","type":"error"},{"inputs":[],"name":"TooManyTokensForModule","type":"error"},{"inputs":[],"name":"TooManyTokensPerCollector","type":"error"},{"inputs":[],"name":"TooManyTokensPerTransaction","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_contract","type":"address"},{"components":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint64","name":"mintStart","type":"uint64"},{"internalType":"uint64","name":"mintEnd","type":"uint64"},{"internalType":"uint32","name":"maxPerWallet","type":"uint32"},{"internalType":"uint32","name":"maxPerTransaction","type":"uint32"},{"internalType":"uint32","name":"maxForModule","type":"uint32"},{"internalType":"uint32","name":"maxSupply","type":"uint32"}],"indexed":false,"internalType":"struct BasicMintConfiguration","name":"_config","type":"tuple"}],"name":"ConfigurationUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"}],"name":"configuration","outputs":[{"components":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint64","name":"mintStart","type":"uint64"},{"internalType":"uint64","name":"mintEnd","type":"uint64"},{"internalType":"uint32","name":"maxPerWallet","type":"uint32"},{"internalType":"uint32","name":"maxPerTransaction","type":"uint32"},{"internalType":"uint32","name":"maxForModule","type":"uint32"},{"internalType":"uint32","name":"maxSupply","type":"uint32"}],"internalType":"struct BasicMintConfiguration","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractVersion","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"address","name":"_referrer","type":"address"},{"internalType":"uint256","name":"_quantity","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintPayout","outputs":[{"internalType":"contract IMintPayout","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"address","name":"_referrer","type":"address"},{"internalType":"uint256","name":"_quantity","type":"uint256"}],"name":"mint_efficient_7e80c46e","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"mintedByContract","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"args","type":"bytes"}],"name":"updateConfiguration","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60c060405234801561001057600080fd5b50604051610fbb380380610fbb83398101604081905261002f91610045565b60016080526001600160a01b031660a052610075565b60006020828403121561005757600080fd5b81516001600160a01b038116811461006e57600080fd5b9392505050565b60805160a051610f136100a8600039600081816102a1015281816108e00152610b72015260006102580152610f136000f3fe60806040526004361061006b5760003560e01c8063a0a8e4601161004e578063a0a8e46014610246578063abb162d01461028f578063bf89fcd3146102e8578063efed70711461032357600080fd5b8015610070578063815138921461007057806387f2f93114610085575b600080fd5b61008361007e366004610c8a565b610343565b005b34801561009157600080fd5b506101c76100a0366004610cd5565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c08101919091525073ffffffffffffffffffffffffffffffffffffffff1660009081526020818152604091829020825160e0810184528154815260019091015467ffffffffffffffff808216938301939093526801000000000000000081049092169281019290925263ffffffff7001000000000000000000000000000000008204811660608401527401000000000000000000000000000000000000000082048116608084015278010000000000000000000000000000000000000000000000008204811660a08401527c01000000000000000000000000000000000000000000000000000000009091041660c082015290565b60405161023d9190600060e08201905082518252602083015167ffffffffffffffff80821660208501528060408601511660408501525050606083015163ffffffff80821660608501528060808601511660808501528060a08601511660a08501528060c08601511660c0850152505092915050565b60405180910390f35b34801561025257600080fd5b5061027a7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161023d565b34801561029b57600080fd5b506102c37f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161023d565b3480156102f457600080fd5b50610315610303366004610cd5565b60026020526000908152604090205481565b60405190815260200161023d565b34801561032f57600080fd5b5061008361033e366004610cf7565b610355565b61034f84848484610591565b50505050565b600061036382840184610d95565b3360008181526020818152604091829020845181559084015160019091018054838601516060870151608088015160a089015160c08a015163ffffffff9081167c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff9282167801000000000000000000000000000000000000000000000000029290921677ffffffffffffffffffffffffffffffffffffffffffffffff93821674010000000000000000000000000000000000000000027fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff9290951670010000000000000000000000000000000002919091167fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff67ffffffffffffffff96871668010000000000000000027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909816969099169590951795909517969096169290921717161791909117905551919250907f347dcf024ff81ae3ee3e6af91c3857828fc485ff63fa538cd22952fe2d7f836c90610584908490600060e08201905082518252602083015167ffffffffffffffff80821660208501528060408601511660408501525050606083015163ffffffff80821660608501528060808601511660808501528060a08601511660a08501528060c08601511660c0850152505092915050565b60405180910390a2505050565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260208181526040808320815160e0810183528154815260019091015467ffffffffffffffff808216948301949094526801000000000000000081049093169181019190915263ffffffff7001000000000000000000000000000000008304811660608301527401000000000000000000000000000000000000000083048116608083015278010000000000000000000000000000000000000000000000008304811660a08301527c010000000000000000000000000000000000000000000000000000000090920490911660c0820152908290036106b7576040517f524f409b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000816080015163ffffffff161180156106da5750806080015163ffffffff1682115b15610711576040517fbd8860f100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015163ffffffff16156107a557606081015173ffffffffffffffffffffffffffffffffffffffff80871660009081526001602090815260408083209389168352929052205463ffffffff9091169061076d908490610e94565b11156107a5576040517fb1c9261900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160a0015163ffffffff161180156107fb575060a081015173ffffffffffffffffffffffffffffffffffffffff861660009081526002602052604090205463ffffffff909116906107f9908490610e94565b115b15610832576040517fc0a8c7b300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806020015167ffffffffffffffff1642101561087a576040517f06290e4e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000816040015167ffffffffffffffff161180156108a55750806040015167ffffffffffffffff1642115b156108dc576040517f49084b9400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663b0e21e8a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610949573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096d9190610ead565b9050828183600001516109809190610e94565b61098a9190610ec6565b34146109c2576040517f569e8c1100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008260c0015163ffffffff16118015610a5e57508160c0015163ffffffff16838773ffffffffffffffffffffffffffffffffffffffff1663a2309ff86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a529190610ead565b610a5c9190610e94565b115b15610a95576040517fd05cb60900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808716600090815260016020908152604080832093891683529290529081208054859290610ad9908490610e94565b909155505073ffffffffffffffffffffffffffffffffffffffff861660009081526002602052604081208054859290610b13908490610e94565b90915550506040517f0fea4a2900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301523360248301528581166044830152606482018590527f00000000000000000000000000000000000000000000000000000000000000001690630fea4a299034906084016000604051808303818588803b158015610bb757600080fd5b505af1158015610bcb573d6000803e3d6000fd5b50506040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8981166004830152602482018890528a1693506340c10f1992506044019050600060405180830381600087803b158015610c4157600080fd5b505af1158015610c55573d6000803e3d6000fd5b50505050505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c8557600080fd5b919050565b60008060008060808587031215610ca057600080fd5b610ca985610c61565b9350610cb760208601610c61565b9250610cc560408601610c61565b9396929550929360600135925050565b600060208284031215610ce757600080fd5b610cf082610c61565b9392505050565b60008060208385031215610d0a57600080fd5b823567ffffffffffffffff80821115610d2257600080fd5b818501915085601f830112610d3657600080fd5b813581811115610d4557600080fd5b866020828501011115610d5757600080fd5b60209290920196919550909350505050565b803567ffffffffffffffff81168114610c8557600080fd5b803563ffffffff81168114610c8557600080fd5b600060e08284031215610da757600080fd5b60405160e0810181811067ffffffffffffffff82111715610df1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405282358152610e0460208401610d69565b6020820152610e1560408401610d69565b6040820152610e2660608401610d81565b6060820152610e3760808401610d81565b6080820152610e4860a08401610d81565b60a0820152610e5960c08401610d81565b60c08201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610ea757610ea7610e65565b92915050565b600060208284031215610ebf57600080fd5b5051919050565b8082028115828204841417610ea757610ea7610e6556fea2646970667358221220f9bd0d184e7baaf68125fda59f92c4c43b864e6edf443ce2f0d5a9eb8bbdd54464736f6c6343000815003300000000000000000000000000528e0000006f0000dcbe2f0065011d1fcd411a

Deployed Bytecode

0x60806040526004361061006b5760003560e01c8063a0a8e4601161004e578063a0a8e46014610246578063abb162d01461028f578063bf89fcd3146102e8578063efed70711461032357600080fd5b8015610070578063815138921461007057806387f2f93114610085575b600080fd5b61008361007e366004610c8a565b610343565b005b34801561009157600080fd5b506101c76100a0366004610cd5565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c08101919091525073ffffffffffffffffffffffffffffffffffffffff1660009081526020818152604091829020825160e0810184528154815260019091015467ffffffffffffffff808216938301939093526801000000000000000081049092169281019290925263ffffffff7001000000000000000000000000000000008204811660608401527401000000000000000000000000000000000000000082048116608084015278010000000000000000000000000000000000000000000000008204811660a08401527c01000000000000000000000000000000000000000000000000000000009091041660c082015290565b60405161023d9190600060e08201905082518252602083015167ffffffffffffffff80821660208501528060408601511660408501525050606083015163ffffffff80821660608501528060808601511660808501528060a08601511660a08501528060c08601511660c0850152505092915050565b60405180910390f35b34801561025257600080fd5b5061027a7f000000000000000000000000000000000000000000000000000000000000000181565b60405163ffffffff909116815260200161023d565b34801561029b57600080fd5b506102c37f00000000000000000000000000528e0000006f0000dcbe2f0065011d1fcd411a81565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161023d565b3480156102f457600080fd5b50610315610303366004610cd5565b60026020526000908152604090205481565b60405190815260200161023d565b34801561032f57600080fd5b5061008361033e366004610cf7565b610355565b61034f84848484610591565b50505050565b600061036382840184610d95565b3360008181526020818152604091829020845181559084015160019091018054838601516060870151608088015160a089015160c08a015163ffffffff9081167c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff9282167801000000000000000000000000000000000000000000000000029290921677ffffffffffffffffffffffffffffffffffffffffffffffff93821674010000000000000000000000000000000000000000027fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff9290951670010000000000000000000000000000000002919091167fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff67ffffffffffffffff96871668010000000000000000027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909816969099169590951795909517969096169290921717161791909117905551919250907f347dcf024ff81ae3ee3e6af91c3857828fc485ff63fa538cd22952fe2d7f836c90610584908490600060e08201905082518252602083015167ffffffffffffffff80821660208501528060408601511660408501525050606083015163ffffffff80821660608501528060808601511660808501528060a08601511660a08501528060c08601511660c0850152505092915050565b60405180910390a2505050565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260208181526040808320815160e0810183528154815260019091015467ffffffffffffffff808216948301949094526801000000000000000081049093169181019190915263ffffffff7001000000000000000000000000000000008304811660608301527401000000000000000000000000000000000000000083048116608083015278010000000000000000000000000000000000000000000000008304811660a08301527c010000000000000000000000000000000000000000000000000000000090920490911660c0820152908290036106b7576040517f524f409b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000816080015163ffffffff161180156106da5750806080015163ffffffff1682115b15610711576040517fbd8860f100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015163ffffffff16156107a557606081015173ffffffffffffffffffffffffffffffffffffffff80871660009081526001602090815260408083209389168352929052205463ffffffff9091169061076d908490610e94565b11156107a5576040517fb1c9261900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160a0015163ffffffff161180156107fb575060a081015173ffffffffffffffffffffffffffffffffffffffff861660009081526002602052604090205463ffffffff909116906107f9908490610e94565b115b15610832576040517fc0a8c7b300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806020015167ffffffffffffffff1642101561087a576040517f06290e4e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000816040015167ffffffffffffffff161180156108a55750806040015167ffffffffffffffff1642115b156108dc576040517f49084b9400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007f00000000000000000000000000528e0000006f0000dcbe2f0065011d1fcd411a73ffffffffffffffffffffffffffffffffffffffff1663b0e21e8a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610949573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096d9190610ead565b9050828183600001516109809190610e94565b61098a9190610ec6565b34146109c2576040517f569e8c1100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008260c0015163ffffffff16118015610a5e57508160c0015163ffffffff16838773ffffffffffffffffffffffffffffffffffffffff1663a2309ff86040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a529190610ead565b610a5c9190610e94565b115b15610a95576040517fd05cb60900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808716600090815260016020908152604080832093891683529290529081208054859290610ad9908490610e94565b909155505073ffffffffffffffffffffffffffffffffffffffff861660009081526002602052604081208054859290610b13908490610e94565b90915550506040517f0fea4a2900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301523360248301528581166044830152606482018590527f00000000000000000000000000528e0000006f0000dcbe2f0065011d1fcd411a1690630fea4a299034906084016000604051808303818588803b158015610bb757600080fd5b505af1158015610bcb573d6000803e3d6000fd5b50506040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8981166004830152602482018890528a1693506340c10f1992506044019050600060405180830381600087803b158015610c4157600080fd5b505af1158015610c55573d6000803e3d6000fd5b50505050505050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c8557600080fd5b919050565b60008060008060808587031215610ca057600080fd5b610ca985610c61565b9350610cb760208601610c61565b9250610cc560408601610c61565b9396929550929360600135925050565b600060208284031215610ce757600080fd5b610cf082610c61565b9392505050565b60008060208385031215610d0a57600080fd5b823567ffffffffffffffff80821115610d2257600080fd5b818501915085601f830112610d3657600080fd5b813581811115610d4557600080fd5b866020828501011115610d5757600080fd5b60209290920196919550909350505050565b803567ffffffffffffffff81168114610c8557600080fd5b803563ffffffff81168114610c8557600080fd5b600060e08284031215610da757600080fd5b60405160e0810181811067ffffffffffffffff82111715610df1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405282358152610e0460208401610d69565b6020820152610e1560408401610d69565b6040820152610e2660608401610d81565b6060820152610e3760808401610d81565b6080820152610e4860a08401610d81565b60a0820152610e5960c08401610d81565b60c08201529392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820180821115610ea757610ea7610e65565b92915050565b600060208284031215610ebf57600080fd5b5051919050565b8082028115828204841417610ea757610ea7610e6556fea2646970667358221220f9bd0d184e7baaf68125fda59f92c4c43b864e6edf443ce2f0d5a9eb8bbdd54464736f6c63430008150033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000528e0000006f0000dcbe2f0065011d1fcd411a

-----Decoded View---------------
Arg [0] : _mintPayout (address): 0x00528E0000006f0000DcBE2F0065011D1Fcd411a

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000000528e0000006f0000dcbe2f0065011d1fcd411a


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.