ETH Price: $2,485.20 (-1.96%)

Contract

0xCC7d4C901f08BAe04CE7D440eB1d70e1a23A8135
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer207873432024-09-19 21:31:2343 days ago1726781483IN
0xCC7d4C90...1a23A8135
0 ETH0.000436049.22290635
Transfer198535962024-05-12 11:19:11174 days ago1715512751IN
0xCC7d4C90...1a23A8135
0 ETH0.000164793.48564466
Transfer170429162023-04-14 3:55:11568 days ago1681444511IN
0xCC7d4C90...1a23A8135
0 ETH0.0011494424.31187994
Approve170259822023-04-11 16:19:11570 days ago1681229951IN
0xCC7d4C90...1a23A8135
0 ETH0.0021238445.14777483
Approve170257292023-04-11 15:26:47570 days ago1681226807IN
0xCC7d4C90...1a23A8135
0 ETH0.0013955329.8102648
Approve170240852023-04-11 9:52:11571 days ago1681206731IN
0xCC7d4C90...1a23A8135
0 ETH0.0005353419.72381991
Approve170240842023-04-11 9:51:59571 days ago1681206719IN
0xCC7d4C90...1a23A8135
0 ETH0.0009556620.31509718
Transfer170218072023-04-11 2:06:59571 days ago1681178819IN
0xCC7d4C90...1a23A8135
0 ETH0.0017230433.15389421
Approve170207052023-04-10 22:23:11571 days ago1681165391IN
0xCC7d4C90...1a23A8135
0 ETH0.0018436139.39177073
Approve170167842023-04-10 9:01:35572 days ago1681117295IN
0xCC7d4C90...1a23A8135
0 ETH0.0009327219.82759883
Approve170164532023-04-10 7:53:47572 days ago1681113227IN
0xCC7d4C90...1a23A8135
0 ETH0.0009218419.59628442
Approve170164192023-04-10 7:46:59572 days ago1681112819IN
0xCC7d4C90...1a23A8135
0 ETH0.0009173119.49984704
Approve170159922023-04-10 6:20:47572 days ago1681107647IN
0xCC7d4C90...1a23A8135
0 ETH0.0012505126.58303629
Approve170158232023-04-10 5:46:11572 days ago1681105571IN
0xCC7d4C90...1a23A8135
0 ETH0.0010565422.45961797
Approve170156762023-04-10 5:16:47572 days ago1681103807IN
0xCC7d4C90...1a23A8135
0 ETH0.0028225260
Approve170156302023-04-10 5:07:11572 days ago1681103231IN
0xCC7d4C90...1a23A8135
0 ETH0.0020749944.10947258
Approve170156172023-04-10 5:04:35572 days ago1681103075IN
0xCC7d4C90...1a23A8135
0 ETH0.0010438822.19044344
Transfer170155592023-04-10 4:52:35572 days ago1681102355IN
0xCC7d4C90...1a23A8135
0 ETH0.001000319.22067761
Transfer170155542023-04-10 4:51:35572 days ago1681102295IN
0xCC7d4C90...1a23A8135
0 ETH0.0010161519.52531277
Approve170154412023-04-10 4:28:59572 days ago1681100939IN
0xCC7d4C90...1a23A8135
0 ETH0.0012822327.25715737
Approve170154232023-04-10 4:25:23572 days ago1681100723IN
0xCC7d4C90...1a23A8135
0 ETH0.0010349222
Approve170143672023-04-10 0:50:47572 days ago1681087847IN
0xCC7d4C90...1a23A8135
0 ETH0.0008589518.25940594
Approve170141702023-04-10 0:10:59572 days ago1681085459IN
0xCC7d4C90...1a23A8135
0 ETH0.0008861518.83762099
Approve170119492023-04-09 16:36:35572 days ago1681058195IN
0xCC7d4C90...1a23A8135
0 ETH0.0012094925.84271196
Approve170119422023-04-09 16:34:59572 days ago1681058099IN
0xCC7d4C90...1a23A8135
0 ETH0.0010443322.2001445
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:
ROOTS

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-04-08
*/

// SPDX-License-Identifier: MIT
// File: https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// ROOTS is a DeFi & DEX platform on QOM. ROOTS aims at contributing to QOM’s vision of flipping Shiba by offering some advantages to QOM holders and increasing usecase of QOM.
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Be free like a bird but never forget: everything comes back to its ROOTS eventually.

pragma solidity >=0.8.0;

/// @notice Modern and gas efficient ERC20 + EIP-2612 implementation.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)
/// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)
/// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it.
abstract contract ERC20 {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

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

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

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

    string public name;

    string public symbol;

    uint8 public immutable decimals;

    /*//////////////////////////////////////////////////////////////
                              ERC20 STORAGE
    //////////////////////////////////////////////////////////////*/

    uint256 public totalSupply;

    mapping(address => uint256) public balanceOf;

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

    /*//////////////////////////////////////////////////////////////
                            EIP-2612 STORAGE
    //////////////////////////////////////////////////////////////*/

    uint256 internal immutable INITIAL_CHAIN_ID;

    bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR;

    mapping(address => uint256) public nonces;

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

    constructor(string memory _name, string memory _symbol, uint8 _decimals) {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;

        INITIAL_CHAIN_ID = block.chainid;
        INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator();
    }

    /*//////////////////////////////////////////////////////////////
                               ERC20 LOGIC
    //////////////////////////////////////////////////////////////*/

    function approve(
        address spender,
        uint256 amount
    ) public virtual returns (bool) {
        allowance[msg.sender][spender] = amount;

        emit Approval(msg.sender, spender, amount);

        return true;
    }

    function transfer(
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        balanceOf[msg.sender] -= amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(msg.sender, to, amount);

        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        uint256 allowed = allowance[from][msg.sender]; // Saves gas for limited approvals.

        if (allowed != type(uint256).max)
            allowance[from][msg.sender] = allowed - amount;

        balanceOf[from] -= amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(from, to, amount);

        return true;
    }

    /*//////////////////////////////////////////////////////////////
                             EIP-2612 LOGIC
    //////////////////////////////////////////////////////////////*/

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) public virtual {
        require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED");

        // Unchecked because the only math done is incrementing
        // the owner's nonce which cannot realistically overflow.
        unchecked {
            address recoveredAddress = ecrecover(
                keccak256(
                    abi.encodePacked(
                        "\x19\x01",
                        DOMAIN_SEPARATOR(),
                        keccak256(
                            abi.encode(
                                keccak256(
                                    "Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"
                                ),
                                owner,
                                spender,
                                value,
                                nonces[owner]++,
                                deadline
                            )
                        )
                    )
                ),
                v,
                r,
                s
            );

            require(
                recoveredAddress != address(0) && recoveredAddress == owner,
                "INVALID_SIGNER"
            );

            allowance[recoveredAddress][spender] = value;
        }

        emit Approval(owner, spender, value);
    }

    function DOMAIN_SEPARATOR() public view virtual returns (bytes32) {
        return
            block.chainid == INITIAL_CHAIN_ID
                ? INITIAL_DOMAIN_SEPARATOR
                : computeDomainSeparator();
    }

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

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

    function _mint(address to, uint256 amount) internal virtual {
        totalSupply += amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

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

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

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

        emit Transfer(from, address(0), amount);
    }
}

pragma solidity ^0.8.18;

contract ROOTS is ERC20 {
    constructor() ERC20("ROOTS", "ROOTS", 18) {
        _mint(msg.sender, 999_999_999_999 * 10 ** 18);
    }
}

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":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60e06040523480156200001157600080fd5b506040518060400160405280600581526020017f524f4f54530000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f524f4f545300000000000000000000000000000000000000000000000000000081525060128260009081620000919190620004d7565b508160019081620000a39190620004d7565b508060ff1660808160ff16815250504660a08181525050620000ca620000f960201b60201c565b60c08181525050505050620000f3336c0c9f2c9cd038943736989c00006200018960201b60201c565b620007db565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516200012d91906200066d565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc646306040516020016200016e959493929190620006f7565b60405160208183030381529060405280519060200120905090565b80600260008282546200019d919062000783565b9250508190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002519190620007be565b60405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002df57607f821691505b602082108103620002f557620002f462000297565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200035f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000320565b6200036b868362000320565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003b8620003b2620003ac8462000383565b6200038d565b62000383565b9050919050565b6000819050919050565b620003d48362000397565b620003ec620003e382620003bf565b8484546200032d565b825550505050565b600090565b62000403620003f4565b62000410818484620003c9565b505050565b5b8181101562000438576200042c600082620003f9565b60018101905062000416565b5050565b601f82111562000487576200045181620002fb565b6200045c8462000310565b810160208510156200046c578190505b620004846200047b8562000310565b83018262000415565b50505b505050565b600082821c905092915050565b6000620004ac600019846008026200048c565b1980831691505092915050565b6000620004c7838362000499565b9150826002028217905092915050565b620004e2826200025d565b67ffffffffffffffff811115620004fe57620004fd62000268565b5b6200050a8254620002c6565b620005178282856200043c565b600060209050601f8311600181146200054f57600084156200053a578287015190505b620005468582620004b9565b865550620005b6565b601f1984166200055f86620002fb565b60005b82811015620005895784890151825560018201915060208501945060208101905062000562565b86831015620005a95784890151620005a5601f89168262000499565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b60008190508160005260206000209050919050565b60008154620005ed81620002c6565b620005f98186620005be565b945060018216600081146200061757600181146200062d5762000664565b60ff198316865281151582028601935062000664565b6200063885620005c9565b60005b838110156200065c578154818901526001820191506020810190506200063b565b838801955050505b50505092915050565b60006200067b8284620005de565b915081905092915050565b6000819050919050565b6200069b8162000686565b82525050565b620006ac8162000383565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620006df82620006b2565b9050919050565b620006f181620006d2565b82525050565b600060a0820190506200070e600083018862000690565b6200071d602083018762000690565b6200072c604083018662000690565b6200073b6060830185620006a1565b6200074a6080830184620006e6565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007908262000383565b91506200079d8362000383565b9250828201905080821115620007b857620007b762000754565b5b92915050565b6000602082019050620007d56000830184620006a1565b92915050565b60805160a05160c0516114aa6200080b60003960006106b7015260006106830152600061065d01526114aa6000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a08231146101915780637ecebe00146101c157806395d89b41146101f1578063a9059cbb1461020f578063d505accf1461023f578063dd62ed3e1461025b576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce567146101555780633644e51514610173575b600080fd5b6100c161028b565b6040516100ce9190610ce8565b60405180910390f35b6100f160048036038101906100ec9190610da3565b610319565b6040516100fe9190610dfe565b60405180910390f35b61010f61040b565b60405161011c9190610e28565b60405180910390f35b61013f600480360381019061013a9190610e43565b610411565b60405161014c9190610dfe565b60405180910390f35b61015d61065b565b60405161016a9190610eb2565b60405180910390f35b61017b61067f565b6040516101889190610ee6565b60405180910390f35b6101ab60048036038101906101a69190610f01565b6106dc565b6040516101b89190610e28565b60405180910390f35b6101db60048036038101906101d69190610f01565b6106f4565b6040516101e89190610e28565b60405180910390f35b6101f961070c565b6040516102069190610ce8565b60405180910390f35b61022960048036038101906102249190610da3565b61079a565b6040516102369190610dfe565b60405180910390f35b61025960048036038101906102549190610f86565b6108ae565b005b61027560048036038101906102709190611028565b610ba7565b6040516102829190610e28565b60405180910390f35b6000805461029890611097565b80601f01602080910402602001604051908101604052809291908181526020018280546102c490611097565b80156103115780601f106102e657610100808354040283529160200191610311565b820191906000526020600020905b8154815290600101906020018083116102f457829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103f99190610e28565b60405180910390a36001905092915050565b60025481565b600080600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105475782816104c691906110f7565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461059691906110f7565b9250508190555082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516106479190610e28565b60405180910390a360019150509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000046146106b5576106b0610bcc565b6106d7565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b60036020528060005260406000206000915090505481565b60056020528060005260406000206000915090505481565b6001805461071990611097565b80601f016020809104026020016040519081016040528092919081815260200182805461074590611097565b80156107925780601f1061076757610100808354040283529160200191610792565b820191906000526020600020905b81548152906001019060200180831161077557829003601f168201915b505050505081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107eb91906110f7565b9250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161089c9190610e28565b60405180910390a36001905092915050565b428410156108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e890611177565b60405180910390fd5b600060016108fd61067f565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a600560008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b604051602001610985969594939291906111a6565b604051602081830303815290604052805190602001206040516020016109ac92919061127f565b60405160208183030381529060405280519060200120858585604051600081526020016040526040516109e294939291906112b6565b6020604051602081039080840390855afa158015610a04573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610a7857508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae90611347565b60405180910390fd5b85600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051610b969190610e28565b60405180910390a350505050505050565b6004602052816000526040600020602052806000526040600020600091509150505481565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051610bfe919061140a565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001610c3d959493929190611421565b60405160208183030381529060405280519060200120905090565b600081519050919050565b600082825260208201905092915050565b60005b83811015610c92578082015181840152602081019050610c77565b60008484015250505050565b6000601f19601f8301169050919050565b6000610cba82610c58565b610cc48185610c63565b9350610cd4818560208601610c74565b610cdd81610c9e565b840191505092915050565b60006020820190508181036000830152610d028184610caf565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610d3a82610d0f565b9050919050565b610d4a81610d2f565b8114610d5557600080fd5b50565b600081359050610d6781610d41565b92915050565b6000819050919050565b610d8081610d6d565b8114610d8b57600080fd5b50565b600081359050610d9d81610d77565b92915050565b60008060408385031215610dba57610db9610d0a565b5b6000610dc885828601610d58565b9250506020610dd985828601610d8e565b9150509250929050565b60008115159050919050565b610df881610de3565b82525050565b6000602082019050610e136000830184610def565b92915050565b610e2281610d6d565b82525050565b6000602082019050610e3d6000830184610e19565b92915050565b600080600060608486031215610e5c57610e5b610d0a565b5b6000610e6a86828701610d58565b9350506020610e7b86828701610d58565b9250506040610e8c86828701610d8e565b9150509250925092565b600060ff82169050919050565b610eac81610e96565b82525050565b6000602082019050610ec76000830184610ea3565b92915050565b6000819050919050565b610ee081610ecd565b82525050565b6000602082019050610efb6000830184610ed7565b92915050565b600060208284031215610f1757610f16610d0a565b5b6000610f2584828501610d58565b91505092915050565b610f3781610e96565b8114610f4257600080fd5b50565b600081359050610f5481610f2e565b92915050565b610f6381610ecd565b8114610f6e57600080fd5b50565b600081359050610f8081610f5a565b92915050565b600080600080600080600060e0888a031215610fa557610fa4610d0a565b5b6000610fb38a828b01610d58565b9750506020610fc48a828b01610d58565b9650506040610fd58a828b01610d8e565b9550506060610fe68a828b01610d8e565b9450506080610ff78a828b01610f45565b93505060a06110088a828b01610f71565b92505060c06110198a828b01610f71565b91505092959891949750929550565b6000806040838503121561103f5761103e610d0a565b5b600061104d85828601610d58565b925050602061105e85828601610d58565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806110af57607f821691505b6020821081036110c2576110c1611068565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061110282610d6d565b915061110d83610d6d565b9250828203905081811115611125576111246110c8565b5b92915050565b7f5045524d49545f444541444c494e455f45585049524544000000000000000000600082015250565b6000611161601783610c63565b915061116c8261112b565b602082019050919050565b6000602082019050818103600083015261119081611154565b9050919050565b6111a081610d2f565b82525050565b600060c0820190506111bb6000830189610ed7565b6111c86020830188611197565b6111d56040830187611197565b6111e26060830186610e19565b6111ef6080830185610e19565b6111fc60a0830184610e19565b979650505050505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000611248600283611207565b915061125382611212565b600282019050919050565b6000819050919050565b61127961127482610ecd565b61125e565b82525050565b600061128a8261123b565b91506112968285611268565b6020820191506112a68284611268565b6020820191508190509392505050565b60006080820190506112cb6000830187610ed7565b6112d86020830186610ea3565b6112e56040830185610ed7565b6112f26060830184610ed7565b95945050505050565b7f494e56414c49445f5349474e4552000000000000000000000000000000000000600082015250565b6000611331600e83610c63565b915061133c826112fb565b602082019050919050565b6000602082019050818103600083015261136081611324565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b6000815461139481611097565b61139e8186611367565b945060018216600081146113b957600181146113ce57611401565b60ff1983168652811515820286019350611401565b6113d785611372565b60005b838110156113f9578154818901526001820191506020810190506113da565b838801955050505b50505092915050565b60006114168284611387565b915081905092915050565b600060a0820190506114366000830188610ed7565b6114436020830187610ed7565b6114506040830186610ed7565b61145d6060830185610e19565b61146a6080830184611197565b969550505050505056fea2646970667358221220ac7720fada2760d0367f4fb1a9007ee0813aeb083ef771d1066de3fa5c6eb06264736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a08231146101915780637ecebe00146101c157806395d89b41146101f1578063a9059cbb1461020f578063d505accf1461023f578063dd62ed3e1461025b576100b4565b806306fdde03146100b9578063095ea7b3146100d757806318160ddd1461010757806323b872dd14610125578063313ce567146101555780633644e51514610173575b600080fd5b6100c161028b565b6040516100ce9190610ce8565b60405180910390f35b6100f160048036038101906100ec9190610da3565b610319565b6040516100fe9190610dfe565b60405180910390f35b61010f61040b565b60405161011c9190610e28565b60405180910390f35b61013f600480360381019061013a9190610e43565b610411565b60405161014c9190610dfe565b60405180910390f35b61015d61065b565b60405161016a9190610eb2565b60405180910390f35b61017b61067f565b6040516101889190610ee6565b60405180910390f35b6101ab60048036038101906101a69190610f01565b6106dc565b6040516101b89190610e28565b60405180910390f35b6101db60048036038101906101d69190610f01565b6106f4565b6040516101e89190610e28565b60405180910390f35b6101f961070c565b6040516102069190610ce8565b60405180910390f35b61022960048036038101906102249190610da3565b61079a565b6040516102369190610dfe565b60405180910390f35b61025960048036038101906102549190610f86565b6108ae565b005b61027560048036038101906102709190611028565b610ba7565b6040516102829190610e28565b60405180910390f35b6000805461029890611097565b80601f01602080910402602001604051908101604052809291908181526020018280546102c490611097565b80156103115780601f106102e657610100808354040283529160200191610311565b820191906000526020600020905b8154815290600101906020018083116102f457829003601f168201915b505050505081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516103f99190610e28565b60405180910390a36001905092915050565b60025481565b600080600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105475782816104c691906110f7565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461059691906110f7565b9250508190555082600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516106479190610e28565b60405180910390a360019150509392505050565b7f000000000000000000000000000000000000000000000000000000000000001281565b60007f000000000000000000000000000000000000000000000000000000000000000146146106b5576106b0610bcc565b6106d7565b7f5af3f0c983e4d1fb6630245359a482d8408845da34b6d2a18515ceeeeb3ef69f5b905090565b60036020528060005260406000206000915090505481565b60056020528060005260406000206000915090505481565b6001805461071990611097565b80601f016020809104026020016040519081016040528092919081815260200182805461074590611097565b80156107925780601f1061076757610100808354040283529160200191610792565b820191906000526020600020905b81548152906001019060200180831161077557829003601f168201915b505050505081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107eb91906110f7565b9250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161089c9190610e28565b60405180910390a36001905092915050565b428410156108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e890611177565b60405180910390fd5b600060016108fd61067f565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98a8a8a600560008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b604051602001610985969594939291906111a6565b604051602081830303815290604052805190602001206040516020016109ac92919061127f565b60405160208183030381529060405280519060200120858585604051600081526020016040526040516109e294939291906112b6565b6020604051602081039080840390855afa158015610a04573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610a7857508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae90611347565b60405180910390fd5b85600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92587604051610b969190610e28565b60405180910390a350505050505050565b6004602052816000526040600020602052806000526040600020600091509150505481565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051610bfe919061140a565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc64630604051602001610c3d959493929190611421565b60405160208183030381529060405280519060200120905090565b600081519050919050565b600082825260208201905092915050565b60005b83811015610c92578082015181840152602081019050610c77565b60008484015250505050565b6000601f19601f8301169050919050565b6000610cba82610c58565b610cc48185610c63565b9350610cd4818560208601610c74565b610cdd81610c9e565b840191505092915050565b60006020820190508181036000830152610d028184610caf565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610d3a82610d0f565b9050919050565b610d4a81610d2f565b8114610d5557600080fd5b50565b600081359050610d6781610d41565b92915050565b6000819050919050565b610d8081610d6d565b8114610d8b57600080fd5b50565b600081359050610d9d81610d77565b92915050565b60008060408385031215610dba57610db9610d0a565b5b6000610dc885828601610d58565b9250506020610dd985828601610d8e565b9150509250929050565b60008115159050919050565b610df881610de3565b82525050565b6000602082019050610e136000830184610def565b92915050565b610e2281610d6d565b82525050565b6000602082019050610e3d6000830184610e19565b92915050565b600080600060608486031215610e5c57610e5b610d0a565b5b6000610e6a86828701610d58565b9350506020610e7b86828701610d58565b9250506040610e8c86828701610d8e565b9150509250925092565b600060ff82169050919050565b610eac81610e96565b82525050565b6000602082019050610ec76000830184610ea3565b92915050565b6000819050919050565b610ee081610ecd565b82525050565b6000602082019050610efb6000830184610ed7565b92915050565b600060208284031215610f1757610f16610d0a565b5b6000610f2584828501610d58565b91505092915050565b610f3781610e96565b8114610f4257600080fd5b50565b600081359050610f5481610f2e565b92915050565b610f6381610ecd565b8114610f6e57600080fd5b50565b600081359050610f8081610f5a565b92915050565b600080600080600080600060e0888a031215610fa557610fa4610d0a565b5b6000610fb38a828b01610d58565b9750506020610fc48a828b01610d58565b9650506040610fd58a828b01610d8e565b9550506060610fe68a828b01610d8e565b9450506080610ff78a828b01610f45565b93505060a06110088a828b01610f71565b92505060c06110198a828b01610f71565b91505092959891949750929550565b6000806040838503121561103f5761103e610d0a565b5b600061104d85828601610d58565b925050602061105e85828601610d58565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806110af57607f821691505b6020821081036110c2576110c1611068565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061110282610d6d565b915061110d83610d6d565b9250828203905081811115611125576111246110c8565b5b92915050565b7f5045524d49545f444541444c494e455f45585049524544000000000000000000600082015250565b6000611161601783610c63565b915061116c8261112b565b602082019050919050565b6000602082019050818103600083015261119081611154565b9050919050565b6111a081610d2f565b82525050565b600060c0820190506111bb6000830189610ed7565b6111c86020830188611197565b6111d56040830187611197565b6111e26060830186610e19565b6111ef6080830185610e19565b6111fc60a0830184610e19565b979650505050505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000611248600283611207565b915061125382611212565b600282019050919050565b6000819050919050565b61127961127482610ecd565b61125e565b82525050565b600061128a8261123b565b91506112968285611268565b6020820191506112a68284611268565b6020820191508190509392505050565b60006080820190506112cb6000830187610ed7565b6112d86020830186610ea3565b6112e56040830185610ed7565b6112f26060830184610ed7565b95945050505050565b7f494e56414c49445f5349474e4552000000000000000000000000000000000000600082015250565b6000611331600e83610c63565b915061133c826112fb565b602082019050919050565b6000602082019050818103600083015261136081611324565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b6000815461139481611097565b61139e8186611367565b945060018216600081146113b957600181146113ce57611401565b60ff1983168652811515820286019350611401565b6113d785611372565b60005b838110156113f9578154818901526001820191506020810190506113da565b838801955050505b50505092915050565b60006114168284611387565b915081905092915050565b600060a0820190506114366000830188610ed7565b6114436020830187610ed7565b6114506040830186610ed7565b61145d6060830185610e19565b61146a6080830184611197565b969550505050505056fea2646970667358221220ac7720fada2760d0367f4fb1a9007ee0813aeb083ef771d1066de3fa5c6eb06264736f6c63430008120033

Deployed Bytecode Sourcemap

7958:140:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1788:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3231:242;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2071:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3899:625;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1844:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6303:226;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2106:44;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2532:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1815:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3481:410;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4719:1576;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2159:64;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1788:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3231:242::-;3330:4;3380:6;3347:9;:21;3357:10;3347:21;;;;;;;;;;;;;;;:30;3369:7;3347:30;;;;;;;;;;;;;;;:39;;;;3425:7;3404:37;;3413:10;3404:37;;;3434:6;3404:37;;;;;;:::i;:::-;;;;;;;;3461:4;3454:11;;3231:242;;;;:::o;2071:26::-;;;;:::o;3899:625::-;4021:4;4038:15;4056:9;:15;4066:4;4056:15;;;;;;;;;;;;;;;:27;4072:10;4056:27;;;;;;;;;;;;;;;;4038:45;;4147:17;4136:7;:28;4132:93;;4219:6;4209:7;:16;;;;:::i;:::-;4179:9;:15;4189:4;4179:15;;;;;;;;;;;;;;;:27;4195:10;4179:27;;;;;;;;;;;;;;;:46;;;;4132:93;4257:6;4238:9;:15;4248:4;4238:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;4431:6;4414:9;:13;4424:2;4414:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;4481:2;4466:26;;4475:4;4466:26;;;4485:6;4466:26;;;;;;:::i;:::-;;;;;;;;4512:4;4505:11;;;3899:625;;;;;:::o;1844:31::-;;;:::o;6303:226::-;6360:7;6417:16;6400:13;:33;:121;;6497:24;:22;:24::i;:::-;6400:121;;;6453:24;6400:121;6380:141;;6303:226;:::o;2106:44::-;;;;;;;;;;;;;;;;;:::o;2532:41::-;;;;;;;;;;;;;;;;;:::o;1815:20::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3481:410::-;3576:4;3618:6;3593:9;:21;3603:10;3593:21;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;3792:6;3775:9;:13;3785:2;3775:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;3848:2;3827:32;;3836:10;3827:32;;;3852:6;3827:32;;;;;;:::i;:::-;;;;;;;;3879:4;3872:11;;3481:410;;;;:::o;4719:1576::-;4947:15;4935:8;:27;;4927:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;5160:24;5187:827;5327:18;:16;:18::i;:::-;5457:167;5659:5;5699:7;5741:5;5781:6;:13;5788:5;5781:13;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;5831:8;5412:458;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5372:525;;;;;;5247:673;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5215:724;;;;;;5958:1;5978;5998;5187:827;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5160:854;;6085:1;6057:30;;:16;:30;;;;:59;;;;;6111:5;6091:25;;:16;:25;;;6057:59;6031:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;6222:5;6183:9;:27;6193:16;6183:27;;;;;;;;;;;;;;;:36;6211:7;6183:36;;;;;;;;;;;;;;;:44;;;;5135:1104;6272:7;6256:31;;6265:5;6256:31;;;6281:5;6256:31;;;;;;:::i;:::-;;;;;;;;4719:1576;;;;;;;:::o;2159:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6537:505::-;6602:7;6703:143;6885:4;6869:22;;;;;;:::i;:::-;;;;;;;;6914:14;6951:13;6995:4;6670:349;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6642:392;;;;;;6622:412;;6537:505;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:77::-;4890:7;4919:5;4908:16;;4853:77;;;:::o;4936:118::-;5023:24;5041:5;5023:24;:::i;:::-;5018:3;5011:37;4936:118;;:::o;5060:222::-;5153:4;5191:2;5180:9;5176:18;5168:26;;5204:71;5272:1;5261:9;5257:17;5248:6;5204:71;:::i;:::-;5060:222;;;;:::o;5288:329::-;5347:6;5396:2;5384:9;5375:7;5371:23;5367:32;5364:119;;;5402:79;;:::i;:::-;5364:119;5522:1;5547:53;5592:7;5583:6;5572:9;5568:22;5547:53;:::i;:::-;5537:63;;5493:117;5288:329;;;;:::o;5623:118::-;5694:22;5710:5;5694:22;:::i;:::-;5687:5;5684:33;5674:61;;5731:1;5728;5721:12;5674:61;5623:118;:::o;5747:135::-;5791:5;5829:6;5816:20;5807:29;;5845:31;5870:5;5845:31;:::i;:::-;5747:135;;;;:::o;5888:122::-;5961:24;5979:5;5961:24;:::i;:::-;5954:5;5951:35;5941:63;;6000:1;5997;5990:12;5941:63;5888:122;:::o;6016:139::-;6062:5;6100:6;6087:20;6078:29;;6116:33;6143:5;6116:33;:::i;:::-;6016:139;;;;:::o;6161:1199::-;6272:6;6280;6288;6296;6304;6312;6320;6369:3;6357:9;6348:7;6344:23;6340:33;6337:120;;;6376:79;;:::i;:::-;6337:120;6496:1;6521:53;6566:7;6557:6;6546:9;6542:22;6521:53;:::i;:::-;6511:63;;6467:117;6623:2;6649:53;6694:7;6685:6;6674:9;6670:22;6649:53;:::i;:::-;6639:63;;6594:118;6751:2;6777:53;6822:7;6813:6;6802:9;6798:22;6777:53;:::i;:::-;6767:63;;6722:118;6879:2;6905:53;6950:7;6941:6;6930:9;6926:22;6905:53;:::i;:::-;6895:63;;6850:118;7007:3;7034:51;7077:7;7068:6;7057:9;7053:22;7034:51;:::i;:::-;7024:61;;6978:117;7134:3;7161:53;7206:7;7197:6;7186:9;7182:22;7161:53;:::i;:::-;7151:63;;7105:119;7263:3;7290:53;7335:7;7326:6;7315:9;7311:22;7290:53;:::i;:::-;7280:63;;7234:119;6161:1199;;;;;;;;;;:::o;7366:474::-;7434:6;7442;7491:2;7479:9;7470:7;7466:23;7462:32;7459:119;;;7497:79;;:::i;:::-;7459:119;7617:1;7642:53;7687:7;7678:6;7667:9;7663:22;7642:53;:::i;:::-;7632:63;;7588:117;7744:2;7770:53;7815:7;7806:6;7795:9;7791:22;7770:53;:::i;:::-;7760:63;;7715:118;7366:474;;;;;:::o;7846:180::-;7894:77;7891:1;7884:88;7991:4;7988:1;7981:15;8015:4;8012:1;8005:15;8032:320;8076:6;8113:1;8107:4;8103:12;8093:22;;8160:1;8154:4;8150:12;8181:18;8171:81;;8237:4;8229:6;8225:17;8215:27;;8171:81;8299:2;8291:6;8288:14;8268:18;8265:38;8262:84;;8318:18;;:::i;:::-;8262:84;8083:269;8032:320;;;:::o;8358:180::-;8406:77;8403:1;8396:88;8503:4;8500:1;8493:15;8527:4;8524:1;8517:15;8544:194;8584:4;8604:20;8622:1;8604:20;:::i;:::-;8599:25;;8638:20;8656:1;8638:20;:::i;:::-;8633:25;;8682:1;8679;8675:9;8667:17;;8706:1;8700:4;8697:11;8694:37;;;8711:18;;:::i;:::-;8694:37;8544:194;;;;:::o;8744:173::-;8884:25;8880:1;8872:6;8868:14;8861:49;8744:173;:::o;8923:366::-;9065:3;9086:67;9150:2;9145:3;9086:67;:::i;:::-;9079:74;;9162:93;9251:3;9162:93;:::i;:::-;9280:2;9275:3;9271:12;9264:19;;8923:366;;;:::o;9295:419::-;9461:4;9499:2;9488:9;9484:18;9476:26;;9548:9;9542:4;9538:20;9534:1;9523:9;9519:17;9512:47;9576:131;9702:4;9576:131;:::i;:::-;9568:139;;9295:419;;;:::o;9720:118::-;9807:24;9825:5;9807:24;:::i;:::-;9802:3;9795:37;9720:118;;:::o;9844:775::-;10077:4;10115:3;10104:9;10100:19;10092:27;;10129:71;10197:1;10186:9;10182:17;10173:6;10129:71;:::i;:::-;10210:72;10278:2;10267:9;10263:18;10254:6;10210:72;:::i;:::-;10292;10360:2;10349:9;10345:18;10336:6;10292:72;:::i;:::-;10374;10442:2;10431:9;10427:18;10418:6;10374:72;:::i;:::-;10456:73;10524:3;10513:9;10509:19;10500:6;10456:73;:::i;:::-;10539;10607:3;10596:9;10592:19;10583:6;10539:73;:::i;:::-;9844:775;;;;;;;;;:::o;10625:148::-;10727:11;10764:3;10749:18;;10625:148;;;;:::o;10779:214::-;10919:66;10915:1;10907:6;10903:14;10896:90;10779:214;:::o;10999:400::-;11159:3;11180:84;11262:1;11257:3;11180:84;:::i;:::-;11173:91;;11273:93;11362:3;11273:93;:::i;:::-;11391:1;11386:3;11382:11;11375:18;;10999:400;;;:::o;11405:79::-;11444:7;11473:5;11462:16;;11405:79;;;:::o;11490:157::-;11595:45;11615:24;11633:5;11615:24;:::i;:::-;11595:45;:::i;:::-;11590:3;11583:58;11490:157;;:::o;11653:663::-;11894:3;11916:148;12060:3;11916:148;:::i;:::-;11909:155;;12074:75;12145:3;12136:6;12074:75;:::i;:::-;12174:2;12169:3;12165:12;12158:19;;12187:75;12258:3;12249:6;12187:75;:::i;:::-;12287:2;12282:3;12278:12;12271:19;;12307:3;12300:10;;11653:663;;;;;:::o;12322:545::-;12495:4;12533:3;12522:9;12518:19;12510:27;;12547:71;12615:1;12604:9;12600:17;12591:6;12547:71;:::i;:::-;12628:68;12692:2;12681:9;12677:18;12668:6;12628:68;:::i;:::-;12706:72;12774:2;12763:9;12759:18;12750:6;12706:72;:::i;:::-;12788;12856:2;12845:9;12841:18;12832:6;12788:72;:::i;:::-;12322:545;;;;;;;:::o;12873:164::-;13013:16;13009:1;13001:6;12997:14;12990:40;12873:164;:::o;13043:366::-;13185:3;13206:67;13270:2;13265:3;13206:67;:::i;:::-;13199:74;;13282:93;13371:3;13282:93;:::i;:::-;13400:2;13395:3;13391:12;13384:19;;13043:366;;;:::o;13415:419::-;13581:4;13619:2;13608:9;13604:18;13596:26;;13668:9;13662:4;13658:20;13654:1;13643:9;13639:17;13632:47;13696:131;13822:4;13696:131;:::i;:::-;13688:139;;13415:419;;;:::o;13840:147::-;13941:11;13978:3;13963:18;;13840:147;;;;:::o;13993:144::-;14045:4;14068:3;14060:11;;14091:3;14088:1;14081:14;14125:4;14122:1;14112:18;14104:26;;13993:144;;;:::o;14165:878::-;14270:3;14307:5;14301:12;14336:36;14362:9;14336:36;:::i;:::-;14388:88;14469:6;14464:3;14388:88;:::i;:::-;14381:95;;14507:1;14496:9;14492:17;14523:1;14518:166;;;;14698:1;14693:344;;;;14485:552;;14518:166;14602:4;14598:9;14587;14583:25;14578:3;14571:38;14664:6;14657:14;14650:22;14642:6;14638:35;14633:3;14629:45;14622:52;;14518:166;;14693:344;14760:41;14795:5;14760:41;:::i;:::-;14823:1;14837:154;14851:6;14848:1;14845:13;14837:154;;;14925:7;14919:14;14915:1;14910:3;14906:11;14899:35;14975:1;14966:7;14962:15;14951:26;;14873:4;14870:1;14866:12;14861:17;;14837:154;;;15020:6;15015:3;15011:16;15004:23;;14700:337;;14485:552;;14274:769;;14165:878;;;;:::o;15049:273::-;15180:3;15202:94;15292:3;15283:6;15202:94;:::i;:::-;15195:101;;15313:3;15306:10;;15049:273;;;;:::o;15328:664::-;15533:4;15571:3;15560:9;15556:19;15548:27;;15585:71;15653:1;15642:9;15638:17;15629:6;15585:71;:::i;:::-;15666:72;15734:2;15723:9;15719:18;15710:6;15666:72;:::i;:::-;15748;15816:2;15805:9;15801:18;15792:6;15748:72;:::i;:::-;15830;15898:2;15887:9;15883:18;15874:6;15830:72;:::i;:::-;15912:73;15980:3;15969:9;15965:19;15956:6;15912:73;:::i;:::-;15328:664;;;;;;;;:::o

Swarm Source

ipfs://ac7720fada2760d0367f4fb1a9007ee0813aeb083ef771d1066de3fa5c6eb062

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.