ETH Price: $2,849.72 (-3.11%)
 

Overview

Max Total Supply

0 BB

Holders

414

Transfers

-
0

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A

Other Info

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x59ca6156...e691DA3a6
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
OnChainCredential

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.19;

/// @author devfolio

import "solmate/src/tokens/ERC721.sol";

/// @title The OnChainCredential NFT Contract
/// @author devfolio
/// @notice The ERC721 contract for the OnChainCredential NFT Contract
contract OnChainCredential is ERC721 {
    /// @dev The Error thrown when the mint authority is not the caller
    error InvalidMintAuthority();
    /// @dev The Error thrown when the caller is not allowed to transfer the token
    error TransferNotAllowed();
    /// @dev The Error thrown when the caller is not the owner
    error InvalidCaller();

    /// @dev mapping of the tokenId to the metadata
    mapping(uint256 => string) private metadata;
    /// @dev The addrerss of the mint authority that is allowed to mint the NFT
    address internal mint_authority;
    /// @notice The owner of the contract
    address public owner;
    /// @dev The current token ID index
    uint256 tokenIDs = 0;

    constructor(
        string memory name,
        string memory symbol,
        address _mint_authority,
        address _owner
    ) ERC721(name, symbol) {
        mint_authority = _mint_authority;
        owner = _owner;
    }

    /// @notice Mints the OnChainCredential NFT
    /// @dev Only the mint authority can mint the NFT
    /// @param token_metadata Metadata of the token
    /// @param to Address of the receiver of the NFT
    function mint(string calldata token_metadata, address to) external {
        if (msg.sender != mint_authority) revert InvalidMintAuthority();

        uint256 current_token_index = tokenIDs;
        metadata[current_token_index] = token_metadata;

        _mint(to, current_token_index);

        unchecked {
            tokenIDs++;
        }
    }

    /// @notice Returns the metadata of the token
    /// @param id ID of the token
    /// @return Documents the return variables of a contract’s function state variable
    function tokenURI(
        uint256 id
    ) public view virtual override returns (string memory) {
        return metadata[id];
    }

    /// @notice Internal Transfer Function
    /// @param from address of current owner
    /// @param to address of new owner
    /// @param id ID of the token
    function transferFrom(
        address from,
        address to,
        uint256 id
    ) public virtual override {
        if (msg.sender != owner) revert TransferNotAllowed();

        /// @dev Reference:
        /// https://github.com/transmissions11/solmate/blob/bfc9c25865a274a7827fea5abf6e4fb64fc64e6c/src/tokens/ERC721.sol#L82
        unchecked {
            _balanceOf[from]--;

            _balanceOf[to]++;
        }

        _ownerOf[id] = to;

        emit Transfer(from, to, id);
    }

    /// @notice Updates the mint authority of the OnChainCredential Contract
    /// @param newAuthority Address of the new mint authority
    function updateMintAuthority(address newAuthority) external {
        if (msg.sender != owner) revert InvalidCaller();
        mint_authority = newAuthority;
    }
}

// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

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

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

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

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

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

    string public name;

    string public symbol;

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

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

    mapping(uint256 => address) internal _ownerOf;

    mapping(address => uint256) internal _balanceOf;

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

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

        return _balanceOf[owner];
    }

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

    mapping(uint256 => address) public getApproved;

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

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

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

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

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

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

        getApproved[id] = spender;

        emit Approval(owner, spender, id);
    }

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

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

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

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

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

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

            _balanceOf[to]++;
        }

        _ownerOf[id] = to;

        delete getApproved[id];

        emit Transfer(from, to, id);
    }

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

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

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

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

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

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

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

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

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

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

        _ownerOf[id] = to;

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

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

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

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

        delete _ownerOf[id];

        delete getApproved[id];

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

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

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

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

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

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

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

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

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"_mint_authority","type":"address"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidCaller","type":"error"},{"inputs":[],"name":"InvalidMintAuthority","type":"error"},{"inputs":[],"name":"TransferNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"token_metadata","type":"string"},{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"name":"updateMintAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"}]

0x608060405260006009553480156200001657600080fd5b50604051620025fa380380620025fa83398181016040528101906200003c9190620002e8565b838381600090816200004f9190620005e3565b508060019081620000619190620005e3565b50505081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050620006ca565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000159826200010e565b810181811067ffffffffffffffff821117156200017b576200017a6200011f565b5b80604052505050565b600062000190620000f0565b90506200019e82826200014e565b919050565b600067ffffffffffffffff821115620001c157620001c06200011f565b5b620001cc826200010e565b9050602081019050919050565b60005b83811015620001f9578082015181840152602081019050620001dc565b60008484015250505050565b60006200021c6200021684620001a3565b62000184565b9050828152602081018484840111156200023b576200023a62000109565b5b62000248848285620001d9565b509392505050565b600082601f83011262000268576200026762000104565b5b81516200027a84826020860162000205565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002b08262000283565b9050919050565b620002c281620002a3565b8114620002ce57600080fd5b50565b600081519050620002e281620002b7565b92915050565b60008060008060808587031215620003055762000304620000fa565b5b600085015167ffffffffffffffff811115620003265762000325620000ff565b5b620003348782880162000250565b945050602085015167ffffffffffffffff811115620003585762000357620000ff565b5b620003668782880162000250565b93505060406200037987828801620002d1565b92505060606200038c87828801620002d1565b91505092959194509250565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003eb57607f821691505b602082108103620004015762000400620003a3565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200046b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200042c565b6200047786836200042c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004c4620004be620004b8846200048f565b62000499565b6200048f565b9050919050565b6000819050919050565b620004e083620004a3565b620004f8620004ef82620004cb565b84845462000439565b825550505050565b600090565b6200050f62000500565b6200051c818484620004d5565b505050565b5b8181101562000544576200053860008262000505565b60018101905062000522565b5050565b601f82111562000593576200055d8162000407565b62000568846200041c565b8101602085101562000578578190505b6200059062000587856200041c565b83018262000521565b50505b505050565b600082821c905092915050565b6000620005b86000198460080262000598565b1980831691505092915050565b6000620005d38383620005a5565b9150826002028217905092915050565b620005ee8262000398565b67ffffffffffffffff8111156200060a57620006096200011f565b5b620006168254620003d2565b6200062382828562000548565b600060209050601f8311600181146200065b576000841562000646578287015190505b620006528582620005c5565b865550620006c2565b601f1984166200066b8662000407565b60005b8281101562000695578489015182556001820191506020850194506020810190506200066e565b86831015620006b55784890151620006b1601f891682620005a5565b8355505b6001600288020188555050505b505050505050565b611f2080620006da6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063a22cb46511610066578063a22cb465146102ab578063b88d4fde146102c7578063c87b56dd146102e3578063e985e9c51461031357610100565b80636352211e1461020f57806370a082311461023f5780638da5cb5b1461026f57806395d89b411461028d57610100565b8063095ea7b3116100d3578063095ea7b31461019f5780631c351a9d146101bb57806323b872dd146101d757806342842e0e146101f357610100565b80630130a33b1461010557806301ffc9a71461012157806306fdde0314610151578063081812fc1461016f575b600080fd5b61011f600480360381019061011a91906112cc565b610343565b005b61013b60048036038101906101369190611351565b61040e565b6040516101489190611399565b60405180910390f35b6101596104a0565b6040516101669190611444565b60405180910390f35b6101896004803603810190610184919061149c565b61052e565b60405161019691906114d8565b60405180910390f35b6101b960048036038101906101b491906114f3565b610561565b005b6101d560048036038101906101d09190611598565b61074a565b005b6101f160048036038101906101ec91906115f8565b61081d565b005b61020d600480360381019061020891906115f8565b6109f5565b005b6102296004803603810190610224919061149c565b610b2d565b60405161023691906114d8565b60405180910390f35b610259600480360381019061025491906112cc565b610bd8565b604051610266919061165a565b60405180910390f35b610277610c8f565b60405161028491906114d8565b60405180910390f35b610295610cb5565b6040516102a29190611444565b60405180910390f35b6102c560048036038101906102c091906116a1565b610d43565b005b6102e160048036038101906102dc9190611737565b610e40565b005b6102fd60048036038101906102f8919061149c565b610f7e565b60405161030a9190611444565b60405180910390f35b61032d600480360381019061032891906117bf565b611023565b60405161033a9190611399565b60405180910390f35b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103ca576040517f48f5c3ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061046957506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104995750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600080546104ad9061182e565b80601f01602080910402602001604051908101604052809291908181526020018280546104d99061182e565b80156105265780601f106104fb57610100808354040283529160200191610526565b820191906000526020600020905b81548152906001019060200180831161050957829003601f168201915b505050505081565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106595750600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068f906118ab565b60405180910390fd5b826004600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107d1576040517ff68e15d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600954905083836006600084815260200190815260200160002091826107fa929190611ab1565b506108058282611052565b60096000815480929190600101919050555050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108a4576040517f8cd22d1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b610a0083838361081d565b60008273ffffffffffffffffffffffffffffffffffffffff163b1480610ae9575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b8152600401610a8593929190611bb8565b6020604051808303816000875af1158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190611c17565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b610b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1f90611c90565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508173ffffffffffffffffffffffffffffffffffffffff1603610bd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bca90611cfc565b60405180910390fd5b919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3f90611d68565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054610cc29061182e565b80601f0160208091040260200160405190810160405280929190818152602001828054610cee9061182e565b8015610d3b5780601f10610d1057610100808354040283529160200191610d3b565b820191906000526020600020905b815481529060010190602001808311610d1e57829003601f168201915b505050505081565b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610e349190611399565b60405180910390a35050565b610e4b85858561081d565b60008473ffffffffffffffffffffffffffffffffffffffff163b1480610f38575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663150b7a0233888787876040518663ffffffff1660e01b8152600401610ed4959493929190611dc4565b6020604051808303816000875af1158015610ef3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f179190611c17565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90611c90565b60405180910390fd5b5050505050565b6060600660008381526020019081526020016000208054610f9e9061182e565b80601f0160208091040260200160405190810160405280929190818152602001828054610fca9061182e565b80156110175780601f10610fec57610100808354040283529160200191611017565b820191906000526020600020905b815481529060010190602001808311610ffa57829003601f168201915b50505050509050919050565b60056020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b890611e5e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115a90611eca565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006112998261126e565b9050919050565b6112a98161128e565b81146112b457600080fd5b50565b6000813590506112c6816112a0565b92915050565b6000602082840312156112e2576112e1611264565b5b60006112f0848285016112b7565b91505092915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61132e816112f9565b811461133957600080fd5b50565b60008135905061134b81611325565b92915050565b60006020828403121561136757611366611264565b5b60006113758482850161133c565b91505092915050565b60008115159050919050565b6113938161137e565b82525050565b60006020820190506113ae600083018461138a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156113ee5780820151818401526020810190506113d3565b60008484015250505050565b6000601f19601f8301169050919050565b6000611416826113b4565b61142081856113bf565b93506114308185602086016113d0565b611439816113fa565b840191505092915050565b6000602082019050818103600083015261145e818461140b565b905092915050565b6000819050919050565b61147981611466565b811461148457600080fd5b50565b60008135905061149681611470565b92915050565b6000602082840312156114b2576114b1611264565b5b60006114c084828501611487565b91505092915050565b6114d28161128e565b82525050565b60006020820190506114ed60008301846114c9565b92915050565b6000806040838503121561150a57611509611264565b5b6000611518858286016112b7565b925050602061152985828601611487565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261155857611557611533565b5b8235905067ffffffffffffffff81111561157557611574611538565b5b6020830191508360018202830111156115915761159061153d565b5b9250929050565b6000806000604084860312156115b1576115b0611264565b5b600084013567ffffffffffffffff8111156115cf576115ce611269565b5b6115db86828701611542565b935093505060206115ee868287016112b7565b9150509250925092565b60008060006060848603121561161157611610611264565b5b600061161f868287016112b7565b9350506020611630868287016112b7565b925050604061164186828701611487565b9150509250925092565b61165481611466565b82525050565b600060208201905061166f600083018461164b565b92915050565b61167e8161137e565b811461168957600080fd5b50565b60008135905061169b81611675565b92915050565b600080604083850312156116b8576116b7611264565b5b60006116c6858286016112b7565b92505060206116d78582860161168c565b9150509250929050565b60008083601f8401126116f7576116f6611533565b5b8235905067ffffffffffffffff81111561171457611713611538565b5b6020830191508360018202830111156117305761172f61153d565b5b9250929050565b60008060008060006080868803121561175357611752611264565b5b6000611761888289016112b7565b9550506020611772888289016112b7565b945050604061178388828901611487565b935050606086013567ffffffffffffffff8111156117a4576117a3611269565b5b6117b0888289016116e1565b92509250509295509295909350565b600080604083850312156117d6576117d5611264565b5b60006117e4858286016112b7565b92505060206117f5858286016112b7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061184657607f821691505b602082108103611859576118586117ff565b5b50919050565b7f4e4f545f415554484f52495a4544000000000000000000000000000000000000600082015250565b6000611895600e836113bf565b91506118a08261185f565b602082019050919050565b600060208201905081810360008301526118c481611888565b9050919050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026119677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261192a565b611971868361192a565b95508019841693508086168417925050509392505050565b6000819050919050565b60006119ae6119a96119a484611466565b611989565b611466565b9050919050565b6000819050919050565b6119c883611993565b6119dc6119d4826119b5565b848454611937565b825550505050565b600090565b6119f16119e4565b6119fc8184846119bf565b505050565b5b81811015611a2057611a156000826119e9565b600181019050611a02565b5050565b601f821115611a6557611a3681611905565b611a3f8461191a565b81016020851015611a4e578190505b611a62611a5a8561191a565b830182611a01565b50505b505050565b600082821c905092915050565b6000611a8860001984600802611a6a565b1980831691505092915050565b6000611aa18383611a77565b9150826002028217905092915050565b611abb83836118cb565b67ffffffffffffffff811115611ad457611ad36118d6565b5b611ade825461182e565b611ae9828285611a24565b6000601f831160018114611b185760008415611b06578287013590505b611b108582611a95565b865550611b78565b601f198416611b2686611905565b60005b82811015611b4e57848901358255600182019150602085019450602081019050611b29565b86831015611b6b5784890135611b67601f891682611a77565b8355505b6001600288020188555050505b50505050505050565b600082825260208201905092915050565b50565b6000611ba2600083611b81565b9150611bad82611b92565b600082019050919050565b6000608082019050611bcd60008301866114c9565b611bda60208301856114c9565b611be7604083018461164b565b8181036060830152611bf881611b95565b9050949350505050565b600081519050611c1181611325565b92915050565b600060208284031215611c2d57611c2c611264565b5b6000611c3b84828501611c02565b91505092915050565b7f554e534146455f524543495049454e5400000000000000000000000000000000600082015250565b6000611c7a6010836113bf565b9150611c8582611c44565b602082019050919050565b60006020820190508181036000830152611ca981611c6d565b9050919050565b7f4e4f545f4d494e54454400000000000000000000000000000000000000000000600082015250565b6000611ce6600a836113bf565b9150611cf182611cb0565b602082019050919050565b60006020820190508181036000830152611d1581611cd9565b9050919050565b7f5a45524f5f414444524553530000000000000000000000000000000000000000600082015250565b6000611d52600c836113bf565b9150611d5d82611d1c565b602082019050919050565b60006020820190508181036000830152611d8181611d45565b9050919050565b82818337600083830152505050565b6000611da38385611b81565b9350611db0838584611d88565b611db9836113fa565b840190509392505050565b6000608082019050611dd960008301886114c9565b611de660208301876114c9565b611df3604083018661164b565b8181036060830152611e06818486611d97565b90509695505050505050565b7f494e56414c49445f524543495049454e54000000000000000000000000000000600082015250565b6000611e486011836113bf565b9150611e5382611e12565b602082019050919050565b60006020820190508181036000830152611e7781611e3b565b9050919050565b7f414c52454144595f4d494e544544000000000000000000000000000000000000600082015250565b6000611eb4600e836113bf565b9150611ebf82611e7e565b602082019050919050565b60006020820190508181036000830152611ee381611ea7565b905091905056fea2646970667358221220a43fb863f495ccd32f76037710346485f3560244e041e66b6dcae6b32ccb212064736f6c63430008130033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000c30d6b868b095caa2bf5b5dd4caeb4bcdef896050000000000000000000000008258ae550abc79611972cb1aacd061723eda40200000000000000000000000000000000000000000000000000000000000000011426173652042617463686573203230323500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024242000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063a22cb46511610066578063a22cb465146102ab578063b88d4fde146102c7578063c87b56dd146102e3578063e985e9c51461031357610100565b80636352211e1461020f57806370a082311461023f5780638da5cb5b1461026f57806395d89b411461028d57610100565b8063095ea7b3116100d3578063095ea7b31461019f5780631c351a9d146101bb57806323b872dd146101d757806342842e0e146101f357610100565b80630130a33b1461010557806301ffc9a71461012157806306fdde0314610151578063081812fc1461016f575b600080fd5b61011f600480360381019061011a91906112cc565b610343565b005b61013b60048036038101906101369190611351565b61040e565b6040516101489190611399565b60405180910390f35b6101596104a0565b6040516101669190611444565b60405180910390f35b6101896004803603810190610184919061149c565b61052e565b60405161019691906114d8565b60405180910390f35b6101b960048036038101906101b491906114f3565b610561565b005b6101d560048036038101906101d09190611598565b61074a565b005b6101f160048036038101906101ec91906115f8565b61081d565b005b61020d600480360381019061020891906115f8565b6109f5565b005b6102296004803603810190610224919061149c565b610b2d565b60405161023691906114d8565b60405180910390f35b610259600480360381019061025491906112cc565b610bd8565b604051610266919061165a565b60405180910390f35b610277610c8f565b60405161028491906114d8565b60405180910390f35b610295610cb5565b6040516102a29190611444565b60405180910390f35b6102c560048036038101906102c091906116a1565b610d43565b005b6102e160048036038101906102dc9190611737565b610e40565b005b6102fd60048036038101906102f8919061149c565b610f7e565b60405161030a9190611444565b60405180910390f35b61032d600480360381019061032891906117bf565b611023565b60405161033a9190611399565b60405180910390f35b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103ca576040517f48f5c3ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061046957506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104995750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600080546104ad9061182e565b80601f01602080910402602001604051908101604052809291908181526020018280546104d99061182e565b80156105265780601f106104fb57610100808354040283529160200191610526565b820191906000526020600020905b81548152906001019060200180831161050957829003601f168201915b505050505081565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106595750600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068f906118ab565b60405180910390fd5b826004600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107d1576040517ff68e15d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600954905083836006600084815260200190815260200160002091826107fa929190611ab1565b506108058282611052565b60096000815480929190600101919050555050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108a4576040517f8cd22d1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b610a0083838361081d565b60008273ffffffffffffffffffffffffffffffffffffffff163b1480610ae9575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b8152600401610a8593929190611bb8565b6020604051808303816000875af1158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190611c17565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b610b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1f90611c90565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508173ffffffffffffffffffffffffffffffffffffffff1603610bd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bca90611cfc565b60405180910390fd5b919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3f90611d68565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054610cc29061182e565b80601f0160208091040260200160405190810160405280929190818152602001828054610cee9061182e565b8015610d3b5780601f10610d1057610100808354040283529160200191610d3b565b820191906000526020600020905b815481529060010190602001808311610d1e57829003601f168201915b505050505081565b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610e349190611399565b60405180910390a35050565b610e4b85858561081d565b60008473ffffffffffffffffffffffffffffffffffffffff163b1480610f38575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663150b7a0233888787876040518663ffffffff1660e01b8152600401610ed4959493929190611dc4565b6020604051808303816000875af1158015610ef3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f179190611c17565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90611c90565b60405180910390fd5b5050505050565b6060600660008381526020019081526020016000208054610f9e9061182e565b80601f0160208091040260200160405190810160405280929190818152602001828054610fca9061182e565b80156110175780601f10610fec57610100808354040283529160200191611017565b820191906000526020600020905b815481529060010190602001808311610ffa57829003601f168201915b50505050509050919050565b60056020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b890611e5e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115a90611eca565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006112998261126e565b9050919050565b6112a98161128e565b81146112b457600080fd5b50565b6000813590506112c6816112a0565b92915050565b6000602082840312156112e2576112e1611264565b5b60006112f0848285016112b7565b91505092915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61132e816112f9565b811461133957600080fd5b50565b60008135905061134b81611325565b92915050565b60006020828403121561136757611366611264565b5b60006113758482850161133c565b91505092915050565b60008115159050919050565b6113938161137e565b82525050565b60006020820190506113ae600083018461138a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156113ee5780820151818401526020810190506113d3565b60008484015250505050565b6000601f19601f8301169050919050565b6000611416826113b4565b61142081856113bf565b93506114308185602086016113d0565b611439816113fa565b840191505092915050565b6000602082019050818103600083015261145e818461140b565b905092915050565b6000819050919050565b61147981611466565b811461148457600080fd5b50565b60008135905061149681611470565b92915050565b6000602082840312156114b2576114b1611264565b5b60006114c084828501611487565b91505092915050565b6114d28161128e565b82525050565b60006020820190506114ed60008301846114c9565b92915050565b6000806040838503121561150a57611509611264565b5b6000611518858286016112b7565b925050602061152985828601611487565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261155857611557611533565b5b8235905067ffffffffffffffff81111561157557611574611538565b5b6020830191508360018202830111156115915761159061153d565b5b9250929050565b6000806000604084860312156115b1576115b0611264565b5b600084013567ffffffffffffffff8111156115cf576115ce611269565b5b6115db86828701611542565b935093505060206115ee868287016112b7565b9150509250925092565b60008060006060848603121561161157611610611264565b5b600061161f868287016112b7565b9350506020611630868287016112b7565b925050604061164186828701611487565b9150509250925092565b61165481611466565b82525050565b600060208201905061166f600083018461164b565b92915050565b61167e8161137e565b811461168957600080fd5b50565b60008135905061169b81611675565b92915050565b600080604083850312156116b8576116b7611264565b5b60006116c6858286016112b7565b92505060206116d78582860161168c565b9150509250929050565b60008083601f8401126116f7576116f6611533565b5b8235905067ffffffffffffffff81111561171457611713611538565b5b6020830191508360018202830111156117305761172f61153d565b5b9250929050565b60008060008060006080868803121561175357611752611264565b5b6000611761888289016112b7565b9550506020611772888289016112b7565b945050604061178388828901611487565b935050606086013567ffffffffffffffff8111156117a4576117a3611269565b5b6117b0888289016116e1565b92509250509295509295909350565b600080604083850312156117d6576117d5611264565b5b60006117e4858286016112b7565b92505060206117f5858286016112b7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061184657607f821691505b602082108103611859576118586117ff565b5b50919050565b7f4e4f545f415554484f52495a4544000000000000000000000000000000000000600082015250565b6000611895600e836113bf565b91506118a08261185f565b602082019050919050565b600060208201905081810360008301526118c481611888565b9050919050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026119677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261192a565b611971868361192a565b95508019841693508086168417925050509392505050565b6000819050919050565b60006119ae6119a96119a484611466565b611989565b611466565b9050919050565b6000819050919050565b6119c883611993565b6119dc6119d4826119b5565b848454611937565b825550505050565b600090565b6119f16119e4565b6119fc8184846119bf565b505050565b5b81811015611a2057611a156000826119e9565b600181019050611a02565b5050565b601f821115611a6557611a3681611905565b611a3f8461191a565b81016020851015611a4e578190505b611a62611a5a8561191a565b830182611a01565b50505b505050565b600082821c905092915050565b6000611a8860001984600802611a6a565b1980831691505092915050565b6000611aa18383611a77565b9150826002028217905092915050565b611abb83836118cb565b67ffffffffffffffff811115611ad457611ad36118d6565b5b611ade825461182e565b611ae9828285611a24565b6000601f831160018114611b185760008415611b06578287013590505b611b108582611a95565b865550611b78565b601f198416611b2686611905565b60005b82811015611b4e57848901358255600182019150602085019450602081019050611b29565b86831015611b6b5784890135611b67601f891682611a77565b8355505b6001600288020188555050505b50505050505050565b600082825260208201905092915050565b50565b6000611ba2600083611b81565b9150611bad82611b92565b600082019050919050565b6000608082019050611bcd60008301866114c9565b611bda60208301856114c9565b611be7604083018461164b565b8181036060830152611bf881611b95565b9050949350505050565b600081519050611c1181611325565b92915050565b600060208284031215611c2d57611c2c611264565b5b6000611c3b84828501611c02565b91505092915050565b7f554e534146455f524543495049454e5400000000000000000000000000000000600082015250565b6000611c7a6010836113bf565b9150611c8582611c44565b602082019050919050565b60006020820190508181036000830152611ca981611c6d565b9050919050565b7f4e4f545f4d494e54454400000000000000000000000000000000000000000000600082015250565b6000611ce6600a836113bf565b9150611cf182611cb0565b602082019050919050565b60006020820190508181036000830152611d1581611cd9565b9050919050565b7f5a45524f5f414444524553530000000000000000000000000000000000000000600082015250565b6000611d52600c836113bf565b9150611d5d82611d1c565b602082019050919050565b60006020820190508181036000830152611d8181611d45565b9050919050565b82818337600083830152505050565b6000611da38385611b81565b9350611db0838584611d88565b611db9836113fa565b840190509392505050565b6000608082019050611dd960008301886114c9565b611de660208301876114c9565b611df3604083018661164b565b8181036060830152611e06818486611d97565b90509695505050505050565b7f494e56414c49445f524543495049454e54000000000000000000000000000000600082015250565b6000611e486011836113bf565b9150611e5382611e12565b602082019050919050565b60006020820190508181036000830152611e7781611e3b565b9050919050565b7f414c52454144595f4d494e544544000000000000000000000000000000000000600082015250565b6000611eb4600e836113bf565b9150611ebf82611e7e565b602082019050919050565b60006020820190508181036000830152611ee381611ea7565b905091905056fea2646970667358221220a43fb863f495ccd32f76037710346485f3560244e041e66b6dcae6b32ccb212064736f6c63430008130033

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.