ETH Price: $3,238.52 (-1.47%)

Contract

0xEc6C55A4423DD088df40A5eEd3cBa85D7ce992c7
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Total Eth Le...134056502021-10-12 19:52:411188 days ago1634068361IN
0xEc6C55A4...D7ce992c7
0 ETH0.003353669.66213679
Dispense To Fund...134056392021-10-12 19:50:451188 days ago1634068245IN
0xEc6C55A4...D7ce992c7
0 ETH0.0023612671.55132295
Set Total Eth Le...134056292021-10-12 19:49:131188 days ago1634068153IN
0xEc6C55A4...D7ce992c7
0 ETH0.0027983590.18520243
Lend Liquidity133257132021-09-30 7:13:081200 days ago1632985988IN
0xEc6C55A4...D7ce992c7
0 ETH0.0046157156.49102136
Lend ETH Liquidi...133256992021-09-30 7:09:021200 days ago1632985742IN
0xEc6C55A4...D7ce992c7
0.1 ETH0.00158738.30373952
Lend ETH Liquidi...133256892021-09-30 7:07:591200 days ago1632985679IN
0xEc6C55A4...D7ce992c7
0.01 ETH0.0041481454.84636977
Lend ETH Liquidi...133252492021-09-30 5:34:441200 days ago1632980084IN
0xEc6C55A4...D7ce992c7
0.3 ETH0.0023402656.4845017
Lend ETH Liquidi...133251612021-09-30 5:15:271200 days ago1632978927IN
0xEc6C55A4...D7ce992c7
0.4626 ETH0.0022953455.4003292
Lend ETH Liquidi...133220922021-09-29 17:47:421201 days ago1632937662IN
0xEc6C55A4...D7ce992c7
2 ETH0.00427733103.23754461
Lend ETH Liquidi...133220772021-09-29 17:44:301201 days ago1632937470IN
0xEc6C55A4...D7ce992c7
15 ETH0.0034228382.61341103
Lend Liquidity133184672021-09-29 4:06:571201 days ago1632888417IN
0xEc6C55A4...D7ce992c7
0 ETH0.0060556964.39281483
Lend Liquidity133084812021-09-27 15:03:491203 days ago1632755029IN
0xEc6C55A4...D7ce992c7
0 ETH0.0083230184.23506868
Lend ETH Liquidi...133024202021-09-26 16:17:261204 days ago1632673046IN
0xEc6C55A4...D7ce992c7
0.2 ETH0.0029115370.27263814
Set Total Eth Le...132935252021-09-25 7:16:031205 days ago1632554163IN
0xEc6C55A4...D7ce992c7
0 ETH0.0015501532.20029903
Set Total Eth Le...132935112021-09-25 7:13:331205 days ago1632554013IN
0xEc6C55A4...D7ce992c7
0 ETH0.0016907436.31240522
Dispense To Fund...132935082021-09-25 7:13:111205 days ago1632553991IN
0xEc6C55A4...D7ce992c7
0 ETH0.0011815835.80449916
Set Total Eth Le...132934962021-09-25 7:11:261205 days ago1632553886IN
0xEc6C55A4...D7ce992c7
0 ETH0.0016897954.47953282
Lend Liquidity132890002021-09-24 14:21:171206 days ago1632493277IN
0xEc6C55A4...D7ce992c7
0 ETH0.0047649473.75270338
Lend ETH Liquidi...132836742021-09-23 18:47:371207 days ago1632422857IN
0xEc6C55A4...D7ce992c7
5 ETH0.005742775.92955429
Lend Liquidity132829742021-09-23 16:09:211207 days ago1632413361IN
0xEc6C55A4...D7ce992c7
0 ETH0.01618292172.63074488
Lend Liquidity132807512021-09-23 7:53:401207 days ago1632383620IN
0xEc6C55A4...D7ce992c7
0 ETH0.0054373658.00287158
Lend Liquidity132805552021-09-23 7:09:501207 days ago1632380990IN
0xEc6C55A4...D7ce992c7
0 ETH0.004461648.24761656
Lend Liquidity132804892021-09-23 6:53:201207 days ago1632380000IN
0xEc6C55A4...D7ce992c7
0 ETH0.0051630155.0763231
Lend Liquidity132803672021-09-23 6:30:161207 days ago1632378616IN
0xEc6C55A4...D7ce992c7
0 ETH0.006263258.24344064
Lend Liquidity132803332021-09-23 6:22:491207 days ago1632378169IN
0xEc6C55A4...D7ce992c7
0 ETH0.0058187162.0789211
View all transactions

Latest 8 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
134056392021-10-12 19:50:451188 days ago1634068245
0xEc6C55A4...D7ce992c7
18.0726 ETH
132935082021-09-25 7:13:111205 days ago1632553991
0xEc6C55A4...D7ce992c7
12.2552 ETH
132363162021-09-16 10:49:151214 days ago1631789355
0xEc6C55A4...D7ce992c7
22.1499 ETH
132309232021-09-15 14:51:151215 days ago1631717475
0xEc6C55A4...D7ce992c7
287.48226343 ETH
132221182021-09-14 6:09:171216 days ago1631599757
0xEc6C55A4...D7ce992c7
11.372 ETH
132179742021-09-13 14:50:421217 days ago1631544642
0xEc6C55A4...D7ce992c7
37.9995 ETH
132020702021-09-11 3:27:061219 days ago1631330826
0xEc6C55A4...D7ce992c7
20.57062937 ETH
131970182021-09-10 8:45:221220 days ago1631263522
0xEc6C55A4...D7ce992c7
0.1 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LPLeverageLaunch

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU AGPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-09-10
*/

// SPDX-License-Identifier: AGPL-3.0-or-later
pragma solidity 0.8.4;


abstract contract OwnableStatic {

    mapping( address => bool ) public _isOwner;

    constructor() {
        _setOwner(msg.sender, true);
    }

    modifier onlyOwner() {
    require( _isOwner[msg.sender] );
    _;
  }

    function _setOwner(address newOwner, bool makeOwner) private {
        _isOwner[newOwner] = makeOwner;
        // _owner = newOwner;
        // emit OwnershipTransferred(oldOwner, newOwner);
    }

    function setOwnerShip( address newOwner, bool makeOOwner ) external onlyOwner() returns ( bool success ) {
    _isOwner[newOwner] = makeOOwner;
    success = true;
  }
}

library AddressUtils {
  function toString (address account) internal pure returns (string memory) {
    bytes32 value = bytes32(uint256(uint160(account)));
    bytes memory alphabet = '0123456789abcdef';
    bytes memory chars = new bytes(42);

    chars[0] = '0';
    chars[1] = 'x';

    for (uint256 i = 0; i < 20; i++) {
      chars[2 + i * 2] = alphabet[uint8(value[i + 12] >> 4)];
      chars[3 + i * 2] = alphabet[uint8(value[i + 12] & 0x0f)];
    }

    return string(chars);
  }

  function isContract (address account) internal view returns (bool) {
    uint size;
    assembly { size := extcodesize(account) }
    return size > 0;
  }

  function sendValue (address payable account, uint amount) internal {
    (bool success, ) = account.call{ value: amount }('');
    require(success, 'AddressUtils: failed to send value');
  }

  function functionCall (address target, bytes memory data) internal returns (bytes memory) {
    return functionCall(target, data, 'AddressUtils: failed low-level call');
  }

  function functionCall (address target, bytes memory data, string memory error) internal returns (bytes memory) {
    return _functionCallWithValue(target, data, 0, error);
  }

  function functionCallWithValue (address target, bytes memory data, uint value) internal returns (bytes memory) {
    return functionCallWithValue(target, data, value, 'AddressUtils: failed low-level call with value');
  }

  function functionCallWithValue (address target, bytes memory data, uint value, string memory error) internal returns (bytes memory) {
    require(address(this).balance >= value, 'AddressUtils: insufficient balance for call');
    return _functionCallWithValue(target, data, value, error);
  }

  function _functionCallWithValue (address target, bytes memory data, uint value, string memory error) private returns (bytes memory) {
    require(isContract(target), 'AddressUtils: function call to non-contract');

    (bool success, bytes memory returnData) = target.call{ value: value }(data);

    if (success) {
      return returnData;
    } else if (returnData.length > 0) {
      assembly {
        let returnData_size := mload(returnData)
        revert(add(32, returnData), returnData_size)
      }
    } else {
      revert(error);
    }
  }
}

interface IERC20 {
  event Transfer(
    address indexed from,
    address indexed to,
    uint256 value
  );

  event Approval(
    address indexed owner,
    address indexed spender,
    uint256 value
  );

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

library SafeERC20 {
    using AddressUtils for address;

    function safeTransfer(IERC20 token, address to, uint256 value) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
        _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    /**
     * @dev safeApprove (like approve) should only be called when setting an initial allowance or when resetting it to zero; otherwise prefer safeIncreaseAllowance and safeDecreaseAllowance
     */
    function safeApprove(IERC20 token, address spender, uint256 value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );

        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }

    function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        uint256 newAllowance = token.allowance(address(this), spender) + value;
        _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
    }

    function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {
        unchecked {
            uint256 oldAllowance = token.allowance(address(this), spender);
            require(oldAllowance >= value, "SafeERC20: decreased allowance below zero");
            uint256 newAllowance = oldAllowance - value;
            _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
        }
    }

    /**
     * @notice send transaction data and check validity of return value, if present
     * @param token ERC20 token interface
     * @param data transaction data
     */
    function _callOptionalReturn(IERC20 token, bytes memory data) private {
        bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");

        if (returndata.length > 0) {
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

interface ILPLeverageLaunch {

  function isTokenApprovedForLending( address lentToken ) external view returns ( bool );
  
  function amountLoanedForLoanedTokenForLender( address holder, address lentTToken ) external view returns ( uint256 );

  function totalLoanedForToken( address lentToken ) external view returns ( uint256 );

  function launchTokenDueForHolder( address holder ) external view returns ( uint256 );

  function setPreviousDepositSource( address newPreviousDepositSource ) external returns ( bool success );

  function priceForLentToken( address lentToken ) external view returns ( uint256 );

  function _weth9() external view returns ( address );
  
  function fundManager() external view returns ( address );

  function isActive() external view returns ( bool );

  function changeActive( bool makeActive ) external returns ( bool success );

  function setFundManager( address newFundManager ) external returns ( bool success );

  function setWETH9( address weth9 ) external returns ( bool success );

  function setPrice( address lentToken, uint256 price ) external returns ( bool success );

  function dispenseToFundManager( address token ) external returns ( bool success );

  function changeTokenLendingApproval( address newToken, bool isApproved ) external returns ( bool success );

  function getTotalLoaned(address token ) external view returns (uint256 totalLoaned);

  function lendLiquidity( address loanedToken, uint amount ) external returns ( bool success );

  function getAmountDueToLender( address lender ) external view returns ( uint256 amountDue );

  function lendETHLiquidity() external payable returns ( bool success );

  function dispenseToFundManager() external returns ( bool success );

  function setTotalEthLent( uint256 newValidEthBalance ) external returns ( bool success );

  function getAmountLoaned( address lender, address lentToken ) external view returns ( uint256 amountLoaned );

}

contract LPLeverageLaunch is OwnableStatic, ILPLeverageLaunch {

  using AddressUtils for address;
  using SafeERC20 for IERC20;

  mapping( address => bool ) public override isTokenApprovedForLending;

  mapping( address => mapping( address => uint256 ) ) private _amountLoanedForLoanedTokenForLender;
  
  mapping( address => uint256 ) private _totalLoanedForToken;

  mapping( address => uint256 ) private _launchTokenDueForHolder;

  mapping( address => uint256 ) public override priceForLentToken;

  address public override _weth9;

  address public override fundManager;

  bool public override isActive;

  address public previousDepoistSource;

  modifier onlyActive() {
    require( isActive == true, "Launch: Lending is not active." );
    _;
  }

  constructor() {}


  function amountLoanedForLoanedTokenForLender( address holder, address lentToken ) external override view returns ( uint256 ) {
    return _amountLoanedForLoanedTokenForLender[holder][lentToken] + ILPLeverageLaunch(previousDepoistSource).amountLoanedForLoanedTokenForLender( holder, lentToken );
  }

  function totalLoanedForToken( address lentToken ) external override view returns ( uint256 ) {
    return _totalLoanedForToken[lentToken] + ILPLeverageLaunch(previousDepoistSource).totalLoanedForToken(lentToken);
  }

  function launchTokenDueForHolder( address holder ) external override view returns ( uint256 ) {
    return _launchTokenDueForHolder[holder] + ILPLeverageLaunch(previousDepoistSource).launchTokenDueForHolder(holder);
  }

  function setPreviousDepositSource( address newPreviousDepositSource ) external override onlyOwner() returns ( bool success ) {
    previousDepoistSource = newPreviousDepositSource;
    success = true;
  }

  function changeActive( bool makeActive ) external override onlyOwner() returns ( bool success ) {
    isActive = makeActive;
    success = true;
  }

  function setFundManager( address newFundManager ) external override onlyOwner() returns ( bool success ) {
    fundManager = newFundManager;
    success = true;
  }

  function setWETH9( address weth9 ) external override onlyOwner() returns ( bool success ) {
    _weth9 = weth9;
    success = true;
  }

  function setPrice( address lentToken, uint256 price ) external override onlyOwner() returns ( bool success ) {
    priceForLentToken[lentToken] = price;
    success = true;
  }

  function dispenseToFundManager( address token ) external override onlyOwner() returns ( bool success ) {
    _dispenseToFundManager( token );
    success = true;
  }

  function _dispenseToFundManager( address token ) internal {
    require( fundManager != address(0) );
    IERC20(token).safeTransfer( fundManager, IERC20(token).balanceOf( address(this) ) );
  }

  function changeTokenLendingApproval( address newToken, bool isApproved ) external override onlyOwner() returns ( bool success ) {
    isTokenApprovedForLending[newToken] = isApproved;
    success = true;
  }

  function getTotalLoaned(address token ) external override view returns (uint256 totalLoaned) {
    totalLoaned = _totalLoanedForToken[token];
  }

  /**
   * @param loanedToken The address fo the token being paid. Ethereum is indicated with _weth9.
   */
  function lendLiquidity( address loanedToken, uint amount ) external override onlyActive() returns ( bool success ) {
    require( fundManager != address(0) );
    require( isTokenApprovedForLending[loanedToken] );

    IERC20(loanedToken).safeTransferFrom( msg.sender, fundManager, amount );
    _amountLoanedForLoanedTokenForLender[msg.sender][loanedToken] += amount;
    _totalLoanedForToken[loanedToken] += amount;

    _launchTokenDueForHolder[msg.sender] += (amount / priceForLentToken[loanedToken]);

    success = true;
  }

  function getAmountDueToLender( address lender ) external override view returns ( uint256 amountDue ) {
    amountDue = _launchTokenDueForHolder[lender];
  }

  function lendETHLiquidity() external override payable onlyActive() returns ( bool success ) {
    _lendETHLiquidity();

    success = true;
  }

  function _lendETHLiquidity() internal {
    require( fundManager != address(0), "Launch: fundManager is address(0)." );
    _amountLoanedForLoanedTokenForLender[msg.sender][_weth9] += msg.value;
    _totalLoanedForToken[_weth9] += msg.value;
    _launchTokenDueForHolder[msg.sender] += msg.value;
  }

  function dispenseToFundManager() external override onlyOwner() returns ( bool success ) {
    payable(msg.sender).transfer( _totalLoanedForToken[_weth9] );
    delete _totalLoanedForToken[_weth9];
    success = true;
  }

  function setTotalEthLent( uint256 newValidEthBalance ) external override onlyOwner() returns ( bool success ) {
    _totalLoanedForToken[address(_weth9)] = newValidEthBalance;
    success = true;
  }

  function getAmountLoaned( address lender, address lentToken ) external override view returns ( uint256 amountLoaned ) {
    amountLoaned = _amountLoanedForLoanedTokenForLender[lender][lentToken];
  }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_weth9","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"lentToken","type":"address"}],"name":"amountLoanedForLoanedTokenForLender","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"makeActive","type":"bool"}],"name":"changeActive","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newToken","type":"address"},{"internalType":"bool","name":"isApproved","type":"bool"}],"name":"changeTokenLendingApproval","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"dispenseToFundManager","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dispenseToFundManager","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fundManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"lender","type":"address"}],"name":"getAmountDueToLender","outputs":[{"internalType":"uint256","name":"amountDue","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"lender","type":"address"},{"internalType":"address","name":"lentToken","type":"address"}],"name":"getAmountLoaned","outputs":[{"internalType":"uint256","name":"amountLoaned","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getTotalLoaned","outputs":[{"internalType":"uint256","name":"totalLoaned","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTokenApprovedForLending","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"launchTokenDueForHolder","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lendETHLiquidity","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"loanedToken","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"lendLiquidity","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"previousDepoistSource","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"priceForLentToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newFundManager","type":"address"}],"name":"setFundManager","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"bool","name":"makeOOwner","type":"bool"}],"name":"setOwnerShip","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPreviousDepositSource","type":"address"}],"name":"setPreviousDepositSource","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"lentToken","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"}],"name":"setPrice","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValidEthBalance","type":"uint256"}],"name":"setTotalEthLent","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"weth9","type":"address"}],"name":"setWETH9","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"lentToken","type":"address"}],"name":"totalLoanedForToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50336000908152602081905260409020805460ff1916600117905561122c8061003a6000396000f3fe6080604052600436106101655760003560e01c80638f16e341116100d1578063cdd4eb141161008a578063ed34769a11610064578063ed34769a1461048c578063f087bc67146104ac578063f9a7c207146104e2578063faca12be1461050257600080fd5b8063cdd4eb1414610444578063de218a3414610464578063eb52e9d21461046c57600080fd5b80638f16e3411461034e57806399a98a621461036e578063b71fbe4b1461038e578063bfb2cdcd146103be578063c90c152b14610404578063ca91e18c1461042457600080fd5b80634a501d7d116101235780634a501d7d1461025057806358dc0df3146102705780635f86b0da146102a05780636209ec2d146102d65780637027f3971461030e5780637b5012a11461032e57600080fd5b8062e4768b1461016a5780630230e4121461019f57806310254d35146101bf57806322f3e2d4146101d4578063232a3060146101f557806345625fe914610215575b600080fd5b34801561017657600080fd5b5061018a610185366004611098565b610522565b60405190151581526020015b60405180910390f35b3480156101ab57600080fd5b5061018a6101ba366004611016565b61055e565b3480156101cb57600080fd5b5061018a61058b565b3480156101e057600080fd5b5060075461018a90600160a01b900460ff1681565b34801561020157600080fd5b5061018a610210366004611016565b61060f565b34801561022157600080fd5b50610242610230366004611016565b60056020526000908152604090205481565b604051908152602001610196565b34801561025c57600080fd5b5061018a61026b366004611062565b610651565b34801561027c57600080fd5b5061018a61028b366004611016565b60016020526000908152604090205460ff1681565b3480156102ac57600080fd5b506102426102bb366004611016565b6001600160a01b031660009081526004602052604090205490565b3480156102e257600080fd5b506007546102f6906001600160a01b031681565b6040516001600160a01b039091168152602001610196565b34801561031a57600080fd5b5061018a610329366004611016565b61069e565b34801561033a57600080fd5b5061018a610349366004611062565b6106e0565b34801561035a57600080fd5b506006546102f6906001600160a01b031681565b34801561037a57600080fd5b50610242610389366004611016565b61072b565b34801561039a57600080fd5b5061018a6103a9366004611016565b60006020819052908152604090205460ff1681565b3480156103ca57600080fd5b506102426103d9366004611030565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561041057600080fd5b5061024261041f366004611030565b6107d2565b34801561043057600080fd5b5061018a61043f366004611016565b61088f565b34801561045057600080fd5b5061018a61045f366004611098565b6108d1565b61018a610a42565b34801561047857600080fd5b5061018a6104873660046110c1565b610ab1565b34801561049857600080fd5b506008546102f6906001600160a01b031681565b3480156104b857600080fd5b506102426104c7366004611016565b6001600160a01b031660009081526003602052604090205490565b3480156104ee57600080fd5b5061018a6104fd3660046110f9565b610aef565b34801561050e57600080fd5b5061024261051d366004611016565b610b2c565b3360009081526020819052604081205460ff1661053e57600080fd5b506001600160a01b03909116600090815260056020526040902055600190565b3360009081526020819052604081205460ff1661057a57600080fd5b61058382610bcd565b506001919050565b3360009081526020819052604081205460ff166105a757600080fd5b6006546001600160a01b0316600090815260036020526040808220549051339282156108fc02929190818181858888f193505050501580156105ed573d6000803e3d6000fd5b50506006546001600160a01b0316600090815260036020526040812055600190565b3360009081526020819052604081205460ff1661062b57600080fd5b50600780546001600160a01b0319166001600160a01b0392909216919091179055600190565b3360009081526020819052604081205460ff1661066d57600080fd5b506001600160a01b03919091166000908152600160208190526040909120805460ff19169215159290921790915590565b3360009081526020819052604081205460ff166106ba57600080fd5b50600880546001600160a01b0319166001600160a01b0392909216919091179055600190565b3360009081526020819052604081205460ff166106fc57600080fd5b506001600160a01b03919091166000908152602081905260409020805460ff1916911515919091179055600190565b600854604051634cd4c53160e11b81526001600160a01b03838116600483015260009216906399a98a629060240160206040518083038186803b15801561077157600080fd5b505afa158015610785573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a99190611111565b6001600160a01b0383166000908152600460205260409020546107cc9190611178565b92915050565b60085460405163c90c152b60e01b81526001600160a01b0384811660048301528381166024830152600092169063c90c152b9060440160206040518083038186803b15801561082057600080fd5b505afa158015610834573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108589190611111565b6001600160a01b038085166000908152600260209081526040808320938716835292905220546108889190611178565b9392505050565b3360009081526020819052604081205460ff166108ab57600080fd5b50600680546001600160a01b0319166001600160a01b0392909216919091179055600190565b600754600090600160a01b900460ff1615156001146109375760405162461bcd60e51b815260206004820152601e60248201527f4c61756e63683a204c656e64696e67206973206e6f74206163746976652e000060448201526064015b60405180910390fd5b6007546001600160a01b031661094c57600080fd5b6001600160a01b03831660009081526001602052604090205460ff1661097157600080fd5b60075461098d906001600160a01b038581169133911685610c79565b3360009081526002602090815260408083206001600160a01b0387168452909152812080548492906109c0908490611178565b90915550506001600160a01b038316600090815260036020526040812080548492906109ed908490611178565b90915550506001600160a01b038316600090815260056020526040902054610a15908361119c565b3360009081526004602052604081208054909190610a34908490611178565b909155506001949350505050565b600754600090600160a01b900460ff161515600114610aa35760405162461bcd60e51b815260206004820152601e60248201527f4c61756e63683a204c656e64696e67206973206e6f74206163746976652e0000604482015260640161092e565b610aab610cea565b50600190565b3360009081526020819052604081205460ff16610acd57600080fd5b5060078054911515600160a01b0260ff60a01b19909216919091179055600190565b3360009081526020819052604081205460ff16610b0b57600080fd5b506006546001600160a01b0316600090815260036020526040902055600190565b600854604051637d65095f60e11b81526001600160a01b038381166004830152600092169063faca12be9060240160206040518083038186803b158015610b7257600080fd5b505afa158015610b86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610baa9190611111565b6001600160a01b0383166000908152600360205260409020546107cc9190611178565b6007546001600160a01b0316610be257600080fd5b6007546040516370a0823160e01b8152306004820152610c76916001600160a01b0390811691908416906370a082319060240160206040518083038186803b158015610c2d57600080fd5b505afa158015610c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c659190611111565b6001600160a01b0384169190610ddc565b50565b6040516001600160a01b0380851660248301528316604482015260648101829052610ce49085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610e11565b50505050565b6007546001600160a01b0316610d4d5760405162461bcd60e51b815260206004820152602260248201527f4c61756e63683a2066756e644d616e6167657220697320616464726573732830604482015261149760f11b606482015260840161092e565b3360009081526002602090815260408083206006546001600160a01b0316845290915281208054349290610d82908490611178565b90915550506006546001600160a01b031660009081526003602052604081208054349290610db1908490611178565b90915550503360009081526004602052604081208054349290610dd5908490611178565b9091555050565b6040516001600160a01b038316602482015260448101829052610e0c90849063a9059cbb60e01b90606401610cad565b505050565b6000610e66826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610ee39092919063ffffffff16565b805190915015610e0c5780806020019051810190610e8491906110dd565b610e0c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161092e565b6060610ef28484600085610efa565b949350505050565b6060843b610f5e5760405162461bcd60e51b815260206004820152602b60248201527f416464726573735574696c733a2066756e6374696f6e2063616c6c20746f206e60448201526a1bdb8b58dbdb9d1c9858dd60aa1b606482015260840161092e565b600080866001600160a01b03168587604051610f7a9190611129565b60006040518083038185875af1925050503d8060008114610fb7576040519150601f19603f3d011682016040523d82523d6000602084013e610fbc565b606091505b50915091508115610fd0579150610ef29050565b805115610fe05780518082602001fd5b8360405162461bcd60e51b815260040161092e9190611145565b80356001600160a01b038116811461101157600080fd5b919050565b600060208284031215611027578081fd5b61088882610ffa565b60008060408385031215611042578081fd5b61104b83610ffa565b915061105960208401610ffa565b90509250929050565b60008060408385031215611074578182fd5b61107d83610ffa565b9150602083013561108d816111e8565b809150509250929050565b600080604083850312156110aa578182fd5b6110b383610ffa565b946020939093013593505050565b6000602082840312156110d2578081fd5b8135610888816111e8565b6000602082840312156110ee578081fd5b8151610888816111e8565b60006020828403121561110a578081fd5b5035919050565b600060208284031215611122578081fd5b5051919050565b6000825161113b8184602087016111bc565b9190910192915050565b60208152600082518060208401526111648160408501602087016111bc565b601f01601f19169190910160400192915050565b6000821982111561119757634e487b7160e01b81526011600452602481fd5b500190565b6000826111b757634e487b7160e01b81526012600452602481fd5b500490565b60005b838110156111d75781810151838201526020016111bf565b83811115610ce45750506000910152565b8015158114610c7657600080fdfea2646970667358221220a0b66a7c02973ba6a6ebbd31be82114d2d259b522136772054e41283000d73af64736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101655760003560e01c80638f16e341116100d1578063cdd4eb141161008a578063ed34769a11610064578063ed34769a1461048c578063f087bc67146104ac578063f9a7c207146104e2578063faca12be1461050257600080fd5b8063cdd4eb1414610444578063de218a3414610464578063eb52e9d21461046c57600080fd5b80638f16e3411461034e57806399a98a621461036e578063b71fbe4b1461038e578063bfb2cdcd146103be578063c90c152b14610404578063ca91e18c1461042457600080fd5b80634a501d7d116101235780634a501d7d1461025057806358dc0df3146102705780635f86b0da146102a05780636209ec2d146102d65780637027f3971461030e5780637b5012a11461032e57600080fd5b8062e4768b1461016a5780630230e4121461019f57806310254d35146101bf57806322f3e2d4146101d4578063232a3060146101f557806345625fe914610215575b600080fd5b34801561017657600080fd5b5061018a610185366004611098565b610522565b60405190151581526020015b60405180910390f35b3480156101ab57600080fd5b5061018a6101ba366004611016565b61055e565b3480156101cb57600080fd5b5061018a61058b565b3480156101e057600080fd5b5060075461018a90600160a01b900460ff1681565b34801561020157600080fd5b5061018a610210366004611016565b61060f565b34801561022157600080fd5b50610242610230366004611016565b60056020526000908152604090205481565b604051908152602001610196565b34801561025c57600080fd5b5061018a61026b366004611062565b610651565b34801561027c57600080fd5b5061018a61028b366004611016565b60016020526000908152604090205460ff1681565b3480156102ac57600080fd5b506102426102bb366004611016565b6001600160a01b031660009081526004602052604090205490565b3480156102e257600080fd5b506007546102f6906001600160a01b031681565b6040516001600160a01b039091168152602001610196565b34801561031a57600080fd5b5061018a610329366004611016565b61069e565b34801561033a57600080fd5b5061018a610349366004611062565b6106e0565b34801561035a57600080fd5b506006546102f6906001600160a01b031681565b34801561037a57600080fd5b50610242610389366004611016565b61072b565b34801561039a57600080fd5b5061018a6103a9366004611016565b60006020819052908152604090205460ff1681565b3480156103ca57600080fd5b506102426103d9366004611030565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561041057600080fd5b5061024261041f366004611030565b6107d2565b34801561043057600080fd5b5061018a61043f366004611016565b61088f565b34801561045057600080fd5b5061018a61045f366004611098565b6108d1565b61018a610a42565b34801561047857600080fd5b5061018a6104873660046110c1565b610ab1565b34801561049857600080fd5b506008546102f6906001600160a01b031681565b3480156104b857600080fd5b506102426104c7366004611016565b6001600160a01b031660009081526003602052604090205490565b3480156104ee57600080fd5b5061018a6104fd3660046110f9565b610aef565b34801561050e57600080fd5b5061024261051d366004611016565b610b2c565b3360009081526020819052604081205460ff1661053e57600080fd5b506001600160a01b03909116600090815260056020526040902055600190565b3360009081526020819052604081205460ff1661057a57600080fd5b61058382610bcd565b506001919050565b3360009081526020819052604081205460ff166105a757600080fd5b6006546001600160a01b0316600090815260036020526040808220549051339282156108fc02929190818181858888f193505050501580156105ed573d6000803e3d6000fd5b50506006546001600160a01b0316600090815260036020526040812055600190565b3360009081526020819052604081205460ff1661062b57600080fd5b50600780546001600160a01b0319166001600160a01b0392909216919091179055600190565b3360009081526020819052604081205460ff1661066d57600080fd5b506001600160a01b03919091166000908152600160208190526040909120805460ff19169215159290921790915590565b3360009081526020819052604081205460ff166106ba57600080fd5b50600880546001600160a01b0319166001600160a01b0392909216919091179055600190565b3360009081526020819052604081205460ff166106fc57600080fd5b506001600160a01b03919091166000908152602081905260409020805460ff1916911515919091179055600190565b600854604051634cd4c53160e11b81526001600160a01b03838116600483015260009216906399a98a629060240160206040518083038186803b15801561077157600080fd5b505afa158015610785573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a99190611111565b6001600160a01b0383166000908152600460205260409020546107cc9190611178565b92915050565b60085460405163c90c152b60e01b81526001600160a01b0384811660048301528381166024830152600092169063c90c152b9060440160206040518083038186803b15801561082057600080fd5b505afa158015610834573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108589190611111565b6001600160a01b038085166000908152600260209081526040808320938716835292905220546108889190611178565b9392505050565b3360009081526020819052604081205460ff166108ab57600080fd5b50600680546001600160a01b0319166001600160a01b0392909216919091179055600190565b600754600090600160a01b900460ff1615156001146109375760405162461bcd60e51b815260206004820152601e60248201527f4c61756e63683a204c656e64696e67206973206e6f74206163746976652e000060448201526064015b60405180910390fd5b6007546001600160a01b031661094c57600080fd5b6001600160a01b03831660009081526001602052604090205460ff1661097157600080fd5b60075461098d906001600160a01b038581169133911685610c79565b3360009081526002602090815260408083206001600160a01b0387168452909152812080548492906109c0908490611178565b90915550506001600160a01b038316600090815260036020526040812080548492906109ed908490611178565b90915550506001600160a01b038316600090815260056020526040902054610a15908361119c565b3360009081526004602052604081208054909190610a34908490611178565b909155506001949350505050565b600754600090600160a01b900460ff161515600114610aa35760405162461bcd60e51b815260206004820152601e60248201527f4c61756e63683a204c656e64696e67206973206e6f74206163746976652e0000604482015260640161092e565b610aab610cea565b50600190565b3360009081526020819052604081205460ff16610acd57600080fd5b5060078054911515600160a01b0260ff60a01b19909216919091179055600190565b3360009081526020819052604081205460ff16610b0b57600080fd5b506006546001600160a01b0316600090815260036020526040902055600190565b600854604051637d65095f60e11b81526001600160a01b038381166004830152600092169063faca12be9060240160206040518083038186803b158015610b7257600080fd5b505afa158015610b86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610baa9190611111565b6001600160a01b0383166000908152600360205260409020546107cc9190611178565b6007546001600160a01b0316610be257600080fd5b6007546040516370a0823160e01b8152306004820152610c76916001600160a01b0390811691908416906370a082319060240160206040518083038186803b158015610c2d57600080fd5b505afa158015610c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c659190611111565b6001600160a01b0384169190610ddc565b50565b6040516001600160a01b0380851660248301528316604482015260648101829052610ce49085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610e11565b50505050565b6007546001600160a01b0316610d4d5760405162461bcd60e51b815260206004820152602260248201527f4c61756e63683a2066756e644d616e6167657220697320616464726573732830604482015261149760f11b606482015260840161092e565b3360009081526002602090815260408083206006546001600160a01b0316845290915281208054349290610d82908490611178565b90915550506006546001600160a01b031660009081526003602052604081208054349290610db1908490611178565b90915550503360009081526004602052604081208054349290610dd5908490611178565b9091555050565b6040516001600160a01b038316602482015260448101829052610e0c90849063a9059cbb60e01b90606401610cad565b505050565b6000610e66826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610ee39092919063ffffffff16565b805190915015610e0c5780806020019051810190610e8491906110dd565b610e0c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161092e565b6060610ef28484600085610efa565b949350505050565b6060843b610f5e5760405162461bcd60e51b815260206004820152602b60248201527f416464726573735574696c733a2066756e6374696f6e2063616c6c20746f206e60448201526a1bdb8b58dbdb9d1c9858dd60aa1b606482015260840161092e565b600080866001600160a01b03168587604051610f7a9190611129565b60006040518083038185875af1925050503d8060008114610fb7576040519150601f19603f3d011682016040523d82523d6000602084013e610fbc565b606091505b50915091508115610fd0579150610ef29050565b805115610fe05780518082602001fd5b8360405162461bcd60e51b815260040161092e9190611145565b80356001600160a01b038116811461101157600080fd5b919050565b600060208284031215611027578081fd5b61088882610ffa565b60008060408385031215611042578081fd5b61104b83610ffa565b915061105960208401610ffa565b90509250929050565b60008060408385031215611074578182fd5b61107d83610ffa565b9150602083013561108d816111e8565b809150509250929050565b600080604083850312156110aa578182fd5b6110b383610ffa565b946020939093013593505050565b6000602082840312156110d2578081fd5b8135610888816111e8565b6000602082840312156110ee578081fd5b8151610888816111e8565b60006020828403121561110a578081fd5b5035919050565b600060208284031215611122578081fd5b5051919050565b6000825161113b8184602087016111bc565b9190910192915050565b60208152600082518060208401526111648160408501602087016111bc565b601f01601f19169190910160400192915050565b6000821982111561119757634e487b7160e01b81526011600452602481fd5b500190565b6000826111b757634e487b7160e01b81526012600452602481fd5b500490565b60005b838110156111d75781810151838201526020016111bf565b83811115610ce45750506000910152565b8015158114610c7657600080fdfea2646970667358221220a0b66a7c02973ba6a6ebbd31be82114d2d259b522136772054e41283000d73af64736f6c63430008040033

Deployed Bytecode Sourcemap

8154:5118:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10411:179;;;;;;;;;;-1:-1:-1;10411:179:0;;;;;:::i;:::-;;:::i;:::-;;;3797:14:1;;3790:22;3772:41;;3760:2;3745:18;10411:179:0;;;;;;;;10596:168;;;;;;;;;;-1:-1:-1;10596:168:0;;;;;:::i;:::-;;:::i;12628:224::-;;;;;;;;;;;;;:::i;8754:29::-;;;;;;;;;;-1:-1:-1;8754:29:0;;;;-1:-1:-1;;;8754:29:0;;;;;;10094:167;;;;;;;;;;-1:-1:-1;10094:167:0;;;;;:::i;:::-;;:::i;8605:63::-;;;;;;;;;;-1:-1:-1;8605:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;5943:25:1;;;5931:2;5916:18;8605:63:0;5898:76:1;10973:210:0;;;;;;;;;;-1:-1:-1;10973:210:0;;;;;:::i;:::-;;:::i;8291:68::-;;;;;;;;;;-1:-1:-1;8291:68:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12000:158;;;;;;;;;;-1:-1:-1;12000:158:0;;;;;:::i;:::-;-1:-1:-1;;;;;12120:32:0;12081:17;12120:32;;;:24;:32;;;;;;;12000:158;8712:35;;;;;;;;;;-1:-1:-1;8712:35:0;;;;-1:-1:-1;;;;;8712:35:0;;;;;;-1:-1:-1;;;;;2620:32:1;;;2602:51;;2590:2;2575:18;8712:35:0;2557:102:1;9724:207:0;;;;;;;;;;-1:-1:-1;9724:207:0;;;;;:::i;:::-;;:::i;524:170::-;;;;;;;;;;-1:-1:-1;524:170:0;;;;;:::i;:::-;;:::i;8675:30::-;;;;;;;;;;-1:-1:-1;8675:30:0;;;;-1:-1:-1;;;;;8675:30:0;;;9497:221;;;;;;;;;;-1:-1:-1;9497:221:0;;;;;:::i;:::-;;:::i;116:42::-;;;;;;;;;;-1:-1:-1;116:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;13066:201;;;;;;;;;;-1:-1:-1;13066:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;13206:44:0;;;13161:20;13206:44;;;:36;:44;;;;;;;;:55;;;;;;;;;;;;;13066:201;8967:300;;;;;;;;;;-1:-1:-1;8967:300:0;;;;;:::i;:::-;;:::i;10267:138::-;;;;;;;;;;-1:-1:-1;10267:138:0;;;;;:::i;:::-;;:::i;11453:541::-;;;;;;;;;;-1:-1:-1;11453:541:0;;;;;:::i;:::-;;:::i;12164:147::-;;;:::i;9937:151::-;;;;;;;;;;-1:-1:-1;9937:151:0;;;;;:::i;:::-;;:::i;8790:36::-;;;;;;;;;;-1:-1:-1;8790:36:0;;;;-1:-1:-1;;;;;8790:36:0;;;11189:147;;;;;;;;;;-1:-1:-1;11189:147:0;;;;;:::i;:::-;-1:-1:-1;;;;;11303:27:0;11261:19;11303:27;;;:20;:27;;;;;;;11189:147;12858:202;;;;;;;;;;-1:-1:-1;12858:202:0;;;;;:::i;:::-;;:::i;9273:218::-;;;;;;;;;;-1:-1:-1;9273:218:0;;;;;:::i;:::-;;:::i;10411:179::-;281:10;10505:12;272:20;;;;;;;;;;;;;263:31;;;;;;-1:-1:-1;;;;;;10527:28:0;;::::1;;::::0;;;:17:::1;:28;::::0;;;;:36;10580:4:::1;::::0;10411:179::o;10596:168::-;281:10;10684:12;272:20;;;;;;;;;;;;;263:31;;;;;;10706::::1;10730:5;10706:22;:31::i;:::-;-1:-1:-1::0;10754:4:0::1;::::0;10596:168;-1:-1:-1;10596:168:0:o;12628:224::-;281:10;12701:12;272:20;;;;;;;;;;;;;263:31;;;;;;12774:6:::1;::::0;-1:-1:-1;;;;;12774:6:0::1;12753:28;::::0;;;:20:::1;:28;::::0;;;;;;12723:60;;12731:10:::1;::::0;12723:60;::::1;;;::::0;12753:28;12723:60;;12753:28;12723:60;12753:28;12731:10;12723:60;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;12818:6:0::1;::::0;-1:-1:-1;;;;;12818:6:0::1;12797:28;::::0;;;:20:::1;:28;::::0;;;;12790:35;12818:6;;12628:224::o;10094:167::-;281:10;10184:12;272:20;;;;;;;;;;;;;263:31;;;;;;-1:-1:-1;10206:11:0::1;:28:::0;;-1:-1:-1;;;;;;10206:28:0::1;-1:-1:-1::0;;;;;10206:28:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;10094:167:0:o;10973:210::-;281:10;11086:12;272:20;;;;;;;;;;;;;263:31;;;;;;-1:-1:-1;;;;;;11108:35:0;;;::::1;;::::0;;;:25:::1;:35;::::0;;;;;;;:48;;-1:-1:-1;;11108:48:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;:25;10973:210::o;9724:207::-;281:10;9834:12;272:20;;;;;;;;;;;;;263:31;;;;;;-1:-1:-1;9856:21:0::1;:48:::0;;-1:-1:-1;;;;;;9856:48:0::1;-1:-1:-1::0;;;;;9856:48:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;9724:207:0:o;524:170::-;281:10;614:12;272:20;;;;;;;;;;;;;263:31;;;;;;-1:-1:-1;;;;;;636:18:0;;;::::1;:8;:18:::0;;;::::1;::::0;;;;;;:31;;-1:-1:-1;;636:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;;524:170:0:o;9497:221::-;9658:21;;9640:72;;-1:-1:-1;;;9640:72:0;;-1:-1:-1;;;;;2620:32:1;;;9640:72:0;;;2602:51:1;9581:7:0;;9658:21;;9640:64;;2575:18:1;;9640:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9605:32:0;;;;;;:24;:32;;;;;;:107;;;;:::i;:::-;9598:114;9497:221;-1:-1:-1;;9497:221:0:o;8967:300::-;9182:21;;9164:97;;-1:-1:-1;;;9164:97:0;;-1:-1:-1;;;;;2894:15:1;;;9164:97:0;;;2876:34:1;2946:15;;;2926:18;;;2919:43;9082:7:0;;9182:21;;9164:76;;2811:18:1;;9164:97:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9106:44:0;;;;;;;:36;:44;;;;;;;;:55;;;;;;;;;;:155;;;;:::i;:::-;9099:162;8967:300;-1:-1:-1;;;8967:300:0:o;10267:138::-;281:10;10342:12;272:20;;;;;;;;;;;;;263:31;;;;;;-1:-1:-1;10364:6:0::1;:14:::0;;-1:-1:-1;;;;;;10364:14:0::1;-1:-1:-1::0;;;;;10364:14:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;10267:138:0:o;11453:541::-;8871:8;;11553:12;;-1:-1:-1;;;8871:8:0;;;;:16;;8883:4;8871:16;8862:61;;;;-1:-1:-1;;;8862:61:0;;4414:2:1;8862:61:0;;;4396:21:1;4453:2;4433:18;;;4426:30;4492:32;4472:18;;;4465:60;4542:18;;8862:61:0;;;;;;;;;11584:11:::1;::::0;-1:-1:-1;;;;;11584:11:0::1;11575:36;;;::::0;::::1;;-1:-1:-1::0;;;;;11627:38:0;::::1;;::::0;;;:25:::1;:38;::::0;;;;;::::1;;11618:49;;;::::0;::::1;;11726:11;::::0;11676:71:::1;::::0;-1:-1:-1;;;;;11676:36:0;;::::1;::::0;11714:10:::1;::::0;11726:11:::1;11739:6:::0;11676:36:::1;:71::i;:::-;11791:10;11754:48;::::0;;;:36:::1;:48;::::0;;;;;;;-1:-1:-1;;;;;11754:61:0;::::1;::::0;;;;;;;:71;;11819:6;;11754:48;:71:::1;::::0;11819:6;;11754:71:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;11832:33:0;::::1;;::::0;;;:20:::1;:33;::::0;;;;:43;;11869:6;;11832:33;:43:::1;::::0;11869:6;;11832:43:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;11934:30:0;::::1;;::::0;;;:17:::1;:30;::::0;;;;;11925:39:::1;::::0;:6;:39:::1;:::i;:::-;11909:10;11884:36;::::0;;;:24:::1;:36;::::0;;;;:81;;:36;;;:81:::1;::::0;;;::::1;:::i;:::-;::::0;;;-1:-1:-1;11984:4:0::1;::::0;11453:541;-1:-1:-1;;;;11453:541:0:o;12164:147::-;8871:8;;12241:12;;-1:-1:-1;;;8871:8:0;;;;:16;;8883:4;8871:16;8862:61;;;;-1:-1:-1;;;8862:61:0;;4414:2:1;8862:61:0;;;4396:21:1;4453:2;4433:18;;;4426:30;4492:32;4472:18;;;4465:60;4542:18;;8862:61:0;4386:180:1;8862:61:0;12263:19:::1;:17;:19::i;:::-;-1:-1:-1::0;12301:4:0::1;::::0;12164:147::o;9937:151::-;281:10;10018:12;272:20;;;;;;;;;;;;;263:31;;;;;;-1:-1:-1;10040:8:0::1;:21:::0;;;::::1;;-1:-1:-1::0;;;10040:21:0::1;-1:-1:-1::0;;;;10040:21:0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;9937:151:0:o;12858:202::-;281:10;12953:12;272:20;;;;;;;;;;;;;263:31;;;;;;-1:-1:-1;13004:6:0::1;::::0;-1:-1:-1;;;;;13004:6:0::1;12975:37;::::0;;;:20:::1;:37;::::0;;;;:58;13004:6;;12858:202::o;9273:218::-;9432:21;;9414:71;;-1:-1:-1;;;9414:71:0;;-1:-1:-1;;;;;2620:32:1;;;9414:71:0;;;2602:51:1;9356:7:0;;9432:21;;9414:60;;2575:18:1;;9414:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9380:31:0;;;;;;:20;:31;;;;;;:105;;;;:::i;10770:197::-;10844:11;;-1:-1:-1;;;;;10844:11:0;10835:36;;;;;;10906:11;;10919:40;;-1:-1:-1;;;10919:40:0;;10952:4;10919:40;;;2602:51:1;10878:83:0;;-1:-1:-1;;;;;10906:11:0;;;;10919:23;;;;;;2575:18:1;;10919:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10878:26:0;;;:83;:26;:83::i;:::-;10770:197;:::o;4085:205::-;4213:68;;-1:-1:-1;;;;;3231:15:1;;;4213:68:0;;;3213:34:1;3283:15;;3263:18;;;3256:43;3315:18;;;3308:34;;;4186:96:0;;4206:5;;-1:-1:-1;;;4236:27:0;3148:18:1;;4213:68:0;;;;-1:-1:-1;;4213:68:0;;;;;;;;;;;;;;-1:-1:-1;;;;;4213:68:0;-1:-1:-1;;;;;;4213:68:0;;;;;;;;;;4186:19;:96::i;:::-;4085:205;;;;:::o;12317:305::-;12371:11;;-1:-1:-1;;;;;12371:11:0;12362:74;;;;-1:-1:-1;;;12362:74:0;;5184:2:1;12362:74:0;;;5166:21:1;5223:2;5203:18;;;5196:30;5262:34;5242:18;;;5235:62;-1:-1:-1;;;5313:18:1;;;5306:32;5355:19;;12362:74:0;5156:224:1;12362:74:0;12480:10;12443:48;;;;:36;:48;;;;;;;;12492:6;;-1:-1:-1;;;;;12492:6:0;12443:56;;;;;;;:69;;12503:9;;12443:48;:69;;12503:9;;12443:69;:::i;:::-;;;;-1:-1:-1;;12540:6:0;;-1:-1:-1;;;;;12540:6:0;12519:28;;;;:20;:28;;;;;:41;;12551:9;;12519:28;:41;;12551:9;;12519:41;:::i;:::-;;;;-1:-1:-1;;12592:10:0;12567:36;;;;:24;:36;;;;;:49;;12607:9;;12567:36;:49;;12607:9;;12567:49;:::i;:::-;;;;-1:-1:-1;;12317:305:0:o;3900:177::-;4010:58;;-1:-1:-1;;;;;3545:32:1;;4010:58:0;;;3527:51:1;3594:18;;;3587:34;;;3983:86:0;;4003:5;;-1:-1:-1;;;4033:23:0;3500:18:1;;4010:58:0;3482:145:1;3983:86:0;3900:177;;;:::o;5810:335::-;5891:23;5917:69;5945:4;5917:69;;;;;;;;;;;;;;;;;5925:5;-1:-1:-1;;;;;5917:27:0;;;:69;;;;;:::i;:::-;6003:17;;5891:95;;-1:-1:-1;6003:21:0;5999:139;;6060:10;6049:30;;;;;;;;;;;;:::i;:::-;6041:85;;;;-1:-1:-1;;;6041:85:0;;4773:2:1;6041:85:0;;;4755:21:1;4812:2;4792:18;;;4785:30;4851:34;4831:18;;;4824:62;-1:-1:-1;;;4902:18:1;;;4895:40;4952:19;;6041:85:0;4745:232:1;1754:177:0;1851:12;1879:46;1902:6;1910:4;1916:1;1919:5;1879:22;:46::i;:::-;1872:53;1754:177;-1:-1:-1;;;;1754:177:0:o;2467:566::-;2585:12;1319:20;;2606:74;;;;-1:-1:-1;;;2606:74:0;;5587:2:1;2606:74:0;;;5569:21:1;5626:2;5606:18;;;5599:30;5665:34;5645:18;;;5638:62;-1:-1:-1;;;5716:18:1;;;5709:41;5767:19;;2606:74:0;5559:233:1;2606:74:0;2690:12;2704:23;2731:6;-1:-1:-1;;;;;2731:11:0;2751:5;2759:4;2731:33;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2689:75;;;;2777:7;2773:255;;;2802:10;-1:-1:-1;2795:17:0;;-1:-1:-1;2795:17:0;2773:255;2830:17;;:21;2826:202;;2911:10;2905:17;2960:15;2947:10;2943:2;2939:19;2932:44;2871:114;3014:5;3007:13;;-1:-1:-1;;;3007:13:0;;;;;;;;:::i;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:196::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;393:270::-;461:6;469;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:325::-;733:6;741;794:2;782:9;773:7;769:23;765:32;762:2;;;815:6;807;800:22;762:2;843:29;862:9;843:29;:::i;:::-;833:39;;922:2;911:9;907:18;894:32;935:28;957:5;935:28;:::i;:::-;982:5;972:15;;;752:241;;;;;:::o;998:264::-;1066:6;1074;1127:2;1115:9;1106:7;1102:23;1098:32;1095:2;;;1148:6;1140;1133:22;1095:2;1176:29;1195:9;1176:29;:::i;:::-;1166:39;1252:2;1237:18;;;;1224:32;;-1:-1:-1;;;1085:177:1:o;1267:251::-;1323:6;1376:2;1364:9;1355:7;1351:23;1347:32;1344:2;;;1397:6;1389;1382:22;1344:2;1441:9;1428:23;1460:28;1482:5;1460:28;:::i;1523:255::-;1590:6;1643:2;1631:9;1622:7;1618:23;1614:32;1611:2;;;1664:6;1656;1649:22;1611:2;1701:9;1695:16;1720:28;1742:5;1720:28;:::i;1783:190::-;1842:6;1895:2;1883:9;1874:7;1870:23;1866:32;1863:2;;;1916:6;1908;1901:22;1863:2;-1:-1:-1;1944:23:1;;1853:120;-1:-1:-1;1853:120:1:o;1978:194::-;2048:6;2101:2;2089:9;2080:7;2076:23;2072:32;2069:2;;;2122:6;2114;2107:22;2069:2;-1:-1:-1;2150:16:1;;2059:113;-1:-1:-1;2059:113:1:o;2177:274::-;2306:3;2344:6;2338:13;2360:53;2406:6;2401:3;2394:4;2386:6;2382:17;2360:53;:::i;:::-;2429:16;;;;;2314:137;-1:-1:-1;;2314:137:1:o;3824:383::-;3973:2;3962:9;3955:21;3936:4;4005:6;3999:13;4048:6;4043:2;4032:9;4028:18;4021:34;4064:66;4123:6;4118:2;4107:9;4103:18;4098:2;4090:6;4086:15;4064:66;:::i;:::-;4191:2;4170:15;-1:-1:-1;;4166:29:1;4151:45;;;;4198:2;4147:54;;3945:262;-1:-1:-1;;3945:262:1:o;5979:229::-;6019:3;6050:1;6046:6;6043:1;6040:13;6037:2;;;-1:-1:-1;;;6076:33:1;;6132:4;6129:1;6122:15;6162:4;6083:3;6150:17;6037:2;-1:-1:-1;6193:9:1;;6027:181::o;6213:217::-;6253:1;6279;6269:2;;-1:-1:-1;;;6304:31:1;;6358:4;6355:1;6348:15;6386:4;6311:1;6376:15;6269:2;-1:-1:-1;6415:9:1;;6259:171::o;6435:258::-;6507:1;6517:113;6531:6;6528:1;6525:13;6517:113;;;6607:11;;;6601:18;6588:11;;;6581:39;6553:2;6546:10;6517:113;;;6648:6;6645:1;6642:13;6639:2;;;-1:-1:-1;;6683:1:1;6665:16;;6658:27;6488:205::o;6698:118::-;6784:5;6777:13;6770:21;6763:5;6760:32;6750:2;;6806:1;6803;6796:12

Swarm Source

ipfs://a0b66a7c02973ba6a6ebbd31be82114d2d259b522136772054e41283000d73af

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.