ETH Price: $2,068.22 (-15.48%)

Contract

0x92A8eE8aBf1E24791C68Af6fC3ae9eFfbd865008
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Approval For...218505352025-02-15 8:06:4716 days ago1739606807IN
0x92A8eE8a...fbd865008
0 ETH0.000067771.47201594
Set Approval For...217816212025-02-05 16:55:4726 days ago1738774547IN
0x92A8eE8a...fbd865008
0 ETH0.000147313.19977246
Set Approval For...215256712024-12-31 23:15:4762 days ago1735686947IN
0x92A8eE8a...fbd865008
0 ETH0.000267845.81770428
Set Approval For...197360222024-04-26 0:40:35312 days ago1714092035IN
0x92A8eE8a...fbd865008
0 ETH0.000238085.1632718
Set Approval For...187374112023-12-07 22:34:11452 days ago1701988451IN
0x92A8eE8a...fbd865008
0 ETH0.0013054253.91653068
Set Approval For...167025972023-02-25 3:20:35737 days ago1677295235IN
0x92A8eE8a...fbd865008
0 ETH0.0012477127.100566
Set Approval For...165874142023-02-08 23:47:35754 days ago1675900055IN
0x92A8eE8a...fbd865008
0 ETH0.0006253725.91904421
Set Approval For...165100562023-01-29 4:20:59764 days ago1674966059IN
0x92A8eE8a...fbd865008
0 ETH0.0006564114.25741605
Set Approval For...165050782023-01-28 11:40:23765 days ago1674906023IN
0x92A8eE8a...fbd865008
0 ETH0.0006540314.20575379
Set Approval For...164884742023-01-26 4:02:35767 days ago1674705755IN
0x92A8eE8a...fbd865008
0 ETH0.0004462617.03319384
Set Approval For...164884522023-01-26 3:58:11767 days ago1674705491IN
0x92A8eE8a...fbd865008
0 ETH0.0003395814.03247987
Set Approval For...164564442023-01-21 16:42:47772 days ago1674319367IN
0x92A8eE8a...fbd865008
0 ETH0.0004864920.10321218
Set Approval For...163094372023-01-01 4:10:23792 days ago1672546223IN
0x92A8eE8a...fbd865008
0 ETH0.0003804815.71489427
Set Approval For...163093102023-01-01 3:44:59792 days ago1672544699IN
0x92A8eE8a...fbd865008
0 ETH0.000728615.82557681
Set Approval For...163092702023-01-01 3:36:59792 days ago1672544219IN
0x92A8eE8a...fbd865008
0 ETH0.0003561814.71127686
Set Approval For...162798962022-12-28 1:14:35797 days ago1672190075IN
0x92A8eE8a...fbd865008
0 ETH0.0007173215.5561517
Set Approval For...161334392022-12-07 14:31:47817 days ago1670423507IN
0x92A8eE8a...fbd865008
0 ETH0.0004101516.94020668
Set Approval For...159821612022-11-16 11:02:23838 days ago1668596543IN
0x92A8eE8a...fbd865008
0 ETH0.0004216817.41619194
Set Approval For...158915802022-11-03 19:29:11851 days ago1667503751IN
0x92A8eE8a...fbd865008
0 ETH0.0008399918.24487653
Set Approval For...158576142022-10-30 1:33:11856 days ago1667093591IN
0x92A8eE8a...fbd865008
0 ETH0.000233059.63030715
Set Approval For...158519882022-10-29 6:40:23856 days ago1667025623IN
0x92A8eE8a...fbd865008
0 ETH0.000368998
Set Approval For...158454542022-10-28 8:46:47857 days ago1666946807IN
0x92A8eE8a...fbd865008
0 ETH0.0002423810.01114047
Set Approval For...156528522022-10-01 10:55:59884 days ago1664621759IN
0x92A8eE8a...fbd865008
0 ETH0.000231365.02530027
Set Approval For...156255882022-09-27 15:29:11888 days ago1664292551IN
0x92A8eE8a...fbd865008
0 ETH0.0012944628.11603641
Set Approval For...155044752022-09-09 19:27:07906 days ago1662751627IN
0x92A8eE8a...fbd865008
0 ETH0.0006972428.79768735
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TokenCharacter

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion
File 1 of 7 : TokenCharacter.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

/*


▄▄▄█████▓ ██░ ██ ▓█████     ██░ ██ ▓█████  ██▓  ██████ ▄▄▄█████▓
▓  ██▒ ▓▒▓██░ ██▒▓█   ▀    ▓██░ ██▒▓█   ▀ ▓██▒▒██    ▒ ▓  ██▒ ▓▒
▒ ▓██░ ▒░▒██▀▀██░▒███      ▒██▀▀██░▒███   ▒██▒░ ▓██▄   ▒ ▓██░ ▒░
░ ▓██▓ ░ ░▓█ ░██ ▒▓█  ▄    ░▓█ ░██ ▒▓█  ▄ ░██░  ▒   ██▒░ ▓██▓ ░ 
  ▒██▒ ░ ░▓█▒░██▓░▒████▒   ░▓█▒░██▓░▒████▒░██░▒██████▒▒  ▒██▒ ░ 
  ▒ ░░    ▒ ░░▒░▒░░ ▒░ ░    ▒ ░░▒░▒░░ ▒░ ░░▓  ▒ ▒▓▒ ▒ ░  ▒ ░░   
    ░     ▒ ░▒░ ░ ░ ░  ░    ▒ ░▒░ ░ ░ ░  ░ ▒ ░░ ░▒  ░ ░    ░    
  ░       ░  ░░ ░   ░       ░  ░░ ░   ░    ▒ ░░  ░  ░    ░      
          ░  ░  ░   ░  ░    ░  ░  ░   ░  ░ ░        ░           
                                                                

            ;`.                       ,'/
            |`.`-.      _____      ,-;,'|
            |  `-.\__,-'     `-.__//'   |
            |     `|               \ ,  |
            `.  ```                 ,  .'
              \_`      \     /      `_/
                \    ^  \   /   ^   /
                 |   X   ____   X  |
                 |     ,'    `.    |
                 |    (  O' O  )   |
                 `.    \__,.__/   ,'
                   `-._  `--'  _,'
                       `------'

created with curiosity by .pwa group 2021.

    gm. wgmi.

            if you're reading this, you are early.

*/

import "./ERC721Custom.sol";        //Custom ERC721 implementation
import "./Base/Pausable.sol";       //Pause critical functions

contract TokenCharacter is Pausable, ERC721 {

    uint16 public constant MAX_CHARACTERS = 15000; //The hard limit. We may create less than this.

    constructor() ERC721(
        "The Heist Characters",
        "HEIST",
        MAX_CHARACTERS)
    {
        //gm
    }

    function Mint(uint8 amount, address to) external onlyControllers whenNotPaused {
        for (uint256 i = 0; i < amount; i++ ){
            _mint(to, _totalMinted + 1); //start at tokenID = 1
        }
    }

}

File 2 of 7 : ERC721Custom.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

//Custom ERC721 implemention for lower minting.
//We stand on the shoulders of giants.
// -8C30

import "./Base/Controllable.sol";
import "../Interfaces/I_MetadataHandler.sol";

contract ERC721 is Controllable {

    //ERC721 events
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenID);
    event Approval(address indexed owner, address indexed spender, uint256 indexed tokenID);
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
    
    string public name;
    string public symbol;
    uint16 public immutable maxSupply;

    //we only have 15k max tokens, so we're using uint16 for slight gas saving on gameplay functions
    //but keeping uint256 interfaces for compatibility

    uint16 public _totalMinted; //if contract allows burning, then # of minted can be > supply
    uint16 public _totalSupply16;
    
    mapping(uint16 => address) public _ownerOf16;
    mapping(uint16 => address) public getApproved;
    mapping(address => mapping(address => bool)) public isApprovedForAll;

    I_MetadataHandler metaDataHandler;

    constructor(
        string memory _name,
        string memory _symbol,
        uint16 _maxSupply
    ) {
        name = _name;
        symbol = _symbol;
        maxSupply = _maxSupply;
    }
    
    //Explicit version returning uint256 to fit with the EIP 721 specification
    function totalSupply() view external returns (uint256) {
        return uint256(_totalSupply16);
    }

    //Explicit version returning uint256 to fit with the EIP 721 specification
    function ownerOf(uint256 tokenID) view external returns (address) {
        return _ownerOf16[uint16(tokenID)];
    }
    
    function supportsInterface(bytes4 interfaceId) external pure returns (bool supported) {
        supported = interfaceId == 0x80ac58cd || interfaceId == 0x5b5e139f; // || interfaceId == 0x780e9d63;
    }
    
    function approve(address spender, uint256 tokenID) external {
        uint16 _tokenID = uint16(tokenID);
        address owner_ = _ownerOf16[_tokenID];
        require(msg.sender == owner_ || isApprovedForAll[owner_][msg.sender], "ERC721: Not approved");
        
        getApproved[_tokenID] = spender;
        emit Approval(owner_, spender, tokenID); 
    }
    
    function setApprovalForAll(address operator, bool approved) external {
        isApprovedForAll[msg.sender][operator] = approved;
        emit ApprovalForAll(msg.sender, operator, approved);
    }

    //called by the user who owns it
    function transfer_16(address to, uint16 tokenID) external {
        require(msg.sender == _ownerOf16[tokenID], "ERC721: Not owner");
        _transfer(msg.sender, to, tokenID);
    }

    //called by the user who owns it
    function transfer(address to, uint256 tokenID) external {
        uint16 _tokenID = uint16(tokenID);
        require(msg.sender == _ownerOf16[_tokenID], "ERC721: Not owner");
        _transfer(msg.sender, to, _tokenID);
    }

    function transferFrom(address owner_, address to, uint256 tokenID) public {        
        uint16 _tokenID = uint16(tokenID);
        require(
            msg.sender == owner_ 
            || controllers[msg.sender]
            || msg.sender == getApproved[_tokenID]
            || isApprovedForAll[owner_][msg.sender], 
            "ERC721: Not approved"
        );
        
        _transfer(owner_, to, _tokenID);
    }
    
    function safeTransferFrom(address, address to, uint256 tokenID) external {
        safeTransferFrom(address(0), to, tokenID, "");
    }
    
    function safeTransferFrom(address, address to, uint256 tokenID, bytes memory data) public {
        transferFrom(address(0), to, tokenID); 
        
        if (to.code.length != 0) {
            (, bytes memory returned) = to.staticcall(abi.encodeWithSelector(0x150b7a02,
                msg.sender, address(0), tokenID, data));
                
            bytes4 selector = abi.decode(returned, (bytes4));
            
            require(selector == 0x150b7a02, "ERC721: Address cannot receive");
        }
    }

    //metadata
    function setMetadataHandler(address newHandlerAddress) external onlyOwner {
        metaDataHandler = I_MetadataHandler(newHandlerAddress);
    }

    function tokenURI(uint256 tokenID) external view returns (string memory) {
        uint16 _tokenID = uint16(tokenID);
        require(_ownerOf16[_tokenID] != address(0), "ERC721: Nonexistent token");
        require(address(metaDataHandler) != address(0),"ERC721: No metadata handler set");

        return metaDataHandler.tokenURI(tokenID); 
    }
    
    //internal
    function _transfer(address from, address to, uint16 tokenID) internal {
        require(_ownerOf16[tokenID] == from, "ERC721: Not owner");
        
        delete getApproved[tokenID];
        
        _ownerOf16[tokenID] = to;
        emit Transfer(from, to, tokenID); 

    }

    //specific tokenID allows ressurection after burning in the future if desired
    function _mint(address to, uint16 tokenID) internal { 
        require(_ownerOf16[tokenID] == address(0), "ERC721: Token already minted");
        require(_totalSupply16 < maxSupply, "ERC721: Reached Max Supply");    

        _ownerOf16[tokenID] = to;
        _totalMinted++;
        _totalSupply16++;

        emit Transfer(address(0), to, tokenID); 
    }
    
    function _burn(uint16 tokenID) internal {
        address owner_ = _ownerOf16[tokenID];
        
        require(owner_ != address(0), "ERC721: Nonexistent token");
        
        _totalSupply16--;
        
        delete _ownerOf16[tokenID];
                
        emit Transfer(owner_, address(0), tokenID); 
    }

    //We do not require balance for any logic contracts, so this view is only used by UI 
    function balanceOf(address owner_) public view returns (uint256) {
        require(owner_ != address(0), "ERC721: Non-existant address");

        uint count = 0;
        for(uint16 i = 1; i < _totalSupply16 + 1; i++) {
            if(owner_ == _ownerOf16[i])
            count++;
        }
        return count;
    }

    //ERC-721 Enumerable
    function tokenOfOwnerByIndex(address owner_, uint256 index) public view returns (uint256 tokenId) {
        require(index < balanceOf(owner_), "ERC721: Index greater than owner balance");

        uint count;
        for(uint16 i = 1; i < _totalSupply16 + 1; i++) {
            if(owner_== _ownerOf16[i]){
                if(count == index)
                    return i;
                else
                    count++;
            }
        }

        require(false, "ERC721Enumerable: owner index out of bounds");
    }

    /*
    function tokenByIndex(uint256 _index) external view returns (uint256){
        require(_index > 0, "ERC721Enumerable: Invalid index");
        require(_index < _totalSupply16, "ERC721Enumerable: Invalid index");
        return _index;
    }
    */
}

File 3 of 7 : Pausable.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

import "@openzeppelin/contracts/access/Ownable.sol";


//allows pausing of critical functions in the contract
contract Pausable is Ownable {

    bool public paused = false; //start unpaused

    event Paused();
    event Unpaused();

    modifier whenNotPaused() {
        require(!paused,"Contract is paused");
        _;
    }

    modifier whenPaused() {
        require(paused,"Contract is not paused");
        _;
    }

    function Pause() onlyOwner whenNotPaused external {
        paused = true;
        emit Paused();
    }

    function Unpause() onlyOwner whenPaused external {
        paused = false;
        emit Unpaused();
    }
}

File 4 of 7 : Controllable.sol
// SPDX-License-Identifier: CC0
pragma solidity ^0.8.7;

import "@openzeppelin/contracts/access/Ownable.sol";

//Simple way of allowing authorized controllers to perform privileged functions
contract Controllable is Ownable {

    mapping(address => bool) controllers; //authorized addresses

    modifier onlyControllers() {
        require(controllers[msg.sender], "Controllable: Authorized controllers only.");
        _;
    }

    function addController(address newController) external onlyOwner {
        controllers[newController] = true;
    }

    function addControllers(address[] calldata newControllers) external onlyOwner {
        for (uint i=0; i < newControllers.length; i++) {
            controllers[newControllers[i]] = true;
        }
    }

    function removeController(address toDelete) external onlyOwner {
        controllers[toDelete] = false; //same as del
    }

}

File 5 of 7 : I_MetadataHandler.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;

interface I_MetadataHandler {

    function tokenURI(uint256 tokenID) external view returns (string memory); //our implementation may even be pure

}

File 6 of 7 : Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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

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

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

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

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

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

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

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 7 of 7 : Context.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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

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

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

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenID","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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"Paused","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":"tokenID","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpaused","type":"event"},{"inputs":[],"name":"MAX_CHARACTERS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"amount","type":"uint8"},{"internalType":"address","name":"to","type":"address"}],"name":"Mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"_ownerOf16","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalMinted","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply16","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newController","type":"address"}],"name":"addController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"newControllers","type":"address[]"}],"name":"addControllers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokenID","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":"uint16","name":"","type":"uint16"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toDelete","type":"address"}],"name":"removeController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenID","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":"address","name":"newHandlerAddress","type":"address"}],"name":"setMetadataHandler","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"supported","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint16","name":"tokenID","type":"uint16"}],"name":"transfer_16","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a06040526000805460ff60a01b191690553480156200001e57600080fd5b506040518060400160405280601481526020017f54686520486569737420436861726163746572730000000000000000000000008152506040518060400160405280600581526020016412115254d560da1b815250613a98620000906200008a620000d560201b60201c565b620000d9565b8251620000a590600290602086019062000129565b508151620000bb90600390602085019062000129565b5060f01b6001600160f01b031916608052506200020c9050565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8280546200013790620001cf565b90600052602060002090601f0160209004810192826200015b5760008555620001a6565b82601f106200017657805160ff1916838001178555620001a6565b82800160010185558215620001a6579182015b82811115620001a657825182559160200191906001019062000189565b50620001b4929150620001b8565b5090565b5b80821115620001b45760008155600101620001b9565b600181811c90821680620001e457607f821691505b602082108114156200020657634e487b7160e01b600052602260045260246000fd5b50919050565b60805160f01c611d95620002326000396000818161045801526115600152611d956000f3fe608060405234801561001057600080fd5b506004361061020b5760003560e01c806380b5dcb31161012a578063b88d4fde116100bd578063d639f7ba1161008c578063f2fde38b11610071578063f2fde38b146104d1578063f6a74ed7146104e4578063fe762024146104f757600080fd5b8063d639f7ba1461047a578063e985e9c5146104a357600080fd5b8063b88d4fde1461041a578063c87b56dd1461042d578063d2a1ba9114610440578063d5abeb011461045357600080fd5b806395d89b41116100f957806395d89b41146103d9578063a22cb465146103e1578063a7fc7a07146103f4578063a9059cbb1461040757600080fd5b806380b5dcb3146103825780638660e48e146103965780638da5cb5b1461039f57806393b871f2146103b057600080fd5b80635c975abb116101a2578063715018a611610171578063715018a61461033e578063736bf5911461034657806376eb4044146103675780637805862f1461037a57600080fd5b80635c975abb146102ca5780636352211e146102de5780636985a0221461032357806370a082311461032b57600080fd5b806318160ddd116101de57806318160ddd1461027557806323b872dd146102915780632f745c59146102a457806342842e0e146102b757600080fd5b806301ffc9a7146102105780630276e5a41461023857806306fdde031461024d578063095ea7b314610262575b600080fd5b61022361021e366004611a44565b61050a565b60405190151581526020015b60405180910390f35b61024b610246366004611b29565b610573565b005b610255610699565b60405161022f9190611bd1565b61024b6102703660046119a5565b610727565b60045462010000900461ffff165b60405190815260200161022f565b61024b61029f366004611858565b610825565b6102836102b23660046119a5565b6108fd565b61024b6102c5366004611858565b610a73565b60005461022390600160a01b900460ff1681565b61030b6102ec366004611b10565b61ffff166000908152600560205260409020546001600160a01b031690565b6040516001600160a01b03909116815260200161022f565b61024b610a8f565b61028361033936600461180a565b610b7f565b61024b610c51565b6004546103549061ffff1681565b60405161ffff909116815260200161022f565b61024b61037536600461197b565b610cb7565b61024b610d25565b6004546103549062010000900461ffff1681565b610354613a9881565b6000546001600160a01b031661030b565b61030b6103be366004611af5565b6006602052600090815260409020546001600160a01b031681565b610255610e0e565b61024b6103ef36600461193f565b610e1b565b61024b61040236600461180a565b610e87565b61024b6104153660046119a5565b610f08565b61024b610428366004611894565b610f74565b61025561043b366004611b10565b6110e4565b61024b61044e3660046119cf565b61124a565b6103547f000000000000000000000000000000000000000000000000000000000000000081565b61030b610488366004611af5565b6005602052600090815260409020546001600160a01b031681565b6102236104b1366004611825565b600760209081526000928352604080842090915290825290205460ff1681565b61024b6104df36600461180a565b611315565b61024b6104f236600461180a565b6113f7565b61024b61050536600461180a565b611472565b60007f80ac58cd000000000000000000000000000000000000000000000000000000006001600160e01b03198316148061056d57507f5b5e139f000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b3360009081526001602052604090205460ff166105fd5760405162461bcd60e51b815260206004820152602a60248201527f436f6e74726f6c6c61626c653a20417574686f72697a656420636f6e74726f6c60448201527f6c657273206f6e6c792e0000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b600054600160a01b900460ff16156106575760405162461bcd60e51b815260206004820152601260248201527f436f6e747261637420697320706175736564000000000000000000000000000060448201526064016105f4565b60005b8260ff168110156106945760045461068290839061067d9061ffff166001611c3d565b6114ee565b8061068c81611cec565b91505061065a565b505050565b600280546106a690611c8f565b80601f01602080910402602001604051908101604052809291908181526020018280546106d290611c8f565b801561071f5780601f106106f45761010080835404028352916020019161071f565b820191906000526020600020905b81548152906001019060200180831161070257829003601f168201915b505050505081565b61ffff811660009081526005602052604090205481906001600160a01b03163381148061077757506001600160a01b038116600090815260076020908152604080832033845290915290205460ff165b6107c35760405162461bcd60e51b815260206004820152601460248201527f4552433732313a204e6f7420617070726f76656400000000000000000000000060448201526064016105f4565b61ffff821660009081526006602052604080822080546001600160a01b0319166001600160a01b0388811691821790925591518693918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a450505050565b80336001600160a01b038516148061084c57503360009081526001602052604090205460ff165b80610872575061ffff81166000908152600660205260409020546001600160a01b031633145b806108a057506001600160a01b038416600090815260076020908152604080832033845290915290205460ff165b6108ec5760405162461bcd60e51b815260206004820152601460248201527f4552433732313a204e6f7420617070726f76656400000000000000000000000060448201526064016105f4565b6108f78484836116b5565b50505050565b600061090883610b7f565b821061097c5760405162461bcd60e51b815260206004820152602860248201527f4552433732313a20496e6465782067726561746572207468616e206f776e657260448201527f2062616c616e636500000000000000000000000000000000000000000000000060648201526084016105f4565b600060015b6004546109999062010000900461ffff166001611c3d565b61ffff168161ffff161015610a045761ffff81166000908152600560205260409020546001600160a01b03868116911614156109f257838214156109e45761ffff16915061056d9050565b816109ee81611cec565b9250505b806109fc81611cca565b915050610981565b5060405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e647300000000000000000000000000000000000000000060648201526084016105f4565b6106946000838360405180602001604052806000815250610f74565b6000546001600160a01b03163314610ae95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f4565b600054600160a01b900460ff1615610b435760405162461bcd60e51b815260206004820152601260248201527f436f6e747261637420697320706175736564000000000000000000000000000060448201526064016105f4565b6000805460ff60a01b1916600160a01b1781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b60006001600160a01b038216610bd75760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a204e6f6e2d6578697374616e7420616464726573730000000060448201526064016105f4565b600060015b600454610bf49062010000900461ffff166001611c3d565b61ffff168161ffff161015610c4a5761ffff81166000908152600560205260409020546001600160a01b0385811691161415610c385781610c3481611cec565b9250505b80610c4281611cca565b915050610bdc565b5092915050565b6000546001600160a01b03163314610cab5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f4565b610cb5600061178c565b565b61ffff81166000908152600560205260409020546001600160a01b03163314610d165760405162461bcd60e51b815260206004820152601160248201527022a9219b99189d102737ba1037bbb732b960791b60448201526064016105f4565b610d213383836116b5565b5050565b6000546001600160a01b03163314610d7f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f4565b600054600160a01b900460ff16610dd85760405162461bcd60e51b815260206004820152601660248201527f436f6e7472616374206973206e6f74207061757365640000000000000000000060448201526064016105f4565b6000805460ff60a01b191681556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d169339190a1565b600380546106a690611c8f565b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6000546001600160a01b03163314610ee15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f4565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b61ffff811660009081526005602052604090205481906001600160a01b03163314610f695760405162461bcd60e51b815260206004820152601160248201527022a9219b99189d102737ba1037bbb732b960791b60448201526064016105f4565b6106943384836116b5565b610f8060008484610825565b6001600160a01b0383163b156108f7576000836001600160a01b031663150b7a023360008686604051602401610fb99493929190611b95565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110079190611b79565b600060405180830381855afa9150503d8060008114611042576040519150601f19603f3d011682016040523d82523d6000602084013e611047565b606091505b509150506000818060200190518101906110619190611a61565b90507f150b7a02000000000000000000000000000000000000000000000000000000006001600160e01b03198216146110dc5760405162461bcd60e51b815260206004820152601e60248201527f4552433732313a20416464726573732063616e6e6f742072656365697665000060448201526064016105f4565b505050505050565b61ffff811660009081526005602052604090205460609082906001600160a01b03166111525760405162461bcd60e51b815260206004820152601960248201527f4552433732313a204e6f6e6578697374656e7420746f6b656e0000000000000060448201526064016105f4565b6008546001600160a01b03166111aa5760405162461bcd60e51b815260206004820152601f60248201527f4552433732313a204e6f206d657461646174612068616e646c6572207365740060448201526064016105f4565b6008546040517fc87b56dd000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b039091169063c87b56dd9060240160006040518083038186803b15801561120757600080fd5b505afa15801561121b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112439190810190611a7e565b9392505050565b6000546001600160a01b031633146112a45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f4565b60005b818110156106945760018060008585858181106112c6576112c6611d1d565b90506020020160208101906112db919061180a565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061130d81611cec565b9150506112a7565b6000546001600160a01b0316331461136f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f4565b6001600160a01b0381166113eb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105f4565b6113f48161178c565b50565b6000546001600160a01b031633146114515760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f4565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146114cc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f4565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b61ffff81166000908152600560205260409020546001600160a01b0316156115585760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20546f6b656e20616c7265616479206d696e7465640000000060448201526064016105f4565b60045461ffff7f000000000000000000000000000000000000000000000000000000000000000081166201000090920416106115d65760405162461bcd60e51b815260206004820152601a60248201527f4552433732313a2052656163686564204d617820537570706c7900000000000060448201526064016105f4565b61ffff818116600090815260056020526040812080546001600160a01b0319166001600160a01b03861617905560048054909216919061161583611cca565b91906101000a81548161ffff021916908361ffff160217905550506004600281819054906101000a900461ffff168092919061165090611cca565b91906101000a81548161ffff021916908361ffff160217905550508061ffff16826001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61ffff81166000908152600560205260409020546001600160a01b038481169116146117175760405162461bcd60e51b815260206004820152601160248201527022a9219b99189d102737ba1037bbb732b960791b60448201526064016105f4565b61ffff8116600081815260066020908152604080832080546001600160a01b0319908116909155600590925280832080546001600160a01b0388811691909416811790915590519092918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146117f357600080fd5b919050565b803561ffff811681146117f357600080fd5b60006020828403121561181c57600080fd5b611243826117dc565b6000806040838503121561183857600080fd5b611841836117dc565b915061184f602084016117dc565b90509250929050565b60008060006060848603121561186d57600080fd5b611876846117dc565b9250611884602085016117dc565b9150604084013590509250925092565b600080600080608085870312156118aa57600080fd5b6118b3856117dc565b93506118c1602086016117dc565b925060408501359150606085013567ffffffffffffffff8111156118e457600080fd5b8501601f810187136118f557600080fd5b803561190861190382611c15565b611be4565b81815288602083850101111561191d57600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b6000806040838503121561195257600080fd5b61195b836117dc565b91506020830135801515811461197057600080fd5b809150509250929050565b6000806040838503121561198e57600080fd5b611997836117dc565b915061184f602084016117f8565b600080604083850312156119b857600080fd5b6119c1836117dc565b946020939093013593505050565b600080602083850312156119e257600080fd5b823567ffffffffffffffff808211156119fa57600080fd5b818501915085601f830112611a0e57600080fd5b813581811115611a1d57600080fd5b8660208260051b8501011115611a3257600080fd5b60209290920196919550909350505050565b600060208284031215611a5657600080fd5b813561124381611d49565b600060208284031215611a7357600080fd5b815161124381611d49565b600060208284031215611a9057600080fd5b815167ffffffffffffffff811115611aa757600080fd5b8201601f81018413611ab857600080fd5b8051611ac661190382611c15565b818152856020838501011115611adb57600080fd5b611aec826020830160208601611c63565b95945050505050565b600060208284031215611b0757600080fd5b611243826117f8565b600060208284031215611b2257600080fd5b5035919050565b60008060408385031215611b3c57600080fd5b823560ff8116811461184157600080fd5b60008151808452611b65816020860160208601611c63565b601f01601f19169290920160200192915050565b60008251611b8b818460208701611c63565b9190910192915050565b60006001600160a01b03808716835280861660208401525083604083015260806060830152611bc76080830184611b4d565b9695505050505050565b6020815260006112436020830184611b4d565b604051601f8201601f1916810167ffffffffffffffff81118282101715611c0d57611c0d611d33565b604052919050565b600067ffffffffffffffff821115611c2f57611c2f611d33565b50601f01601f191660200190565b600061ffff808316818516808303821115611c5a57611c5a611d07565b01949350505050565b60005b83811015611c7e578181015183820152602001611c66565b838111156108f75750506000910152565b600181811c90821680611ca357607f821691505b60208210811415611cc457634e487b7160e01b600052602260045260246000fd5b50919050565b600061ffff80831681811415611ce257611ce2611d07565b6001019392505050565b6000600019821415611d0057611d00611d07565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b0319811681146113f457600080fdfea2646970667358221220fc0ba31cdf61218c51e20919127a0b09623389916051d0de2a213bd9cf4a700564736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061020b5760003560e01c806380b5dcb31161012a578063b88d4fde116100bd578063d639f7ba1161008c578063f2fde38b11610071578063f2fde38b146104d1578063f6a74ed7146104e4578063fe762024146104f757600080fd5b8063d639f7ba1461047a578063e985e9c5146104a357600080fd5b8063b88d4fde1461041a578063c87b56dd1461042d578063d2a1ba9114610440578063d5abeb011461045357600080fd5b806395d89b41116100f957806395d89b41146103d9578063a22cb465146103e1578063a7fc7a07146103f4578063a9059cbb1461040757600080fd5b806380b5dcb3146103825780638660e48e146103965780638da5cb5b1461039f57806393b871f2146103b057600080fd5b80635c975abb116101a2578063715018a611610171578063715018a61461033e578063736bf5911461034657806376eb4044146103675780637805862f1461037a57600080fd5b80635c975abb146102ca5780636352211e146102de5780636985a0221461032357806370a082311461032b57600080fd5b806318160ddd116101de57806318160ddd1461027557806323b872dd146102915780632f745c59146102a457806342842e0e146102b757600080fd5b806301ffc9a7146102105780630276e5a41461023857806306fdde031461024d578063095ea7b314610262575b600080fd5b61022361021e366004611a44565b61050a565b60405190151581526020015b60405180910390f35b61024b610246366004611b29565b610573565b005b610255610699565b60405161022f9190611bd1565b61024b6102703660046119a5565b610727565b60045462010000900461ffff165b60405190815260200161022f565b61024b61029f366004611858565b610825565b6102836102b23660046119a5565b6108fd565b61024b6102c5366004611858565b610a73565b60005461022390600160a01b900460ff1681565b61030b6102ec366004611b10565b61ffff166000908152600560205260409020546001600160a01b031690565b6040516001600160a01b03909116815260200161022f565b61024b610a8f565b61028361033936600461180a565b610b7f565b61024b610c51565b6004546103549061ffff1681565b60405161ffff909116815260200161022f565b61024b61037536600461197b565b610cb7565b61024b610d25565b6004546103549062010000900461ffff1681565b610354613a9881565b6000546001600160a01b031661030b565b61030b6103be366004611af5565b6006602052600090815260409020546001600160a01b031681565b610255610e0e565b61024b6103ef36600461193f565b610e1b565b61024b61040236600461180a565b610e87565b61024b6104153660046119a5565b610f08565b61024b610428366004611894565b610f74565b61025561043b366004611b10565b6110e4565b61024b61044e3660046119cf565b61124a565b6103547f0000000000000000000000000000000000000000000000000000000000003a9881565b61030b610488366004611af5565b6005602052600090815260409020546001600160a01b031681565b6102236104b1366004611825565b600760209081526000928352604080842090915290825290205460ff1681565b61024b6104df36600461180a565b611315565b61024b6104f236600461180a565b6113f7565b61024b61050536600461180a565b611472565b60007f80ac58cd000000000000000000000000000000000000000000000000000000006001600160e01b03198316148061056d57507f5b5e139f000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b3360009081526001602052604090205460ff166105fd5760405162461bcd60e51b815260206004820152602a60248201527f436f6e74726f6c6c61626c653a20417574686f72697a656420636f6e74726f6c60448201527f6c657273206f6e6c792e0000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b600054600160a01b900460ff16156106575760405162461bcd60e51b815260206004820152601260248201527f436f6e747261637420697320706175736564000000000000000000000000000060448201526064016105f4565b60005b8260ff168110156106945760045461068290839061067d9061ffff166001611c3d565b6114ee565b8061068c81611cec565b91505061065a565b505050565b600280546106a690611c8f565b80601f01602080910402602001604051908101604052809291908181526020018280546106d290611c8f565b801561071f5780601f106106f45761010080835404028352916020019161071f565b820191906000526020600020905b81548152906001019060200180831161070257829003601f168201915b505050505081565b61ffff811660009081526005602052604090205481906001600160a01b03163381148061077757506001600160a01b038116600090815260076020908152604080832033845290915290205460ff165b6107c35760405162461bcd60e51b815260206004820152601460248201527f4552433732313a204e6f7420617070726f76656400000000000000000000000060448201526064016105f4565b61ffff821660009081526006602052604080822080546001600160a01b0319166001600160a01b0388811691821790925591518693918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a450505050565b80336001600160a01b038516148061084c57503360009081526001602052604090205460ff165b80610872575061ffff81166000908152600660205260409020546001600160a01b031633145b806108a057506001600160a01b038416600090815260076020908152604080832033845290915290205460ff165b6108ec5760405162461bcd60e51b815260206004820152601460248201527f4552433732313a204e6f7420617070726f76656400000000000000000000000060448201526064016105f4565b6108f78484836116b5565b50505050565b600061090883610b7f565b821061097c5760405162461bcd60e51b815260206004820152602860248201527f4552433732313a20496e6465782067726561746572207468616e206f776e657260448201527f2062616c616e636500000000000000000000000000000000000000000000000060648201526084016105f4565b600060015b6004546109999062010000900461ffff166001611c3d565b61ffff168161ffff161015610a045761ffff81166000908152600560205260409020546001600160a01b03868116911614156109f257838214156109e45761ffff16915061056d9050565b816109ee81611cec565b9250505b806109fc81611cca565b915050610981565b5060405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e647300000000000000000000000000000000000000000060648201526084016105f4565b6106946000838360405180602001604052806000815250610f74565b6000546001600160a01b03163314610ae95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f4565b600054600160a01b900460ff1615610b435760405162461bcd60e51b815260206004820152601260248201527f436f6e747261637420697320706175736564000000000000000000000000000060448201526064016105f4565b6000805460ff60a01b1916600160a01b1781556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e7529190a1565b60006001600160a01b038216610bd75760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a204e6f6e2d6578697374616e7420616464726573730000000060448201526064016105f4565b600060015b600454610bf49062010000900461ffff166001611c3d565b61ffff168161ffff161015610c4a5761ffff81166000908152600560205260409020546001600160a01b0385811691161415610c385781610c3481611cec565b9250505b80610c4281611cca565b915050610bdc565b5092915050565b6000546001600160a01b03163314610cab5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f4565b610cb5600061178c565b565b61ffff81166000908152600560205260409020546001600160a01b03163314610d165760405162461bcd60e51b815260206004820152601160248201527022a9219b99189d102737ba1037bbb732b960791b60448201526064016105f4565b610d213383836116b5565b5050565b6000546001600160a01b03163314610d7f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f4565b600054600160a01b900460ff16610dd85760405162461bcd60e51b815260206004820152601660248201527f436f6e7472616374206973206e6f74207061757365640000000000000000000060448201526064016105f4565b6000805460ff60a01b191681556040517fa45f47fdea8a1efdd9029a5691c7f759c32b7c698632b563573e155625d169339190a1565b600380546106a690611c8f565b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6000546001600160a01b03163314610ee15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f4565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b61ffff811660009081526005602052604090205481906001600160a01b03163314610f695760405162461bcd60e51b815260206004820152601160248201527022a9219b99189d102737ba1037bbb732b960791b60448201526064016105f4565b6106943384836116b5565b610f8060008484610825565b6001600160a01b0383163b156108f7576000836001600160a01b031663150b7a023360008686604051602401610fb99493929190611b95565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516110079190611b79565b600060405180830381855afa9150503d8060008114611042576040519150601f19603f3d011682016040523d82523d6000602084013e611047565b606091505b509150506000818060200190518101906110619190611a61565b90507f150b7a02000000000000000000000000000000000000000000000000000000006001600160e01b03198216146110dc5760405162461bcd60e51b815260206004820152601e60248201527f4552433732313a20416464726573732063616e6e6f742072656365697665000060448201526064016105f4565b505050505050565b61ffff811660009081526005602052604090205460609082906001600160a01b03166111525760405162461bcd60e51b815260206004820152601960248201527f4552433732313a204e6f6e6578697374656e7420746f6b656e0000000000000060448201526064016105f4565b6008546001600160a01b03166111aa5760405162461bcd60e51b815260206004820152601f60248201527f4552433732313a204e6f206d657461646174612068616e646c6572207365740060448201526064016105f4565b6008546040517fc87b56dd000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b039091169063c87b56dd9060240160006040518083038186803b15801561120757600080fd5b505afa15801561121b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112439190810190611a7e565b9392505050565b6000546001600160a01b031633146112a45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f4565b60005b818110156106945760018060008585858181106112c6576112c6611d1d565b90506020020160208101906112db919061180a565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061130d81611cec565b9150506112a7565b6000546001600160a01b0316331461136f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f4565b6001600160a01b0381166113eb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105f4565b6113f48161178c565b50565b6000546001600160a01b031633146114515760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f4565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b031633146114cc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105f4565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b61ffff81166000908152600560205260409020546001600160a01b0316156115585760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20546f6b656e20616c7265616479206d696e7465640000000060448201526064016105f4565b60045461ffff7f0000000000000000000000000000000000000000000000000000000000003a9881166201000090920416106115d65760405162461bcd60e51b815260206004820152601a60248201527f4552433732313a2052656163686564204d617820537570706c7900000000000060448201526064016105f4565b61ffff818116600090815260056020526040812080546001600160a01b0319166001600160a01b03861617905560048054909216919061161583611cca565b91906101000a81548161ffff021916908361ffff160217905550506004600281819054906101000a900461ffff168092919061165090611cca565b91906101000a81548161ffff021916908361ffff160217905550508061ffff16826001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61ffff81166000908152600560205260409020546001600160a01b038481169116146117175760405162461bcd60e51b815260206004820152601160248201527022a9219b99189d102737ba1037bbb732b960791b60448201526064016105f4565b61ffff8116600081815260066020908152604080832080546001600160a01b0319908116909155600590925280832080546001600160a01b0388811691909416811790915590519092918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146117f357600080fd5b919050565b803561ffff811681146117f357600080fd5b60006020828403121561181c57600080fd5b611243826117dc565b6000806040838503121561183857600080fd5b611841836117dc565b915061184f602084016117dc565b90509250929050565b60008060006060848603121561186d57600080fd5b611876846117dc565b9250611884602085016117dc565b9150604084013590509250925092565b600080600080608085870312156118aa57600080fd5b6118b3856117dc565b93506118c1602086016117dc565b925060408501359150606085013567ffffffffffffffff8111156118e457600080fd5b8501601f810187136118f557600080fd5b803561190861190382611c15565b611be4565b81815288602083850101111561191d57600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b6000806040838503121561195257600080fd5b61195b836117dc565b91506020830135801515811461197057600080fd5b809150509250929050565b6000806040838503121561198e57600080fd5b611997836117dc565b915061184f602084016117f8565b600080604083850312156119b857600080fd5b6119c1836117dc565b946020939093013593505050565b600080602083850312156119e257600080fd5b823567ffffffffffffffff808211156119fa57600080fd5b818501915085601f830112611a0e57600080fd5b813581811115611a1d57600080fd5b8660208260051b8501011115611a3257600080fd5b60209290920196919550909350505050565b600060208284031215611a5657600080fd5b813561124381611d49565b600060208284031215611a7357600080fd5b815161124381611d49565b600060208284031215611a9057600080fd5b815167ffffffffffffffff811115611aa757600080fd5b8201601f81018413611ab857600080fd5b8051611ac661190382611c15565b818152856020838501011115611adb57600080fd5b611aec826020830160208601611c63565b95945050505050565b600060208284031215611b0757600080fd5b611243826117f8565b600060208284031215611b2257600080fd5b5035919050565b60008060408385031215611b3c57600080fd5b823560ff8116811461184157600080fd5b60008151808452611b65816020860160208601611c63565b601f01601f19169290920160200192915050565b60008251611b8b818460208701611c63565b9190910192915050565b60006001600160a01b03808716835280861660208401525083604083015260806060830152611bc76080830184611b4d565b9695505050505050565b6020815260006112436020830184611b4d565b604051601f8201601f1916810167ffffffffffffffff81118282101715611c0d57611c0d611d33565b604052919050565b600067ffffffffffffffff821115611c2f57611c2f611d33565b50601f01601f191660200190565b600061ffff808316818516808303821115611c5a57611c5a611d07565b01949350505050565b60005b83811015611c7e578181015183820152602001611c66565b838111156108f75750506000910152565b600181811c90821680611ca357607f821691505b60208210811415611cc457634e487b7160e01b600052602260045260246000fd5b50919050565b600061ffff80831681811415611ce257611ce2611d07565b6001019392505050565b6000600019821415611d0057611d00611d07565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b0319811681146113f457600080fdfea2646970667358221220fc0ba31cdf61218c51e20919127a0b09623389916051d0de2a213bd9cf4a700564736f6c63430008070033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.