ETH Price: $3,240.76 (-0.79%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Owner155704072022-09-19 22:04:11865 days ago1663625051IN
0x279C4e78...c6C7e68Be
0 ETH0.00023418.20114181
Batch Mint152835182022-08-05 16:52:46910 days ago1659718366IN
0x279C4e78...c6C7e68Be
0 ETH0.0065585220.9503408
Batch Mint152832052022-08-05 15:46:18910 days ago1659714378IN
0x279C4e78...c6C7e68Be
0 ETH0.0066035530.24174772
Batch Mint152642182022-08-02 16:41:24913 days ago1659458484IN
0x279C4e78...c6C7e68Be
0 ETH0.056016224.33850113
Batch Mint152641702022-08-02 16:32:52913 days ago1659457972IN
0x279C4e78...c6C7e68Be
0 ETH0.0140023637.09499784
Set Owner152641222022-08-02 16:20:12913 days ago1659457212IN
0x279C4e78...c6C7e68Be
0 ETH0.0009369932.82406762

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ASSEMBLY

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 4 : ASSEMBLY.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

/*

███╗   ███╗███████╗████████╗ █████╗ ██╗      █████╗ ██████╗ ███████╗██╗
████╗ ████║██╔════╝╚══██╔══╝██╔══██╗██║     ██╔══██╗██╔══██╗██╔════╝██║
██╔████╔██║█████╗     ██║   ███████║██║     ███████║██████╔╝█████╗  ██║
██║╚██╔╝██║██╔══╝     ██║   ██╔══██║██║     ██╔══██║██╔══██╗██╔══╝  ██║
██║ ╚═╝ ██║███████╗   ██║   ██║  ██║███████╗██║  ██║██████╔╝███████╗███████╗
╚═╝     ╚═╝╚══════╝   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝╚═════╝ ╚══════╝╚══════╝

 █████╗ ███████╗███████╗███████╗███╗   ███╗██████╗ ██╗  ██╗   ██╗     ██████╗  ██████╗  ██╗
██╔══██╗██╔════╝██╔════╝██╔════╝████╗ ████║██╔══██╗██║  ╚██╗ ██╔╝    ██╔═████╗██╔═████╗███║
███████║███████╗███████╗█████╗  ██╔████╔██║██████╔╝██║   ╚████╔╝     ██║██╔██║██║██╔██║╚██║
██╔══██║╚════██║╚════██║██╔══╝  ██║╚██╔╝██║██╔══██╗██║    ╚██╔╝      ████╔╝██║████╔╝██║ ██║
██║  ██║███████║███████║███████╗██║ ╚═╝ ██║██████╔╝███████╗██║       ╚██████╔╝╚██████╔╝ ██║
╚═╝  ╚═╝╚══════╝╚══════╝╚══════╝╚═╝     ╚═╝╚═════╝ ╚══════╝╚═╝        ╚═════╝  ╚═════╝  ╚═╝


Metalabel — ASSEMBLY 001 Member

Holders of the ASSEMBLY 001 membership NFT are graduates of Metalabel's
application-only laboratory program exploring creativity in multiplayer mode.
The only way to hold this NFT is to be part of a cultural collective or creative
project that completed ASSEMBLY 001.

Deployed by Metalabel with 💖 as a permanent application on the Ethereum blockchain.

https://assembly.metalabel.xyz/

Anna Bulbrook
Lauren Dorman
Rob Kalin
Austin Robey
Yancey Strickler
Brandon Valosek
Ilya Yudanov

*/

import {ERC721} from "solmate/src/tokens/ERC721.sol";
import {Owned} from "solmate/src/auth/Owned.sol";
import {Strings} from "@openzeppelin/contracts/utils/Strings.sol";

interface IMetadataResolver {
    function resolve(address _contract, uint256 _id)
        external
        view
        returns (string memory);
}

contract ASSEMBLY is ERC721, Owned {
    // ---
    // events
    // ---

    /// @notice The external metadata resolver was set.
    event MetadataResolverSet(IMetadataResolver resolver);

    /// @notice The contract metadata URI was set.
    event ContractURISet(string uri);

    /// @notice The token metadata base URI was set.
    event TokenMetadataBaseURISet(string uri);

    /// @notice The transfer lock was permanently removed.
    event TokenTransferLockBurned();

    /// @notice The owner transfer control was permanently removed.
    event OwnerTransferControlBurned();

    // ---
    // storage
    // ---

    /// @notice If set, metadata is resolved by an external contract.
    IMetadataResolver public metadataResolver;

    /// @notice Total number of minted tokens.
    uint256 public totalSupply;

    /// @notice The URI for the collection-level metadata, checked by OpenSea.
    string public contractURI;

    /// @notice the URI prefix for token-level metadata.
    string public tokenMetadataBaseURI;

    /// @notice If true, normal token transfers are enabled. Once set, it cannot be unset.
    bool public isTransferLockBurned;

    /// @notice If true, contract owner no longer has unilateral transfer
    /// privileges. Once set, it cannot be unset.
    bool public isOwnerTransferControlBurned;

    // ---
    // constructor
    // ---

    constructor(string memory _contractURI, string memory _tokenURI)
        ERC721("Metalabel ASSEMBLY 001", "ASSEMBLY-001")
        Owned(msg.sender)
    {
        contractURI = _contractURI;
        tokenMetadataBaseURI = _tokenURI;
    }

    // ---
    // Owner functionality
    // ---

    /// @notice Mint NFTs to an array of recipients. Only callable by owner.
    function batchMint(address[] calldata recipients) external onlyOwner {
        // copy to memory to avoid incrementing the storage variable
        uint256 tokenId = totalSupply;

        for (uint256 i = 0; i < recipients.length; i++) {
            _mint(recipients[i], ++tokenId);
        }

        // update total supply to be last issued token ID
        totalSupply = tokenId;
    }

    /// @notice Set the metadata resolver. Only callable by owner.
    function setMetadataResolver(IMetadataResolver resolver)
        external
        onlyOwner
    {
        metadataResolver = resolver;
        emit MetadataResolverSet(resolver);
    }

    /// @notice Update the contract metadata URI. Only callable by owner.
    function setContractURI(string calldata uri) external onlyOwner {
        contractURI = uri;
        emit ContractURISet(uri);
    }

    //// @notice Update the token metadata base URI. Only callable by owner.
    function setTokenURI(string calldata uri) external onlyOwner {
        tokenMetadataBaseURI = uri;
        emit TokenMetadataBaseURISet(uri);
    }

    /// @notice Permanently remove the transfer lock. Only callable by owner.
    function burnTransferLock() external onlyOwner {
        isTransferLockBurned = true;
        emit TokenTransferLockBurned();
    }

    /// @notice Permanently remove the owner transfer control. Only callable by owner.
    function burnOwnerTransferControl() external onlyOwner {
        isOwnerTransferControlBurned = true;
        emit OwnerTransferControlBurned();
    }

    /// @notice Transfer a token to a new owner. Only callable by owner. Not
    /// callable if the owner transfer control fuse has been burned.
    function adminTransfer(uint256 tokenId, address to) external onlyOwner {
        require(
            !isOwnerTransferControlBurned,
            "OWNER_TRANSFER_CONTROL_DISABLED"
        );

        address currentOwner = _ownerOf[tokenId];
        require(currentOwner != address(0), "NOT_MINTED");

        // transfer logic, copy-pasted from underlying erc721 implementation.
        // unchecked math since overflow not feasible.
        _ownerOf[tokenId] = to;
        unchecked {
            _balanceOf[currentOwner]--;
            _balanceOf[to]++;
        }
        emit Transfer(currentOwner, to, tokenId);
    }

    // ---
    // transfer functionality
    // ---

    function transferFrom(
        address from,
        address to,
        uint256 id
    ) public virtual override {
        require(isTransferLockBurned, "TRANSFER_LOCKED");

        ERC721.transferFrom(from, to, id);
    }

    // ---
    // metadata logic
    // ---

    /// @notice Return the metadata URI for a token.
    function tokenURI(uint256 tokenId)
        public
        view
        override
        returns (string memory)
    {
        // default to using an external resolver if we override it
        if (metadataResolver != IMetadataResolver(address(0))) {
            return metadataResolver.resolve(address(this), tokenId);
        }

        // otherwise concatenate the base URI and the token ID
        return
            string(
                abi.encodePacked(
                    tokenMetadataBaseURI,
                    Strings.toString(tokenId),
                    ".json"
                )
            );
    }
}

File 2 of 4 : ERC721.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Modern, minimalist, and gas efficient ERC-721 implementation.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC721.sol)
abstract contract ERC721 {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event Transfer(address indexed from, address indexed to, uint256 indexed id);

    event Approval(address indexed owner, address indexed spender, uint256 indexed id);

    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    /*//////////////////////////////////////////////////////////////
                         METADATA STORAGE/LOGIC
    //////////////////////////////////////////////////////////////*/

    string public name;

    string public symbol;

    function tokenURI(uint256 id) public view virtual returns (string memory);

    /*//////////////////////////////////////////////////////////////
                      ERC721 BALANCE/OWNER STORAGE
    //////////////////////////////////////////////////////////////*/

    mapping(uint256 => address) internal _ownerOf;

    mapping(address => uint256) internal _balanceOf;

    function ownerOf(uint256 id) public view virtual returns (address owner) {
        require((owner = _ownerOf[id]) != address(0), "NOT_MINTED");
    }

    function balanceOf(address owner) public view virtual returns (uint256) {
        require(owner != address(0), "ZERO_ADDRESS");

        return _balanceOf[owner];
    }

    /*//////////////////////////////////////////////////////////////
                         ERC721 APPROVAL STORAGE
    //////////////////////////////////////////////////////////////*/

    mapping(uint256 => address) public getApproved;

    mapping(address => mapping(address => bool)) public isApprovedForAll;

    /*//////////////////////////////////////////////////////////////
                               CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor(string memory _name, string memory _symbol) {
        name = _name;
        symbol = _symbol;
    }

    /*//////////////////////////////////////////////////////////////
                              ERC721 LOGIC
    //////////////////////////////////////////////////////////////*/

    function approve(address spender, uint256 id) public virtual {
        address owner = _ownerOf[id];

        require(msg.sender == owner || isApprovedForAll[owner][msg.sender], "NOT_AUTHORIZED");

        getApproved[id] = spender;

        emit Approval(owner, spender, id);
    }

    function setApprovalForAll(address operator, bool approved) public virtual {
        isApprovedForAll[msg.sender][operator] = approved;

        emit ApprovalForAll(msg.sender, operator, approved);
    }

    function transferFrom(
        address from,
        address to,
        uint256 id
    ) public virtual {
        require(from == _ownerOf[id], "WRONG_FROM");

        require(to != address(0), "INVALID_RECIPIENT");

        require(
            msg.sender == from || isApprovedForAll[from][msg.sender] || msg.sender == getApproved[id],
            "NOT_AUTHORIZED"
        );

        // Underflow of the sender's balance is impossible because we check for
        // ownership above and the recipient's balance can't realistically overflow.
        unchecked {
            _balanceOf[from]--;

            _balanceOf[to]++;
        }

        _ownerOf[id] = to;

        delete getApproved[id];

        emit Transfer(from, to, id);
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 id
    ) public virtual {
        transferFrom(from, to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, "") ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        bytes calldata data
    ) public virtual {
        transferFrom(from, to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, data) ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    /*//////////////////////////////////////////////////////////////
                              ERC165 LOGIC
    //////////////////////////////////////////////////////////////*/

    function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {
        return
            interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165
            interfaceId == 0x80ac58cd || // ERC165 Interface ID for ERC721
            interfaceId == 0x5b5e139f; // ERC165 Interface ID for ERC721Metadata
    }

    /*//////////////////////////////////////////////////////////////
                        INTERNAL MINT/BURN LOGIC
    //////////////////////////////////////////////////////////////*/

    function _mint(address to, uint256 id) internal virtual {
        require(to != address(0), "INVALID_RECIPIENT");

        require(_ownerOf[id] == address(0), "ALREADY_MINTED");

        // Counter overflow is incredibly unrealistic.
        unchecked {
            _balanceOf[to]++;
        }

        _ownerOf[id] = to;

        emit Transfer(address(0), to, id);
    }

    function _burn(uint256 id) internal virtual {
        address owner = _ownerOf[id];

        require(owner != address(0), "NOT_MINTED");

        // Ownership check above ensures no underflow.
        unchecked {
            _balanceOf[owner]--;
        }

        delete _ownerOf[id];

        delete getApproved[id];

        emit Transfer(owner, address(0), id);
    }

    /*//////////////////////////////////////////////////////////////
                        INTERNAL SAFE MINT LOGIC
    //////////////////////////////////////////////////////////////*/

    function _safeMint(address to, uint256 id) internal virtual {
        _mint(to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, address(0), id, "") ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function _safeMint(
        address to,
        uint256 id,
        bytes memory data
    ) internal virtual {
        _mint(to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, address(0), id, data) ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }
}

/// @notice A generic interface for a contract which properly accepts ERC721 tokens.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC721.sol)
abstract contract ERC721TokenReceiver {
    function onERC721Received(
        address,
        address,
        uint256,
        bytes calldata
    ) external virtual returns (bytes4) {
        return ERC721TokenReceiver.onERC721Received.selector;
    }
}

File 3 of 4 : Owned.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Simple single owner authorization mixin.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/auth/Owned.sol)
abstract contract Owned {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event OwnerUpdated(address indexed user, address indexed newOwner);

    /*//////////////////////////////////////////////////////////////
                            OWNERSHIP STORAGE
    //////////////////////////////////////////////////////////////*/

    address public owner;

    modifier onlyOwner() virtual {
        require(msg.sender == owner, "UNAUTHORIZED");

        _;
    }

    /*//////////////////////////////////////////////////////////////
                               CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor(address _owner) {
        owner = _owner;

        emit OwnerUpdated(address(0), _owner);
    }

    /*//////////////////////////////////////////////////////////////
                             OWNERSHIP LOGIC
    //////////////////////////////////////////////////////////////*/

    function setOwner(address newOwner) public virtual onlyOwner {
        owner = newOwner;

        emit OwnerUpdated(msg.sender, newOwner);
    }
}

File 4 of 4 : Strings.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (utils/Strings.sol)

pragma solidity ^0.8.0;

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

    /**
     * @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);
    }

    /**
     * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.
     */
    function toHexString(address addr) internal pure returns (string memory) {
        return toHexString(uint256(uint160(addr)), _ADDRESS_LENGTH);
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_contractURI","type":"string"},{"internalType":"string","name":"_tokenURI","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"uri","type":"string"}],"name":"ContractURISet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"contract IMetadataResolver","name":"resolver","type":"address"}],"name":"MetadataResolverSet","type":"event"},{"anonymous":false,"inputs":[],"name":"OwnerTransferControlBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"uri","type":"string"}],"name":"TokenMetadataBaseURISet","type":"event"},{"anonymous":false,"inputs":[],"name":"TokenTransferLockBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"adminTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"}],"name":"batchMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnOwnerTransferControl","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnTransferLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwnerTransferControlBurned","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTransferLockBurned","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"metadataResolver","outputs":[{"internalType":"contract IMetadataResolver","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"uri","type":"string"}],"name":"setContractURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IMetadataResolver","name":"resolver","type":"address"}],"name":"setMetadataResolver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"uri","type":"string"}],"name":"setTokenURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenMetadataBaseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162001d1f38038062001d1f8339810160408190526200003491620002aa565b604080518082018252601681527f4d6574616c6162656c20415353454d424c59203030310000000000000000000060208083019182528351808501909452600c84526b415353454d424c592d30303160a01b9084015281513393916200009e916000919062000137565b508051620000b490600190602084019062000137565b5050600680546001600160a01b0319166001600160a01b0384169081179091556040519091506000907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d76908290a35081516200011890600990602085019062000137565b5080516200012e90600a90602084019062000137565b50505062000350565b828054620001459062000314565b90600052602060002090601f016020900481019282620001695760008555620001b4565b82601f106200018457805160ff1916838001178555620001b4565b82800160010185558215620001b4579182015b82811115620001b457825182559160200191906001019062000197565b50620001c2929150620001c6565b5090565b5b80821115620001c25760008155600101620001c7565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200020557600080fd5b81516001600160401b0380821115620002225762000222620001dd565b604051601f8301601f19908116603f011681019082821181831017156200024d576200024d620001dd565b816040528381526020925086838588010111156200026a57600080fd5b600091505b838210156200028e57858201830151818301840152908201906200026f565b83821115620002a05760008385830101525b9695505050505050565b60008060408385031215620002be57600080fd5b82516001600160401b0380821115620002d657600080fd5b620002e486838701620001f3565b93506020850151915080821115620002fb57600080fd5b506200030a85828601620001f3565b9150509250929050565b600181811c908216806200032957607f821691505b6020821081036200034a57634e487b7160e01b600052602260045260246000fd5b50919050565b6119bf80620003606000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80638da5cb5b116100f9578063b88d4fde11610097578063d67b06c111610071578063d67b06c1146103a9578063e0df5b6f146103bc578063e8a3d485146103cf578063e985e9c5146103d757600080fd5b8063b88d4fde1461037b578063c64c98aa1461038e578063c87b56dd1461039657600080fd5b8063a0c76f62116100d3578063a0c76f6214610340578063a22cb46514610353578063b443bca514610366578063b5cab1ce1461037357600080fd5b80638da5cb5b14610312578063938e3d7b1461032557806395d89b411461033857600080fd5b8063197cf27811610166578063428a371311610140578063428a3713146102c75780636352211e146102d957806370a08231146102ec5780637995c1e4146102ff57600080fd5b8063197cf2781461029957806323b872dd146102a157806342842e0e146102b457600080fd5b8063081812fc116101a2578063081812fc1461021b578063095ea7b31461025c57806313af40351461026f57806318160ddd1461028257600080fd5b806301ffc9a7146101c95780630483fc5e146101f157806306fdde0314610206575b600080fd5b6101dc6101d736600461130d565b610405565b60405190151581526020015b60405180910390f35b6102046101ff366004611346565b610457565b005b61020e6105b4565b6040516101e891906113a6565b6102446102293660046113d9565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016101e8565b61020461026a3660046113f2565b610642565b61020461027d36600461141e565b610724565b61028b60085481565b6040519081526020016101e8565b61020461079a565b6102046102af36600461143b565b6107fc565b6102046102c236600461143b565b610850565b600b546101dc90610100900460ff1681565b6102446102e73660046113d9565b610943565b61028b6102fa36600461141e565b61099a565b61020461030d36600461141e565b6109fd565b600654610244906001600160a01b031681565b6102046103333660046114c5565b610a7b565b61020e610aef565b600754610244906001600160a01b031681565b610204610361366004611507565b610afc565b600b546101dc9060ff1681565b61020e610b68565b61020461038936600461153a565b610b75565b610204610c5d565b61020e6103a43660046113d9565b610cc1565b6102046103b73660046115ad565b610d7e565b6102046103ca3660046114c5565b610e0b565b61020e610e73565b6101dc6103e5366004611622565b600560209081526000928352604080842090915290825290205460ff1681565b60006301ffc9a760e01b6001600160e01b03198316148061043657506380ac58cd60e01b6001600160e01b03198316145b806104515750635b5e139f60e01b6001600160e01b03198316145b92915050565b6006546001600160a01b0316331461048a5760405162461bcd60e51b815260040161048190611650565b60405180910390fd5b600b54610100900460ff16156104e25760405162461bcd60e51b815260206004820152601f60248201527f4f574e45525f5452414e534645525f434f4e54524f4c5f44495341424c4544006044820152606401610481565b6000828152600260205260409020546001600160a01b0316806105345760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b6044820152606401610481565b600083815260026020908152604080832080546001600160a01b0319166001600160a01b038781169182179092559085168085526003909352818420805460001901905580845281842080546001019055905186939192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600080546105c190611676565b80601f01602080910402602001604051908101604052809291908181526020018280546105ed90611676565b801561063a5780601f1061060f5761010080835404028352916020019161063a565b820191906000526020600020905b81548152906001019060200180831161061d57829003601f168201915b505050505081565b6000818152600260205260409020546001600160a01b03163381148061068b57506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6106c85760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610481565b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6006546001600160a01b0316331461074e5760405162461bcd60e51b815260040161048190611650565b600680546001600160a01b0319166001600160a01b03831690811790915560405133907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7690600090a350565b6006546001600160a01b031633146107c45760405162461bcd60e51b815260040161048190611650565b600b805460ff191660011790556040517f2fd68001d2443c9898e2061c49b385b97b7d395a32ea11a27030850b7633c6e390600090a1565b600b5460ff166108405760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d313d0d2d151608a1b6044820152606401610481565b61084b838383610e80565b505050565b61085b8383836107fc565b6001600160a01b0382163b15806109045750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af11580156108d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f891906116b0565b6001600160e01b031916145b61084b5760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606401610481565b6000818152600260205260409020546001600160a01b0316806109955760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b6044820152606401610481565b919050565b60006001600160a01b0382166109e15760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610481565b506001600160a01b031660009081526003602052604090205490565b6006546001600160a01b03163314610a275760405162461bcd60e51b815260040161048190611650565b600780546001600160a01b0319166001600160a01b0383169081179091556040519081527f3bb337d6489f0397adc1a9fa2421656197bca96b9aab8e7a26d22ac2b6e1811c9060200160405180910390a150565b6006546001600160a01b03163314610aa55760405162461bcd60e51b815260040161048190611650565b610ab16009838361125b565b507faf497693a87db12ca89131a31edbb3db4bb5702dfb284e8ae7427d185f09112d8282604051610ae39291906116f6565b60405180910390a15050565b600180546105c190611676565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b600a80546105c190611676565b610b808585856107fc565b6001600160a01b0384163b1580610c175750604051630a85bd0160e11b808252906001600160a01b0386169063150b7a0290610bc89033908a9089908990899060040161170a565b6020604051808303816000875af1158015610be7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0b91906116b0565b6001600160e01b031916145b610c565760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606401610481565b5050505050565b6006546001600160a01b03163314610c875760405162461bcd60e51b815260040161048190611650565b600b805461ff0019166101001790556040517f4947ef14e39f400c7bbad8861b4b3a2983f64bc1464b6fc371356b7a94de75ee90600090a1565b6007546060906001600160a01b031615610d4c5760075460405163abadc6f560e01b8152306004820152602481018490526001600160a01b039091169063abadc6f590604401600060405180830381865afa158015610d24573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610451919081019061175f565b600a610d5783611047565b604051602001610d6892919061181d565b6040516020818303038152906040529050919050565b6006546001600160a01b03163314610da85760405162461bcd60e51b815260040161048190611650565b60085460005b82811015610e0357610df1848483818110610dcb57610dcb6118d7565b9050602002016020810190610de0919061141e565b610de984611903565b935083611150565b80610dfb81611903565b915050610dae565b506008555050565b6006546001600160a01b03163314610e355760405162461bcd60e51b815260040161048190611650565b610e41600a838361125b565b507f2af9eda80884fdad8f63af187d810415935114dfe3cc8398e8e47e95b23982d28282604051610ae39291906116f6565b600980546105c190611676565b6000818152600260205260409020546001600160a01b03848116911614610ed65760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b6044820152606401610481565b6001600160a01b038216610f205760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b6044820152606401610481565b336001600160a01b0384161480610f5a57506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b80610f7b57506000818152600460205260409020546001600160a01b031633145b610fb85760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610481565b6001600160a01b0380841660008181526003602090815260408083208054600019019055938616808352848320805460010190558583526002825284832080546001600160a01b03199081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60608160000361106e5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611098578061108281611903565b91506110919050600a83611932565b9150611072565b60008167ffffffffffffffff8111156110b3576110b3611749565b6040519080825280601f01601f1916602001820160405280156110dd576020820181803683370190505b5090505b8415611148576110f2600183611946565b91506110ff600a8661195d565b61110a906030611971565b60f81b81838151811061111f5761111f6118d7565b60200101906001600160f81b031916908160001a905350611141600a86611932565b94506110e1565b949350505050565b6001600160a01b03821661119a5760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b6044820152606401610481565b6000818152600260205260409020546001600160a01b0316156111f05760405162461bcd60e51b815260206004820152600e60248201526d1053149150511657d3525395115160921b6044820152606401610481565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b82805461126790611676565b90600052602060002090601f01602090048101928261128957600085556112cf565b82601f106112a25782800160ff198235161785556112cf565b828001600101855582156112cf579182015b828111156112cf5782358255916020019190600101906112b4565b506112db9291506112df565b5090565b5b808211156112db57600081556001016112e0565b6001600160e01b03198116811461130a57600080fd5b50565b60006020828403121561131f57600080fd5b813561132a816112f4565b9392505050565b6001600160a01b038116811461130a57600080fd5b6000806040838503121561135957600080fd5b82359150602083013561136b81611331565b809150509250929050565b60005b83811015611391578181015183820152602001611379565b838111156113a0576000848401525b50505050565b60208152600082518060208401526113c5816040850160208701611376565b601f01601f19169190910160400192915050565b6000602082840312156113eb57600080fd5b5035919050565b6000806040838503121561140557600080fd5b823561141081611331565b946020939093013593505050565b60006020828403121561143057600080fd5b813561132a81611331565b60008060006060848603121561145057600080fd5b833561145b81611331565b9250602084013561146b81611331565b929592945050506040919091013590565b60008083601f84011261148e57600080fd5b50813567ffffffffffffffff8111156114a657600080fd5b6020830191508360208285010111156114be57600080fd5b9250929050565b600080602083850312156114d857600080fd5b823567ffffffffffffffff8111156114ef57600080fd5b6114fb8582860161147c565b90969095509350505050565b6000806040838503121561151a57600080fd5b823561152581611331565b91506020830135801515811461136b57600080fd5b60008060008060006080868803121561155257600080fd5b853561155d81611331565b9450602086013561156d81611331565b935060408601359250606086013567ffffffffffffffff81111561159057600080fd5b61159c8882890161147c565b969995985093965092949392505050565b600080602083850312156115c057600080fd5b823567ffffffffffffffff808211156115d857600080fd5b818501915085601f8301126115ec57600080fd5b8135818111156115fb57600080fd5b8660208260051b850101111561161057600080fd5b60209290920196919550909350505050565b6000806040838503121561163557600080fd5b823561164081611331565b9150602083013561136b81611331565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b600181811c9082168061168a57607f821691505b6020821081036116aa57634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156116c257600080fd5b815161132a816112f4565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260006111486020830184866116cd565b6001600160a01b038681168252851660208201526040810184905260806060820181905260009061173e90830184866116cd565b979650505050505050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561177157600080fd5b815167ffffffffffffffff8082111561178957600080fd5b818401915084601f83011261179d57600080fd5b8151818111156117af576117af611749565b604051601f8201601f19908116603f011681019083821181831017156117d7576117d7611749565b816040528281528760208487010111156117f057600080fd5b61173e836020830160208801611376565b60008151611813818560208601611376565b9290920192915050565b600080845481600182811c91508083168061183957607f831692505b6020808410820361185857634e487b7160e01b86526022600452602486fd5b81801561186c576001811461187d576118aa565b60ff198616895284890196506118aa565b60008b81526020902060005b868110156118a25781548b820152908501908301611889565b505084890196505b5050505050506118ce6118bd8286611801565b64173539b7b760d91b815260050190565b95945050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611915576119156118ed565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826119415761194161191c565b500490565b600082821015611958576119586118ed565b500390565b60008261196c5761196c61191c565b500690565b60008219821115611984576119846118ed565b50019056fea2646970667358221220d0354ef00bbc16623691a8d8688d2f4625e46fd83b2e5c3a69d5ff067ac742bc64736f6c634300080d0033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000035697066733a2f2f516d6244527041385a7a516b673868416e696f3252795531454e726d6a6b4e7637796362756f6e5536537469557000000000000000000000000000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d576f36384c6e717672636a5a7533554731776e353556794a45705a4d6f7759363344424569345377706462372f00000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80638da5cb5b116100f9578063b88d4fde11610097578063d67b06c111610071578063d67b06c1146103a9578063e0df5b6f146103bc578063e8a3d485146103cf578063e985e9c5146103d757600080fd5b8063b88d4fde1461037b578063c64c98aa1461038e578063c87b56dd1461039657600080fd5b8063a0c76f62116100d3578063a0c76f6214610340578063a22cb46514610353578063b443bca514610366578063b5cab1ce1461037357600080fd5b80638da5cb5b14610312578063938e3d7b1461032557806395d89b411461033857600080fd5b8063197cf27811610166578063428a371311610140578063428a3713146102c75780636352211e146102d957806370a08231146102ec5780637995c1e4146102ff57600080fd5b8063197cf2781461029957806323b872dd146102a157806342842e0e146102b457600080fd5b8063081812fc116101a2578063081812fc1461021b578063095ea7b31461025c57806313af40351461026f57806318160ddd1461028257600080fd5b806301ffc9a7146101c95780630483fc5e146101f157806306fdde0314610206575b600080fd5b6101dc6101d736600461130d565b610405565b60405190151581526020015b60405180910390f35b6102046101ff366004611346565b610457565b005b61020e6105b4565b6040516101e891906113a6565b6102446102293660046113d9565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016101e8565b61020461026a3660046113f2565b610642565b61020461027d36600461141e565b610724565b61028b60085481565b6040519081526020016101e8565b61020461079a565b6102046102af36600461143b565b6107fc565b6102046102c236600461143b565b610850565b600b546101dc90610100900460ff1681565b6102446102e73660046113d9565b610943565b61028b6102fa36600461141e565b61099a565b61020461030d36600461141e565b6109fd565b600654610244906001600160a01b031681565b6102046103333660046114c5565b610a7b565b61020e610aef565b600754610244906001600160a01b031681565b610204610361366004611507565b610afc565b600b546101dc9060ff1681565b61020e610b68565b61020461038936600461153a565b610b75565b610204610c5d565b61020e6103a43660046113d9565b610cc1565b6102046103b73660046115ad565b610d7e565b6102046103ca3660046114c5565b610e0b565b61020e610e73565b6101dc6103e5366004611622565b600560209081526000928352604080842090915290825290205460ff1681565b60006301ffc9a760e01b6001600160e01b03198316148061043657506380ac58cd60e01b6001600160e01b03198316145b806104515750635b5e139f60e01b6001600160e01b03198316145b92915050565b6006546001600160a01b0316331461048a5760405162461bcd60e51b815260040161048190611650565b60405180910390fd5b600b54610100900460ff16156104e25760405162461bcd60e51b815260206004820152601f60248201527f4f574e45525f5452414e534645525f434f4e54524f4c5f44495341424c4544006044820152606401610481565b6000828152600260205260409020546001600160a01b0316806105345760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b6044820152606401610481565b600083815260026020908152604080832080546001600160a01b0319166001600160a01b038781169182179092559085168085526003909352818420805460001901905580845281842080546001019055905186939192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600080546105c190611676565b80601f01602080910402602001604051908101604052809291908181526020018280546105ed90611676565b801561063a5780601f1061060f5761010080835404028352916020019161063a565b820191906000526020600020905b81548152906001019060200180831161061d57829003601f168201915b505050505081565b6000818152600260205260409020546001600160a01b03163381148061068b57506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6106c85760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610481565b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6006546001600160a01b0316331461074e5760405162461bcd60e51b815260040161048190611650565b600680546001600160a01b0319166001600160a01b03831690811790915560405133907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7690600090a350565b6006546001600160a01b031633146107c45760405162461bcd60e51b815260040161048190611650565b600b805460ff191660011790556040517f2fd68001d2443c9898e2061c49b385b97b7d395a32ea11a27030850b7633c6e390600090a1565b600b5460ff166108405760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d313d0d2d151608a1b6044820152606401610481565b61084b838383610e80565b505050565b61085b8383836107fc565b6001600160a01b0382163b15806109045750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af11580156108d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f891906116b0565b6001600160e01b031916145b61084b5760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606401610481565b6000818152600260205260409020546001600160a01b0316806109955760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b6044820152606401610481565b919050565b60006001600160a01b0382166109e15760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610481565b506001600160a01b031660009081526003602052604090205490565b6006546001600160a01b03163314610a275760405162461bcd60e51b815260040161048190611650565b600780546001600160a01b0319166001600160a01b0383169081179091556040519081527f3bb337d6489f0397adc1a9fa2421656197bca96b9aab8e7a26d22ac2b6e1811c9060200160405180910390a150565b6006546001600160a01b03163314610aa55760405162461bcd60e51b815260040161048190611650565b610ab16009838361125b565b507faf497693a87db12ca89131a31edbb3db4bb5702dfb284e8ae7427d185f09112d8282604051610ae39291906116f6565b60405180910390a15050565b600180546105c190611676565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b600a80546105c190611676565b610b808585856107fc565b6001600160a01b0384163b1580610c175750604051630a85bd0160e11b808252906001600160a01b0386169063150b7a0290610bc89033908a9089908990899060040161170a565b6020604051808303816000875af1158015610be7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0b91906116b0565b6001600160e01b031916145b610c565760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606401610481565b5050505050565b6006546001600160a01b03163314610c875760405162461bcd60e51b815260040161048190611650565b600b805461ff0019166101001790556040517f4947ef14e39f400c7bbad8861b4b3a2983f64bc1464b6fc371356b7a94de75ee90600090a1565b6007546060906001600160a01b031615610d4c5760075460405163abadc6f560e01b8152306004820152602481018490526001600160a01b039091169063abadc6f590604401600060405180830381865afa158015610d24573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610451919081019061175f565b600a610d5783611047565b604051602001610d6892919061181d565b6040516020818303038152906040529050919050565b6006546001600160a01b03163314610da85760405162461bcd60e51b815260040161048190611650565b60085460005b82811015610e0357610df1848483818110610dcb57610dcb6118d7565b9050602002016020810190610de0919061141e565b610de984611903565b935083611150565b80610dfb81611903565b915050610dae565b506008555050565b6006546001600160a01b03163314610e355760405162461bcd60e51b815260040161048190611650565b610e41600a838361125b565b507f2af9eda80884fdad8f63af187d810415935114dfe3cc8398e8e47e95b23982d28282604051610ae39291906116f6565b600980546105c190611676565b6000818152600260205260409020546001600160a01b03848116911614610ed65760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b6044820152606401610481565b6001600160a01b038216610f205760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b6044820152606401610481565b336001600160a01b0384161480610f5a57506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b80610f7b57506000818152600460205260409020546001600160a01b031633145b610fb85760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610481565b6001600160a01b0380841660008181526003602090815260408083208054600019019055938616808352848320805460010190558583526002825284832080546001600160a01b03199081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60608160000361106e5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115611098578061108281611903565b91506110919050600a83611932565b9150611072565b60008167ffffffffffffffff8111156110b3576110b3611749565b6040519080825280601f01601f1916602001820160405280156110dd576020820181803683370190505b5090505b8415611148576110f2600183611946565b91506110ff600a8661195d565b61110a906030611971565b60f81b81838151811061111f5761111f6118d7565b60200101906001600160f81b031916908160001a905350611141600a86611932565b94506110e1565b949350505050565b6001600160a01b03821661119a5760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b6044820152606401610481565b6000818152600260205260409020546001600160a01b0316156111f05760405162461bcd60e51b815260206004820152600e60248201526d1053149150511657d3525395115160921b6044820152606401610481565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b82805461126790611676565b90600052602060002090601f01602090048101928261128957600085556112cf565b82601f106112a25782800160ff198235161785556112cf565b828001600101855582156112cf579182015b828111156112cf5782358255916020019190600101906112b4565b506112db9291506112df565b5090565b5b808211156112db57600081556001016112e0565b6001600160e01b03198116811461130a57600080fd5b50565b60006020828403121561131f57600080fd5b813561132a816112f4565b9392505050565b6001600160a01b038116811461130a57600080fd5b6000806040838503121561135957600080fd5b82359150602083013561136b81611331565b809150509250929050565b60005b83811015611391578181015183820152602001611379565b838111156113a0576000848401525b50505050565b60208152600082518060208401526113c5816040850160208701611376565b601f01601f19169190910160400192915050565b6000602082840312156113eb57600080fd5b5035919050565b6000806040838503121561140557600080fd5b823561141081611331565b946020939093013593505050565b60006020828403121561143057600080fd5b813561132a81611331565b60008060006060848603121561145057600080fd5b833561145b81611331565b9250602084013561146b81611331565b929592945050506040919091013590565b60008083601f84011261148e57600080fd5b50813567ffffffffffffffff8111156114a657600080fd5b6020830191508360208285010111156114be57600080fd5b9250929050565b600080602083850312156114d857600080fd5b823567ffffffffffffffff8111156114ef57600080fd5b6114fb8582860161147c565b90969095509350505050565b6000806040838503121561151a57600080fd5b823561152581611331565b91506020830135801515811461136b57600080fd5b60008060008060006080868803121561155257600080fd5b853561155d81611331565b9450602086013561156d81611331565b935060408601359250606086013567ffffffffffffffff81111561159057600080fd5b61159c8882890161147c565b969995985093965092949392505050565b600080602083850312156115c057600080fd5b823567ffffffffffffffff808211156115d857600080fd5b818501915085601f8301126115ec57600080fd5b8135818111156115fb57600080fd5b8660208260051b850101111561161057600080fd5b60209290920196919550909350505050565b6000806040838503121561163557600080fd5b823561164081611331565b9150602083013561136b81611331565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b600181811c9082168061168a57607f821691505b6020821081036116aa57634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156116c257600080fd5b815161132a816112f4565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260006111486020830184866116cd565b6001600160a01b038681168252851660208201526040810184905260806060820181905260009061173e90830184866116cd565b979650505050505050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561177157600080fd5b815167ffffffffffffffff8082111561178957600080fd5b818401915084601f83011261179d57600080fd5b8151818111156117af576117af611749565b604051601f8201601f19908116603f011681019083821181831017156117d7576117d7611749565b816040528281528760208487010111156117f057600080fd5b61173e836020830160208801611376565b60008151611813818560208601611376565b9290920192915050565b600080845481600182811c91508083168061183957607f831692505b6020808410820361185857634e487b7160e01b86526022600452602486fd5b81801561186c576001811461187d576118aa565b60ff198616895284890196506118aa565b60008b81526020902060005b868110156118a25781548b820152908501908301611889565b505084890196505b5050505050506118ce6118bd8286611801565b64173539b7b760d91b815260050190565b95945050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611915576119156118ed565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826119415761194161191c565b500490565b600082821015611958576119586118ed565b500390565b60008261196c5761196c61191c565b500690565b60008219821115611984576119846118ed565b50019056fea2646970667358221220d0354ef00bbc16623691a8d8688d2f4625e46fd83b2e5c3a69d5ff067ac742bc64736f6c634300080d0033

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

000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000035697066733a2f2f516d6244527041385a7a516b673868416e696f3252795531454e726d6a6b4e7637796362756f6e5536537469557000000000000000000000000000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d576f36384c6e717672636a5a7533554731776e353556794a45705a4d6f7759363344424569345377706462372f00000000000000000000

-----Decoded View---------------
Arg [0] : _contractURI (string): ipfs://QmbDRpA8ZzQkg8hAnio2RyU1ENrmjkNv7ycbuonU6StiUp
Arg [1] : _tokenURI (string): ipfs://QmWo68LnqvrcjZu3UG1wn55VyJEpZMowY63DBEi4Swpdb7/

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000035
Arg [3] : 697066733a2f2f516d6244527041385a7a516b673868416e696f325279553145
Arg [4] : 4e726d6a6b4e7637796362756f6e553653746955700000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000036
Arg [6] : 697066733a2f2f516d576f36384c6e717672636a5a7533554731776e35355679
Arg [7] : 4a45705a4d6f7759363344424569345377706462372f00000000000000000000


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  ]

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.