ETH Price: $3,394.72 (-1.39%)
Gas: 2 Gwei

Token

Open Ecosystem Token (OPN)
 

Overview

Max Total Supply

12,677,436,177.807810427847824 OPN

Holders

1,216 ( 0.082%)

Market

Price

$0.00 @ 0.000000 ETH (+0.91%)

Onchain Market Cap

$14,838,305.17

Circulating Supply Market Cap

$14,835,941.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
500,000 OPN

Value
$585.23 ( ~0.172394086923798 Eth) [0.0039%]
0xDE27EAF4c73c2b1AF20E324FF7C2f287D739EceB
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

The OPEN Ticketing Ecosystem, which has issued over 5 million onchain tickets globally, offers tools for integrators, event organisers and artists to regain control of their ticketing and explore new financing, access and fan relationship opportunities.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
OPNToken

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
london EvmVersion
File 1 of 4 : OPNToken.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

import {ERC20} from "erc20/ERC20.sol";
import {IOPNToken} from "./interfaces/IOPNToken.sol";

/// @title OPNToken
/// @author The OPN Ecosystem Team
contract OPNToken is IOPNToken, ERC20 {
    string public constant NAME = "Open Ecosystem Token";
    string public constant SYMBOL = "OPN";
    uint8 public constant DECIMALS = 18;

    /// @inheritdoc IOPNToken
    address public override mintManagerAddress;

    /// @inheritdoc IOPNToken
    address public override daoControllerAddress;

    /// @inheritdoc IOPNToken
    bool public override migrationIssuanceDisabledPermanently = false;

    constructor(address _initialController) ERC20(NAME, SYMBOL, DECIMALS) {
        daoControllerAddress = _initialController;
        // mint 2 tokens for bridge registrations and testing post migration
        _mint(msg.sender, 2 * 1e18);
    }

    // Modifiers

    modifier onlyMintManager() {
        require(
            msg.sender == mintManagerAddress,
            "OPNToken: UNAUTHORIZED MINT MANAGER"
        );
        _;
    }

    modifier onlyDAOController() {
        require(
            msg.sender == daoControllerAddress,
            "OPNToken: UNAUTHORIZED DAO CONTROLLER"
        );
        _;
    }

    // Operational functions for migration

    /// @inheritdoc IOPNToken
    function issueTokensMigration(
        address _to,
        uint256 _amount
    ) external override onlyMintManager {
        require(
            !migrationIssuanceDisabledPermanently,
            "OPNToken: MIGRATION MINTING DISABLED PERMANENTLY"
        );
        _mint(_to, _amount);
        emit MigrationMint(_to, _amount);
    }

    /// @inheritdoc IOPNToken
    function mintTokenPolygonInventory(
        address _to,
        uint256 _amount
    ) external override onlyDAOController {
        require(
            !migrationIssuanceDisabledPermanently,
            "OPNToken: MIGRATION MINTING DISABLED PERMANENTLY"
        );
        _mint(_to, _amount);
        emit MigrationInventoryMint(_to, _amount);
    }

    // Operational functions for DAO post operations

    /// @inheritdoc IOPNToken
    function mintTokensByDAO(
        address _to,
        uint256 _amount
    ) external override onlyDAOController {
        _mint(_to, _amount);
        emit DaoMint(_to, _amount);
    }

    // Operational functions for token holders

    /// @inheritdoc IOPNToken
    function burn(uint256 _amount) external override {
        _burn(msg.sender, _amount);
        emit TokensBurned(msg.sender, _amount);
    }

    // Configuration functions

    /// @inheritdoc IOPNToken
    function setDAOControllerAddress(
        address _newDaoController
    ) external override onlyDAOController {
        daoControllerAddress = _newDaoController;
        emit DaoControllerSet(_newDaoController);
    }

    /// @inheritdoc IOPNToken
    function finalizeMigration() external override onlyDAOController {
        migrationIssuanceDisabledPermanently = true;
        delete mintManagerAddress;
        emit MigrationConfigFinalized();
    }

    /// @inheritdoc IOPNToken
    function setMintManager(
        address _newMigrationManager
    ) external override onlyDAOController {
        require(
            !migrationIssuanceDisabledPermanently,
            "OPNToken: MIGRATION MINTING DISABLED PERMANENTLY"
        );
        mintManagerAddress = _newMigrationManager;
        emit MigrationManagerSet(_newMigrationManager);
    }
}

File 2 of 4 : ERC20.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity 0.8.7;

import { IERC20 } from "./interfaces/IERC20.sol";

/*
    ███████╗██████╗  ██████╗    ██████╗  ██████╗
    ██╔════╝██╔══██╗██╔════╝    ╚════██╗██╔═████╗
    █████╗  ██████╔╝██║          █████╔╝██║██╔██║
    ██╔══╝  ██╔══██╗██║         ██╔═══╝ ████╔╝██║
    ███████╗██║  ██║╚██████╗    ███████╗╚██████╔╝
    ╚══════╝╚═╝  ╚═╝ ╚═════╝    ╚══════╝ ╚═════╝
*/

/**
 *  @title Modern ERC-20 implementation.
 *  @dev   Acknowledgements to Solmate, OpenZeppelin, and DSS for inspiring this code.
 */
contract ERC20 is IERC20 {

    /**************/
    /*** ERC-20 ***/
    /**************/

    string public override name;
    string public override symbol;

    uint8 public immutable override decimals;

    uint256 public override totalSupply;

    mapping(address => uint256) public override balanceOf;

    mapping(address => mapping(address => uint256)) public override allowance;

    /****************/
    /*** ERC-2612 ***/
    /****************/

    // PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
    bytes32 private constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;

    uint256 internal immutable initialChainId;

    bytes32 internal immutable initialDomainSeparator;

    mapping(address => uint256) public override nonces;

    /**
     *  @param name_     The name of the token.
     *  @param symbol_   The symbol of the token.
     *  @param decimals_ The decimal precision used by the token.
     */
    constructor(string memory name_, string memory symbol_, uint8 decimals_) {
        name     = name_;
        symbol   = symbol_;
        decimals = decimals_;
        initialChainId = block.chainid;
        initialDomainSeparator = _computeDomainSeparator();
    }

    /**************************/
    /*** External Functions ***/
    /**************************/

    function approve(address spender_, uint256 amount_) external override returns (bool success_) {
        _approve(msg.sender, spender_, amount_);
        return true;
    }

    function decreaseAllowance(address spender_, uint256 subtractedAmount_) external override returns (bool success_) {
        _decreaseAllowance(msg.sender, spender_, subtractedAmount_);
        return true;
    }

    function increaseAllowance(address spender_, uint256 addedAmount_) external override returns (bool success_) {
        _approve(msg.sender, spender_, allowance[msg.sender][spender_] + addedAmount_);
        return true;
    }

    function permit(address owner_, address spender_, uint256 amount_, uint256 deadline_, uint8 v_, bytes32 r_, bytes32 s_) external override {
        require(deadline_ >= block.timestamp, "ERC20:P:EXPIRED");

        // Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines
        // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}.
        require(
            uint256(s_) <= uint256(0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) &&
            (v_ == 27 || v_ == 28),
            "ERC20:P:MALLEABLE"
        );

        // Nonce realistically cannot overflow.
        unchecked {
            bytes32 digest = keccak256(
                abi.encodePacked(
                    "\x19\x01",
                    DOMAIN_SEPARATOR(),
                    keccak256(abi.encode(PERMIT_TYPEHASH, owner_, spender_, amount_, nonces[owner_]++, deadline_))
                )
            );

            address recoveredAddress = ecrecover(digest, v_, r_, s_);

            require(recoveredAddress == owner_ && owner_ != address(0), "ERC20:P:INVALID_SIGNATURE");
        }

        _approve(owner_, spender_, amount_);
    }

    function transfer(address recipient_, uint256 amount_) external override returns (bool success_) {
        _transfer(msg.sender, recipient_, amount_);
        return true;
    }

    function transferFrom(address owner_, address recipient_, uint256 amount_) external override returns (bool success_) {
        _decreaseAllowance(owner_, msg.sender, amount_);
        _transfer(owner_, recipient_, amount_);
        return true;
    }

    /**********************/
    /*** View Functions ***/
    /**********************/

    function DOMAIN_SEPARATOR() public view virtual override returns (bytes32 domainSeparator_) {
        return block.chainid == initialChainId ? initialDomainSeparator : _computeDomainSeparator();
    }

    /**************************/
    /*** Internal Functions ***/
    /**************************/

    function _approve(address owner_, address spender_, uint256 amount_) internal {
        emit Approval(owner_, spender_, allowance[owner_][spender_] = amount_);
    }

    function _burn(address owner_, uint256 amount_) internal virtual {
        balanceOf[owner_] -= amount_;

        // Cannot underflow because a user's balance will never be larger than the total supply.
        unchecked { totalSupply -= amount_; }

        emit Transfer(owner_, address(0), amount_);
    }

    function _computeDomainSeparator() internal view virtual returns (bytes32 domainSeparator_) {
        return keccak256(
            abi.encode(
                keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
                keccak256(bytes(name)),
                keccak256(bytes("1")),
                block.chainid,
                address(this)
            )
        );
    }

    function _decreaseAllowance(address owner_, address spender_, uint256 subtractedAmount_) internal {
        uint256 spenderAllowance = allowance[owner_][spender_];  // Cache to memory.

        if (spenderAllowance != type(uint256).max) {
            _approve(owner_, spender_, spenderAllowance - subtractedAmount_);
        }
    }

    function _mint(address recipient_, uint256 amount_) internal virtual {
        totalSupply += amount_;

        // Cannot overflow because totalSupply would first overflow in the statement above.
        unchecked { balanceOf[recipient_] += amount_; }

        emit Transfer(address(0), recipient_, amount_);
    }

    function _transfer(address owner_, address recipient_, uint256 amount_) internal virtual {
        balanceOf[owner_] -= amount_;

        // Cannot overflow because minting prevents overflow of totalSupply, and sum of user balances == totalSupply.
        unchecked { balanceOf[recipient_] += amount_; }

        emit Transfer(owner_, recipient_, amount_);
    }

}

File 3 of 4 : IOPNToken.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0 <0.9.0;

import {IERC20} from "erc20/interfaces/IERC20.sol";

interface IOPNToken is IERC20 {
    /// @notice Mint function only callable by the DAO
    /// @dev this function will be only callable by a DAO governance contract that can only execute functions like these after a majority vote (with quorum) has been reached
    /// @param _to Address to which tokens will be minted.
    /// @param _amount Amount of tokens to mint
    function mintTokensByDAO(address _to, uint256 _amount) external;

    /// @notice Issues tokens during the migration process.
    /// @dev This function will be only callable by a migration manager contract(burning GET and minting OPN) that will be responsible for minting tokens during the migration process. After the migration the DAO can revoke the minting rights of the migration manager.
    /// @param _to Address to which tokens will be minted.
    /// @param _amount Amount of tokens to mint.
    function issueTokensMigration(address _to, uint256 _amount) external;

    /// @notice Mints tokens for Polygon inventory.
    /// @dev As to allow GET to be migrated on Polygon this function will be used to mint a certain amount of tokens to the Polygon inventory. This is not inflationary as the tokens are already minted on Ethereum and are just being moved to Polygon.
    /// @param _to Address to which tokens will be minted.
    /// @param _amount Amount of tokens to mint.
    function mintTokenPolygonInventory(address _to, uint256 _amount) external;

    /// @notice Allows token holders to burn their tokens.
    /// @param _amount Amount of tokens to burn.
    function burn(uint256 _amount) external;

    /// @notice Finalizes the migration process
    /// @dev this function disables the migration minting and revokes the minting rights of the migration manager. This function can only be called by the DAO.
    function finalizeMigration() external;

    /// @notice Sets a new DAO controller address
    /// @param _newDaoController The address of the new DAO controller.
    function setDAOControllerAddress(address _newDaoController) external;

    /// @notice Sets a new mint manager address
    /// @param _newMigrationManager The address of the new mint manager.
    function setMintManager(address _newMigrationManager) external;

    // View functions

    /// @notice Returns the address of the mint manager.
    /// @return address of the mint manager.
    function mintManagerAddress() external view returns (address);

    /// @notice Returns the address of the DAO controller.
    /// @return address of the DAO controller.
    function daoControllerAddress() external view returns (address);

    /// @notice Returns whether the migration issuance is disabled permanently
    function migrationIssuanceDisabledPermanently()
        external
        view
        returns (bool);

    // Events

    event TokensBurned(address indexed from, uint256 amount);

    event MigrationInventoryMint(address indexed to, uint256 amount);

    event MigrationManagerSet(address indexed newMigrationManager);

    event MigrationMint(address indexed to, uint256 amount);

    event DaoMint(address indexed to, uint256 amount);

    event DaoControllerSet(address _newDaoController);

    event MigrationConfigFinalized();
}

File 4 of 4 : IERC20.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity 0.8.7;

/// @title Interface of the ERC20 standard as defined in the EIP, including EIP-2612 permit functionality.
interface IERC20 {

    /**************/
    /*** Events ***/
    /**************/

    /**
     *  @dev   Emitted when one account has set the allowance of another account over their tokens.
     *  @param owner_   Account that tokens are approved from.
     *  @param spender_ Account that tokens are approved for.
     *  @param amount_  Amount of tokens that have been approved.
     */
    event Approval(address indexed owner_, address indexed spender_, uint256 amount_);

    /**
     *  @dev   Emitted when tokens have moved from one account to another.
     *  @param owner_     Account that tokens have moved from.
     *  @param recipient_ Account that tokens have moved to.
     *  @param amount_    Amount of tokens that have been transferred.
     */
    event Transfer(address indexed owner_, address indexed recipient_, uint256 amount_);

    /**************************/
    /*** External Functions ***/
    /**************************/

    /**
     *  @dev    Function that allows one account to set the allowance of another account over their tokens.
     *          Emits an {Approval} event.
     *  @param  spender_ Account that tokens are approved for.
     *  @param  amount_  Amount of tokens that have been approved.
     *  @return success_ Boolean indicating whether the operation succeeded.
     */
    function approve(address spender_, uint256 amount_) external returns (bool success_);

    /**
     *  @dev    Function that allows one account to decrease the allowance of another account over their tokens.
     *          Emits an {Approval} event.
     *  @param  spender_          Account that tokens are approved for.
     *  @param  subtractedAmount_ Amount to decrease approval by.
     *  @return success_          Boolean indicating whether the operation succeeded.
     */
    function decreaseAllowance(address spender_, uint256 subtractedAmount_) external returns (bool success_);

    /**
     *  @dev    Function that allows one account to increase the allowance of another account over their tokens.
     *          Emits an {Approval} event.
     *  @param  spender_     Account that tokens are approved for.
     *  @param  addedAmount_ Amount to increase approval by.
     *  @return success_     Boolean indicating whether the operation succeeded.
     */
    function increaseAllowance(address spender_, uint256 addedAmount_) external returns (bool success_);

    /**
     *  @dev   Approve by signature.
     *  @param owner_    Owner address that signed the permit.
     *  @param spender_  Spender of the permit.
     *  @param amount_   Permit approval spend limit.
     *  @param deadline_ Deadline after which the permit is invalid.
     *  @param v_        ECDSA signature v component.
     *  @param r_        ECDSA signature r component.
     *  @param s_        ECDSA signature s component.
     */
    function permit(address owner_, address spender_, uint amount_, uint deadline_, uint8 v_, bytes32 r_, bytes32 s_) external;

    /**
     *  @dev    Moves an amount of tokens from `msg.sender` to a specified account.
     *          Emits a {Transfer} event.
     *  @param  recipient_ Account that receives tokens.
     *  @param  amount_    Amount of tokens that are transferred.
     *  @return success_   Boolean indicating whether the operation succeeded.
     */
    function transfer(address recipient_, uint256 amount_) external returns (bool success_);

    /**
     *  @dev    Moves a pre-approved amount of tokens from a sender to a specified account.
     *          Emits a {Transfer} event.
     *          Emits an {Approval} event.
     *  @param  owner_     Account that tokens are moving from.
     *  @param  recipient_ Account that receives tokens.
     *  @param  amount_    Amount of tokens that are transferred.
     *  @return success_   Boolean indicating whether the operation succeeded.
     */
    function transferFrom(address owner_, address recipient_, uint256 amount_) external returns (bool success_);

    /**********************/
    /*** View Functions ***/
    /**********************/

    /**
     *  @dev    Returns the allowance that one account has given another over their tokens.
     *  @param  owner_     Account that tokens are approved from.
     *  @param  spender_   Account that tokens are approved for.
     *  @return allowance_ Allowance that one account has given another over their tokens.
     */
    function allowance(address owner_, address spender_) external view returns (uint256 allowance_);

    /**
     *  @dev    Returns the amount of tokens owned by a given account.
     *  @param  account_ Account that owns the tokens.
     *  @return balance_ Amount of tokens owned by a given account.
     */
    function balanceOf(address account_) external view returns (uint256 balance_);

    /**
     *  @dev    Returns the decimal precision used by the token.
     *  @return decimals_ The decimal precision used by the token.
     */
    function decimals() external view returns (uint8 decimals_);

    /**
     *  @dev    Returns the signature domain separator.
     *  @return domainSeparator_ The signature domain separator.
     */
    function DOMAIN_SEPARATOR() external view returns (bytes32 domainSeparator_);

    /**
     *  @dev    Returns the name of the token.
     *  @return name_ The name of the token.
     */
    function name() external view returns (string memory name_);

    /**
      *  @dev    Returns the nonce for the given owner.
      *  @param  owner_  The address of the owner account.
      *  @return nonce_ The nonce for the given owner.
     */
    function nonces(address owner_) external view returns (uint256 nonce_);

    /**
     *  @dev    Returns the symbol of the token.
     *  @return symbol_ The symbol of the token.
     */
    function symbol() external view returns (string memory symbol_);

    /**
     *  @dev    Returns the total amount of tokens in existence.
     *  @return totalSupply_ The total amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256 totalSupply_);

}

Settings
{
  "remappings": [
    "@solmate/src/=lib/solmate/src/",
    "forge-std/=lib/forge-std/src/",
    "contract-test-utils/=lib/erc20-helper/lib/contract-test-utils/contracts/",
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "erc20-helper/=lib/erc20-helper/src/",
    "erc20/=lib/erc20/contracts/",
    "revenue-distribution-token/=lib/revenue-distribution-token/contracts/",
    "solmate/=lib/solmate/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "viaIR": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_initialController","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner_","type":"address"},{"indexed":true,"internalType":"address","name":"spender_","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_newDaoController","type":"address"}],"name":"DaoControllerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"DaoMint","type":"event"},{"anonymous":false,"inputs":[],"name":"MigrationConfigFinalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MigrationInventoryMint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newMigrationManager","type":"address"}],"name":"MigrationManagerSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MigrationMint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TokensBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner_","type":"address"},{"indexed":true,"internalType":"address","name":"recipient_","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DECIMALS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"domainSeparator_","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SYMBOL","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success_","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"daoControllerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender_","type":"address"},{"internalType":"uint256","name":"subtractedAmount_","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"success_","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalizeMigration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender_","type":"address"},{"internalType":"uint256","name":"addedAmount_","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"success_","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"issueTokensMigration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"migrationIssuanceDisabledPermanently","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintManagerAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mintTokenPolygonInventory","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mintTokensByDAO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"spender_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"},{"internalType":"uint256","name":"deadline_","type":"uint256"},{"internalType":"uint8","name":"v_","type":"uint8"},{"internalType":"bytes32","name":"r_","type":"bytes32"},{"internalType":"bytes32","name":"s_","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newDaoController","type":"address"}],"name":"setDAOControllerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newMigrationManager","type":"address"}],"name":"setMintManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","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":"recipient_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success_","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"recipient_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success_","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60e06040526007805460ff60a01b191690553480156200001e57600080fd5b50604051620016c4380380620016c48339810160408190526200004191620002f4565b604080518082018252601481527f4f70656e2045636f73797374656d20546f6b656e00000000000000000000000060208083019182528351808501909452600384526227a82760e91b908401528151919291601291620000a591600091906200024e565b508151620000bb9060019060208501906200024e565b507fff0000000000000000000000000000000000000000000000000000000000000060f882901b166080524660a052620000f462000130565b60c0525050600780546001600160a01b0319166001600160a01b038416179055506200012933671bc16d674ec80000620001e1565b506200042e565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600060405162000164919062000326565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b8060026000828254620001f59190620003ca565b90915550506001600160a01b0382166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b8280546200025c90620003f1565b90600052602060002090601f016020900481019282620002805760008555620002cb565b82601f106200029b57805160ff1916838001178555620002cb565b82800160010185558215620002cb579182015b82811115620002cb578251825591602001919060010190620002ae565b50620002d9929150620002dd565b5090565b5b80821115620002d95760008155600101620002de565b6000602082840312156200030757600080fd5b81516001600160a01b03811681146200031f57600080fd5b9392505050565b600080835481600182811c9150808316806200034357607f831692505b60208084108214156200036457634e487b7160e01b86526022600452602486fd5b8180156200037b57600181146200038d57620003bc565b60ff19861689528489019650620003bc565b60008a81526020902060005b86811015620003b45781548b82015290850190830162000399565b505084890196505b509498975050505050505050565b60008219821115620003ec57634e487b7160e01b600052601160045260246000fd5b500190565b600181811c908216806200040657607f821691505b602082108114156200042857634e487b7160e01b600052602260045260246000fd5b50919050565b60805160f81c60a05160c0516112636200046160003960006106c6015260006106910152600061027401526112636000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806364e9e043116100f9578063a9059cbb11610097578063d505accf11610071578063d505accf146103d1578063dd62ed3e146103e4578063f76f8d781461040f578063fc339dcc1461043157600080fd5b8063a9059cbb146103a3578063b78b6087146103b6578063cfdfb129146103be57600080fd5b80638830eac0116100d35780638830eac01461034257806395d89b4114610355578063a3f4df7e1461035d578063a457c2d71461039057600080fd5b806364e9e043146102ef57806370a08231146103025780637ecebe001461032257600080fd5b806329a4f431116101665780633644e515116101405780633644e51514610296578063395093511461029e5780633c9f849f146102b157806342966c68146102dc57600080fd5b806329a4f431146102425780632e0f262514610255578063313ce5671461026f57600080fd5b806306fdde03146101ae578063095ea7b3146101cc57806318160ddd146101ef578063221afcd51461020657806323b872dd1461021b578063293570ea1461022e575b600080fd5b6101b6610444565b6040516101c391906110c3565b60405180910390f35b6101df6101da366004610fe4565b6104d2565b60405190151581526020016101c3565b6101f860025481565b6040519081526020016101c3565b610219610214366004610fe4565b6104e8565b005b6101df610229366004610f35565b610596565b6007546101df90600160a01b900460ff1681565b610219610250366004610fe4565b6105b8565b61025d601281565b60405160ff90911681526020016101c3565b61025d7f000000000000000000000000000000000000000000000000000000000000000081565b6101f861068d565b6101df6102ac366004610fe4565b6106e8565b6007546102c4906001600160a01b031681565b6040516001600160a01b0390911681526020016101c3565b6102196102ea36600461100e565b610724565b6102196102fd366004610ee0565b610766565b6101f8610310366004610ee0565b60036020526000908152604090205481565b6101f8610330366004610ee0565b60056020526000908152604090205481565b610219610350366004610ee0565b6107e4565b6101b6610882565b6101b66040518060400160405280601481526020017327b832b71022b1b7b9bcb9ba32b6902a37b5b2b760611b81525081565b6101df61039e366004610fe4565b61088f565b6101df6103b1366004610fe4565b61089c565b6102196108a9565b6006546102c4906001600160a01b031681565b6102196103df366004610f71565b610921565b6101f86103f2366004610f02565b600460209081526000928352604080842090915290825290205481565b6101b66040518060400160405280600381526020016227a82760e91b81525081565b61021961043f366004610fe4565b610b9d565b60008054610451906111dc565b80601f016020809104026020016040519081016040528092919081815260200182805461047d906111dc565b80156104ca5780601f1061049f576101008083540402835291602001916104ca565b820191906000526020600020905b8154815290600101906020018083116104ad57829003601f168201915b505050505081565b60006104df338484610c0c565b50600192915050565b6007546001600160a01b0316331461051b5760405162461bcd60e51b815260040161051290611168565b60405180910390fd5b600754600160a01b900460ff16156105455760405162461bcd60e51b815260040161051290611118565b61054f8282610c6e565b816001600160a01b03167f78aefcb901d4baf8afce38f52ff95ead7f6f157b2938c129d66f374da74d2c478260405161058a91815260200190565b60405180910390a25050565b60006105a3843384610cda565b6105ae848484610d1e565b5060019392505050565b6006546001600160a01b0316331461061e5760405162461bcd60e51b815260206004820152602360248201527f4f504e546f6b656e3a20554e415554484f52495a4544204d494e54204d414e4160448201526223a2a960e91b6064820152608401610512565b600754600160a01b900460ff16156106485760405162461bcd60e51b815260040161051290611118565b6106528282610c6e565b816001600160a01b03167f577779026de96300989720df26238d2afd0f81233dc790abc107fae45dad0bb98260405161058a91815260200190565b60007f000000000000000000000000000000000000000000000000000000000000000046146106c3576106be610da1565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916104df91859061071f9086906111ad565b610c0c565b61072e3382610e50565b60405181815233907ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb69060200160405180910390a250565b6007546001600160a01b031633146107905760405162461bcd60e51b815260040161051290611168565b600780546001600160a01b0319166001600160a01b0383169081179091556040519081527f5ab91a6f3863bbfc327030665a2e7eb5896f712a142edf28cc9c773e1c6a73bc9060200160405180910390a150565b6007546001600160a01b0316331461080e5760405162461bcd60e51b815260040161051290611168565b600754600160a01b900460ff16156108385760405162461bcd60e51b815260040161051290611118565b600680546001600160a01b0319166001600160a01b0383169081179091556040517f4ea7f35e49d8ac5590cb85b56ca7a294360e20a1631ed7bf3cc03ddcea65862190600090a250565b60018054610451906111dc565b60006104df338484610cda565b60006104df338484610d1e565b6007546001600160a01b031633146108d35760405162461bcd60e51b815260040161051290611168565b6007805460ff60a01b1916600160a01b179055600680546001600160a01b03191690556040517f89510af5592be8ab6baf34bcde61e39acdad9817e72a34252d05b1c2f418840b90600090a1565b428410156109635760405162461bcd60e51b815260206004820152600f60248201526e115490cc8c0e940e91561412549151608a1b6044820152606401610512565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a081118015906109a357508260ff16601b14806109a357508260ff16601c145b6109e35760405162461bcd60e51b815260206004820152601160248201527045524332303a503a4d414c4c4541424c4560781b6044820152606401610512565b60006109ed61068d565b6001600160a01b0389811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938c166060840152608083018b905260a083019390935260c08083018a90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015610b06573d6000803e3d6000fd5b505050602060405103519050886001600160a01b0316816001600160a01b0316148015610b3b57506001600160a01b03891615155b610b875760405162461bcd60e51b815260206004820152601960248201527f45524332303a503a494e56414c49445f5349474e4154555245000000000000006044820152606401610512565b5050610b94878787610c0c565b50505050505050565b6007546001600160a01b03163314610bc75760405162461bcd60e51b815260040161051290611168565b610bd18282610c6e565b816001600160a01b03167f3c379167dfaf774055092997899a344d169c1e98202fac561a98af42674f3b018260405161058a91815260200190565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b8060026000828254610c8091906111ad565b90915550506001600160a01b0382166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6001600160a01b038084166000908152600460209081526040808320938616835292905220546000198114610d1857610d18848461071f85856111c5565b50505050565b6001600160a01b03831660009081526003602052604081208054839290610d469084906111c5565b90915550506001600160a01b03808316600081815260036020526040908190208054850190555190918516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c619085815260200190565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051610dd39190611027565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6001600160a01b03821660009081526003602052604081208054839290610e789084906111c5565b90915550506002805482900390556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610cce565b80356001600160a01b0381168114610edb57600080fd5b919050565b600060208284031215610ef257600080fd5b610efb82610ec4565b9392505050565b60008060408385031215610f1557600080fd5b610f1e83610ec4565b9150610f2c60208401610ec4565b90509250929050565b600080600060608486031215610f4a57600080fd5b610f5384610ec4565b9250610f6160208501610ec4565b9150604084013590509250925092565b600080600080600080600060e0888a031215610f8c57600080fd5b610f9588610ec4565b9650610fa360208901610ec4565b95506040880135945060608801359350608088013560ff81168114610fc757600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610ff757600080fd5b61100083610ec4565b946020939093013593505050565b60006020828403121561102057600080fd5b5035919050565b600080835481600182811c91508083168061104357607f831692505b602080841082141561106357634e487b7160e01b86526022600452602486fd5b8180156110775760018114611088576110b5565b60ff198616895284890196506110b5565b60008a81526020902060005b868110156110ad5781548b820152908501908301611094565b505084890196505b509498975050505050505050565b600060208083528351808285015260005b818110156110f0578581018301518582016040015282016110d4565b81811115611102576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526030908201527f4f504e546f6b656e3a204d4947524154494f4e204d494e54494e47204449534160408201526f424c4544205045524d414e454e544c5960801b606082015260800190565b60208082526025908201527f4f504e546f6b656e3a20554e415554484f52495a45442044414f20434f4e545260408201526427a62622a960d91b606082015260800190565b600082198211156111c0576111c0611217565b500190565b6000828210156111d7576111d7611217565b500390565b600181811c908216806111f057607f821691505b6020821081141561121157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220678554162574017bc291f25a08547dab980eddd15d62a4b66a43b9b906ea886164736f6c63430008070033000000000000000000000000f7a171c168a35ae858fd18bec5bb7c28134b823f

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101a95760003560e01c806364e9e043116100f9578063a9059cbb11610097578063d505accf11610071578063d505accf146103d1578063dd62ed3e146103e4578063f76f8d781461040f578063fc339dcc1461043157600080fd5b8063a9059cbb146103a3578063b78b6087146103b6578063cfdfb129146103be57600080fd5b80638830eac0116100d35780638830eac01461034257806395d89b4114610355578063a3f4df7e1461035d578063a457c2d71461039057600080fd5b806364e9e043146102ef57806370a08231146103025780637ecebe001461032257600080fd5b806329a4f431116101665780633644e515116101405780633644e51514610296578063395093511461029e5780633c9f849f146102b157806342966c68146102dc57600080fd5b806329a4f431146102425780632e0f262514610255578063313ce5671461026f57600080fd5b806306fdde03146101ae578063095ea7b3146101cc57806318160ddd146101ef578063221afcd51461020657806323b872dd1461021b578063293570ea1461022e575b600080fd5b6101b6610444565b6040516101c391906110c3565b60405180910390f35b6101df6101da366004610fe4565b6104d2565b60405190151581526020016101c3565b6101f860025481565b6040519081526020016101c3565b610219610214366004610fe4565b6104e8565b005b6101df610229366004610f35565b610596565b6007546101df90600160a01b900460ff1681565b610219610250366004610fe4565b6105b8565b61025d601281565b60405160ff90911681526020016101c3565b61025d7f000000000000000000000000000000000000000000000000000000000000001281565b6101f861068d565b6101df6102ac366004610fe4565b6106e8565b6007546102c4906001600160a01b031681565b6040516001600160a01b0390911681526020016101c3565b6102196102ea36600461100e565b610724565b6102196102fd366004610ee0565b610766565b6101f8610310366004610ee0565b60036020526000908152604090205481565b6101f8610330366004610ee0565b60056020526000908152604090205481565b610219610350366004610ee0565b6107e4565b6101b6610882565b6101b66040518060400160405280601481526020017327b832b71022b1b7b9bcb9ba32b6902a37b5b2b760611b81525081565b6101df61039e366004610fe4565b61088f565b6101df6103b1366004610fe4565b61089c565b6102196108a9565b6006546102c4906001600160a01b031681565b6102196103df366004610f71565b610921565b6101f86103f2366004610f02565b600460209081526000928352604080842090915290825290205481565b6101b66040518060400160405280600381526020016227a82760e91b81525081565b61021961043f366004610fe4565b610b9d565b60008054610451906111dc565b80601f016020809104026020016040519081016040528092919081815260200182805461047d906111dc565b80156104ca5780601f1061049f576101008083540402835291602001916104ca565b820191906000526020600020905b8154815290600101906020018083116104ad57829003601f168201915b505050505081565b60006104df338484610c0c565b50600192915050565b6007546001600160a01b0316331461051b5760405162461bcd60e51b815260040161051290611168565b60405180910390fd5b600754600160a01b900460ff16156105455760405162461bcd60e51b815260040161051290611118565b61054f8282610c6e565b816001600160a01b03167f78aefcb901d4baf8afce38f52ff95ead7f6f157b2938c129d66f374da74d2c478260405161058a91815260200190565b60405180910390a25050565b60006105a3843384610cda565b6105ae848484610d1e565b5060019392505050565b6006546001600160a01b0316331461061e5760405162461bcd60e51b815260206004820152602360248201527f4f504e546f6b656e3a20554e415554484f52495a4544204d494e54204d414e4160448201526223a2a960e91b6064820152608401610512565b600754600160a01b900460ff16156106485760405162461bcd60e51b815260040161051290611118565b6106528282610c6e565b816001600160a01b03167f577779026de96300989720df26238d2afd0f81233dc790abc107fae45dad0bb98260405161058a91815260200190565b60007f000000000000000000000000000000000000000000000000000000000000000146146106c3576106be610da1565b905090565b507fec629ab4aa7cd259bf5595cee9faf4049ac408ade60b2c128f22f6c1e7ff050290565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916104df91859061071f9086906111ad565b610c0c565b61072e3382610e50565b60405181815233907ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb69060200160405180910390a250565b6007546001600160a01b031633146107905760405162461bcd60e51b815260040161051290611168565b600780546001600160a01b0319166001600160a01b0383169081179091556040519081527f5ab91a6f3863bbfc327030665a2e7eb5896f712a142edf28cc9c773e1c6a73bc9060200160405180910390a150565b6007546001600160a01b0316331461080e5760405162461bcd60e51b815260040161051290611168565b600754600160a01b900460ff16156108385760405162461bcd60e51b815260040161051290611118565b600680546001600160a01b0319166001600160a01b0383169081179091556040517f4ea7f35e49d8ac5590cb85b56ca7a294360e20a1631ed7bf3cc03ddcea65862190600090a250565b60018054610451906111dc565b60006104df338484610cda565b60006104df338484610d1e565b6007546001600160a01b031633146108d35760405162461bcd60e51b815260040161051290611168565b6007805460ff60a01b1916600160a01b179055600680546001600160a01b03191690556040517f89510af5592be8ab6baf34bcde61e39acdad9817e72a34252d05b1c2f418840b90600090a1565b428410156109635760405162461bcd60e51b815260206004820152600f60248201526e115490cc8c0e940e91561412549151608a1b6044820152606401610512565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a081118015906109a357508260ff16601b14806109a357508260ff16601c145b6109e35760405162461bcd60e51b815260206004820152601160248201527045524332303a503a4d414c4c4541424c4560781b6044820152606401610512565b60006109ed61068d565b6001600160a01b0389811660008181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938c166060840152608083018b905260a083019390935260c08083018a90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015610b06573d6000803e3d6000fd5b505050602060405103519050886001600160a01b0316816001600160a01b0316148015610b3b57506001600160a01b03891615155b610b875760405162461bcd60e51b815260206004820152601960248201527f45524332303a503a494e56414c49445f5349474e4154555245000000000000006044820152606401610512565b5050610b94878787610c0c565b50505050505050565b6007546001600160a01b03163314610bc75760405162461bcd60e51b815260040161051290611168565b610bd18282610c6e565b816001600160a01b03167f3c379167dfaf774055092997899a344d169c1e98202fac561a98af42674f3b018260405161058a91815260200190565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b8060026000828254610c8091906111ad565b90915550506001600160a01b0382166000818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91015b60405180910390a35050565b6001600160a01b038084166000908152600460209081526040808320938616835292905220546000198114610d1857610d18848461071f85856111c5565b50505050565b6001600160a01b03831660009081526003602052604081208054839290610d469084906111c5565b90915550506001600160a01b03808316600081815260036020526040908190208054850190555190918516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c619085815260200190565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051610dd39190611027565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6001600160a01b03821660009081526003602052604081208054839290610e789084906111c5565b90915550506002805482900390556040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610cce565b80356001600160a01b0381168114610edb57600080fd5b919050565b600060208284031215610ef257600080fd5b610efb82610ec4565b9392505050565b60008060408385031215610f1557600080fd5b610f1e83610ec4565b9150610f2c60208401610ec4565b90509250929050565b600080600060608486031215610f4a57600080fd5b610f5384610ec4565b9250610f6160208501610ec4565b9150604084013590509250925092565b600080600080600080600060e0888a031215610f8c57600080fd5b610f9588610ec4565b9650610fa360208901610ec4565b95506040880135945060608801359350608088013560ff81168114610fc757600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610ff757600080fd5b61100083610ec4565b946020939093013593505050565b60006020828403121561102057600080fd5b5035919050565b600080835481600182811c91508083168061104357607f831692505b602080841082141561106357634e487b7160e01b86526022600452602486fd5b8180156110775760018114611088576110b5565b60ff198616895284890196506110b5565b60008a81526020902060005b868110156110ad5781548b820152908501908301611094565b505084890196505b509498975050505050505050565b600060208083528351808285015260005b818110156110f0578581018301518582016040015282016110d4565b81811115611102576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526030908201527f4f504e546f6b656e3a204d4947524154494f4e204d494e54494e47204449534160408201526f424c4544205045524d414e454e544c5960801b606082015260800190565b60208082526025908201527f4f504e546f6b656e3a20554e415554484f52495a45442044414f20434f4e545260408201526427a62622a960d91b606082015260800190565b600082198211156111c0576111c0611217565b500190565b6000828210156111d7576111d7611217565b500390565b600181811c908216806111f057607f821691505b6020821081141561121157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220678554162574017bc291f25a08547dab980eddd15d62a4b66a43b9b906ea886164736f6c63430008070033

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

000000000000000000000000f7a171c168a35ae858fd18bec5bb7c28134b823f

-----Decoded View---------------
Arg [0] : _initialController (address): 0xF7a171C168A35ae858FD18BEc5Bb7C28134B823F

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f7a171c168a35ae858fd18bec5bb7c28134b823f


Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.