ETH Price: $3,069.06 (-1.75%)
Gas: 3 Gwei

Token

Holddapp Dividend Token (HDT)
 

Overview

Max Total Supply

380,000 HDT

Holders

437

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 6 Decimals)

Balance
1 HDT

Value
$0.00
0xad2c367871831371cc551c6b8caf29f9b9824e3f
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
DividendToken

Compiler Version
v0.5.12+commit.7709ece9

Optimization Enabled:
Yes with 200 runs

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

pragma solidity ^0.5.0;

/// @title DividendToken Contract


/**
 * @dev Interface of the ERC20 standard as defined in the EIP. Does not include
 * the optional functions; to access them see `ERC20Detailed`.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a `Transfer` event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through `transferFrom`. This is
     * zero by default.
     *
     * This value changes when `approve` or `transferFrom` are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * > Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an `Approval` event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a `Transfer` event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to `approve`. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

    /**
     * @dev Returns true if the caller is the current owner.
     */
    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }

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

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

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


/**
 * @title Contracts that should be able to recover tokens
 * @author SylTi
 * @dev This allow a contract to recover any ERC20 token received in a contract by transferring the balance to the contract owner.
 * This will prevent any accidental loss of tokens.
 */
contract CanReclaimToken is Ownable {

  /**
   * @dev Reclaim all ERC20 compatible tokens
   * @param token ERC20 The address of the token contract
   */
  function reclaimToken(IERC20 token) external onlyOwner {
    address payable owner = address(uint160(owner()));

    if (address(token) == address(0)) {
      owner.transfer(address(this).balance);
      return;
    }
    uint256 balance = token.balanceOf(address(this));
    token.transfer(owner, balance);
  }

}


/// @dev The actual token contract, the default owner is the msg.sender
contract DividendToken is IERC20, CanReclaimToken {

    string public name;                //The Token's name: e.g. DigixDAO Tokens
    uint8 public decimals;             //Number of decimals of the smallest unit
    string public symbol;              //An identifier: e.g. REP

    /// @dev `Checkpoint` is the structure that attaches a block number to a
    ///  given value, the block number attached is the one that last changed the
    ///  value
    struct  Checkpoint {

        // `fromBlock` is the block number that the value was generated from
        uint128 fromBlock;

        // `value` is the amount of tokens at a specific block number
        uint128 value;
    }

    // `parentToken` is the Token address that was cloned to produce this token;
    //  it will be 0x0 for a token that was not cloned
    DividendToken public parentToken;

    // `parentSnapShotBlock` is the block number from the Parent Token that was
    //  used to determine the initial distribution of the Clone Token
    uint public parentSnapShotBlock;

    // `creationBlock` is the block number that the Clone Token was created
    uint public creationBlock;

    // `balances` is the map that tracks the balance of each address, in this
    //  contract when the balance changes the block number that the change
    //  occurred is also included in the map
    mapping (address => Checkpoint[]) balances;

    // `allowed` tracks any extra transfer rights as in all ERC20 tokens
    mapping (address => mapping (address => uint256)) allowed;

    // Tracks the history of the `totalSupply` of the token
    Checkpoint[] totalSupplyHistory;


    ////////////////
    // Constructor
    ////////////////

    /// @param _parentToken Address of the parent token, set to 0x0 if it is a
    ///  new token
    /// @param _parentSnapShotBlock Block of the parent token that will
    ///  determine the initial distribution of the clone token, set to 0 if it
    ///  is a new token
    constructor (address _parentToken, uint _parentSnapShotBlock) public {
        name = "Holddapp Dividend Token";
        symbol = "HDT";
        decimals = 6;
        parentToken = DividendToken(_parentToken);
        parentSnapShotBlock = _parentSnapShotBlock == 0 ? block.number : _parentSnapShotBlock;
        creationBlock = block.number;

        //initial emission
        uint _amount = 380000 * (10 ** uint256(decimals));
        updateValueAtNow(totalSupplyHistory, _amount);
        updateValueAtNow(balances[msg.sender], _amount);
        emit Transfer(address(0), msg.sender, _amount);
    }

    /// @notice The fallback function
    function () external {}


    ///////////////////
    // ERC20 Methods
    ///////////////////

    /// @notice Send `_amount` tokens to `_to` from `msg.sender`
    /// @param _to The address of the recipient
    /// @param _amount The amount of tokens to be transferred
    /// @return Whether the transfer was successful or not
    function transfer(address _to, uint256 _amount) external returns (bool success) {
        doTransfer(msg.sender, _to, _amount);
        return true;
    }

    /// @notice Send `_amount` tokens to `_to` from `_from` on the condition it
    ///  is approved by `_from`
    /// @param _from The address holding the tokens being transferred
    /// @param _to The address of the recipient
    /// @param _amount The amount of tokens to be transferred
    /// @return True if the transfer was successful
    function transferFrom(address _from, address _to, uint256 _amount) external returns (bool success) {
        // The standard ERC 20 transferFrom functionality
        require(allowed[_from][msg.sender] >= _amount);
        allowed[_from][msg.sender] -= _amount;
        doTransfer(_from, _to, _amount);
        return true;
    }

    /// @dev This is the actual transfer function in the token contract, it can
    ///  only be called by other functions in this contract.
    /// @param _from The address holding the tokens being transferred
    /// @param _to The address of the recipient
    /// @param _amount The amount of tokens to be transferred
    /// @return True if the transfer was successful
    function doTransfer(address _from, address _to, uint _amount) internal {

        if (_amount == 0) {
            emit Transfer(_from, _to, _amount);    // Follow the spec to louch the event when transfer 0
            return;
        }

        require(parentSnapShotBlock < block.number);

        // Do not allow transfer to 0x0 or the token contract itself
        require((_to != address(0)) && (_to != address(this)));

        // If the amount being transfered is more than the balance of the
        //  account the transfer throws
        uint previousBalanceFrom = balanceOfAt(_from, block.number);

        require(previousBalanceFrom >= _amount);

        // First update the balance array with the new value for the address
        //  sending the tokens
        updateValueAtNow(balances[_from], previousBalanceFrom - _amount);

        // Then update the balance array with the new value for the address
        //  receiving the tokens
        uint previousBalanceTo = balanceOfAt(_to, block.number);
        require(previousBalanceTo + _amount >= previousBalanceTo); // Check for overflow
        updateValueAtNow(balances[_to], previousBalanceTo + _amount);

        // An event to make the transfer easy to find on the blockchain
        emit Transfer(_from, _to, _amount);

    }

    /// @param _owner The address that's balance is being requested
    /// @return The balance of `_owner` at the current block
    function balanceOf(address _owner) public view returns (uint256 balance) {
        return balanceOfAt(_owner, block.number);
    }

    /// @notice `msg.sender` approves `_spender` to spend `_amount` tokens on
    ///  its behalf. This is a modified version of the ERC20 approve function
    ///  to be a little bit safer
    /// @param _spender The address of the account able to transfer the tokens
    /// @param _amount The amount of tokens to be approved for transfer
    /// @return True if the approval was successful
    function approve(address _spender, uint256 _amount) public returns (bool success) {
        // To change the approve amount you first have to reduce the addresses`
        //  allowance to zero by calling `approve(_spender,0)` if it is not
        //  already 0 to mitigate the race condition described here:
        //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
        require((_amount == 0) || (allowed[msg.sender][_spender] == 0));

        allowed[msg.sender][_spender] = _amount;
        emit Approval(msg.sender, _spender, _amount);
        return true;
    }

    /**
     * @dev Increase the amount of tokens that an owner allowed to a spender.
     *
     * approve should be called when allowance[_spender] == 0. To increment
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * @param _spender The address which will spend the funds.
     * @param _addedAmount The amount of tokens to increase the allowance by.
     */
    function increaseApproval(address _spender, uint _addedAmount) external returns (bool) {
        require(allowed[msg.sender][_spender] + _addedAmount >= allowed[msg.sender][_spender]); // Check for overflow
        allowed[msg.sender][_spender] = allowed[msg.sender][_spender] + _addedAmount;
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner allowed to a spender.
     *
     * approve should be called when allowance[_spender] == 0. To decrement
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * @param _spender The address which will spend the funds.
     * @param _subtractedAmount The amount of tokens to decrease the allowance by.
     */
    function decreaseApproval(address _spender, uint _subtractedAmount) external returns (bool)
    {
        uint oldValue = allowed[msg.sender][_spender];
        if (_subtractedAmount >= oldValue) {
            allowed[msg.sender][_spender] = 0;
        } else {
            allowed[msg.sender][_spender] = oldValue - _subtractedAmount;
        }
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }


    /// @dev This function makes it easy to read the `allowed[]` map
    /// @param _owner The address of the account that owns the token
    /// @param _spender The address of the account able to transfer the tokens
    /// @return Amount of remaining tokens of _owner that _spender is allowed
    ///  to spend
    function allowance(address _owner, address _spender) external view returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }


    /// @dev This function makes it easy to get the total number of tokens
    /// @return The total number of tokens
    function totalSupply() public view returns (uint) {
        return totalSupplyAt(block.number);
    }


    ////////////////
    // Query balance and totalSupply in History
    ////////////////

    /// @dev Queries the balance of `_owner` at a specific `_blockNumber`
    /// @param _owner The address from which the balance will be retrieved
    /// @param _blockNumber The block number when the balance is queried
    /// @return The balance at `_blockNumber`
    function balanceOfAt(address _owner, uint _blockNumber) public view returns (uint) {

        // These next few lines are used when the balance of the token is
        //  requested before a check point was ever created for this token, it
        //  requires that the `parentToken.balanceOfAt` be queried at the
        //  genesis block for that token as this contains initial balance of
        //  this token
        if ((balances[_owner].length == 0)
            || (balances[_owner][0].fromBlock > _blockNumber)) {
            if (address(parentToken) != address(0)) {
                return parentToken.balanceOfAt(_owner, min(_blockNumber, parentSnapShotBlock));
            } else {
                // Has no parent
                return 0;
            }

            // This will return the expected balance during normal situations
        } else {
            return getValueAt(balances[_owner], _blockNumber);
        }
    }

    /// @notice Total amount of tokens at a specific `_blockNumber`.
    /// @param _blockNumber The block number when the totalSupply is queried
    /// @return The total amount of tokens at `_blockNumber`
    function totalSupplyAt(uint _blockNumber) public view returns(uint) {

        // These next few lines are used when the totalSupply of the token is
        //  requested before a check point was ever created for this token, it
        //  requires that the `parentToken.totalSupplyAt` be queried at the
        //  genesis block for this token as that contains totalSupply of this
        //  token at this block number.
        if ((totalSupplyHistory.length == 0)
            || (totalSupplyHistory[0].fromBlock > _blockNumber)) {
            if (address(parentToken) != address(0)) {
                return parentToken.totalSupplyAt(min(_blockNumber, parentSnapShotBlock));
            } else {
                return 0;
            }

            // This will return the expected totalSupply during normal situations
        } else {
            return getValueAt(totalSupplyHistory, _blockNumber);
        }
    }


   

    ////////////////
    // Internal helper functions to query and set a value in a snapshot array
    ////////////////

    /// @dev `getValueAt` retrieves the number of tokens at a given block number
    /// @param checkpoints The history of values being queried
    /// @param _block The block number to retrieve the value at
    /// @return The number of tokens being queried
    function getValueAt(Checkpoint[] storage checkpoints, uint _block) view internal returns (uint) {
        if (checkpoints.length == 0) return 0;

        // Shortcut for the actual value
        if (_block >= checkpoints[checkpoints.length-1].fromBlock)
            return checkpoints[checkpoints.length-1].value;
        if (_block < checkpoints[0].fromBlock) return 0;

        // Binary search of the value in the array
        uint min = 0;
        uint max = checkpoints.length-1;
        while (max > min) {
            uint mid = (max + min + 1)/ 2;
            if (checkpoints[mid].fromBlock<=_block) {
                min = mid;
            } else {
                max = mid-1;
            }
        }
        return checkpoints[min].value;
    }

    /// @dev `updateValueAtNow` used to update the `balances` map and the
    ///  `totalSupplyHistory`
    /// @param checkpoints The history of data being updated
    /// @param _value The new number of tokens
    function updateValueAtNow(Checkpoint[] storage checkpoints, uint _value) internal  {
        if ((checkpoints.length == 0)
            || (checkpoints[checkpoints.length -1].fromBlock < block.number)) {
            Checkpoint storage newCheckPoint = checkpoints[ checkpoints.length++ ];
            newCheckPoint.fromBlock =  uint128(block.number);
            newCheckPoint.value = uint128(_value);
        } else {
            Checkpoint storage oldCheckPoint = checkpoints[checkpoints.length-1];
            oldCheckPoint.value = uint128(_value);
        }
    }


    /// @dev Helper function to return a min betwen the two uints
    function min(uint a, uint b) pure internal returns (uint) {
        return a < b ? a : b;
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_parentToken","type":"address"},{"internalType":"uint256","name":"_parentSnapShotBlock","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_blockNumber","type":"uint256"}],"name":"balanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"creationBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_subtractedAmount","type":"uint256"}],"name":"decreaseApproval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_addedAmount","type":"uint256"}],"name":"increaseApproval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"parentSnapShotBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"parentToken","outputs":[{"internalType":"contract DividendToken","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_blockNumber","type":"uint256"}],"name":"totalSupplyAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040516200159038038062001590833981810160405260408110156200003757600080fd5b508051602090910151600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36040805180820190915260178082527f486f6c6464617070204469766964656e6420546f6b656e0000000000000000006020909201918252620000cf91600191620002c8565b506040805180820190915260038082527f48445400000000000000000000000000000000000000000000000000000000006020909201918252620001149181620002c8565b506002805460ff19166006179055600480546001600160a01b0384166001600160a01b031990911617905580156200014d57806200014f565b435b6005554360065560025460ff16600a0a6205cc600262000171600982620001d6565b3360009081526007602052604090206200019590826001600160e01b03620001d616565b60408051828152905133916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350505062000399565b815415806200020c57508154439083906000198101908110620001f557fe5b6000918252602090912001546001600160801b0316105b156200027c57815460009083906200022882600183016200034d565b815481106200023357fe5b600091825260209091200180546001600160801b03848116700100000000000000000000000000000000024382166001600160801b0319909316929092171617905550620002c4565b8154600090839060001981019081106200029257fe5b600091825260209091200180546001600160801b03808516700100000000000000000000000000000000029116179055505b5050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200030b57805160ff19168380011785556200033b565b828001600101855582156200033b579182015b828111156200033b5782518255916020019190600101906200031e565b506200034992915062000379565b5090565b81548183558181111562000374576000838152602090206200037491810190830162000379565b505050565b6200039691905b8082111562000349576000815560010162000380565b90565b6111e780620003a96000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063715018a6116100b8578063981b24d01161007c578063981b24d014610354578063a9059cbb14610371578063c5bcc4f11461039d578063d73dd623146103a5578063dd62ed3e146103d1578063f2fde38b146103ff57610137565b8063715018a61461031057806380a54001146103185780638da5cb5b1461033c5780638f32d59b1461034457806395d89b411461034c57610137565b806323b872dd116100ff57806323b872dd1461023e578063313ce567146102745780634ee2cd7e1461029257806366188463146102be57806370a08231146102ea57610137565b806306fdde0314610139578063095ea7b3146101b657806317634514146101f657806317ffc3201461021057806318160ddd14610236575b005b610141610425565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017b578181015183820152602001610163565b50505050905090810190601f1680156101a85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101e2600480360360408110156101cc57600080fd5b506001600160a01b0381351690602001356104b2565b604080519115158252519081900360200190f35b6101fe610553565b60408051918252519081900360200190f35b6101376004803603602081101561022657600080fd5b50356001600160a01b0316610559565b6101fe610707565b6101e26004803603606081101561025457600080fd5b506001600160a01b03813581169160208101359091169060400135610718565b61027c610787565b6040805160ff9092168252519081900360200190f35b6101fe600480360360408110156102a857600080fd5b506001600160a01b038135169060200135610790565b6101e2600480360360408110156102d457600080fd5b506001600160a01b0381351690602001356108d6565b6101fe6004803603602081101561030057600080fd5b50356001600160a01b03166109b9565b6101376109cd565b610320610a70565b604080516001600160a01b039092168252519081900360200190f35b610320610a7f565b6101e2610a8e565b610141610a9f565b6101fe6004803603602081101561036a57600080fd5b5035610afa565b6101e26004803603604081101561038757600080fd5b506001600160a01b038135169060200135610be7565b6101fe610bfd565b6101e2600480360360408110156103bb57600080fd5b506001600160a01b038135169060200135610c03565b6101fe600480360360408110156103e757600080fd5b506001600160a01b0381358116916020013516610ca1565b6101376004803603602081101561041557600080fd5b50356001600160a01b0316610ccc565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104aa5780601f1061047f576101008083540402835291602001916104aa565b820191906000526020600020905b81548152906001019060200180831161048d57829003601f168201915b505050505081565b60008115806104e257503360009081526008602090815260408083206001600160a01b0387168452909152902054155b6104eb57600080fd5b3360008181526008602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60065481565b610561610a8e565b6105b2576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60006105bc610a7f565b90506001600160a01b038216610609576040516001600160a01b03821690303180156108fc02916000818181858888f19350505050158015610602573d6000803e3d6000fd5b5050610704565b604080516370a0823160e01b815230600482015290516000916001600160a01b038516916370a0823191602480820192602092909190829003018186803b15801561065357600080fd5b505afa158015610667573d6000803e3d6000fd5b505050506040513d602081101561067d57600080fd5b50516040805163a9059cbb60e01b81526001600160a01b0385811660048301526024820184905291519293509085169163a9059cbb916044808201926020929091908290030181600087803b1580156106d557600080fd5b505af11580156106e9573d6000803e3d6000fd5b505050506040513d60208110156106ff57600080fd5b505050505b50565b600061071243610afa565b90505b90565b6001600160a01b038316600090815260086020908152604080832033845290915281205482111561074857600080fd5b6001600160a01b038416600090815260086020908152604080832033845290915290208054839003905561077d848484610d2e565b5060019392505050565b60025460ff1681565b6001600160a01b03821660009081526007602052604081205415806107ea57506001600160a01b038316600090815260076020526040812080548492906107d357fe5b6000918252602090912001546001600160801b0316115b156108ad576004546001600160a01b0316156108a5576004546005546001600160a01b0390911690634ee2cd7e908590610825908690610e8e565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b15801561087257600080fd5b505afa158015610886573d6000803e3d6000fd5b505050506040513d602081101561089c57600080fd5b5051905061054d565b50600061054d565b6001600160a01b03831660009081526007602052604090206108cf9083610ea6565b905061054d565b3360009081526008602090815260408083206001600160a01b038616845290915281205480831061092a573360009081526008602090815260408083206001600160a01b0388168452909152812055610953565b3360009081526008602090815260408083206001600160a01b0388168452909152902083820390555b3360008181526008602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60006109c58243610790565b90505b919050565b6109d5610a8e565b610a26576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6004546001600160a01b031681565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104aa5780601f1061047f576101008083540402835291602001916104aa565b6009546000901580610b2d5750816009600081548110610b1657fe5b6000918252602090912001546001600160801b0316115b15610bd5576004546001600160a01b031615610bcd576004546005546001600160a01b039091169063981b24d090610b66908590610e8e565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610b9a57600080fd5b505afa158015610bae573d6000803e3d6000fd5b505050506040513d6020811015610bc457600080fd5b505190506109c8565b5060006109c8565b610be0600983610ea6565b90506109c8565b6000610bf4338484610d2e565b50600192915050565b60055481565b3360009081526008602090815260408083206001600160a01b03861684529091528120548281011015610c3557600080fd5b3360008181526008602090815260408083206001600160a01b038816808552908352928190208054870190819055815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b610cd4610a8e565b610d25576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61070481610fd6565b80610d8357816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3610e89565b4360055410610d9157600080fd5b6001600160a01b03821615801590610db257506001600160a01b0382163014155b610dbb57600080fd5b6000610dc78443610790565b905081811015610dd657600080fd5b6001600160a01b0384166000908152600760205260409020610dfa90838303611076565b6000610e068443610790565b9050808382011015610e1757600080fd5b6001600160a01b0384166000908152600760205260409020610e3b90828501611076565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a350505b505050565b6000818310610e9d5781610e9f565b825b9392505050565b8154600090610eb75750600061054d565b825483906000198101908110610ec957fe5b6000918252602090912001546001600160801b03168210610f1957825483906000198101908110610ef657fe5b600091825260209091200154600160801b90046001600160801b0316905061054d565b82600081548110610f2657fe5b6000918252602090912001546001600160801b0316821015610f4a5750600061054d565b8254600090600019015b81811115610fa5576000600260018385010104905084868281548110610f7657fe5b6000918252602090912001546001600160801b031611610f9857809250610f9f565b6001810391505b50610f54565b848281548110610fb157fe5b600091825260209091200154600160801b90046001600160801b031695945050505050565b6001600160a01b03811661101b5760405162461bcd60e51b815260040180806020018281038252602681526020018061118d6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b815415806110aa5750815443908390600019810190811061109357fe5b6000918252602090912001546001600160801b0316105b1561111157815460009083906110c3826001830161114f565b815481106110cd57fe5b600091825260209091200180546001600160801b03848116600160801b024382166fffffffffffffffffffffffffffffffff1990931692909217161790555061114b565b81546000908390600019810190811061112657fe5b600091825260209091200180546001600160801b03808516600160801b029116179055505b5050565b815481835581811115610e8957600083815260209020610e8991810190830161071591905b808211156111885760008155600101611174565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a265627a7a72315820f01604b209b51c46c282f74e233e137b3f3dcd9d519fa03f0991783120d268d864736f6c634300050c003200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101375760003560e01c8063715018a6116100b8578063981b24d01161007c578063981b24d014610354578063a9059cbb14610371578063c5bcc4f11461039d578063d73dd623146103a5578063dd62ed3e146103d1578063f2fde38b146103ff57610137565b8063715018a61461031057806380a54001146103185780638da5cb5b1461033c5780638f32d59b1461034457806395d89b411461034c57610137565b806323b872dd116100ff57806323b872dd1461023e578063313ce567146102745780634ee2cd7e1461029257806366188463146102be57806370a08231146102ea57610137565b806306fdde0314610139578063095ea7b3146101b657806317634514146101f657806317ffc3201461021057806318160ddd14610236575b005b610141610425565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017b578181015183820152602001610163565b50505050905090810190601f1680156101a85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101e2600480360360408110156101cc57600080fd5b506001600160a01b0381351690602001356104b2565b604080519115158252519081900360200190f35b6101fe610553565b60408051918252519081900360200190f35b6101376004803603602081101561022657600080fd5b50356001600160a01b0316610559565b6101fe610707565b6101e26004803603606081101561025457600080fd5b506001600160a01b03813581169160208101359091169060400135610718565b61027c610787565b6040805160ff9092168252519081900360200190f35b6101fe600480360360408110156102a857600080fd5b506001600160a01b038135169060200135610790565b6101e2600480360360408110156102d457600080fd5b506001600160a01b0381351690602001356108d6565b6101fe6004803603602081101561030057600080fd5b50356001600160a01b03166109b9565b6101376109cd565b610320610a70565b604080516001600160a01b039092168252519081900360200190f35b610320610a7f565b6101e2610a8e565b610141610a9f565b6101fe6004803603602081101561036a57600080fd5b5035610afa565b6101e26004803603604081101561038757600080fd5b506001600160a01b038135169060200135610be7565b6101fe610bfd565b6101e2600480360360408110156103bb57600080fd5b506001600160a01b038135169060200135610c03565b6101fe600480360360408110156103e757600080fd5b506001600160a01b0381358116916020013516610ca1565b6101376004803603602081101561041557600080fd5b50356001600160a01b0316610ccc565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104aa5780601f1061047f576101008083540402835291602001916104aa565b820191906000526020600020905b81548152906001019060200180831161048d57829003601f168201915b505050505081565b60008115806104e257503360009081526008602090815260408083206001600160a01b0387168452909152902054155b6104eb57600080fd5b3360008181526008602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60065481565b610561610a8e565b6105b2576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60006105bc610a7f565b90506001600160a01b038216610609576040516001600160a01b03821690303180156108fc02916000818181858888f19350505050158015610602573d6000803e3d6000fd5b5050610704565b604080516370a0823160e01b815230600482015290516000916001600160a01b038516916370a0823191602480820192602092909190829003018186803b15801561065357600080fd5b505afa158015610667573d6000803e3d6000fd5b505050506040513d602081101561067d57600080fd5b50516040805163a9059cbb60e01b81526001600160a01b0385811660048301526024820184905291519293509085169163a9059cbb916044808201926020929091908290030181600087803b1580156106d557600080fd5b505af11580156106e9573d6000803e3d6000fd5b505050506040513d60208110156106ff57600080fd5b505050505b50565b600061071243610afa565b90505b90565b6001600160a01b038316600090815260086020908152604080832033845290915281205482111561074857600080fd5b6001600160a01b038416600090815260086020908152604080832033845290915290208054839003905561077d848484610d2e565b5060019392505050565b60025460ff1681565b6001600160a01b03821660009081526007602052604081205415806107ea57506001600160a01b038316600090815260076020526040812080548492906107d357fe5b6000918252602090912001546001600160801b0316115b156108ad576004546001600160a01b0316156108a5576004546005546001600160a01b0390911690634ee2cd7e908590610825908690610e8e565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b15801561087257600080fd5b505afa158015610886573d6000803e3d6000fd5b505050506040513d602081101561089c57600080fd5b5051905061054d565b50600061054d565b6001600160a01b03831660009081526007602052604090206108cf9083610ea6565b905061054d565b3360009081526008602090815260408083206001600160a01b038616845290915281205480831061092a573360009081526008602090815260408083206001600160a01b0388168452909152812055610953565b3360009081526008602090815260408083206001600160a01b0388168452909152902083820390555b3360008181526008602090815260408083206001600160a01b0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60006109c58243610790565b90505b919050565b6109d5610a8e565b610a26576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6004546001600160a01b031681565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104aa5780601f1061047f576101008083540402835291602001916104aa565b6009546000901580610b2d5750816009600081548110610b1657fe5b6000918252602090912001546001600160801b0316115b15610bd5576004546001600160a01b031615610bcd576004546005546001600160a01b039091169063981b24d090610b66908590610e8e565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610b9a57600080fd5b505afa158015610bae573d6000803e3d6000fd5b505050506040513d6020811015610bc457600080fd5b505190506109c8565b5060006109c8565b610be0600983610ea6565b90506109c8565b6000610bf4338484610d2e565b50600192915050565b60055481565b3360009081526008602090815260408083206001600160a01b03861684529091528120548281011015610c3557600080fd5b3360008181526008602090815260408083206001600160a01b038816808552908352928190208054870190819055815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b610cd4610a8e565b610d25576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61070481610fd6565b80610d8357816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3610e89565b4360055410610d9157600080fd5b6001600160a01b03821615801590610db257506001600160a01b0382163014155b610dbb57600080fd5b6000610dc78443610790565b905081811015610dd657600080fd5b6001600160a01b0384166000908152600760205260409020610dfa90838303611076565b6000610e068443610790565b9050808382011015610e1757600080fd5b6001600160a01b0384166000908152600760205260409020610e3b90828501611076565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a350505b505050565b6000818310610e9d5781610e9f565b825b9392505050565b8154600090610eb75750600061054d565b825483906000198101908110610ec957fe5b6000918252602090912001546001600160801b03168210610f1957825483906000198101908110610ef657fe5b600091825260209091200154600160801b90046001600160801b0316905061054d565b82600081548110610f2657fe5b6000918252602090912001546001600160801b0316821015610f4a5750600061054d565b8254600090600019015b81811115610fa5576000600260018385010104905084868281548110610f7657fe5b6000918252602090912001546001600160801b031611610f9857809250610f9f565b6001810391505b50610f54565b848281548110610fb157fe5b600091825260209091200154600160801b90046001600160801b031695945050505050565b6001600160a01b03811661101b5760405162461bcd60e51b815260040180806020018281038252602681526020018061118d6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b815415806110aa5750815443908390600019810190811061109357fe5b6000918252602090912001546001600160801b0316105b1561111157815460009083906110c3826001830161114f565b815481106110cd57fe5b600091825260209091200180546001600160801b03848116600160801b024382166fffffffffffffffffffffffffffffffff1990931692909217161790555061114b565b81546000908390600019810190811061112657fe5b600091825260209091200180546001600160801b03808516600160801b029116179055505b5050565b815481835581811115610e8957600083815260209020610e8991810190830161071591905b808211156111885760008155600101611174565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a265627a7a72315820f01604b209b51c46c282f74e233e137b3f3dcd9d519fa03f0991783120d268d864736f6c634300050c0032

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

00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _parentToken (address): 0x0000000000000000000000000000000000000000
Arg [1] : _parentSnapShotBlock (uint256): 0

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

6063:14091:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6063:14091:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6122:18;;;:::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;6122:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12343:600;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12343:600:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;7217:25;;;:::i;:::-;;;;;;;;;;;;;;;;5659:320;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5659:320:0;-1:-1:-1;;;;;5659:320:0;;:::i;15398:103::-;;;:::i;9613:335::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9613:335:0;;;;;;;;;;;;;;;;;:::i;6203:21::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15878:959;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;15878:959:0;;;;;;;;:::i;14336:458::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14336:458:0;;;;;;;;:::i;11804:132::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11804:132:0;-1:-1:-1;;;;;11804:132:0;;:::i;4476:140::-;;;:::i;6907:32::-;;;:::i;:::-;;;;-1:-1:-1;;;;;6907:32:0;;;;;;;;;;;;;;3665:79;;;:::i;4031:92::-;;;:::i;6285:20::-;;;:::i;17055:938::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17055:938:0;;:::i;9098:157::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9098:157:0;;;;;;;;:::i;7100:31::-;;;:::i;13437:400::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13437:400:0;;;;;;;;:::i;15122:146::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;15122:146:0;;;;;;;;;;:::i;4771:109::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4771:109:0;-1:-1:-1;;;;;4771:109:0;;:::i;6122:18::-;;;;;;;;;;;;;;;-1:-1:-1;;6122:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12343:600::-;12411:12;12752;;;12751:54;;-1:-1:-1;12778:10:0;12770:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;12770:29:0;;;;;;;;;;:34;12751:54;12743:63;;;;;;12827:10;12819:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;12819:29:0;;;;;;;;;;;;:39;;;12874;;;;;;;12819:29;;12827:10;12874:39;;;;;;;;;;;-1:-1:-1;12931:4:0;12343:600;;;;;:::o;7217:25::-;;;;:::o;5659:320::-;3877:9;:7;:9::i;:::-;3869:54;;;;;-1:-1:-1;;;3869:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5721:21;5761:7;:5;:7::i;:::-;5721:49;-1:-1:-1;;;;;;5783:28:0;;5779:103;;5822:37;;-1:-1:-1;;;;;5822:14:0;;;5845:4;5837:21;5822:37;;;;;;;;;5837:21;5822:14;:37;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5822:37:0;5868:7;;;5779:103;5906:30;;;-1:-1:-1;;;5906:30:0;;5930:4;5906:30;;;;;;5888:15;;-1:-1:-1;;;;;5906:15:0;;;;;:30;;;;;;;;;;;;;;;:15;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;5906:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5906:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5906:30:0;5943;;;-1:-1:-1;;;5943:30:0;;-1:-1:-1;;;;;5943:30:0;;;;;;;;;;;;;;;5906;;-1:-1:-1;5943:14:0;;;;;;:30;;;;;5906;;5943;;;;;;;;-1:-1:-1;5943:14:0;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;5943:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5943:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;3934:1:0;5659:320;:::o;15398:103::-;15442:4;15466:27;15480:12;15466:13;:27::i;:::-;15459:34;;15398:103;;:::o;9613:335::-;-1:-1:-1;;;;;9790:14:0;;9698:12;9790:14;;;:7;:14;;;;;;;;9805:10;9790:26;;;;;;;;:37;-1:-1:-1;9790:37:0;9782:46;;;;;;-1:-1:-1;;;;;9839:14:0;;;;;;:7;:14;;;;;;;;9854:10;9839:26;;;;;;;:37;;;;;;;9887:31;9847:5;9905:3;9869:7;9887:10;:31::i;:::-;-1:-1:-1;9936:4:0;9613:335;;;;;:::o;6203:21::-;;;;;;:::o;15878:959::-;-1:-1:-1;;;;;16311:16:0;;15955:4;16311:16;;;:8;:16;;;;;:23;:28;;16310:93;;-1:-1:-1;;;;;;16358:16:0;;;;;;:8;:16;;;;;:19;;16390:12;;16358:16;:19;;;;;;;;;;;;;:29;-1:-1:-1;;;;;16358:29:0;:44;16310:93;16306:524;;;16432:11;;-1:-1:-1;;;;;16432:11:0;16424:34;16420:236;;16486:11;;16536:19;;-1:-1:-1;;;;;16486:11:0;;;;:23;;16510:6;;16518:38;;16522:12;;16518:3;:38::i;:::-;16486:71;;;;;;;;;;;;;-1:-1:-1;;;;;16486:71:0;-1:-1:-1;;;;;16486:71:0;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16486:71:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16486:71:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16486:71:0;;-1:-1:-1;16479:78:0;;16420:236;-1:-1:-1;16639:1:0;16632:8;;16306:524;-1:-1:-1;;;;;16787:16:0;;;;;;:8;:16;;;;;16776:42;;16805:12;16776:10;:42::i;:::-;16769:49;;;;14336:458;14468:10;14422:4;14460:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;14460:29:0;;;;;;;;;;14504;;;14500:188;;14558:10;14582:1;14550:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;14550:29:0;;;;;;;;;:33;14500:188;;;14624:10;14616:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;14616:29:0;;;;;;;;;14648:28;;;14616:60;;14500:188;14712:10;14734:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;14703:61:0;;14734:29;;;;;;;;;;;14703:61;;;;;;;;;14712:10;14703:61;;;;;;;;;;;-1:-1:-1;14782:4:0;;14336:458;-1:-1:-1;;;14336:458:0:o;11804:132::-;11860:15;11895:33;11907:6;11915:12;11895:11;:33::i;:::-;11888:40;;11804:132;;;;:::o;4476:140::-;3877:9;:7;:9::i;:::-;3869:54;;;;;-1:-1:-1;;;3869:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4575:1;4559:6;;4538:40;;-1:-1:-1;;;;;4559:6:0;;;;4538:40;;4575:1;;4538:40;4606:1;4589:19;;-1:-1:-1;;;;;;4589:19:0;;;4476:140::o;6907:32::-;;;-1:-1:-1;;;;;6907:32:0;;:::o;3665:79::-;3703:7;3730:6;-1:-1:-1;;;;;3730:6:0;3665:79;:::o;4031:92::-;4071:4;4109:6;-1:-1:-1;;;;;4109:6:0;4095:10;:20;;4031:92::o;6285:20::-;;;;;;;;;;;;;;;-1:-1:-1;;6285:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17055:938;17497:18;:25;17117:4;;17497:30;;17496:97;;;17580:12;17546:18;17565:1;17546:21;;;;;;;;;;;;;;;;;:31;-1:-1:-1;;;;;17546:31:0;:46;17496:97;17492:494;;;17622:11;;-1:-1:-1;;;;;17622:11:0;17614:34;17610:196;;17676:11;;17720:19;;-1:-1:-1;;;;;17676:11:0;;;;:25;;17702:38;;17706:12;;17702:3;:38::i;:::-;17676:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17676:65:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17676:65:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17676:65:0;;-1:-1:-1;17669:72:0;;17610:196;-1:-1:-1;17789:1:0;17782:8;;17492:494;17930:44;17941:18;17961:12;17930:10;:44::i;:::-;17923:51;;;;9098:157;9164:12;9189:36;9200:10;9212:3;9217:7;9189:10;:36::i;:::-;-1:-1:-1;9243:4:0;9098:157;;;;:::o;7100:31::-;;;;:::o;13437:400::-;13599:10;13518:4;13591:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;13591:29:0;;;;;;;;;;13543:44;;;:77;;13535:86;;;;;;13694:10;13686:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;13686:29:0;;;;;;;;;;;;;;:44;;13654:76;;;;13746:61;;;;;;;13686:29;;13694:10;13746:61;;;;;;;;;;;-1:-1:-1;13825:4:0;13437:400;;;;:::o;15122:146::-;-1:-1:-1;;;;;15235:15:0;;;15198:17;15235:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;15122:146::o;4771:109::-;3877:9;:7;:9::i;:::-;3869:54;;;;;-1:-1:-1;;;3869:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4844:28;4863:8;4844:18;:28::i;10335:1330::-;10423:12;10419:157;;10473:3;-1:-1:-1;;;;;10457:29:0;10466:5;-1:-1:-1;;;;;10457:29:0;;10478:7;10457:29;;;;;;;;;;;;;;;;;;10558:7;;10419:157;10618:12;10596:19;;:34;10588:43;;;;;;-1:-1:-1;;;;;10723:17:0;;;;;;10722:45;;-1:-1:-1;;;;;;10746:20:0;;10761:4;10746:20;;10722:45;10714:54;;;;;;10897:24;10924:32;10936:5;10943:12;10924:11;:32::i;:::-;10897:59;;11000:7;10977:19;:30;;10969:39;;;;;;-1:-1:-1;;;;;11148:15:0;;;;;;:8;:15;;;;;11131:64;;11165:29;;;11131:16;:64::i;:::-;11319:22;11344:30;11356:3;11361:12;11344:11;:30::i;:::-;11319:55;;11424:17;11413:7;11393:17;:27;:48;;11385:57;;;;;;-1:-1:-1;;;;;11492:13:0;;;;;;:8;:13;;;;;11475:60;;11507:27;;;11475:16;:60::i;:::-;11642:3;-1:-1:-1;;;;;11626:29:0;11635:5;-1:-1:-1;;;;;11626:29:0;;11647:7;11626:29;;;;;;;;;;;;;;;;;;10335:1330;;;;;;:::o;20050:97::-;20102:4;20130:1;20126;:5;:13;;20138:1;20126:13;;;20134:1;20126:13;20119:20;20050:97;-1:-1:-1;;;20050:97:0:o;18398:776::-;18509:18;;18488:4;;18505:37;;-1:-1:-1;18541:1:0;18534:8;;18505:37;18623:18;;18611:11;;-1:-1:-1;;18623:20:0;;;18611:33;;;;;;;;;;;;;;;:43;-1:-1:-1;;;;;18611:43:0;18601:53;;18597:118;;18688:18;;18676:11;;-1:-1:-1;;18688:20:0;;;18676:33;;;;;;;;;;;;;;;:39;-1:-1:-1;;;18676:39:0;;-1:-1:-1;;;;;18676:39:0;;-1:-1:-1;18669:46:0;;18597:118;18739:11;18751:1;18739:14;;;;;;;;;;;;;;;;;:24;-1:-1:-1;;;;;18739:24:0;18730:33;;18726:47;;;-1:-1:-1;18772:1:0;18765:8;;18726:47;18872:18;;18838:8;;-1:-1:-1;;18872:20:0;18903:224;18916:3;18910;:9;18903:224;;;18936:8;18964:1;18960;18948:9;;;:13;18947:18;18936:29;;19012:6;18984:11;18996:3;18984:16;;;;;;;;;;;;;;;;;:26;-1:-1:-1;;;;;18984:26:0;:34;18980:136;;19045:3;19039:9;;18980:136;;;19099:1;19095:3;:5;19089:11;;18980:136;18903:224;;;;19144:11;19156:3;19144:16;;;;;;;;;;;;;;;;;:22;-1:-1:-1;;;19144:22:0;;-1:-1:-1;;;;;19144:22:0;;18398:776;-1:-1:-1;;;;;18398:776:0:o;4986:229::-;-1:-1:-1;;;;;5060:22:0;;5052:73;;;;-1:-1:-1;;;5052:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5162:6;;;5141:38;;-1:-1:-1;;;;;5141:38:0;;;;5162:6;;;5141:38;;;5190:6;:17;;-1:-1:-1;;;;;;5190:17:0;-1:-1:-1;;;;;5190:17:0;;;;;;;;;;4986:229::o;19398:575::-;19497:18;;:23;;19496:103;;-1:-1:-1;19551:18:0;;19586:12;;19539:11;;-1:-1:-1;;19551:21:0;;;19539:34;;;;;;;;;;;;;;;:44;-1:-1:-1;;;;;19539:44:0;:59;19496:103;19492:474;;;19664:20;;19616:32;;19651:11;;19664:20;19651:11;19664:20;;;;:::i;:::-;19651:35;;;;;;;;;;;;;;;;;19701:48;;-1:-1:-1;;;;;19764:37:0;;;-1:-1:-1;;;19764:37:0;19736:12;19701:48;;-1:-1:-1;;19701:48:0;;;;;;;19764:37;;;;-1:-1:-1;19492:474:0;;;19881:18;;19834:32;;19869:11;;-1:-1:-1;;19881:20:0;;;19869:33;;;;;;;;;;;;;;;19917:37;;-1:-1:-1;;;;;19917:37:0;;;-1:-1:-1;;;19917:37:0;;;;;;-1:-1:-1;19492:474:0;19398:575;;:::o;6063:14091::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

bzzr://f01604b209b51c46c282f74e233e137b3f3dcd9d519fa03f0991783120d268d8
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.