ETH Price: $2,473.56 (-1.95%)

Contract

0x44cAd2Ea98111CD30397A96072821dc5dA774309
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Stake Batch173112722023-05-22 0:25:47468 days ago1684715147IN
0x44cAd2Ea...5dA774309
0 ETH0.0062045525.47996664
Stake Batch170094452023-04-09 8:03:35510 days ago1681027415IN
0x44cAd2Ea...5dA774309
0 ETH0.0008955320.65974954
Stake Batch170094452023-04-09 8:03:35510 days ago1681027415IN
0x44cAd2Ea...5dA774309
0 ETH0.0086717620.65974954
Stake Batch169934582023-04-07 1:44:11513 days ago1680831851IN
0x44cAd2Ea...5dA774309
0 ETH0.0133850220.44455037
Stake Batch169833722023-04-05 15:09:23514 days ago1680707363IN
0x44cAd2Ea...5dA774309
0 ETH0.0083900645.41602527
Stake Batch169734732023-04-04 5:26:59516 days ago1680586019IN
0x44cAd2Ea...5dA774309
0 ETH0.0046731619.19296417
Stake Batch169684792023-04-03 12:24:59516 days ago1680524699IN
0x44cAd2Ea...5dA774309
0 ETH0.0050578820.76998229
Stake Batch169683372023-04-03 11:56:23516 days ago1680522983IN
0x44cAd2Ea...5dA774309
0 ETH0.0048903720.0820955
Stake Batch169660922023-04-03 4:18:11517 days ago1680495491IN
0x44cAd2Ea...5dA774309
0 ETH0.0134364318.82969587
Stake Batch169655952023-04-03 2:38:23517 days ago1680489503IN
0x44cAd2Ea...5dA774309
0 ETH0.0045318418.60981305
Stake Batch169648492023-04-03 0:06:59517 days ago1680480419IN
0x44cAd2Ea...5dA774309
0 ETH0.0028424122.55792651
Stake Batch169645392023-04-02 23:04:11517 days ago1680476651IN
0x44cAd2Ea...5dA774309
0 ETH0.0039990416.42352297
Stake Batch169630212023-04-02 17:56:23517 days ago1680458183IN
0x44cAd2Ea...5dA774309
0 ETH0.0048560619.94120422
Stake Batch169629012023-04-02 17:31:35517 days ago1680456695IN
0x44cAd2Ea...5dA774309
0 ETH0.0039923921.60830976
Stake Batch169623542023-04-02 15:40:59517 days ago1680450059IN
0x44cAd2Ea...5dA774309
0 ETH0.0043827623.72112477
Stake Batch169617502023-04-02 13:37:47517 days ago1680442667IN
0x44cAd2Ea...5dA774309
0 ETH0.0049166620.1900528
Stake Batch169604642023-04-02 9:17:23517 days ago1680427043IN
0x44cAd2Ea...5dA774309
0 ETH0.0055569318.38365673
Stake Batch169576962023-04-01 23:55:47518 days ago1680393347IN
0x44cAd2Ea...5dA774309
0 ETH0.0078608116.42639333
Stake Batch169547822023-04-01 14:07:11518 days ago1680358031IN
0x44cAd2Ea...5dA774309
0 ETH0.0039887721.58869926
Stake Batch169530032023-04-01 8:05:47518 days ago1680336347IN
0x44cAd2Ea...5dA774309
0 ETH0.0050724920.82998114
Stake Batch169521662023-04-01 5:16:11519 days ago1680326171IN
0x44cAd2Ea...5dA774309
0 ETH0.0102427524.12796027
Stake Batch169511532023-04-01 1:51:23519 days ago1680313883IN
0x44cAd2Ea...5dA774309
0 ETH0.0377540323.67117765
Stake Batch169510582023-04-01 1:31:59519 days ago1680312719IN
0x44cAd2Ea...5dA774309
0 ETH0.0042285517.36438962
Stake Batch169508832023-04-01 0:56:23519 days ago1680310583IN
0x44cAd2Ea...5dA774309
0 ETH0.0046047218.90909287
Stake Batch169506692023-04-01 0:13:23519 days ago1680308003IN
0x44cAd2Ea...5dA774309
0 ETH0.0062947320.82693423
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:
MutantStaking

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2023-03-31
*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.0;

/**
 * @title Staking contract
 * @author 0xSumo
 */

abstract contract Ownable {
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    address public owner;
    constructor() { owner = msg.sender; }
    modifier onlyOwner { require(owner == msg.sender, "Not Owner");_; }
    function transferOwnership(address new_) external onlyOwner { address _old = owner; owner = new_; emit OwnershipTransferred(_old, new_); }
}

interface IERC721 {
    function ownerOf(uint256 tokenId_) external view returns (address);
    function balanceOf(address owner) external view returns (uint256 balance);
    function transferFrom(address _from, address _to, uint256 tokenId_) external;
}

interface IERC1155SS {
    function balanceOf(address owner, uint256 tokenId_) external view returns (uint256 balance);
}

contract MutantStaking is Ownable {

    bool public active;

    IERC721 public ERC721;
    IERC1155SS public ERC1155SS;

    uint256 public CGOAMOUNT = 1;
    uint256 public constant CGOSBT = 69;

    struct tokenInfo {
        uint256 lastStakedTime;
        address tokenOwner;
    }

    mapping(uint256 => tokenInfo) public stakedToken;
    mapping(address => uint256) public stakedTokenAmount;

    function setActive() public onlyOwner {
        active = !active;
    }

    function setCGOAMOUNT(uint256 amount_) external onlyOwner {
        CGOAMOUNT = amount_;
    }

    function setERC1155SS(address _address) external onlyOwner {
        ERC1155SS = IERC1155SS(_address);
    }

    function setERC721contract(address _address) external onlyOwner {
        ERC721 = IERC721(_address);
    }

    function multiTransferFrom(address from_, address to_, uint256[] memory tokenIds_) internal {
        for (uint256 i = 0; i < tokenIds_.length; i++) {
            ERC721.transferFrom(from_, to_, tokenIds_[i]);
        }
    }

    function stake(uint256 tokenId_) external {
        require(active, "Inactive");
        require(ERC1155SS.balanceOf(msg.sender, CGOSBT) >= CGOAMOUNT, "You do not own SBT");
        require(ERC721.ownerOf(tokenId_) == msg.sender, "Not Owner");
        stakedToken[uint256(tokenId_)].lastStakedTime = uint256(block.timestamp);
        stakedToken[uint256(tokenId_)].tokenOwner = msg.sender;
        unchecked { ++stakedTokenAmount[msg.sender]; }
        ERC721.transferFrom(msg.sender, address(this), tokenId_);
    }

    function stakeBatch(uint256[] memory tokenIds_) external {
        require(active, "Inactive");
        require(ERC1155SS.balanceOf(msg.sender, CGOSBT) >= CGOAMOUNT, "You do not own SBT");
        for(uint256 i; i < tokenIds_.length;) {
            require(ERC721.ownerOf(tokenIds_[i]) == msg.sender, "Not Owner");
            stakedToken[tokenIds_[i]].lastStakedTime = uint256(block.timestamp);
            stakedToken[tokenIds_[i]].tokenOwner = msg.sender;
            unchecked { ++stakedTokenAmount[msg.sender]; ++i; }
        }
        multiTransferFrom(msg.sender, address(this), tokenIds_);
    }

    function unstake(uint256 tokenId_) external {
        require(stakedToken[uint256(tokenId_)].tokenOwner == msg.sender, "Not Owner");
        delete stakedToken[uint256(tokenId_)];
        unchecked { --stakedTokenAmount[msg.sender]; }
        ERC721.transferFrom(address(this), msg.sender, tokenId_);
    }

    function unstakeBatch(uint256[] memory tokenIds_) external {
        for(uint256 i; i < tokenIds_.length;) {
            require(stakedToken[tokenIds_[i]].tokenOwner == msg.sender, "Not Owner");
            delete stakedToken[tokenIds_[i]];
            unchecked {++i; --stakedTokenAmount[msg.sender]; }
        }
        multiTransferFrom(address(this), msg.sender, tokenIds_);
    }

    function ownerUnstake(uint256 tokenId_) external onlyOwner {
        delete stakedToken[uint256(tokenId_)];
        unchecked { --stakedTokenAmount[stakedToken[tokenId_].tokenOwner]; }
        ERC721.transferFrom(address(this), stakedToken[tokenId_].tokenOwner, tokenId_);
    }

    function ownerUnstakeBatch(uint256[] memory tokenIds_) external onlyOwner {
        for (uint256 i = 0; i < tokenIds_.length; i++) {
            uint256 tokenId_ = tokenIds_[i];
            require(stakedToken[tokenId_].tokenOwner != address(0), "Token not staked");
            address tokenOwner = stakedToken[tokenId_].tokenOwner;

            delete stakedToken[tokenId_];
            unchecked { --stakedTokenAmount[tokenOwner]; }
            ERC721.transferFrom(address(this), tokenOwner, tokenId_);
        }
    }

    function getUserStakedTokens(address user) public view returns (uint256[] memory) {
        uint256 stakedAmount = stakedTokenAmount[user];
        uint256[] memory stakedTokens = new uint256[](stakedAmount);
        uint256 counter = 0;
        for (uint256 i = 1; i < 1000; i++) { // 1000 is the total supply
            tokenInfo memory st = stakedToken[i];
            if (st.tokenOwner == user) {
                stakedTokens[counter] = i;
                counter++;
            }
        }
        return stakedTokens;
    }

    function getTotalStakingTime(address user) public view returns (uint256) {
        uint256 totalStakingTime = 0;
        for(uint256 i = 1; i < 1000; i++) { // 1000 is the total supply
            tokenInfo memory st = stakedToken[i];
            if(st.tokenOwner == user) {
                uint256 stakingTime = block.timestamp - st.lastStakedTime;
                totalStakingTime += stakingTime;
            }
        }
        return totalStakingTime;
    }
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"CGOAMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CGOSBT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ERC1155SS","outputs":[{"internalType":"contract IERC1155SS","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ERC721","outputs":[{"internalType":"contract IERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"active","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getTotalStakingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getUserStakedTokens","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"ownerUnstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds_","type":"uint256[]"}],"name":"ownerUnstakeBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"setCGOAMOUNT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setERC1155SS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setERC721contract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds_","type":"uint256[]"}],"name":"stakeBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakedToken","outputs":[{"internalType":"uint256","name":"lastStakedTime","type":"uint256"},{"internalType":"address","name":"tokenOwner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakedTokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"new_","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId_","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds_","type":"uint256[]"}],"name":"unstakeBatch","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600160035534801561001557600080fd5b50600080546001600160a01b03191633179055611206806100376000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806392439fe5116100b8578063de5e3d681161007c578063de5e3d68146102be578063e64a21f3146102d1578063e66d85be146102e4578063f2fde38b14610304578063f96cbbec14610317578063ffea00a61461032a57600080fd5b806392439fe514610218578063982865651461022b578063a694fc3a1461023e578063ae1a01a214610251578063c5e01a5c1461027157600080fd5b8063363cbf6c116100ff578063363cbf6c146101b7578063760a8c2a146101ca5780638425abff146101d25780638da5cb5b146101fd5780638e3694131461021057600080fd5b806302fb0c5e1461013c578063230f436d14610165578063298a60ef1461017a5780632d6fd12d1461018d5780632e17de78146101a4575b600080fd5b60005461015090600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b610178610173366004610fad565b61033d565b005b610178610188366004610f6c565b6105d0565b61019660035481565b60405190815260200161015c565b6101786101b2366004611072565b61061c565b6101966101c5366004610f6c565b6106f6565b61017861077a565b6001546101e5906001600160a01b031681565b6040516001600160a01b03909116815260200161015c565b6000546101e5906001600160a01b031681565b610196604581565b610178610226366004611072565b6107c5565b610178610239366004611072565b610872565b61017861024c366004611072565b6108a1565b61026461025f366004610f6c565b610abb565b60405161015c91906110c8565b6102a161027f366004611072565b600460205260009081526040902080546001909101546001600160a01b031682565b604080519283526001600160a01b0390911660208301520161015c565b6101786102cc366004610f6c565b610baf565b6101786102df366004610fad565b610bfb565b6101966102f2366004610f6c565b60056020526000908152604090205481565b610178610312366004610f6c565b610cd9565b610178610325366004610fad565b610d53565b6002546101e5906001600160a01b031681565b600054600160a01b900460ff166103865760405162461bcd60e51b8152602060048201526008602482015267496e61637469766560c01b60448201526064015b60405180910390fd5b600354600254604051627eeac760e11b8152336004820152604560248201526001600160a01b039091169062fdd58e9060440160206040518083038186803b1580156103d157600080fd5b505afa1580156103e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610409919061108b565b101561044c5760405162461bcd60e51b8152602060048201526012602482015271165bdd48191bc81b9bdd081bdddb8814d09560721b604482015260640161037d565b60005b81518110156105c157600154825133916001600160a01b031690636352211e908590859081106104815761048161118f565b60200260200101516040518263ffffffff1660e01b81526004016104a791815260200190565b60206040518083038186803b1580156104bf57600080fd5b505afa1580156104d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f79190610f90565b6001600160a01b03161461051d5760405162461bcd60e51b815260040161037d9061110c565b42600460008484815181106105345761053461118f565b602002602001015181526020019081526020016000206000018190555033600460008484815181106105685761056861118f565b60209081029190910181015182528181019290925260409081016000908120600190810180546001600160a01b0319166001600160a01b039690961695909517909455338152600590925290208054820190550161044f565b506105cd333083610ec2565b50565b6000546001600160a01b031633146105fa5760405162461bcd60e51b815260040161037d9061110c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000818152600460205260409020600101546001600160a01b031633146106555760405162461bcd60e51b815260040161037d9061110c565b6000818152600460208181526040808420848155600190810180546001600160a01b0319169055338086526005909352938190208054600019019055925492516323b872dd60e01b81526001600160a01b03909316926323b872dd926106c192309290918791016110a4565b600060405180830381600087803b1580156106db57600080fd5b505af11580156106ef573d6000803e3d6000fd5b5050505050565b60008060015b6103e881101561077357600081815260046020908152604091829020825180840190935280548352600101546001600160a01b03908116918301829052861614156107605780516000906107509042611147565b905061075c818561112f565b9350505b508061076b8161115e565b9150506106fc565b5092915050565b6000546001600160a01b031633146107a45760405162461bcd60e51b815260040161037d9061110c565b6000805460ff60a01b198116600160a01b9182900460ff1615909102179055565b6000546001600160a01b031633146107ef5760405162461bcd60e51b815260040161037d9061110c565b6000818152600460208190526040808320928355600192830180546001600160a01b03191681557f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc80546000190190559254925490516323b872dd60e01b81526001600160a01b03938416936323b872dd936106c19330939216918791016110a4565b6000546001600160a01b0316331461089c5760405162461bcd60e51b815260040161037d9061110c565b600355565b600054600160a01b900460ff166108e55760405162461bcd60e51b8152602060048201526008602482015267496e61637469766560c01b604482015260640161037d565b600354600254604051627eeac760e11b8152336004820152604560248201526001600160a01b039091169062fdd58e9060440160206040518083038186803b15801561093057600080fd5b505afa158015610944573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610968919061108b565b10156109ab5760405162461bcd60e51b8152602060048201526012602482015271165bdd48191bc81b9bdd081bdddb8814d09560721b604482015260640161037d565b6001546040516331a9108f60e11b81526004810183905233916001600160a01b031690636352211e9060240160206040518083038186803b1580156109ef57600080fd5b505afa158015610a03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a279190610f90565b6001600160a01b031614610a4d5760405162461bcd60e51b815260040161037d9061110c565b6000818152600460208181526040808420428155600190810180546001600160a01b03191633908117909155808652600590935293819020805485019055925492516323b872dd60e01b81526001600160a01b0393909316926323b872dd926106c1929130918791016110a4565b6001600160a01b0381166000908152600560205260408120546060918167ffffffffffffffff811115610af057610af06111a5565b604051908082528060200260200182016040528015610b19578160200160208202803683370190505b509050600060015b6103e8811015610ba557600081815260046020908152604091829020825180840190935280548352600101546001600160a01b0390811691830182905288161415610b925781848481518110610b7957610b7961118f565b602090810291909101015282610b8e8161115e565b9350505b5080610b9d8161115e565b915050610b21565b5090949350505050565b6000546001600160a01b03163314610bd95760405162461bcd60e51b815260040161037d9061110c565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60005b8151811015610ccd57336001600160a01b031660046000848481518110610c2757610c2761118f565b6020908102919091018101518252810191909152604001600020600101546001600160a01b031614610c6b5760405162461bcd60e51b815260040161037d9061110c565b60046000838381518110610c8157610c8161118f565b60209081029190910181015182528181019290925260409081016000908120818155600190810180546001600160a01b0319169055338252600590935220805460001901905501610bfe565b506105cd303383610ec2565b6000546001600160a01b03163314610d035760405162461bcd60e51b815260040161037d9061110c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314610d7d5760405162461bcd60e51b815260040161037d9061110c565b60005b8151811015610ebe576000828281518110610d9d57610d9d61118f565b602090810291909101810151600081815260049092526040909120600101549091506001600160a01b0316610e075760405162461bcd60e51b815260206004820152601060248201526f151bdad95b881b9bdd081cdd185ad95960821b604482015260640161037d565b600081815260046020818152604080842060018082018054928790556001600160a01b0319831690556001600160a01b039182168087526005909452948290208054600019019055935490516323b872dd60e01b8152919316916323b872dd91610e7791309186918891016110a4565b600060405180830381600087803b158015610e9157600080fd5b505af1158015610ea5573d6000803e3d6000fd5b5050505050508080610eb69061115e565b915050610d80565b5050565b60005b8151811015610f665760015482516001600160a01b03909116906323b872dd9086908690869086908110610efb57610efb61118f565b60200260200101516040518463ffffffff1660e01b8152600401610f21939291906110a4565b600060405180830381600087803b158015610f3b57600080fd5b505af1158015610f4f573d6000803e3d6000fd5b505050508080610f5e9061115e565b915050610ec5565b50505050565b600060208284031215610f7e57600080fd5b8135610f89816111bb565b9392505050565b600060208284031215610fa257600080fd5b8151610f89816111bb565b60006020808385031215610fc057600080fd5b823567ffffffffffffffff80821115610fd857600080fd5b818501915085601f830112610fec57600080fd5b813581811115610ffe57610ffe6111a5565b8060051b604051601f19603f83011681018181108582111715611023576110236111a5565b604052828152858101935084860182860187018a101561104257600080fd5b600095505b83861015611065578035855260019590950194938601938601611047565b5098975050505050505050565b60006020828403121561108457600080fd5b5035919050565b60006020828403121561109d57600080fd5b5051919050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6020808252825182820181905260009190848201906040850190845b81811015611100578351835292840192918401916001016110e4565b50909695505050505050565b6020808252600990820152682737ba1027bbb732b960b91b604082015260600190565b6000821982111561114257611142611179565b500190565b60008282101561115957611159611179565b500390565b600060001982141561117257611172611179565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146105cd57600080fdfea2646970667358221220c9cf77b32923169e0f6823f7e73fd178a010ab26d8c09f93aa946c96932f8c9564736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101375760003560e01c806392439fe5116100b8578063de5e3d681161007c578063de5e3d68146102be578063e64a21f3146102d1578063e66d85be146102e4578063f2fde38b14610304578063f96cbbec14610317578063ffea00a61461032a57600080fd5b806392439fe514610218578063982865651461022b578063a694fc3a1461023e578063ae1a01a214610251578063c5e01a5c1461027157600080fd5b8063363cbf6c116100ff578063363cbf6c146101b7578063760a8c2a146101ca5780638425abff146101d25780638da5cb5b146101fd5780638e3694131461021057600080fd5b806302fb0c5e1461013c578063230f436d14610165578063298a60ef1461017a5780632d6fd12d1461018d5780632e17de78146101a4575b600080fd5b60005461015090600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b610178610173366004610fad565b61033d565b005b610178610188366004610f6c565b6105d0565b61019660035481565b60405190815260200161015c565b6101786101b2366004611072565b61061c565b6101966101c5366004610f6c565b6106f6565b61017861077a565b6001546101e5906001600160a01b031681565b6040516001600160a01b03909116815260200161015c565b6000546101e5906001600160a01b031681565b610196604581565b610178610226366004611072565b6107c5565b610178610239366004611072565b610872565b61017861024c366004611072565b6108a1565b61026461025f366004610f6c565b610abb565b60405161015c91906110c8565b6102a161027f366004611072565b600460205260009081526040902080546001909101546001600160a01b031682565b604080519283526001600160a01b0390911660208301520161015c565b6101786102cc366004610f6c565b610baf565b6101786102df366004610fad565b610bfb565b6101966102f2366004610f6c565b60056020526000908152604090205481565b610178610312366004610f6c565b610cd9565b610178610325366004610fad565b610d53565b6002546101e5906001600160a01b031681565b600054600160a01b900460ff166103865760405162461bcd60e51b8152602060048201526008602482015267496e61637469766560c01b60448201526064015b60405180910390fd5b600354600254604051627eeac760e11b8152336004820152604560248201526001600160a01b039091169062fdd58e9060440160206040518083038186803b1580156103d157600080fd5b505afa1580156103e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610409919061108b565b101561044c5760405162461bcd60e51b8152602060048201526012602482015271165bdd48191bc81b9bdd081bdddb8814d09560721b604482015260640161037d565b60005b81518110156105c157600154825133916001600160a01b031690636352211e908590859081106104815761048161118f565b60200260200101516040518263ffffffff1660e01b81526004016104a791815260200190565b60206040518083038186803b1580156104bf57600080fd5b505afa1580156104d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f79190610f90565b6001600160a01b03161461051d5760405162461bcd60e51b815260040161037d9061110c565b42600460008484815181106105345761053461118f565b602002602001015181526020019081526020016000206000018190555033600460008484815181106105685761056861118f565b60209081029190910181015182528181019290925260409081016000908120600190810180546001600160a01b0319166001600160a01b039690961695909517909455338152600590925290208054820190550161044f565b506105cd333083610ec2565b50565b6000546001600160a01b031633146105fa5760405162461bcd60e51b815260040161037d9061110c565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000818152600460205260409020600101546001600160a01b031633146106555760405162461bcd60e51b815260040161037d9061110c565b6000818152600460208181526040808420848155600190810180546001600160a01b0319169055338086526005909352938190208054600019019055925492516323b872dd60e01b81526001600160a01b03909316926323b872dd926106c192309290918791016110a4565b600060405180830381600087803b1580156106db57600080fd5b505af11580156106ef573d6000803e3d6000fd5b5050505050565b60008060015b6103e881101561077357600081815260046020908152604091829020825180840190935280548352600101546001600160a01b03908116918301829052861614156107605780516000906107509042611147565b905061075c818561112f565b9350505b508061076b8161115e565b9150506106fc565b5092915050565b6000546001600160a01b031633146107a45760405162461bcd60e51b815260040161037d9061110c565b6000805460ff60a01b198116600160a01b9182900460ff1615909102179055565b6000546001600160a01b031633146107ef5760405162461bcd60e51b815260040161037d9061110c565b6000818152600460208190526040808320928355600192830180546001600160a01b03191681557f05b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc80546000190190559254925490516323b872dd60e01b81526001600160a01b03938416936323b872dd936106c19330939216918791016110a4565b6000546001600160a01b0316331461089c5760405162461bcd60e51b815260040161037d9061110c565b600355565b600054600160a01b900460ff166108e55760405162461bcd60e51b8152602060048201526008602482015267496e61637469766560c01b604482015260640161037d565b600354600254604051627eeac760e11b8152336004820152604560248201526001600160a01b039091169062fdd58e9060440160206040518083038186803b15801561093057600080fd5b505afa158015610944573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610968919061108b565b10156109ab5760405162461bcd60e51b8152602060048201526012602482015271165bdd48191bc81b9bdd081bdddb8814d09560721b604482015260640161037d565b6001546040516331a9108f60e11b81526004810183905233916001600160a01b031690636352211e9060240160206040518083038186803b1580156109ef57600080fd5b505afa158015610a03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a279190610f90565b6001600160a01b031614610a4d5760405162461bcd60e51b815260040161037d9061110c565b6000818152600460208181526040808420428155600190810180546001600160a01b03191633908117909155808652600590935293819020805485019055925492516323b872dd60e01b81526001600160a01b0393909316926323b872dd926106c1929130918791016110a4565b6001600160a01b0381166000908152600560205260408120546060918167ffffffffffffffff811115610af057610af06111a5565b604051908082528060200260200182016040528015610b19578160200160208202803683370190505b509050600060015b6103e8811015610ba557600081815260046020908152604091829020825180840190935280548352600101546001600160a01b0390811691830182905288161415610b925781848481518110610b7957610b7961118f565b602090810291909101015282610b8e8161115e565b9350505b5080610b9d8161115e565b915050610b21565b5090949350505050565b6000546001600160a01b03163314610bd95760405162461bcd60e51b815260040161037d9061110c565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60005b8151811015610ccd57336001600160a01b031660046000848481518110610c2757610c2761118f565b6020908102919091018101518252810191909152604001600020600101546001600160a01b031614610c6b5760405162461bcd60e51b815260040161037d9061110c565b60046000838381518110610c8157610c8161118f565b60209081029190910181015182528181019290925260409081016000908120818155600190810180546001600160a01b0319169055338252600590935220805460001901905501610bfe565b506105cd303383610ec2565b6000546001600160a01b03163314610d035760405162461bcd60e51b815260040161037d9061110c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314610d7d5760405162461bcd60e51b815260040161037d9061110c565b60005b8151811015610ebe576000828281518110610d9d57610d9d61118f565b602090810291909101810151600081815260049092526040909120600101549091506001600160a01b0316610e075760405162461bcd60e51b815260206004820152601060248201526f151bdad95b881b9bdd081cdd185ad95960821b604482015260640161037d565b600081815260046020818152604080842060018082018054928790556001600160a01b0319831690556001600160a01b039182168087526005909452948290208054600019019055935490516323b872dd60e01b8152919316916323b872dd91610e7791309186918891016110a4565b600060405180830381600087803b158015610e9157600080fd5b505af1158015610ea5573d6000803e3d6000fd5b5050505050508080610eb69061115e565b915050610d80565b5050565b60005b8151811015610f665760015482516001600160a01b03909116906323b872dd9086908690869086908110610efb57610efb61118f565b60200260200101516040518463ffffffff1660e01b8152600401610f21939291906110a4565b600060405180830381600087803b158015610f3b57600080fd5b505af1158015610f4f573d6000803e3d6000fd5b505050508080610f5e9061115e565b915050610ec5565b50505050565b600060208284031215610f7e57600080fd5b8135610f89816111bb565b9392505050565b600060208284031215610fa257600080fd5b8151610f89816111bb565b60006020808385031215610fc057600080fd5b823567ffffffffffffffff80821115610fd857600080fd5b818501915085601f830112610fec57600080fd5b813581811115610ffe57610ffe6111a5565b8060051b604051601f19603f83011681018181108582111715611023576110236111a5565b604052828152858101935084860182860187018a101561104257600080fd5b600095505b83861015611065578035855260019590950194938601938601611047565b5098975050505050505050565b60006020828403121561108457600080fd5b5035919050565b60006020828403121561109d57600080fd5b5051919050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6020808252825182820181905260009190848201906040850190845b81811015611100578351835292840192918401916001016110e4565b50909695505050505050565b6020808252600990820152682737ba1027bbb732b960b91b604082015260600190565b6000821982111561114257611142611179565b500190565b60008282101561115957611159611179565b500390565b600060001982141561117257611172611179565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146105cd57600080fdfea2646970667358221220c9cf77b32923169e0f6823f7e73fd178a010ab26d8c09f93aa946c96932f8c9564736f6c63430008070033

Deployed Bytecode Sourcemap

928:4805:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;971:18;;;;;-1:-1:-1;;;971:18:0;;;;;;;;;3696:14:1;;3689:22;3671:41;;3659:2;3644:18;971::0;;;;;;;;2541:613;;;;;;:::i;:::-;;:::i;:::-;;1537:110;;;;;;:::i;:::-;;:::i;1062:28::-;;;;;;;;;5681:25:1;;;5669:2;5654:18;1062:28:0;5535:177:1;3162:311:0;;;;;;:::i;:::-;;:::i;5259:471::-;;;;;;:::i;:::-;;:::i;1352:73::-;;;:::i;998:21::-;;;;;-1:-1:-1;;;;;998:21:0;;;;;;-1:-1:-1;;;;;2191:32:1;;;2173:51;;2161:2;2146:18;998:21:0;2027:203:1;251:20:0;;;;;-1:-1:-1;;;;;251:20:0;;;1097:35;;1130:2;1097:35;;3880:282;;;;;;:::i;:::-;;:::i;1433:96::-;;;;;;:::i;:::-;;:::i;2009:524::-;;;;;;:::i;:::-;;:::i;4709:542::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1236:48::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1236:48:0;;;;;;;5891:25:1;;;-1:-1:-1;;;;;5952:32:1;;;5947:2;5932:18;;5925:60;5864:18;1236:48:0;5717:274:1;1655:109:0;;;;;;:::i;:::-;;:::i;3481:391::-;;;;;;:::i;:::-;;:::i;1291:52::-;;;;;;:::i;:::-;;;;;;;;;;;;;;394:138;;;;;;:::i;:::-;;:::i;4170:531::-;;;;;;:::i;:::-;;:::i;1026:27::-;;;;;-1:-1:-1;;;;;1026:27:0;;;2541:613;2617:6;;-1:-1:-1;;;2617:6:0;;;;2609:27;;;;-1:-1:-1;;;2609:27:0;;4709:2:1;2609:27:0;;;4691:21:1;4748:1;4728:18;;;4721:29;-1:-1:-1;;;4766:18:1;;;4759:38;4814:18;;2609:27:0;;;;;;;;;2698:9;;2655;;:39;;-1:-1:-1;;;2655:39:0;;2675:10;2655:39;;;2789:51:1;1130:2:0;2856:18:1;;;2849:34;-1:-1:-1;;;;;2655:9:0;;;;:19;;2762:18:1;;2655:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52;;2647:83;;;;-1:-1:-1;;;2647:83:0;;5045:2:1;2647:83:0;;;5027:21:1;5084:2;5064:18;;;5057:30;-1:-1:-1;;;5103:18:1;;;5096:48;5161:18;;2647:83:0;4843:342:1;2647:83:0;2745:9;2741:340;2760:9;:16;2756:1;:20;2741:340;;;2802:6;;2817:12;;2834:10;;-1:-1:-1;;;;;2802:6:0;;:14;;2817:9;;2827:1;;2817:12;;;;;;:::i;:::-;;;;;;;2802:28;;;;;;;;;;;;;5681:25:1;;5669:2;5654:18;;5535:177;2802:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2802:42:0;;2794:64;;;;-1:-1:-1;;;2794:64:0;;;;;;;:::i;:::-;2924:15;2873:11;:25;2885:9;2895:1;2885:12;;;;;;;;:::i;:::-;;;;;;;2873:25;;;;;;;;;;;:40;;:67;;;;2994:10;2955:11;:25;2967:9;2977:1;2967:12;;;;;;;;:::i;:::-;;;;;;;;;;;;2955:25;;;;;;;;;;;;;-1:-1:-1;2955:25:0;;;:36;;;;:49;;-1:-1:-1;;;;;;2955:49:0;-1:-1:-1;;;;;2955:49:0;;;;;;;;;;;3051:10;3033:29;;:17;:29;;;;;3031:31;;;;;;3064:3;2741:340;;;;3091:55;3109:10;3129:4;3136:9;3091:17;:55::i;:::-;2541:613;:::o;1537:110::-;350:5;;-1:-1:-1;;;;;350:5:0;359:10;350:19;342:41;;;;-1:-1:-1;;;342:41:0;;;;;;;:::i;:::-;1607:9:::1;:32:::0;;-1:-1:-1;;;;;;1607:32:0::1;-1:-1:-1::0;;;;;1607:32:0;;;::::1;::::0;;;::::1;::::0;;1537:110::o;3162:311::-;3225:30;;;;:11;:30;;;;;:41;;;-1:-1:-1;;;;;3225:41:0;3270:10;3225:55;3217:77;;;;-1:-1:-1;;;3217:77:0;;;;;;;:::i;:::-;3312:30;;;;:11;:30;;;;;;;;3305:37;;;;;;;;;-1:-1:-1;;;;;;3305:37:0;;;3385:10;3367:29;;;:17;:29;;;;;;;3365:31;;-1:-1:-1;;3365:31:0;;;3409:6;;:56;;-1:-1:-1;;;3409:56:0;;-1:-1:-1;;;;;3409:6:0;;;;:19;;:56;;3437:4;;3385:10;;3312:30;;3409:56;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3162:311;:::o;5259:471::-;5323:7;;5398:1;5382:307;5405:4;5401:1;:8;5382:307;;;5459:19;5481:14;;;:11;:14;;;;;;;;;5459:36;;;;;;;;;;;;;;;-1:-1:-1;;;;;5459:36:0;;;;;;;;;5513:21;;;5510:168;;;5595:17;;5555:19;;5577:35;;:15;:35;:::i;:::-;5555:57;-1:-1:-1;5631:31:0;5555:57;5631:31;;:::i;:::-;;;5536:142;5510:168;-1:-1:-1;5411:3:0;;;;:::i;:::-;;;;5382:307;;;-1:-1:-1;5706:16:0;5259:471;-1:-1:-1;;5259:471:0:o;1352:73::-;350:5;;-1:-1:-1;;;;;350:5:0;359:10;350:19;342:41;;;;-1:-1:-1;;;342:41:0;;;;;;;:::i;:::-;1411:6:::1;::::0;;-1:-1:-1;;;;1401:16:0;::::1;-1:-1:-1::0;;;1411:6:0;;;::::1;;;1410:7;1401:16:::0;;::::1;;::::0;;1352:73::o;3880:282::-;350:5;;-1:-1:-1;;;;;350:5:0;359:10;350:19;342:41;;;;-1:-1:-1;;;342:41:0;;;;;;;:::i;:::-;3957:30:::1;::::0;;;:11:::1;:30;::::0;;;;;;;3950:37;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;;3950:37:0::1;::::0;;4012:51;4010:53;;-1:-1:-1;;4010:53:0;;;4076:6;;4111:32;;4076:78;;-1:-1:-1;;;4076:78:0;;-1:-1:-1;;;;;4076:6:0;;::::1;::::0;:19:::1;::::0;:78:::1;::::0;4104:4:::1;::::0;4111:32;::::1;::::0;3957:30;;4076:78:::1;;:::i;1433:96::-:0;350:5;;-1:-1:-1;;;;;350:5:0;359:10;350:19;342:41;;;;-1:-1:-1;;;342:41:0;;;;;;;:::i;:::-;1502:9:::1;:19:::0;1433:96::o;2009:524::-;2070:6;;-1:-1:-1;;;2070:6:0;;;;2062:27;;;;-1:-1:-1;;;2062:27:0;;4709:2:1;2062:27:0;;;4691:21:1;4748:1;4728:18;;;4721:29;-1:-1:-1;;;4766:18:1;;;4759:38;4814:18;;2062:27:0;4507:331:1;2062:27:0;2151:9;;2108;;:39;;-1:-1:-1;;;2108:39:0;;2128:10;2108:39;;;2789:51:1;1130:2:0;2856:18:1;;;2849:34;-1:-1:-1;;;;;2108:9:0;;;;:19;;2762:18:1;;2108:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:52;;2100:83;;;;-1:-1:-1;;;2100:83:0;;5045:2:1;2100:83:0;;;5027:21:1;5084:2;5064:18;;;5057:30;-1:-1:-1;;;5103:18:1;;;5096:48;5161:18;;2100:83:0;4843:342:1;2100:83:0;2202:6;;:24;;-1:-1:-1;;;2202:24:0;;;;;5681:25:1;;;2230:10:0;;-1:-1:-1;;;;;2202:6:0;;:14;;5654:18:1;;2202:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2202:38:0;;2194:60;;;;-1:-1:-1;;;2194:60:0;;;;;;;:::i;:::-;2265:30;;;;:11;:30;;;;;;;;2321:15;2265:72;;2348:41;;;;:54;;-1:-1:-1;;;;;;2348:54:0;2392:10;2348:54;;;;;;2427:29;;;:17;:29;;;;;;;2425:31;;;;;;2469:6;;:56;;-1:-1:-1;;;2469:56:0;;-1:-1:-1;;;;;2469:6:0;;;;;:19;;:56;;2392:10;2509:4;;2285:8;;2469:56;;:::i;4709:542::-;-1:-1:-1;;;;;4825:23:0;;4802:20;4825:23;;;:17;:23;;;;;;4773:16;;4825:23;4891:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4891:27:0;-1:-1:-1;4859:59:0;-1:-1:-1;4929:15:0;4976:1;4959:255;4983:4;4979:1;:8;4959:255;;;5037:19;5059:14;;;:11;:14;;;;;;;;;5037:36;;;;;;;;;;;;;;;-1:-1:-1;;;;;5037:36:0;;;;;;;;;5092:21;;;5088:115;;;5158:1;5134:12;5147:7;5134:21;;;;;;;;:::i;:::-;;;;;;;;;;:25;5178:9;;;;:::i;:::-;;;;5088:115;-1:-1:-1;4989:3:0;;;;:::i;:::-;;;;4959:255;;;-1:-1:-1;5231:12:0;;4709:542;-1:-1:-1;;;;4709:542:0:o;1655:109::-;350:5;;-1:-1:-1;;;;;350:5:0;359:10;350:19;342:41;;;;-1:-1:-1;;;342:41:0;;;;;;;:::i;:::-;1730:6:::1;:26:::0;;-1:-1:-1;;;;;;1730:26:0::1;-1:-1:-1::0;;;;;1730:26:0;;;::::1;::::0;;;::::1;::::0;;1655:109::o;3481:391::-;3555:9;3551:248;3570:9;:16;3566:1;:20;3551:248;;;3652:10;-1:-1:-1;;;;;3612:50:0;:11;:25;3624:9;3634:1;3624:12;;;;;;;;:::i;:::-;;;;;;;;;;;;3612:25;;;;;;;;;;-1:-1:-1;3612:25:0;:36;;;-1:-1:-1;;;;;3612:36:0;:50;3604:72;;;;-1:-1:-1;;;3604:72:0;;;;;;;:::i;:::-;3698:11;:25;3710:9;3720:1;3710:12;;;;;;;;:::i;:::-;;;;;;;;;;;;3698:25;;;;;;;;;;;;;-1:-1:-1;3698:25:0;;;3691:32;;;;;;;;;-1:-1:-1;;;;;;3691:32:0;;;3774:10;3756:29;;:17;:29;;;;3754:31;;-1:-1:-1;;3754:31:0;;;3749:3;3551:248;;;;3809:55;3835:4;3842:10;3854:9;3809:17;:55::i;394:138::-;350:5;;-1:-1:-1;;;;;350:5:0;359:10;350:19;342:41;;;;-1:-1:-1;;;342:41:0;;;;;;;:::i;:::-;456:12:::1;471:5:::0;;-1:-1:-1;;;;;478:12:0;;::::1;-1:-1:-1::0;;;;;;478:12:0;::::1;::::0;::::1;::::0;;497:32:::1;::::0;471:5;;;::::1;::::0;;;497:32:::1;::::0;456:12;497:32:::1;454:78;394:138:::0;:::o;4170:531::-;350:5;;-1:-1:-1;;;;;350:5:0;359:10;350:19;342:41;;;;-1:-1:-1;;;342:41:0;;;;;;;:::i;:::-;4260:9:::1;4255:439;4279:9;:16;4275:1;:20;4255:439;;;4317:16;4336:9;4346:1;4336:12;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;4415:1:::1;4371:21:::0;;;:11:::1;:21:::0;;;;;;;:32:::1;;::::0;4336:12;;-1:-1:-1;;;;;;4371:32:0::1;4363:75;;;::::0;-1:-1:-1;;;4363:75:0;;5392:2:1;4363:75:0::1;::::0;::::1;5374:21:1::0;5431:2;5411:18;;;5404:30;-1:-1:-1;;;5450:18:1;;;5443:46;5506:18;;4363:75:0::1;5190:340:1::0;4363:75:0::1;4453:18;4474:21:::0;;;:11:::1;:21;::::0;;;;;;;:32:::1;::::0;;::::1;::::0;;4523:28;;;;-1:-1:-1;;;;;;4523:28:0;::::1;::::0;;-1:-1:-1;;;;;4474:32:0;;::::1;4580:29:::0;;;:17:::1;:29:::0;;;;;;;4578:31;;-1:-1:-1;;4578:31:0;;;4626:6;;:56;;-1:-1:-1;;;4626:56:0;;4474:32;;4626:6:::1;::::0;:19:::1;::::0;:56:::1;::::0;4654:4:::1;::::0;4474:32;;4486:8;;4626:56:::1;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4302:392;;4297:3;;;;;:::i;:::-;;;;4255:439;;;;4170:531:::0;:::o;1772:229::-;1880:9;1875:119;1899:9;:16;1895:1;:20;1875:119;;;1937:6;;1969:12;;-1:-1:-1;;;;;1937:6:0;;;;:19;;1957:5;;1964:3;;1969:9;;1979:1;;1969:12;;;;;;:::i;:::-;;;;;;;1937:45;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1917:3;;;;;:::i;:::-;;;;1875:119;;;;1772:229;;;:::o;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;200:31;225:5;200:31;:::i;:::-;250:5;14:247;-1:-1:-1;;;14:247:1:o;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:52;;;405:1;402;395:12;357:52;437:9;431:16;456:31;481:5;456:31;:::i;522:1126::-;606:6;637:2;680;668:9;659:7;655:23;651:32;648:52;;;696:1;693;686:12;648:52;736:9;723:23;765:18;806:2;798:6;795:14;792:34;;;822:1;819;812:12;792:34;860:6;849:9;845:22;835:32;;905:7;898:4;894:2;890:13;886:27;876:55;;927:1;924;917:12;876:55;963:2;950:16;985:2;981;978:10;975:36;;;991:18;;:::i;:::-;1037:2;1034:1;1030:10;1069:2;1063:9;1132:2;1128:7;1123:2;1119;1115:11;1111:25;1103:6;1099:38;1187:6;1175:10;1172:22;1167:2;1155:10;1152:18;1149:46;1146:72;;;1198:18;;:::i;:::-;1234:2;1227:22;1284:18;;;1318:15;;;;-1:-1:-1;1353:11:1;;;1383;;;1379:20;;1376:33;-1:-1:-1;1373:53:1;;;1422:1;1419;1412:12;1373:53;1444:1;1435:10;;1454:163;1468:2;1465:1;1462:9;1454:163;;;1525:17;;1513:30;;1486:1;1479:9;;;;;1563:12;;;;1595;;1454:163;;;-1:-1:-1;1636:6:1;522:1126;-1:-1:-1;;;;;;;;522:1126:1:o;1653:180::-;1712:6;1765:2;1753:9;1744:7;1740:23;1736:32;1733:52;;;1781:1;1778;1771:12;1733:52;-1:-1:-1;1804:23:1;;1653:180;-1:-1:-1;1653:180:1:o;1838:184::-;1908:6;1961:2;1949:9;1940:7;1936:23;1932:32;1929:52;;;1977:1;1974;1967:12;1929:52;-1:-1:-1;2000:16:1;;1838:184;-1:-1:-1;1838:184:1:o;2235:375::-;-1:-1:-1;;;;;2493:15:1;;;2475:34;;2545:15;;;;2540:2;2525:18;;2518:43;2592:2;2577:18;;2570:34;;;;2425:2;2410:18;;2235:375::o;2894:632::-;3065:2;3117:21;;;3187:13;;3090:18;;;3209:22;;;3036:4;;3065:2;3288:15;;;;3262:2;3247:18;;;3036:4;3331:169;3345:6;3342:1;3339:13;3331:169;;;3406:13;;3394:26;;3475:15;;;;3440:12;;;;3367:1;3360:9;3331:169;;;-1:-1:-1;3517:3:1;;2894:632;-1:-1:-1;;;;;;2894:632:1:o;4170:332::-;4372:2;4354:21;;;4411:1;4391:18;;;4384:29;-1:-1:-1;;;4444:2:1;4429:18;;4422:39;4493:2;4478:18;;4170:332::o;5996:128::-;6036:3;6067:1;6063:6;6060:1;6057:13;6054:39;;;6073:18;;:::i;:::-;-1:-1:-1;6109:9:1;;5996:128::o;6129:125::-;6169:4;6197:1;6194;6191:8;6188:34;;;6202:18;;:::i;:::-;-1:-1:-1;6239:9:1;;6129:125::o;6259:135::-;6298:3;-1:-1:-1;;6319:17:1;;6316:43;;;6339:18;;:::i;:::-;-1:-1:-1;6386:1:1;6375:13;;6259:135::o;6399:127::-;6460:10;6455:3;6451:20;6448:1;6441:31;6491:4;6488:1;6481:15;6515:4;6512:1;6505:15;6531:127;6592:10;6587:3;6583:20;6580:1;6573:31;6623:4;6620:1;6613:15;6647:4;6644:1;6637:15;6663:127;6724:10;6719:3;6715:20;6712:1;6705:31;6755:4;6752:1;6745:15;6779:4;6776:1;6769:15;6795:131;-1:-1:-1;;;;;6870:31:1;;6860:42;;6850:70;;6916:1;6913;6906:12

Swarm Source

ipfs://c9cf77b32923169e0f6823f7e73fd178a010ab26d8c09f93aa946c96932f8c95

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.