ETH Price: $3,443.95 (-2.62%)
Gas: 2 Gwei

Token

Fulcrum DAI iToken (iDAI)
 

Overview

Max Total Supply

17,645.767847446447746443 iDAI

Holders

434 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
chainlinkgod.eth
Balance
0.990419267516257742 iDAI

Value
$0.00
0x190473b3071946df65306989972706a4c006a561
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

iTokens are interest accumulating tokens that continuously go up in value as you hold them. They represent a share in a lending pool that grows in size as borrowers pay interest into them.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
LoanToken

Compiler Version
v0.5.8+commit.23d335f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2019-11-14
*/

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

/**
 * @title EIP20/ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract EIP20 is ERC20 {
    string public name;
    uint8 public decimals;
    string public symbol;
}

contract WETHInterface is EIP20 {
    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;
        uint256 marginPremiumAmount;
        address collateralTokenAddress;
    }

    struct TokenReserves {
        address lender;
        uint256 amount;
    }

    // topic: 0x86e15dd78cd784ab7788bcf5b96b9395e86030e048e5faedcfe752c700f6157e
    event Borrow(
        address indexed borrower,
        uint256 borrowAmount,
        uint256 interestRate,
        address collateralTokenAddress,
        address tradeTokenToFillAddress,
        bool withdrawOnOpen
    );

    // topic: 0x85dfc0033a3e5b3b9b3151bd779c1f9b855d66b83ff5bb79283b68d82e8e5b73
    event Repay(
        bytes32 indexed loanOrderHash,
        address indexed borrower,
        address closer,
        uint256 amount,
        bool isLiquidation
    );

    // topic: 0x68e1caf97c4c29c1ac46024e9590f80b7a1f690d393703879cf66eea4e1e8421
    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 = 18750000000000000000; // 18.75%

    // slot addition (non-sequential): lowUtilBaseRate = 8000000000000000000; // 8.0%
    // slot addition (non-sequential): lowUtilRateMultiplier = 4750000000000000000; // 4.75%

    // "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; // current amount of loan token amount tied up in loans

    uint256 public 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"},{"name":"marginPremiumAmount","type":"uint256"},{"name":"collateralTokenAddress","type":"address"}],"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":"checkpointSupply","outputs":[{"name":"","type":"uint256"}],"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":"loanOrderHash","type":"bytes32"},{"indexed":true,"name":"borrower","type":"address"},{"indexed":false,"name":"closer","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"isLiquidation","type":"bool"}],"name":"Repay","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"}]

60806040526001600055600a805460ff19169055670de0b6b3a7640000600b556801043561a882930000600c5534801561003857600080fd5b50604051602080610bad8339810180604052602081101561005857600080fd5b5051600180546001600160a01b0319163317905561007c81610082602090811b901c565b50610124565b6100918161011e60201b60201c565b6100fc57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746172676574206e6f74206120636f6e74726163740000000000000000000000604482015290519081900360640190fd5b601c80546001600160a01b0319166001600160a01b0392909216919091179055565b3b151590565b610a7a806101336000396000f3fe60806040526004361061019c5760003560e01c80637866c6c1116100ec578063995363d31161008a578063dd62ed3e11610064578063dd62ed3e1461058e578063f2fde38b146105c9578063fbd9574d146105fc578063fe056342146106485761019c565b8063995363d31461053a5780639b3a54d11461054f578063d84d2a47146105795761019c565b8063894ca308116100c6578063894ca308146104e65780638da5cb5b146104fb57806395d89b411461051057806396c7871b146105255761019c565b80637866c6c11461046f578063797bf385146104bc5780637b7933b4146104d15761019c565b80632515aacd116101595780634780eac1116101335780634780eac1146103c157806370a08231146103f2578063736ee3d314610425578063776d1a011461043a5761019c565b80632515aacd1461030d578063313ce56714610381578063330691ac146103ac5761019c565b806306fdde03146102085780630c4925fd1461029257806318160ddd146102b95780631d0806ae146102ce5780631f68f20a146102e357806320f6d07c146102f8575b601c5460408051602036601f81018290048202830182019093528282526001600160a01b039093169260609260009181908401838280828437600092018290525084519495509384935091505060208401855af43d604051816000823e828015610204578282f35b8282fd5b34801561021457600080fd5b5061021d610672565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561025757818101518382015260200161023f565b50505050905090810190601f1680156102845780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029e57600080fd5b506102a76106fd565b60408051918252519081900360200190f35b3480156102c557600080fd5b506102a7610703565b3480156102da57600080fd5b506102a7610709565b3480156102ef57600080fd5b506102a761070f565b34801561030457600080fd5b506102a7610715565b34801561031957600080fd5b506103376004803603602081101561033057600080fd5b503561071b565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c08401526001600160a01b031660e083015251908190036101000190f35b34801561038d57600080fd5b50610396610767565b6040805160ff9092168252519081900360200190f35b3480156103b857600080fd5b506102a7610770565b3480156103cd57600080fd5b506103d6610776565b604080516001600160a01b039092168252519081900360200190f35b3480156103fe57600080fd5b506102a76004803603602081101561041557600080fd5b50356001600160a01b0316610785565b34801561043157600080fd5b506103d66107a0565b34801561044657600080fd5b5061046d6004803603602081101561045d57600080fd5b50356001600160a01b03166107b4565b005b34801561047b57600080fd5b506104996004803603602081101561049257600080fd5b50356107d7565b604080516001600160a01b03909316835260208301919091528051918290030190f35b3480156104c857600080fd5b506103d661080c565b3480156104dd57600080fd5b506102a761081b565b3480156104f257600080fd5b506103d6610821565b34801561050757600080fd5b506103d6610830565b34801561051c57600080fd5b5061021d61083f565b34801561053157600080fd5b506103d661089a565b34801561054657600080fd5b506103d66108a9565b34801561055b57600080fd5b506102a76004803603602081101561057257600080fd5b50356108bd565b34801561058557600080fd5b506102a76108db565b34801561059a57600080fd5b506102a7600480360360408110156105b157600080fd5b506001600160a01b03813581169160200135166108e1565b3480156105d557600080fd5b5061046d600480360360208110156105ec57600080fd5b50356001600160a01b031661090c565b34801561060857600080fd5b5061062f6004803603602081101561061f57600080fd5b50356001600160a01b031661092c565b6040805192835290151560208301528051918290030190f35b34801561065457600080fd5b506102a76004803603602081101561066b57600080fd5b5035610948565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156106f55780601f106106ca576101008083540402835291602001916106f5565b820191906000526020600020905b8154815290600101906020018083116106d857829003601f168201915b505050505081565b60135481565b601b5490565b60185481565b600b5481565b60155481565b600f60205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701549596949593949293919290916001600160a01b031688565b60045460ff1681565b600c5481565b6007546001600160a01b031681565b6001600160a01b031660009081526019602052604090205490565b600a5461010090046001600160a01b031681565b6001546001600160a01b031633146107cb57600080fd5b6107d48161095a565b50565b601181815481106107e457fe5b6000918252602090912060029091020180546001909101546001600160a01b03909116915082565b6008546001600160a01b031681565b60165481565b6005546001600160a01b031681565b6001546001600160a01b031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106f55780601f106106ca576101008083540402835291602001916106f5565b6006546001600160a01b031681565b60045461010090046001600160a01b031681565b601081815481106108ca57fe5b600091825260209091200154905081565b600d5481565b6001600160a01b039182166000908152601a6020908152604080832093909416825291909152205490565b6001546001600160a01b0316331461092357600080fd5b6107d4816109d9565b6012602052600090815260409020805460019091015460ff1682565b600e6020526000908152604090205481565b61096381610a48565b6109b75760408051600160e51b62461bcd02815260206004820152601560248201527f746172676574206e6f74206120636f6e74726163740000000000000000000000604482015290519081900360640190fd5b601c80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166109ec57600080fd5b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b3b15159056fea165627a7a723058203cf1fe6a7835c50d89ba9a22ea5a8c3509600df2cb1c1e1e1ef965e160014e8a0029000000000000000000000000baad2c9d8efd28e294858f63cd088247f15ae24f

Deployed Bytecode

0x60806040526004361061019c5760003560e01c80637866c6c1116100ec578063995363d31161008a578063dd62ed3e11610064578063dd62ed3e1461058e578063f2fde38b146105c9578063fbd9574d146105fc578063fe056342146106485761019c565b8063995363d31461053a5780639b3a54d11461054f578063d84d2a47146105795761019c565b8063894ca308116100c6578063894ca308146104e65780638da5cb5b146104fb57806395d89b411461051057806396c7871b146105255761019c565b80637866c6c11461046f578063797bf385146104bc5780637b7933b4146104d15761019c565b80632515aacd116101595780634780eac1116101335780634780eac1146103c157806370a08231146103f2578063736ee3d314610425578063776d1a011461043a5761019c565b80632515aacd1461030d578063313ce56714610381578063330691ac146103ac5761019c565b806306fdde03146102085780630c4925fd1461029257806318160ddd146102b95780631d0806ae146102ce5780631f68f20a146102e357806320f6d07c146102f8575b601c5460408051602036601f81018290048202830182019093528282526001600160a01b039093169260609260009181908401838280828437600092018290525084519495509384935091505060208401855af43d604051816000823e828015610204578282f35b8282fd5b34801561021457600080fd5b5061021d610672565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561025757818101518382015260200161023f565b50505050905090810190601f1680156102845780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029e57600080fd5b506102a76106fd565b60408051918252519081900360200190f35b3480156102c557600080fd5b506102a7610703565b3480156102da57600080fd5b506102a7610709565b3480156102ef57600080fd5b506102a761070f565b34801561030457600080fd5b506102a7610715565b34801561031957600080fd5b506103376004803603602081101561033057600080fd5b503561071b565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c08401526001600160a01b031660e083015251908190036101000190f35b34801561038d57600080fd5b50610396610767565b6040805160ff9092168252519081900360200190f35b3480156103b857600080fd5b506102a7610770565b3480156103cd57600080fd5b506103d6610776565b604080516001600160a01b039092168252519081900360200190f35b3480156103fe57600080fd5b506102a76004803603602081101561041557600080fd5b50356001600160a01b0316610785565b34801561043157600080fd5b506103d66107a0565b34801561044657600080fd5b5061046d6004803603602081101561045d57600080fd5b50356001600160a01b03166107b4565b005b34801561047b57600080fd5b506104996004803603602081101561049257600080fd5b50356107d7565b604080516001600160a01b03909316835260208301919091528051918290030190f35b3480156104c857600080fd5b506103d661080c565b3480156104dd57600080fd5b506102a761081b565b3480156104f257600080fd5b506103d6610821565b34801561050757600080fd5b506103d6610830565b34801561051c57600080fd5b5061021d61083f565b34801561053157600080fd5b506103d661089a565b34801561054657600080fd5b506103d66108a9565b34801561055b57600080fd5b506102a76004803603602081101561057257600080fd5b50356108bd565b34801561058557600080fd5b506102a76108db565b34801561059a57600080fd5b506102a7600480360360408110156105b157600080fd5b506001600160a01b03813581169160200135166108e1565b3480156105d557600080fd5b5061046d600480360360208110156105ec57600080fd5b50356001600160a01b031661090c565b34801561060857600080fd5b5061062f6004803603602081101561061f57600080fd5b50356001600160a01b031661092c565b6040805192835290151560208301528051918290030190f35b34801561065457600080fd5b506102a76004803603602081101561066b57600080fd5b5035610948565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156106f55780601f106106ca576101008083540402835291602001916106f5565b820191906000526020600020905b8154815290600101906020018083116106d857829003601f168201915b505050505081565b60135481565b601b5490565b60185481565b600b5481565b60155481565b600f60205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007909701549596949593949293919290916001600160a01b031688565b60045460ff1681565b600c5481565b6007546001600160a01b031681565b6001600160a01b031660009081526019602052604090205490565b600a5461010090046001600160a01b031681565b6001546001600160a01b031633146107cb57600080fd5b6107d48161095a565b50565b601181815481106107e457fe5b6000918252602090912060029091020180546001909101546001600160a01b03909116915082565b6008546001600160a01b031681565b60165481565b6005546001600160a01b031681565b6001546001600160a01b031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106f55780601f106106ca576101008083540402835291602001916106f5565b6006546001600160a01b031681565b60045461010090046001600160a01b031681565b601081815481106108ca57fe5b600091825260209091200154905081565b600d5481565b6001600160a01b039182166000908152601a6020908152604080832093909416825291909152205490565b6001546001600160a01b0316331461092357600080fd5b6107d4816109d9565b6012602052600090815260409020805460019091015460ff1682565b600e6020526000908152604090205481565b61096381610a48565b6109b75760408051600160e51b62461bcd02815260206004820152601560248201527f746172676574206e6f74206120636f6e74726163740000000000000000000000604482015290519081900360640190fd5b601c80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166109ec57600080fd5b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b3b15159056fea165627a7a723058203cf1fe6a7835c50d89ba9a22ea5a8c3509600df2cb1c1e1e1ef965e160014e8a0029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000baad2c9d8efd28e294858f63cd088247f15ae24f

-----Decoded View---------------
Arg [0] : _newTarget (address): 0xbAAd2C9d8eFd28e294858f63cD088247F15aE24f

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000baad2c9d8efd28e294858f63cd088247f15ae24f


Deployed Bytecode Sourcemap

10089:1228:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10365:7;;10383:28;;;;10403:8;10383:28;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10365:7:0;;;;10383:17;;-1:-1:-1;;10403:8:0;;10383:28;;-1:-1:-1;10403:8:0;;-1:-1:-1;10383:28:0;1:33:-1;99:1;81:16;;74:27;;;-1:-1;10503:11:0;;10383:28;;-1:-1:-1;99:1;;;-1:-1;10503:11:0;-1:-1:-1;;10496:4:0;10486:15;;10478:6;10473:3;10460:61;10547:14;10592:4;10586:11;10634:4;10631:1;10626:3;10611:28;10660:6;10680:28;;;;10744:4;10739:3;10732:17;10680:28;10701:4;10696:3;10689:17;5782:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5782: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;5782:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8507:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8507:33:0;;;:::i;:::-;;;;;;;;;;;;;;;;9609:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9609:123:0;;;:::i;8805:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8805:27:0;;;:::i;7626:45::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7626:45:0;;;:::i;8628:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8628:31:0;;;:::i;8173:50::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8173:50:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8173:50:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8173:50:0;;;;;;;;;;;;;;5834:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5834:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7686:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7686:52:0;;;:::i;5958:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5958:27:0;;;:::i;:::-;;;;-1:-1:-1;;;;;5958:27:0;;;;;;;;;;;;;;9740:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9740:149:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9740:149:0;-1:-1:-1;;;;;9740:149:0;;:::i;7585:32::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7585:32:0;;;:::i;10777:130::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10777:130:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10777:130:0;-1:-1:-1;;;;;10777:130:0;;:::i;:::-;;8309:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8309:44:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8309:44:0;;:::i;:::-;;;;-1:-1:-1;;;;;8309:44:0;;;;;;;;;;;;;;;;;;;;;5994:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5994:31:0;;;:::i;8724:::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8724:31:0;;;:::i;5897:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5897:23:0;;;:::i;3291:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3291:20:0;;;:::i;5807:::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5807:20:0;;;:::i;5927:24::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5927:24:0;;;:::i;5864:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5864:26:0;;;:::i;8271:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8271:29:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8271:29:0;;:::i;8030:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8030:31:0;;;:::i;9897:185::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9897:185:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9897:185:0;;;;;;;;;;:::i;3922:105::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3922:105:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3922:105:0;-1:-1:-1;;;;;3922:105:0;;:::i;8386:64::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8386:64:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8386:64:0;-1:-1:-1;;;;;8386:64:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8070:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8070:51:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8070:51:0;;:::i;5782:18::-;;;;;;;;;;;;;;-1:-1:-1;;5782:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8507:33::-;;;;:::o;9609:123::-;9712:12;;9609:123;:::o;8805:27::-;;;;:::o;7626:45::-;;;;:::o;8628:31::-;;;;:::o;8173:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8173:50:0;;:::o;5834:21::-;;;;;;:::o;7686:52::-;;;;:::o;5958:27::-;;;-1:-1:-1;;;;;5958:27:0;;:::o;9740:149::-;-1:-1:-1;;;;;9865:16:0;9833:7;9865:16;;;:8;:16;;;;;;;9740:149::o;7585:32::-;;;;;;-1:-1:-1;;;;;7585:32:0;;:::o;10777:130::-;3734:5;;-1:-1:-1;;;;;3734:5:0;3720:10;:19;3712:28;;;;;;10877:22;10888:10;10877;:22::i;:::-;10777:130;:::o;8309:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8309:44:0;;;;-1:-1:-1;8309:44:0;:::o;5994:31::-;;;-1:-1:-1;;;;;5994:31:0;;:::o;8724:::-;;;;:::o;5897:23::-;;;-1:-1:-1;;;;;5897:23:0;;:::o;3291:20::-;;;-1:-1:-1;;;;;3291:20:0;;:::o;5807:::-;;;;;;;;;;;;;;;-1:-1:-1;;5807:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5927:24;;;-1:-1:-1;;;;;5927:24:0;;:::o;5864:26::-;;;;;;-1:-1:-1;;;;;5864:26:0;;:::o;8271:29::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8271:29:0;:::o;8030:31::-;;;;:::o;9897:185::-;-1:-1:-1;;;;;10049:15:0;;;10017:7;10049:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;9897:185::o;3922:105::-;3734:5;;-1:-1:-1;;;;;3734:5:0;3720:10;:19;3712:28;;;;;;3992:29;4011:9;3992:18;:29::i;8386:64::-;;;;;;;;;;;;;;;;;;;;;:::o;8070:51::-;;;;;;;;;;;;;:::o;10915:180::-;11007:23;11019:10;11007:11;:23::i;:::-;10999:57;;;;;-1:-1:-1;;;;;10999:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11067:7;:20;;-1:-1:-1;;;;;;11067:20:0;-1:-1:-1;;;;;11067:20:0;;;;;;;;;;10915:180::o;4168:175::-;-1:-1:-1;;;;;4239:23:0;;4231:32;;;;;;4296:5;;4275:38;;-1:-1:-1;;;;;4275:38:0;;;;4296:5;;4275:38;;4296:5;;4275:38;4320:5;:17;;-1:-1:-1;;;;;;4320:17:0;-1:-1:-1;;;;;4320:17:0;;;;;;;;;;4168:175::o;11103:211::-;11262:17;11298:8;;;11103:211::o

Swarm Source

bzzr://3cf1fe6a7835c50d89ba9a22ea5a8c3509600df2cb1c1e1e1ef965e160014e8a
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.