POL Price: $0.676881 (-6.18%)
 

Overview

POL Balance

Polygon PoS Chain LogoPolygon PoS Chain LogoPolygon PoS Chain Logo0 POL

POL Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Mint Require...544213552024-03-08 17:54:10272 days ago1709920450IN
0x80329e7f...9157B5a2a
0 POL0.01645917136.63375336
Set Mint Require...544212972024-03-08 17:51:40272 days ago1709920300IN
0x80329e7f...9157B5a2a
0 POL0.01175874130.79077103
Set Mint Require...543405132024-03-06 16:59:38274 days ago1709744378IN
0x80329e7f...9157B5a2a
0 POL0.01131629111.53233952
Set Mint Require...542970482024-03-05 14:13:05275 days ago1709647985IN
0x80329e7f...9157B5a2a
0 POL0.02690119243.0471733
Set Mint Require...542970132024-03-05 14:11:51275 days ago1709647911IN
0x80329e7f...9157B5a2a
0 POL0.01945575241.12030075
Set Mint Require...542969912024-03-05 14:11:03275 days ago1709647863IN
0x80329e7f...9157B5a2a
0 POL0.01292429239.83184839
Set Mint Require...542969232024-03-05 14:08:39275 days ago1709647719IN
0x80329e7f...9157B5a2a
0 POL0.0162455259.42579865
Set Mint Require...542968192024-03-05 14:04:27275 days ago1709647467IN
0x80329e7f...9157B5a2a
0 POL0.04356921187.80402612
Set Mint Require...542968002024-03-05 14:03:47275 days ago1709647427IN
0x80329e7f...9157B5a2a
0 POL0.0406503217.90920696
Set Mint Require...541115132024-02-29 20:36:33280 days ago1709238993IN
0x80329e7f...9157B5a2a
0 POL0.0066442269.48650175
Set Mint Require...541114752024-02-29 20:35:13280 days ago1709238913IN
0x80329e7f...9157B5a2a
0 POL0.0064004366.93681427
Set Mint Require...541114632024-02-29 20:34:47280 days ago1709238887IN
0x80329e7f...9157B5a2a
0 POL0.0066941970.00906233
Set Mint Require...541114422024-02-29 20:34:03280 days ago1709238843IN
0x80329e7f...9157B5a2a
0 POL0.007401377.40415181
Set Mint Require...541114242024-02-29 20:33:25280 days ago1709238805IN
0x80329e7f...9157B5a2a
0 POL0.0083718887.55458926
Set Mint Require...541114062024-02-29 20:32:38280 days ago1709238758IN
0x80329e7f...9157B5a2a
0 POL0.0087614491.62874915
Set Mint Require...541113802024-02-29 20:31:44280 days ago1709238704IN
0x80329e7f...9157B5a2a
0 POL0.0070205873.42244309
Set Mint Require...541104922024-02-29 19:59:41280 days ago1709236781IN
0x80329e7f...9157B5a2a
0 POL0.0059797562.53734711
Set Mint Require...541104682024-02-29 19:58:51280 days ago1709236731IN
0x80329e7f...9157B5a2a
0 POL0.0060160462.91688154
Set Mint Require...541104582024-02-29 19:58:27280 days ago1709236707IN
0x80329e7f...9157B5a2a
0 POL0.0058979461.68173277
Set Mint Require...541015262024-02-29 14:38:31280 days ago1709217511IN
0x80329e7f...9157B5a2a
0 POL0.00890357192.9018585
Set Mint Require...541015172024-02-29 14:38:11280 days ago1709217491IN
0x80329e7f...9157B5a2a
0 POL0.01687735165.99965971
Set Mint Require...541014362024-02-29 14:35:19280 days ago1709217319IN
0x80329e7f...9157B5a2a
0 POL0.0105832195.24042824
Set Mint Require...541014092024-02-29 14:34:23280 days ago1709217263IN
0x80329e7f...9157B5a2a
0 POL0.01862569205.52946174
Set Mint Require...541013852024-02-29 14:33:31280 days ago1709217211IN
0x80329e7f...9157B5a2a
0 POL0.02379099233.97220151
Set Mint Require...541012362024-02-29 14:28:15280 days ago1709216895IN
0x80329e7f...9157B5a2a
0 POL0.02651053221.10720444
View all transactions

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ERC1155BurnToMint

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 20000 runs

Other Settings:
paris EvmVersion
File 1 of 7 : ERC1155BurnToMint.sol
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.19;

import {IERC1155} from "@0xsequence/erc-1155/contracts/interfaces/IERC1155.sol";
import {IERC1155TokenReceiver} from "@0xsequence/erc-1155/contracts/interfaces/IERC1155TokenReceiver.sol";
import {IERC1155ItemsFunctions} from "@0xsequence/contracts-library/tokens/ERC1155/presets/items/IERC1155Items.sol";
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";

// Thrown when token id is invalid
error InvalidTokenId();

// Thrown when mint requirements are not met
error MintRequirementsNotMet();

// Thrown when input array length is invalid
error InvalidArrayLength();

// Thrown when method called is invalid
error InvalidMethod();

interface IERC1155Items is IERC1155ItemsFunctions, IERC1155 {
    function batchBurn(uint256[] memory tokenIds, uint256[] memory amounts) external;
}

struct TokenRequirements {
    uint256 tokenId;
    uint256 amount;
}

contract ERC1155BurnToMint is IERC1155TokenReceiver, Ownable {
    IERC1155Items private immutable ITEMS;

    mapping(uint256 => TokenRequirements[]) public burnRequirements;
    mapping(uint256 => TokenRequirements[]) public holdRequirements;

    constructor(address items, address owner_) {
        Ownable.transferOwnership(owner_);
        ITEMS = IERC1155Items(items);
    }

    /**
     * Contract owner can mint anything
     */
    function mintOpen(address to, uint256 tokenId, uint256 amount) external onlyOwner {
        ITEMS.mint(to, tokenId, amount, "");
    }

    /**
     * Owner sets minting requirements for a token.
     * @dev This function does not validate inputs ids of the inputs.
     * @dev `burnTokenIds` and `holdTokenIds` should not overlap, should be unique and should not contain `mintTokenId`.
     */
    function setMintRequirements(
        uint256 mintTokenId,
        uint256[] calldata burnTokenIds,
        uint256[] calldata burnAmounts,
        uint256[] calldata holdTokenIds,
        uint256[] calldata holdAmounts
    )
        external
        onlyOwner
    {
        if (burnTokenIds.length != burnAmounts.length || holdTokenIds.length != holdAmounts.length) {
            revert InvalidArrayLength();
        }

        delete burnRequirements[mintTokenId];
        delete holdRequirements[mintTokenId];
        for (uint256 i = 0; i < burnTokenIds.length; i++) {
            burnRequirements[mintTokenId].push(TokenRequirements(burnTokenIds[i], burnAmounts[i]));
        }
        for (uint256 i = 0; i < holdTokenIds.length; i++) {
            holdRequirements[mintTokenId].push(TokenRequirements(holdTokenIds[i], holdAmounts[i]));
        }
    }

    /**
     * @notice Use `onERC1155BatchReceived` instead.
     */
    function onERC1155Received(address, address, uint256, uint256, bytes calldata)
        external
        pure
        override
        returns (bytes4)
    {
        revert InvalidMethod();
    }

    /**
     * Receive tokens for burning and mint new token.
     * @dev `data` is abi.encode(mintTokenId).
     */
    function onERC1155BatchReceived(
        address,
        address from,
        uint256[] calldata tokenIds,
        uint256[] calldata amounts,
        bytes calldata data
    )
        external
        override
        returns (bytes4)
    {
        if (msg.sender != address(ITEMS)) {
            // Got tokens from incorrect contract
            revert MintRequirementsNotMet();
        }

        // Check mint requirements
        uint256 mintTokenId = abi.decode(data, (uint256));
        _checkMintRequirements(from, mintTokenId, tokenIds, amounts);

        // Burn these tokens and mint the new token
        ITEMS.batchBurn(tokenIds, amounts);
        ITEMS.mint(from, mintTokenId, 1, "");

        return this.onERC1155BatchReceived.selector;
    }

    /**
     * Checks mint requirements for a token.
     * @dev This function assumes the `burnTokenIds` and `burnAmounts` have been burned.
     */
    function _checkMintRequirements(
        address holder,
        uint256 mintTokenId,
        uint256[] calldata burnTokenIds,
        uint256[] calldata burnAmounts
    )
        internal
        view
    {
        if (burnTokenIds.length != burnAmounts.length || burnTokenIds.length == 0) {
            revert InvalidArrayLength();
        }

        // Check burn tokens sent is correct
        TokenRequirements[] memory requirements = burnRequirements[mintTokenId];
        if (requirements.length != burnTokenIds.length) {
            revert MintRequirementsNotMet();
        }
        for (uint256 i = 0; i < requirements.length; i++) {
            if (requirements[i].tokenId != burnTokenIds[i] || requirements[i].amount != burnAmounts[i]) {
                // Invalid burn token id or amount
                revert MintRequirementsNotMet();
            }
        }

        // Check held tokens
        requirements = holdRequirements[mintTokenId];
        if (requirements.length != 0) {
            address[] memory holders = new address[](requirements.length);
            uint256[] memory holdTokenIds = new uint256[](requirements.length);
            for (uint256 i = 0; i < requirements.length; i++) {
                holders[i] = holder;
                holdTokenIds[i] = requirements[i].tokenId;
            }
            uint256[] memory balances = ITEMS.balanceOfBatch(holders, holdTokenIds);
            for (uint256 i = 0; i < requirements.length; i++) {
                if (balances[i] < requirements[i].amount) {
                    // Not enough held tokens
                    revert MintRequirementsNotMet();
                }
            }
        }
    }

    function getMintRequirements(uint256 mintTokenId)
        external
        view
        returns (
            uint256[] memory burnIds,
            uint256[] memory burnAmounts,
            uint256[] memory holdIds,
            uint256[] memory holdAmounts
        )
    {
        TokenRequirements[] memory requirements = burnRequirements[mintTokenId];
        uint256 requirementsLength = requirements.length;
        burnIds = new uint256[](requirementsLength);
        burnAmounts = new uint256[](requirementsLength);
        for (uint256 i = 0; i < requirementsLength; i++) {
            burnIds[i] = requirements[i].tokenId;
            burnAmounts[i] = requirements[i].amount;
        }

        requirements = holdRequirements[mintTokenId];
        requirementsLength = requirements.length;
        holdIds = new uint256[](requirementsLength);
        holdAmounts = new uint256[](requirementsLength);
        for (uint256 i = 0; i < requirementsLength; i++) {
            holdIds[i] = requirements[i].tokenId;
            holdAmounts[i] = requirements[i].amount;
        }
    }
}

File 2 of 7 : IERC1155.sol
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.0;
import './IERC165.sol';


interface IERC1155 is IERC165 {

  /****************************************|
  |                 Events                 |
  |_______________________________________*/

  /**
   * @dev Either TransferSingle or TransferBatch MUST emit when tokens are transferred, including zero amount transfers as well as minting or burning
   *   Operator MUST be msg.sender
   *   When minting/creating tokens, the `_from` field MUST be set to `0x0`
   *   When burning/destroying tokens, the `_to` field MUST be set to `0x0`
   *   The total amount transferred from address 0x0 minus the total amount transferred to 0x0 may be used by clients and exchanges to be added to the "circulating supply" for a given token ID
   *   To broadcast the existence of a token ID with no initial balance, the contract SHOULD emit the TransferSingle event from `0x0` to `0x0`, with the token creator as `_operator`, and a `_amount` of 0
   */
  event TransferSingle(address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _amount);

  /**
   * @dev Either TransferSingle or TransferBatch MUST emit when tokens are transferred, including zero amount transfers as well as minting or burning
   *   Operator MUST be msg.sender
   *   When minting/creating tokens, the `_from` field MUST be set to `0x0`
   *   When burning/destroying tokens, the `_to` field MUST be set to `0x0`
   *   The total amount transferred from address 0x0 minus the total amount transferred to 0x0 may be used by clients and exchanges to be added to the "circulating supply" for a given token ID
   *   To broadcast the existence of multiple token IDs with no initial balance, this SHOULD emit the TransferBatch event from `0x0` to `0x0`, with the token creator as `_operator`, and a `_amount` of 0
   */
  event TransferBatch(address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _amounts);

  /**
   * @dev MUST emit when an approval is updated
   */
  event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);


  /****************************************|
  |                Functions               |
  |_______________________________________*/

  /**
    * @notice Transfers amount of an _id from the _from address to the _to address specified
    * @dev MUST emit TransferSingle event on success
    * Caller must be approved to manage the _from account's tokens (see isApprovedForAll)
    * MUST throw if `_to` is the zero address
    * MUST throw if balance of sender for token `_id` is lower than the `_amount` sent
    * MUST throw on any other error
    * When transfer is complete, this function MUST check if `_to` is a smart contract (code size > 0). If so, it MUST call `onERC1155Received` on `_to` and revert if the return amount is not `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))`
    * @param _from    Source address
    * @param _to      Target address
    * @param _id      ID of the token type
    * @param _amount  Transfered amount
    * @param _data    Additional data with no specified format, sent in call to `_to`
    */
  function safeTransferFrom(address _from, address _to, uint256 _id, uint256 _amount, bytes calldata _data) external;

  /**
    * @notice Send multiple types of Tokens from the _from address to the _to address (with safety call)
    * @dev MUST emit TransferBatch event on success
    * Caller must be approved to manage the _from account's tokens (see isApprovedForAll)
    * MUST throw if `_to` is the zero address
    * MUST throw if length of `_ids` is not the same as length of `_amounts`
    * MUST throw if any of the balance of sender for token `_ids` is lower than the respective `_amounts` sent
    * MUST throw on any other error
    * When transfer is complete, this function MUST check if `_to` is a smart contract (code size > 0). If so, it MUST call `onERC1155BatchReceived` on `_to` and revert if the return amount is not `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))`
    * Transfers and events MUST occur in the array order they were submitted (_ids[0] before _ids[1], etc)
    * @param _from     Source addresses
    * @param _to       Target addresses
    * @param _ids      IDs of each token type
    * @param _amounts  Transfer amounts per token type
    * @param _data     Additional data with no specified format, sent in call to `_to`
  */
  function safeBatchTransferFrom(address _from, address _to, uint256[] calldata _ids, uint256[] calldata _amounts, bytes calldata _data) external;

  /**
   * @notice Get the balance of an account's Tokens
   * @param _owner  The address of the token holder
   * @param _id     ID of the Token
   * @return        The _owner's balance of the Token type requested
   */
  function balanceOf(address _owner, uint256 _id) external view returns (uint256);

  /**
   * @notice Get the balance of multiple account/token pairs
   * @param _owners The addresses of the token holders
   * @param _ids    ID of the Tokens
   * @return        The _owner's balance of the Token types requested (i.e. balance for each (owner, id) pair)
   */
  function balanceOfBatch(address[] calldata _owners, uint256[] calldata _ids) external view returns (uint256[] memory);

  /**
   * @notice Enable or disable approval for a third party ("operator") to manage all of caller's tokens
   * @dev MUST emit the ApprovalForAll event on success
   * @param _operator  Address to add to the set of authorized operators
   * @param _approved  True if the operator is approved, false to revoke approval
   */
  function setApprovalForAll(address _operator, bool _approved) external;

  /**
   * @notice Queries the approval status of an operator for a given owner
   * @param _owner     The owner of the Tokens
   * @param _operator  Address of authorized operator
   * @return isOperator True if the operator is approved, false if not
   */
  function isApprovedForAll(address _owner, address _operator) external view returns (bool isOperator);
}

File 3 of 7 : IERC1155TokenReceiver.sol
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.0;

/**
 * @dev ERC-1155 interface for accepting safe transfers.
 */
interface IERC1155TokenReceiver {

  /**
   * @notice Handle the receipt of a single ERC1155 token type
   * @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeTransferFrom` after the balance has been updated
   * This function MAY throw to revert and reject the transfer
   * Return of other amount than the magic value MUST result in the transaction being reverted
   * Note: The token contract address is always the message sender
   * @param _operator  The address which called the `safeTransferFrom` function
   * @param _from      The address which previously owned the token
   * @param _id        The id of the token being transferred
   * @param _amount    The amount of tokens being transferred
   * @param _data      Additional data with no specified format
   * @return           `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))`
   */
  function onERC1155Received(address _operator, address _from, uint256 _id, uint256 _amount, bytes calldata _data) external returns(bytes4);

  /**
   * @notice Handle the receipt of multiple ERC1155 token types
   * @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeBatchTransferFrom` after the balances have been updated
   * This function MAY throw to revert and reject the transfer
   * Return of other amount than the magic value WILL result in the transaction being reverted
   * Note: The token contract address is always the message sender
   * @param _operator  The address which called the `safeBatchTransferFrom` function
   * @param _from      The address which previously owned the token
   * @param _ids       An array containing ids of each token being transferred
   * @param _amounts   An array containing amounts of each token being transferred
   * @param _data      Additional data with no specified format
   * @return           `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))`
   */
  function onERC1155BatchReceived(address _operator, address _from, uint256[] calldata _ids, uint256[] calldata _amounts, bytes calldata _data) external returns(bytes4);
}

File 4 of 7 : IERC1155Items.sol
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.19;

interface IERC1155ItemsFunctions {
    /**
     * Mint tokens.
     * @param to Address to mint tokens to.
     * @param tokenId Token ID to mint.
     * @param amount Amount of tokens to mint.
     * @param data Data to pass if receiver is contract.
     */
    function mint(address to, uint256 tokenId, uint256 amount, bytes memory data) external;

    /**
     * Mint tokens.
     * @param to Address to mint tokens to.
     * @param tokenIds Token IDs to mint.
     * @param amounts Amounts of tokens to mint.
     * @param data Data to pass if receiver is contract.
     */
    function batchMint(address to, uint256[] memory tokenIds, uint256[] memory amounts, bytes memory data) external;
}

interface IERC1155ItemsSignals {
    /**
     * Invalid initialization error.
     */
    error InvalidInitialization();
}

interface IERC1155Items is IERC1155ItemsFunctions, IERC1155ItemsSignals {}

File 5 of 7 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (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 Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling 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 6 of 7 : IERC165.sol
// SPDX-License-Identifier: Apache-2.0
pragma solidity ^0.8.0;


/**
 * @title ERC165
 * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md
 */
interface IERC165 {

    /**
     * @notice Query if a contract implements an interface
     * @dev Interface identification is specified in ERC-165. This function
     * uses less than 30,000 gas
     * @param _interfaceId The interface identifier, as specified in ERC-165
     */
    function supportsInterface(bytes4 _interfaceId)
    external
    view
    returns (bool);
}

File 7 of 7 : 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;
    }
}

Settings
{
  "remappings": [
    "@0xsequence/contracts-library/=src/",
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "murky/=lib/murky/src/",
    "@0xsequence/erc20-meta-token/=node_modules/@0xsequence/erc20-meta-token/",
    "@0xsequence/erc-1155/=node_modules/@0xsequence/erc-1155/",
    "erc721a/=node_modules/erc721a/",
    "erc721a-upgradeable/=node_modules/erc721a-upgradeable/",
    "@openzeppelin/=node_modules/@openzeppelin/",
    "openzeppelin-contracts/=lib/murky/lib/openzeppelin-contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 20000
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "viaIR": true,
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"items","type":"address"},{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidArrayLength","type":"error"},{"inputs":[],"name":"InvalidMethod","type":"error"},{"inputs":[],"name":"MintRequirementsNotMet","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"burnRequirements","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"mintTokenId","type":"uint256"}],"name":"getMintRequirements","outputs":[{"internalType":"uint256[]","name":"burnIds","type":"uint256[]"},{"internalType":"uint256[]","name":"burnAmounts","type":"uint256[]"},{"internalType":"uint256[]","name":"holdIds","type":"uint256[]"},{"internalType":"uint256[]","name":"holdAmounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"holdRequirements","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintOpen","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","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":"uint256","name":"mintTokenId","type":"uint256"},{"internalType":"uint256[]","name":"burnTokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"burnAmounts","type":"uint256[]"},{"internalType":"uint256[]","name":"holdTokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"holdAmounts","type":"uint256[]"}],"name":"setMintRequirements","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a0346200017057601f620015ab38819003918201601f19168301916001600160401b038311848410176200017557808492604094855283398101031262000170576200005a602062000052836200018b565b92016200018b565b906200006633620001a0565b6000546001600160a01b03929033908416036200012c5782811615620000d8576200009190620001a0565b166080526040516113c39081620001e88239608051818181610256015281816103a101528181610522015281816105b8015281816105fd0152818161069c01526108650152f35b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036200017057565b600080546001600160a01b039283166001600160a01b03198216811783559216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a356fe6080604052600436101561001257600080fd5b6000803560e01c80632b62122b14610d1e57806346b89c5414610cec5780634d77e96b14610ca6578063523252b614610b1c578063715018a614610a9e5780638da5cb5b14610a6b578063bc197c8114610300578063e0bd74511461021a578063f23a6e61146101a65763f2fde38b1461008b57600080fd5b346101a35760206003193601126101a3576100a4610fd7565b6100ac61104b565b73ffffffffffffffffffffffffffffffffffffffff80911690811561011f57600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b80fd5b50346101a35760a06003193601126101a3576101c0610fd7565b506101c9610ffa565b5060843567ffffffffffffffff8111610216576101ea90369060040161101d565b505060046040517f881e14df000000000000000000000000000000000000000000000000000000008152fd5b5080fd5b50346101a35760606003193601126101a35780610235610fd7565b61023d61104b565b73ffffffffffffffffffffffffffffffffffffffff90817f00000000000000000000000000000000000000000000000000000000000000001691823b156102fb5760a484928360405195869485937f731133e900000000000000000000000000000000000000000000000000000000855216600484015260243560248401526044356044840152608060648401528160848401525af180156102f0576102e05750f35b6102e990611115565b6101a35780f35b6040513d84823e3d90fd5b505050fd5b50346101a35760a06003193601126101a35761031a610fd7565b50610323610ffa565b60443567ffffffffffffffff811161070757610343903690600401610fa6565b9060643567ffffffffffffffff8111610a6757610364903690600401610fa6565b91909260843567ffffffffffffffff811161099a5761038790369060040161101d565b73ffffffffffffffffffffffffffffffffffffffff9791977f00000000000000000000000000000000000000000000000000000000000000001633036104695787602091810103126101a357838214801590610a5f575b610a3557863581526001602052604081209586546103fb81611312565b97610409604051998a611129565b8189528352602080842084918a015b838310610a0857505050508287510361046957815b87518110156104b657610440818961132a565b515161044d82868861125d565b3514801590610493575b6104695761046490611201565b61042d565b60046040517feabaac30000000000000000000000000000000000000000000000000000000008152fd5b5060206104a0828a61132a565b5101516104ae82888a61125d565b351415610457565b5095509593928435875260026020526040872080546104d481611312565b916104e26040519384611129565b81835289526020808a208a9184015b8383106109db57505050508051908161072d575b50509086929173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163b156107295761058c9461059e9160405196879586957f20ec271b0000000000000000000000000000000000000000000000000000000087526040600488015260448701916112d5565b916003198584030160248601526112d5565b03818373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1801561071e5761070b575b5073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163b156107075773ffffffffffffffffffffffffffffffffffffffff604051927f731133e90000000000000000000000000000000000000000000000000000000084521660048301523560248201526001604482015260806064820152816084820152818160a4818373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af180156102f0576106f3575b60206040517fbc197c81000000000000000000000000000000000000000000000000000000008152f35b6106fd8291611115565b6101a357806106c9565b8280fd5b61071790939193611115565b91386105e5565b6040513d86823e3d90fd5b8380fd5b947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610778610762849b95969a979994611312565b9a6107706040519c8d611129565b808c52611312565b013660208b0137610789865161133e565b96835b87518110156107dc576107d79073ffffffffffffffffffffffffffffffffffffffff88166107ba828e61132a565b526107c5818a61132a565b51516107d1828c61132a565b52611201565b61078c565b50919398969280969891936040519889917f4e1273f400000000000000000000000000000000000000000000000000000000835260448301604060048501528251809152602060648501930190855b8181106109a9575050508161084c9160031985809503016024850152610f0c565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa96871561099e5786976108e1575b50855b88518110156108ce576108ab818961132a565b5160206108b8838c61132a565b51015111610469576108c990611201565b610898565b5094979396509194509290918638610505565b9096503d908187823e6108f48282611129565b602081838101031261099a5780519167ffffffffffffffff831161099657808201601f84840101121561099657828201519161092f83611312565b9361093d6040519586611129565b8385526020850192820160208560051b838501010111610992579190602083820101925b60208560051b8284010101841061097e5750505050509538610895565b602080809486518152019401939250610961565b8980fd5b8780fd5b8680fd5b6040513d88823e3d90fd5b825173ffffffffffffffffffffffffffffffffffffffff1685528c96508d95506020948501949092019160010161082b565b600260206001926040516109ee816110ca565b8554815284860154838201528152019201920191906104f1565b60026020600192604051610a1b816110ca565b855481528486015483820152815201920192019190610418565b60046040517f9d89020a000000000000000000000000000000000000000000000000000000008152fd5b5081156103de565b8480fd5b50346101a357806003193601126101a35773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346101a357806003193601126101a357610ab761104b565b8073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101a35760a06003193601126101a35767ffffffffffffffff9060043560243583811161070757610b53903690600401610fa6565b9093604435818111610a6757610b6d903690600401610fa6565b909260643583811161099a57610b87903690600401610fa6565b91909360843590811161099657610ba2903690600401610fa6565b989095610bad61104b565b848314801590610c9c575b610a3557878952600191602095838752610bd460408c2061116a565b898b52600294858852610be960408d2061116a565b8a8c5b8d838210610c545796505050505050505b828110610c08578780f35b610c4f90878952828552610c4a8a60408b20610c3184610c29818a8d61125d565b35938c61125d565b3560405192610c3f846110ca565b83528883015261126d565b611201565b610bfd565b604081610c9594610c4a9352898d5220610c6f83868961125d565b3590610c7c84888b61125d565b3560405192610c8a846110ca565b83528d83015261126d565b8b90610bec565b5089841415610bb8565b50346101a357610cb536610f40565b919081526001602052604081209081548310156101a3576040610cd88484610f5b565b506001815491015482519182526020820152f35b50346101a357610cfb36610f40565b919081526002602052604081209081548310156101a3576040610cd88484610f5b565b50346101a357602090816003193601126101a3576004359081815260019283815260408220908154610d4f81611312565b92610d5d6040519485611129565b81845284528184208490878486015b85858510610ee157505050505050815193610d868561133e565b94610d908161133e565b93855b828110610eb65750505083526002948582526040842095865490610db682611312565b97610dc4604051998a611129565b8289528652838620869085808b015b858410610e8a5750505050505050845191610ded8361133e565b92610df78161133e565b945b818110610e5257610e2587610e4e88610e4089610e328a8a60405198899860808a5260808a0190610f0c565b9188830390890152610f0c565b908582036040870152610f0c565b908382036060850152610f0c565b0390f35b80610e60610e85928a61132a565b5151610e6c828861132a565b5284610e78828b61132a565b5101516107d1828961132a565b610df9565b86918591604051610e9a816110ca565b8554815284860154838201528152019201920191908690610dd3565b80610ec4610edc928461132a565b5151610ed0828b61132a565b5285610e78828561132a565b610d93565b600291604051610ef0816110ca565b8554815284860154838201528152019201920191908890610d6c565b90815180825260208080930193019160005b828110610f2c575050505090565b835185529381019392810192600101610f1e565b6003196040910112610f56576004359060243590565b600080fd5b8054821015610f775760005260206000209060011b0190600090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9181601f84011215610f565782359167ffffffffffffffff8311610f56576020808501948460051b010111610f5657565b6004359073ffffffffffffffffffffffffffffffffffffffff82168203610f5657565b6024359073ffffffffffffffffffffffffffffffffffffffff82168203610f5657565b9181601f84011215610f565782359167ffffffffffffffff8311610f565760208381860195010111610f5657565b73ffffffffffffffffffffffffffffffffffffffff60005416330361106c57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6040810190811067ffffffffffffffff8211176110e657604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff81116110e657604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176110e657604052565b8054906000908181558261117d57505050565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831683036111d45781526020812091600190811b8301925b8381106111c35750505050565b8083600292558383820155016111b6565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461122e5760010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9190811015610f775760051b0190565b8054680100000000000000008110156110e65761128f91600182018155610f5b565b9190916112a6576020816001925184550151910155565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b90918281527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311610f565760209260051b809284830137010190565b67ffffffffffffffff81116110e65760051b60200190565b8051821015610f775760209160051b010190565b9061134882611312565b6113556040519182611129565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06113838294611312565b019060203691013756fea2646970667358221220e05e72b0445495a783c20876929eb1e988a711cb23d87315ddd8b079c0852a7264736f6c6343000813003300000000000000000000000064d9f9d527abe2a1c1ce3fada98601c4ac5bfdd2000000000000000000000000d2efbb2f18bfe3d265b26d2ace83400a65335a07

Deployed Bytecode

0x6080604052600436101561001257600080fd5b6000803560e01c80632b62122b14610d1e57806346b89c5414610cec5780634d77e96b14610ca6578063523252b614610b1c578063715018a614610a9e5780638da5cb5b14610a6b578063bc197c8114610300578063e0bd74511461021a578063f23a6e61146101a65763f2fde38b1461008b57600080fd5b346101a35760206003193601126101a3576100a4610fd7565b6100ac61104b565b73ffffffffffffffffffffffffffffffffffffffff80911690811561011f57600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b80fd5b50346101a35760a06003193601126101a3576101c0610fd7565b506101c9610ffa565b5060843567ffffffffffffffff8111610216576101ea90369060040161101d565b505060046040517f881e14df000000000000000000000000000000000000000000000000000000008152fd5b5080fd5b50346101a35760606003193601126101a35780610235610fd7565b61023d61104b565b73ffffffffffffffffffffffffffffffffffffffff90817f00000000000000000000000064d9f9d527abe2a1c1ce3fada98601c4ac5bfdd21691823b156102fb5760a484928360405195869485937f731133e900000000000000000000000000000000000000000000000000000000855216600484015260243560248401526044356044840152608060648401528160848401525af180156102f0576102e05750f35b6102e990611115565b6101a35780f35b6040513d84823e3d90fd5b505050fd5b50346101a35760a06003193601126101a35761031a610fd7565b50610323610ffa565b60443567ffffffffffffffff811161070757610343903690600401610fa6565b9060643567ffffffffffffffff8111610a6757610364903690600401610fa6565b91909260843567ffffffffffffffff811161099a5761038790369060040161101d565b73ffffffffffffffffffffffffffffffffffffffff9791977f00000000000000000000000064d9f9d527abe2a1c1ce3fada98601c4ac5bfdd21633036104695787602091810103126101a357838214801590610a5f575b610a3557863581526001602052604081209586546103fb81611312565b97610409604051998a611129565b8189528352602080842084918a015b838310610a0857505050508287510361046957815b87518110156104b657610440818961132a565b515161044d82868861125d565b3514801590610493575b6104695761046490611201565b61042d565b60046040517feabaac30000000000000000000000000000000000000000000000000000000008152fd5b5060206104a0828a61132a565b5101516104ae82888a61125d565b351415610457565b5095509593928435875260026020526040872080546104d481611312565b916104e26040519384611129565b81835289526020808a208a9184015b8383106109db57505050508051908161072d575b50509086929173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000064d9f9d527abe2a1c1ce3fada98601c4ac5bfdd2163b156107295761058c9461059e9160405196879586957f20ec271b0000000000000000000000000000000000000000000000000000000087526040600488015260448701916112d5565b916003198584030160248601526112d5565b03818373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000064d9f9d527abe2a1c1ce3fada98601c4ac5bfdd2165af1801561071e5761070b575b5073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000064d9f9d527abe2a1c1ce3fada98601c4ac5bfdd2163b156107075773ffffffffffffffffffffffffffffffffffffffff604051927f731133e90000000000000000000000000000000000000000000000000000000084521660048301523560248201526001604482015260806064820152816084820152818160a4818373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000064d9f9d527abe2a1c1ce3fada98601c4ac5bfdd2165af180156102f0576106f3575b60206040517fbc197c81000000000000000000000000000000000000000000000000000000008152f35b6106fd8291611115565b6101a357806106c9565b8280fd5b61071790939193611115565b91386105e5565b6040513d86823e3d90fd5b8380fd5b947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610778610762849b95969a979994611312565b9a6107706040519c8d611129565b808c52611312565b013660208b0137610789865161133e565b96835b87518110156107dc576107d79073ffffffffffffffffffffffffffffffffffffffff88166107ba828e61132a565b526107c5818a61132a565b51516107d1828c61132a565b52611201565b61078c565b50919398969280969891936040519889917f4e1273f400000000000000000000000000000000000000000000000000000000835260448301604060048501528251809152602060648501930190855b8181106109a9575050508161084c9160031985809503016024850152610f0c565b038173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000064d9f9d527abe2a1c1ce3fada98601c4ac5bfdd2165afa96871561099e5786976108e1575b50855b88518110156108ce576108ab818961132a565b5160206108b8838c61132a565b51015111610469576108c990611201565b610898565b5094979396509194509290918638610505565b9096503d908187823e6108f48282611129565b602081838101031261099a5780519167ffffffffffffffff831161099657808201601f84840101121561099657828201519161092f83611312565b9361093d6040519586611129565b8385526020850192820160208560051b838501010111610992579190602083820101925b60208560051b8284010101841061097e5750505050509538610895565b602080809486518152019401939250610961565b8980fd5b8780fd5b8680fd5b6040513d88823e3d90fd5b825173ffffffffffffffffffffffffffffffffffffffff1685528c96508d95506020948501949092019160010161082b565b600260206001926040516109ee816110ca565b8554815284860154838201528152019201920191906104f1565b60026020600192604051610a1b816110ca565b855481528486015483820152815201920192019190610418565b60046040517f9d89020a000000000000000000000000000000000000000000000000000000008152fd5b5081156103de565b8480fd5b50346101a357806003193601126101a35773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b50346101a357806003193601126101a357610ab761104b565b8073ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101a35760a06003193601126101a35767ffffffffffffffff9060043560243583811161070757610b53903690600401610fa6565b9093604435818111610a6757610b6d903690600401610fa6565b909260643583811161099a57610b87903690600401610fa6565b91909360843590811161099657610ba2903690600401610fa6565b989095610bad61104b565b848314801590610c9c575b610a3557878952600191602095838752610bd460408c2061116a565b898b52600294858852610be960408d2061116a565b8a8c5b8d838210610c545796505050505050505b828110610c08578780f35b610c4f90878952828552610c4a8a60408b20610c3184610c29818a8d61125d565b35938c61125d565b3560405192610c3f846110ca565b83528883015261126d565b611201565b610bfd565b604081610c9594610c4a9352898d5220610c6f83868961125d565b3590610c7c84888b61125d565b3560405192610c8a846110ca565b83528d83015261126d565b8b90610bec565b5089841415610bb8565b50346101a357610cb536610f40565b919081526001602052604081209081548310156101a3576040610cd88484610f5b565b506001815491015482519182526020820152f35b50346101a357610cfb36610f40565b919081526002602052604081209081548310156101a3576040610cd88484610f5b565b50346101a357602090816003193601126101a3576004359081815260019283815260408220908154610d4f81611312565b92610d5d6040519485611129565b81845284528184208490878486015b85858510610ee157505050505050815193610d868561133e565b94610d908161133e565b93855b828110610eb65750505083526002948582526040842095865490610db682611312565b97610dc4604051998a611129565b8289528652838620869085808b015b858410610e8a5750505050505050845191610ded8361133e565b92610df78161133e565b945b818110610e5257610e2587610e4e88610e4089610e328a8a60405198899860808a5260808a0190610f0c565b9188830390890152610f0c565b908582036040870152610f0c565b908382036060850152610f0c565b0390f35b80610e60610e85928a61132a565b5151610e6c828861132a565b5284610e78828b61132a565b5101516107d1828961132a565b610df9565b86918591604051610e9a816110ca565b8554815284860154838201528152019201920191908690610dd3565b80610ec4610edc928461132a565b5151610ed0828b61132a565b5285610e78828561132a565b610d93565b600291604051610ef0816110ca565b8554815284860154838201528152019201920191908890610d6c565b90815180825260208080930193019160005b828110610f2c575050505090565b835185529381019392810192600101610f1e565b6003196040910112610f56576004359060243590565b600080fd5b8054821015610f775760005260206000209060011b0190600090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9181601f84011215610f565782359167ffffffffffffffff8311610f56576020808501948460051b010111610f5657565b6004359073ffffffffffffffffffffffffffffffffffffffff82168203610f5657565b6024359073ffffffffffffffffffffffffffffffffffffffff82168203610f5657565b9181601f84011215610f565782359167ffffffffffffffff8311610f565760208381860195010111610f5657565b73ffffffffffffffffffffffffffffffffffffffff60005416330361106c57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6040810190811067ffffffffffffffff8211176110e657604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff81116110e657604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176110e657604052565b8054906000908181558261117d57505050565b7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831683036111d45781526020812091600190811b8301925b8381106111c35750505050565b8083600292558383820155016111b6565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461122e5760010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b9190811015610f775760051b0190565b8054680100000000000000008110156110e65761128f91600182018155610f5b565b9190916112a6576020816001925184550151910155565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b90918281527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311610f565760209260051b809284830137010190565b67ffffffffffffffff81116110e65760051b60200190565b8051821015610f775760209160051b010190565b9061134882611312565b6113556040519182611129565b8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06113838294611312565b019060203691013756fea2646970667358221220e05e72b0445495a783c20876929eb1e988a711cb23d87315ddd8b079c0852a7264736f6c63430008130033

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

00000000000000000000000064d9f9d527abe2a1c1ce3fada98601c4ac5bfdd2000000000000000000000000d2efbb2f18bfe3d265b26d2ace83400a65335a07

-----Decoded View---------------
Arg [0] : items (address): 0x64D9f9d527abe2a1C1ce3FaDa98601C4aC5BfDd2
Arg [1] : owner_ (address): 0xD2eFbb2f18bfE3D265b26D2ACe83400A65335a07

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000064d9f9d527abe2a1c1ce3fada98601c4ac5bfdd2
Arg [1] : 000000000000000000000000d2efbb2f18bfe3d265b26d2ace83400a65335a07


Block Transaction Gas Used Reward
view all blocks produced

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

Validator Index Block Amount
View All Withdrawals

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

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.