ETH Price: $3,242.14 (+0.17%)

Contract

0xBd2fC50d561322b49C31b3C6d66aaE953a1E2120
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim135161472021-10-30 3:31:071168 days ago1635564667IN
0xBd2fC50d...53a1E2120
0 ETH0.01261106142.31460341
Claim134565082021-10-20 19:37:361178 days ago1634758656IN
0xBd2fC50d...53a1E2120
0 ETH0.00915245103.35913102
Claim133983632021-10-11 16:27:081187 days ago1633969628IN
0xBd2fC50d...53a1E2120
0 ETH0.01108673125.12680656
Claim133838712021-10-09 10:01:211189 days ago1633773681IN
0xBd2fC50d...53a1E2120
0 ETH0.0054708961.74546423
Claim133623982021-10-06 1:15:311193 days ago1633482931IN
0xBd2fC50d...53a1E2120
0 ETH0.01120928126.61567691
Claim133606612021-10-05 18:25:221193 days ago1633458322IN
0xBd2fC50d...53a1E2120
0 ETH0.01100026124.13964315
Claim133603422021-10-05 17:18:391193 days ago1633454319IN
0xBd2fC50d...53a1E2120
0 ETH0.01293927146.12064405
Claim133536432021-10-04 16:26:361194 days ago1633364796IN
0xBd2fC50d...53a1E2120
0 ETH0.03566394402.60936039
Claim133423592021-10-02 21:39:231196 days ago1633210763IN
0xBd2fC50d...53a1E2120
0 ETH0.0016758249.06972227
Claim133139202021-09-28 11:15:261200 days ago1632827726IN
0xBd2fC50d...53a1E2120
0 ETH0.004430250
Claim133031892021-09-26 19:01:061202 days ago1632682866IN
0xBd2fC50d...53a1E2120
0 ETH0.0042572348.07064966
Claim132979622021-09-25 23:27:241203 days ago1632612444IN
0xBd2fC50d...53a1E2120
0 ETH0.0025719136
Claim132959212021-09-25 15:57:461203 days ago1632585466IN
0xBd2fC50d...53a1E2120
0 ETH0.0029810533.65158901
Claim132881872021-09-24 11:19:401204 days ago1632482380IN
0xBd2fC50d...53a1E2120
0 ETH0.0049339569.01792956
Claim132847912021-09-23 22:54:281205 days ago1632437668IN
0xBd2fC50d...53a1E2120
0 ETH0.0059035466.65247081
Claim132727492021-09-22 1:52:591207 days ago1632275579IN
0xBd2fC50d...53a1E2120
0 ETH0.0054493376.20807391
Claim132682242021-09-21 9:06:361207 days ago1632215196IN
0xBd2fC50d...53a1E2120
0 ETH0.0036628651.2259947
Claim132681672021-09-21 8:55:381207 days ago1632214538IN
0xBd2fC50d...53a1E2120
0 ETH0.0033390446.71038101
Claim132680622021-09-21 8:35:391207 days ago1632213339IN
0xBd2fC50d...53a1E2120
0 ETH0.0028721540.18344911
Claim132680382021-09-21 8:30:341207 days ago1632213034IN
0xBd2fC50d...53a1E2120
0 ETH0.0032446536.6412558
Claim132679942021-09-21 8:22:371207 days ago1632212557IN
0xBd2fC50d...53a1E2120
0 ETH0.0031160843.57558308
Claim132592662021-09-19 23:45:291209 days ago1632095129IN
0xBd2fC50d...53a1E2120
0 ETH0.0045388251.26410742
Claim132578872021-09-19 18:53:231209 days ago1632077603IN
0xBd2fC50d...53a1E2120
0 ETH0.0039189144.23856079
Claim132543022021-09-19 5:30:351209 days ago1632029435IN
0xBd2fC50d...53a1E2120
0 ETH0.0035674940.28244857
Claim132535772021-09-19 2:52:161209 days ago1632019936IN
0xBd2fC50d...53a1E2120
0 ETH0.0036187840.84778695
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

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

Contract Name:
MerkleDistributor

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2021-09-10
*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;

interface Token {
    function transfer(address recipient, uint256 amount) external returns (bool);
}

// MerkleDistributor for ongoing EPS airdrop to veCRV holders
// Based on the EMN refund contract by banteg - https://github.com/banteg/your-eminence
contract MerkleDistributor {

    bytes32[] public merkleRoots;
    bytes32 public pendingMerkleRoot;
    uint256 public lastRoot;

    // admin address which can propose adding a new merkle root
    address public proposalAuthority;
    // admin address which approves or rejects a proposed merkle root
    address public reviewAuthority;

    event Claimed(
        uint256 merkleIndex,
        uint256 index,
        address account,
        uint256 amount
    );

    // This is a packed array of booleans.
    mapping(uint256 => mapping(uint256 => uint256)) private claimedBitMap;
    Token public tokenContract;

    constructor(address _authority, Token _tokenContract) {
        proposalAuthority = _authority;
        reviewAuthority = _authority;
        tokenContract = _tokenContract;
    }

    function setProposalAuthority(address _account) public {
        require(msg.sender == proposalAuthority);
        proposalAuthority = _account;
    }

    function setReviewAuthority(address _account) public {
        require(msg.sender == reviewAuthority);
        reviewAuthority = _account;
    }

    // Each week, the proposal authority calls to submit the merkle root for a new airdrop.
    function proposewMerkleRoot(bytes32 _merkleRoot) public {
        require(msg.sender == proposalAuthority);
        require(pendingMerkleRoot == 0x00);
        require(merkleRoots.length < 52);
        // require(block.timestamp > lastRoot + 604800);
        pendingMerkleRoot = _merkleRoot;
    }

    // After validating the correctness of the pending merkle root, the reviewing authority
    // calls to confirm it and the distribution may begin.
    function reviewPendingMerkleRoot(bool _approved) public {
        require(msg.sender == reviewAuthority);
        require(pendingMerkleRoot != 0x00);
        if (_approved) {
            merkleRoots.push(pendingMerkleRoot);
            lastRoot = block.timestamp / 604800 * 604800;
        }
        delete pendingMerkleRoot;
    }

    function isClaimed(uint256 merkleIndex, uint256 index) public view returns (bool) {
        uint256 claimedWordIndex = index / 256;
        uint256 claimedBitIndex = index % 256;
        uint256 claimedWord = claimedBitMap[merkleIndex][claimedWordIndex];
        uint256 mask = (1 << claimedBitIndex);
        return claimedWord & mask == mask;
    }

    function _setClaimed(uint256 merkleIndex, uint256 index) private {
        uint256 claimedWordIndex = index / 256;
        uint256 claimedBitIndex = index % 256;
        claimedBitMap[merkleIndex][claimedWordIndex] = claimedBitMap[merkleIndex][claimedWordIndex] | (1 << claimedBitIndex);
    }

    function claim(uint256 merkleIndex, uint256 index, uint256 amount, bytes32[] calldata merkleProof) external {
        require(merkleIndex < merkleRoots.length, "MerkleDistributor: Invalid merkleIndex");
        require(!isClaimed(merkleIndex, index), 'MerkleDistributor: Drop already claimed.');

        // Verify the merkle proof.
        bytes32 node = keccak256(abi.encodePacked(index, msg.sender, amount));
        require(verify(merkleProof, merkleRoots[merkleIndex], node), 'MerkleDistributor: Invalid proof.');

        // Mark it claimed and send the token.
        _setClaimed(merkleIndex, index);
        tokenContract.transfer(msg.sender, amount  * (10**18));

        emit Claimed(merkleIndex, index, msg.sender, amount);
    }

    function verify(bytes32[] calldata proof, bytes32 root, bytes32 leaf) internal pure returns (bool) {
        bytes32 computedHash = leaf;

        for (uint256 i = 0; i < proof.length; i++) {
            bytes32 proofElement = proof[i];

            if (computedHash <= proofElement) {
                // Hash(current computed hash + current element of the proof)
                computedHash = keccak256(abi.encodePacked(computedHash, proofElement));
            } else {
                // Hash(current element of the proof + current computed hash)
                computedHash = keccak256(abi.encodePacked(proofElement, computedHash));
            }
        }

        // Check if the computed hash (root) is equal to the provided root
        return computedHash == root;
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_authority","type":"address"},{"internalType":"contract Token","name":"_tokenContract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"merkleIndex","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claimed","type":"event"},{"inputs":[{"internalType":"uint256","name":"merkleIndex","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"merkleIndex","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"isClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastRoot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"merkleRoots","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingMerkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalAuthority","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_merkleRoot","type":"bytes32"}],"name":"proposewMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reviewAuthority","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_approved","type":"bool"}],"name":"reviewPendingMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"setProposalAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"setReviewAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenContract","outputs":[{"internalType":"contract Token","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100b45760003560e01c8063a1622bb011610071578063a1622bb01461017d578063a795e7d314610199578063b58166f2146101b5578063b74a29ce146101d3578063ea25e176146101ef578063f364c90c1461020b576100b4565b806310531aa2146100b957806355a373d6146100d757806371c5ecb1146100f557806371fad23e14610125578063891dfef3146101415780639637f4751461015f575b600080fd5b6100c161023b565b6040516100ce9190610d29565b60405180910390f35b6100df610261565b6040516100ec9190610da3565b60405180910390f35b61010f600480360381019061010a9190610ae2565b610287565b60405161011c9190610d88565b60405180910390f35b61013f600480360381019061013a9190610a3e565b6102ab565b005b610149610349565b6040516101569190610d29565b60405180910390f35b61016761036f565b6040516101749190610d88565b60405180910390f35b61019760048036038101906101929190610a67565b610375565b005b6101b360048036038101906101ae9190610ab9565b61043c565b005b6101bd6104c3565b6040516101ca9190610e1e565b60405180910390f35b6101ed60048036038101906101e89190610a3e565b6104c9565b005b61020960048036038101906102049190610b47565b610567565b005b61022560048036038101906102209190610b0b565b6107c8565b6040516102329190610d6d565b60405180910390f35b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000818154811061029757600080fd5b906000526020600020016000915090505481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461030557600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103cf57600080fd5b6000801b60015414156103e157600080fd5b8015610433576000600154908060018154018082558091505060019003906000526020600020016000909190919091505562093a8080426104229190610e8f565b61042c9190610ec0565b6002819055505b60016000905550565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461049657600080fd5b6000801b600154146104a757600080fd5b6034600080549050106104b957600080fd5b8060018190555050565b60025481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461052357600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054905085106105ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105a590610dfe565b60405180910390fd5b6105b885856107c8565b156105f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ef90610dbe565b60405180910390fd5b600084338560405160200161060f93929190610cec565b604051602081830303815290604052805190602001209050610677838360008981548110610666577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020015484610830565b6106b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ad90610dde565b60405180910390fd5b6106c0868661090e565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33670de0b6b3a7640000876107139190610ec0565b6040518363ffffffff1660e01b8152600401610730929190610d44565b602060405180830381600087803b15801561074a57600080fd5b505af115801561075e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107829190610a90565b507fb94bf7f9302edf52a596286915a69b4b0685574cffdedd0712e3c62f2550f0ba868633876040516107b89493929190610e39565b60405180910390a1505050505050565b600080610100836107d99190610e8f565b90506000610100846107eb9190611011565b905060006005600087815260200190815260200160002060008481526020019081526020016000205490506000826001901b9050808183161494505050505092915050565b60008082905060005b868690508110156108ff57600087878381811061087f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002013590508083116108bf5782816040516020016108a2929190610cc0565b6040516020818303038152906040528051906020012092506108eb565b80836040516020016108d2929190610cc0565b6040516020818303038152906040528051906020012092505b5080806108f790610f90565b915050610839565b50838114915050949350505050565b60006101008261091e9190610e8f565b90506000610100836109309190611011565b9050806001901b60056000868152602001908152602001600020600084815260200190815260200160002054176005600086815260200190815260200160002060008481526020019081526020016000208190555050505050565b60008135905061099a8161119a565b92915050565b60008083601f8401126109b257600080fd5b8235905067ffffffffffffffff8111156109cb57600080fd5b6020830191508360208202830111156109e357600080fd5b9250929050565b6000813590506109f9816111b1565b92915050565b600081519050610a0e816111b1565b92915050565b600081359050610a23816111c8565b92915050565b600081359050610a38816111df565b92915050565b600060208284031215610a5057600080fd5b6000610a5e8482850161098b565b91505092915050565b600060208284031215610a7957600080fd5b6000610a87848285016109ea565b91505092915050565b600060208284031215610aa257600080fd5b6000610ab0848285016109ff565b91505092915050565b600060208284031215610acb57600080fd5b6000610ad984828501610a14565b91505092915050565b600060208284031215610af457600080fd5b6000610b0284828501610a29565b91505092915050565b60008060408385031215610b1e57600080fd5b6000610b2c85828601610a29565b9250506020610b3d85828601610a29565b9150509250929050565b600080600080600060808688031215610b5f57600080fd5b6000610b6d88828901610a29565b9550506020610b7e88828901610a29565b9450506040610b8f88828901610a29565b935050606086013567ffffffffffffffff811115610bac57600080fd5b610bb8888289016109a0565b92509250509295509295909350565b610bd081610f1a565b82525050565b610be7610be282610f1a565b610fd9565b82525050565b610bf681610f2c565b82525050565b610c0581610f38565b82525050565b610c1c610c1782610f38565b610feb565b82525050565b610c2b81610f6c565b82525050565b6000610c3e602883610e7e565b9150610c49826110ad565b604082019050919050565b6000610c61602183610e7e565b9150610c6c826110fc565b604082019050919050565b6000610c84602683610e7e565b9150610c8f8261114b565b604082019050919050565b610ca381610f62565b82525050565b610cba610cb582610f62565b611007565b82525050565b6000610ccc8285610c0b565b602082019150610cdc8284610c0b565b6020820191508190509392505050565b6000610cf88286610ca9565b602082019150610d088285610bd6565b601482019150610d188284610ca9565b602082019150819050949350505050565b6000602082019050610d3e6000830184610bc7565b92915050565b6000604082019050610d596000830185610bc7565b610d666020830184610c9a565b9392505050565b6000602082019050610d826000830184610bed565b92915050565b6000602082019050610d9d6000830184610bfc565b92915050565b6000602082019050610db86000830184610c22565b92915050565b60006020820190508181036000830152610dd781610c31565b9050919050565b60006020820190508181036000830152610df781610c54565b9050919050565b60006020820190508181036000830152610e1781610c77565b9050919050565b6000602082019050610e336000830184610c9a565b92915050565b6000608082019050610e4e6000830187610c9a565b610e5b6020830186610c9a565b610e686040830185610bc7565b610e756060830184610c9a565b95945050505050565b600082825260208201905092915050565b6000610e9a82610f62565b9150610ea583610f62565b925082610eb557610eb4611071565b5b828204905092915050565b6000610ecb82610f62565b9150610ed683610f62565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610f0f57610f0e611042565b5b828202905092915050565b6000610f2582610f42565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000610f7782610f7e565b9050919050565b6000610f8982610f42565b9050919050565b6000610f9b82610f62565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610fce57610fcd611042565b5b600182019050919050565b6000610fe482610ff5565b9050919050565b6000819050919050565b6000611000826110a0565b9050919050565b6000819050919050565b600061101c82610f62565b915061102783610f62565b92508261103757611036611071565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008160601b9050919050565b7f4d65726b6c654469737472696275746f723a2044726f7020616c72656164792060008201527f636c61696d65642e000000000000000000000000000000000000000000000000602082015250565b7f4d65726b6c654469737472696275746f723a20496e76616c69642070726f6f6660008201527f2e00000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d65726b6c654469737472696275746f723a20496e76616c6964206d65726b6c60008201527f65496e6465780000000000000000000000000000000000000000000000000000602082015250565b6111a381610f1a565b81146111ae57600080fd5b50565b6111ba81610f2c565b81146111c557600080fd5b50565b6111d181610f38565b81146111dc57600080fd5b50565b6111e881610f62565b81146111f357600080fd5b5056fea2646970667358221220e8053f489146c69ef1dc902966d91b9e8cacc17d128c399f7ef0f7bfe481b0eb64736f6c63430008040033

Deployed Bytecode Sourcemap

326:4289:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;643:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;936:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;362:28;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1162:153;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;533:32;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;397;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2035:339;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1571:303;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;436:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1323:147;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3051:753;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2382:356;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;643:30;;;;;;;;;;;;;:::o;936:26::-;;;;;;;;;;;;;:::o;362:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1162:153::-;1250:17;;;;;;;;;;;1236:31;;:10;:31;;;1228:40;;;;;;1299:8;1279:17;;:28;;;;;;;;;;;;;;;;;;1162:153;:::o;533:32::-;;;;;;;;;;;;;:::o;397:::-;;;;:::o;2035:339::-;2124:15;;;;;;;;;;;2110:29;;:10;:29;;;2102:38;;;;;;2180:4;2159:25;;:17;;:25;;2151:34;;;;;;2200:9;2196:136;;;2226:11;2243:17;;2226:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2314:6;2305;2287:15;:24;;;;:::i;:::-;:33;;;;:::i;:::-;2276:8;:44;;;;2196:136;2349:17;2342:24;;;2035:339;:::o;1571:303::-;1660:17;;;;;;;;;;;1646:31;;:10;:31;;;1638:40;;;;;;1718:4;1697:25;;:17;;:25;1689:34;;;;;;1763:2;1742:11;:18;;;;:23;1734:32;;;;;;1855:11;1835:17;:31;;;;1571:303;:::o;436:23::-;;;;:::o;1323:147::-;1409:15;;;;;;;;;;;1395:29;;:10;:29;;;1387:38;;;;;;1454:8;1436:15;;:26;;;;;;;;;;;;;;;;;;1323:147;:::o;3051:753::-;3192:11;:18;;;;3178:11;:32;3170:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;3273:29;3283:11;3296:5;3273:9;:29::i;:::-;3272:30;3264:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;3397:12;3439:5;3446:10;3458:6;3422:43;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3412:54;;;;;;3397:69;;3485:51;3492:11;;3505;3517;3505:24;;;;;;;;;;;;;;;;;;;;;;;;3531:4;3485:6;:51::i;:::-;3477:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;3635:31;3647:11;3660:5;3635:11;:31::i;:::-;3677:13;;;;;;;;;;;:22;;;3700:10;3723:6;3712;:18;;;;:::i;:::-;3677:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3749:47;3757:11;3770:5;3777:10;3789:6;3749:47;;;;;;;;;:::i;:::-;;;;;;;;3051:753;;;;;;:::o;2382:356::-;2458:4;2475:24;2510:3;2502:5;:11;;;;:::i;:::-;2475:38;;2524:23;2558:3;2550:5;:11;;;;:::i;:::-;2524:37;;2572:19;2594:13;:26;2608:11;2594:26;;;;;;;;;;;:44;2621:16;2594:44;;;;;;;;;;;;2572:66;;2649:12;2670:15;2665:1;:20;;2649:37;;2726:4;2718;2704:11;:18;:26;2697:33;;;;;;2382:356;;;;:::o;3812:798::-;3905:4;3922:20;3945:4;3922:27;;3967:9;3962:525;3986:5;;:12;;3982:1;:16;3962:525;;;4020:20;4043:5;;4049:1;4043:8;;;;;;;;;;;;;;;;;;;;;4020:31;;4088:12;4072;:28;4068:408;;4242:12;4256;4225:44;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4215:55;;;;;;4200:70;;4068:408;;;4432:12;4446;4415:44;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4405:55;;;;;;4390:70;;4068:408;3962:525;4000:3;;;;;:::i;:::-;;;;3962:525;;;;4598:4;4582:12;:20;4575:27;;;3812:798;;;;;;:::o;2746:297::-;2822:24;2857:3;2849:5;:11;;;;:::i;:::-;2822:38;;2871:23;2905:3;2897:5;:11;;;;:::i;:::-;2871:37;;3019:15;3014:1;:20;;2966:13;:26;2980:11;2966:26;;;;;;;;;;;:44;2993:16;2966:44;;;;;;;;;;;;:69;2919:13;:26;2933:11;2919:26;;;;;;;;;;;:44;2946:16;2919:44;;;;;;;;;;;:116;;;;2746:297;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;169:367::-;242:8;252:6;302:3;295:4;287:6;283:17;279:27;269:2;;320:1;317;310:12;269:2;356:6;343:20;333:30;;386:18;378:6;375:30;372:2;;;418:1;415;408:12;372:2;455:4;447:6;443:17;431:29;;509:3;501:4;493:6;489:17;479:8;475:32;472:41;469:2;;;526:1;523;516:12;469:2;259:277;;;;;:::o;542:133::-;585:5;623:6;610:20;601:29;;639:30;663:5;639:30;:::i;:::-;591:84;;;;:::o;681:137::-;735:5;766:6;760:13;751:22;;782:30;806:5;782:30;:::i;:::-;741:77;;;;:::o;824:139::-;870:5;908:6;895:20;886:29;;924:33;951:5;924:33;:::i;:::-;876:87;;;;:::o;969:139::-;1015:5;1053:6;1040:20;1031:29;;1069:33;1096:5;1069:33;:::i;:::-;1021:87;;;;:::o;1114:262::-;1173:6;1222:2;1210:9;1201:7;1197:23;1193:32;1190:2;;;1238:1;1235;1228:12;1190:2;1281:1;1306:53;1351:7;1342:6;1331:9;1327:22;1306:53;:::i;:::-;1296:63;;1252:117;1180:196;;;;:::o;1382:256::-;1438:6;1487:2;1475:9;1466:7;1462:23;1458:32;1455:2;;;1503:1;1500;1493:12;1455:2;1546:1;1571:50;1613:7;1604:6;1593:9;1589:22;1571:50;:::i;:::-;1561:60;;1517:114;1445:193;;;;:::o;1644:278::-;1711:6;1760:2;1748:9;1739:7;1735:23;1731:32;1728:2;;;1776:1;1773;1766:12;1728:2;1819:1;1844:61;1897:7;1888:6;1877:9;1873:22;1844:61;:::i;:::-;1834:71;;1790:125;1718:204;;;;:::o;1928:262::-;1987:6;2036:2;2024:9;2015:7;2011:23;2007:32;2004:2;;;2052:1;2049;2042:12;2004:2;2095:1;2120:53;2165:7;2156:6;2145:9;2141:22;2120:53;:::i;:::-;2110:63;;2066:117;1994:196;;;;:::o;2196:262::-;2255:6;2304:2;2292:9;2283:7;2279:23;2275:32;2272:2;;;2320:1;2317;2310:12;2272:2;2363:1;2388:53;2433:7;2424:6;2413:9;2409:22;2388:53;:::i;:::-;2378:63;;2334:117;2262:196;;;;:::o;2464:407::-;2532:6;2540;2589:2;2577:9;2568:7;2564:23;2560:32;2557:2;;;2605:1;2602;2595:12;2557:2;2648:1;2673:53;2718:7;2709:6;2698:9;2694:22;2673:53;:::i;:::-;2663:63;;2619:117;2775:2;2801:53;2846:7;2837:6;2826:9;2822:22;2801:53;:::i;:::-;2791:63;;2746:118;2547:324;;;;;:::o;2877:861::-;2990:6;2998;3006;3014;3022;3071:3;3059:9;3050:7;3046:23;3042:33;3039:2;;;3088:1;3085;3078:12;3039:2;3131:1;3156:53;3201:7;3192:6;3181:9;3177:22;3156:53;:::i;:::-;3146:63;;3102:117;3258:2;3284:53;3329:7;3320:6;3309:9;3305:22;3284:53;:::i;:::-;3274:63;;3229:118;3386:2;3412:53;3457:7;3448:6;3437:9;3433:22;3412:53;:::i;:::-;3402:63;;3357:118;3542:2;3531:9;3527:18;3514:32;3573:18;3565:6;3562:30;3559:2;;;3605:1;3602;3595:12;3559:2;3641:80;3713:7;3704:6;3693:9;3689:22;3641:80;:::i;:::-;3623:98;;;;3485:246;3029:709;;;;;;;;:::o;3744:118::-;3831:24;3849:5;3831:24;:::i;:::-;3826:3;3819:37;3809:53;;:::o;3868:157::-;3973:45;3993:24;4011:5;3993:24;:::i;:::-;3973:45;:::i;:::-;3968:3;3961:58;3951:74;;:::o;4031:109::-;4112:21;4127:5;4112:21;:::i;:::-;4107:3;4100:34;4090:50;;:::o;4146:118::-;4233:24;4251:5;4233:24;:::i;:::-;4228:3;4221:37;4211:53;;:::o;4270:157::-;4375:45;4395:24;4413:5;4395:24;:::i;:::-;4375:45;:::i;:::-;4370:3;4363:58;4353:74;;:::o;4433:155::-;4532:49;4575:5;4532:49;:::i;:::-;4527:3;4520:62;4510:78;;:::o;4594:366::-;4736:3;4757:67;4821:2;4816:3;4757:67;:::i;:::-;4750:74;;4833:93;4922:3;4833:93;:::i;:::-;4951:2;4946:3;4942:12;4935:19;;4740:220;;;:::o;4966:366::-;5108:3;5129:67;5193:2;5188:3;5129:67;:::i;:::-;5122:74;;5205:93;5294:3;5205:93;:::i;:::-;5323:2;5318:3;5314:12;5307:19;;5112:220;;;:::o;5338:366::-;5480:3;5501:67;5565:2;5560:3;5501:67;:::i;:::-;5494:74;;5577:93;5666:3;5577:93;:::i;:::-;5695:2;5690:3;5686:12;5679:19;;5484:220;;;:::o;5710:118::-;5797:24;5815:5;5797:24;:::i;:::-;5792:3;5785:37;5775:53;;:::o;5834:157::-;5939:45;5959:24;5977:5;5959:24;:::i;:::-;5939:45;:::i;:::-;5934:3;5927:58;5917:74;;:::o;5997:397::-;6137:3;6152:75;6223:3;6214:6;6152:75;:::i;:::-;6252:2;6247:3;6243:12;6236:19;;6265:75;6336:3;6327:6;6265:75;:::i;:::-;6365:2;6360:3;6356:12;6349:19;;6385:3;6378:10;;6141:253;;;;;:::o;6400:538::-;6568:3;6583:75;6654:3;6645:6;6583:75;:::i;:::-;6683:2;6678:3;6674:12;6667:19;;6696:75;6767:3;6758:6;6696:75;:::i;:::-;6796:2;6791:3;6787:12;6780:19;;6809:75;6880:3;6871:6;6809:75;:::i;:::-;6909:2;6904:3;6900:12;6893:19;;6929:3;6922:10;;6572:366;;;;;;:::o;6944:222::-;7037:4;7075:2;7064:9;7060:18;7052:26;;7088:71;7156:1;7145:9;7141:17;7132:6;7088:71;:::i;:::-;7042:124;;;;:::o;7172:332::-;7293:4;7331:2;7320:9;7316:18;7308:26;;7344:71;7412:1;7401:9;7397:17;7388:6;7344:71;:::i;:::-;7425:72;7493:2;7482:9;7478:18;7469:6;7425:72;:::i;:::-;7298:206;;;;;:::o;7510:210::-;7597:4;7635:2;7624:9;7620:18;7612:26;;7648:65;7710:1;7699:9;7695:17;7686:6;7648:65;:::i;:::-;7602:118;;;;:::o;7726:222::-;7819:4;7857:2;7846:9;7842:18;7834:26;;7870:71;7938:1;7927:9;7923:17;7914:6;7870:71;:::i;:::-;7824:124;;;;:::o;7954:246::-;8059:4;8097:2;8086:9;8082:18;8074:26;;8110:83;8190:1;8179:9;8175:17;8166:6;8110:83;:::i;:::-;8064:136;;;;:::o;8206:419::-;8372:4;8410:2;8399:9;8395:18;8387:26;;8459:9;8453:4;8449:20;8445:1;8434:9;8430:17;8423:47;8487:131;8613:4;8487:131;:::i;:::-;8479:139;;8377:248;;;:::o;8631:419::-;8797:4;8835:2;8824:9;8820:18;8812:26;;8884:9;8878:4;8874:20;8870:1;8859:9;8855:17;8848:47;8912:131;9038:4;8912:131;:::i;:::-;8904:139;;8802:248;;;:::o;9056:419::-;9222:4;9260:2;9249:9;9245:18;9237:26;;9309:9;9303:4;9299:20;9295:1;9284:9;9280:17;9273:47;9337:131;9463:4;9337:131;:::i;:::-;9329:139;;9227:248;;;:::o;9481:222::-;9574:4;9612:2;9601:9;9597:18;9589:26;;9625:71;9693:1;9682:9;9678:17;9669:6;9625:71;:::i;:::-;9579:124;;;;:::o;9709:553::-;9886:4;9924:3;9913:9;9909:19;9901:27;;9938:71;10006:1;9995:9;9991:17;9982:6;9938:71;:::i;:::-;10019:72;10087:2;10076:9;10072:18;10063:6;10019:72;:::i;:::-;10101;10169:2;10158:9;10154:18;10145:6;10101:72;:::i;:::-;10183;10251:2;10240:9;10236:18;10227:6;10183:72;:::i;:::-;9891:371;;;;;;;:::o;10268:169::-;10352:11;10386:6;10381:3;10374:19;10426:4;10421:3;10417:14;10402:29;;10364:73;;;;:::o;10443:185::-;10483:1;10500:20;10518:1;10500:20;:::i;:::-;10495:25;;10534:20;10552:1;10534:20;:::i;:::-;10529:25;;10573:1;10563:2;;10578:18;;:::i;:::-;10563:2;10620:1;10617;10613:9;10608:14;;10485:143;;;;:::o;10634:348::-;10674:7;10697:20;10715:1;10697:20;:::i;:::-;10692:25;;10731:20;10749:1;10731:20;:::i;:::-;10726:25;;10919:1;10851:66;10847:74;10844:1;10841:81;10836:1;10829:9;10822:17;10818:105;10815:2;;;10926:18;;:::i;:::-;10815:2;10974:1;10971;10967:9;10956:20;;10682:300;;;;:::o;10988:96::-;11025:7;11054:24;11072:5;11054:24;:::i;:::-;11043:35;;11033:51;;;:::o;11090:90::-;11124:7;11167:5;11160:13;11153:21;11142:32;;11132:48;;;:::o;11186:77::-;11223:7;11252:5;11241:16;;11231:32;;;:::o;11269:126::-;11306:7;11346:42;11339:5;11335:54;11324:65;;11314:81;;;:::o;11401:77::-;11438:7;11467:5;11456:16;;11446:32;;;:::o;11484:150::-;11546:9;11579:49;11622:5;11579:49;:::i;:::-;11566:62;;11556:78;;;:::o;11640:125::-;11702:9;11735:24;11753:5;11735:24;:::i;:::-;11722:37;;11712:53;;;:::o;11771:233::-;11810:3;11833:24;11851:5;11833:24;:::i;:::-;11824:33;;11879:66;11872:5;11869:77;11866:2;;;11949:18;;:::i;:::-;11866:2;11996:1;11989:5;11985:13;11978:20;;11814:190;;;:::o;12010:100::-;12049:7;12078:26;12098:5;12078:26;:::i;:::-;12067:37;;12057:53;;;:::o;12116:79::-;12155:7;12184:5;12173:16;;12163:32;;;:::o;12201:94::-;12240:7;12269:20;12283:5;12269:20;:::i;:::-;12258:31;;12248:47;;;:::o;12301:79::-;12340:7;12369:5;12358:16;;12348:32;;;:::o;12386:176::-;12418:1;12435:20;12453:1;12435:20;:::i;:::-;12430:25;;12469:20;12487:1;12469:20;:::i;:::-;12464:25;;12508:1;12498:2;;12513:18;;:::i;:::-;12498:2;12554:1;12551;12547:9;12542:14;;12420:142;;;;:::o;12568:180::-;12616:77;12613:1;12606:88;12713:4;12710:1;12703:15;12737:4;12734:1;12727:15;12754:180;12802:77;12799:1;12792:88;12899:4;12896:1;12889:15;12923:4;12920:1;12913:15;12940:94;12973:8;13021:5;13017:2;13013:14;12992:35;;12982:52;;;:::o;13040:227::-;13180:34;13176:1;13168:6;13164:14;13157:58;13249:10;13244:2;13236:6;13232:15;13225:35;13146:121;:::o;13273:220::-;13413:34;13409:1;13401:6;13397:14;13390:58;13482:3;13477:2;13469:6;13465:15;13458:28;13379:114;:::o;13499:225::-;13639:34;13635:1;13627:6;13623:14;13616:58;13708:8;13703:2;13695:6;13691:15;13684:33;13605:119;:::o;13730:122::-;13803:24;13821:5;13803:24;:::i;:::-;13796:5;13793:35;13783:2;;13842:1;13839;13832:12;13783:2;13773:79;:::o;13858:116::-;13928:21;13943:5;13928:21;:::i;:::-;13921:5;13918:32;13908:2;;13964:1;13961;13954:12;13908:2;13898:76;:::o;13980:122::-;14053:24;14071:5;14053:24;:::i;:::-;14046:5;14043:35;14033:2;;14092:1;14089;14082:12;14033:2;14023:79;:::o;14108:122::-;14181:24;14199:5;14181:24;:::i;:::-;14174:5;14171:35;14161:2;;14220:1;14217;14210:12;14161:2;14151:79;:::o

Swarm Source

ipfs://e8053f489146c69ef1dc902966d91b9e8cacc17d128c399f7ef0f7bfe481b0eb

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.