POL Price: $0.586235 (-16.65%)
 

Overview

POL Balance

Polygon PoS Chain LogoPolygon PoS Chain LogoPolygon PoS Chain Logo0 POL

POL Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Mint With Proof ...359916252022-11-24 3:01:23746 days ago1669258883IN
0x85E33012...21C2Cb039
0 POL0.0041534631.54187452
Mint With Proof ...344872502022-10-18 6:26:29783 days ago1666074389IN
0x85E33012...21C2Cb039
0 POL0.0108071582.73799138
Mint With Proof ...338691872022-10-03 7:11:21798 days ago1664781081IN
0x85E33012...21C2Cb039
0 POL0.0044323530.00000003
Mint With Proof ...335446922022-09-25 10:13:38806 days ago1664100818IN
0x85E33012...21C2Cb039
0 POL0.0045378730.1088
Mint With Proof ...335445592022-09-25 10:09:04806 days ago1664100544IN
0x85E33012...21C2Cb039
0 POL0.0044639730.00000001
Mint With Proof ...335444982022-09-25 10:06:58806 days ago1664100418IN
0x85E33012...21C2Cb039
0 POL0.0039596430.06999999
Mint With Proof ...335389752022-09-25 6:54:32806 days ago1664088872IN
0x85E33012...21C2Cb039
0 POL0.0040188530.07
Mint With Proof ...299963102022-06-25 22:16:54898 days ago1656195414IN
0x85E33012...21C2Cb039
0 POL0.0039195330.00000006
Mint With Proof ...299082752022-06-23 13:44:07900 days ago1655991847IN
0x85E33012...21C2Cb039
0 POL0.0039466230.00000007
Mint With Proof ...298651862022-06-22 11:09:33901 days ago1655896173IN
0x85E33012...21C2Cb039
0 POL0.0011675130.00000001
Mint With Proof ...298651672022-06-22 11:08:55901 days ago1655896135IN
0x85E33012...21C2Cb039
0 POL0.0041805732.01000001
Mint With Proof ...297195752022-06-18 15:30:15905 days ago1655566215IN
0x85E33012...21C2Cb039
0 POL0.0046758431.04995913
Mint With Proof ...294871532022-06-12 18:31:50911 days ago1655058710IN
0x85E33012...21C2Cb039
0 POL0.003916230.00000001
Mint With Proof ...291312762022-06-03 22:31:05920 days ago1654295465IN
0x85E33012...21C2Cb039
0 POL0.0065221649.21679251
Mint With Proof ...289915562022-05-31 12:07:32923 days ago1653998852IN
0x85E33012...21C2Cb039
0 POL0.003926630.07
Mint With Proof ...288101062022-05-26 23:29:01928 days ago1653607741IN
0x85E33012...21C2Cb039
0 POL0.0039901930.57246001
Mint With Proof ...288043942022-05-26 19:53:20928 days ago1653594800IN
0x85E33012...21C2Cb039
0 POL0.0046942731.36980029
Deposit287712792022-05-25 23:55:16928 days ago1653522916IN
0x85E33012...21C2Cb039
0 POL0.0039890335.27811966
Deposit287215812022-05-24 18:13:00930 days ago1653415980IN
0x85E33012...21C2Cb039
0 POL0.0040510735.8343326
Deposit286966092022-05-24 3:45:35930 days ago1653363935IN
0x85E33012...21C2Cb039
0 POL0.0052545530.41920014

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ForgeAirdrop

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at polygonscan.com on 2022-05-24
*/

// Forge Airdrop Contract
// https://airdrop.forgetoken.org
// Claim up to 100, 30 or 10 Forge in this new twist on airdrops! 
// The longer you wait the more your claim unlocks, but dont let the contract run dry without claiming!
// Allows contract to be recharged by anyone to restart the Airdrop!

library MerkleProof {
    /**
     * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree
     * defined by `root`. For this, a `proof` must be provided, containing
     * sibling hashes on the branch from the leaf to the root of the tree. Each
     * pair of leaves and each pair of pre-images are assumed to be sorted.
     */
    function verify(
        bytes32[] memory 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;
    }
}


 interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}



contract ForgeGuess{
    function balanceOf(address account) public view returns (uint256) {}
    uint256 public unreleased;
    uint256 public totalSupply;
    function stakeFor(address forWhom, uint256 amount) public virtual {}
    function withdraw(uint256 amount, uint256 maxLoss) public virtual {}
    
    function withEstimator(uint256 amountOut) public view returns (uint256) {}
    }



contract ForgeAirdrop {
    
    
    address public ForgeTokenAddress = address(0xF44fB43066F7ECC91058E3A614Fb8A15A2735276);
    address public ForgeGuessContractAddress = address(0xbB9C55d014Ce22782374180f7525B0B05Eb152a2);
    bytes32 [] public _merkleRootAll;
    bytes32 internal _merkleRootTop = 0xdd82af2bc4b721bfd5be08111d4f422fd07d1578a0072d6701f26ea4fff33845;
    bytes32 internal _merkleRootMid = 0x15893a9b8d3638149dd9461fde79f589e565a2fc76a861ec1aebb83736151566;
    bytes32 internal _merkleRootBot = 0x316b4323ca91ba63304a4e0ada24b09f8689ac1f80aca8e9d5c4213fc9ba7848;
                                         
    uint256 [] public amtClaim;
    uint256 internal nextTokenId = 0;
    mapping(address => bool) public hasClaimed;
    uint256 public decay = 24* 60 * 60 * 30;

    uint256 public starttime = block.timestamp;
    

    constructor()  {
        _merkleRootAll.push(_merkleRootTop);
        _merkleRootAll.push(_merkleRootMid);
        _merkleRootAll.push(_merkleRootBot);
        amtClaim.push(1000000000000);
        amtClaim.push(100000000);
        amtClaim.push(100000);
    }  

 

    function deposit(uint amt) public returns (bool success){


        require(amt > ForgeGuess(ForgeGuessContractAddress).withEstimator(ForgeGuess(ForgeGuessContractAddress).balanceOf(address(this))), "must be greater than previous total to reset");
        require(IERC20(ForgeTokenAddress).transferFrom(msg.sender, address(this), amt), "transfer fail");
        starttime = block.timestamp;
        IERC20(ForgeTokenAddress).approve(ForgeGuessContractAddress, 999999999999999999999999999999999999999999999999999);
        ForgeGuess(ForgeGuessContractAddress).stakeFor(address(this), amt);
        uint x = perfect();
        amtClaim[0] = x * 10;
        amtClaim[1] = x * 3;
        amtClaim[2] = x * 1;

        return true;
    }


    function Donation(uint amt) public returns (bool success){ 

        if(amt > ForgeGuess(ForgeGuessContractAddress).withEstimator(ForgeGuess(ForgeGuessContractAddress).balanceOf(address(this)))){

            deposit(amt);

        }else{

            require(IERC20(ForgeTokenAddress).transferFrom(msg.sender, address(this), amt), "transfer fail");
            IERC20(ForgeTokenAddress).approve(ForgeGuessContractAddress, 999999999999999999999999999999999999999999999999999);
            ForgeGuess(ForgeGuessContractAddress).stakeFor(address(this), amt);

        }

        return true;
    }


    function perfect() public view returns (uint256 amtz){
        
        uint256 test = (10 * 10 ** 18 * 1000) / ((975 * (IERC20(address(ForgeTokenAddress)).balanceOf(ForgeGuessContractAddress) - ForgeGuess(ForgeGuessContractAddress).unreleased() ) / ForgeGuess(ForgeGuessContractAddress).totalSupply()));


        return test;
    }


    function amtOutForChoiceInForge(uint choice) public view returns (uint256 out){

        return ForgeGuess(ForgeGuessContractAddress).withEstimator(amountOut(choice));
    }


    function amountOut(uint choice) public view returns (uint256 amt2){
        uint256 timeDiff = block.timestamp - starttime;
        if(timeDiff > decay){
            timeDiff = decay;
        }
        amt2 = 0;
        if(choice == 0){
           amt2 = (amtClaim[0] * timeDiff) / decay;
        }else if(choice ==1){
            amt2 = (amtClaim[1] * timeDiff) / decay;
        }else if(choice ==2){
            amt2 = (amtClaim[2] * timeDiff) / decay;
        }
        uint balOfUs = ForgeGuess(ForgeGuessContractAddress).balanceOf(address(this));
        if(amt2 > balOfUs){
            return balOfUs;
        }
        return amt2;
   }
   

    function mintWithProofTop(bytes32[] memory merkleProof ) public {
    
        
        require( MerkleProof.verify(merkleProof, _merkleRootTop, keccak256( abi.encodePacked(msg.sender)) ) , 'proof failure');

        require(hasClaimed[msg.sender] == false, 'already claimed');

        hasClaimed[msg.sender]=true;
        
        IERC20(ForgeTokenAddress).transfer(msg.sender,  amountOut(1));
    }
    
    function mintWithProofMid(bytes32[] memory merkleProof ) public {
 
        require( MerkleProof.verify(merkleProof, _merkleRootMid, keccak256( abi.encodePacked(msg.sender)) ) , 'proof failure');

        require(hasClaimed[msg.sender] == false, 'already claimed');

        hasClaimed[msg.sender]=true;
        
        IERC20(ForgeTokenAddress).transfer(msg.sender,  amountOut(2));
    }
    //0= 0%-10%, 1= 10%-40%, 2= 50%-90%
    function mintWithProofALL(bytes32[] memory merkleProof, uint claim, uint maxLoss ) public {
 
        require( verify(merkleProof, msg.sender, claim)  , 'proof failure');

        require(hasClaimed[msg.sender] == false, 'already claimed');

        hasClaimed[msg.sender]=true;
        
        ForgeGuess(ForgeGuessContractAddress).withdraw(amountOut(claim), maxLoss);
        require(IERC20(ForgeTokenAddress).transfer(msg.sender, IERC20(ForgeTokenAddress).balanceOf(address(this))), "contract may be out of funds");
    }

    //verify claim
    function verify(bytes32[] memory merkleProof, address claimer, uint claim)public view returns (bool ver){
    if(claim == 0){
    
        return MerkleProof.verify(merkleProof, _merkleRootAll[0], keccak256( abi.encodePacked(claimer)));
    }else if(claim ==1 ){

        return MerkleProof.verify(merkleProof, _merkleRootAll[1], keccak256( abi.encodePacked(claimer)));
    }else if(claim == 2){
    
        return MerkleProof.verify(merkleProof, _merkleRootAll[2], keccak256( abi.encodePacked(claimer)));
    }
    return false;
    }
    
    
    function getThree() public view returns (uint256) {

            return  block.timestamp - starttime;
    }
    

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"Donation","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ForgeGuessContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ForgeTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_merkleRootAll","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"choice","type":"uint256"}],"name":"amountOut","outputs":[{"internalType":"uint256","name":"amt2","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"amtClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"choice","type":"uint256"}],"name":"amtOutForChoiceInForge","outputs":[{"internalType":"uint256","name":"out","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getThree","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"hasClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"internalType":"uint256","name":"claim","type":"uint256"},{"internalType":"uint256","name":"maxLoss","type":"uint256"}],"name":"mintWithProofALL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"mintWithProofMid","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"name":"mintWithProofTop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"perfect","outputs":[{"internalType":"uint256","name":"amtz","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"starttime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"},{"internalType":"address","name":"claimer","type":"address"},{"internalType":"uint256","name":"claim","type":"uint256"}],"name":"verify","outputs":[{"internalType":"bool","name":"ver","type":"bool"}],"stateMutability":"view","type":"function"}]

6080604052600080546001600160a01b031990811673f44fb43066f7ecc91058e3a614fb8a15a27352761782556001805490911673bb9c55d014ce22782374180f7525b0b05eb152a21790557fdd82af2bc4b721bfd5be08111d4f422fd07d1578a0072d6701f26ea4fff338456003557f15893a9b8d3638149dd9461fde79f589e565a2fc76a861ec1aebb837361515666004557f316b4323ca91ba63304a4e0ada24b09f8689ac1f80aca8e9d5c4213fc9ba784860055560075562278d0060095542600a553480156100d157600080fd5b5060035460028054600181810183557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace91820193909355600454825480850184558201556005548254808501909355910155600680548083018255600082905264e8d4a510007ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f91820155815480840183556305f5e100908201558154928301909155620186a09101556114d18061018a6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806373b2e80e116100a25780638da58897116100715780638da5889714610221578063b6b55f251461022a578063d49b92161461023d578063f14ddabf14610250578063f5f21aca1461026357600080fd5b806373b2e80e146101ce57806375c53c04146101f157806375fe9fba146102065780638912ed0b1461021957600080fd5b80634ad6d3cd116100de5780634ad6d3cd1461017457806354fac919146101875780636013846014610190578063647e03b7146101bb57600080fd5b806304b38ce0146101105780630e2f5fb314610138578063290812c21461014e5780632d8590c714610161575b600080fd5b61012361011e36600461125d565b610276565b60405190151581526020015b60405180910390f35b610140610333565b60405190815260200161012f565b61014061015c3660046112b4565b610348565b61014061016f3660046112b4565b610369565b6101236101823660046112b4565b6103eb565b61014060095481565b6001546101a3906001600160a01b031681565b6040516001600160a01b03909116815260200161012f565b6000546101a3906001600160a01b031681565b6101236101dc3660046112cd565b60086020526000908152604090205460ff1681565b6102046101ff3660046112e8565b61068d565b005b6101406102143660046112b4565b6107a8565b6101406108fb565b610140600a5481565b6101236102383660046112b4565b610a90565b61014061024b3660046112b4565b610e0b565b61020461025e3660046112e8565b610e1b565b610204610271366004611325565b610ec6565b6000816000036102e9576102e284600260008154811061029857610298611373565b9060005260206000200154856040516020016102c7919060609190911b6001600160601b031916815260140190565b604051602081830303815290604052805190602001206110e1565b905061032c565b81600103610309576102e284600260018154811061029857610298611373565b81600203610328576102e2846002808154811061029857610298611373565b5060005b9392505050565b6000600a5442610343919061139f565b905090565b6006818154811061035857600080fd5b600091825260209091200154905081565b6001546000906001600160a01b031663afcf89aa610386846107a8565b6040518263ffffffff1660e01b81526004016103a491815260200190565b602060405180830381865afa1580156103c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e591906113b6565b92915050565b6001546040516370a0823160e01b81523060048201526000916001600160a01b03169063afcf89aa9082906370a0823190602401602060405180830381865afa15801561043c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046091906113b6565b6040518263ffffffff1660e01b815260040161047e91815260200190565b602060405180830381865afa15801561049b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bf91906113b6565b8211156104d5576104cf82610a90565b50610685565b6000546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af115801561052c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055091906113cf565b6105915760405162461bcd60e51b815260206004820152600d60248201526c1d1c985b9cd9995c8819985a5b609a1b60448201526064015b60405180910390fd5b60005460015460405163095ea7b360e01b81526001600160a01b0391821660048201527502ac3a4edbbfb8014e3ba83411e915e7ffffffffffff602482015291169063095ea7b3906044016020604051808303816000875af11580156105fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061f91906113cf565b506001546040516305dc812160e31b8152306004820152602481018490526001600160a01b0390911690632ee4090890604401600060405180830381600087803b15801561066c57600080fd5b505af1158015610680573d6000803e3d6000fd5b505050505b506001919050565b6004546040516001600160601b03193360601b1660208201526106b49183916034016102c7565b6106d05760405162461bcd60e51b8152600401610588906113f1565b3360009081526008602052604090205460ff16156107005760405162461bcd60e51b815260040161058890611418565b336000818152600860205260408120805460ff19166001179055546001600160a01b03169063a9059cbb9061073560026107a8565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610780573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a491906113cf565b5050565b600080600a54426107b9919061139f565b90506009548111156107ca57506009545b6000915082600003610814576009548160066000815481106107ee576107ee611373565b90600052602060002001546108039190611441565b61080d9190611460565b9150610876565b82600103610834576009548160066001815481106107ee576107ee611373565b826002036108765760095481600660028154811061085457610854611373565b90600052602060002001546108699190611441565b6108739190611460565b91505b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156108bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e391906113b6565b9050808311156108f4579392505050565b5050919050565b600080600160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610951573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097591906113b6565b600160009054906101000a90046001600160a01b03166001600160a01b031663f03d66726040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec91906113b6565b6000546001546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015610a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5c91906113b6565b610a66919061139f565b610a72906103cf611441565b610a7c9190611460565b6103e59069021e19e0c9bab2400000611460565b6001546040516370a0823160e01b81523060048201526000916001600160a01b03169063afcf89aa9082906370a0823190602401602060405180830381865afa158015610ae1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0591906113b6565b6040518263ffffffff1660e01b8152600401610b2391815260200190565b602060405180830381865afa158015610b40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6491906113b6565b8211610bc75760405162461bcd60e51b815260206004820152602c60248201527f6d7573742062652067726561746572207468616e2070726576696f757320746f60448201526b1d185b081d1bc81c995cd95d60a21b6064820152608401610588565b6000546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4291906113cf565b610c7e5760405162461bcd60e51b815260206004820152600d60248201526c1d1c985b9cd9995c8819985a5b609a1b6044820152606401610588565b42600a5560005460015460405163095ea7b360e01b81526001600160a01b0391821660048201527502ac3a4edbbfb8014e3ba83411e915e7ffffffffffff602482015291169063095ea7b3906044016020604051808303816000875af1158015610cec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1091906113cf565b506001546040516305dc812160e31b8152306004820152602481018490526001600160a01b0390911690632ee4090890604401600060405180830381600087803b158015610d5d57600080fd5b505af1158015610d71573d6000803e3d6000fd5b505050506000610d7f6108fb565b9050610d8c81600a611441565b6006600081548110610da057610da0611373565b600091825260209091200155610db7816003611441565b6006600181548110610dcb57610dcb611373565b600091825260209091200155610de2816001611441565b6006600281548110610df657610df6611373565b60009182526020909120015550600192915050565b6002818154811061035857600080fd5b6003546040516001600160601b03193360601b166020820152610e429183916034016102c7565b610e5e5760405162461bcd60e51b8152600401610588906113f1565b3360009081526008602052604090205460ff1615610e8e5760405162461bcd60e51b815260040161058890611418565b336000818152600860205260408120805460ff1916600190811790915590546001600160a01b03169163a9059cbb91610735906107a8565b610ed1833384610276565b610eed5760405162461bcd60e51b8152600401610588906113f1565b3360009081526008602052604090205460ff1615610f1d5760405162461bcd60e51b815260040161058890611418565b336000908152600860205260409020805460ff19166001908117909155546001600160a01b031663441a3e70610f52846107a8565b836040518363ffffffff1660e01b8152600401610f79929190918252602082015260400190565b600060405180830381600087803b158015610f9357600080fd5b505af1158015610fa7573d6000803e3d6000fd5b50506000546040516370a0823160e01b81523060048201526001600160a01b03909116925063a9059cbb9150339083906370a0823190602401602060405180830381865afa158015610ffd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102191906113b6565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561106c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109091906113cf565b6110dc5760405162461bcd60e51b815260206004820152601c60248201527f636f6e7472616374206d6179206265206f7574206f662066756e6473000000006044820152606401610588565b505050565b600081815b855181101561118557600086828151811061110357611103611373565b60200260200101519050808311611145576040805160208101859052908101829052606001604051602081830303815290604052805190602001209250611172565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b508061117d81611482565b9150506110e6565b509092149392505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126111b757600080fd5b8135602067ffffffffffffffff808311156111d4576111d4611190565b8260051b604051601f19603f830116810181811084821117156111f9576111f9611190565b60405293845285810183019383810192508785111561121757600080fd5b83870191505b848210156112365781358352918301919083019061121d565b979650505050505050565b80356001600160a01b038116811461125857600080fd5b919050565b60008060006060848603121561127257600080fd5b833567ffffffffffffffff81111561128957600080fd5b611295868287016111a6565b9350506112a460208501611241565b9150604084013590509250925092565b6000602082840312156112c657600080fd5b5035919050565b6000602082840312156112df57600080fd5b61032c82611241565b6000602082840312156112fa57600080fd5b813567ffffffffffffffff81111561131157600080fd5b61131d848285016111a6565b949350505050565b60008060006060848603121561133a57600080fd5b833567ffffffffffffffff81111561135157600080fd5b61135d868287016111a6565b9660208601359650604090950135949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156113b1576113b1611389565b500390565b6000602082840312156113c857600080fd5b5051919050565b6000602082840312156113e157600080fd5b8151801515811461032c57600080fd5b6020808252600d908201526c70726f6f66206661696c75726560981b604082015260600190565b6020808252600f908201526e185b1c9958591e4818db185a5b5959608a1b604082015260600190565b600081600019048311821515161561145b5761145b611389565b500290565b60008261147d57634e487b7160e01b600052601260045260246000fd5b500490565b60006001820161149457611494611389565b506001019056fea264697066735822122037000f07486ed2628af536e264c2c446d12caa34325247e83ff74d7770a31e2264736f6c634300080e0033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806373b2e80e116100a25780638da58897116100715780638da5889714610221578063b6b55f251461022a578063d49b92161461023d578063f14ddabf14610250578063f5f21aca1461026357600080fd5b806373b2e80e146101ce57806375c53c04146101f157806375fe9fba146102065780638912ed0b1461021957600080fd5b80634ad6d3cd116100de5780634ad6d3cd1461017457806354fac919146101875780636013846014610190578063647e03b7146101bb57600080fd5b806304b38ce0146101105780630e2f5fb314610138578063290812c21461014e5780632d8590c714610161575b600080fd5b61012361011e36600461125d565b610276565b60405190151581526020015b60405180910390f35b610140610333565b60405190815260200161012f565b61014061015c3660046112b4565b610348565b61014061016f3660046112b4565b610369565b6101236101823660046112b4565b6103eb565b61014060095481565b6001546101a3906001600160a01b031681565b6040516001600160a01b03909116815260200161012f565b6000546101a3906001600160a01b031681565b6101236101dc3660046112cd565b60086020526000908152604090205460ff1681565b6102046101ff3660046112e8565b61068d565b005b6101406102143660046112b4565b6107a8565b6101406108fb565b610140600a5481565b6101236102383660046112b4565b610a90565b61014061024b3660046112b4565b610e0b565b61020461025e3660046112e8565b610e1b565b610204610271366004611325565b610ec6565b6000816000036102e9576102e284600260008154811061029857610298611373565b9060005260206000200154856040516020016102c7919060609190911b6001600160601b031916815260140190565b604051602081830303815290604052805190602001206110e1565b905061032c565b81600103610309576102e284600260018154811061029857610298611373565b81600203610328576102e2846002808154811061029857610298611373565b5060005b9392505050565b6000600a5442610343919061139f565b905090565b6006818154811061035857600080fd5b600091825260209091200154905081565b6001546000906001600160a01b031663afcf89aa610386846107a8565b6040518263ffffffff1660e01b81526004016103a491815260200190565b602060405180830381865afa1580156103c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103e591906113b6565b92915050565b6001546040516370a0823160e01b81523060048201526000916001600160a01b03169063afcf89aa9082906370a0823190602401602060405180830381865afa15801561043c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046091906113b6565b6040518263ffffffff1660e01b815260040161047e91815260200190565b602060405180830381865afa15801561049b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104bf91906113b6565b8211156104d5576104cf82610a90565b50610685565b6000546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af115801561052c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055091906113cf565b6105915760405162461bcd60e51b815260206004820152600d60248201526c1d1c985b9cd9995c8819985a5b609a1b60448201526064015b60405180910390fd5b60005460015460405163095ea7b360e01b81526001600160a01b0391821660048201527502ac3a4edbbfb8014e3ba83411e915e7ffffffffffff602482015291169063095ea7b3906044016020604051808303816000875af11580156105fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061f91906113cf565b506001546040516305dc812160e31b8152306004820152602481018490526001600160a01b0390911690632ee4090890604401600060405180830381600087803b15801561066c57600080fd5b505af1158015610680573d6000803e3d6000fd5b505050505b506001919050565b6004546040516001600160601b03193360601b1660208201526106b49183916034016102c7565b6106d05760405162461bcd60e51b8152600401610588906113f1565b3360009081526008602052604090205460ff16156107005760405162461bcd60e51b815260040161058890611418565b336000818152600860205260408120805460ff19166001179055546001600160a01b03169063a9059cbb9061073560026107a8565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610780573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a491906113cf565b5050565b600080600a54426107b9919061139f565b90506009548111156107ca57506009545b6000915082600003610814576009548160066000815481106107ee576107ee611373565b90600052602060002001546108039190611441565b61080d9190611460565b9150610876565b82600103610834576009548160066001815481106107ee576107ee611373565b826002036108765760095481600660028154811061085457610854611373565b90600052602060002001546108699190611441565b6108739190611460565b91505b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156108bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e391906113b6565b9050808311156108f4579392505050565b5050919050565b600080600160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610951573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097591906113b6565b600160009054906101000a90046001600160a01b03166001600160a01b031663f03d66726040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec91906113b6565b6000546001546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015610a38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5c91906113b6565b610a66919061139f565b610a72906103cf611441565b610a7c9190611460565b6103e59069021e19e0c9bab2400000611460565b6001546040516370a0823160e01b81523060048201526000916001600160a01b03169063afcf89aa9082906370a0823190602401602060405180830381865afa158015610ae1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0591906113b6565b6040518263ffffffff1660e01b8152600401610b2391815260200190565b602060405180830381865afa158015610b40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6491906113b6565b8211610bc75760405162461bcd60e51b815260206004820152602c60248201527f6d7573742062652067726561746572207468616e2070726576696f757320746f60448201526b1d185b081d1bc81c995cd95d60a21b6064820152608401610588565b6000546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4291906113cf565b610c7e5760405162461bcd60e51b815260206004820152600d60248201526c1d1c985b9cd9995c8819985a5b609a1b6044820152606401610588565b42600a5560005460015460405163095ea7b360e01b81526001600160a01b0391821660048201527502ac3a4edbbfb8014e3ba83411e915e7ffffffffffff602482015291169063095ea7b3906044016020604051808303816000875af1158015610cec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1091906113cf565b506001546040516305dc812160e31b8152306004820152602481018490526001600160a01b0390911690632ee4090890604401600060405180830381600087803b158015610d5d57600080fd5b505af1158015610d71573d6000803e3d6000fd5b505050506000610d7f6108fb565b9050610d8c81600a611441565b6006600081548110610da057610da0611373565b600091825260209091200155610db7816003611441565b6006600181548110610dcb57610dcb611373565b600091825260209091200155610de2816001611441565b6006600281548110610df657610df6611373565b60009182526020909120015550600192915050565b6002818154811061035857600080fd5b6003546040516001600160601b03193360601b166020820152610e429183916034016102c7565b610e5e5760405162461bcd60e51b8152600401610588906113f1565b3360009081526008602052604090205460ff1615610e8e5760405162461bcd60e51b815260040161058890611418565b336000818152600860205260408120805460ff1916600190811790915590546001600160a01b03169163a9059cbb91610735906107a8565b610ed1833384610276565b610eed5760405162461bcd60e51b8152600401610588906113f1565b3360009081526008602052604090205460ff1615610f1d5760405162461bcd60e51b815260040161058890611418565b336000908152600860205260409020805460ff19166001908117909155546001600160a01b031663441a3e70610f52846107a8565b836040518363ffffffff1660e01b8152600401610f79929190918252602082015260400190565b600060405180830381600087803b158015610f9357600080fd5b505af1158015610fa7573d6000803e3d6000fd5b50506000546040516370a0823160e01b81523060048201526001600160a01b03909116925063a9059cbb9150339083906370a0823190602401602060405180830381865afa158015610ffd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102191906113b6565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af115801561106c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109091906113cf565b6110dc5760405162461bcd60e51b815260206004820152601c60248201527f636f6e7472616374206d6179206265206f7574206f662066756e6473000000006044820152606401610588565b505050565b600081815b855181101561118557600086828151811061110357611103611373565b60200260200101519050808311611145576040805160208101859052908101829052606001604051602081830303815290604052805190602001209250611172565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b508061117d81611482565b9150506110e6565b509092149392505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126111b757600080fd5b8135602067ffffffffffffffff808311156111d4576111d4611190565b8260051b604051601f19603f830116810181811084821117156111f9576111f9611190565b60405293845285810183019383810192508785111561121757600080fd5b83870191505b848210156112365781358352918301919083019061121d565b979650505050505050565b80356001600160a01b038116811461125857600080fd5b919050565b60008060006060848603121561127257600080fd5b833567ffffffffffffffff81111561128957600080fd5b611295868287016111a6565b9350506112a460208501611241565b9150604084013590509250925092565b6000602082840312156112c657600080fd5b5035919050565b6000602082840312156112df57600080fd5b61032c82611241565b6000602082840312156112fa57600080fd5b813567ffffffffffffffff81111561131157600080fd5b61131d848285016111a6565b949350505050565b60008060006060848603121561133a57600080fd5b833567ffffffffffffffff81111561135157600080fd5b61135d868287016111a6565b9660208601359650604090950135949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156113b1576113b1611389565b500390565b6000602082840312156113c857600080fd5b5051919050565b6000602082840312156113e157600080fd5b8151801515811461032c57600080fd5b6020808252600d908201526c70726f6f66206661696c75726560981b604082015260600190565b6020808252600f908201526e185b1c9958591e4818db185a5b5959608a1b604082015260600190565b600081600019048311821515161561145b5761145b611389565b500290565b60008261147d57634e487b7160e01b600052601260045260246000fd5b500490565b60006001820161149457611494611389565b506001019056fea264697066735822122037000f07486ed2628af536e264c2c446d12caa34325247e83ff74d7770a31e2264736f6c634300080e0033

Deployed Bytecode Sourcemap

2614:5850:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7777:548;;;;;;:::i;:::-;;:::i;:::-;;;1891:14:1;;1884:22;1866:41;;1854:2;1839:18;7777:548:0;;;;;;;;8343:110;;;:::i;:::-;;;2064:25:1;;;2052:2;2037:18;8343:110:0;1918:177:1;3252:26:0;;;;;;:::i;:::-;;:::i;5486:176::-;;;;;;:::i;:::-;;:::i;4517:610::-;;;;;;:::i;:::-;;:::i;3373:39::-;;;;;;2748:94;;;;;-1:-1:-1;;;;;2748:94:0;;;;;;-1:-1:-1;;;;;2449:32:1;;;2431:51;;2419:2;2404:18;2748:94:0;2285:203:1;2655:86:0;;;;;-1:-1:-1;;;;;2655:86:0;;;3324:42;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6769:398;;;;;;:::i;:::-;;:::i;:::-;;5672:661;;;;;;:::i;:::-;;:::i;5137:339::-;;;:::i;3421:42::-;;;;;;3760:747;;;;;;:::i;:::-;;:::i;2849:32::-;;;;;;:::i;:::-;;:::i;6346:411::-;;;;;;:::i;:::-;;:::i;7214:535::-;;;;;;:::i;:::-;;:::i;7777:548::-;7872:8;7891:5;7900:1;7891:10;7888:411;;7926:89;7945:11;7958:14;7973:1;7958:17;;;;;;;;:::i;:::-;;;;;;;;;8005:7;7988:25;;;;;;;3989:2:1;3985:15;;;;-1:-1:-1;;;;;;3981:53:1;3969:66;;4060:2;4051:12;;3840:229;7988:25:0;;;;;;;;;;;;;7977:37;;;;;;7926:18;:89::i;:::-;7919:96;;;;7888:411;8031:5;8039:1;8031:9;8028:271;;8062:89;8081:11;8094:14;8109:1;8094:17;;;;;;;;:::i;8028:271::-;8167:5;8176:1;8167:10;8164:135;;8202:89;8221:11;8234:14;8249:1;8234:17;;;;;;;;:::i;8164:135::-;-1:-1:-1;8312:5:0;7777:548;;;;;;:::o;8343:110::-;8384:7;8436:9;;8418:15;:27;;;;:::i;:::-;8410:35;;8343:110;:::o;3252:26::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3252:26:0;:::o;5486:176::-;5595:25;;5552:11;;-1:-1:-1;;;;;5595:25:0;5584:51;5636:17;5646:6;5636:9;:17::i;:::-;5584:70;;;;;;;;;;;;;2064:25:1;;2052:2;2037:18;;1918:177;5584:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5577:77;5486:176;-1:-1:-1;;5486:176:0:o;4517:610::-;4608:25;;4649:62;;-1:-1:-1;;;4649:62:0;;4705:4;4649:62;;;2431:51:1;4561:12:0;;-1:-1:-1;;;;;4608:25:0;;4597:51;;4608:25;;4649:47;;2404:18:1;;4649:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4597:115;;;;;;;;;;;;;2064:25:1;;2052:2;2037:18;;1918:177;4597:115:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4591:3;:121;4588:508;;;4730:12;4738:3;4730:7;:12::i;:::-;;4588:508;;;4792:17;;4785:70;;-1:-1:-1;;;4785:70:0;;4824:10;4785:70;;;4765:34:1;4844:4:0;4815:18:1;;;4808:43;4867:18;;;4860:34;;;-1:-1:-1;;;;;4792:17:0;;;;4785:38;;4700:18:1;;4785:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4777:96;;;;-1:-1:-1;;;4777:96:0;;5389:2:1;4777:96:0;;;5371:21:1;5428:2;5408:18;;;5401:30;-1:-1:-1;;;5447:18:1;;;5440:43;5500:18;;4777:96:0;;;;;;;;;4895:17;;;4922:25;4888:113;;-1:-1:-1;;;4888:113:0;;-1:-1:-1;;;;;4922:25:0;;;4888:113;;;5761:51:1;4949::0;5828:18:1;;;5821:34;4895:17:0;;;4888:33;;5734:18:1;;4888:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5027:25:0;;5016:66;;-1:-1:-1;;;5016:66:0;;5071:4;5016:66;;;5761:51:1;5828:18;;;5821:34;;;-1:-1:-1;;;;;5027:25:0;;;;5016:46;;5734:18:1;;5016:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4588:508;-1:-1:-1;5115:4:0;;4517:610;-1:-1:-1;4517:610:0:o;6769:398::-;6888:14;;6915:28;;-1:-1:-1;;;;;;6932:10:0;3989:2:1;3985:15;3981:53;6915:28:0;;;3969:66:1;6856:90:0;;6875:11;;4051:12:1;;6915:28:0;3840:229:1;6856:90:0;6847:118;;;;-1:-1:-1;;;6847:118:0;;;;;;;:::i;:::-;6997:10;6986:22;;;;:10;:22;;;;;;;;:31;6978:59;;;;-1:-1:-1;;;6978:59:0;;;;;;;:::i;:::-;7061:10;7050:22;;;;:10;:22;;;;;:27;;-1:-1:-1;;7050:27:0;7073:4;7050:27;;;7105:17;-1:-1:-1;;;;;7105:17:0;;7098:34;;7146:12;7156:1;7146:9;:12::i;:::-;7098:61;;-1:-1:-1;;;;;;7098:61:0;;;;;;;-1:-1:-1;;;;;5779:32:1;;;7098:61:0;;;5761:51:1;5828:18;;;5821:34;5734:18;;7098:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6769:398;:::o;5672:661::-;5725:12;5749:16;5786:9;;5768:15;:27;;;;:::i;:::-;5749:46;;5820:5;;5809:8;:16;5806:63;;;-1:-1:-1;5852:5:0;;5806:63;5886:1;5879:8;;5901:6;5911:1;5901:11;5898:250;;5961:5;;5949:8;5935;5944:1;5935:11;;;;;;;;:::i;:::-;;;;;;;;;:22;;;;:::i;:::-;5934:32;;;;:::i;:::-;5927:39;;5898:250;;;5986:6;5995:1;5986:10;5983:165;;6046:5;;6034:8;6020;6029:1;6020:11;;;;;;;;:::i;5983:165::-;6071:6;6080:1;6071:10;6068:80;;6131:5;;6119:8;6105;6114:1;6105:11;;;;;;;;:::i;:::-;;;;;;;;;:22;;;;:::i;:::-;6104:32;;;;:::i;:::-;6097:39;;6068:80;6184:25;;6173:62;;-1:-1:-1;;;6173:62:0;;6229:4;6173:62;;;2431:51:1;6158:12:0;;-1:-1:-1;;;;;6184:25:0;;6173:47;;2404:18:1;;6173:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6158:77;;6256:7;6249:4;:14;6246:59;;;6286:7;5672:661;-1:-1:-1;;;5672:661:0:o;6246:59::-;6315:11;;5672:661;;;:::o;5137:339::-;5177:12;5211;5400:25;;;;;;;;;-1:-1:-1;;;;;5400:25:0;-1:-1:-1;;;;;5389:49:0;;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5345:25;;;;;;;;;-1:-1:-1;;;;;5345:25:0;-1:-1:-1;;;;;5334:48:0;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5275:17;;;5305:25;5260:71;;-1:-1:-1;;;5260:71:0;;-1:-1:-1;;;;;5305:25:0;;;5260:71;;;2431:51:1;5275:17:0;;;5260:44;;2404:18:1;;5260:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:124;;;;:::i;:::-;5253:133;;:3;:133;:::i;:::-;:187;;;;:::i;:::-;5226:216;;5227:20;5226:216;:::i;3760:747::-;3856:25;;3897:62;;-1:-1:-1;;;3897:62:0;;3953:4;3897:62;;;2431:51:1;3803:12:0;;-1:-1:-1;;;;;3856:25:0;;3845:51;;3856:25;;3897:47;;2404:18:1;;3897:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3845:115;;;;;;;;;;;;;2064:25:1;;2052:2;2037:18;;1918:177;3845:115:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3839:3;:121;3831:178;;;;-1:-1:-1;;;3831:178:0;;7428:2:1;3831:178:0;;;7410:21:1;7467:2;7447:18;;;7440:30;7506:34;7486:18;;;7479:62;-1:-1:-1;;;7557:18:1;;;7550:42;7609:19;;3831:178:0;7226:408:1;3831:178:0;4035:17;;4028:70;;-1:-1:-1;;;4028:70:0;;4067:10;4028:70;;;4765:34:1;4087:4:0;4815:18:1;;;4808:43;4867:18;;;4860:34;;;-1:-1:-1;;;;;4035:17:0;;;;4028:38;;4700:18:1;;4028:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4020:96;;;;-1:-1:-1;;;4020:96:0;;5389:2:1;4020:96:0;;;5371:21:1;5428:2;5408:18;;;5401:30;-1:-1:-1;;;5447:18:1;;;5440:43;5500:18;;4020:96:0;5187:337:1;4020:96:0;4139:15;4127:9;:27;4172:17;;;4199:25;4165:113;;-1:-1:-1;;;4165:113:0;;-1:-1:-1;;;;;4199:25:0;;;4165:113;;;5761:51:1;4226::0;5828:18:1;;;5821:34;4172:17:0;;;4165:33;;5734:18:1;;4165:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4300:25:0;;4289:66;;-1:-1:-1;;;4289:66:0;;4344:4;4289:66;;;5761:51:1;5828:18;;;5821:34;;;-1:-1:-1;;;;;4300:25:0;;;;4289:46;;5734:18:1;;4289:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4366:6;4375:9;:7;:9::i;:::-;4366:18;-1:-1:-1;4409:6:0;4366:18;4413:2;4409:6;:::i;:::-;4395:8;4404:1;4395:11;;;;;;;;:::i;:::-;;;;;;;;;;:20;4440:5;:1;4444;4440:5;:::i;:::-;4426:8;4435:1;4426:11;;;;;;;;:::i;:::-;;;;;;;;;;:19;4470:5;:1;4474;4470:5;:::i;:::-;4456:8;4465:1;4456:11;;;;;;;;:::i;:::-;;;;;;;;;;:19;-1:-1:-1;4495:4:0;;3760:747;-1:-1:-1;;3760:747:0:o;2849:32::-;;;;;;;;;;;;6346:411;6478:14;;6505:28;;-1:-1:-1;;;;;;6522:10:0;3989:2:1;3985:15;3981:53;6505:28:0;;;3969:66:1;6446:90:0;;6465:11;;4051:12:1;;6505:28:0;3840:229:1;6446:90:0;6437:118;;;;-1:-1:-1;;;6437:118:0;;;;;;;:::i;:::-;6587:10;6576:22;;;;:10;:22;;;;;;;;:31;6568:59;;;;-1:-1:-1;;;6568:59:0;;;;;;;:::i;:::-;6651:10;6640:22;;;;:10;:22;;;;;:27;;-1:-1:-1;;6640:27:0;6663:4;6640:27;;;;;;6695:17;;-1:-1:-1;;;;;6695:17:0;;6688:34;;6736:12;;:9;:12::i;7214:535::-;7327:38;7334:11;7347:10;7359:5;7327:6;:38::i;:::-;7318:67;;;;-1:-1:-1;;;7318:67:0;;;;;;;:::i;:::-;7417:10;7406:22;;;;:10;:22;;;;;;;;:31;7398:59;;;;-1:-1:-1;;;7398:59:0;;;;;;;:::i;:::-;7481:10;7470:22;;;;:10;:22;;;;;:27;;-1:-1:-1;;7470:27:0;7493:4;7470:27;;;;;;7529:25;-1:-1:-1;;;;;7529:25:0;7518:46;7565:16;7575:5;7565:9;:16::i;:::-;7583:7;7518:73;;;;;;;;;;;;;;;7813:25:1;;;7869:2;7854:18;;7847:34;7801:2;7786:18;;7639:248;7518:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7617:17:0;;7657:50;;-1:-1:-1;;;7657:50:0;;7701:4;7657:50;;;2431:51:1;-1:-1:-1;;;;;7617:17:0;;;;-1:-1:-1;7610:34:0;;-1:-1:-1;7645:10:0;;7617:17;;7657:35;;2404:18:1;;7657:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7610:98;;-1:-1:-1;;;;;;7610:98:0;;;;;;;-1:-1:-1;;;;;5779:32:1;;;7610:98:0;;;5761:51:1;5828:18;;;5821:34;5734:18;;7610:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7602:139;;;;-1:-1:-1;;;7602:139:0;;8094:2:1;7602:139:0;;;8076:21:1;8133:2;8113:18;;;8106:30;8172;8152:18;;;8145:58;8220:18;;7602:139:0;7892:352:1;7602:139:0;7214:535;;;:::o;668:841::-;793:4;833;793;850:536;874:5;:12;870:1;:16;850:536;;;908:20;931:5;937:1;931:8;;;;;;;;:::i;:::-;;;;;;;908:31;;987:12;971;:28;967:408;;1124:44;;;;;;8406:19:1;;;8441:12;;;8434:28;;;8478:12;;1124:44:0;;;;;;;;;;;;1114:55;;;;;;1099:70;;967:408;;;1314:44;;;;;;8406:19:1;;;8441:12;;;8434:28;;;8478:12;;1314:44:0;;;;;;;;;;;;1304:55;;;;;;1289:70;;967:408;-1:-1:-1;888:3:0;;;;:::i;:::-;;;;850:536;;;-1:-1:-1;1481:20:0;;;;668:841;-1:-1:-1;;;668:841:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:902;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;307:6;294:20;333:4;356:18;393:2;389;386:10;383:36;;;399:18;;:::i;:::-;445:2;442:1;438:10;477:2;471:9;540:2;536:7;531:2;527;523:11;519:25;511:6;507:38;595:6;583:10;580:22;575:2;563:10;560:18;557:46;554:72;;;606:18;;:::i;:::-;642:2;635:22;692:18;;;768:15;;;764:24;;;726:15;;;;-1:-1:-1;800:15:1;;;797:35;;;828:1;825;818:12;797:35;864:2;856:6;852:15;841:26;;876:142;892:6;887:3;884:15;876:142;;;958:17;;946:30;;996:12;;;;909;;;;876:142;;;1036:6;146:902;-1:-1:-1;;;;;;;146:902:1:o;1053:173::-;1121:20;;-1:-1:-1;;;;;1170:31:1;;1160:42;;1150:70;;1216:1;1213;1206:12;1150:70;1053:173;;;:::o;1231:490::-;1333:6;1341;1349;1402:2;1390:9;1381:7;1377:23;1373:32;1370:52;;;1418:1;1415;1408:12;1370:52;1458:9;1445:23;1491:18;1483:6;1480:30;1477:50;;;1523:1;1520;1513:12;1477:50;1546:61;1599:7;1590:6;1579:9;1575:22;1546:61;:::i;:::-;1536:71;;;1626:38;1660:2;1649:9;1645:18;1626:38;:::i;:::-;1616:48;;1711:2;1700:9;1696:18;1683:32;1673:42;;1231:490;;;;;:::o;2100:180::-;2159:6;2212:2;2200:9;2191:7;2187:23;2183:32;2180:52;;;2228:1;2225;2218:12;2180:52;-1:-1:-1;2251:23:1;;2100:180;-1:-1:-1;2100:180:1:o;2493:186::-;2552:6;2605:2;2593:9;2584:7;2580:23;2576:32;2573:52;;;2621:1;2618;2611:12;2573:52;2644:29;2663:9;2644:29;:::i;2684:348::-;2768:6;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2877:9;2864:23;2910:18;2902:6;2899:30;2896:50;;;2942:1;2939;2932:12;2896:50;2965:61;3018:7;3009:6;2998:9;2994:22;2965:61;:::i;:::-;2955:71;2684:348;-1:-1:-1;;;;2684:348:1:o;3219:484::-;3321:6;3329;3337;3390:2;3378:9;3369:7;3365:23;3361:32;3358:52;;;3406:1;3403;3396:12;3358:52;3446:9;3433:23;3479:18;3471:6;3468:30;3465:50;;;3511:1;3508;3501:12;3465:50;3534:61;3587:7;3578:6;3567:9;3563:22;3534:61;:::i;:::-;3524:71;3642:2;3627:18;;3614:32;;-1:-1:-1;3693:2:1;3678:18;;;3665:32;;3219:484;-1:-1:-1;;;;3219:484:1:o;3708:127::-;3769:10;3764:3;3760:20;3757:1;3750:31;3800:4;3797:1;3790:15;3824:4;3821:1;3814:15;4074:127;4135:10;4130:3;4126:20;4123:1;4116:31;4166:4;4163:1;4156:15;4190:4;4187:1;4180:15;4206:125;4246:4;4274:1;4271;4268:8;4265:34;;;4279:18;;:::i;:::-;-1:-1:-1;4316:9:1;;4206:125::o;4336:184::-;4406:6;4459:2;4447:9;4438:7;4434:23;4430:32;4427:52;;;4475:1;4472;4465:12;4427:52;-1:-1:-1;4498:16:1;;4336:184;-1:-1:-1;4336:184:1:o;4905:277::-;4972:6;5025:2;5013:9;5004:7;5000:23;4996:32;4993:52;;;5041:1;5038;5031:12;4993:52;5073:9;5067:16;5126:5;5119:13;5112:21;5105:5;5102:32;5092:60;;5148:1;5145;5138:12;6145:337;6347:2;6329:21;;;6386:2;6366:18;;;6359:30;-1:-1:-1;;;6420:2:1;6405:18;;6398:43;6473:2;6458:18;;6145:337::o;6487:339::-;6689:2;6671:21;;;6728:2;6708:18;;;6701:30;-1:-1:-1;;;6762:2:1;6747:18;;6740:45;6817:2;6802:18;;6487:339::o;6831:168::-;6871:7;6937:1;6933;6929:6;6925:14;6922:1;6919:21;6914:1;6907:9;6900:17;6896:45;6893:71;;;6944:18;;:::i;:::-;-1:-1:-1;6984:9:1;;6831:168::o;7004:217::-;7044:1;7070;7060:132;;7114:10;7109:3;7105:20;7102:1;7095:31;7149:4;7146:1;7139:15;7177:4;7174:1;7167:15;7060:132;-1:-1:-1;7206:9:1;;7004:217::o;8501:135::-;8540:3;8561:17;;;8558:43;;8581:18;;:::i;:::-;-1:-1:-1;8628:1:1;8617:13;;8501:135::o

Swarm Source

ipfs://37000f07486ed2628af536e264c2c446d12caa34325247e83ff74d7770a31e22

Block Transaction 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
[ 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.