ETH Price: $2,367.30 (-4.21%)

Contract

0x43d29d6Dc3346A812b10b572ffB52fC7668Bf8BA
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

Transaction Hash
Method
Block
From
To
Safe Transfer Fr...155583742022-09-18 5:32:47745 days ago1663479167IN
0x43d29d6D...7668Bf8BA
0 ETH0.000471292.34122998
Set Approval For...147898482022-05-17 2:08:57869 days ago1652753337IN
0x43d29d6D...7668Bf8BA
0 ETH0.0014142530.66344282
Set Approval For...144215632022-03-20 6:19:54927 days ago1647757194IN
0x43d29d6D...7668Bf8BA
0 ETH0.0003873616
Set Approval For...144214542022-03-20 5:51:21927 days ago1647755481IN
0x43d29d6D...7668Bf8BA
0 ETH0.0003873616
Convert142020482022-02-14 4:24:59961 days ago1644812699IN
0x43d29d6D...7668Bf8BA
0 ETH0.0031468934.44913917
Set Approval For...120077582021-03-10 1:18:571302 days ago1615339137IN
0x43d29d6D...7668Bf8BA
0 ETH0.00573721128
Set Approval For...113513992020-11-29 4:16:261403 days ago1606623386IN
0x43d29d6D...7668Bf8BA
0 ETH0.0005826813
Set Approval For...112968122020-11-20 19:19:091412 days ago1605899949IN
0x43d29d6D...7668Bf8BA
0 ETH0.0034064776
Set Approval For...111360572020-10-27 3:15:451436 days ago1603768545IN
0x43d29d6D...7668Bf8BA
0 ETH0.0011653726
Set Approval For...109862322020-10-04 0:46:361459 days ago1601772396IN
0x43d29d6D...7668Bf8BA
0 ETH0.0020253245.18594614
Set Approval For...105761362020-08-01 20:46:491523 days ago1596314809IN
0x43d29d6D...7668Bf8BA
0 ETH0.0023531552.5
Transfer From98517942020-04-11 15:27:411635 days ago1586618861IN
0x43d29d6D...7668Bf8BA
0 ETH0.000641613.81768953
Set Approval For...98505302020-04-11 10:46:201635 days ago1586601980IN
0x43d29d6D...7668Bf8BA
0 ETH0.000102484
Set Approval For...98505282020-04-11 10:45:431635 days ago1586601943IN
0x43d29d6D...7668Bf8BA
0 ETH0.000054231.21000014
Set Approval For...98483552020-04-11 2:50:361635 days ago1586573436IN
0x43d29d6D...7668Bf8BA
0 ETH0.000224115
Transfer From96871092020-03-17 5:16:221660 days ago1584422182IN
0x43d29d6D...7668Bf8BA
0 ETH0.0027459415
Set Approval For...95828462020-03-01 3:51:541676 days ago1583034714IN
0x43d29d6D...7668Bf8BA
0 ETH0.000025621
Set Approval For...95828192020-03-01 3:43:581676 days ago1583034238IN
0x43d29d6D...7668Bf8BA
0 ETH0.000045271.01
Set Approval For...95778442020-02-29 9:32:591677 days ago1582968779IN
0x43d29d6D...7668Bf8BA
0 ETH0.000044821
Transfer From95741682020-02-28 19:49:571678 days ago1582919397IN
0x43d29d6D...7668Bf8BA
0 ETH0.000974295.32220216
Transfer From95741532020-02-28 19:47:261678 days ago1582919246IN
0x43d29d6D...7668Bf8BA
0 ETH0.000933255.09801444
Transfer From95670532020-02-27 17:38:191679 days ago1582825099IN
0x43d29d6D...7668Bf8BA
0 ETH0.001098376
Transfer95670342020-02-27 17:33:231679 days ago1582824803IN
0x43d29d6D...7668Bf8BA
0 ETH0.000174388
Transfer95670212020-02-27 17:30:471679 days ago1582824647IN
0x43d29d6D...7668Bf8BA
0 ETH0.000144536.63082437
Transfer From95585182020-02-26 10:16:441680 days ago1582712204IN
0x43d29d6D...7668Bf8BA
0 ETH0.000198061
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:
ERC666

Compiler Version
v0.6.2+commit.bacdbe57

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-02-12
*/

pragma solidity ^0.6.2;


contract ERC666{

    Chump chump;


    constructor() public{

        supportedInterfaces[0x80ac58cd] = true;
//        supportedInterfaces[0x780e9d63] = true; //enumerable
        supportedInterfaces[0x5b5e139f] = true;
        supportedInterfaces[0x01ffc9a7] = true;

        chump = Chump(0x273f7F8E6489682Df756151F5525576E322d51A3);

    }


    // @dev This emits when ownership of any NFT changes by any mechanism.
    ///  This event emits when NFTs are created (`from` == 0) and destroyed
    ///  (`to` == 0). Exception: during contract creation, any number of NFTs
    ///  may be created and assigned without emitting Transfer. At the time of
    ///  any transfer, the approved address for that NFT (if any) is reset to none.
    event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);

    /// @dev This emits when the approved address for an NFT is changed or
    ///  reaffirmed. The zero address indicates there is no approved address.
    ///  When a Transfer event emits, this also indicates that the approved
    ///  address for that NFT (if any) is reset to none.
    event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);

    /// @dev This emits when an operator is enabled or disabled for an owner.
    ///  The operator can manage all NFTs of the owner.
    event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);



    //////===721 Implementation
    mapping(address => uint) internal BALANCES;
    mapping (uint256 => address) internal ALLOWANCE;
    mapping (address => mapping (address => bool)) internal AUTHORISED;

    //    uint total_supply = uint(0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF)  * 666;

    uint total_supply;

    mapping(uint256 => address) OWNERS;  //Mapping of ticket owners

    //    METADATA VARS
    string private __name = "CryptoSatan";
    string private __symbol = "SATAN";
    string private __tokenURI = "https://anallergytoanalogy.github.io/beelzebub/metadata/beelzebub.json";


    /// @notice Checks if a given tokenId is valid
    /// @dev If adding the ability to burn tokens, this function will need to reflect that.
    /// @param _tokenId The tokenId to check
    /// @return (bool) True if valid, False if not valid.
    function isValidToken(uint256 _tokenId) internal view returns(bool){
        return _tokenId < total_supply*10;
    }


    /// @notice Count all NFTs assigned to an owner
    /// @dev NFTs assigned to the zero address are considered invalid, and this
    ///  function throws for queries about the zero address.
    /// @param _owner An address for whom to query the balance
    /// @return The number of NFTs owned by `_owner`, possibly zero
    function balanceOf(address _owner) external view returns (uint256){
        return BALANCES[_owner];
    }

    /// @notice Find the owner of an NFT
    /// @param _tokenId The identifier for an NFT
    /// @dev NFTs assigned to zero address are considered invalid, and queries
    ///  about them do throw.
    /// @return The address of the owner of the NFT
    function ownerOf(uint256 _tokenId) public view returns(address){
        require(isValidToken(_tokenId),"invalid");
        uint innerId = tokenId_to_innerId(_tokenId);
        return OWNERS[innerId];
    }

    function tokenId_to_innerId(uint _tokenId) internal pure returns(uint){
        return _tokenId /10;
    }
    function innerId_to_tokenId(uint _innerId, uint index) internal pure returns(uint){
        return _innerId * 10 + index;
    }

    function issue_token(address mintee) internal {
        uint innerId = total_supply;

        for(uint  i = 0 ; i < 10; i++){
            emit Transfer(address(0), mintee, innerId*10 + i);
        }

        OWNERS[innerId] = mintee;

        BALANCES[mintee] += 10;
        total_supply++;
    }

    function spread() internal{
        uint chumpId = chump.tokenByIndex(total_supply);
        address mintee = chump.ownerOf(chumpId);
        issue_token(mintee);
        issue_token(msg.sender);
    }
    function convert(address convertee) external{
        issue_token(convertee);
    }

    /// @notice Set or reaffirm the approved address for an NFT
    /// @dev The zero address indicates there is no approved address.
    /// @dev Throws unless `msg.sender` is the current NFT owner, or an authorized
    ///  operator of the current owner.
    /// @param _approved The new approved NFT controller
    /// @param _tokenId The NFT to approve
    function approve(address _approved, uint256 _tokenId)  external{
        address owner = ownerOf(_tokenId);
        uint innerId = tokenId_to_innerId(_tokenId);

        require( owner == msg.sender                    //Require Sender Owns Token
        || AUTHORISED[owner][msg.sender]                //  or is approved for all.
        ,"permission");
        for(uint  i = 0 ; i < 10; i++){
            emit Approval(owner, _approved, innerId*10 + i);
        }

        ALLOWANCE[innerId] = _approved;
    }

    /// @notice Get the approved address for a single NFT
    /// @dev Throws if `_tokenId` is not a valid NFT
    /// @param _tokenId The NFT to find the approved address for
    /// @return The approved address for this NFT, or the zero address if there is none
    function getApproved(uint256 _tokenId) external view returns (address) {
        require(isValidToken(_tokenId),"invalid");
        return ALLOWANCE[_tokenId];
    }

    /// @notice Query if an address is an authorized operator for another address
    /// @param _owner The address that owns the NFTs
    /// @param _operator The address that acts on behalf of the owner
    /// @return True if `_operator` is an approved operator for `_owner`, false otherwise
    function isApprovedForAll(address _owner, address _operator) external view returns (bool) {
        return AUTHORISED[_owner][_operator];
    }




    /// @notice Enable or disable approval for a third party ("operator") to manage
    ///  all your assets.
    /// @dev Emits the ApprovalForAll event
    /// @param _operator Address to add to the set of authorized operators.
    /// @param _approved True if the operators is approved, false to revoke approval
    function setApprovalForAll(address _operator, bool _approved) external {
        emit ApprovalForAll(msg.sender,_operator, _approved);
        AUTHORISED[msg.sender][_operator] = _approved;
    }


    /// @notice Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE
    ///  TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE
    ///  THEY MAY BE PERMANENTLY LOST
    /// @dev Throws unless `msg.sender` is the current owner, an authorized
    ///  operator, or the approved address for this NFT. Throws if `_from` is
    ///  not the current owner. Throws if `_to` is the zero address. Throws if
    ///  `_tokenId` is not a valid NFT.
    /// @param _from The current owner of the NFT
    /// @param _to The new owner
    /// @param _tokenId The NFT to transfer
    function transferFrom(address _from, address _to, uint256 _tokenId) public {

        uint innerId = tokenId_to_innerId(_tokenId);

        //Check Transferable
        //There is a token validity check in ownerOf
        address owner = ownerOf(_tokenId);

        require ( owner == msg.sender             //Require sender owns token
        //Doing the two below manually instead of referring to the external methods saves gas
        || ALLOWANCE[innerId] == msg.sender      //or is approved for this token
        || AUTHORISED[owner][msg.sender]          //or is approved for all
        ,"permission");
        require(owner == _from,"owner");
        require(_to != address(0),"zero");


        for(uint  i = 0 ; i < 10; i++){
            emit Transfer(_from, _to, innerId*10 + i);
        }

        OWNERS[innerId] =_to;

        BALANCES[_from] -= 10;
        BALANCES[_to] += 10;

        spread();

        //Reset approved if there is one
        if(ALLOWANCE[innerId] != address(0)){
            delete ALLOWANCE[innerId];
        }

    }

    /// @notice Transfers the ownership of an NFT from one address to another address
    /// @dev Throws unless `msg.sender` is the current owner, an authorized
    ///  operator, or the approved address for this NFT. Throws if `_from` is
    ///  not the current owner. Throws if `_to` is the zero address. Throws if
    ///  `_tokenId` is not a valid NFT. When transfer is complete, this function
    ///  checks if `_to` is a smart contract (code size > 0). If so, it calls
    ///  `onERC721Received` on `_to` and throws if the return value is not
    ///  `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`
    /// @param _from The current owner of the NFT
    /// @param _to The new owner
    /// @param _tokenId The NFT to transfer
    /// @param data Additional data with no specified format, sent in call to `_to`
    function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes memory data) public {
        transferFrom(_from, _to, _tokenId);
    }

    /// @notice Transfers the ownership of an NFT from one address to another address
    /// @dev This works identically to the other function with an extra data parameter,
    ///  except this function just sets data to ""
    /// @param _from The current owner of the NFT
    /// @param _to The new owner
    /// @param _tokenId The NFT to transfer
    function safeTransferFrom(address _from, address _to, uint256 _tokenId) external {
        safeTransferFrom(_from,_to,_tokenId,"");
    }




    // METADATA FUNCTIONS

    /// @notice A distinct Uniform Resource Identifier (URI) for a given asset.
    /// @dev Throws if `_tokenId` is not a valid NFT. URIs are defined in RFC
    ///  3986. The URI may point to a JSON file that conforms to the "ERC721
    ///  Metadata JSON Schema".
    /// @param _tokenId The tokenId of the token of which to retrieve the URI.
    /// @return (string) The URI of the token.
    function tokenURI(uint256 _tokenId) public view returns (string memory){
        //Note: changed visibility to public
        require(isValidToken(_tokenId),"invalid");
        return __tokenURI;
    }

    /// @notice A descriptive name for a collection of NFTs in this contract
    function name() external view returns (string memory _name){
        //_name = "Name must be hard coded";
        return __name;
    }

    /// @notice An abbreviated name for NFTs in this contract
    function symbol() external view returns (string memory _symbol){
        //_symbol = "Symbol must be hard coded";
        return __symbol;
    }

    ///////===165 Implementation
    mapping (bytes4 => bool) internal supportedInterfaces;
    function supportsInterface(bytes4 interfaceID) external view returns (bool){
        return supportedInterfaces[interfaceID];
    }
    ///==End 165

    //Play nice with agregator things
    ///alligator

    /// @notice Count NFTs tracked by this contract
    /// @return A count of valid NFTs tracked by this contract, where each one of
    ///  them has an assigned and queryable owner not equal to the zero address
    function totalSupply() external view returns (uint256){
        return total_supply * 10;
    }
}


interface Chump {
    function tokenByIndex(uint256 _index) external view returns(uint256);
    function ownerOf(uint256 _tokenId) external view returns(address);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_approved","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":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":true,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_approved","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":"address","name":"convertee","type":"address"}],"name":"convert","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","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":"_from","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":"bytes4","name":"interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526040518060400160405280600b81526020017f43727970746f536174616e000000000000000000000000000000000000000000815250600690805190602001906200005192919062000230565b506040518060400160405280600581526020017f534154414e000000000000000000000000000000000000000000000000000000815250600790805190602001906200009f92919062000230565b5060405180608001604052806046815260200162001b3f6046913960089080519060200190620000d192919062000230565b50348015620000df57600080fd5b506001600960006380ac58cd60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000635b5e139f60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960006301ffc9a760e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555073273f7f8e6489682df756151f5525576e322d51a36000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002df565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200027357805160ff1916838001178555620002a4565b82800160010185558215620002a4579182015b82811115620002a357825182559160200191906001019062000286565b5b509050620002b39190620002b7565b5090565b620002dc91905b80821115620002d8576000816000905550600101620002be565b5090565b90565b61185080620002ef6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80636352211e11610097578063b88d4fde11610066578063b88d4fde14610531578063c87b56dd14610636578063def2489b146106dd578063e985e9c514610721576100f5565b80636352211e1461039857806370a082311461040657806395d89b411461045e578063a22cb465146104e1576100f5565b8063095ea7b3116100d3578063095ea7b31461025057806318160ddd1461029e57806323b872dd146102bc57806342842e0e1461032a576100f5565b806301ffc9a7146100fa57806306fdde031461015f578063081812fc146101e2575b600080fd5b6101456004803603602081101561011057600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061079d565b604051808215151515815260200191505060405180910390f35b610167610805565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101a757808201518184015260208101905061018c565b50505050905090810190601f1680156101d45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61020e600480360360208110156101f857600080fd5b81019080803590602001909291905050506108a7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61029c6004803603604081101561026657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061095f565b005b6102a6610b80565b6040518082815260200191505060405180910390f35b610328600480360360608110156102d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b8d565b005b6103966004803603606081101561034057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061109e565b005b6103c4600480360360208110156103ae57600080fd5b81019080803590602001909291905050506110be565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104486004803603602081101561041c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611184565b6040518082815260200191505060405180910390f35b6104666111cd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104a657808201518184015260208101905061048b565b50505050905090810190601f1680156104d35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61052f600480360360408110156104f757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061126f565b005b6106346004803603608081101561054757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156105ae57600080fd5b8201836020820111156105c057600080fd5b803590602001918460018302840111640100000000831117156105e257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611370565b005b6106626004803603602081101561064c57600080fd5b8101908080359060200190929190505050611381565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106a2578082015181840152602081019050610687565b50505050905090810190601f1680156106cf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61071f600480360360208110156106f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114a0565b005b6107836004803603604081101561073757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114ac565b604051808215151515815260200191505060405180910390f35b600060096000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060068054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561089d5780601f106108725761010080835404028352916020019161089d565b820191906000526020600020905b81548152906001019060200180831161088057829003601f168201915b5050505050905090565b60006108b282611540565b610924576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f696e76616c69640000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061096a826110be565b9050600061097783611551565b90503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480610a395750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610aab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f7065726d697373696f6e0000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008090505b600a811015610b275780600a8302018573ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a48080600101915050610ab1565b50836002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6000600a60045402905090565b6000610b9882611551565b90506000610ba5836110be565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480610c3f57503373ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610cd05750600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f7065726d697373696f6e0000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610de3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f6f776e657200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610e86576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f7a65726f0000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008090505b600a811015610f025780600a8402018573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48080600101915050610e8c565b50836005600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600a600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550610ff9611565565b600073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611097576002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b5050505050565b6110b983838360405180602001604052806000815250611370565b505050565b60006110c982611540565b61113b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f696e76616c69640000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600061114683611551565b90506005600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112655780601f1061123a57610100808354040283529160200191611265565b820191906000526020600020905b81548152906001019060200180831161124857829003601f168201915b5050505050905090565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a380600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61137b848484610b8d565b50505050565b606061138c82611540565b6113fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f696e76616c69640000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114945780601f1061146957610100808354040283529160200191611494565b820191906000526020600020905b81548152906001019060200180831161147757829003601f168201915b50505050509050919050565b6114a9816116df565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000600a6004540282109050919050565b6000600a828161155d57fe5b049050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634f6ccce76004546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156115db57600080fd5b505afa1580156115ef573d6000803e3d6000fd5b505050506040513d602081101561160557600080fd5b8101908080519060200190929190505050905060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561168c57600080fd5b505afa1580156116a0573d6000803e3d6000fd5b505050506040513d60208110156116b657600080fd5b810190808051906020019092919050505090506116d2816116df565b6116db336116df565b5050565b6000600454905060008090505b600a8110156117635780600a8302018373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480806001019150506116ec565b50816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600460008154809291906001019190505550505056fea264697066735822122070bc9c4b95adc3334a83fbd0c57263652f5fee3b8d76d5bf895804cd158a54a364736f6c6343000602003368747470733a2f2f616e616c6c65726779746f616e616c6f67792e6769746875622e696f2f6265656c7a656275622f6d657461646174612f6265656c7a656275622e6a736f6e

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80636352211e11610097578063b88d4fde11610066578063b88d4fde14610531578063c87b56dd14610636578063def2489b146106dd578063e985e9c514610721576100f5565b80636352211e1461039857806370a082311461040657806395d89b411461045e578063a22cb465146104e1576100f5565b8063095ea7b3116100d3578063095ea7b31461025057806318160ddd1461029e57806323b872dd146102bc57806342842e0e1461032a576100f5565b806301ffc9a7146100fa57806306fdde031461015f578063081812fc146101e2575b600080fd5b6101456004803603602081101561011057600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061079d565b604051808215151515815260200191505060405180910390f35b610167610805565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101a757808201518184015260208101905061018c565b50505050905090810190601f1680156101d45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61020e600480360360208110156101f857600080fd5b81019080803590602001909291905050506108a7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61029c6004803603604081101561026657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061095f565b005b6102a6610b80565b6040518082815260200191505060405180910390f35b610328600480360360608110156102d257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b8d565b005b6103966004803603606081101561034057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061109e565b005b6103c4600480360360208110156103ae57600080fd5b81019080803590602001909291905050506110be565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104486004803603602081101561041c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611184565b6040518082815260200191505060405180910390f35b6104666111cd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104a657808201518184015260208101905061048b565b50505050905090810190601f1680156104d35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61052f600480360360408110156104f757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061126f565b005b6106346004803603608081101561054757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156105ae57600080fd5b8201836020820111156105c057600080fd5b803590602001918460018302840111640100000000831117156105e257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611370565b005b6106626004803603602081101561064c57600080fd5b8101908080359060200190929190505050611381565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106a2578082015181840152602081019050610687565b50505050905090810190601f1680156106cf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61071f600480360360208110156106f357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114a0565b005b6107836004803603604081101561073757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114ac565b604051808215151515815260200191505060405180910390f35b600060096000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060068054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561089d5780601f106108725761010080835404028352916020019161089d565b820191906000526020600020905b81548152906001019060200180831161088057829003601f168201915b5050505050905090565b60006108b282611540565b610924576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f696e76616c69640000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061096a826110be565b9050600061097783611551565b90503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480610a395750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610aab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f7065726d697373696f6e0000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008090505b600a811015610b275780600a8302018573ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a48080600101915050610ab1565b50836002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6000600a60045402905090565b6000610b9882611551565b90506000610ba5836110be565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480610c3f57503373ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b80610cd05750600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610d42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f7065726d697373696f6e0000000000000000000000000000000000000000000081525060200191505060405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610de3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260058152602001807f6f776e657200000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610e86576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260048152602001807f7a65726f0000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008090505b600a811015610f025780600a8402018573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48080600101915050610e8c565b50836005600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600a600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550610ff9611565565b600073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611097576002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b5050505050565b6110b983838360405180602001604052806000815250611370565b505050565b60006110c982611540565b61113b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f696e76616c69640000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600061114683611551565b90506005600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112655780601f1061123a57610100808354040283529160200191611265565b820191906000526020600020905b81548152906001019060200180831161124857829003601f168201915b5050505050905090565b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a380600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61137b848484610b8d565b50505050565b606061138c82611540565b6113fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f696e76616c69640000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114945780601f1061146957610100808354040283529160200191611494565b820191906000526020600020905b81548152906001019060200180831161147757829003601f168201915b50505050509050919050565b6114a9816116df565b50565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000600a6004540282109050919050565b6000600a828161155d57fe5b049050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634f6ccce76004546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156115db57600080fd5b505afa1580156115ef573d6000803e3d6000fd5b505050506040513d602081101561160557600080fd5b8101908080519060200190929190505050905060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561168c57600080fd5b505afa1580156116a0573d6000803e3d6000fd5b505050506040513d60208110156116b657600080fd5b810190808051906020019092919050505090506116d2816116df565b6116db336116df565b5050565b6000600454905060008090505b600a8110156117635780600a8302018373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480806001019150506116ec565b50816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600460008154809291906001019190505550505056fea264697066735822122070bc9c4b95adc3334a83fbd0c57263652f5fee3b8d76d5bf895804cd158a54a364736f6c63430006020033

Deployed Bytecode Sourcemap

29:11520:0:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29:11520:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11014:133;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11014:133:0;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10557:137;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10557:137:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5464:168;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5464:168:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4665:523;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4665:523:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11449:97;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7216:1088;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7216:1088:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9685:139;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9685:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3213:210;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3213:210:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2840:108;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2840:108:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10765:147;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10765:147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6418:198;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6418:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9168:151;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;9168:151:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9168:151:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9168:151:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;9168:151:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;9168:151:0;;;;;;;;;;;;;;;:::i;:::-;;10266:205;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10266:205:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10266:205:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4209:85;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4209:85:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;5939:145;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5939:145:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11014:133;11084:4;11107:19;:32;11127:11;11107:32;;;;;;;;;;;;;;;;;;;;;;;;;;;11100:39;;11014:133;;;:::o;10557:137::-;10596:19;10680:6;10673:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10557:137;:::o;5464:168::-;5526:7;5554:22;5567:8;5554:12;:22::i;:::-;5546:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5605:9;:19;5615:8;5605:19;;;;;;;;;;;;;;;;;;;;;5598:26;;5464:168;;;:::o;4665:523::-;4739:13;4755:17;4763:8;4755:7;:17::i;:::-;4739:33;;4783:12;4798:28;4817:8;4798:18;:28::i;:::-;4783:43;;4857:10;4848:19;;:5;:19;;;:108;;;;4927:10;:17;4938:5;4927:17;;;;;;;;;;;;;;;:29;4945:10;4927:29;;;;;;;;;;;;;;;;;;;;;;;;;4848:108;4839:184;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5038:7;5048:1;5038:11;;5034:104;5056:2;5052:1;:6;5034:104;;;5124:1;5119:2;5111:7;:10;:14;5100:9;5084:42;;5093:5;5084:42;;;;;;;;;;;;5060:3;;;;;;;5034:104;;;;5171:9;5150;:18;5160:7;5150:18;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;4665:523;;;;:::o;11449:97::-;11495:7;11536:2;11521:12;;:17;11514:24;;11449:97;:::o;7216:1088::-;7304:12;7319:28;7338:8;7319:18;:28::i;:::-;7304:43;;7444:13;7460:17;7468:8;7460:7;:17::i;:::-;7444:33;;7509:10;7500:19;;:5;:19;;;:199;;;;7689:10;7667:32;;:9;:18;7677:7;7667:18;;;;;;;;;;;;;;;;;;;;;:32;;;7500:199;:278;;;;7749:10;:17;7760:5;7749:17;;;;;;;;;;;;;;;:29;7767:10;7749:29;;;;;;;;;;;;;;;;;;;;;;;;;7500:278;7490:346;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7864:5;7855:14;;:5;:14;;;7847:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7912:1;7897:17;;:3;:17;;;;7889:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7941:7;7951:1;7941:11;;7937:98;7959:2;7955:1;:6;7937:98;;;8021:1;8016:2;8008:7;:10;:14;8003:3;7987:36;;7996:5;7987:36;;;;;;;;;;;;7963:3;;;;;;;7937:98;;;;8064:3;8047:6;:15;8054:7;8047:15;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;8099:2;8080:8;:15;8089:5;8080:15;;;;;;;;;;;;;;;;:21;;;;;;;;;;;8129:2;8112:8;:13;8121:3;8112:13;;;;;;;;;;;;;;;;:19;;;;;;;;;;;8144:8;:6;:8::i;:::-;8240:1;8210:32;;:9;:18;8220:7;8210:18;;;;;;;;;;;;;;;;;;;;;:32;;;8207:88;;8265:9;:18;8275:7;8265:18;;;;;;;;;;;;8258:25;;;;;;;;;;;8207:88;7216:1088;;;;;:::o;9685:139::-;9777:39;9794:5;9800:3;9804:8;9777:39;;;;;;;;;;;;:16;:39::i;:::-;9685:139;;;:::o;3213:210::-;3268:7;3295:22;3308:8;3295:12;:22::i;:::-;3287:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3339:12;3354:28;3373:8;3354:18;:28::i;:::-;3339:43;;3400:6;:15;3407:7;3400:15;;;;;;;;;;;;;;;;;;;;;3393:22;;;3213:210;;;:::o;2840:108::-;2898:7;2924:8;:16;2933:6;2924:16;;;;;;;;;;;;;;;;2917:23;;2840:108;;;:::o;10765:147::-;10806:21;10896:8;10889:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10765:147;:::o;6418:198::-;6531:9;6505:47;;6520:10;6505:47;;;6542:9;6505:47;;;;;;;;;;;;;;;;;;;;;;6599:9;6563:10;:22;6574:10;6563:22;;;;;;;;;;;;;;;:33;6586:9;6563:33;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;6418:198;;:::o;9168:151::-;9277:34;9290:5;9297:3;9302:8;9277:12;:34::i;:::-;9168:151;;;;:::o;10266:205::-;10323:13;10402:22;10415:8;10402:12;:22::i;:::-;10394:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10453:10;10446:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10266:205;;;:::o;4209:85::-;4264:22;4276:9;4264:11;:22::i;:::-;4209:85;:::o;5939:145::-;6023:4;6047:10;:18;6058:6;6047:18;;;;;;;;;;;;;;;:29;6066:9;6047:29;;;;;;;;;;;;;;;;;;;;;;;;;6040:36;;5939:145;;;;:::o;2382:119::-;2444:4;2491:2;2478:12;;:15;2467:8;:26;2460:33;;2382:119;;;:::o;3431:108::-;3496:4;3529:2;3519:8;:12;;;;;;3512:19;;3431:108;;;:::o;3997:206::-;4034:12;4049:5;;;;;;;;;;;:18;;;4068:12;;4049:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4049:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4049:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4049:32:0;;;;;;;;;;;;;;;;4034:47;;4092:14;4109:5;;;;;;;;;;;:13;;;4123:7;4109:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4109:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4109:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4109:22:0;;;;;;;;;;;;;;;;4092:39;;4142:19;4154:6;4142:11;:19::i;:::-;4172:23;4184:10;4172:11;:23::i;:::-;3997:206;;:::o;3682:307::-;3739:12;3754;;3739:27;;3783:7;3793:1;3783:11;;3779:106;3801:2;3797:1;:6;3779:106;;;3871:1;3866:2;3858:7;:10;:14;3850:6;3829:44;;3846:1;3829:44;;;;;;;;;;;;3805:3;;;;;;;3779:106;;;;3915:6;3897;:15;3904:7;3897:15;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;3954:2;3934:8;:16;3943:6;3934:16;;;;;;;;;;;;;;;;:22;;;;;;;;;;;3967:12;;:14;;;;;;;;;;;;;3682:307;;:::o

Swarm Source

ipfs://70bc9c4b95adc3334a83fbd0c57263652f5fee3b8d76d5bf895804cd158a54a3

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.