ETH Price: $3,671.38 (+0.86%)

Token

WAVES (WAVES)
 

Overview

Max Total Supply

884,941.76514652932321341 WAVES

Holders

2,290 (0.00%)

Market

Price

$2.09 @ 0.000569 ETH (+0.54%)

Onchain Market Cap

$1,849,528.29

Circulating Supply Market Cap

$209,087,958.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
6.677015624634060269 WAVES

Value
$13.95 ( ~0.003799658182361 Eth) [0.0008%]
0xa513022e3963daed3fb83561ecfcf3dd591f83f8
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

WAVES is the core token of the Waves blockchain, an open protocol, and development toolset for Web 3.0 applications and decentralized solutions, aiming to raise security, reliability and speed of IT systems. It enables anyone to build their apps, fostering mass adoption of blockchain.

Market

Volume (24H):$93,811,111.00
Market Capitalization:$209,087,958.00
Circulating Supply:100,000,000.00 WAVES
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
WAVES

Compiler Version
v0.6.8+commit.0bbfe453

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-10-20
*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.6.8;

interface Staking {
  function deposit(address account, uint256 amount) external returns (bool);

  function withdraw(address account) external returns (bool);

  function stake(uint256 reward) external returns (bool);

  event Reward(uint256 id, uint256 amount);
}

interface ERC20 {

  function totalSupply() external view returns (uint256);

  function balanceOf(address account) external view returns (uint256);

  function allowance(address owner, address spender) external view returns (uint256);

  function approve(address spender, uint256 amount) external returns (bool);

  function increaseAllowance(address spender, uint256 addedValue) external returns (bool);

  function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool);

  function transfer(address recipient, uint256 amount) external returns (bool);

  function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

  event Transfer(address indexed from, address indexed to, uint256 value);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Ownable {
  address private _owner;
  address private _admin;

  constructor () public {
    _owner = msg.sender;
    _admin = msg.sender;
  }

  modifier onlyOwner() {
    require(_owner == msg.sender || _admin == msg.sender, "Ownable: caller is not the owner or admin");
    _;
  }

  function transferOwnership(address newOwner) external virtual onlyOwner {
    require(newOwner != address(0), "Ownable: new owner is the zero address");
    _owner = newOwner;
  }
}

abstract contract Deprecateble is Ownable {
  bool internal deprecated;

  modifier onlyNotDeprecated() {
    require(!deprecated, "Deprecateble: contract is deprecated");
    _;
  }

  function deprecate() external onlyOwner {
    deprecated = true;
    emit Deprecate(msg.sender);
  }

  event Deprecate(address indexed account);
}

abstract contract StandartToken is Staking, ERC20, Ownable, Deprecateble {
  uint256[] private _percents;
  uint256 private _liquidTotalSupply;
  uint256 private _liquidDeposit;
  uint256 constant private PERCENT_FACTOR = 10 ** 12;

  mapping(address => uint256) private _balances;
  mapping(address => uint256) private _deposits;
  mapping(address => uint256) private _rewardIndexForAccount;
  mapping(address => mapping(address => uint256)) private _allowances;

  constructor () public {
    _percents.push(PERCENT_FACTOR);
  }

  function deposit(address account, uint256 amount) external onlyOwner onlyNotDeprecated override virtual returns (bool)  {
    require(amount > 0, "amount should be > 0");
    require(account != address(0), "deposit to the zero address");

    uint256 liquidDeposit = _liquidDeposit;
    require(liquidDeposit + amount >= liquidDeposit, "addition overflow for deposit");
    _liquidDeposit = liquidDeposit + amount;

    uint256 oldDeposit = _deposits[account];
    if (oldDeposit == 0) {
      _balances[account] = balanceOf(account);
      _rewardIndexForAccount[account] = _percents.length - 1;
      _deposits[account] = amount;
    } else {
      uint256 rewardIndex = _rewardIndexForAccount[account];
      if (rewardIndex == _percents.length - 1) {
        require(oldDeposit + amount >= oldDeposit, "addition overflow for deposit");
        _deposits[account] = oldDeposit + amount;
      } else {
        _balances[account] = balanceOf(account);
        _rewardIndexForAccount[account] = _percents.length - 1;
        _deposits[account] = amount;
      }
    }

    emit Transfer(address(0), account, amount);
    return true;
  }

  function stake(uint256 reward) external onlyOwner onlyNotDeprecated override virtual returns (bool) {
    require(reward > 0, "reward should be > 0");

    uint256 liquidTotalSupply = _liquidTotalSupply;
    uint256 liquidDeposit = _liquidDeposit;

    if (liquidTotalSupply == 0) {
      _percents.push(PERCENT_FACTOR);
    } else {
      uint256 oldPercent = _percents[_percents.length - 1];
      uint256 percent = reward * PERCENT_FACTOR / liquidTotalSupply;
      require(percent + PERCENT_FACTOR >= percent, "addition overflow for percent");
      uint256 newPercent = percent + PERCENT_FACTOR;
      _percents.push(newPercent * oldPercent / PERCENT_FACTOR);

      require(liquidTotalSupply + reward >= liquidTotalSupply, "addition overflow for total supply + reward");
      liquidTotalSupply = liquidTotalSupply + reward;
    }

    require(liquidTotalSupply + liquidDeposit >= liquidTotalSupply, "addition overflow for total supply");
    _liquidTotalSupply = liquidTotalSupply + liquidDeposit;
    _liquidDeposit = 0;

    emit Reward(_percents.length, reward);
    return true;
  }

  function withdraw(address account) external onlyOwner onlyNotDeprecated override virtual returns (bool) {
    uint256 oldDeposit = _deposits[account];
    uint256 rewardIndex = _rewardIndexForAccount[account];

    if (rewardIndex == _percents.length - 1) {
      uint256 balance = _balances[account];
      require(balance <= _liquidTotalSupply, "subtraction overflow for total supply");
      _liquidTotalSupply = _liquidTotalSupply - balance;

      require(oldDeposit <= _liquidDeposit, "subtraction overflow for liquid deposit");
      _liquidDeposit = _liquidDeposit - oldDeposit;

      require(balance + oldDeposit >= balance, "addition overflow for total balance + oldDeposit");
      emit Transfer(account, address(0), balance + oldDeposit);
    } else {
      uint256 balance = balanceOf(account);
      uint256 liquidTotalSupply = _liquidTotalSupply;
      require(balance <= liquidTotalSupply, "subtraction overflow for total supply");
      _liquidTotalSupply = liquidTotalSupply - balance;
      emit Transfer(account, address(0), balance);
    }

    _balances[account] = 0;
    _deposits[account] = 0;
    return true;
  }

  // ERC20
  function totalSupply() external view override virtual returns (uint256) {
    uint256 liquidTotalSupply = _liquidTotalSupply;
    uint256 liquidDeposit = _liquidDeposit;

    require(liquidTotalSupply + liquidDeposit >= liquidTotalSupply, "addition overflow for total supply");
    return liquidTotalSupply + liquidDeposit;
  }

  function balanceOf(address account) public view override virtual returns (uint256) {
    uint256 balance = _balances[account];
    uint256 oldDeposit = _deposits[account];

    if (balance == 0 && oldDeposit == 0) {
      return 0;
    }

    uint256 rewardIndex = _rewardIndexForAccount[account];
    if (rewardIndex == _percents.length - 1) {
      require(balance + oldDeposit >= balance, "addition overflow for balance");
      return balance + oldDeposit;
    }

    if (oldDeposit == 0) {
      uint256 profit = _percents[_percents.length - 1];
      return profit * balance / _percents[rewardIndex];
    } else {
      uint256 newBalance = balance * _percents[_percents.length - 1] / _percents[rewardIndex];
      uint256 profit = oldDeposit * _percents[_percents.length - 1] / _percents[rewardIndex + 1];
      require(profit + newBalance >= newBalance, "addition overflow for balance");
      return profit + newBalance;
    }
  }

  function allowance(address owner, address spender) external view override virtual returns (uint256) {
    return _allowances[owner][spender];
  }

  function _approve(address owner, address spender, uint256 amount) internal onlyNotDeprecated 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);
  }

  function approve(address spender, uint256 amount) external override virtual returns (bool) {
    _approve(msg.sender, spender, amount);
    return true;
  }

  function increaseAllowance(address spender, uint256 addedValue) external override virtual returns (bool) {
    uint256 temp = _allowances[msg.sender][spender];
    require(temp + addedValue >= temp, "addition overflow");
    _approve(msg.sender, spender, temp + addedValue);
    return true;
  }

  function decreaseAllowance(address spender, uint256 subtractedValue) external override virtual returns (bool) {
    uint256 temp = _allowances[msg.sender][spender];
    require(subtractedValue <= temp, "ERC20: decreased allowance below zero");
    _approve(msg.sender, spender, temp - subtractedValue);
    return true;
  }

  function transfer(address recipient, uint256 amount) external override virtual returns (bool) {
    _transfer(msg.sender, recipient, amount);
    return true;
  }

  function transferFrom(address sender, address recipient, uint256 amount) external override virtual returns (bool) {
    _transfer(sender, recipient, amount);

    uint256 temp = _allowances[sender][msg.sender];
    require(amount <= temp, "ERC20: transfer amount exceeds allowance");
    _approve(sender, msg.sender, temp - amount);
    return true;
  }

  function _transfer(address sender, address recipient, uint256 amount) internal onlyNotDeprecated virtual {
    require(amount > 0, "amount should be > 0");
    require(sender != address(0), "ERC20: transfer from the zero address");
    require(recipient != address(0), "ERC20: transfer to the zero address");

    uint256 oldDeposit = _deposits[sender];
    uint256 rewardIndex = _rewardIndexForAccount[sender];
    uint256 depositDiff = 0;

    if (oldDeposit == 0 || rewardIndex != _percents.length - 1) {
      uint256 senderBalance = balanceOf(sender);
      require(amount <= senderBalance, "ERC20: transfer amount exceeds balance");
      _balances[sender] = senderBalance - amount;

      _deposits[sender] = 0;
      _rewardIndexForAccount[sender] = _percents.length - 1;
    } else {
      if (amount <= oldDeposit) {
        _deposits[sender] = oldDeposit - amount;
        depositDiff = amount;
      } else {
        uint256 senderBalance = _balances[sender];
        require(amount - oldDeposit <= senderBalance, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - (amount - oldDeposit);
        _deposits[sender] = 0;
        depositDiff = oldDeposit;
      }
    }

    oldDeposit = _deposits[recipient];
    rewardIndex = _rewardIndexForAccount[recipient];
    if (oldDeposit == 0 || rewardIndex != _percents.length - 1) {
      uint256 recipientBalance = balanceOf(recipient);
      require((amount - depositDiff) + recipientBalance >= recipientBalance, "ERC20: addition overflow for recipient balance");
      _balances[recipient] = recipientBalance + (amount - depositDiff);
      _rewardIndexForAccount[recipient] = _percents.length - 1;
      _deposits[recipient] = depositDiff;
    } else {
      uint256 recipientBalance = _balances[recipient];
      _balances[recipient] = recipientBalance + (amount - depositDiff);
      _deposits[recipient] = oldDeposit + depositDiff;
    }

    emit Transfer(sender, recipient, amount);
  }
}

contract WAVES is StandartToken {
  function name() external pure returns (string memory) {
    return "WAVES";
  }

  function symbol() external pure returns (string memory) {
    return "WAVES";
  }

  function decimals() external pure returns (uint8) {
    return 18;
  }
}

Contract Security Audit

Contract ABI

[{"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":"account","type":"address"}],"name":"Deprecate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Reward","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":[{"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":"pure","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":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deprecate","outputs":[],"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":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"reward","type":"uint256"}],"name":"stake","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50600080546001600160a01b03199081163390811783556001805490921617815560028054918201815590915264e8d4a510007f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace909101556119f9806100776000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806351cff8d911610097578063a694fc3a11610066578063a694fc3a1461030a578063a9059cbb14610327578063dd62ed3e14610353578063f2fde38b1461038157610100565b806351cff8d91461029257806370a08231146102b857806395d89b4114610105578063a457c2d7146102de57610100565b806323b872dd116100d357806323b872dd146101e6578063313ce5671461021c578063395093511461023a57806347e7ef241461026657610100565b806306fdde0314610105578063095ea7b3146101825780630fcc0c28146101c257806318160ddd146101cc575b600080fd5b61010d6103a7565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014757818101518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ae6004803603604081101561019857600080fd5b506001600160a01b0381351690602001356103c6565b604080519115158252519081900360200190f35b6101ca6103dc565b005b6101d461047a565b60408051918252519081900360200190f35b6101ae600480360360608110156101fc57600080fd5b506001600160a01b038135811691602081013590911690604001356104cb565b610224610553565b6040805160ff9092168252519081900360200190f35b6101ae6004803603604081101561025057600080fd5b506001600160a01b038135169060200135610558565b6101ae6004803603604081101561027c57600080fd5b506001600160a01b0381351690602001356105de565b6101ae600480360360208110156102a857600080fd5b50356001600160a01b0316610911565b6101d4600480360360208110156102ce57600080fd5b50356001600160a01b0316610bcc565b6101ae600480360360408110156102f457600080fd5b506001600160a01b038135169060200135610dd7565b6101ae6004803603602081101561032057600080fd5b5035610e47565b6101ae6004803603604081101561033d57600080fd5b506001600160a01b03813516906020013561111e565b6101d46004803603604081101561036957600080fd5b506001600160a01b038135811691602001351661112b565b6101ca6004803603602081101561039757600080fd5b50356001600160a01b0316611156565b604080518082019091526005815264574156455360d81b602082015290565b60006103d333848461121b565b50600192915050565b6000546001600160a01b03163314806103ff57506001546001600160a01b031633145b61043a5760405162461bcd60e51b81526004018080602001828103825260298152602001806118536029913960400191505060405180910390fd5b6001805460ff60a01b1916600160a01b17905560405133907fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e90600090a2565b600354600454600091908082018211156104c55760405162461bcd60e51b81526004018080602001828103825260228152602001806118c96022913960400191505060405180910390fd5b01905090565b60006104d8848484611350565b6001600160a01b03841660009081526008602090815260408083203384529091529020548083111561053b5760405162461bcd60e51b815260040180806020018281038252602881526020018061187c6028913960400191505060405180910390fd5b610548853385840361121b565b506001949350505050565b601290565b3360009081526008602090815260408083206001600160a01b03861684529091528120548281018111156105c7576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b6105d4338585840161121b565b5060019392505050565b600080546001600160a01b031633148061060257506001546001600160a01b031633145b61063d5760405162461bcd60e51b81526004018080602001828103825260298152602001806118536029913960400191505060405180910390fd5b600154600160a01b900460ff16156106865760405162461bcd60e51b81526004018080602001828103825260248152602001806119a06024913960400191505060405180910390fd5b600082116106d2576040805162461bcd60e51b81526020600482015260146024820152730616d6f756e742073686f756c64206265203e20360641b604482015290519081900360640190fd5b6001600160a01b03831661072d576040805162461bcd60e51b815260206004820152601b60248201527f6465706f73697420746f20746865207a65726f20616464726573730000000000604482015290519081900360640190fd5b600454828101811115610787576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f72206465706f736974000000604482015290519081900360640190fd5b8083016004556001600160a01b038416600090815260066020526040902054806107f2576107b485610bcc565b6001600160a01b03861660009081526005602090815260408083209390935560025460078252838320600019909101905560069052208490556108d7565b6001600160a01b0385166000908152600760205260409020546002546000190181141561089257818583011015610870576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f72206465706f736974000000604482015290519081900360640190fd5b6001600160a01b038616600090815260066020526040902082860190556108d5565b61089b86610bcc565b6001600160a01b03871660009081526005602090815260408083209390935560025460078252838320600019909101905560069052208590555b505b6040805185815290516001600160a01b038716916000916000805160206119128339815191529181900360200190a3506001949350505050565b600080546001600160a01b031633148061093557506001546001600160a01b031633145b6109705760405162461bcd60e51b81526004018080602001828103825260298152602001806118536029913960400191505060405180910390fd5b600154600160a01b900460ff16156109b95760405162461bcd60e51b81526004018080602001828103825260248152602001806119a06024913960400191505060405180910390fd5b6001600160a01b03821660009081526006602090815260408083205460079092529091205460025460001901811415610b13576001600160a01b038416600090815260056020526040902054600354811115610a465760405162461bcd60e51b81526004018080602001828103825260258152602001806118a46025913960400191505060405180910390fd5b600380548290039055600454831115610a905760405162461bcd60e51b81526004018080602001828103825260278152602001806118eb6027913960400191505060405180910390fd5b8260045403600481905550808382011015610adc5760405162461bcd60e51b815260040180806020018281038252603081526020018061175c6030913960400191505060405180910390fd5b60408051828501815290516000916001600160a01b038816916000805160206119128339815191529181900360200190a350610b9b565b6000610b1e85610bcc565b60035490915080821115610b635760405162461bcd60e51b81526004018080602001828103825260258152602001806118a46025913960400191505060405180910390fd5b8181036003556040805183815290516000916001600160a01b038916916000805160206119128339815191529181900360200190a350505b5050506001600160a01b0381166000908152600560209081526040808320839055600690915281205560015b919050565b6001600160a01b038116600090815260056020908152604080832054600690925282205481158015610bfc575080155b15610c0c57600092505050610bc7565b6001600160a01b03841660009081526007602052604090205460025460001901811415610c9357828284011015610c8a576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722062616c616e6365000000604482015290519081900360640190fd5b50019050610bc7565b81610ce95760028054600091906000198101908110610cae57fe5b9060005260206000200154905060028281548110610cc857fe5b906000526020600020015484820281610cdd57fe5b04945050505050610bc7565b600060028281548110610cf857fe5b600091825260209091200154600280546000198101908110610d1657fe5b9060005260206000200154850281610d2a57fe5b049050600060028360010181548110610d3f57fe5b600091825260209091200154600280546000198101908110610d5d57fe5b9060005260206000200154850281610d7157fe5b049050818282011015610dcb576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722062616c616e6365000000604482015290519081900360640190fd5b019350610bc792505050565b3360009081526008602090815260408083206001600160a01b038616845290915281205480831115610e3a5760405162461bcd60e51b815260040180806020018281038252602581526020018061197b6025913960400191505060405180910390fd5b6105d4338585840361121b565b600080546001600160a01b0316331480610e6b57506001546001600160a01b031633145b610ea65760405162461bcd60e51b81526004018080602001828103825260298152602001806118536029913960400191505060405180910390fd5b600154600160a01b900460ff1615610eef5760405162461bcd60e51b81526004018080602001828103825260248152602001806119a06024913960400191505060405180910390fd5b60008211610f3b576040805162461bcd60e51b815260206004820152601460248201527307265776172642073686f756c64206265203e20360641b604482015290519081900360640190fd5b60035460045481610f86576002805460018101825560009190915264e8d4a510007f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9091015561108b565b60028054600091906000198101908110610f9c57fe5b9060005260206000200154905060008364e8d4a51000870281610fbb57fe5b0490508064e8d4a510008201101561101a576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722070657263656e74000000604482015290519081900360640190fd5b64e8d4a51000818101906002908483028254600181018455600093845260209093209190049101558685018511156110835760405162461bcd60e51b815260040180806020018281038252602b815260200180611828602b913960400191505060405180910390fd5b505050908301905b8181830110156110cc5760405162461bcd60e51b81526004018080602001828103825260228152602001806118c96022913960400191505060405180910390fd5b8181016003556000600455600254604080519182526020820186905280517f45cad8c10023de80f4c0672ff6c283b671e11aa93c92b9380cdf060d2790da529281900390910190a15060019392505050565b60006103d3338484611350565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6000546001600160a01b031633148061117957506001546001600160a01b031633145b6111b45760405162461bcd60e51b81526004018080602001828103825260298152602001806118536029913960400191505060405180910390fd5b6001600160a01b0381166111f95760405162461bcd60e51b815260040180806020018281038252602681526020018061178c6026913960400191505060405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600154600160a01b900460ff16156112645760405162461bcd60e51b81526004018080602001828103825260248152602001806119a06024913960400191505060405180910390fd5b6001600160a01b0383166112a95760405162461bcd60e51b81526004018080602001828103825260248152602001806119576024913960400191505060405180910390fd5b6001600160a01b0382166112ee5760405162461bcd60e51b81526004018080602001828103825260228152602001806117b26022913960400191505060405180910390fd5b6001600160a01b03808416600081815260086020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600154600160a01b900460ff16156113995760405162461bcd60e51b81526004018080602001828103825260248152602001806119a06024913960400191505060405180910390fd5b600081116113e5576040805162461bcd60e51b81526020600482015260146024820152730616d6f756e742073686f756c64206265203e20360641b604482015290519081900360640190fd5b6001600160a01b03831661142a5760405162461bcd60e51b81526004018080602001828103825260258152602001806119326025913960400191505060405180910390fd5b6001600160a01b03821661146f5760405162461bcd60e51b81526004018080602001828103825260238152602001806117396023913960400191505060405180910390fd5b6001600160a01b038316600090815260066020908152604080832054600790925282205490918215806114a85750600254600019018214155b1561153d5760006114b887610bcc565b9050808511156114f95760405162461bcd60e51b81526004018080602001828103825260268152602001806117d46026913960400191505060405180910390fd5b6001600160a01b03871660009081526005602090815260408083209388900390935560068152828220829055600254600790915291902060001990910190556115f1565b82841161156857506001600160a01b03851660009081526006602052604090208383039055826115f1565b6001600160a01b0386166000908152600560205260409020548385038110156115c25760405162461bcd60e51b81526004018080602001828103825260268152602001806117d46026913960400191505060405180910390fd5b6001600160a01b0387166000908152600560209081526040808320878903909403909355600690529081205550815b6001600160a01b038516600090815260066020908152604080832054600790925290912054909350915082158061162e5750600254600019018214155b156116c757600061163e86610bcc565b905080818387030110156116835760405162461bcd60e51b815260040180806020018281038252602e8152602001806117fa602e913960400191505060405180910390fd5b6001600160a01b03861660009081526005602090815260408083208589039490940190935560025460078252838320600019909101905560069052208190556116f7565b6001600160a01b038516600090815260056020908152604080832080548589030190556006909152902083820190555b846001600160a01b0316866001600160a01b0316600080516020611912833981519152866040518082815260200191505060405180910390a350505050505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573736164646974696f6e206f766572666c6f7720666f7220746f74616c2062616c616e6365202b206f6c644465706f7369744f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a206164646974696f6e206f766572666c6f7720666f7220726563697069656e742062616c616e63656164646974696f6e206f766572666c6f7720666f7220746f74616c20737570706c79202b207265776172644f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572206f722061646d696e45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63657375627472616374696f6e206f766572666c6f7720666f7220746f74616c20737570706c796164646974696f6e206f766572666c6f7720666f7220746f74616c20737570706c797375627472616374696f6e206f766572666c6f7720666f72206c6971756964206465706f736974ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f446570726563617465626c653a20636f6e74726163742069732064657072656361746564a264697066735822122015806b87b46c722b54f5f8f50de4114610e92b1d2f590ccf5f0071b72431c67864736f6c63430006080033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101005760003560e01c806351cff8d911610097578063a694fc3a11610066578063a694fc3a1461030a578063a9059cbb14610327578063dd62ed3e14610353578063f2fde38b1461038157610100565b806351cff8d91461029257806370a08231146102b857806395d89b4114610105578063a457c2d7146102de57610100565b806323b872dd116100d357806323b872dd146101e6578063313ce5671461021c578063395093511461023a57806347e7ef241461026657610100565b806306fdde0314610105578063095ea7b3146101825780630fcc0c28146101c257806318160ddd146101cc575b600080fd5b61010d6103a7565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014757818101518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ae6004803603604081101561019857600080fd5b506001600160a01b0381351690602001356103c6565b604080519115158252519081900360200190f35b6101ca6103dc565b005b6101d461047a565b60408051918252519081900360200190f35b6101ae600480360360608110156101fc57600080fd5b506001600160a01b038135811691602081013590911690604001356104cb565b610224610553565b6040805160ff9092168252519081900360200190f35b6101ae6004803603604081101561025057600080fd5b506001600160a01b038135169060200135610558565b6101ae6004803603604081101561027c57600080fd5b506001600160a01b0381351690602001356105de565b6101ae600480360360208110156102a857600080fd5b50356001600160a01b0316610911565b6101d4600480360360208110156102ce57600080fd5b50356001600160a01b0316610bcc565b6101ae600480360360408110156102f457600080fd5b506001600160a01b038135169060200135610dd7565b6101ae6004803603602081101561032057600080fd5b5035610e47565b6101ae6004803603604081101561033d57600080fd5b506001600160a01b03813516906020013561111e565b6101d46004803603604081101561036957600080fd5b506001600160a01b038135811691602001351661112b565b6101ca6004803603602081101561039757600080fd5b50356001600160a01b0316611156565b604080518082019091526005815264574156455360d81b602082015290565b60006103d333848461121b565b50600192915050565b6000546001600160a01b03163314806103ff57506001546001600160a01b031633145b61043a5760405162461bcd60e51b81526004018080602001828103825260298152602001806118536029913960400191505060405180910390fd5b6001805460ff60a01b1916600160a01b17905560405133907fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e90600090a2565b600354600454600091908082018211156104c55760405162461bcd60e51b81526004018080602001828103825260228152602001806118c96022913960400191505060405180910390fd5b01905090565b60006104d8848484611350565b6001600160a01b03841660009081526008602090815260408083203384529091529020548083111561053b5760405162461bcd60e51b815260040180806020018281038252602881526020018061187c6028913960400191505060405180910390fd5b610548853385840361121b565b506001949350505050565b601290565b3360009081526008602090815260408083206001600160a01b03861684529091528120548281018111156105c7576040805162461bcd60e51b81526020600482015260116024820152706164646974696f6e206f766572666c6f7760781b604482015290519081900360640190fd5b6105d4338585840161121b565b5060019392505050565b600080546001600160a01b031633148061060257506001546001600160a01b031633145b61063d5760405162461bcd60e51b81526004018080602001828103825260298152602001806118536029913960400191505060405180910390fd5b600154600160a01b900460ff16156106865760405162461bcd60e51b81526004018080602001828103825260248152602001806119a06024913960400191505060405180910390fd5b600082116106d2576040805162461bcd60e51b81526020600482015260146024820152730616d6f756e742073686f756c64206265203e20360641b604482015290519081900360640190fd5b6001600160a01b03831661072d576040805162461bcd60e51b815260206004820152601b60248201527f6465706f73697420746f20746865207a65726f20616464726573730000000000604482015290519081900360640190fd5b600454828101811115610787576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f72206465706f736974000000604482015290519081900360640190fd5b8083016004556001600160a01b038416600090815260066020526040902054806107f2576107b485610bcc565b6001600160a01b03861660009081526005602090815260408083209390935560025460078252838320600019909101905560069052208490556108d7565b6001600160a01b0385166000908152600760205260409020546002546000190181141561089257818583011015610870576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f72206465706f736974000000604482015290519081900360640190fd5b6001600160a01b038616600090815260066020526040902082860190556108d5565b61089b86610bcc565b6001600160a01b03871660009081526005602090815260408083209390935560025460078252838320600019909101905560069052208590555b505b6040805185815290516001600160a01b038716916000916000805160206119128339815191529181900360200190a3506001949350505050565b600080546001600160a01b031633148061093557506001546001600160a01b031633145b6109705760405162461bcd60e51b81526004018080602001828103825260298152602001806118536029913960400191505060405180910390fd5b600154600160a01b900460ff16156109b95760405162461bcd60e51b81526004018080602001828103825260248152602001806119a06024913960400191505060405180910390fd5b6001600160a01b03821660009081526006602090815260408083205460079092529091205460025460001901811415610b13576001600160a01b038416600090815260056020526040902054600354811115610a465760405162461bcd60e51b81526004018080602001828103825260258152602001806118a46025913960400191505060405180910390fd5b600380548290039055600454831115610a905760405162461bcd60e51b81526004018080602001828103825260278152602001806118eb6027913960400191505060405180910390fd5b8260045403600481905550808382011015610adc5760405162461bcd60e51b815260040180806020018281038252603081526020018061175c6030913960400191505060405180910390fd5b60408051828501815290516000916001600160a01b038816916000805160206119128339815191529181900360200190a350610b9b565b6000610b1e85610bcc565b60035490915080821115610b635760405162461bcd60e51b81526004018080602001828103825260258152602001806118a46025913960400191505060405180910390fd5b8181036003556040805183815290516000916001600160a01b038916916000805160206119128339815191529181900360200190a350505b5050506001600160a01b0381166000908152600560209081526040808320839055600690915281205560015b919050565b6001600160a01b038116600090815260056020908152604080832054600690925282205481158015610bfc575080155b15610c0c57600092505050610bc7565b6001600160a01b03841660009081526007602052604090205460025460001901811415610c9357828284011015610c8a576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722062616c616e6365000000604482015290519081900360640190fd5b50019050610bc7565b81610ce95760028054600091906000198101908110610cae57fe5b9060005260206000200154905060028281548110610cc857fe5b906000526020600020015484820281610cdd57fe5b04945050505050610bc7565b600060028281548110610cf857fe5b600091825260209091200154600280546000198101908110610d1657fe5b9060005260206000200154850281610d2a57fe5b049050600060028360010181548110610d3f57fe5b600091825260209091200154600280546000198101908110610d5d57fe5b9060005260206000200154850281610d7157fe5b049050818282011015610dcb576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722062616c616e6365000000604482015290519081900360640190fd5b019350610bc792505050565b3360009081526008602090815260408083206001600160a01b038616845290915281205480831115610e3a5760405162461bcd60e51b815260040180806020018281038252602581526020018061197b6025913960400191505060405180910390fd5b6105d4338585840361121b565b600080546001600160a01b0316331480610e6b57506001546001600160a01b031633145b610ea65760405162461bcd60e51b81526004018080602001828103825260298152602001806118536029913960400191505060405180910390fd5b600154600160a01b900460ff1615610eef5760405162461bcd60e51b81526004018080602001828103825260248152602001806119a06024913960400191505060405180910390fd5b60008211610f3b576040805162461bcd60e51b815260206004820152601460248201527307265776172642073686f756c64206265203e20360641b604482015290519081900360640190fd5b60035460045481610f86576002805460018101825560009190915264e8d4a510007f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9091015561108b565b60028054600091906000198101908110610f9c57fe5b9060005260206000200154905060008364e8d4a51000870281610fbb57fe5b0490508064e8d4a510008201101561101a576040805162461bcd60e51b815260206004820152601d60248201527f6164646974696f6e206f766572666c6f7720666f722070657263656e74000000604482015290519081900360640190fd5b64e8d4a51000818101906002908483028254600181018455600093845260209093209190049101558685018511156110835760405162461bcd60e51b815260040180806020018281038252602b815260200180611828602b913960400191505060405180910390fd5b505050908301905b8181830110156110cc5760405162461bcd60e51b81526004018080602001828103825260228152602001806118c96022913960400191505060405180910390fd5b8181016003556000600455600254604080519182526020820186905280517f45cad8c10023de80f4c0672ff6c283b671e11aa93c92b9380cdf060d2790da529281900390910190a15060019392505050565b60006103d3338484611350565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6000546001600160a01b031633148061117957506001546001600160a01b031633145b6111b45760405162461bcd60e51b81526004018080602001828103825260298152602001806118536029913960400191505060405180910390fd5b6001600160a01b0381166111f95760405162461bcd60e51b815260040180806020018281038252602681526020018061178c6026913960400191505060405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600154600160a01b900460ff16156112645760405162461bcd60e51b81526004018080602001828103825260248152602001806119a06024913960400191505060405180910390fd5b6001600160a01b0383166112a95760405162461bcd60e51b81526004018080602001828103825260248152602001806119576024913960400191505060405180910390fd5b6001600160a01b0382166112ee5760405162461bcd60e51b81526004018080602001828103825260228152602001806117b26022913960400191505060405180910390fd5b6001600160a01b03808416600081815260086020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600154600160a01b900460ff16156113995760405162461bcd60e51b81526004018080602001828103825260248152602001806119a06024913960400191505060405180910390fd5b600081116113e5576040805162461bcd60e51b81526020600482015260146024820152730616d6f756e742073686f756c64206265203e20360641b604482015290519081900360640190fd5b6001600160a01b03831661142a5760405162461bcd60e51b81526004018080602001828103825260258152602001806119326025913960400191505060405180910390fd5b6001600160a01b03821661146f5760405162461bcd60e51b81526004018080602001828103825260238152602001806117396023913960400191505060405180910390fd5b6001600160a01b038316600090815260066020908152604080832054600790925282205490918215806114a85750600254600019018214155b1561153d5760006114b887610bcc565b9050808511156114f95760405162461bcd60e51b81526004018080602001828103825260268152602001806117d46026913960400191505060405180910390fd5b6001600160a01b03871660009081526005602090815260408083209388900390935560068152828220829055600254600790915291902060001990910190556115f1565b82841161156857506001600160a01b03851660009081526006602052604090208383039055826115f1565b6001600160a01b0386166000908152600560205260409020548385038110156115c25760405162461bcd60e51b81526004018080602001828103825260268152602001806117d46026913960400191505060405180910390fd5b6001600160a01b0387166000908152600560209081526040808320878903909403909355600690529081205550815b6001600160a01b038516600090815260066020908152604080832054600790925290912054909350915082158061162e5750600254600019018214155b156116c757600061163e86610bcc565b905080818387030110156116835760405162461bcd60e51b815260040180806020018281038252602e8152602001806117fa602e913960400191505060405180910390fd5b6001600160a01b03861660009081526005602090815260408083208589039490940190935560025460078252838320600019909101905560069052208190556116f7565b6001600160a01b038516600090815260056020908152604080832080548589030190556006909152902083820190555b846001600160a01b0316866001600160a01b0316600080516020611912833981519152866040518082815260200191505060405180910390a350505050505056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573736164646974696f6e206f766572666c6f7720666f7220746f74616c2062616c616e6365202b206f6c644465706f7369744f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a206164646974696f6e206f766572666c6f7720666f7220726563697069656e742062616c616e63656164646974696f6e206f766572666c6f7720666f7220746f74616c20737570706c79202b207265776172644f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572206f722061646d696e45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63657375627472616374696f6e206f766572666c6f7720666f7220746f74616c20737570706c796164646974696f6e206f766572666c6f7720666f7220746f74616c20737570706c797375627472616374696f6e206f766572666c6f7720666f72206c6971756964206465706f736974ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f446570726563617465626c653a20636f6e74726163742069732064657072656361746564a264697066735822122015806b87b46c722b54f5f8f50de4114610e92b1d2f590ccf5f0071b72431c67864736f6c63430006080033

Deployed Bytecode Sourcemap

11287:288:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;11287:288:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;11324:81:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11324:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7908:159;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;7908:159:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1913:103;;;:::i;:::-;;6096:333;;;:::i;:::-;;;;;;;;;;;;;;;;8884:360;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;8884:360:0;;;;;;;;;;;;;;;;;:::i;11500:72::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8073:300;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;8073:300:0;;;;;;;;:::i;2619:1165::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;2619:1165:0;;;;;;;;:::i;4914:1164::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;4914:1164:0;-1:-1:-1;;;;;4914:1164:0;;:::i;6435:962::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;6435:962:0;-1:-1:-1;;;;;6435:962:0;;:::i;8379:328::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;8379:328:0;;;;;;;;:::i;3790:1118::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;3790:1118:0;;:::i;8713:165::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;8713:165:0;;;;;;;;:::i;7403:147::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;7403:147:0;;;;;;;;;;:::i;1530:182::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;1530:182:0;-1:-1:-1;;;;;1530:182:0;;:::i;11324:81::-;11385:14;;;;;;;;;;;;-1:-1:-1;;;11385:14:0;;;;11324:81;:::o;7908:159::-;7993:4;8006:37;8015:10;8027:7;8036:6;8006:8;:37::i;:::-;-1:-1:-1;8057:4:0;7908:159;;;;:::o;1913:103::-;1420:6;;-1:-1:-1;;;;;1420:6:0;1430:10;1420:20;;:44;;-1:-1:-1;1444:6:0;;-1:-1:-1;;;;;1444:6:0;1454:10;1444:20;1420:44;1412:98;;;;-1:-1:-1;;;1412:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1973:4:::1;1960:17:::0;;-1:-1:-1;;;;1960:17:0::1;-1:-1:-1::0;;;1960:17:0::1;::::0;;1989:21:::1;::::0;1999:10:::1;::::0;1989:21:::1;::::0;1960:17;;1989:21:::1;1913:103::o:0;6096:333::-;6203:18;;6252:14;;6159:7;;6203:18;6283:33;;;:54;-1:-1:-1;6283:54:0;6275:101;;;;-1:-1:-1;;;6275:101:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6390:33;;-1:-1:-1;6096:333:0;:::o;8884:360::-;8992:4;9005:36;9015:6;9023:9;9034:6;9005:9;:36::i;:::-;-1:-1:-1;;;;;9065:19:0;;9050:12;9065:19;;;:11;:19;;;;;;;;9085:10;9065:31;;;;;;;;9111:14;;;;9103:67;;;;-1:-1:-1;;;9103:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9177:43;9186:6;9194:10;9213:6;9206:4;:13;9177:8;:43::i;:::-;-1:-1:-1;9234:4:0;;8884:360;-1:-1:-1;;;;8884:360:0:o;11500:72::-;11564:2;11500:72;:::o;8073:300::-;8212:10;8172:4;8200:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8200:32:0;;;;;;;;;;8247:17;;;:25;-1:-1:-1;8247:25:0;8239:55;;;;;-1:-1:-1;;;8239:55:0;;;;;;;;;;;;-1:-1:-1;;;8239:55:0;;;;;;;;;;;;;;;8301:48;8310:10;8322:7;8338:10;8331:4;:17;8301:8;:48::i;:::-;-1:-1:-1;8363:4:0;;8073:300;-1:-1:-1;;;8073:300:0:o;2619:1165::-;2732:4;1420:6;;-1:-1:-1;;;;;1420:6:0;1430:10;1420:20;;:44;;-1:-1:-1;1444:6:0;;-1:-1:-1;;;;;1444:6:0;1454:10;1444:20;1420:44;1412:98;;;;-1:-1:-1;;;1412:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1842:10:::1;::::0;-1:-1:-1;;;1842:10:0;::::1;;;1841:11;1833:60;;;;-1:-1:-1::0;;;1833:60:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2763:1:::2;2754:6;:10;2746:43;;;::::0;;-1:-1:-1;;;2746:43:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;2746:43:0;;;;;;;;;;;;;::::2;;-1:-1:-1::0;;;;;2804:21:0;::::2;2796:61;;;::::0;;-1:-1:-1;;;2796:61:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;2890:14;::::0;2919:22;;::::2;:39:::0;-1:-1:-1;2919:39:0::2;2911:81;;;::::0;;-1:-1:-1;;;2911:81:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;3016:22:::0;;::::2;2999:14;:39:::0;-1:-1:-1;;;;;3068:18:0;::::2;3047;3068::::0;;;:9:::2;:18;::::0;;;;;3097:15;3093:617:::2;;3144:18;3154:7;3144:9;:18::i;:::-;-1:-1:-1::0;;;;;3123:18:0;::::2;;::::0;;;:9:::2;:18;::::0;;;;;;;:39;;;;3205:9:::2;:16:::0;3171:22:::2;:31:::0;;;;;-1:-1:-1;;3205:20:0;;;3171:54;;3234:9:::2;:18:::0;;;:27;;;3093:617:::2;;;-1:-1:-1::0;;;;;3306:31:0;::::2;3284:19;3306:31:::0;;;:22:::2;:31;::::0;;;;;3365:9:::2;:16:::0;-1:-1:-1;;3365:20:0;3350:35;::::2;3346:357;;;3429:10;3419:6;3406:10;:19;:33;;3398:75;;;::::0;;-1:-1:-1;;;3398:75:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;-1:-1:-1::0;;;;;3484:18:0;::::2;;::::0;;;:9:::2;:18;::::0;;;;3505:19;;::::2;3484:40:::0;;3346:357:::2;;;3572:18;3582:7;3572:9;:18::i;:::-;-1:-1:-1::0;;;;;3551:18:0;::::2;;::::0;;;:9:::2;:18;::::0;;;;;;;:39;;;;3635:9:::2;:16:::0;3601:22:::2;:31:::0;;;;;-1:-1:-1;;3635:20:0;;;3601:54;;3666:9:::2;:18:::0;;;:27;;;3346:357:::2;3093:617;;3723:37;::::0;;;;;;;-1:-1:-1;;;;;3723:37:0;::::2;::::0;3740:1:::2;::::0;-1:-1:-1;;;;;;;;;;;3723:37:0;;;;::::2;::::0;;::::2;-1:-1:-1::0;3774:4:0::2;::::0;2619:1165;-1:-1:-1;;;;2619:1165:0:o;4914:1164::-;5012:4;1420:6;;-1:-1:-1;;;;;1420:6:0;1430:10;1420:20;;:44;;-1:-1:-1;1444:6:0;;-1:-1:-1;;;;;1444:6:0;1454:10;1444:20;1420:44;1412:98;;;;-1:-1:-1;;;1412:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1842:10:::1;::::0;-1:-1:-1;;;1842:10:0;::::1;;;1841:11;1833:60;;;;-1:-1:-1::0;;;1833:60:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;5046:18:0;::::2;5025;5046::::0;;;:9:::2;:18;::::0;;;;;;;;5093:22:::2;:31:::0;;;;;;;5152:9:::2;:16:::0;-1:-1:-1;;5152:20:0;5137:35;::::2;5133:862;;;-1:-1:-1::0;;;;;5201:18:0;::::2;5183:15;5201:18:::0;;;:9:::2;:18;::::0;;;;;5247::::2;::::0;5236:29;::::2;;5228:79;;;;-1:-1:-1::0;;;5228:79:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5337:18;::::0;;:28;;::::2;5316:49:::0;;5398:14:::2;::::0;5384:28;::::2;;5376:80;;;;-1:-1:-1::0;;;5376:80:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5499:10;5482:14;;:27;5465:14;:44;;;;5552:7;5538:10;5528:7;:20;:31;;5520:92;;;;-1:-1:-1::0;;;5520:92:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5626:51;::::0;;5656:20;;::::2;5626:51:::0;;;;5652:1:::2;::::0;-1:-1:-1;;;;;5626:51:0;::::2;::::0;-1:-1:-1;;;;;;;;;;;5626:51:0;;;;::::2;::::0;;::::2;5133:862;;;;5700:15;5718:18;5728:7;5718:9;:18::i;:::-;5773;::::0;5700:36;;-1:-1:-1;5808:28:0;;::::2;;5800:78;;;;-1:-1:-1::0;;;5800:78:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5908:27:::0;;::::2;5887:18;:48:::0;5949:38:::2;::::0;;;;;;;5975:1:::2;::::0;-1:-1:-1;;;;;5949:38:0;::::2;::::0;-1:-1:-1;;;;;;;;;;;5949:38:0;;;;::::2;::::0;;::::2;5133:862;;;-1:-1:-1::0;;;;;;;;6003:18:0;::::2;6024:1;6003:18:::0;;;:9:::2;:18;::::0;;;;;;;:22;;;6032:9:::2;:18:::0;;;;;:22;6068:4:::2;1900:1;4914:1164:::0;;;:::o;6435:962::-;-1:-1:-1;;;;;6543:18:0;;6509:7;6543:18;;;:9;:18;;;;;;;;;6589:9;:18;;;;;;6620:12;;:31;;;;-1:-1:-1;6636:15:0;;6620:31;6616:62;;;6669:1;6662:8;;;;;;6616:62;-1:-1:-1;;;;;6708:31:0;;6686:19;6708:31;;;:22;:31;;;;;;6765:9;:16;-1:-1:-1;;6765:20:0;6750:35;;6746:167;;;6828:7;6814:10;6804:7;:20;:31;;6796:73;;;;;-1:-1:-1;;;6796:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6885:20:0;;-1:-1:-1;6878:27:0;;6746:167;6925:15;6921:471;;6968:9;6978:16;;6951:14;;6968:9;-1:-1:-1;;6978:20:0;;;6968:31;;;;;;;;;;;;;;6951:48;;7034:9;7044:11;7034:22;;;;;;;;;;;;;;;;7024:7;7015:6;:16;:41;;;;;;7008:48;;;;;;;;6921:471;7079:18;7144:9;7154:11;7144:22;;;;;;;;;;;;;;;;;;7110:9;7120:16;;-1:-1:-1;;7120:20:0;;;7110:31;;;;;;;;;;;;;;7100:7;:41;:66;;;;;;7079:87;;7175:14;7239:9;7249:11;7263:1;7249:15;7239:26;;;;;;;;;;;;;;;;;;7205:9;7215:16;;-1:-1:-1;;7215:20:0;;;7205:31;;;;;;;;;;;;;;7192:10;:44;:73;;;;;;7175:90;;7305:10;7291;7282:6;:19;:33;;7274:75;;;;;-1:-1:-1;;;7274:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7365:19;;-1:-1:-1;7358:26:0;;-1:-1:-1;;;7358:26:0;8379:328;8523:10;8483:4;8511:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8511:32:0;;;;;;;;;;8558:23;;;;8550:73;;;;-1:-1:-1;;;8550:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8630:53;8639:10;8651:7;8667:15;8660:4;:22;8630:8;:53::i;3790:1118::-;3884:4;1420:6;;-1:-1:-1;;;;;1420:6:0;1430:10;1420:20;;:44;;-1:-1:-1;1444:6:0;;-1:-1:-1;;;;;1444:6:0;1454:10;1444:20;1420:44;1412:98;;;;-1:-1:-1;;;1412:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1842:10:::1;::::0;-1:-1:-1;;;1842:10:0;::::1;;;1841:11;1833:60;;;;-1:-1:-1::0;;;1833:60:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3914:1:::2;3905:6;:10;3897:43;;;::::0;;-1:-1:-1;;;3897:43:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;-1:-1:-1;;;3897:43:0;;;;;;;;;;;;;::::2;;3977:18;::::0;4026:14:::2;::::0;4053:22;4049:594:::2;;4086:9;27:10:-1::0;;39:1:::2;23:18:::0;::::2;45:23:::0;;-1:-1;4086:30:0;;;;2296:8:::2;4086:30:::0;;;::::2;::::0;4049:594:::2;;;4160:9;4170:16:::0;;4139:18:::2;::::0;4160:9;-1:-1:-1;;4170:20:0;;;4160:31;::::2;;;;;;;;;;;;;4139:52;;4200:15;4244:17;2296:8;4218:6;:23;:43;;;;;;4200:61;;4306:7;2296:8;4278:7;:24;:35;;4270:77;;;::::0;;-1:-1:-1;;;4270:77:0;;::::2;;::::0;::::2;::::0;::::2;::::0;;;;::::2;::::0;;;;;;;;;;;;;::::2;;2296:8;4377:24:::0;;::::2;::::0;4410:9:::2;::::0;4425:23;;::::2;27:10:-1::0;;39:1:::2;23:18:::0;::::2;45:23:::0;;-1:-1;4410:56:0;;;::::2;::::0;;;4425:40;;::::2;4410:56:::0;::::2;::::0;4485:26;;::::2;:47:::0;-1:-1:-1;4485:47:0::2;4477:103;;;;-1:-1:-1::0;;;4477:103:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;4609:26:0;;::::2;::::0;4049:594:::2;4696:17;4679:13;4659:17;:33;:54;;4651:101;;;;-1:-1:-1::0;;;4651:101:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4780:33:::0;;::::2;4759:18;:54:::0;4837:1:::2;4820:14;:18:::0;4859:9:::2;:16:::0;4852:32:::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;;;;;;;;::::2;-1:-1:-1::0;4898:4:0::2;::::0;3790:1118;-1:-1:-1;;;3790:1118:0:o;8713:165::-;8801:4;8814:40;8824:10;8836:9;8847:6;8814:9;:40::i;7403:147::-;-1:-1:-1;;;;;7517:18:0;;;7494:7;7517:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7403:147::o;1530:182::-;1420:6;;-1:-1:-1;;;;;1420:6:0;1430:10;1420:20;;:44;;-1:-1:-1;1444:6:0;;-1:-1:-1;;;;;1444:6:0;1454:10;1444:20;1420:44;1412:98;;;;-1:-1:-1;;;1412:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1617:22:0;::::1;1609:73;;;;-1:-1:-1::0;;;1609:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1689:6;:17:::0;;-1:-1:-1;;;;;;1689:17:0::1;-1:-1:-1::0;;;;;1689:17:0;;;::::1;::::0;;;::::1;::::0;;1530:182::o;7556:346::-;1842:10;;-1:-1:-1;;;1842:10:0;;;;1841:11;1833:60;;;;-1:-1:-1;;;1833:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7672:19:0;::::1;7664:68;;;;-1:-1:-1::0;;;7664:68:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;7747:21:0;::::1;7739:68;;;;-1:-1:-1::0;;;7739:68:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;7816:18:0;;::::1;;::::0;;;:11:::1;:18;::::0;;;;;;;:27;;::::1;::::0;;;;;;;;;;:36;;;7864:32;;;;;;;::::1;::::0;;;;;;;;::::1;7556:346:::0;;;:::o;9250:2030::-;1842:10;;-1:-1:-1;;;1842:10:0;;;;1841:11;1833:60;;;;-1:-1:-1;;;1833:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9379:1:::1;9370:6;:10;9362:43;;;::::0;;-1:-1:-1;;;9362:43:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;9362:43:0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;9420:20:0;::::1;9412:70;;;;-1:-1:-1::0;;;9412:70:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9497:23:0;::::1;9489:71;;;;-1:-1:-1::0;;;9489:71:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9590:17:0;::::1;9569:18;9590:17:::0;;;:9:::1;:17;::::0;;;;;;;;9636:22:::1;:30:::0;;;;;;9590:17;;9709:15;;;:54:::1;;-1:-1:-1::0;9743:9:0::1;:16:::0;-1:-1:-1;;9743:20:0;9728:35;::::1;;9709:54;9705:786;;;9774:21;9798:17;9808:6;9798:9;:17::i;:::-;9774:41;;9842:13;9832:6;:23;;9824:74;;;;-1:-1:-1::0;;;9824:74:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9907:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;;;9927:22;;;::::1;9907:42:::0;;;9960:9:::1;:17:::0;;;;;:21;;;10023:9:::1;:16:::0;9990:22:::1;:30:::0;;;;;;-1:-1:-1;;10023:20:0;;;9990:53;;9705:786:::1;;;10080:10;10070:6;:20;10066:418;;-1:-1:-1::0;;;;;;10103:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;10123:19;;::::1;10103:39:::0;;10136:6;10066:418:::1;;;-1:-1:-1::0;;;;;10224:17:0;::::1;10200:21;10224:17:::0;;;:9:::1;:17;::::0;;;;;10260:19;;::::1;:36:::0;-1:-1:-1;10260:36:0::1;10252:87;;;;-1:-1:-1::0;;;10252:87:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;10350:17:0;::::1;;::::0;;;:9:::1;:17;::::0;;;;;;;10387:19;;::::1;10370:37:::0;;::::1;10350:57:::0;;;10418:9:::1;:17:::0;;;;;:21;-1:-1:-1;10396:10:0;10066:418:::1;-1:-1:-1::0;;;;;10512:20:0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;;;10553:22:::1;:33:::0;;;;;;;10512:20;;-1:-1:-1;10553:33:0;-1:-1:-1;10597:15:0;;;:54:::1;;-1:-1:-1::0;10631:9:0::1;:16:::0;-1:-1:-1;;10631:20:0;10616:35;::::1;;10597:54;10593:633;;;10662:24;10689:20;10699:9;10689;:20::i;:::-;10662:47;;10771:16;10751;10736:11;10727:6;:20;10726:41;:61;;10718:120;;;;-1:-1:-1::0;;;10718:120:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;10847:20:0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;;10890;;::::1;10870:41:::0;;;::::1;10847:64:::0;;;10956:9:::1;:16:::0;10920:22:::1;:33:::0;;;;;-1:-1:-1;;10956:20:0;;;10920:56;;10985:9:::1;:20:::0;;;:34;;;10593:633:::1;;;-1:-1:-1::0;;;;;11069:20:0;::::1;11042:24;11069:20:::0;;;:9:::1;:20;::::0;;;;;;;;;11141;;::::1;11121:41;11098:64:::0;;11171:9:::1;:20:::0;;;;;11194:24;;::::1;11171:47:::0;;10593:633:::1;11256:9;-1:-1:-1::0;;;;;11239:35:0::1;11248:6;-1:-1:-1::0;;;;;11239:35:0::1;-1:-1:-1::0;;;;;;;;;;;11267:6:0::1;11239:35;;;;;;;;;;;;;;;;;;1900:1;;;9250:2030:::0;;;:::o

Swarm Source

ipfs://15806b87b46c722b54f5f8f50de4114610e92b1d2f590ccf5f0071b72431c678
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.