ETH Price: $3,485.30 (+3.54%)
Gas: 2 Gwei

Token

NEXE Token (NEXE)
 

Overview

Max Total Supply

4,998,437.96661 NEXE

Holders

586

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
StrongBlock: STRONG Token
Balance
5,328.075568643371226476 NEXE

Value
$0.00
0x990f341946a3fdb507ae7e52d17851b87168017c
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:
NEXE

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-08-07
*/

pragma solidity ^0.6.0;

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

pragma solidity ^0.6.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
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.
     *
     * IMPORTANT: 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);
}

contract ERC20 is IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     * @dev Sets the values for {name} and {symbol}, initializes {decimals} with
     * a default value of 18.
     *
     * To select a different value for {decimals}, use {_setupDecimals}.
     *
     * All three of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name, string memory symbol) public {
        _name = name;
        _symbol = symbol;
        _decimals = 18;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is
     * called.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view returns (uint8) {
        return _decimals;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20};
     *
     * Requirements:
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.
     *
     * This is internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Sets {decimals} to a value other than the default one of 18.
     *
     * WARNING: This function should only be called from the constructor. Most
     * applications that interact with token contracts will not expect
     * {decimals} to ever change, and may work incorrectly if it does.
     */
    function _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }

}

contract Ownable {
    address owner;

    constructor() public {
        owner = msg.sender;
    }

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
}

contract NEXE is ERC20, Ownable {

    uint256 public constant SCALE = 10 ** 18;
    uint256 public constant BUY_CAP = 3;
    uint256 public constant EXCHANGE_RATE = 10000;
    uint256 public constant TOKENS_FOR_SALE = 3000000 * SCALE;
    uint256 public constant TOKENS_PREMINED = 2000000 * SCALE;
    
    uint256 startTime;
    bool whitelistIsSet;
    bool transfersAreBlocked;
    mapping (address => bool) whitelisted;

    modifier ExchangeIsOpen() {
        require(whitelistIsSet);
        _;
    }
    
    constructor() public ERC20("NEXE Token", "NEXE") {
        _mint(msg.sender, TOKENS_PREMINED);
    }


    function transfer(address to, uint256 amount) public override returns (bool) {
        require(transfersAreBlocked == false || msg.sender == owner);
        return super.transfer(to, amount);
    }

    function transferFrom(address from, address to, uint256 amount) public override returns (bool) {
        require(transfersAreBlocked == false);
        return super.transferFrom(from, to, amount);
    }

    function whitelistAddresses(address[] calldata users) onlyOwner external {
        for (uint256 i = 0; i < users.length; i++) {
            whitelisted[users[i]] = true;
        }
        whitelistIsSet = true;
        transfersAreBlocked = true;
    }

   function stageOneBuy() private {
       require(whitelisted[msg.sender] = true);
       uint256 mintedTokens_ = (msg.value.mul(EXCHANGE_RATE));
       uint256 totalTokens_ = balanceOf(msg.sender).add(mintedTokens_);
       require(totalTokens_ <= (BUY_CAP * 10000) * (10**18));
       uint256 availableTokens_ = (totalSupply().add(mintedTokens_)).sub(TOKENS_PREMINED);
       require(availableTokens_ <= TOKENS_FOR_SALE);
       _mint(msg.sender, mintedTokens_);       
       address(uint160(owner)).transfer(msg.value);
   }

   function stageTwoBuy() private {
       uint256 mintedTokens_ = (msg.value.mul(EXCHANGE_RATE));
       uint256 availableTokens_ = (totalSupply().add(mintedTokens_)).sub(TOKENS_PREMINED);
       require(availableTokens_ <= TOKENS_FOR_SALE);
       _mint(msg.sender, mintedTokens_);
       address(uint160(owner)).transfer(msg.value);
   }

   function unblockTransfers() external onlyOwner {
       transfersAreBlocked = false;
   }

   receive() external payable {
      require(whitelistIsSet = true);
      if(startTime == uint256(0)) {
         startTime = block.timestamp;
      }
      if((block.timestamp.sub(startTime) <= 1 hours) && (totalSupply().sub(TOKENS_PREMINED) < TOKENS_FOR_SALE)) {
        stageOneBuy();   
      }
      else if((block.timestamp.sub(startTime) > 1 hours && block.timestamp.sub(startTime) <= 2 * (1 hours)) && (totalSupply().sub(TOKENS_PREMINED) < TOKENS_FOR_SALE)) {
        stageTwoBuy();   
      }
      else {
        revert();  
      }
   }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BUY_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EXCHANGE_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SCALE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOKENS_FOR_SALE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOKENS_PREMINED","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"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":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unblockTransfers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"}],"name":"whitelistAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040523480156200001157600080fd5b50604080518082018252600a8152692722ac22902a37b5b2b760b11b6020808301918252835180850190945260048452634e45584560e01b90840152815191929162000060916003916200021f565b508051620000769060049060208401906200021f565b505060058054601260ff1990911617610100600160a81b0319166101003390810291909117909155620000b691506a01a784379d99db42000000620000bc565b620002bb565b6001600160a01b03821662000118576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6200013481600254620001bd60201b62000a991790919060201c565b6002556001600160a01b038216600090815260208181526040909120546200016791839062000a99620001bd821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008282018381101562000218576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026257805160ff191683800117855562000292565b8280016001018555821562000292579182015b828111156200029257825182559160200191906001019062000275565b50620002a0929150620002a4565b5090565b5b80821115620002a05760008155600101620002a5565b6110c880620002cb6000396000f3fe60806040526004361061010d5760003560e01c806356838ede11610095578063a457c2d711610064578063a457c2d7146104c2578063a9059cbb146104fb578063c8612b2f14610534578063dd62ed3e14610549578063eced552614610584576101fd565b806356838ede1461045057806370a08231146104655780638a8495aa1461049857806395d89b41146104ad576101fd565b806323b872dd116100dc57806323b872dd146103175780632bf043041461035a578063313ce567146103d757806339509351146104025780633efe78fd1461043b576101fd565b806306fdde0314610204578063095ea7b31461028e57806314a8bd0d146102db57806318160ddd14610302576101fd565b366101fd576007805460ff1916600117905560065461012b57426006555b610e106101436006544261059990919063ffffffff16565b1115801561017757506a027b46536c66c8e30000006101756a01a784379d99db4200000061016f6105e4565b90610599565b105b15610189576101846105ea565b610202565b610e106101a16006544261059990919063ffffffff16565b1180156101c45750611c206101c16006544261059990919063ffffffff16565b11155b80156101f057506a027b46536c66c8e30000006101ee6a01a784379d99db4200000061016f6105e4565b105b156101fd576101846106c9565b600080fd5b005b34801561021057600080fd5b5061021961075f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561025357818101518382015260200161023b565b50505050905090810190601f1680156102805780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029a57600080fd5b506102c7600480360360408110156102b157600080fd5b506001600160a01b0381351690602001356107f5565b604080519115158252519081900360200190f35b3480156102e757600080fd5b506102f061080b565b60408051918252519081900360200190f35b34801561030e57600080fd5b506102f06105e4565b34801561032357600080fd5b506102c76004803603606081101561033a57600080fd5b506001600160a01b03813581169160208101359091169060400135610811565b34801561036657600080fd5b506102026004803603602081101561037d57600080fd5b81019060208101813564010000000081111561039857600080fd5b8201836020820111156103aa57600080fd5b803590602001918460208302840111640100000000831117156103cc57600080fd5b50909250905061083c565b3480156103e357600080fd5b506103ec6108cb565b6040805160ff9092168252519081900360200190f35b34801561040e57600080fd5b506102c76004803603604081101561042557600080fd5b506001600160a01b0381351690602001356108d4565b34801561044757600080fd5b5061020261090f565b34801561045c57600080fd5b506102f0610938565b34801561047157600080fd5b506102f06004803603602081101561048857600080fd5b50356001600160a01b0316610947565b3480156104a457600080fd5b506102f0610962565b3480156104b957600080fd5b50610219610967565b3480156104ce57600080fd5b506102c7600480360360408110156104e557600080fd5b506001600160a01b0381351690602001356109c8565b34801561050757600080fd5b506102c76004803603604081101561051e57600080fd5b506001600160a01b038135169060200135610a17565b34801561054057600080fd5b506102f0610a53565b34801561055557600080fd5b506102f06004803603604081101561056c57600080fd5b506001600160a01b0381358116916020013516610a62565b34801561059057600080fd5b506102f0610a8d565b60006105db83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610af3565b90505b92915050565b60025490565b336000908152600860205260409020805460ff19166001179055600061061234612710610b8a565b905060006106298261062333610947565b90610a99565b905069065a4da25d3016c0000081111561064257600080fd5b600061065f6a01a784379d99db4200000061016f856106236105e4565b90506a027b46536c66c8e300000081111561067957600080fd5b6106833384610be3565b6005546040516001600160a01b0361010090920491909116903480156108fc02916000818181858888f193505050501580156106c3573d6000803e3d6000fd5b50505050565b60006106d734612710610b8a565b905060006106f66a01a784379d99db4200000061016f846106236105e4565b90506a027b46536c66c8e300000081111561071057600080fd5b61071a3383610be3565b6005546040516001600160a01b0361010090920491909116903480156108fc02916000818181858888f1935050505015801561075a573d6000803e3d6000fd5b505050565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107eb5780601f106107c0576101008083540402835291602001916107eb565b820191906000526020600020905b8154815290600101906020018083116107ce57829003601f168201915b5050505050905090565b6000610802338484610cc7565b50600192915050565b61271081565b600754600090610100900460ff161561082957600080fd5b610834848484610db3565b949350505050565b60055461010090046001600160a01b0316331461085857600080fd5b60005b818110156108ae5760016008600085858581811061087557fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff191691151591909117905560010161085b565b50506007805461ff001960ff199091166001171661010017905550565b60055460ff1690565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161080291859061090a9086610a99565b610cc7565b60055461010090046001600160a01b0316331461092b57600080fd5b6007805461ff0019169055565b6a01a784379d99db4200000081565b6001600160a01b031660009081526020819052604090205490565b600381565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107eb5780601f106107c0576101008083540402835291602001916107eb565b6000610802338461090a8560405180606001604052806025815260200161106e602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190610af3565b600754600090610100900460ff161580610a40575060055461010090046001600160a01b031633145b610a4957600080fd5b6105db8383610e17565b6a027b46536c66c8e300000081565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b670de0b6b3a764000081565b6000828201838110156105db576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008184841115610b825760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b47578181015183820152602001610b2f565b50505050905090810190601f168015610b745780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082610b99575060006105de565b82820282848281610ba657fe5b04146105db5760405162461bcd60e51b8152600401808060200182810382526021815260200180610fdc6021913960400191505060405180910390fd5b6001600160a01b038216610c3e576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610c4b9082610a99565b6002556001600160a01b038216600090815260208190526040902054610c719082610a99565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038316610d0c5760405162461bcd60e51b815260040180806020018281038252602481526020018061104a6024913960400191505060405180910390fd5b6001600160a01b038216610d515760405162461bcd60e51b8152600401808060200182810382526022815260200180610f946022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000610dc0848484610e20565b610e0d843361090a85604051806060016040528060288152602001610ffd602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190610af3565b5060019392505050565b60006108023384845b6001600160a01b038316610e655760405162461bcd60e51b81526004018080602001828103825260258152602001806110256025913960400191505060405180910390fd5b6001600160a01b038216610eaa5760405162461bcd60e51b8152600401808060200182810382526023815260200180610f716023913960400191505060405180910390fd5b610ee781604051806060016040528060268152602001610fb6602691396001600160a01b0386166000908152602081905260409020549190610af3565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610f169082610a99565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208f4f0a42de37538339e0d4ae16883d2cd0c0908a4d9322bf7b27540b2239908864736f6c634300060c0033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c806356838ede11610095578063a457c2d711610064578063a457c2d7146104c2578063a9059cbb146104fb578063c8612b2f14610534578063dd62ed3e14610549578063eced552614610584576101fd565b806356838ede1461045057806370a08231146104655780638a8495aa1461049857806395d89b41146104ad576101fd565b806323b872dd116100dc57806323b872dd146103175780632bf043041461035a578063313ce567146103d757806339509351146104025780633efe78fd1461043b576101fd565b806306fdde0314610204578063095ea7b31461028e57806314a8bd0d146102db57806318160ddd14610302576101fd565b366101fd576007805460ff1916600117905560065461012b57426006555b610e106101436006544261059990919063ffffffff16565b1115801561017757506a027b46536c66c8e30000006101756a01a784379d99db4200000061016f6105e4565b90610599565b105b15610189576101846105ea565b610202565b610e106101a16006544261059990919063ffffffff16565b1180156101c45750611c206101c16006544261059990919063ffffffff16565b11155b80156101f057506a027b46536c66c8e30000006101ee6a01a784379d99db4200000061016f6105e4565b105b156101fd576101846106c9565b600080fd5b005b34801561021057600080fd5b5061021961075f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561025357818101518382015260200161023b565b50505050905090810190601f1680156102805780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029a57600080fd5b506102c7600480360360408110156102b157600080fd5b506001600160a01b0381351690602001356107f5565b604080519115158252519081900360200190f35b3480156102e757600080fd5b506102f061080b565b60408051918252519081900360200190f35b34801561030e57600080fd5b506102f06105e4565b34801561032357600080fd5b506102c76004803603606081101561033a57600080fd5b506001600160a01b03813581169160208101359091169060400135610811565b34801561036657600080fd5b506102026004803603602081101561037d57600080fd5b81019060208101813564010000000081111561039857600080fd5b8201836020820111156103aa57600080fd5b803590602001918460208302840111640100000000831117156103cc57600080fd5b50909250905061083c565b3480156103e357600080fd5b506103ec6108cb565b6040805160ff9092168252519081900360200190f35b34801561040e57600080fd5b506102c76004803603604081101561042557600080fd5b506001600160a01b0381351690602001356108d4565b34801561044757600080fd5b5061020261090f565b34801561045c57600080fd5b506102f0610938565b34801561047157600080fd5b506102f06004803603602081101561048857600080fd5b50356001600160a01b0316610947565b3480156104a457600080fd5b506102f0610962565b3480156104b957600080fd5b50610219610967565b3480156104ce57600080fd5b506102c7600480360360408110156104e557600080fd5b506001600160a01b0381351690602001356109c8565b34801561050757600080fd5b506102c76004803603604081101561051e57600080fd5b506001600160a01b038135169060200135610a17565b34801561054057600080fd5b506102f0610a53565b34801561055557600080fd5b506102f06004803603604081101561056c57600080fd5b506001600160a01b0381358116916020013516610a62565b34801561059057600080fd5b506102f0610a8d565b60006105db83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610af3565b90505b92915050565b60025490565b336000908152600860205260409020805460ff19166001179055600061061234612710610b8a565b905060006106298261062333610947565b90610a99565b905069065a4da25d3016c0000081111561064257600080fd5b600061065f6a01a784379d99db4200000061016f856106236105e4565b90506a027b46536c66c8e300000081111561067957600080fd5b6106833384610be3565b6005546040516001600160a01b0361010090920491909116903480156108fc02916000818181858888f193505050501580156106c3573d6000803e3d6000fd5b50505050565b60006106d734612710610b8a565b905060006106f66a01a784379d99db4200000061016f846106236105e4565b90506a027b46536c66c8e300000081111561071057600080fd5b61071a3383610be3565b6005546040516001600160a01b0361010090920491909116903480156108fc02916000818181858888f1935050505015801561075a573d6000803e3d6000fd5b505050565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107eb5780601f106107c0576101008083540402835291602001916107eb565b820191906000526020600020905b8154815290600101906020018083116107ce57829003601f168201915b5050505050905090565b6000610802338484610cc7565b50600192915050565b61271081565b600754600090610100900460ff161561082957600080fd5b610834848484610db3565b949350505050565b60055461010090046001600160a01b0316331461085857600080fd5b60005b818110156108ae5760016008600085858581811061087557fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff191691151591909117905560010161085b565b50506007805461ff001960ff199091166001171661010017905550565b60055460ff1690565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161080291859061090a9086610a99565b610cc7565b60055461010090046001600160a01b0316331461092b57600080fd5b6007805461ff0019169055565b6a01a784379d99db4200000081565b6001600160a01b031660009081526020819052604090205490565b600381565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107eb5780601f106107c0576101008083540402835291602001916107eb565b6000610802338461090a8560405180606001604052806025815260200161106e602591393360009081526001602090815260408083206001600160a01b038d1684529091529020549190610af3565b600754600090610100900460ff161580610a40575060055461010090046001600160a01b031633145b610a4957600080fd5b6105db8383610e17565b6a027b46536c66c8e300000081565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b670de0b6b3a764000081565b6000828201838110156105db576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008184841115610b825760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b47578181015183820152602001610b2f565b50505050905090810190601f168015610b745780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082610b99575060006105de565b82820282848281610ba657fe5b04146105db5760405162461bcd60e51b8152600401808060200182810382526021815260200180610fdc6021913960400191505060405180910390fd5b6001600160a01b038216610c3e576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610c4b9082610a99565b6002556001600160a01b038216600090815260208190526040902054610c719082610a99565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038316610d0c5760405162461bcd60e51b815260040180806020018281038252602481526020018061104a6024913960400191505060405180910390fd5b6001600160a01b038216610d515760405162461bcd60e51b8152600401808060200182810382526022815260200180610f946022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000610dc0848484610e20565b610e0d843361090a85604051806060016040528060288152602001610ffd602891396001600160a01b038a1660009081526001602090815260408083203384529091529020549190610af3565b5060019392505050565b60006108023384845b6001600160a01b038316610e655760405162461bcd60e51b81526004018080602001828103825260258152602001806110256025913960400191505060405180910390fd5b6001600160a01b038216610eaa5760405162461bcd60e51b8152600401808060200182810382526023815260200180610f716023913960400191505060405180910390fd5b610ee781604051806060016040528060268152602001610fb6602691396001600160a01b0386166000908152602081905260409020549190610af3565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610f169082610a99565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a350505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208f4f0a42de37538339e0d4ae16883d2cd0c0908a4d9322bf7b27540b2239908864736f6c634300060c0033

Deployed Bytecode Sourcemap

16478:2885:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18845:14;:21;;-1:-1:-1;;18845:21:0;18862:4;18845:21;;;18879:9;;18876:77;;18928:15;18916:9;:27;18876:77;18999:7;18965:30;18985:9;;18965:15;:19;;:30;;;;:::i;:::-;:41;;18964:101;;;;-1:-1:-1;16702:15:0;19012:34;16766:15;19012:13;:11;:13::i;:::-;:17;;:34::i;:::-;:52;18964:101;18961:393;;;19078:13;:11;:13::i;:::-;18961:393;;;19154:7;19121:30;19141:9;;19121:15;:19;;:30;;;;:::i;:::-;:40;:91;;;;;19199:13;19165:30;19185:9;;19165:15;:19;;:30;;;;:::i;:::-;:47;;19121:91;19120:151;;;;-1:-1:-1;16702:15:0;19218:34;16766:15;19218:13;:11;:13::i;:34::-;:52;19120:151;19117:237;;;19284:13;:11;:13::i;19117:237::-;19334:8;;;19117:237;16478:2885;8355:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10459:167;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10459:167:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;16608:45;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;9430:100;;;;;;;;;;;;;:::i;17333:205::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17333:205:0;;;;;;;;;;;;;;;;;:::i;17546:258::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17546:258:0;;-1:-1:-1;17546:258:0;-1:-1:-1;17546:258:0;:::i;9282:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11826:214;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11826:214:0;;;;;;;;:::i;18703:91::-;;;;;;;;;;;;;:::i;16724:57::-;;;;;;;;;;;;;:::i;9593:119::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9593:119:0;-1:-1:-1;;;;;9593:119:0;;:::i;16566:35::-;;;;;;;;;;;;;:::i;8557:87::-;;;;;;;;;;;;;:::i;12543:265::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12543:265:0;;;;;;;;:::i;17125:200::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17125:200:0;;;;;;;;:::i;16660:57::-;;;;;;;;;;;;;:::i;10161:151::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10161:151:0;;;;;;;;;;:::i;16519:40::-;;;;;;;;;;;;;:::i;754:136::-;812:7;839:43;843:1;846;839:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;832:50;;754:136;;;;;:::o;9430:100::-;9510:12;;9430:100;:::o;17811:535::-;17872:10;17860:23;;;;:11;:23;;;;;:30;;-1:-1:-1;;17860:30:0;17886:4;17860:30;;;17901:21;17926:28;:9;16648:5;17926:13;:28::i;:::-;17901:54;;17965:20;17988:40;18014:13;17988:21;17998:10;17988:9;:21::i;:::-;:25;;:40::i;:::-;17965:63;-1:-1:-1;18062:28:0;18046:44;;;18038:53;;;;;;18101:24;18128:55;16766:15;18129:32;18147:13;18129;:11;:13::i;18128:55::-;18101:82;-1:-1:-1;16702:15:0;18201:35;;;18193:44;;;;;;18247:32;18253:10;18265:13;18247:5;:32::i;:::-;18312:5;;18296:43;;-1:-1:-1;;;;;18312:5:0;;;;;;;;;18329:9;18296:43;;;;;;;;;18329:9;18312:5;18296:43;;;;;;;;;;;;;;;;;;;;;17811:535;;;:::o;18353:343::-;18394:21;18419:28;:9;16648:5;18419:13;:28::i;:::-;18394:54;-1:-1:-1;18458:24:0;18485:55;16766:15;18486:32;18394:54;18486:13;:11;:13::i;18485:55::-;18458:82;-1:-1:-1;16702:15:0;18558:35;;;18550:44;;;;;;18604:32;18610:10;18622:13;18604:5;:32::i;:::-;18662:5;;18646:43;;-1:-1:-1;;;;;18662:5:0;;;;;;;;;18679:9;18646:43;;;;;;;;;18679:9;18662:5;18646:43;;;;;;;;;;;;;;;;;;;;;18353:343;;:::o;8355:83::-;8425:5;8418:12;;;;;;;;-1:-1:-1;;8418:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8392:13;;8418:12;;8425:5;;8418:12;;8425:5;8418:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8355:83;:::o;10459:167::-;10542:4;10559:37;10568:10;10580:7;10589:6;10559:8;:37::i;:::-;-1:-1:-1;10614:4:0;10459:167;;;;:::o;16608:45::-;16648:5;16608:45;:::o;17333:205::-;17447:19;;17422:4;;17447:19;;;;;:28;17439:37;;;;;;17494:36;17513:4;17519:2;17523:6;17494:18;:36::i;:::-;17487:43;17333:205;-1:-1:-1;;;;17333:205:0:o;17546:258::-;16445:5;;;;;-1:-1:-1;;;;;16445:5:0;16431:10;:19;16423:28;;;;;;17635:9:::1;17630:98;17650:16:::0;;::::1;17630:98;;;17712:4;17688:11;:21;17700:5;;17706:1;17700:8;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;17700:8:0::1;17688:21:::0;;-1:-1:-1;17688:21:0;::::1;::::0;;;;;;-1:-1:-1;17688:21:0;:28;;-1:-1:-1;;17688:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;17668:3:0::1;17630:98;;;-1:-1:-1::0;;17738:14:0::1;:21:::0;;-1:-1:-1;;;;17738:21:0;;::::1;17755:4;17738:21;17770:26;17738:21;17770:26;::::0;;-1:-1:-1;17546:258:0:o;9282:83::-;9348:9;;;;9282:83;:::o;11826:214::-;11940:10;11914:4;11961:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;11961:32:0;;;;;;;;;;11914:4;;11931:79;;11952:7;;11961:48;;11998:10;11961:36;:48::i;:::-;11931:8;:79::i;18703:91::-;16445:5;;;;;-1:-1:-1;;;;;16445:5:0;16431:10;:19;16423:28;;;;;;18760:19:::1;:27:::0;;-1:-1:-1;;18760:27:0::1;::::0;;18703:91::o;16724:57::-;16766:15;16724:57;:::o;9593:119::-;-1:-1:-1;;;;;9686:18:0;9659:7;9686:18;;;;;;;;;;;;9593:119::o;16566:35::-;16600:1;16566:35;:::o;8557:87::-;8629:7;8622:14;;;;;;;;-1:-1:-1;;8622:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8596:13;;8622:14;;8629:7;;8622:14;;8629:7;8622:14;;;;;;;;;;;;;;;;;;;;;;;;12543:265;12636:4;12653:125;12662:10;12674:7;12683:94;12720:15;12683:94;;;;;;;;;;;;;;;;;12695:10;12683:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;12683:32:0;;;;;;;;;;;:94;:36;:94::i;17125:200::-;17221:19;;17196:4;;17221:19;;;;;:28;;:51;;-1:-1:-1;17267:5:0;;;;;-1:-1:-1;;;;;17267:5:0;17253:10;:19;17221:51;17213:60;;;;;;17291:26;17306:2;17310:6;17291:14;:26::i;16660:57::-;16702:15;16660:57;:::o;10161:151::-;-1:-1:-1;;;;;10277:18:0;;;10250:7;10277:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10161:151::o;16519:40::-;16551:8;16519:40;:::o;290:181::-;348:7;380:5;;;404:6;;;;396:46;;;;;-1:-1:-1;;;396:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1193:192;1279:7;1315:12;1307:6;;;;1299:29;;;;-1:-1:-1;;;1299:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1351:5:0;;;1193:192::o;1644:471::-;1702:7;1947:6;1943:47;;-1:-1:-1;1977:1:0;1970:8;;1943:47;2014:5;;;2018:1;2014;:5;:1;2038:5;;;;;:10;2030:56;;;;-1:-1:-1;;;2030:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14058:316;-1:-1:-1;;;;;14142:21:0;;14134:65;;;;;-1:-1:-1;;;14134:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14227:12;;:24;;14244:6;14227:16;:24::i;:::-;14212:12;:39;-1:-1:-1;;;;;14283:18:0;;:9;:18;;;;;;;;;;;:30;;14306:6;14283:22;:30::i;:::-;-1:-1:-1;;;;;14262:18:0;;:9;:18;;;;;;;;;;;:51;;;;14329:37;;;;;;;14262:18;;:9;;14329:37;;;;;;;;;;14058:316;;:::o;15502:346::-;-1:-1:-1;;;;;15604:19:0;;15596:68;;;;-1:-1:-1;;;15596:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15683:21:0;;15675:68;;;;-1:-1:-1;;;15675:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15756:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;15808:32;;;;;;;;;;;;;;;;;15502:346;;;:::o;11100:317::-;11206:4;11223:36;11233:6;11241:9;11252:6;11223:9;:36::i;:::-;11270:117;11279:6;11287:10;11299:87;11335:6;11299:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11299:19:0;;;;;;:11;:19;;;;;;;;11319:10;11299:31;;;;;;;;;:87;:35;:87::i;11270:117::-;-1:-1:-1;11405:4:0;11100:317;;;;;:::o;9925:173::-;10011:4;10028:40;10038:10;10050:9;10061:6;13298:479;-1:-1:-1;;;;;13404:20:0;;13396:70;;;;-1:-1:-1;;;13396:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13485:23:0;;13477:71;;;;-1:-1:-1;;;13477:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13581;13603:6;13581:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13581:17:0;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;13561:17:0;;;:9;:17;;;;;;;;;;;:91;;;;13686:20;;;;;;;:32;;13711:6;13686:24;:32::i;:::-;-1:-1:-1;;;;;13663:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;13734:35;;;;;;;13663:20;;13734:35;;;;;;;;;;;;;13298:479;;;:::o

Swarm Source

ipfs://8f4f0a42de37538339e0d4ae16883d2cd0c0908a4d9322bf7b27540b22399088
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.