ETH Price: $2,671.96 (+1.40%)

Contract

0x000000000f30984DE6843bBC1d109c95EA6242ac
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00
Transaction Hash
Method
Block
From
To
Mint_efficient_7...205771382024-08-21 12:56:2344 hrs ago1724244983IN
0x00000000...5EA6242ac
0.0005 ETH0.000248491.35283208
Mint_efficient_7...205571852024-08-18 18:04:234 days ago1724004263IN
0x00000000...5EA6242ac
0.000203 ETH0.000282172.44730763
Mint_efficient_7...205571832024-08-18 18:03:594 days ago1724004239IN
0x00000000...5EA6242ac
0.000203 ETH0.000391362.34913955
Mint_efficient_7...205544102024-08-18 8:46:595 days ago1723970819IN
0x00000000...5EA6242ac
0.000377 ETH0.000360872.16614688
Mint_efficient_7...205539992024-08-18 7:24:355 days ago1723965875IN
0x00000000...5EA6242ac
0.000777 ETH0.000329621.97857432
Mint_efficient_7...205538632024-08-18 6:57:235 days ago1723964243IN
0x00000000...5EA6242ac
0.000277 ETH0.000295521.77386645
Mint_efficient_7...205537772024-08-18 6:39:475 days ago1723963187IN
0x00000000...5EA6242ac
0.000777 ETH0.000334141.81896208
Mint_efficient_7...205498772024-08-17 17:37:115 days ago1723916231IN
0x00000000...5EA6242ac
0.0002 ETH0.000260491.86955329
Mint_efficient_7...204967592024-08-10 7:36:3513 days ago1723275395IN
0x00000000...5EA6242ac
0.0002 ETH0.000185991.33482913
Mint_efficient_7...204705822024-08-06 15:59:5916 days ago1722959999IN
0x00000000...5EA6242ac
0.00597 ETH0.001385437.54289378
Mint_efficient_7...204124982024-07-29 13:24:2324 days ago1722259463IN
0x00000000...5EA6242ac
0.0003 ETH0.000584453.91010612
Mint_efficient_7...204120692024-07-29 11:57:5924 days ago1722254279IN
0x00000000...5EA6242ac
0.0003 ETH0.000435532.91381409
Mint_efficient_7...204118362024-07-29 11:11:2324 days ago1722251483IN
0x00000000...5EA6242ac
0.0003 ETH0.00029361.96428722
Mint_efficient_7...204117962024-07-29 11:03:2324 days ago1722251003IN
0x00000000...5EA6242ac
0.0003 ETH0.000310452.07698154
Mint_efficient_7...204116552024-07-29 10:35:1124 days ago1722249311IN
0x00000000...5EA6242ac
0.0003 ETH0.000400092.63055975
Mint_efficient_7...204116542024-07-29 10:34:5924 days ago1722249299IN
0x00000000...5EA6242ac
0.0003 ETH0.000410762.70070538
Mint_efficient_7...204116042024-07-29 10:24:5924 days ago1722248699IN
0x00000000...5EA6242ac
0.0003 ETH0.000478782.60671174
Mint_efficient_7...203960582024-07-27 6:21:4727 days ago1722061307IN
0x00000000...5EA6242ac
0.0002 ETH0.000211631.51884178
Mint_efficient_7...203737862024-07-24 3:42:5930 days ago1721792579IN
0x00000000...5EA6242ac
0.9018 ETH0.000700494.70500714
Mint_efficient_7...203737782024-07-24 3:41:2330 days ago1721792483IN
0x00000000...5EA6242ac
0.9018 ETH0.000611784.10919638
Mint_efficient_7...203737692024-07-24 3:39:3530 days ago1721792375IN
0x00000000...5EA6242ac
0.9018 ETH0.000563513.78495364
Mint_efficient_7...203737582024-07-24 3:37:2330 days ago1721792243IN
0x00000000...5EA6242ac
0.9018 ETH0.000508893.41811151
Mint_efficient_7...203737502024-07-24 3:35:4730 days ago1721792147IN
0x00000000...5EA6242ac
0.9018 ETH0.000628094.2187474
Mint_efficient_7...203737292024-07-24 3:31:3530 days ago1721791895IN
0x00000000...5EA6242ac
0.9018 ETH0.000613144.11832088
Mint_efficient_7...203737172024-07-24 3:29:1130 days ago1721791751IN
0x00000000...5EA6242ac
0.9018 ETH0.000534113.58745988
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
205771382024-08-21 12:56:2344 hrs ago1724244983
0x00000000...5EA6242ac
0.0005 ETH
205571852024-08-18 18:04:234 days ago1724004263
0x00000000...5EA6242ac
0.000203 ETH
205571832024-08-18 18:03:594 days ago1724004239
0x00000000...5EA6242ac
0.000203 ETH
205544102024-08-18 8:46:595 days ago1723970819
0x00000000...5EA6242ac
0.000377 ETH
205539992024-08-18 7:24:355 days ago1723965875
0x00000000...5EA6242ac
0.000777 ETH
205538632024-08-18 6:57:235 days ago1723964243
0x00000000...5EA6242ac
0.000277 ETH
205537772024-08-18 6:39:475 days ago1723963187
0x00000000...5EA6242ac
0.000777 ETH
205498772024-08-17 17:37:115 days ago1723916231
0x00000000...5EA6242ac
0.0002 ETH
204967592024-08-10 7:36:3513 days ago1723275395
0x00000000...5EA6242ac
0.0002 ETH
204705822024-08-06 15:59:5916 days ago1722959999
0x00000000...5EA6242ac
0.00597 ETH
204124982024-07-29 13:24:2324 days ago1722259463
0x00000000...5EA6242ac
0.0003 ETH
204120692024-07-29 11:57:5924 days ago1722254279
0x00000000...5EA6242ac
0.0003 ETH
204118362024-07-29 11:11:2324 days ago1722251483
0x00000000...5EA6242ac
0.0003 ETH
204117962024-07-29 11:03:2324 days ago1722251003
0x00000000...5EA6242ac
0.0003 ETH
204116552024-07-29 10:35:1124 days ago1722249311
0x00000000...5EA6242ac
0.0003 ETH
204116542024-07-29 10:34:5924 days ago1722249299
0x00000000...5EA6242ac
0.0003 ETH
204116042024-07-29 10:24:5924 days ago1722248699
0x00000000...5EA6242ac
0.0003 ETH
203960582024-07-27 6:21:4727 days ago1722061307
0x00000000...5EA6242ac
0.0002 ETH
203737862024-07-24 3:42:5930 days ago1721792579
0x00000000...5EA6242ac
0.9018 ETH
203737782024-07-24 3:41:2330 days ago1721792483
0x00000000...5EA6242ac
0.9018 ETH
203737692024-07-24 3:39:3530 days ago1721792375
0x00000000...5EA6242ac
0.9018 ETH
203737582024-07-24 3:37:2330 days ago1721792243
0x00000000...5EA6242ac
0.9018 ETH
203737502024-07-24 3:35:4730 days ago1721792147
0x00000000...5EA6242ac
0.9018 ETH
203737292024-07-24 3:31:3530 days ago1721791895
0x00000000...5EA6242ac
0.9018 ETH
203737172024-07-24 3:29:1130 days ago1721791751
0x00000000...5EA6242ac
0.9018 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
Loading...
Loading
[ 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.