ETH Price: $2,164.11 (+0.37%)
Gas: 0.04 Gwei

Contract

0x57CEc012C9246Bf7E2dAe84fb8DCC944D6Bb700b
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Deposit113716082020-12-02 7:13:191939 days ago1606893199IN
0x57CEc012...4D6Bb700b
0 ETH0.0296473230

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CompoundPool

Compiler Version
v0.5.10+commit.5a6ea5b1

Optimization Enabled:
Yes with 200 runs

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

// File: contracts/utils/Ownable.sol

pragma solidity >=0.4.21 <0.6.0;

contract Ownable {
    address private _contract_owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () internal {
        address msgSender = msg.sender;
        _contract_owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _contract_owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_contract_owner == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_contract_owner, newOwner);
        _contract_owner = newOwner;
    }
}

// File: contracts/erc20/IERC20.sol

pragma solidity >=0.4.21 <0.6.0;

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);
}

// File: contracts/core/IPool.sol

pragma solidity >=0.4.21 <0.6.0;

contract IUSDCPool{
  function deposit(uint256 _amount) public;
  function withdraw(uint256 _amount) public;

  function get_virtual_price() public view returns(uint256);

  function get_lp_token_balance() public view returns(uint256);

  function get_lp_token_addr() public view returns(address);
}

// File: contracts/utils/TokenClaimer.sol

pragma solidity >=0.4.21 <0.6.0;

contract TransferableToken{
    function balanceOf(address _owner) public returns (uint256 balance) ;
    function transfer(address _to, uint256 _amount) public returns (bool success) ;
    function transferFrom(address _from, address _to, uint256 _amount) public returns (bool success) ;
}


contract TokenClaimer{

    event ClaimedTokens(address indexed _token, address indexed _to, uint _amount);
    /// @notice This method can be used by the controller to extract mistakenly
    ///  sent tokens to this contract.
    /// @param _token The address of the token contract that you want to recover
    ///  set to 0 in case you want to extract ether.
  function _claimStdTokens(address _token, address payable to) internal {
        if (_token == address(0x0)) {
            to.transfer(address(this).balance);
            return;
        }
        TransferableToken token = TransferableToken(_token);
        uint balance = token.balanceOf(address(this));

        (bool status,) = _token.call(abi.encodeWithSignature("transfer(address,uint256)", to, balance));
        require(status, "call failed");
        emit ClaimedTokens(_token, to, balance);
  }
}

// File: contracts/core/pool/CompoundPool.sol

pragma solidity >=0.4.21 <0.6.0;





contract CurveInterface{
  function add_liquidity(uint256[2] memory uamounts, uint256 min_mint_amount) public;
  function remove_liquidity(uint256 _amount, uint256[2] memory min_uamounts) public;
  function remove_liquidity_imbalance(uint256[2] memory uamounts, uint256 max_burn_amount) public;

  address public curve;
}
contract PriceInterface{
  function get_virtual_price() public view returns(uint256);
  function exchange_underlying(int128 i, int128 j, uint256 dx, uint256 min_dy) public;
}

contract CRVGaugeInterface{
  function deposit(uint256 _value) public;
  function withdraw(uint256 _value) public;
}

contract MinterInterface{
  function mint(address gauge_addr) public;
}

contract CompoundPool is IUSDCPool, TokenClaimer, Ownable{
  address public crv_token_addr;
  address public lp_token_addr;

  CRVGaugeInterface public crv_gauge_addr;
  MinterInterface public crv_minter_addr;
  CurveInterface public pool_deposit;

  address public usdc;
  address public dai;
  address public cusdc;
  address public cdai;

  constructor() public{
    crv_token_addr = address(0xD533a949740bb3306d119CC777fa900bA034cd52);
    lp_token_addr = address(0x845838DF265Dcd2c412A1Dc9e959c7d08537f8a2);
    crv_gauge_addr = CRVGaugeInterface(0x7ca5b0a2910B33e9759DC7dDB0413949071D7575);
    crv_minter_addr = MinterInterface(0xd061D61a4d941c39E5453435B6345Dc261C2fcE0);
    pool_deposit = CurveInterface(0xeB21209ae4C2c9FF2a86ACA31E123764A3B6Bc06);

    usdc = address(0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48);
    dai = address(0x6B175474E89094C44Da98b954EedeAC495271d0F);
    cusdc = address(0x39AA39c021dfbaE8faC545936693aC917d5E7563);
    cdai = address(0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643);
  }

  function deposit(uint256 _amount) public{
    deposit_usdc(_amount);
    deposit_to_gauge();
  }
  function deposit_usdc(uint256 _amount) public{
    IERC20(usdc).transferFrom(msg.sender, address(this), _amount);
    IERC20(usdc).approve(address(pool_deposit), 0);
    IERC20(usdc).approve(address(pool_deposit), _amount);
    uint256[2] memory uamounts = [uint256(0), _amount];
    pool_deposit.add_liquidity(uamounts, 0);
  }

  function deposit_to_gauge() public{
    IERC20(lp_token_addr).approve(address(crv_gauge_addr), 0);
    IERC20(lp_token_addr).approve(address(crv_gauge_addr), get_lp_token_balance());
    crv_gauge_addr.deposit(get_lp_token_balance());
  }


  function withdraw(uint256 _amount) public{
    withdraw_from_gauge(_amount);
    withdraw_from_curve(_amount);
  }

  function withdraw_from_gauge(uint256 _amount) public{
    crv_gauge_addr.withdraw(_amount);
  }

  function withdraw_from_curve(uint256 _amount) public{
    require(_amount <= get_lp_token_balance(), "too large amount");
    IERC20(lp_token_addr).approve(address(pool_deposit), _amount);
    pool_deposit.remove_liquidity(_amount, [uint256(0), 0]);
    uint256 dai_amout = IERC20(dai).balanceOf(address(this));
    IERC20(dai).approve(pool_deposit.curve(), dai_amout);
    PriceInterface(pool_deposit.curve()).exchange_underlying(0, 1, dai_amout, 0);
  }

  function get_virtual_price() public view returns(uint256){
    return PriceInterface(pool_deposit.curve()).get_virtual_price();
  }

  function get_lp_token_balance() public view returns(uint256){
    return IERC20(lp_token_addr).balanceOf(address(this));
  }

  function get_lp_token_addr() public view returns(address){
    return lp_token_addr;
  }

  function earn_crv() public{
    crv_minter_addr.mint(address(crv_gauge_addr));
  }

  function claimStdToken(address _token, address payable to) public onlyOwner{
    _claimStdTokens(_token, to);
  }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"withdraw_from_curve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"cusdc","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"get_lp_token_balance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"usdc","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"deposit_to_gauge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"earn_crv","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"crv_token_addr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pool_deposit","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"get_lp_token_addr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"deposit_usdc","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lp_token_addr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"withdraw_from_gauge","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"get_virtual_price","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"crv_gauge_addr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cdai","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"crv_minter_addr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"to","type":"address"}],"name":"claimStdToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"dai","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_token","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"ClaimedTokens","type":"event"}]

608060405234801561001057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b031990811673d533a949740bb3306d119cc777fa900ba034cd521790915560028054821673845838df265dcd2c412a1dc9e959c7d08537f8a2179055600380548216737ca5b0a2910b33e9759dc7ddb0413949071d757517905560048054821673d061d61a4d941c39e5453435b6345dc261c2fce017905560058054821673eb21209ae4c2c9ff2a86aca31e123764a3b6bc0617905560068054821673a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48179055600780548216736b175474e89094c44da98b954eedeac495271d0f1790556008805482167339aa39c021dfbae8fac545936693ac917d5e756317905560098054909116735d3a536e4d6dbd6114cc1ead35777bab948e364317905561113d8061017b6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063972be439116100b8578063bf5b4d3f1161007c578063bf5b4d3f14610260578063cec2064014610268578063e3830e2814610270578063f2fde38b14610278578063f49153541461029e578063f4b9fa75146102cc57610142565b8063972be439146101f9578063a37e4b5d14610216578063b6b55f251461021e578063ba0d7c2a1461023b578063bb7b8b801461025857610142565b8063439f2a5f1161010a578063439f2a5f146101c957806352aa533e146101d1578063613a0048146101d9578063655063d7146101e1578063777c8dfc146101e95780638da5cb5b146101f157610142565b806304ad965f1461014757806320852ee7146101665780632e1a7d4d1461018a5780633837a970146101a75780633e413bee146101c1575b600080fd5b6101646004803603602081101561015d57600080fd5b50356102d4565b005b61016e6106ac565b604080516001600160a01b039092168252519081900360200190f35b610164600480360360208110156101a057600080fd5b50356106bb565b6101af6106d0565b60408051918252519081900360200190f35b61016e61074c565b61016461075b565b6101646108e7565b61016e610938565b61016e610947565b61016e610956565b61016e610965565b6101646004803603602081101561020f57600080fd5b5035610974565b61016e610b9c565b6101646004803603602081101561023457600080fd5b5035610bab565b6101646004803603602081101561025157600080fd5b5035610bbc565b6101af610c24565b61016e610cd7565b61016e610ce6565b61016e610cf5565b6101646004803603602081101561028e57600080fd5b50356001600160a01b0316610d04565b610164600480360360408110156102b457600080fd5b506001600160a01b0381358116916020013516610d6c565b61016e610dd9565b6102dc6106d0565b811115610323576040805162461bcd60e51b815260206004820152601060248201526f1d1bdbc81b185c99d948185b5bdd5b9d60821b604482015290519081900360640190fd5b6002546005546040805163095ea7b360e01b81526001600160a01b039283166004820152602481018590529051919092169163095ea7b39160448083019260209291908290030181600087803b15801561037c57600080fd5b505af1158015610390573d6000803e3d6000fd5b505050506040513d60208110156103a657600080fd5b505060055460408051808201825260008082526020820181905282516316cd8e2760e21b8152600481018681526001600160a01b0390951694635b36389c948794939192602401918491908190849084905b838110156104105781810151838201526020016103f8565b5050505090500192505050600060405180830381600087803b15801561043557600080fd5b505af1158015610449573d6000803e3d6000fd5b5050600754604080516370a0823160e01b81523060048201529051600094506001600160a01b0390921692506370a08231916024808301926020929190829003018186803b15801561049a57600080fd5b505afa1580156104ae573d6000803e3d6000fd5b505050506040513d60208110156104c457600080fd5b505160075460055460408051637165485d60e01b815290519394506001600160a01b039283169363095ea7b39390921691637165485d91600480820192602092909190829003018186803b15801561051b57600080fd5b505afa15801561052f573d6000803e3d6000fd5b505050506040513d602081101561054557600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482018590525160448083019260209291908290030181600087803b15801561059557600080fd5b505af11580156105a9573d6000803e3d6000fd5b505050506040513d60208110156105bf57600080fd5b505060055460408051637165485d60e01b815290516001600160a01b0390921691637165485d91600480820192602092909190829003018186803b15801561060657600080fd5b505afa15801561061a573d6000803e3d6000fd5b505050506040513d602081101561063057600080fd5b505160408051635320bf6b60e11b815260006004820181905260016024830152604482018590526064820181905291516001600160a01b039093169263a6417ed69260848084019391929182900301818387803b15801561069057600080fd5b505af11580156106a4573d6000803e3d6000fd5b505050505050565b6008546001600160a01b031681565b6106c481610bbc565b6106cd816102d4565b50565b600254604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561071b57600080fd5b505afa15801561072f573d6000803e3d6000fd5b505050506040513d602081101561074557600080fd5b5051905090565b6006546001600160a01b031681565b6002546003546040805163095ea7b360e01b81526001600160a01b0392831660048201526000602482018190529151929093169263095ea7b39260448083019360209383900390910190829087803b1580156107b657600080fd5b505af11580156107ca573d6000803e3d6000fd5b505050506040513d60208110156107e057600080fd5b50506002546003546001600160a01b039182169163095ea7b391166108036106d0565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561085257600080fd5b505af1158015610866573d6000803e3d6000fd5b505050506040513d602081101561087c57600080fd5b50506003546001600160a01b031663b6b55f256108976106d0565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156108cd57600080fd5b505af11580156108e1573d6000803e3d6000fd5b50505050565b60048054600354604080516335313c2160e11b81526001600160a01b039283169481019490945251911691636a62784291602480830192600092919082900301818387803b1580156108cd57600080fd5b6001546001600160a01b031681565b6005546001600160a01b031681565b6002546001600160a01b031690565b6000546001600160a01b031690565b600654604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b1580156109ce57600080fd5b505af11580156109e2573d6000803e3d6000fd5b505050506040513d60208110156109f857600080fd5b50506006546005546040805163095ea7b360e01b81526001600160a01b0392831660048201526000602482018190529151929093169263095ea7b39260448083019360209383900390910190829087803b158015610a5557600080fd5b505af1158015610a69573d6000803e3d6000fd5b505050506040513d6020811015610a7f57600080fd5b50506006546005546040805163095ea7b360e01b81526001600160a01b039283166004820152602481018590529051919092169163095ea7b39160448083019260209291908290030181600087803b158015610ada57600080fd5b505af1158015610aee573d6000803e3d6000fd5b505050506040513d6020811015610b0457600080fd5b50610b0f90506110c4565b506040805180820182526000808252602082018490526005548351630b4c7e4d60e01b815292936001600160a01b0390911692630b4c7e4d92859290916004019081908490808383875b83811015610b71578181015183820152602001610b59565b5050505090500182815260200192505050600060405180830381600087803b15801561069057600080fd5b6002546001600160a01b031681565b610bb481610974565b6106cd61075b565b60035460408051632e1a7d4d60e01b81526004810184905290516001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b158015610c0957600080fd5b505af1158015610c1d573d6000803e3d6000fd5b5050505050565b60055460408051637165485d60e01b815290516000926001600160a01b031691637165485d916004808301926020929190829003018186803b158015610c6957600080fd5b505afa158015610c7d573d6000803e3d6000fd5b505050506040513d6020811015610c9357600080fd5b505160408051630176f71760e71b815290516001600160a01b039092169163bb7b8b8091600480820192602092909190829003018186803b15801561071b57600080fd5b6003546001600160a01b031681565b6009546001600160a01b031681565b6004546001600160a01b031681565b6000546001600160a01b03163314610d63576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6106cd81610de8565b6000546001600160a01b03163314610dcb576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610dd58282610e88565b5050565b6007546001600160a01b031681565b6001600160a01b038116610e2d5760405162461bcd60e51b81526004018080602001828103825260268152602001806110e36026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038216610ed2576040516001600160a01b03821690303180156108fc02916000818181858888f19350505050158015610ecc573d6000803e3d6000fd5b50610dd5565b604080516370a0823160e01b8152306004820152905183916000916001600160a01b038416916370a0823191602480830192602092919082900301818787803b158015610f1e57600080fd5b505af1158015610f32573d6000803e3d6000fd5b505050506040513d6020811015610f4857600080fd5b5051604080516001600160a01b038681166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182519495506000949189169390918291908083835b60208310610fc75780518252601f199092019160209182019101610fa8565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611029576040519150601f19603f3d011682016040523d82523d6000602084013e61102e565b606091505b5050905080611072576040805162461bcd60e51b815260206004820152600b60248201526a18d85b1b0819985a5b195960aa1b604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c846040518082815260200191505060405180910390a35050505050565b6040518060400160405280600290602082028038833950919291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a265627a7a723058202c65154aee7861b91fe53bfaed3a3e3acd4275abdad58c4a9332609dd75917ba64736f6c634300050a0032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c8063972be439116100b8578063bf5b4d3f1161007c578063bf5b4d3f14610260578063cec2064014610268578063e3830e2814610270578063f2fde38b14610278578063f49153541461029e578063f4b9fa75146102cc57610142565b8063972be439146101f9578063a37e4b5d14610216578063b6b55f251461021e578063ba0d7c2a1461023b578063bb7b8b801461025857610142565b8063439f2a5f1161010a578063439f2a5f146101c957806352aa533e146101d1578063613a0048146101d9578063655063d7146101e1578063777c8dfc146101e95780638da5cb5b146101f157610142565b806304ad965f1461014757806320852ee7146101665780632e1a7d4d1461018a5780633837a970146101a75780633e413bee146101c1575b600080fd5b6101646004803603602081101561015d57600080fd5b50356102d4565b005b61016e6106ac565b604080516001600160a01b039092168252519081900360200190f35b610164600480360360208110156101a057600080fd5b50356106bb565b6101af6106d0565b60408051918252519081900360200190f35b61016e61074c565b61016461075b565b6101646108e7565b61016e610938565b61016e610947565b61016e610956565b61016e610965565b6101646004803603602081101561020f57600080fd5b5035610974565b61016e610b9c565b6101646004803603602081101561023457600080fd5b5035610bab565b6101646004803603602081101561025157600080fd5b5035610bbc565b6101af610c24565b61016e610cd7565b61016e610ce6565b61016e610cf5565b6101646004803603602081101561028e57600080fd5b50356001600160a01b0316610d04565b610164600480360360408110156102b457600080fd5b506001600160a01b0381358116916020013516610d6c565b61016e610dd9565b6102dc6106d0565b811115610323576040805162461bcd60e51b815260206004820152601060248201526f1d1bdbc81b185c99d948185b5bdd5b9d60821b604482015290519081900360640190fd5b6002546005546040805163095ea7b360e01b81526001600160a01b039283166004820152602481018590529051919092169163095ea7b39160448083019260209291908290030181600087803b15801561037c57600080fd5b505af1158015610390573d6000803e3d6000fd5b505050506040513d60208110156103a657600080fd5b505060055460408051808201825260008082526020820181905282516316cd8e2760e21b8152600481018681526001600160a01b0390951694635b36389c948794939192602401918491908190849084905b838110156104105781810151838201526020016103f8565b5050505090500192505050600060405180830381600087803b15801561043557600080fd5b505af1158015610449573d6000803e3d6000fd5b5050600754604080516370a0823160e01b81523060048201529051600094506001600160a01b0390921692506370a08231916024808301926020929190829003018186803b15801561049a57600080fd5b505afa1580156104ae573d6000803e3d6000fd5b505050506040513d60208110156104c457600080fd5b505160075460055460408051637165485d60e01b815290519394506001600160a01b039283169363095ea7b39390921691637165485d91600480820192602092909190829003018186803b15801561051b57600080fd5b505afa15801561052f573d6000803e3d6000fd5b505050506040513d602081101561054557600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482018590525160448083019260209291908290030181600087803b15801561059557600080fd5b505af11580156105a9573d6000803e3d6000fd5b505050506040513d60208110156105bf57600080fd5b505060055460408051637165485d60e01b815290516001600160a01b0390921691637165485d91600480820192602092909190829003018186803b15801561060657600080fd5b505afa15801561061a573d6000803e3d6000fd5b505050506040513d602081101561063057600080fd5b505160408051635320bf6b60e11b815260006004820181905260016024830152604482018590526064820181905291516001600160a01b039093169263a6417ed69260848084019391929182900301818387803b15801561069057600080fd5b505af11580156106a4573d6000803e3d6000fd5b505050505050565b6008546001600160a01b031681565b6106c481610bbc565b6106cd816102d4565b50565b600254604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561071b57600080fd5b505afa15801561072f573d6000803e3d6000fd5b505050506040513d602081101561074557600080fd5b5051905090565b6006546001600160a01b031681565b6002546003546040805163095ea7b360e01b81526001600160a01b0392831660048201526000602482018190529151929093169263095ea7b39260448083019360209383900390910190829087803b1580156107b657600080fd5b505af11580156107ca573d6000803e3d6000fd5b505050506040513d60208110156107e057600080fd5b50506002546003546001600160a01b039182169163095ea7b391166108036106d0565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561085257600080fd5b505af1158015610866573d6000803e3d6000fd5b505050506040513d602081101561087c57600080fd5b50506003546001600160a01b031663b6b55f256108976106d0565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156108cd57600080fd5b505af11580156108e1573d6000803e3d6000fd5b50505050565b60048054600354604080516335313c2160e11b81526001600160a01b039283169481019490945251911691636a62784291602480830192600092919082900301818387803b1580156108cd57600080fd5b6001546001600160a01b031681565b6005546001600160a01b031681565b6002546001600160a01b031690565b6000546001600160a01b031690565b600654604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b1580156109ce57600080fd5b505af11580156109e2573d6000803e3d6000fd5b505050506040513d60208110156109f857600080fd5b50506006546005546040805163095ea7b360e01b81526001600160a01b0392831660048201526000602482018190529151929093169263095ea7b39260448083019360209383900390910190829087803b158015610a5557600080fd5b505af1158015610a69573d6000803e3d6000fd5b505050506040513d6020811015610a7f57600080fd5b50506006546005546040805163095ea7b360e01b81526001600160a01b039283166004820152602481018590529051919092169163095ea7b39160448083019260209291908290030181600087803b158015610ada57600080fd5b505af1158015610aee573d6000803e3d6000fd5b505050506040513d6020811015610b0457600080fd5b50610b0f90506110c4565b506040805180820182526000808252602082018490526005548351630b4c7e4d60e01b815292936001600160a01b0390911692630b4c7e4d92859290916004019081908490808383875b83811015610b71578181015183820152602001610b59565b5050505090500182815260200192505050600060405180830381600087803b15801561069057600080fd5b6002546001600160a01b031681565b610bb481610974565b6106cd61075b565b60035460408051632e1a7d4d60e01b81526004810184905290516001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b158015610c0957600080fd5b505af1158015610c1d573d6000803e3d6000fd5b5050505050565b60055460408051637165485d60e01b815290516000926001600160a01b031691637165485d916004808301926020929190829003018186803b158015610c6957600080fd5b505afa158015610c7d573d6000803e3d6000fd5b505050506040513d6020811015610c9357600080fd5b505160408051630176f71760e71b815290516001600160a01b039092169163bb7b8b8091600480820192602092909190829003018186803b15801561071b57600080fd5b6003546001600160a01b031681565b6009546001600160a01b031681565b6004546001600160a01b031681565b6000546001600160a01b03163314610d63576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6106cd81610de8565b6000546001600160a01b03163314610dcb576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610dd58282610e88565b5050565b6007546001600160a01b031681565b6001600160a01b038116610e2d5760405162461bcd60e51b81526004018080602001828103825260268152602001806110e36026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038216610ed2576040516001600160a01b03821690303180156108fc02916000818181858888f19350505050158015610ecc573d6000803e3d6000fd5b50610dd5565b604080516370a0823160e01b8152306004820152905183916000916001600160a01b038416916370a0823191602480830192602092919082900301818787803b158015610f1e57600080fd5b505af1158015610f32573d6000803e3d6000fd5b505050506040513d6020811015610f4857600080fd5b5051604080516001600160a01b038681166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182519495506000949189169390918291908083835b60208310610fc75780518252601f199092019160209182019101610fa8565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611029576040519150601f19603f3d011682016040523d82523d6000602084013e61102e565b606091505b5050905080611072576040805162461bcd60e51b815260206004820152600b60248201526a18d85b1b0819985a5b195960aa1b604482015290519081900360640190fd5b836001600160a01b0316856001600160a01b03167ff931edb47c50b4b4104c187b5814a9aef5f709e17e2ecf9617e860cacade929c846040518082815260200191505060405180910390a35050505050565b6040518060400160405280600290602082028038833950919291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a265627a7a723058202c65154aee7861b91fe53bfaed3a3e3acd4275abdad58c4a9332609dd75917ba64736f6c634300050a0032

Deployed Bytecode Sourcemap

4724:3011:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4724:3011:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6692:462;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6692:462:0;;:::i;:::-;;5030:20;;;:::i;:::-;;;;-1:-1:-1;;;;;5030:20:0;;;;;;;;;;;;;;6466:117;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6466:117:0;;:::i;7299:126::-;;;:::i;:::-;;;;;;;;;;;;;;;;4983:19;;;:::i;6216:242::-;;;:::i;7527:84::-;;;:::i;4786:29::-;;;:::i;4942:34::-;;;:::i;7431:90::-;;;:::i;582:88::-;;;:::i;5876:334::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5876:334:0;;:::i;4820:28::-;;;:::i;5773:99::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5773:99:0;;:::i;6589:97::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6589:97:0;;:::i;7160:133::-;;;:::i;4855:39::-;;;:::i;5055:19::-;;;:::i;4899:38::-;;;:::i;1044:109::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1044:109:0;-1:-1:-1;;;;;1044:109:0;;:::i;7617:115::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7617:115:0;;;;;;;;;;:::i;5007:18::-;;;:::i;6692:462::-;6770:22;:20;:22::i;:::-;6759:7;:33;;6751:62;;;;;-1:-1:-1;;;6751:62:0;;;;;;;;;;;;-1:-1:-1;;;6751:62:0;;;;;;;;;;;;;;;6827:13;;6858:12;;6820:61;;;-1:-1:-1;;;6820:61:0;;-1:-1:-1;;;;;6858:12:0;;;6820:61;;;;;;;;;;;;6827:13;;;;;6820:29;;:61;;;;;;;;;;;;;;6827:13;;6820:61;;;5:2:-1;;;;30:1;27;20:12;5:2;6820:61:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6820:61:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;6888:12:0;;:55;;;;;;;;:12;:55;;;6820:61;6888:55;;;;;;;-1:-1:-1;;;6888:55:0;;;;;;;;-1:-1:-1;;;;;6888:12:0;;;;:29;;6918:7;;6888:55;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6888:55:0;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6888:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;6977:3:0;;6970:36;;;-1:-1:-1;;;6970:36:0;;7000:4;6970:36;;;;;;6950:17;;-1:-1:-1;;;;;;6977:3:0;;;;-1:-1:-1;6970:21:0;;:36;;;;;;;;;;;;;;6977:3;6970:36;;;5:2:-1;;;;30:1;27;20:12;5:2;6970:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6970:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6970:36:0;7020:3;;7033:12;;:20;;;-1:-1:-1;;;7033:20:0;;;;6970:36;;-1:-1:-1;;;;;;7020:3:0;;;;7013:19;;7033:12;;;;:18;;:20;;;;;6970:36;;7033:20;;;;;;;;:12;:20;;;5:2:-1;;;;30:1;27;20:12;5:2;7033:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7033:20:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7033:20:0;7013:52;;;-1:-1:-1;;;;;;7013:52:0;;;;;;;-1:-1:-1;;;;;7013:52:0;;;;;;;;;;;;;;;;;;;7033:20;;7013:52;;;;;;;-1:-1:-1;7013:52:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;7013:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7013:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;7087:12:0;;:20;;;-1:-1:-1;;;7087:20:0;;;;-1:-1:-1;;;;;7087:12:0;;;;:18;;:20;;;;;7013:52;;7087:20;;;;;;;;:12;:20;;;5:2:-1;;;;30:1;27;20:12;5:2;7087:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7087:20:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7087:20:0;7072:76;;;-1:-1:-1;;;7072:76:0;;7129:1;7072:76;;;;;;7132:1;7072:76;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7072:56:0;;;;;;:76;;;;;7129:1;;7072:76;;;;;;7129:1;7072:56;:76;;;5:2:-1;;;;30:1;27;20:12;5:2;7072:76:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7072:76:0;;;;6692:462;;:::o;5030:20::-;;;-1:-1:-1;;;;;5030:20:0;;:::o;6466:117::-;6514:28;6534:7;6514:19;:28::i;:::-;6549;6569:7;6549:19;:28::i;:::-;6466:117;:::o;7299:126::-;7380:13;;7373:46;;;-1:-1:-1;;;7373:46:0;;7413:4;7373:46;;;;;;7351:7;;-1:-1:-1;;;;;7380:13:0;;7373:31;;:46;;;;;;;;;;;;;;7380:13;7373:46;;;5:2:-1;;;;30:1;27;20:12;5:2;7373:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7373:46:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7373:46:0;;-1:-1:-1;7299:126:0;:::o;4983:19::-;;;-1:-1:-1;;;;;4983:19:0;;:::o;6216:242::-;6264:13;;6295:14;;6257:57;;;-1:-1:-1;;;6257:57:0;;-1:-1:-1;;;;;6295:14:0;;;6257:57;;;;6264:13;6257:57;;;;;;;;6264:13;;;;;6257:29;;:57;;;;;;;;;;;;;;;;6264:13;6257:57;;;5:2:-1;;;;30:1;27;20:12;5:2;6257:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6257:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;6328:13:0;;6359:14;;-1:-1:-1;;;;;6328:13:0;;;;6321:29;;6359:14;6376:22;:20;:22::i;:::-;6321:78;;;;;;;;;;;;;-1:-1:-1;;;;;6321:78:0;-1:-1:-1;;;;;6321:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6321:78:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6321:78:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;6406:14:0;;-1:-1:-1;;;;;6406:14:0;:22;6429;:20;:22::i;:::-;6406:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6406:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6406:46:0;;;;6216:242::o;7527:84::-;7560:15;;;7589:14;;7560:45;;;-1:-1:-1;;;7560:45:0;;-1:-1:-1;;;;;7589:14:0;;;7560:45;;;;;;;;:15;;;:20;;:45;;;;;:15;;:45;;;;;;;:15;;:45;;;5:2:-1;;;;30:1;27;20:12;4786:29:0;;;-1:-1:-1;;;;;4786:29:0;;:::o;4942:34::-;;;-1:-1:-1;;;;;4942:34:0;;:::o;7431:90::-;7502:13;;-1:-1:-1;;;;;7502:13:0;7431:90;:::o;582:88::-;620:7;647:15;-1:-1:-1;;;;;647:15:0;582:88;:::o;5876:334::-;5935:4;;5928:61;;;-1:-1:-1;;;5928:61:0;;5954:10;5928:61;;;;5974:4;5928:61;;;;;;;;;;;;-1:-1:-1;;;;;5935:4:0;;;;5928:25;;:61;;;;;;;;;;;;;;;5935:4;;5928:61;;;5:2:-1;;;;30:1;27;20:12;5:2;5928:61:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5928:61:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;6003:4:0;;6025:12;;5996:46;;;-1:-1:-1;;;5996:46:0;;-1:-1:-1;;;;;6025:12:0;;;5996:46;;;;6003:4;5996:46;;;;;;;;6003:4;;;;;5996:20;;:46;;;;;5928:61;;5996:46;;;;;;;;;6003:4;5996:46;;;5:2:-1;;;;30:1;27;20:12;5:2;5996:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5996:46:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;6056:4:0;;6078:12;;6049:52;;;-1:-1:-1;;;6049:52:0;;-1:-1:-1;;;;;6078:12:0;;;6049:52;;;;;;;;;;;;6056:4;;;;;6049:20;;:52;;;;;5996:46;;6049:52;;;;;;;6056:4;;6049:52;;;5:2:-1;;;;30:1;27;20:12;5:2;6049:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6049:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6108:26:0;;-1:-1:-1;6108:26:0;:::i;:::-;-1:-1:-1;6108:50:0;;;;;;;;-1:-1:-1;6108:50:0;;;;;;;;;6165:12;;:39;;-1:-1:-1;;;6165:39:0;;6108:50;;-1:-1:-1;;;;;6165:12:0;;;;:26;;6108:50;;-1:-1:-1;;6165:39:0;;;;;6108:50;;;6165:39;6108:50;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6165:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;4820:28:0;;;-1:-1:-1;;;;;4820:28:0;;:::o;5773:99::-;5820:21;5833:7;5820:12;:21::i;:::-;5848:18;:16;:18::i;6589:97::-;6648:14;;:32;;;-1:-1:-1;;;6648:32:0;;;;;;;;;;-1:-1:-1;;;;;6648:14:0;;;;:23;;:32;;;;;:14;;:32;;;;;;;;:14;;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;6648:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6648:32:0;;;;6589:97;:::o;7160:133::-;7246:12;;:20;;;-1:-1:-1;;;7246:20:0;;;;7209:7;;-1:-1:-1;;;;;7246:12:0;;:18;;:20;;;;;;;;;;;;;;:12;:20;;;5:2:-1;;;;30:1;27;20:12;5:2;7246:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7246:20:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7246:20:0;7231:56;;;-1:-1:-1;;;7231:56:0;;;;-1:-1:-1;;;;;7231:54:0;;;;;;:56;;;;;7246:20;;7231:56;;;;;;;;:54;:56;;;5:2:-1;;;;30:1;27;20:12;4855:39:0;;;-1:-1:-1;;;;;4855:39:0;;:::o;5055:19::-;;;-1:-1:-1;;;;;5055:19:0;;:::o;4899:38::-;;;-1:-1:-1;;;;;4899:38:0;;:::o;1044:109::-;803:15;;-1:-1:-1;;;;;803:15:0;822:10;803:29;795:74;;;;;-1:-1:-1;;;795:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1117:28;1136:8;1117:18;:28::i;7617:115::-;803:15;;-1:-1:-1;;;;;803:15:0;822:10;803:29;795:74;;;;;-1:-1:-1;;;795:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7699:27;7715:6;7723:2;7699:15;:27::i;:::-;7617:115;;:::o;5007:18::-;;;-1:-1:-1;;;;;5007:18:0;;:::o;1259:247::-;-1:-1:-1;;;;;1333:22:0;;1325:73;;;;-1:-1:-1;;;1325:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1435:15;;;1414:47;;-1:-1:-1;;;;;1414:47:0;;;;1435:15;;;1414:47;;;1472:15;:26;;-1:-1:-1;;;;;;1472:26:0;-1:-1:-1;;;;;1472:26:0;;;;;;;;;;1259:247::o;3401:513::-;-1:-1:-1;;;;;3486:22:0;;3482:110;;3525:34;;-1:-1:-1;;;;;3525:11:0;;;3545:4;3537:21;3525:34;;;;;;;;;3537:21;3525:11;:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3525:34:0;3574:7;;3482:110;3679:30;;;-1:-1:-1;;;3679:30:0;;3703:4;3679:30;;;;;;3646:6;;3602:23;;-1:-1:-1;;;;;3679:15:0;;;;;:30;;;;;;;;;;;;;;3602:23;3679:15;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;3679:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3679:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3679:30:0;3751:65;;;-1:-1:-1;;;;;3751:65:0;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3751:65:0;;;;;;3679:30;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;3739:78:0;;;;3679:30;;-1:-1:-1;3723:11:0;;3739;;;;:78;;;;25:18:-1;3739:78:0;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3739:78:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;3722:95:0;;;3836:6;3828:30;;;;;-1:-1:-1;;;3828:30:0;;;;;;;;;;;;-1:-1:-1;;;3828:30:0;;;;;;;;;;;;;;;3896:2;-1:-1:-1;;;;;3874:34:0;3888:6;-1:-1:-1;;;;;3874:34:0;;3900:7;3874:34;;;;;;;;;;;;;;;;;;3401:513;;;;;:::o;4724:3011::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;4724:3011:0;;;-1:-1:-1;;4724:3011:0:o

Swarm Source

bzzr://2c65154aee7861b91fe53bfaed3a3e3acd4275abdad58c4a9332609dd75917ba

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.