ETH Price: $3,264.35 (+0.10%)
Gas: 2 Gwei

Contract

0xCCa1A8A1aC96cFb89Eb9b5E8C1e95322B9b1F68b
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim Tokens182911322023-10-06 11:22:35296 days ago1696591355IN
0xCCa1A8A1...2B9b1F68b
0 ETH0.0006718411.43412827
Purchase Tokens ...182911272023-10-06 11:21:35296 days ago1696591295IN
0xCCa1A8A1...2B9b1F68b
0.06111768 ETH0.0015905110.06056146
Purchase Tokens ...182830232023-10-05 8:09:23297 days ago1696493363IN
0xCCa1A8A1...2B9b1F68b
0.031 ETH0.001009996.38856091
Claim Tokens182694492023-10-03 10:34:59299 days ago1696329299IN
0xCCa1A8A1...2B9b1F68b
0 ETH0.000423537.20809107
Purchase Tokens ...182694452023-10-03 10:34:11299 days ago1696329251IN
0xCCa1A8A1...2B9b1F68b
0.065 ETH0.001166157.37636112
Claim Tokens182668792023-10-03 1:58:11299 days ago1696298291IN
0xCCa1A8A1...2B9b1F68b
0 ETH0.000316367.59439039
Purchase Tokens ...182668782023-10-03 1:57:59299 days ago1696298279IN
0xCCa1A8A1...2B9b1F68b
0.105 ETH0.000993788.02127399
Claim Tokens182668162023-10-03 1:45:23299 days ago1696297523IN
0xCCa1A8A1...2B9b1F68b
0 ETH0.0009987916.99850594
Purchase Tokens ...182541502023-10-01 7:18:47301 days ago1696144727IN
0xCCa1A8A1...2B9b1F68b
0.11187385 ETH0.000949486.00580728
Claim Tokens182487722023-09-30 13:19:11302 days ago1696079951IN
0xCCa1A8A1...2B9b1F68b
0 ETH0.000549059.34431624
Claim Tokens182486462023-09-30 12:53:23302 days ago1696078403IN
0xCCa1A8A1...2B9b1F68b
0 ETH0.000521428.87415348
Purchase Tokens ...182486442023-09-30 12:52:59302 days ago1696078379IN
0xCCa1A8A1...2B9b1F68b
0.12 ETH0.001308118.27426454
Claim Tokens182486012023-09-30 12:44:23302 days ago1696077863IN
0xCCa1A8A1...2B9b1F68b
0 ETH0.000504358.58356153
Purchase Tokens ...182485972023-09-30 12:43:35302 days ago1696077815IN
0xCCa1A8A1...2B9b1F68b
0.06 ETH0.0011797.45764022
Purchase Tokens ...182482392023-09-30 11:31:11302 days ago1696073471IN
0xCCa1A8A1...2B9b1F68b
0.08315642 ETH0.001134967.17905517
Purchase Tokens ...182478182023-09-30 10:06:35302 days ago1696068395IN
0xCCa1A8A1...2B9b1F68b
0.12 ETH0.001373358.68693695
Claim Tokens182475532023-09-30 9:13:11302 days ago1696065191IN
0xCCa1A8A1...2B9b1F68b
0 ETH0.000471278.02065538
Claim Tokens182475452023-09-30 9:11:35302 days ago1696065095IN
0xCCa1A8A1...2B9b1F68b
0 ETH0.000428737.29660663
Purchase Tokens ...182475392023-09-30 9:10:23302 days ago1696065023IN
0xCCa1A8A1...2B9b1F68b
0.04425235 ETH0.001206167.6294026
Claim Tokens182472432023-09-30 8:10:23302 days ago1696061423IN
0xCCa1A8A1...2B9b1F68b
0 ETH0.000362476.16887884
Purchase Tokens ...182472402023-09-30 8:09:47302 days ago1696061387IN
0xCCa1A8A1...2B9b1F68b
0.065 ETH0.000989496.25888021
Claim Tokens182435082023-09-29 19:38:35302 days ago1696016315IN
0xCCa1A8A1...2B9b1F68b
0 ETH0.000311567.47921517
Purchase Tokens ...182435052023-09-29 19:37:59302 days ago1696016279IN
0xCCa1A8A1...2B9b1F68b
1.05616467 ETH0.0009587.73247751
Claim Tokens182423082023-09-29 15:37:47303 days ago1696001867IN
0xCCa1A8A1...2B9b1F68b
0 ETH0.0008571714.58828053
Purchase Tokens ...182422492023-09-29 15:25:47303 days ago1696001147IN
0xCCa1A8A1...2B9b1F68b
0.061 ETH0.0016105515.08092301
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
182911272023-10-06 11:21:35296 days ago1696591295
0xCCa1A8A1...2B9b1F68b
0.06111768 ETH
182830232023-10-05 8:09:23297 days ago1696493363
0xCCa1A8A1...2B9b1F68b
0.031 ETH
182694452023-10-03 10:34:11299 days ago1696329251
0xCCa1A8A1...2B9b1F68b
0.065 ETH
182668782023-10-03 1:57:59299 days ago1696298279
0xCCa1A8A1...2B9b1F68b
0.105 ETH
182541502023-10-01 7:18:47301 days ago1696144727
0xCCa1A8A1...2B9b1F68b
0.11187385 ETH
182486442023-09-30 12:52:59302 days ago1696078379
0xCCa1A8A1...2B9b1F68b
0.12 ETH
182485972023-09-30 12:43:35302 days ago1696077815
0xCCa1A8A1...2B9b1F68b
0.06 ETH
182482392023-09-30 11:31:11302 days ago1696073471
0xCCa1A8A1...2B9b1F68b
0.08315642 ETH
182478182023-09-30 10:06:35302 days ago1696068395
0xCCa1A8A1...2B9b1F68b
0.12 ETH
182475392023-09-30 9:10:23302 days ago1696065023
0xCCa1A8A1...2B9b1F68b
0.04425235 ETH
182472402023-09-30 8:09:47302 days ago1696061387
0xCCa1A8A1...2B9b1F68b
0.065 ETH
182435052023-09-29 19:37:59302 days ago1696016279
0xCCa1A8A1...2B9b1F68b
1.05616467 ETH
182422492023-09-29 15:25:47303 days ago1696001147
0xCCa1A8A1...2B9b1F68b
0.061 ETH
182417652023-09-29 13:47:59303 days ago1695995279
0xCCa1A8A1...2B9b1F68b
0.068 ETH
182416912023-09-29 13:32:47303 days ago1695994367
0xCCa1A8A1...2B9b1F68b
0.16 ETH
182371802023-09-28 22:21:59303 days ago1695939719
0xCCa1A8A1...2B9b1F68b
0.06346081 ETH
182366522023-09-28 20:35:59303 days ago1695933359
0xCCa1A8A1...2B9b1F68b
0.03123 ETH
182366152023-09-28 20:28:35303 days ago1695932915
0xCCa1A8A1...2B9b1F68b
0.28 ETH
182358422023-09-28 17:52:35303 days ago1695923555
0xCCa1A8A1...2B9b1F68b
0.04 ETH
182356932023-09-28 17:22:35304 days ago1695921755
0xCCa1A8A1...2B9b1F68b
0.036 ETH
182351722023-09-28 15:37:47304 days ago1695915467
0xCCa1A8A1...2B9b1F68b
0.17 ETH
182313042023-09-28 2:34:59304 days ago1695868499
0xCCa1A8A1...2B9b1F68b
0.035 ETH
182296232023-09-27 20:57:35304 days ago1695848255
0xCCa1A8A1...2B9b1F68b
0.06 ETH
182283942023-09-27 16:50:11305 days ago1695833411
0xCCa1A8A1...2B9b1F68b
1 ETH
182272332023-09-27 12:56:11305 days ago1695819371
0xCCa1A8A1...2B9b1F68b
0.089 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
tokenSale

Compiler Version
v0.6.0+commit.26b70077

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-18
*/

pragma solidity ^0.6.0;

interface AggregatorV3Interface {

  function decimals()
    external
    view
    returns (
      uint8
    );

  function description()
    external
    view
    returns (
      string memory
    );

  function version()
    external
    view
    returns (
      uint256
    );

  function getRoundData(
    uint80 _roundId
  )
    external
    view
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    );

  function latestRoundData()
    external
    view
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    );

}


pragma solidity 0.6.0;
/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */

pragma experimental ABIEncoderV2;

library SafeMath {
    function percent(uint value,uint numerator, uint denominator, uint precision) internal pure  returns(uint quotient) {
        uint _numerator  = numerator * 10 ** (precision+1);
        uint _quotient =  ((_numerator / denominator) + 5) / 10;
        return (value*_quotient/1000000000000000000);
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
contract Context {
  // Empty internal constructor, to prevent people from mistakenly deploying
  // an instance of this contract, which should be used via inheritance.
  constructor () internal { }

  function _msgSender() internal view returns (address payable) {
    return msg.sender;
  }

  function _msgData() internal view returns (bytes memory) {
    this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
    return msg.data;
  }
}


/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
contract Ownable is Context{
  address private _owner;

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

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

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

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

  /**
   * @dev Leaves the contract without owner. It will not be possible to call
   * `onlyOwner` functions anymore. Can only be called by the current owner.
   *
   * NOTE: Renouncing ownership will leave the contract without an owner,
   * thereby removing any functionality that is only available to the owner.
   */
//   function renounceOwnership() public onlyOwner {
//     emit OwnershipTransferred(_owner, address(0));
//     _owner = address(0);
//   }

  /**
   * @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(_owner, newOwner);
    _owner = newOwner;
  }
}

contract PriceContract {
    
    AggregatorV3Interface internal priceFeed;
    address private priceAddress = 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419; // ETH/USD Mainnet
    // address private priceAddress = 0xD4a33860578De61DBAbDc8BFdb98FD742fA7028e; // ETH/USD Goerli Testnet
    //https://docs.chain.link/docs/bnb-chain-addresses/

    constructor() public {
        priceFeed = AggregatorV3Interface(priceAddress);
    }

    function getLatestPrice() public view returns (uint) {
        (,int price,,uint timeStamp,)= priceFeed.latestRoundData();
        // If the round is not complete yet, timestamp is 0
        require(timeStamp > 0, "Round not complete");
        return (uint)(price);
    }
}

contract tokenSale is Ownable,PriceContract{
    
    address public reduxToken;
    uint256 internal price = 1111*1e18; //0.0009 usdt // 1111 token per USD
    uint256 public minInvestment = 50*1e18; 
    bool saleActive=false; 
    //uint256 public softCap = 1200000*1e18;
    //uint256 public hardCap = 3000000*1e18;
    uint256 public totalInvestment = 0;
    Token token = Token(0xE7589ADdd235aFFEACa91Bf2b7903EbCc2F6eE4d); // Token;
    Token usdt = Token(0xdAC17F958D2ee523a2206206994597C13D831ec7); // USDT

    struct userStruct{
        bool isExist;
        uint256 investment;
        uint256 ClaimTime;
        uint256 lockedAmount;
    }
    mapping(address => userStruct) public user;
    mapping(address => uint256) public ethInvestment;
    mapping(address => uint256) public usdtInvestment;

    constructor() public{
    }
    
    fallback() external  {
        purchaseTokensWithETH();
    }
    
    
    function purchaseTokensWithETH() payable public{   // with BNB
        uint256 amount = msg.value;       
        require(saleActive == true, "Sale not started yet!");
     
        //busd.transferFrom(msg.sender, address(this), amount);
        uint256 ethToUsd =  calculateUsd(amount); 
        require(ethToUsd>=minInvestment ,"Check minimum investment!");
        uint256 usdToTokens = SafeMath.mul(price, ethToUsd);
        uint256 tokenAmount = SafeMath.div(usdToTokens,1e18);
        
        user[msg.sender].lockedAmount = user[msg.sender].lockedAmount + tokenAmount;
        user[msg.sender].ClaimTime = now;

        ethInvestment[msg.sender] = ethInvestment[msg.sender] + msg.value ;
        totalInvestment = totalInvestment + ethToUsd;

        //require(totalInvestment <= hardCap, "Trying to cross Hardcap!"); 
        forwardFunds();
    }

    function calculateUsd(uint256 bnbAmount) public view returns(uint256){
        uint256 ethPrice = getLatestPrice();
        uint256 incomingEthToUsd = SafeMath.mul(bnbAmount, ethPrice) ;
        uint256 fixIncomingEthToUsd = SafeMath.div(incomingEthToUsd,1e8);
        return fixIncomingEthToUsd;
    }

    function purchaseTokensWithStableCoin(uint256 amount) public {
        require(amount>=minInvestment ,"Check minimum investment!");   
        require(saleActive == true, "Sale not started yet!");

        uint256 usdToTokens = SafeMath.mul(price, amount);
        uint256 tokenAmount = SafeMath.div(usdToTokens,1e18);
       
        usdt.transferFrom(msg.sender, address(this), amount/1e12);
        usdtInvestment[msg.sender] = usdtInvestment[msg.sender] + amount ;
        
        user[msg.sender].lockedAmount = user[msg.sender].lockedAmount + tokenAmount;
        user[msg.sender].ClaimTime = now; 
        totalInvestment = totalInvestment + amount;

        //require(totalInvestment <= hardCap, "Trying to cross Hardcap!"); 
        forwardFunds();
    }
    
    function claimTokens() public{ 
        require(user[msg.sender].ClaimTime < now,"Claim time not reached!");
        require(user[msg.sender].lockedAmount >=0,"No Amount to Claim");
        token.transfer(msg.sender,user[msg.sender].lockedAmount);
        user[msg.sender].lockedAmount = 0;
    }
     
    function updatePrice(uint256 tokenPrice) public {
        require(msg.sender==owner(),"Only owner can update contract!");
        price=tokenPrice;
    }
    
    function startSale() public{
        require(msg.sender==owner(),"Only owner can update contract!");
        saleActive = true;
    }

    function stopSale() public{
        require(msg.sender==owner(),"Only owner can update contract!");
        saleActive = false;
    }

    function setMin(uint256 min) public{
        require(msg.sender==owner(),"Only owner can update contract!");
        minInvestment=min;
    }
        
    function withdrawRemainingTokensAfterICO() public{
        require(msg.sender==owner(),"Only owner can update contract!");
        require(token.balanceOf(address(this)) >=0 , "Tokens Not Available in contract, contact Admin!");
        token.transfer(msg.sender,token.balanceOf(address(this)));
    }
    
    function forwardFunds() internal {
        address payable ICOadmin = address(uint160(owner()));
        ICOadmin.transfer(address(this).balance);   
        usdt.transfer(owner(), usdt.balanceOf(address(this)));
    }
    
    function withdrawFunds() public{
        //require(totalInvestment >= softCap,"Sale Not Success!");
        require(msg.sender==owner(),"Only owner can Withdraw!");
        forwardFunds();
    }

       
    function calculateTokenAmount(uint256 amount) external view returns (uint256){
        uint tokens = SafeMath.mul(amount,price);
        return tokens;
    }
    
    function tokenPrice() external view returns (uint256){
        return price;
    }
    
    function investments(address add) external view returns (uint256,uint256,uint256,uint256){
        return (ethInvestment[add], ethInvestment[add], usdtInvestment[add],totalInvestment);
    }
}

abstract contract Token {
    function transferFrom(address sender, address recipient, uint256 amount) virtual external;
    function transfer(address recipient, uint256 amount) virtual external;
    function balanceOf(address account) virtual external view returns (uint256)  ;

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"calculateTokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bnbAmount","type":"uint256"}],"name":"calculateUsd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"ethInvestment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLatestPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"add","type":"address"}],"name":"investments","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minInvestment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"purchaseTokensWithETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"purchaseTokensWithStableCoin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reduxToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"min","type":"uint256"}],"name":"setMin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalInvestment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenPrice","type":"uint256"}],"name":"updatePrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"usdtInvestment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"user","outputs":[{"internalType":"bool","name":"isExist","type":"bool"},{"internalType":"uint256","name":"investment","type":"uint256"},{"internalType":"uint256","name":"ClaimTime","type":"uint256"},{"internalType":"uint256","name":"lockedAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawRemainingTokensAfterICO","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600280546001600160a01b0319908116735f4ec3df9cbd43714fe2740f5e3616155c5b841917909155683c3a38e5ab72fc00006004556802b5e3af16b18800006005556006805460ff19169055600060075560088054821673e7589addd235affeaca91bf2b7903ebcc2f6ee4d1790556009805490911673dac17f958d2ee523a2206206994597c13d831ec717905534801561009f57600080fd5b50600080546001600160a01b031916739506238616b590cf274b9a54c1284abf9ea985b29081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600254600180546001600160a01b0319166001600160a01b03909216919091179055610f5d806101266000396000f3fe60806040526004361061012a5760003560e01c806381e7e20e116100ab57806396b988621161006f57806396b98862146102d9578063a24bcf4614610309578063b66a0e5d14610329578063d6ea39ac1461033e578063e36b0b371461035e578063faf8dc72146103735761012a565b806381e7e20e1461024a5780638ac2c6801461027a5780638d6cc56d1461028f5780638da5cb5b146102af5780638e15f473146102c45761012a565b806345dc3dd8116100f257806345dc3dd8146101c957806348c54b9d146101e9578063788b0d32146101fe5780637fb93127146102135780637ff9b596146102355761012a565b806310ea13df14610141578063235caa211461016c57806324600fc3146101745780632d27219914610189578063389bf8a3146101a9575b34801561013657600080fd5b5061013f610393565b005b34801561014d57600080fd5b50610156610460565b6040516101639190610f03565b60405180910390f35b61013f610393565b34801561018057600080fd5b5061013f610466565b34801561019557600080fd5b506101566101a4366004610c66565b6104a8565b3480156101b557600080fd5b506101566101c4366004610c66565b6104ba565b3480156101d557600080fd5b5061013f6101e4366004610c8d565b6104cc565b3480156101f557600080fd5b5061013f610509565b34801561020a57600080fd5b5061013f6105c3565b34801561021f57600080fd5b5061022861076f565b6040516101639190610d0e565b34801561024157600080fd5b5061015661077e565b34801561025657600080fd5b5061026a610265366004610c66565b610784565b6040516101639493929190610d5f565b34801561028657600080fd5b506101566107af565b34801561029b57600080fd5b5061013f6102aa366004610c8d565b6107b5565b3480156102bb57600080fd5b506102286107f2565b3480156102d057600080fd5b50610156610801565b3480156102e557600080fd5b506102f96102f4366004610c66565b6108b9565b6040516101639493929190610f0c565b34801561031557600080fd5b50610156610324366004610c8d565b6108e7565b34801561033557600080fd5b5061013f6108fd565b34801561034a57600080fd5b50610156610359366004610c8d565b610944565b34801561036a57600080fd5b5061013f610978565b34801561037f57600080fd5b5061013f61038e366004610c8d565b6109bc565b600654349060ff1615156001146103c55760405162461bcd60e51b81526004016103bc90610d7c565b60405180910390fd5b60006103d082610944565b90506005548110156103f45760405162461bcd60e51b81526004016103bc90610e95565b600061040260045483610adc565b9050600061041882670de0b6b3a7640000610b09565b336000908152600a602090815260408083206003810180548601905542600290910155600b90915290208054340190556007805485019055905061045a610b1e565b50505050565b60075481565b61046e6107f2565b6001600160a01b0316336001600160a01b03161461049e5760405162461bcd60e51b81526004016103bc90610e0e565b6104a6610b1e565b565b600c6020526000908152604090205481565b600b6020526000908152604090205481565b6104d46107f2565b6001600160a01b0316336001600160a01b0316146105045760405162461bcd60e51b81526004016103bc90610ecc565b600555565b336000908152600a6020526040902060020154421161053a5760405162461bcd60e51b81526004016103bc90610dd7565b336000818152600a60205260085460409182902060030154915163a9059cbb60e01b81526001600160a01b039091169263a9059cbb9261057c92600401610d46565b600060405180830381600087803b15801561059657600080fd5b505af11580156105aa573d6000803e3d6000fd5b5050336000908152600a60205260408120600301555050565b6105cb6107f2565b6001600160a01b0316336001600160a01b0316146105fb5760405162461bcd60e51b81526004016103bc90610ecc565b6008546040516370a0823160e01b81526000916001600160a01b0316906370a082319061062c903090600401610d0e565b60206040518083038186803b15801561064457600080fd5b505afa158015610658573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061067c9190810190610ca5565b101561069a5760405162461bcd60e51b81526004016103bc90610e45565b6008546040516370a0823160e01b81526001600160a01b039091169063a9059cbb90339083906370a08231906106d4903090600401610d0e565b60206040518083038186803b1580156106ec57600080fd5b505afa158015610700573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107249190810190610ca5565b6040518363ffffffff1660e01b8152600401610741929190610d46565b600060405180830381600087803b15801561075b57600080fd5b505af115801561045a573d6000803e3d6000fd5b6003546001600160a01b031681565b60045490565b600a60205260009081526040902080546001820154600283015460039093015460ff90921692909184565b60055481565b6107bd6107f2565b6001600160a01b0316336001600160a01b0316146107ed5760405162461bcd60e51b81526004016103bc90610ecc565b600455565b6000546001600160a01b031690565b6000806000600160009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561085457600080fd5b505afa158015610868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061088c9190810190610cbd565b50935050925050600081116108b35760405162461bcd60e51b81526004016103bc90610dab565b50905090565b6001600160a01b03166000908152600b6020908152604080832054600c909252909120546007549192839290565b6000806108f683600454610adc565b9392505050565b6109056107f2565b6001600160a01b0316336001600160a01b0316146109355760405162461bcd60e51b81526004016103bc90610ecc565b6006805460ff19166001179055565b60008061094f610801565b9050600061095d8483610adc565b9050600061096f826305f5e100610b09565b95945050505050565b6109806107f2565b6001600160a01b0316336001600160a01b0316146109b05760405162461bcd60e51b81526004016103bc90610ecc565b6006805460ff19169055565b6005548110156109de5760405162461bcd60e51b81526004016103bc90610e95565b60065460ff161515600114610a055760405162461bcd60e51b81526004016103bc90610d7c565b6000610a1360045483610adc565b90506000610a2982670de0b6b3a7640000610b09565b6009546040516323b872dd60e01b81529192506001600160a01b0316906323b872dd90610a65903390309064e8d4a51000890490600401610d22565b600060405180830381600087803b158015610a7f57600080fd5b505af1158015610a93573d6000803e3d6000fd5b5050336000908152600c60209081526040808320805489019055600a9091529020600381018054850190554260029091015550506007805484019055610ad7610b1e565b505050565b600082610aeb57506000610b03565b82820282848281610af857fe5b0414610b0057fe5b90505b92915050565b600080828481610b1557fe5b04949350505050565b6000610b286107f2565b6040519091506001600160a01b038216904780156108fc02916000818181858888f19350505050158015610b60573d6000803e3d6000fd5b506009546001600160a01b031663a9059cbb610b7a6107f2565b6009546040516370a0823160e01b81526001600160a01b03909116906370a0823190610baa903090600401610d0e565b60206040518083038186803b158015610bc257600080fd5b505afa158015610bd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bfa9190810190610ca5565b6040518363ffffffff1660e01b8152600401610c17929190610d46565b600060405180830381600087803b158015610c3157600080fd5b505af1158015610c45573d6000803e3d6000fd5b5050505050565b805169ffffffffffffffffffff81168114610b0357600080fd5b600060208284031215610c77578081fd5b81356001600160a01b0381168114610b00578182fd5b600060208284031215610c9e578081fd5b5035919050565b600060208284031215610cb6578081fd5b5051919050565b600080600080600060a08688031215610cd4578081fd5b610cde8787610c4c565b9450602086015193506040860151925060608601519150610d028760808801610c4c565b90509295509295909350565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b931515845260208401929092526040830152606082015260800190565b60208082526015908201527453616c65206e6f742073746172746564207965742160581b604082015260600190565b602080825260129082015271526f756e64206e6f7420636f6d706c65746560701b604082015260600190565b60208082526017908201527f436c61696d2074696d65206e6f74207265616368656421000000000000000000604082015260600190565b60208082526018908201527f4f6e6c79206f776e65722063616e205769746864726177210000000000000000604082015260600190565b60208082526030908201527f546f6b656e73204e6f7420417661696c61626c6520696e20636f6e747261637460408201526f2c20636f6e746163742041646d696e2160801b606082015260800190565b60208082526019908201527f436865636b206d696e696d756d20696e766573746d656e742100000000000000604082015260600190565b6020808252601f908201527f4f6e6c79206f776e65722063616e2075706461746520636f6e74726163742100604082015260600190565b90815260200190565b9384526020840192909252604083015260608201526080019056fea2646970667358221220f2c244e04d492ed852b2547cdfd92c8c0865e9017785b3bac84f861eef906bed64736f6c63430006000033

Deployed Bytecode

0x60806040526004361061012a5760003560e01c806381e7e20e116100ab57806396b988621161006f57806396b98862146102d9578063a24bcf4614610309578063b66a0e5d14610329578063d6ea39ac1461033e578063e36b0b371461035e578063faf8dc72146103735761012a565b806381e7e20e1461024a5780638ac2c6801461027a5780638d6cc56d1461028f5780638da5cb5b146102af5780638e15f473146102c45761012a565b806345dc3dd8116100f257806345dc3dd8146101c957806348c54b9d146101e9578063788b0d32146101fe5780637fb93127146102135780637ff9b596146102355761012a565b806310ea13df14610141578063235caa211461016c57806324600fc3146101745780632d27219914610189578063389bf8a3146101a9575b34801561013657600080fd5b5061013f610393565b005b34801561014d57600080fd5b50610156610460565b6040516101639190610f03565b60405180910390f35b61013f610393565b34801561018057600080fd5b5061013f610466565b34801561019557600080fd5b506101566101a4366004610c66565b6104a8565b3480156101b557600080fd5b506101566101c4366004610c66565b6104ba565b3480156101d557600080fd5b5061013f6101e4366004610c8d565b6104cc565b3480156101f557600080fd5b5061013f610509565b34801561020a57600080fd5b5061013f6105c3565b34801561021f57600080fd5b5061022861076f565b6040516101639190610d0e565b34801561024157600080fd5b5061015661077e565b34801561025657600080fd5b5061026a610265366004610c66565b610784565b6040516101639493929190610d5f565b34801561028657600080fd5b506101566107af565b34801561029b57600080fd5b5061013f6102aa366004610c8d565b6107b5565b3480156102bb57600080fd5b506102286107f2565b3480156102d057600080fd5b50610156610801565b3480156102e557600080fd5b506102f96102f4366004610c66565b6108b9565b6040516101639493929190610f0c565b34801561031557600080fd5b50610156610324366004610c8d565b6108e7565b34801561033557600080fd5b5061013f6108fd565b34801561034a57600080fd5b50610156610359366004610c8d565b610944565b34801561036a57600080fd5b5061013f610978565b34801561037f57600080fd5b5061013f61038e366004610c8d565b6109bc565b600654349060ff1615156001146103c55760405162461bcd60e51b81526004016103bc90610d7c565b60405180910390fd5b60006103d082610944565b90506005548110156103f45760405162461bcd60e51b81526004016103bc90610e95565b600061040260045483610adc565b9050600061041882670de0b6b3a7640000610b09565b336000908152600a602090815260408083206003810180548601905542600290910155600b90915290208054340190556007805485019055905061045a610b1e565b50505050565b60075481565b61046e6107f2565b6001600160a01b0316336001600160a01b03161461049e5760405162461bcd60e51b81526004016103bc90610e0e565b6104a6610b1e565b565b600c6020526000908152604090205481565b600b6020526000908152604090205481565b6104d46107f2565b6001600160a01b0316336001600160a01b0316146105045760405162461bcd60e51b81526004016103bc90610ecc565b600555565b336000908152600a6020526040902060020154421161053a5760405162461bcd60e51b81526004016103bc90610dd7565b336000818152600a60205260085460409182902060030154915163a9059cbb60e01b81526001600160a01b039091169263a9059cbb9261057c92600401610d46565b600060405180830381600087803b15801561059657600080fd5b505af11580156105aa573d6000803e3d6000fd5b5050336000908152600a60205260408120600301555050565b6105cb6107f2565b6001600160a01b0316336001600160a01b0316146105fb5760405162461bcd60e51b81526004016103bc90610ecc565b6008546040516370a0823160e01b81526000916001600160a01b0316906370a082319061062c903090600401610d0e565b60206040518083038186803b15801561064457600080fd5b505afa158015610658573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061067c9190810190610ca5565b101561069a5760405162461bcd60e51b81526004016103bc90610e45565b6008546040516370a0823160e01b81526001600160a01b039091169063a9059cbb90339083906370a08231906106d4903090600401610d0e565b60206040518083038186803b1580156106ec57600080fd5b505afa158015610700573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107249190810190610ca5565b6040518363ffffffff1660e01b8152600401610741929190610d46565b600060405180830381600087803b15801561075b57600080fd5b505af115801561045a573d6000803e3d6000fd5b6003546001600160a01b031681565b60045490565b600a60205260009081526040902080546001820154600283015460039093015460ff90921692909184565b60055481565b6107bd6107f2565b6001600160a01b0316336001600160a01b0316146107ed5760405162461bcd60e51b81526004016103bc90610ecc565b600455565b6000546001600160a01b031690565b6000806000600160009054906101000a90046001600160a01b03166001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a06040518083038186803b15801561085457600080fd5b505afa158015610868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061088c9190810190610cbd565b50935050925050600081116108b35760405162461bcd60e51b81526004016103bc90610dab565b50905090565b6001600160a01b03166000908152600b6020908152604080832054600c909252909120546007549192839290565b6000806108f683600454610adc565b9392505050565b6109056107f2565b6001600160a01b0316336001600160a01b0316146109355760405162461bcd60e51b81526004016103bc90610ecc565b6006805460ff19166001179055565b60008061094f610801565b9050600061095d8483610adc565b9050600061096f826305f5e100610b09565b95945050505050565b6109806107f2565b6001600160a01b0316336001600160a01b0316146109b05760405162461bcd60e51b81526004016103bc90610ecc565b6006805460ff19169055565b6005548110156109de5760405162461bcd60e51b81526004016103bc90610e95565b60065460ff161515600114610a055760405162461bcd60e51b81526004016103bc90610d7c565b6000610a1360045483610adc565b90506000610a2982670de0b6b3a7640000610b09565b6009546040516323b872dd60e01b81529192506001600160a01b0316906323b872dd90610a65903390309064e8d4a51000890490600401610d22565b600060405180830381600087803b158015610a7f57600080fd5b505af1158015610a93573d6000803e3d6000fd5b5050336000908152600c60209081526040808320805489019055600a9091529020600381018054850190554260029091015550506007805484019055610ad7610b1e565b505050565b600082610aeb57506000610b03565b82820282848281610af857fe5b0414610b0057fe5b90505b92915050565b600080828481610b1557fe5b04949350505050565b6000610b286107f2565b6040519091506001600160a01b038216904780156108fc02916000818181858888f19350505050158015610b60573d6000803e3d6000fd5b506009546001600160a01b031663a9059cbb610b7a6107f2565b6009546040516370a0823160e01b81526001600160a01b03909116906370a0823190610baa903090600401610d0e565b60206040518083038186803b158015610bc257600080fd5b505afa158015610bd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bfa9190810190610ca5565b6040518363ffffffff1660e01b8152600401610c17929190610d46565b600060405180830381600087803b158015610c3157600080fd5b505af1158015610c45573d6000803e3d6000fd5b5050505050565b805169ffffffffffffffffffff81168114610b0357600080fd5b600060208284031215610c77578081fd5b81356001600160a01b0381168114610b00578182fd5b600060208284031215610c9e578081fd5b5035919050565b600060208284031215610cb6578081fd5b5051919050565b600080600080600060a08688031215610cd4578081fd5b610cde8787610c4c565b9450602086015193506040860151925060608601519150610d028760808801610c4c565b90509295509295909350565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b931515845260208401929092526040830152606082015260800190565b60208082526015908201527453616c65206e6f742073746172746564207965742160581b604082015260600190565b602080825260129082015271526f756e64206e6f7420636f6d706c65746560701b604082015260600190565b60208082526017908201527f436c61696d2074696d65206e6f74207265616368656421000000000000000000604082015260600190565b60208082526018908201527f4f6e6c79206f776e65722063616e205769746864726177210000000000000000604082015260600190565b60208082526030908201527f546f6b656e73204e6f7420417661696c61626c6520696e20636f6e747261637460408201526f2c20636f6e746163742041646d696e2160801b606082015260800190565b60208082526019908201527f436865636b206d696e696d756d20696e766573746d656e742100000000000000604082015260600190565b6020808252601f908201527f4f6e6c79206f776e65722063616e2075706461746520636f6e74726163742100604082015260600190565b90815260200190565b9384526020840192909252604083015260608201526080019056fea2646970667358221220f2c244e04d492ed852b2547cdfd92c8c0865e9017785b3bac84f861eef906bed64736f6c63430006000033

Deployed Bytecode Sourcemap

6165:5105:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6165:5105:0;7073:23;:21;:23::i;:::-;6165:5105;6497:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6497:34:0;;;:::i;:::-;;;;;;;;;;;;;;;;7122:874;;;:::i;10592:198::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10592:198:0;;;:::i;6943:49::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6943:49:0;;;;;;;;:::i;6888:48::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6888:48:0;;;;;;;;:::i;9881:144::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9881:144:0;;;;;;;;:::i;9111:301::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9111:301:0;;;:::i;10041:305::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10041:305:0;;;:::i;6221:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6221:25:0;;;:::i;:::-;;;;;;;;10979:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10979:84:0;;;:::i;6839:42::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6839:42:0;;;;;;;;:::i;:::-;;;;;;;;;;;6330:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6330:38:0;;;:::i;9425:156::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9425:156:0;;;;;;;;:::i;4113:75::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4113:75:0;;;:::i;5881:277::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5881:277:0;;;:::i;11075:192::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11075:192:0;;;;;;;;:::i;:::-;;;;;;;;;;;10807:160;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10807:160:0;;;;;;;;:::i;9593:136::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9593:136:0;;;:::i;8004:307::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8004:307:0;;;;;;;;:::i;9737:136::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9737:136:0;;;:::i;8319:780::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8319:780:0;;;;;;;;:::i;7122:874::-;7246:10;;7211:9;;7246:10;;:18;;:10;:18;7238:52;;;;-1:-1:-1;;;7238:52:0;;;;;;;;;;;;;;;;;7373:16;7393:20;7406:6;7393:12;:20::i;:::-;7373:40;;7443:13;;7433:8;:23;;7425:61;;;;-1:-1:-1;;;7425:61:0;;;;;;;;;7497:19;7519:29;7532:5;;7539:8;7519:12;:29::i;:::-;7497:51;;7559:19;7581:30;7594:11;7606:4;7581:12;:30::i;:::-;7669:10;7664:16;;;;:4;:16;;;;;;;;:29;;;;;:43;;7632:75;;7747:3;7718:26;;;;:32;7791:13;:25;;;;;;;7819:9;7791:37;7763:65;;7858:15;;;:26;;7840:44;;7559:52;-1:-1:-1;7974:14:0;:12;:14::i;:::-;7122:874;;;;:::o;6497:34::-;;;;:::o;10592:198::-;10722:7;:5;:7::i;:::-;-1:-1:-1;;;;;10710:19:0;:10;-1:-1:-1;;;;;10710:19:0;;10702:55;;;;-1:-1:-1;;;10702:55:0;;;;;;;;;10768:14;:12;:14::i;:::-;10592:198::o;6943:49::-;;;;;;;;;;;;;:::o;6888:48::-;;;;;;;;;;;;;:::o;9881:144::-;9947:7;:5;:7::i;:::-;-1:-1:-1;;;;;9935:19:0;:10;-1:-1:-1;;;;;9935:19:0;;9927:62;;;;-1:-1:-1;;;9927:62:0;;;;;;;;;10000:13;:17;9881:144::o;9111:301::-;9165:10;9160:16;;;;:4;:16;;;;;:26;;;9189:3;-1:-1:-1;9152:67:0;;;;-1:-1:-1;;;9152:67:0;;;;;;;;;9243:10;9270:1;9238:16;;;:4;:16;;9304:5;;9330:16;;;;;:29;;;9304:56;;-1:-1:-1;;;9304:56:0;;-1:-1:-1;;;;;9304:5:0;;;;:14;;:56;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9304:56:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;9376:10:0;9403:1;9371:16;;;:4;:16;;;;;:29;;:33;-1:-1:-1;;9111:301:0:o;10041:305::-;10121:7;:5;:7::i;:::-;-1:-1:-1;;;;;10109:19:0;:10;-1:-1:-1;;;;;10109:19:0;;10101:62;;;;-1:-1:-1;;;10101:62:0;;;;;;;;;10182:5;;:30;;-1:-1:-1;;;10182:30:0;;10215:1;;-1:-1:-1;;;;;10182:5:0;;:15;;:30;;10206:4;;10182:30;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10182:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10182:30:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;10182:30:0;;;;;;;;;:34;;10174:96;;;;-1:-1:-1;;;10174:96:0;;;;;;;;;10281:5;;10307:30;;-1:-1:-1;;;10307:30:0;;-1:-1:-1;;;;;10281:5:0;;;;:14;;10296:10;;10281:5;;10307:15;;:30;;10331:4;;10307:30;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10307:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10307:30:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;10307:30:0;;;;;;;;;10281:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10281:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;6221:25:0;;;-1:-1:-1;;;;;6221:25:0;;:::o;10979:84::-;11050:5;;10979:84;:::o;6839:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6330:38::-;;;;:::o;9425:156::-;9504:7;:5;:7::i;:::-;-1:-1:-1;;;;;9492:19:0;:10;-1:-1:-1;;;;;9492:19:0;;9484:62;;;;-1:-1:-1;;;9484:62:0;;;;;;;;;9557:5;:16;9425:156::o;4113:75::-;4152:7;4176:6;-1:-1:-1;;;;;4176:6:0;4113:75;:::o;5881:277::-;5928:4;5947:9;5958:14;5976:9;;;;;;;;;-1:-1:-1;;;;;5976:9:0;-1:-1:-1;;;;;5976:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5976:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5976:27:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5976:27:0;;;;;;;;;5945:58;;;;;;;6095:1;6083:9;:13;6075:44;;;;-1:-1:-1;;;6075:44:0;;;;;;;;;-1:-1:-1;6144:5:0;-1:-1:-1;5881:277:0;:::o;11075:192::-;-1:-1:-1;;;;;11183:18:0;11132:7;11183:18;;;:13;:18;;;;;;;;;11223:14;:19;;;;;;;11243:15;;11183:18;;;;11243:15;11075:192::o;10807:160::-;10876:7;10895:11;10909:26;10922:6;10929:5;;10909:12;:26::i;:::-;10895:40;10807:160;-1:-1:-1;;;10807:160:0:o;9593:136::-;9651:7;:5;:7::i;:::-;-1:-1:-1;;;;;9639:19:0;:10;-1:-1:-1;;;;;9639:19:0;;9631:62;;;;-1:-1:-1;;;9631:62:0;;;;;;;;;9704:10;:17;;-1:-1:-1;;9704:17:0;9717:4;9704:17;;;9593:136::o;8004:307::-;8065:7;8084:16;8103;:14;:16::i;:::-;8084:35;;8130:24;8157:33;8170:9;8181:8;8157:12;:33::i;:::-;8130:60;;8202:27;8232:34;8245:16;8262:3;8232:12;:34::i;:::-;8202:64;8004:307;-1:-1:-1;;;;;8004:307:0:o;9737:136::-;9794:7;:5;:7::i;:::-;-1:-1:-1;;;;;9782:19:0;:10;-1:-1:-1;;;;;9782:19:0;;9774:62;;;;-1:-1:-1;;;9774:62:0;;;;;;;;;9847:10;:18;;-1:-1:-1;;9847:18:0;;;9737:136::o;8319:780::-;8407:13;;8399:6;:21;;8391:59;;;;-1:-1:-1;;;8391:59:0;;;;;;;;;8472:10;;;;:18;;:10;:18;8464:52;;;;-1:-1:-1;;;8464:52:0;;;;;;;;;8529:19;8551:27;8564:5;;8571:6;8551:12;:27::i;:::-;8529:49;;8589:19;8611:30;8624:11;8636:4;8611:12;:30::i;:::-;8661:4;;:57;;-1:-1:-1;;;8661:57:0;;8589:52;;-1:-1:-1;;;;;;8661:4:0;;:17;;:57;;8679:10;;8699:4;;8713;8706:11;;;8661:57;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8661:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;8773:10:0;8758:26;;;;:14;:26;;;;;;;;;;:35;;8729:64;;8847:4;:16;;;;;:29;;;;;:43;;8815:75;;8930:3;8901:26;;;;:32;-1:-1:-1;;8963:15:0;;;:24;;8945:42;;9077:14;:12;:14::i;:::-;8319:780;;;:::o;1265:208::-;1323:7;1347:6;1343:47;;-1:-1:-1;1377:1:0;1370:8;;1343:47;1412:5;;;1416:1;1412;:5;:1;1435:5;;;;;:10;1428:18;;;;1464:1;-1:-1:-1;1265:208:0;;;;;:::o;1479:288::-;1537:7;1636:9;1652:1;1648;:5;;;;;;;1479:288;-1:-1:-1;;;;1479:288:0:o;10358:222::-;10402:24;10445:7;:5;:7::i;:::-;10465:40;;10402:52;;-1:-1:-1;;;;;;10465:17:0;;;10483:21;10465:40;;;;;;;;;10483:21;10465:17;:40;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;10519:4:0;;-1:-1:-1;;;;;10519:4:0;:13;10533:7;:5;:7::i;:::-;10542:4;;:29;;-1:-1:-1;;;10542:29:0;;-1:-1:-1;;;;;10542:4:0;;;;:14;;:29;;10565:4;;10542:29;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10542:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10542:29:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;10542:29:0;;;;;;;;;10519:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10519:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10519:53:0;;;;10358:222;:::o;559:132:-1:-;636:13;;12194:22;12183:34;;13036;;13026:2;;13084:1;;13074:12;698:241;;802:2;790:9;781:7;777:23;773:32;770:2;;;-1:-1;;808:12;770:2;72:20;;-1:-1;;;;;11977:54;;12667:35;;12657:2;;-1:-1;;12706:12;946:241;;1050:2;1038:9;1029:7;1025:23;1021:32;1018:2;;;-1:-1;;1056:12;1018:2;-1:-1;348:20;;1012:175;-1:-1;1012:175;1194:263;;1309:2;1297:9;1288:7;1284:23;1280:32;1277:2;;;-1:-1;;1315:12;1277:2;-1:-1;496:13;;1271:186;-1:-1;1271:186;1464:803;;;;;;1644:3;1632:9;1623:7;1619:23;1615:33;1612:2;;;-1:-1;;1651:12;1612:2;1713:63;1768:7;1744:22;1713:63;;;1703:73;;1813:2;1866:9;1862:22;219:13;1821:73;;1931:2;1985:9;1981:22;496:13;1939:74;;2050:2;2104:9;2100:22;496:13;2058:74;;2188:63;2243:7;2169:3;2223:9;2219:22;2188:63;;;2178:73;;1606:661;;;;;;;;;5491:213;-1:-1;;;;;11977:54;;;;2494:37;;5609:2;5594:18;;5580:124;5711:451;-1:-1;;;;;11977:54;;;2353:58;;11977:54;;;;6065:2;6050:18;;2494:37;6148:2;6133:18;;5442:37;;;;5893:2;5878:18;;5864:298;6169:340;-1:-1;;;;;11977:54;;;;2353:58;;6495:2;6480:18;;5442:37;6323:2;6308:18;;6294:215;6847:535;11811:13;;11804:21;2608:34;;7202:2;7187:18;;5442:37;;;;7285:2;7270:18;;5442:37;7368:2;7353:18;;5442:37;7043:3;7028:19;;7014:368;7803:407;7994:2;8008:47;;;3206:2;7979:18;;;11579:19;-1:-1;;;11619:14;;;3222:44;3285:12;;;7965:245;8217:407;8408:2;8422:47;;;3536:2;8393:18;;;11579:19;-1:-1;;;11619:14;;;3552:41;3612:12;;;8379:245;8631:407;8822:2;8836:47;;;3863:2;8807:18;;;11579:19;3899:25;11619:14;;;3879:46;3944:12;;;8793:245;9045:407;9236:2;9250:47;;;4195:2;9221:18;;;11579:19;4231:26;11619:14;;;4211:47;4277:12;;;9207:245;9459:407;9650:2;9664:47;;;4528:2;9635:18;;;11579:19;4564:34;11619:14;;;4544:55;-1:-1;;;4619:12;;;4612:40;4671:12;;;9621:245;9873:407;10064:2;10078:47;;;4922:2;10049:18;;;11579:19;4958:27;11619:14;;;4938:48;5005:12;;;10035:245;10287:407;10478:2;10492:47;;;5256:2;10463:18;;;11579:19;5292:33;11619:14;;;5272:54;5345:12;;;10449:245;10701:213;5442:37;;;10819:2;10804:18;;10790:124;10921:547;5442:37;;;11288:2;11273:18;;5442:37;;;;11371:2;11356:18;;5442:37;11454:2;11439:18;;5442:37;11123:3;11108:19;;11094:374

Swarm Source

ipfs://f2c244e04d492ed852b2547cdfd92c8c0865e9017785b3bac84f861eef906bed

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  ]
[ 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.