ETH Price: $3,341.13 (-1.07%)
Gas: 5.51 Gwei

Contract

0x8b0Fdc91A4e0259ec6a29b3507a7Ea6E1d04A8fF
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Create Collectio...151263802022-07-12 6:57:45895 days ago1657609065IN
0x8b0Fdc91...E1d04A8fF
0.1 ETH0.0310266117.26417901
Create Collectio...150944142022-07-07 8:36:19900 days ago1657182979IN
0x8b0Fdc91...E1d04A8fF
0.1 ETH0.006603087.59190344
Create Collectio...150941692022-07-07 7:48:55900 days ago1657180135IN
0x8b0Fdc91...E1d04A8fF
0.1 ETH0.01088813.32674563
Create Collectio...150933402022-07-07 4:45:23900 days ago1657169123IN
0x8b0Fdc91...E1d04A8fF
0.1 ETH0.0149478516.67479511
Create Collectio...150882522022-07-06 10:00:07901 days ago1657101607IN
0x8b0Fdc91...E1d04A8fF
0.1 ETH0.0237672324.16749356
Create Collectio...150881682022-07-06 9:41:39901 days ago1657100499IN
0x8b0Fdc91...E1d04A8fF
0.1 ETH0.0201158624.0450132
Create Collectio...150878132022-07-06 8:13:14901 days ago1657095194IN
0x8b0Fdc91...E1d04A8fF
0.1 ETH0.0118243714.61206154
Create Collectio...150877132022-07-06 7:46:55901 days ago1657093615IN
0x8b0Fdc91...E1d04A8fF
0.1 ETH0.0112717513.43711997
Create Collectio...150866532022-07-06 3:45:23901 days ago1657079123IN
0x8b0Fdc91...E1d04A8fF
0.1 ETH0.0219752223.39895662
Create Collectio...150809702022-07-05 6:47:42902 days ago1657003662IN
0x8b0Fdc91...E1d04A8fF
0.1 ETH0.0144088917.19102409
Create Collectio...150746552022-07-04 7:27:01903 days ago1656919621IN
0x8b0Fdc91...E1d04A8fF
0.1 ETH0.009958988.81275014
Create Collectio...150708622022-07-03 17:17:34903 days ago1656868654IN
0x8b0Fdc91...E1d04A8fF
0.1 ETH0.0411260638.64192827
Create Collectio...150571412022-07-01 14:33:32905 days ago1656686012IN
0x8b0Fdc91...E1d04A8fF
0.1 ETH0.0275853131.95129489
Create Collectio...150499062022-06-30 10:30:07907 days ago1656585007IN
0x8b0Fdc91...E1d04A8fF
0.1 ETH0.0302635134.16849351
Create Collectio...150497032022-06-30 9:38:24907 days ago1656581904IN
0x8b0Fdc91...E1d04A8fF
0.1 ETH0.0592862567.94690757
Add Collection150389962022-06-28 9:25:17909 days ago1656408317IN
0x8b0Fdc91...E1d04A8fF
0 ETH0.0017978435.19876839
Add Collection150328852022-06-27 6:04:20910 days ago1656309860IN
0x8b0Fdc91...E1d04A8fF
0 ETH0.0019409238
Add Collection150328772022-06-27 6:02:43910 days ago1656309763IN
0x8b0Fdc91...E1d04A8fF
0 ETH0.0025907238

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
151263802022-07-12 6:57:45895 days ago1657609065
0x8b0Fdc91...E1d04A8fF
 Contract Creation0 ETH
151263802022-07-12 6:57:45895 days ago1657609065
0x8b0Fdc91...E1d04A8fF
0.1 ETH
150944142022-07-07 8:36:19900 days ago1657182979
0x8b0Fdc91...E1d04A8fF
 Contract Creation0 ETH
150944142022-07-07 8:36:19900 days ago1657182979
0x8b0Fdc91...E1d04A8fF
0.1 ETH
150941692022-07-07 7:48:55900 days ago1657180135
0x8b0Fdc91...E1d04A8fF
 Contract Creation0 ETH
150941692022-07-07 7:48:55900 days ago1657180135
0x8b0Fdc91...E1d04A8fF
0.1 ETH
150933402022-07-07 4:45:23900 days ago1657169123
0x8b0Fdc91...E1d04A8fF
 Contract Creation0 ETH
150933402022-07-07 4:45:23900 days ago1657169123
0x8b0Fdc91...E1d04A8fF
0.1 ETH
150882522022-07-06 10:00:07901 days ago1657101607
0x8b0Fdc91...E1d04A8fF
 Contract Creation0 ETH
150882522022-07-06 10:00:07901 days ago1657101607
0x8b0Fdc91...E1d04A8fF
0.1 ETH
150881682022-07-06 9:41:39901 days ago1657100499
0x8b0Fdc91...E1d04A8fF
 Contract Creation0 ETH
150881682022-07-06 9:41:39901 days ago1657100499
0x8b0Fdc91...E1d04A8fF
0.1 ETH
150878132022-07-06 8:13:14901 days ago1657095194
0x8b0Fdc91...E1d04A8fF
 Contract Creation0 ETH
150878132022-07-06 8:13:14901 days ago1657095194
0x8b0Fdc91...E1d04A8fF
0.1 ETH
150877132022-07-06 7:46:55901 days ago1657093615
0x8b0Fdc91...E1d04A8fF
 Contract Creation0 ETH
150877132022-07-06 7:46:55901 days ago1657093615
0x8b0Fdc91...E1d04A8fF
0.1 ETH
150866532022-07-06 3:45:23901 days ago1657079123
0x8b0Fdc91...E1d04A8fF
 Contract Creation0 ETH
150866532022-07-06 3:45:23901 days ago1657079123
0x8b0Fdc91...E1d04A8fF
0.1 ETH
150809702022-07-05 6:47:42902 days ago1657003662
0x8b0Fdc91...E1d04A8fF
 Contract Creation0 ETH
150809702022-07-05 6:47:42902 days ago1657003662
0x8b0Fdc91...E1d04A8fF
0.1 ETH
150746552022-07-04 7:27:01903 days ago1656919621
0x8b0Fdc91...E1d04A8fF
 Contract Creation0 ETH
150746552022-07-04 7:27:01903 days ago1656919621
0x8b0Fdc91...E1d04A8fF
0.1 ETH
150708622022-07-03 17:17:34903 days ago1656868654
0x8b0Fdc91...E1d04A8fF
 Contract Creation0 ETH
150708622022-07-03 17:17:34903 days ago1656868654
0x8b0Fdc91...E1d04A8fF
0.1 ETH
150571412022-07-01 14:33:32905 days ago1656686012
0x8b0Fdc91...E1d04A8fF
 Contract Creation0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DixelClubV2Factory

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 1500 runs

Other Settings:
default evmVersion
File 1 of 8 : DixelClubV2Factory.sol
// SPDX-License-Identifier: BSD-3-Clause

pragma solidity ^0.8.13;

import "@openzeppelin/contracts/access/Ownable.sol";
import "./lib/StringUtils.sol";
import "./Constants.sol";
import "./Shared.sol";
import "./IDixelClubV2NFT.sol";

contract DixelClubV2Factory is Constants, Ownable {
    error DixelClubV2Factory__BlankedName();
    error DixelClubV2Factory__BlankedSymbol();
    error DixelClubV2Factory__DescriptionTooLong();
    error DixelClubV2Factory__InvalidMaxSupply();
    error DixelClubV2Factory__InvalidRoyalty();
    error DixelClubV2Factory__NameContainedMalicious();
    error DixelClubV2Factory__SymbolContainedMalicious();
    error DixelClubV2Factory__DescriptionContainedMalicious();
    error DixelClubV2Factory__InvalidCreationFee();
    error DixelClubV2Factory__ZeroAddress();
    error DixelClubV2Factory__InvalidFee();

    /**
     *  EIP-1167: Minimal Proxy Contract - ERC721 Token implementation contract
     *  REF: https://github.com/optionality/clone-factory
     */
    address public nftImplementation;

    address public beneficiary = address(0x82CA6d313BffE56E9096b16633dfD414148D66b1);
    uint256 public creationFee = 0.1 ether; // need to be updated for each chain
    uint256 public mintingFee = 500; // 5%;

    // Array of all created nft collections
    address[] public collections;

    event CollectionCreated(address indexed nftAddress, string name, string symbol);

    constructor(address DixelClubV2NFTImpl) {
        nftImplementation = DixelClubV2NFTImpl;
    }

    function _createClone(address target) private returns (address result) {
        bytes20 targetBytes = bytes20(target);
        assembly {
            let clone := mload(0x40)
            mstore(clone, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000)
            mstore(add(clone, 0x14), targetBytes)
            mstore(add(clone, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000)
            result := create(0, clone, 0x37)
        }
    }

    function createCollection(
        string calldata name,
        string calldata symbol,
        string calldata description,
        Shared.MetaData memory metaData,
        uint24[PALETTE_SIZE] calldata palette,
        uint8[PIXEL_ARRAY_SIZE] calldata pixels
    ) external payable returns (address) {
        if(msg.value != creationFee) revert DixelClubV2Factory__InvalidCreationFee();
        if(bytes(name).length == 0) revert DixelClubV2Factory__BlankedName();
        if(bytes(symbol).length == 0) revert DixelClubV2Factory__BlankedSymbol();
        if(bytes(description).length > 1000) revert DixelClubV2Factory__DescriptionTooLong(); // ~900 gas per character
        if(metaData.maxSupply == 0 || metaData.maxSupply > MAX_SUPPLY) revert DixelClubV2Factory__InvalidMaxSupply();
        if(metaData.royaltyFriction > MAX_ROYALTY_FRACTION) revert DixelClubV2Factory__InvalidRoyalty();

        // Validate `symbol`, `name` and `description` to ensure generateJSON() creates a valid JSON
        if(!StringUtils.validJSONValue(name)) revert DixelClubV2Factory__NameContainedMalicious();
        if(!StringUtils.validJSONValue(symbol)) revert DixelClubV2Factory__SymbolContainedMalicious();
        if(!StringUtils.validJSONValue(description)) revert DixelClubV2Factory__DescriptionContainedMalicious();

        // Neutralize minting starts date
        if (metaData.mintingBeginsFrom < block.timestamp) {
            metaData.mintingBeginsFrom = uint40(block.timestamp);
        }

        if (creationFee > 0) {
            // Send fee to the beneficiary
            (bool sent, ) = beneficiary.call{ value: creationFee }("");
            require(sent, "CREATION_FEE_TRANSFER_FAILED");
        }

        address nftAddress = _createClone(nftImplementation);
        IDixelClubV2NFT newNFT = IDixelClubV2NFT(nftAddress);
        newNFT.init(msg.sender, name, symbol, description, metaData, palette, pixels);

        collections.push(nftAddress);

        emit CollectionCreated(nftAddress, name, symbol);

        return nftAddress;
    }

    // MARK: Admin functions

    // Admin functions to add a NFT to the collections manually for migration
    function addCollection(address nftAddress) external onlyOwner {
        collections.push(nftAddress);
    }

    // This will update NFT contract implementaion and it won't affect existing collections
    function updateImplementation(address newImplementation) external onlyOwner {
        nftImplementation = newImplementation;
    }

    function updateBeneficiary(address newAddress) external onlyOwner {
      if(newAddress == address(0)) revert DixelClubV2Factory__ZeroAddress();
      beneficiary = newAddress;
    }

    function updateMintingFee(uint256 newMintingFee) external onlyOwner {
      if(newMintingFee > FRICTION_BASE) revert DixelClubV2Factory__InvalidFee();
      mintingFee = newMintingFee;
    }

    function updateCreationFee(uint256 newCreationFee) external onlyOwner {
      creationFee = newCreationFee;
    }

    // MARK: - Utility functions

    function collectionCount() external view returns (uint256) {
        return collections.length;
    }
}

File 2 of 8 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 3 of 8 : StringUtils.sol
// SPDX-License-Identifier: BSD-3-Clause

import "@openzeppelin/contracts/utils/Strings.sol";

pragma solidity ^0.8.13;

library StringUtils {
    // Check if haystack has any invalid character for JSON value:
    // - ": 0x22
    // - \: 0x5c
    // - any control characters: 0x00-0x1f (except new line = 0x0a), 0x7f
    function validJSONValue(string calldata haystack) internal pure returns (bool) {
        bytes memory haystackBytes = bytes(haystack);
        uint256 length = haystackBytes.length;
        for (uint256 i; i != length;) {
            bytes1 char = haystackBytes[i];
            if ((char < 0x20 && char != 0x0a) || char == 0x22 || char == 0x5c || char == 0x7f) {
                return false;
            }

            unchecked {
                ++i;
            }
        }

        return true;
    }

    function address2str(address addr) internal pure returns (string memory) {
        return Strings.toHexString(uint160(addr), 20);
    }
}

File 4 of 8 : Constants.sol
// SPDX-License-Identifier: BSD-3-Clause

pragma solidity ^0.8.13;

abstract contract Constants {
    uint256 public constant MAX_SUPPLY = 1000000; // 1M hardcap max
    uint256 public constant MAX_ROYALTY_FRACTION = 1000; // 10%
    uint256 public constant FRICTION_BASE = 10000;

    uint256 internal constant PALETTE_SIZE = 16; // 16 colors max - equal to the data type max value of CANVAS_SIZE (2^8 = 16)
    uint256 internal constant CANVAS_SIZE = 24; // 24x24 pixels
    uint256 internal constant TOTAL_PIXEL_COUNT = CANVAS_SIZE * CANVAS_SIZE; // 24x24
    uint256 internal constant PIXEL_ARRAY_SIZE = TOTAL_PIXEL_COUNT / 2; // packing 2 pixels in each uint8
}

File 5 of 8 : Shared.sol
// SPDX-License-Identifier: BSD-3-Clause

pragma solidity ^0.8.13;

library Shared {
    struct MetaData {
        bool whitelistOnly;
        bool hidden;
        uint24 maxSupply; // can be minted up to MAX_SUPPLY
        uint24 royaltyFriction; // used for `royaltyInfo` (ERC2981) and `seller_fee_basis_points` (Opeansea's Contract-level metadata)
        uint40 mintingBeginsFrom; // Timestamp that minting event begins
        uint152 mintingCost; // Native token (ETH, BNB, KLAY, etc)
    }
}

File 6 of 8 : IDixelClubV2NFT.sol
// SPDX-License-Identifier: BSD-3-Clause

pragma solidity ^0.8.13;

import "./Shared.sol";

interface IDixelClubV2NFT {
    function init(
        address owner_,
        string calldata name_,
        string calldata symbol_,
        string calldata description_,
        Shared.MetaData calldata metaData_,
        uint24[16] calldata palette_,
        uint8[288] calldata pixels_
    ) external;
}

File 7 of 8 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

File 8 of 8 : Strings.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Strings.sol)

pragma solidity ^0.8.0;

/**
 * @dev String operations.
 */
library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";

    /**
     * @dev Converts a `uint256` to its ASCII `string` decimal representation.
     */
    function toString(uint256 value) internal pure returns (string memory) {
        // Inspired by OraclizeAPI's implementation - MIT licence
        // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol

        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.
     */
    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.
     */
    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 1500
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"DixelClubV2NFTImpl","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"DixelClubV2Factory__BlankedName","type":"error"},{"inputs":[],"name":"DixelClubV2Factory__BlankedSymbol","type":"error"},{"inputs":[],"name":"DixelClubV2Factory__DescriptionContainedMalicious","type":"error"},{"inputs":[],"name":"DixelClubV2Factory__DescriptionTooLong","type":"error"},{"inputs":[],"name":"DixelClubV2Factory__InvalidCreationFee","type":"error"},{"inputs":[],"name":"DixelClubV2Factory__InvalidFee","type":"error"},{"inputs":[],"name":"DixelClubV2Factory__InvalidMaxSupply","type":"error"},{"inputs":[],"name":"DixelClubV2Factory__InvalidRoyalty","type":"error"},{"inputs":[],"name":"DixelClubV2Factory__NameContainedMalicious","type":"error"},{"inputs":[],"name":"DixelClubV2Factory__SymbolContainedMalicious","type":"error"},{"inputs":[],"name":"DixelClubV2Factory__ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"nftAddress","type":"address"},{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"string","name":"symbol","type":"string"}],"name":"CollectionCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"FRICTION_BASE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_ROYALTY_FRACTION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"nftAddress","type":"address"}],"name":"addCollection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"beneficiary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collectionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"collections","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"description","type":"string"},{"components":[{"internalType":"bool","name":"whitelistOnly","type":"bool"},{"internalType":"bool","name":"hidden","type":"bool"},{"internalType":"uint24","name":"maxSupply","type":"uint24"},{"internalType":"uint24","name":"royaltyFriction","type":"uint24"},{"internalType":"uint40","name":"mintingBeginsFrom","type":"uint40"},{"internalType":"uint152","name":"mintingCost","type":"uint152"}],"internalType":"struct Shared.MetaData","name":"metaData","type":"tuple"},{"internalType":"uint24[16]","name":"palette","type":"uint24[16]"},{"internalType":"uint8[288]","name":"pixels","type":"uint8[288]"}],"name":"createCollection","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"creationFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nftImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateBeneficiary","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newCreationFee","type":"uint256"}],"name":"updateCreationFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"updateImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMintingFee","type":"uint256"}],"name":"updateMintingFee","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600280546001600160a01b0319167382ca6d313bffe56e9096b16633dfd414148d66b117905567016345785d8a00006003556101f460045534801561004857600080fd5b50604051611407380380611407833981016040819052610067916100e5565b61007033610095565b600180546001600160a01b0319166001600160a01b0392909216919091179055610115565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100f757600080fd5b81516001600160a01b038116811461010e57600080fd5b9392505050565b6112e3806101246000396000f3fe6080604052600436106101295760003560e01c80638da5cb5b116100a5578063d57f966b11610074578063f2fde38b11610059578063f2fde38b146102e5578063f61ac58b14610305578063fdbda0ec1461032557600080fd5b8063d57f966b146102ba578063dce0b4e4146102cf57600080fd5b80638da5cb5b14610249578063a174e77a14610267578063c0275a2514610287578063d0936c43146102a757600080fd5b80633963d7eb116100fc5780636fa23795116100e15780636fa23795146101fe578063715018a61461021e5780638aae790e1461023357600080fd5b80633963d7eb146101d25780635a64ad95146101e857600080fd5b8063025b22bc1461012e5780630aaffd2a1461015057806332cb6b0c1461017057806338af3eed1461019a575b600080fd5b34801561013a57600080fd5b5061014e610149366004610e65565b610345565b005b34801561015c57600080fd5b5061014e61016b366004610e65565b6103d3565b34801561017c57600080fd5b50610187620f424081565b6040519081526020015b60405180910390f35b3480156101a657600080fd5b506002546101ba906001600160a01b031681565b6040516001600160a01b039091168152602001610191565b3480156101de57600080fd5b506101876103e881565b3480156101f457600080fd5b5061018760045481565b34801561020a57600080fd5b5061014e610219366004610e95565b61049c565b34801561022a57600080fd5b5061014e6104fb565b34801561023f57600080fd5b5061018761271081565b34801561025557600080fd5b506000546001600160a01b03166101ba565b34801561027357600080fd5b5061014e610282366004610e65565b610561565b34801561029357600080fd5b5061014e6102a2366004610e95565b61061a565b6101ba6102b5366004610f7b565b6106b5565b3480156102c657600080fd5b50600554610187565b3480156102db57600080fd5b5061018760035481565b3480156102f157600080fd5b5061014e610300366004610e65565b610b0a565b34801561031157600080fd5b506001546101ba906001600160a01b031681565b34801561033157600080fd5b506101ba610340366004610e95565b610bec565b6000546001600160a01b031633146103a45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461042d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039b565b6001600160a01b03811661046d576040517f35dcc6a400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b031633146104f65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039b565b600355565b6000546001600160a01b031633146105555760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039b565b61055f6000610c16565b565b6000546001600160a01b031633146105bb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039b565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b031633146106745760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039b565b6127108111156106b0576040517ff3da6af800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600455565b600060035434146106f2576040517f1378c9d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600089900361072d576040517f5902e41500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000879003610768576040517f148d340500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103e88511156107a4576040517f5de678da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604084015162ffffff1615806107c55750620f4240846040015162ffffff16115b156107fc576040517f893c8e8e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103e8846060015162ffffff161115610841576040517fb0fe2b0900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61084b8a8a610c73565b610881576040517f4487b3bb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61088b8888610c73565b6108c1576040517fd85630b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108cb8686610c73565b610901576040517f298ef82700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b42846080015164ffffffffff1610156109225764ffffffffff421660808501525b600354156109d1576002546003546040516000926001600160a01b031691908381818185875af1925050503d8060008114610979576040519150601f19603f3d011682016040523d82523d6000602084013e61097e565b606091505b50509050806109cf5760405162461bcd60e51b815260206004820152601c60248201527f4352454154494f4e5f4645455f5452414e534645525f4641494c454400000000604482015260640161039b565b505b6001546000906109e9906001600160a01b0316610dfc565b90506000819050806001600160a01b0316630b9001c9338e8e8e8e8e8e8e8e8e6040518b63ffffffff1660e01b8152600401610a2e9a99989796959493929190611183565b600060405180830381600087803b158015610a4857600080fd5b505af1158015610a5c573d6000803e3d6000fd5b5050600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0386169081179091556040519092507f3454b57f2dca4f5a54e8358d096ac9d1a0d2dab98991ddb89ff9ea17462606179150610af3908f908f908f908f90611265565b60405180910390a2509a9950505050505050505050565b6000546001600160a01b03163314610b645760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039b565b6001600160a01b038116610be05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161039b565b610be981610c16565b50565b60058181548110610bfc57600080fd5b6000918252602090912001546001600160a01b0316905081565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008083838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052508451949550925050505b818114610dee576000838281518110610ccd57610ccd611297565b01602001516001600160f81b03191690507f200000000000000000000000000000000000000000000000000000000000000081108015610d3757507f0a000000000000000000000000000000000000000000000000000000000000006001600160f81b0319821614155b80610d6b57507f22000000000000000000000000000000000000000000000000000000000000006001600160f81b03198216145b80610d9f57507f5c000000000000000000000000000000000000000000000000000000000000006001600160f81b03198216145b80610dd357507f7f000000000000000000000000000000000000000000000000000000000000006001600160f81b03198216145b15610de5576000945050505050610df6565b50600101610cb2565b506001925050505b92915050565b6000808260601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f0949350505050565b600060208284031215610e7757600080fd5b81356001600160a01b0381168114610e8e57600080fd5b9392505050565b600060208284031215610ea757600080fd5b5035919050565b60008083601f840112610ec057600080fd5b50813567ffffffffffffffff811115610ed857600080fd5b602083019150836020828501011115610ef057600080fd5b9250929050565b80358015158114610f0757600080fd5b919050565b803562ffffff81168114610f0757600080fd5b803564ffffffffff81168114610f0757600080fd5b803572ffffffffffffffffffffffffffffffffffffff81168114610f0757600080fd5b806102008101831015610df657600080fd5b806124008101831015610df657600080fd5b6000806000806000806000806000898b03612720811215610f9b57600080fd5b8a3567ffffffffffffffff80821115610fb357600080fd5b610fbf8e838f01610eae565b909c509a5060208d0135915080821115610fd857600080fd5b610fe48e838f01610eae565b909a50985060408d0135915080821115610ffd57600080fd5b6110098e838f01610eae565b909850965086915060c0605f198401121561102357600080fd5b604051925060c083019150828210818311171561105057634e487b7160e01b600052604160045260246000fd5b5060405261106060608c01610ef7565b815261106e60808c01610ef7565b602082015261107f60a08c01610f0c565b604082015261109060c08c01610f0c565b60608201526110a160e08c01610f1f565b60808201526110b36101008c01610f34565b60a082015292506110c88b6101208c01610f57565b91506110d88b6103208c01610f69565b90509295985092959850929598565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8060005b60108110156111405762ffffff61112a83610f0c565b1684526020938401939190910190600101611114565b50505050565b806000805b61012081101561117c57823560ff8116808214611166578384fd5b865250602094850194929092019160010161114b565b5050505050565b60006127406001600160a01b038d1683528060208401526111a78184018c8e6110e7565b905082810360408401526111bc818a8c6110e7565b905082810360608401526111d181888a6110e7565b9150508451151560808301526020850151151560a0830152604085015162ffffff80821660c08501528060608801511660e0850152505064ffffffffff60808601511661010083015272ffffffffffffffffffffffffffffffffffffff60a086015116610120830152611248610140830185611110565b611256610340830184611146565b9b9a5050505050505050505050565b6040815260006112796040830186886110e7565b828103602084015261128c8185876110e7565b979650505050505050565b634e487b7160e01b600052603260045260246000fdfea26469706673582212206a3399d1d9da5527cd3432b9fc9b038613faa657cddf8c7768f86e97cee8db3264736f6c634300080d00330000000000000000000000003c176b2929fb96daeab9705b0a0959b1dda32d10

Deployed Bytecode

0x6080604052600436106101295760003560e01c80638da5cb5b116100a5578063d57f966b11610074578063f2fde38b11610059578063f2fde38b146102e5578063f61ac58b14610305578063fdbda0ec1461032557600080fd5b8063d57f966b146102ba578063dce0b4e4146102cf57600080fd5b80638da5cb5b14610249578063a174e77a14610267578063c0275a2514610287578063d0936c43146102a757600080fd5b80633963d7eb116100fc5780636fa23795116100e15780636fa23795146101fe578063715018a61461021e5780638aae790e1461023357600080fd5b80633963d7eb146101d25780635a64ad95146101e857600080fd5b8063025b22bc1461012e5780630aaffd2a1461015057806332cb6b0c1461017057806338af3eed1461019a575b600080fd5b34801561013a57600080fd5b5061014e610149366004610e65565b610345565b005b34801561015c57600080fd5b5061014e61016b366004610e65565b6103d3565b34801561017c57600080fd5b50610187620f424081565b6040519081526020015b60405180910390f35b3480156101a657600080fd5b506002546101ba906001600160a01b031681565b6040516001600160a01b039091168152602001610191565b3480156101de57600080fd5b506101876103e881565b3480156101f457600080fd5b5061018760045481565b34801561020a57600080fd5b5061014e610219366004610e95565b61049c565b34801561022a57600080fd5b5061014e6104fb565b34801561023f57600080fd5b5061018761271081565b34801561025557600080fd5b506000546001600160a01b03166101ba565b34801561027357600080fd5b5061014e610282366004610e65565b610561565b34801561029357600080fd5b5061014e6102a2366004610e95565b61061a565b6101ba6102b5366004610f7b565b6106b5565b3480156102c657600080fd5b50600554610187565b3480156102db57600080fd5b5061018760035481565b3480156102f157600080fd5b5061014e610300366004610e65565b610b0a565b34801561031157600080fd5b506001546101ba906001600160a01b031681565b34801561033157600080fd5b506101ba610340366004610e95565b610bec565b6000546001600160a01b031633146103a45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461042d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039b565b6001600160a01b03811661046d576040517f35dcc6a400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b031633146104f65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039b565b600355565b6000546001600160a01b031633146105555760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039b565b61055f6000610c16565b565b6000546001600160a01b031633146105bb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039b565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b031633146106745760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039b565b6127108111156106b0576040517ff3da6af800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600455565b600060035434146106f2576040517f1378c9d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600089900361072d576040517f5902e41500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000879003610768576040517f148d340500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103e88511156107a4576040517f5de678da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604084015162ffffff1615806107c55750620f4240846040015162ffffff16115b156107fc576040517f893c8e8e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103e8846060015162ffffff161115610841576040517fb0fe2b0900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61084b8a8a610c73565b610881576040517f4487b3bb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61088b8888610c73565b6108c1576040517fd85630b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108cb8686610c73565b610901576040517f298ef82700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b42846080015164ffffffffff1610156109225764ffffffffff421660808501525b600354156109d1576002546003546040516000926001600160a01b031691908381818185875af1925050503d8060008114610979576040519150601f19603f3d011682016040523d82523d6000602084013e61097e565b606091505b50509050806109cf5760405162461bcd60e51b815260206004820152601c60248201527f4352454154494f4e5f4645455f5452414e534645525f4641494c454400000000604482015260640161039b565b505b6001546000906109e9906001600160a01b0316610dfc565b90506000819050806001600160a01b0316630b9001c9338e8e8e8e8e8e8e8e8e6040518b63ffffffff1660e01b8152600401610a2e9a99989796959493929190611183565b600060405180830381600087803b158015610a4857600080fd5b505af1158015610a5c573d6000803e3d6000fd5b5050600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0386169081179091556040519092507f3454b57f2dca4f5a54e8358d096ac9d1a0d2dab98991ddb89ff9ea17462606179150610af3908f908f908f908f90611265565b60405180910390a2509a9950505050505050505050565b6000546001600160a01b03163314610b645760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039b565b6001600160a01b038116610be05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161039b565b610be981610c16565b50565b60058181548110610bfc57600080fd5b6000918252602090912001546001600160a01b0316905081565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008083838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052508451949550925050505b818114610dee576000838281518110610ccd57610ccd611297565b01602001516001600160f81b03191690507f200000000000000000000000000000000000000000000000000000000000000081108015610d3757507f0a000000000000000000000000000000000000000000000000000000000000006001600160f81b0319821614155b80610d6b57507f22000000000000000000000000000000000000000000000000000000000000006001600160f81b03198216145b80610d9f57507f5c000000000000000000000000000000000000000000000000000000000000006001600160f81b03198216145b80610dd357507f7f000000000000000000000000000000000000000000000000000000000000006001600160f81b03198216145b15610de5576000945050505050610df6565b50600101610cb2565b506001925050505b92915050565b6000808260601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f0949350505050565b600060208284031215610e7757600080fd5b81356001600160a01b0381168114610e8e57600080fd5b9392505050565b600060208284031215610ea757600080fd5b5035919050565b60008083601f840112610ec057600080fd5b50813567ffffffffffffffff811115610ed857600080fd5b602083019150836020828501011115610ef057600080fd5b9250929050565b80358015158114610f0757600080fd5b919050565b803562ffffff81168114610f0757600080fd5b803564ffffffffff81168114610f0757600080fd5b803572ffffffffffffffffffffffffffffffffffffff81168114610f0757600080fd5b806102008101831015610df657600080fd5b806124008101831015610df657600080fd5b6000806000806000806000806000898b03612720811215610f9b57600080fd5b8a3567ffffffffffffffff80821115610fb357600080fd5b610fbf8e838f01610eae565b909c509a5060208d0135915080821115610fd857600080fd5b610fe48e838f01610eae565b909a50985060408d0135915080821115610ffd57600080fd5b6110098e838f01610eae565b909850965086915060c0605f198401121561102357600080fd5b604051925060c083019150828210818311171561105057634e487b7160e01b600052604160045260246000fd5b5060405261106060608c01610ef7565b815261106e60808c01610ef7565b602082015261107f60a08c01610f0c565b604082015261109060c08c01610f0c565b60608201526110a160e08c01610f1f565b60808201526110b36101008c01610f34565b60a082015292506110c88b6101208c01610f57565b91506110d88b6103208c01610f69565b90509295985092959850929598565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8060005b60108110156111405762ffffff61112a83610f0c565b1684526020938401939190910190600101611114565b50505050565b806000805b61012081101561117c57823560ff8116808214611166578384fd5b865250602094850194929092019160010161114b565b5050505050565b60006127406001600160a01b038d1683528060208401526111a78184018c8e6110e7565b905082810360408401526111bc818a8c6110e7565b905082810360608401526111d181888a6110e7565b9150508451151560808301526020850151151560a0830152604085015162ffffff80821660c08501528060608801511660e0850152505064ffffffffff60808601511661010083015272ffffffffffffffffffffffffffffffffffffff60a086015116610120830152611248610140830185611110565b611256610340830184611146565b9b9a5050505050505050505050565b6040815260006112796040830186886110e7565b828103602084015261128c8185876110e7565b979650505050505050565b634e487b7160e01b600052603260045260246000fdfea26469706673582212206a3399d1d9da5527cd3432b9fc9b038613faa657cddf8c7768f86e97cee8db3264736f6c634300080d0033

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

0000000000000000000000003c176b2929fb96daeab9705b0a0959b1dda32d10

-----Decoded View---------------
Arg [0] : DixelClubV2NFTImpl (address): 0x3c176B2929FB96DaeaB9705B0A0959B1DDa32D10

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000003c176b2929fb96daeab9705b0a0959b1dda32d10


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.