ETH Price: $2,330.69 (-4.74%)

Contract

0x77f973FCaF871459aa58cd81881Ce453759281bC
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve206760212024-09-04 8:28:1129 days ago1725438491IN
bZx ETH iToken
0 ETH0.000068742.3
Approve201575502024-06-23 23:04:59101 days ago1719183899IN
bZx ETH iToken
0 ETH0.000054611.82737899
Approve198223292024-05-08 2:21:35148 days ago1715134895IN
bZx ETH iToken
0 ETH0.0001484.95192783
Approve188902952023-12-29 9:17:59279 days ago1703841479IN
bZx ETH iToken
0 ETH0.0006216220.7977069
Approve187015092023-12-02 21:49:35305 days ago1701553775IN
bZx ETH iToken
0 ETH0.0009951133.29373197
Approve175199042023-06-20 9:05:11471 days ago1687251911IN
bZx ETH iToken
0 ETH0.0004244714.20176906
Approve167392812023-03-02 7:04:23581 days ago1677740663IN
bZx ETH iToken
0 ETH0.0006036320.19589207
Approve166267172023-02-14 11:34:11597 days ago1676374451IN
bZx ETH iToken
0 ETH0.000471415.75973595
Approve165020582023-01-28 1:34:35614 days ago1674869675IN
bZx ETH iToken
0 ETH0.0004221214.11228075
Approve165020582023-01-28 1:34:35614 days ago1674869675IN
bZx ETH iToken
0 ETH0.0004221214.11228075
Approve164499032023-01-20 18:46:59621 days ago1674240419IN
bZx ETH iToken
0 ETH0.0007474324.98772426
Transfer154800872022-09-05 21:14:31758 days ago1662412471IN
bZx ETH iToken
0 ETH0.001655213.5680269
Burn To Ether154402152022-08-30 11:51:04765 days ago1661860264IN
bZx ETH iToken
0 ETH0.0014593311.17687985
Approve152645502022-08-02 17:57:59792 days ago1659463079IN
bZx ETH iToken
0 ETH0.0005658417.73129696
Approve151002212022-07-08 6:09:34818 days ago1657260574IN
bZx ETH iToken
0 ETH0.0007331322.97349985
Approve151002212022-07-08 6:09:34818 days ago1657260574IN
bZx ETH iToken
0 ETH0.0006871822.97349985
Approve148836792022-06-01 7:53:48855 days ago1654070028IN
bZx ETH iToken
0 ETH0.0014938128.61940971
Approve147852292022-05-16 8:39:07871 days ago1652690347IN
bZx ETH iToken
0 ETH0.0004589914.38320615
Approve146749942022-04-28 20:36:57888 days ago1651178217IN
bZx ETH iToken
0 ETH0.0034859566.78583189
Approve146749862022-04-28 20:34:34888 days ago1651178074IN
bZx ETH iToken
0 ETH0.0032883463
Burn To Ether143948702022-03-16 2:22:16932 days ago1647397336IN
bZx ETH iToken
0 ETH0.0044029233.76476949
Transfer143593272022-03-10 13:25:55938 days ago1646918755IN
bZx ETH iToken
0 ETH0.0042262132.12070833
Burn To Ether141634552022-02-08 5:01:55968 days ago1644296515IN
bZx ETH iToken
0 ETH0.0099237776
Burn To Ether138364652021-12-19 15:36:051019 days ago1639928165IN
bZx ETH iToken
0 ETH0.0068547652.5
Burn To Ether138141642021-12-16 4:56:541022 days ago1639630614IN
bZx ETH iToken
0 ETH0.0099237776
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
128857802021-07-24 0:29:461167 days ago1627086586
bZx ETH iToken
0.94330931 ETH
128857802021-07-24 0:29:461167 days ago1627086586
bZx ETH iToken
0.94330931 ETH
119181242021-02-24 6:01:221317 days ago1614146482
bZx ETH iToken
0.11566635 ETH
119181242021-02-24 6:01:221317 days ago1614146482
bZx ETH iToken
0.11566635 ETH
117835072021-02-03 13:11:371338 days ago1612357897
bZx ETH iToken
2.58352088 ETH
117835072021-02-03 13:11:371338 days ago1612357897
bZx ETH iToken
2.58352088 ETH
117196102021-01-24 17:10:391348 days ago1611508239
bZx ETH iToken
8 ETH
117196102021-01-24 17:10:391348 days ago1611508239
bZx ETH iToken
8 ETH
115253222020-12-25 21:48:411377 days ago1608932921
bZx ETH iToken
5 ETH
115253222020-12-25 21:48:411377 days ago1608932921
bZx ETH iToken
5 ETH
108977762020-09-20 7:14:111474 days ago1600586051
bZx ETH iToken
3.2 ETH
108977762020-09-20 7:14:111474 days ago1600586051
bZx ETH iToken
3.2 ETH
108895452020-09-19 0:59:101475 days ago1600477150
bZx ETH iToken
0.1 ETH
108620832020-09-14 19:48:041479 days ago1600112884
bZx ETH iToken
42.5 ETH
108611332020-09-14 16:08:561480 days ago1600099736
bZx ETH iToken
0.74804608 ETH
108571202020-09-14 1:17:031480 days ago1600046223
bZx ETH iToken
0.4 ETH
108567502020-09-13 23:52:551480 days ago1600041175
bZx ETH iToken
0.3724596 ETH
108557972020-09-13 20:22:481480 days ago1600028568
bZx ETH iToken
4.5 ETH
108556942020-09-13 20:01:321480 days ago1600027292
bZx ETH iToken
5.5 ETH
108555502020-09-13 19:29:401480 days ago1600025380
bZx ETH iToken
6 ETH
108542512020-09-13 14:42:421481 days ago1600008162
bZx ETH iToken
1.02 ETH
107874412020-09-03 9:10:111491 days ago1599124211
bZx ETH iToken
7.49 ETH
107692502020-08-31 14:35:501494 days ago1598884550
bZx ETH iToken
79 ETH
107685042020-08-31 11:46:261494 days ago1598874386
bZx ETH iToken
20 ETH
107608782020-08-30 7:30:301495 days ago1598772630
bZx ETH iToken
5 ETH
View All Internal Transactions
Loading...
Loading

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

Contract Name:
LoanToken

Compiler Version
v0.5.8+commit.23d335f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-05-31
*/

/**
 * Copyright 2017-2019, bZeroX, LLC. All Rights Reserved.
 * Licensed under the Apache License, Version 2.0.
 */
 
pragma solidity 0.5.8;


/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * See https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
  function totalSupply() public view returns (uint256);
  function balanceOf(address _who) public view returns (uint256);
  function transfer(address _to, uint256 _value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address _owner, address _spender)
    public view returns (uint256);

  function transferFrom(address _from, address _to, uint256 _value)
    public returns (bool);

  function approve(address _spender, uint256 _value) public returns (bool);
  event Approval(
    address indexed owner,
    address indexed spender,
    uint256 value
  );
}

contract WETHInterface is ERC20 {
    function deposit() external payable;
    function withdraw(uint256 wad) external;
}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 _a, uint256 _b) internal pure returns (uint256 c) {
    // Gas optimization: this is cheaper than asserting 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
    if (_a == 0) {
      return 0;
    }

    c = _a * _b;
    assert(c / _a == _b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  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 _a / _b;
  }

  /**
  * @dev Integer division of two numbers, rounding up and truncating the quotient
  */
  function divCeil(uint256 _a, uint256 _b) internal pure returns (uint256) {
    if (_a == 0) {
      return 0;
    }

    return ((_a - 1) / _b) + 1;
  }

  /**
  * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
    assert(_b <= _a);
    return _a - _b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 _a, uint256 _b) internal pure returns (uint256 c) {
    c = _a + _b;
    assert(c >= _a);
    return c;
  }
}

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


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


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() public {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function transferOwnership(address _newOwner) public onlyOwner {
    _transferOwnership(_newOwner);
  }

  /**
   * @dev Transfers control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function _transferOwnership(address _newOwner) internal {
    require(_newOwner != address(0));
    emit OwnershipTransferred(owner, _newOwner);
    owner = _newOwner;
  }
}

/**
 * @title Helps contracts guard against reentrancy attacks.
 * @author Remco Bloemen <remco@2π.com>, Eenae <[email protected]>
 * @dev If you mark a function `nonReentrant`, you should also
 * mark it `external`.
 */
contract ReentrancyGuard {

  /// @dev Constant for unlocked guard state - non-zero to prevent extra gas costs.
  /// See: https://github.com/OpenZeppelin/openzeppelin-solidity/issues/1056
  uint256 internal constant REENTRANCY_GUARD_FREE = 1;

  /// @dev Constant for locked guard state
  uint256 internal constant REENTRANCY_GUARD_LOCKED = 2;

  /**
   * @dev We use a single lock for the whole contract.
   */
  uint256 internal reentrancyLock = REENTRANCY_GUARD_FREE;

  /**
   * @dev Prevents a contract from calling itself, directly or indirectly.
   * If you mark a function `nonReentrant`, you should also
   * mark it `external`. Calling one `nonReentrant` function from
   * another is not supported. Instead, you can implement a
   * `private` function doing the actual work, and an `external`
   * wrapper marked as `nonReentrant`.
   */
  modifier nonReentrant() {
    require(reentrancyLock == REENTRANCY_GUARD_FREE, "nonReentrant");
    reentrancyLock = REENTRANCY_GUARD_LOCKED;
    _;
    reentrancyLock = REENTRANCY_GUARD_FREE;
  }

}

contract LoanTokenization is ReentrancyGuard, Ownable {

    uint256 internal constant MAX_UINT = 2**256 - 1;

    string public name;
    string public symbol;
    uint8 public decimals;

    address public bZxContract;
    address public bZxVault;
    address public bZxOracle;
    address public wethContract;

    address public loanTokenAddress;

    // price of token at last user checkpoint
    mapping (address => uint256) internal checkpointPrices_;
}

contract LoanTokenStorage is LoanTokenization {

    struct ListIndex {
        uint256 index;
        bool isSet;
    }

    struct LoanData {
        bytes32 loanOrderHash;
        uint256 leverageAmount;
        uint256 initialMarginAmount;
        uint256 maintenanceMarginAmount;
        uint256 maxDurationUnixTimestampSec;
        uint256 index;
    }

    struct TokenReserves {
        address lender;
        uint256 amount;
    }

    event Borrow(
        address indexed borrower,
        uint256 borrowAmount,
        uint256 interestRate,
        address collateralTokenAddress,
        address tradeTokenToFillAddress,
        bool withdrawOnOpen
    );

    event Claim(
        address indexed claimant,
        uint256 tokenAmount,
        uint256 assetAmount,
        uint256 remainingTokenAmount,
        uint256 price
    );

    bool internal isInitialized_ = false;

    address public tokenizedRegistry;

    uint256 public baseRate = 1000000000000000000; // 1.0%
    uint256 public rateMultiplier = 39000000000000000000; // 39%

    // "fee percentage retained by the oracle" = SafeMath.sub(10**20, spreadMultiplier);
    uint256 public spreadMultiplier;

    mapping (uint256 => bytes32) public loanOrderHashes; // mapping of levergeAmount to loanOrderHash
    mapping (bytes32 => LoanData) public loanOrderData; // mapping of loanOrderHash to LoanOrder
    uint256[] public leverageList;

    TokenReserves[] public burntTokenReserveList; // array of TokenReserves
    mapping (address => ListIndex) public burntTokenReserveListIndex; // mapping of lender address to ListIndex objects
    uint256 public burntTokenReserved; // total outstanding burnt token amount
    address internal nextOwedLender_;

    uint256 public totalAssetBorrow = 0; // current amount of loan token amount tied up in loans

    uint256 internal checkpointSupply_;

    uint256 internal lastSettleTime_;

    uint256 public initialPrice;
}

contract AdvancedTokenStorage is LoanTokenStorage {
    using SafeMath for uint256;

    event Transfer(
        address indexed from,
        address indexed to,
        uint256 value
    );
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Mint(
        address indexed minter,
        uint256 tokenAmount,
        uint256 assetAmount,
        uint256 price
    );
    event Burn(
        address indexed burner,
        uint256 tokenAmount,
        uint256 assetAmount,
        uint256 price
    );

    mapping(address => uint256) internal balances;
    mapping (address => mapping (address => uint256)) internal allowed;
    uint256 internal totalSupply_;

    function totalSupply()
        public
        view
        returns (uint256)
    {
        return totalSupply_;
    }

    function balanceOf(
        address _owner)
        public
        view
        returns (uint256)
    {
        return balances[_owner];
    }

    function allowance(
        address _owner,
        address _spender)
        public
        view
        returns (uint256)
    {
        return allowed[_owner][_spender];
    }
}

contract LoanToken is AdvancedTokenStorage {

    address internal target_;

    constructor(
        address _newTarget)
        public
    {
        _setTarget(_newTarget);
    }

    function()
        external
        payable
    {
        address target = target_;
        bytes memory data = msg.data;
        assembly {
            let result := delegatecall(gas, target, add(data, 0x20), mload(data), 0, 0)
            let size := returndatasize
            let ptr := mload(0x40)
            returndatacopy(ptr, 0, size)
            switch result
            case 0 { revert(ptr, size) }
            default { return(ptr, size) }
        }
    }

    function setTarget(
        address _newTarget)
        public
        onlyOwner
    {
        _setTarget(_newTarget);
    }

    function _setTarget(
        address _newTarget)
        internal
    {
        require(_isContract(_newTarget), "target not a contract");
        target_ = _newTarget;
    }

    function _isContract(
        address addr)
        internal
        view
        returns (bool)
    {
        uint256 size;
        assembly { size := extcodesize(addr) }
        return size > 0;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"burntTokenReserved","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"baseRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalAssetBorrow","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"loanOrderData","outputs":[{"name":"loanOrderHash","type":"bytes32"},{"name":"leverageAmount","type":"uint256"},{"name":"initialMarginAmount","type":"uint256"},{"name":"maintenanceMarginAmount","type":"uint256"},{"name":"maxDurationUnixTimestampSec","type":"uint256"},{"name":"index","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rateMultiplier","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wethContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenizedRegistry","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newTarget","type":"address"}],"name":"setTarget","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"burntTokenReserveList","outputs":[{"name":"lender","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"loanTokenAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bZxVault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bZxOracle","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bZxContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"leverageList","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"spreadMultiplier","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"burntTokenReserveListIndex","outputs":[{"name":"index","type":"uint256"},{"name":"isSet","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"loanOrderHashes","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_newTarget","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"minter","type":"address"},{"indexed":false,"name":"tokenAmount","type":"uint256"},{"indexed":false,"name":"assetAmount","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"tokenAmount","type":"uint256"},{"indexed":false,"name":"assetAmount","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"borrower","type":"address"},{"indexed":false,"name":"borrowAmount","type":"uint256"},{"indexed":false,"name":"interestRate","type":"uint256"},{"indexed":false,"name":"collateralTokenAddress","type":"address"},{"indexed":false,"name":"tradeTokenToFillAddress","type":"address"},{"indexed":false,"name":"withdrawOnOpen","type":"bool"}],"name":"Borrow","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"claimant","type":"address"},{"indexed":false,"name":"tokenAmount","type":"uint256"},{"indexed":false,"name":"assetAmount","type":"uint256"},{"indexed":false,"name":"remainingTokenAmount","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

Deployed Bytecode

0x6080604052600436106101815760003560e01c80637866c6c1116100d1578063995363d31161008a578063dd62ed3e11610064578063dd62ed3e14610547578063f2fde38b14610582578063fbd9574d146105b5578063fe0563421461060157610181565b8063995363d3146104f35780639b3a54d114610508578063d84d2a471461053257610181565b80637866c6c11461043d578063797bf3851461048a578063894ca3081461049f5780638da5cb5b146104b457806395d89b41146104c957806396c7871b146104de57610181565b80632515aacd1161013e5780634780eac1116101185780634780eac11461038f57806370a08231146103c0578063736ee3d3146103f3578063776d1a011461040857610181565b80632515aacd146102f2578063313ce5671461034f578063330691ac1461037a57610181565b806306fdde03146101ed5780630c4925fd1461027757806318160ddd1461029e5780631d0806ae146102b35780631f68f20a146102c857806320f6d07c146102dd575b601c5460408051602036601f81018290048202830182019093528282526001600160a01b039093169260609260009181908401838280828437600092018290525084519495509384935091505060208401855af43d604051816000823e8280156101e9578282f35b8282fd5b3480156101f957600080fd5b5061020261062b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023c578181015183820152602001610224565b50505050905090810190601f1680156102695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028357600080fd5b5061028c6106b6565b60408051918252519081900360200190f35b3480156102aa57600080fd5b5061028c6106bc565b3480156102bf57600080fd5b5061028c6106c2565b3480156102d457600080fd5b5061028c6106c8565b3480156102e957600080fd5b5061028c6106ce565b3480156102fe57600080fd5b5061031c6004803603602081101561031557600080fd5b50356106d4565b604080519687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b34801561035b57600080fd5b50610364610709565b6040805160ff9092168252519081900360200190f35b34801561038657600080fd5b5061028c610712565b34801561039b57600080fd5b506103a4610718565b604080516001600160a01b039092168252519081900360200190f35b3480156103cc57600080fd5b5061028c600480360360208110156103e357600080fd5b50356001600160a01b0316610727565b3480156103ff57600080fd5b506103a4610742565b34801561041457600080fd5b5061043b6004803603602081101561042b57600080fd5b50356001600160a01b0316610756565b005b34801561044957600080fd5b506104676004803603602081101561046057600080fd5b5035610779565b604080516001600160a01b03909316835260208301919091528051918290030190f35b34801561049657600080fd5b506103a46107ae565b3480156104ab57600080fd5b506103a46107bd565b3480156104c057600080fd5b506103a46107cc565b3480156104d557600080fd5b506102026107db565b3480156104ea57600080fd5b506103a4610836565b3480156104ff57600080fd5b506103a4610845565b34801561051457600080fd5b5061028c6004803603602081101561052b57600080fd5b5035610859565b34801561053e57600080fd5b5061028c610877565b34801561055357600080fd5b5061028c6004803603604081101561056a57600080fd5b506001600160a01b038135811691602001351661087d565b34801561058e57600080fd5b5061043b600480360360208110156105a557600080fd5b50356001600160a01b03166108a8565b3480156105c157600080fd5b506105e8600480360360208110156105d857600080fd5b50356001600160a01b03166108c8565b6040805192835290151560208301528051918290030190f35b34801561060d57600080fd5b5061028c6004803603602081101561062457600080fd5b50356108e4565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156106ae5780601f10610683576101008083540402835291602001916106ae565b820191906000526020600020905b81548152906001019060200180831161069157829003601f168201915b505050505081565b60135481565b601b5490565b60185481565b600b5481565b60155481565b600f60205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909186565b60045460ff1681565b600c5481565b6007546001600160a01b031681565b6001600160a01b031660009081526019602052604090205490565b600a5461010090046001600160a01b031681565b6001546001600160a01b0316331461076d57600080fd5b610776816108f6565b50565b6011818154811061078657fe5b6000918252602090912060029091020180546001909101546001600160a01b03909116915082565b6008546001600160a01b031681565b6005546001600160a01b031681565b6001546001600160a01b031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106ae5780601f10610683576101008083540402835291602001916106ae565b6006546001600160a01b031681565b60045461010090046001600160a01b031681565b6010818154811061086657fe5b600091825260209091200154905081565b600d5481565b6001600160a01b039182166000908152601a6020908152604080832093909416825291909152205490565b6001546001600160a01b031633146108bf57600080fd5b61077681610975565b6012602052600090815260409020805460019091015460ff1682565b600e6020526000908152604090205481565b6108ff816109e4565b6109535760408051600160e51b62461bcd02815260206004820152601560248201527f746172676574206e6f74206120636f6e74726163740000000000000000000000604482015290519081900360640190fd5b601c80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811661098857600080fd5b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b3b15159056fea165627a7a723058208c31930370b9c7e30822ed6d45e4affdd3e7c4a5a7fe620cfb6ef4c9d0ca6db00029

Deployed Bytecode Sourcemap

9194:1228:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9470:7;;9488:28;;;;9508:8;9488:28;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9470:7:0;;;;9488:17;;-1:-1:-1;;9508:8:0;;9488:28;;-1:-1:-1;9508:8:0;;-1:-1:-1;9488:28:0;1:33:-1;99:1;81:16;;74:27;;;-1:-1;9608:11:0;;9488:28;;-1:-1:-1;99:1;;;-1:-1;9608:11:0;-1:-1:-1;;9601:4:0;9591:15;;9583:6;9578:3;9565:61;9652:14;9697:4;9691:11;9739:4;9736:1;9731:3;9716:28;9765:6;9785:28;;;;9849:4;9844:3;9837:17;9785:28;9806:4;9801:3;9794:17;5572:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5572:18:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5572:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7605:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7605:33:0;;;:::i;:::-;;;;;;;;;;;;;;;;8714:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8714:123:0;;;:::i;7910:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7910:27:0;;;:::i;6910:45::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6910:45:0;;;:::i;7726:35::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7726:35:0;;;:::i;7271:50::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7271:50:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7271:50:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5624:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5624:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6970:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6970:52:0;;;:::i;5748:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5748:27:0;;;:::i;:::-;;;;-1:-1:-1;;;;;5748:27:0;;;;;;;;;;;;;;8845:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8845:149:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8845:149:0;-1:-1:-1;;;;;8845:149:0;;:::i;6869:32::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6869:32:0;;;:::i;9882:130::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9882:130:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9882:130:0;-1:-1:-1;;;;;9882:130:0;;:::i;:::-;;7407:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7407:44:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7407:44:0;;:::i;:::-;;;;-1:-1:-1;;;;;7407:44:0;;;;;;;;;;;;;;;;;;;;;5784:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5784:31:0;;;:::i;5687:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5687:23:0;;;:::i;3081:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3081:20:0;;;:::i;5597:::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5597:20:0;;;:::i;5717:24::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5717:24:0;;;:::i;5654:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5654:26:0;;;:::i;7369:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7369:29:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7369:29:0;;:::i;7128:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7128:31:0;;;:::i;9002:185::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9002:185:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9002:185:0;;;;;;;;;;:::i;3712:105::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3712:105:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3712:105:0;-1:-1:-1;;;;;3712:105:0;;:::i;7484:64::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7484:64:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7484:64:0;-1:-1:-1;;;;;7484:64:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7168:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7168:51:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7168:51:0;;:::i;5572:18::-;;;;;;;;;;;;;;-1:-1:-1;;5572:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7605:33::-;;;;:::o;8714:123::-;8817:12;;8714:123;:::o;7910:27::-;;;;:::o;6910:45::-;;;;:::o;7726:35::-;;;;:::o;7271:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5624:21::-;;;;;;:::o;6970:52::-;;;;:::o;5748:27::-;;;-1:-1:-1;;;;;5748:27:0;;:::o;8845:149::-;-1:-1:-1;;;;;8970:16:0;8938:7;8970:16;;;:8;:16;;;;;;;8845:149::o;6869:32::-;;;;;;-1:-1:-1;;;;;6869:32:0;;:::o;9882:130::-;3524:5;;-1:-1:-1;;;;;3524:5:0;3510:10;:19;3502:28;;;;;;9982:22;9993:10;9982;:22::i;:::-;9882:130;:::o;7407:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7407:44:0;;;;-1:-1:-1;7407:44:0;:::o;5784:31::-;;;-1:-1:-1;;;;;5784:31:0;;:::o;5687:23::-;;;-1:-1:-1;;;;;5687:23:0;;:::o;3081:20::-;;;-1:-1:-1;;;;;3081:20:0;;:::o;5597:::-;;;;;;;;;;;;;;;-1:-1:-1;;5597:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5717:24;;;-1:-1:-1;;;;;5717:24:0;;:::o;5654:26::-;;;;;;-1:-1:-1;;;;;5654:26:0;;:::o;7369:29::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7369:29:0;:::o;7128:31::-;;;;:::o;9002:185::-;-1:-1:-1;;;;;9154:15:0;;;9122:7;9154:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;9002:185::o;3712:105::-;3524:5;;-1:-1:-1;;;;;3524:5:0;3510:10;:19;3502:28;;;;;;3782:29;3801:9;3782:18;:29::i;7484:64::-;;;;;;;;;;;;;;;;;;;;;:::o;7168:51::-;;;;;;;;;;;;;:::o;10020:180::-;10112:23;10124:10;10112:11;:23::i;:::-;10104:57;;;;;-1:-1:-1;;;;;10104:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10172:7;:20;;-1:-1:-1;;;;;;10172:20:0;-1:-1:-1;;;;;10172:20:0;;;;;;;;;;10020:180::o;3958:175::-;-1:-1:-1;;;;;4029:23:0;;4021:32;;;;;;4086:5;;4065:38;;-1:-1:-1;;;;;4065:38:0;;;;4086:5;;4065:38;;4086:5;;4065:38;4110:5;:17;;-1:-1:-1;;;;;;4110:17:0;-1:-1:-1;;;;;4110:17:0;;;;;;;;;;3958:175::o;10208:211::-;10367:17;10403:8;;;10208:211::o

Swarm Source

bzzr://8c31930370b9c7e30822ed6d45e4affdd3e7c4a5a7fe620cfb6ef4c9d0ca6db0

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.