ETH Price: $3,259.64 (+4.64%)
Gas: 1 Gwei

Token

IGCcoin (IGC)
 

Overview

Max Total Supply

1,000,000,000 IGC

Holders

3,458

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
90 IGC

Value
$0.00
0xe1690e5854007f020486970cc17a4e1d7da135ff
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:
IGCToken

Compiler Version
v0.5.8+commit.23d335f2

Optimization Enabled:
Yes with 200 runs

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

pragma solidity ^0.5.8;

library SafeMath {

  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    require(c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b > 0);
    uint256 c = a / b;
    return c;
  }

  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b <= a);
    uint256 c = a - b;
    return c;
  }

  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    require(c >= a);
    return c;
  }

}

interface IERC20 {
  function totalSupply() external view returns (uint256);
  function balanceOf(address who) external view returns (uint256);
  function allowance(address owner, address spender) external view returns (uint256);
  function transfer(address to, uint256 value) external returns (bool);
  function approve(address spender, uint256 value) external returns (bool);
  function transferFrom(address from, address to, uint256 value) external returns (bool);
  event Transfer(address indexed from,address indexed to,uint256 value);
  event Approval(address indexed owner,address indexed spender,uint256 value);
}

contract Owned {
  address owner;
  constructor () public {
    owner = msg.sender;
  }
  modifier onlyOwner {
    require(msg.sender == owner,"Only owner can do it.");
    _;
  }
}

contract IGCToken is IERC20 , Owned{

  string public constant name = "IGCcoin";
  string public constant symbol = "IGC";
  uint8 public constant decimals = 18;

  uint256 private constant INITIAL_SUPPLY = 1000000000 * (10 ** uint256(decimals));

  uint256 public role1_balance = INITIAL_SUPPLY.mul(4).div(100);

  using SafeMath for uint256;

  mapping (address => uint256) private _balances;

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

  uint256 private _totalSupply;

  uint256 public beginTime = 1559361600;

  function setBeginTime(uint256 _begin) onlyOwner public{
    beginTime = _begin;
  }

  struct Role {
    uint256 releaseTime;
    uint256 nolockRate;
    uint256 releaseRate;
  }

  struct Account {
    uint8 roleType;
    uint256 ownAmount;
    uint256 releasedAmount;
  }

  mapping(address => Account) private accountMapping;

  mapping(address => bool) private nolockReleasedMapping;

  mapping(address => uint256) private releasedRateMapping;

  function allocateTokenByType(address accountAddress,uint256 amount,uint8 roleType) onlyOwner public {
    require(accountAddress != address(0x0), "accountAddress not right");
    require(roleType <=5 ,"roleType must be 0~5");
    require(now < beginTime ,"beginTime <= now, so can not set");

    amount = amount.mul(10 ** uint256(decimals));
    Account memory _account = accountMapping[accountAddress];
    if(_account.ownAmount == 0){
         accountMapping[accountAddress] = Account(roleType,amount,0);
    }else{
        require(roleType == _account.roleType ,"roleType must be same!");
        accountMapping[accountAddress].ownAmount = _account.ownAmount.add(amount);
        accountMapping[accountAddress].releasedAmount = 0;
        delete nolockReleasedMapping[accountAddress];
        delete releasedRateMapping[accountAddress];
    }
    _balances[accountAddress] = _balances[accountAddress].add(amount);
    _balances[msg.sender] = _balances[msg.sender].sub(amount);
    if(roleType == 1){
        role1_balance = role1_balance.sub(amount);
    }
    releaseToken(accountAddress);
  }

  event Burn(address indexed from, uint256 value);

  function burn(uint256 _value, uint8 _roleType) onlyOwner public returns (bool success) {
    require(_value > 0, "_value > 0");
    _value = _value.mul(10 ** uint256(decimals));
    require(_balances[msg.sender] >= _value);
    _balances[msg.sender] = _balances[msg.sender].sub(_value);
    _totalSupply = _totalSupply.sub(_value);
    if(_roleType == 1){
        role1_balance = role1_balance.sub(_value);
    }
    emit Burn(msg.sender, _value);
    return true;
  }

  function releaseToken(address accountAddress) private returns (bool) {
    require(accountAddress != address(0x0), "accountAddress not right");

    Account memory _account = accountMapping[accountAddress];
    if(_account.ownAmount == 0){
      return true;
    }
    if(_account.releasedAmount == _account.ownAmount){
      return true;
    }
    uint256 _releasedAmount = 0;
    uint256 releaseTime;
    uint256 nolockRate;
    uint256 releaseRate;
    (releaseTime,nolockRate,releaseRate) = getRoles(_account.roleType);

    if(nolockRate > 0 && nolockReleasedMapping[accountAddress] != true){
      _releasedAmount = _releasedAmount.add(_account.ownAmount.mul(nolockRate).div(100));
      nolockReleasedMapping[accountAddress] = true;
    }
    if(releaseTime <= now){
      uint256 _momth = now.sub(releaseTime).div(30 days).add(1);
      if(releasedRateMapping[accountAddress] <=  _momth) {
        _releasedAmount = _releasedAmount.add(_account.ownAmount.mul(_momth-releasedRateMapping[accountAddress]).mul(releaseRate).div(100));
        releasedRateMapping[accountAddress] = _momth;
      }
    }
    if(_releasedAmount > 0){
        if(accountMapping[accountAddress].releasedAmount.add(_releasedAmount) <= _account.ownAmount){
            accountMapping[accountAddress].releasedAmount = accountMapping[accountAddress].releasedAmount.add(_releasedAmount);
        }else{
            accountMapping[accountAddress].releasedAmount = _account.ownAmount;
        }
      
    }
    return true;
  }

  function getRoles(uint8 _type) private pure returns(uint256,uint256,uint256) {
    require(_type <= 5);
    if(_type == 0){
      return (1559361600,0,100);
    }
    if(_type == 1){
      return (1564632000,0,10);
    }
    if(_type == 2){
      return (1575172800,0,2);
    }
    if(_type == 3){
      return (1567310400,20,10);
    }
    if(_type == 4){
      return (1559361600,10,5);
    }
    if(_type == 5){
      return (1559361600,0,100);
    }
  }
  
  constructor() public {
    _mint(msg.sender, INITIAL_SUPPLY);
  }

  function _mint(address account, uint256 value) internal {
    require(account != address(0x0));
    _totalSupply = _totalSupply.add(value);
    _balances[account] = _balances[account].add(value);
    emit Transfer(address(0), account, value);
  }
  
  function totalSupply() public view returns (uint256) {
    return _totalSupply;
  }

  function balanceOf(address owner) public view returns (uint256) {
    return _balances[owner];
  }

  function allowance(
    address owner,
    address spender
   )
    public
    view
    returns (uint256)
  {
    return _allowed[owner][spender];
  }

  function transfer(address to, uint256 value) public returns (bool) {
    if(_canTransfer(msg.sender,value)){ 
      _transfer(msg.sender, to, value);
      return true;
    } else {
      return false;
    }
  }

  function _canTransfer(address from,uint256 _amount) private returns (bool) {
    if(now < beginTime){
      return false;
    }
    if((balanceOf(from))<=0){
      return false;
    }
    releaseToken(from);
    Account memory _account = accountMapping[from];
    if(_account.ownAmount == 0){
      return true;
    }
    
    if(balanceOf(from).sub(_amount) < _account.ownAmount.sub(_account.releasedAmount)){
      return false;
    }

    return true;
  }

  function approve(address spender, uint256 value) public returns (bool) {
    require(spender != address(0));

    _allowed[msg.sender][spender] = value;
    emit Approval(msg.sender, spender, value);
    return true;
  }

  function transferFrom(
    address from,
    address to,
    uint256 value
  )
    public
    returns (bool)
  {
    require(value <= _allowed[from][msg.sender]);
    
    if (_canTransfer(from, value)) {
        _allowed[from][msg.sender] = _allowed[from][msg.sender].sub(value);
        _transfer(from, to, value);
        return true;
    } else {
        return false;
    }
  }

  function _transfer(address from, address to, uint256 value) internal {
    require(value <= _balances[from]);
    require(to != address(0));
    
    _balances[from] = _balances[from].sub(value);
    _balances[to] = _balances[to].add(value);
    emit Transfer(from, to, value);
    
  }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"role1_balance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_begin","type":"uint256"}],"name":"setBeginTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"},{"name":"_roleType","type":"uint8"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"beginTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"accountAddress","type":"address"},{"name":"amount","type":"uint256"},{"name":"roleType","type":"uint8"}],"name":"allocateTokenByType","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

60806040526200004360646200002f6b033b2e3c9fd0803ce8000000600462000096602090811b62000c8517901c565b620000ca60201b620010a11790919060201c565b600155635cf1f8406005553480156200005b57600080fd5b50600080546001600160a01b0319163390811790915562000090906b033b2e3c9fd0803ce8000000620000ee602090811b901c565b620001be565b600082620000a757506000620000c4565b82820282848281620000b557fe5b0414620000c157600080fd5b90505b92915050565b6000808211620000d957600080fd5b6000828481620000e557fe5b04949350505050565b6001600160a01b0382166200010257600080fd5b6200011e81600454620001ab60201b62000cac1790919060201c565b6004556001600160a01b0382166000908152600260209081526040909120546200015391839062000cac620001ab821b17901c565b6001600160a01b03831660008181526002602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600082820183811015620000c157600080fd5b61111380620001ce6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b4114610295578063a174033d1461029d578063a9059cbb146102d2578063dd62ed3e146102fe576100ea565b806370a082311461024157806379ca5d551461026757806388149fb91461028d576100ea565b806323b872dd116100c857806323b872dd146101c657806327e93fd0146101fc578063313ce567146102045780635eb17cdb14610222576100ea565b806306fdde03146100ef578063095ea7b31461016c57806318160ddd146101ac575b600080fd5b6100f761032c565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610131578181015183820152602001610119565b50505050905090810190601f16801561015e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101986004803603604081101561018257600080fd5b506001600160a01b038135169060200135610352565b604080519115158252519081900360200190f35b6101b46103cf565b60408051918252519081900360200190f35b610198600480360360608110156101dc57600080fd5b506001600160a01b038135811691602081013590911690604001356103d5565b6101b461048a565b61020c610490565b6040805160ff9092168252519081900360200190f35b61023f6004803603602081101561023857600080fd5b5035610495565b005b6101b46004803603602081101561025757600080fd5b50356001600160a01b03166104f7565b6101986004803603604081101561027d57600080fd5b508035906020013560ff16610516565b6101b461069b565b6100f76106a1565b61023f600480360360608110156102b357600080fd5b5080356001600160a01b0316906020810135906040013560ff166106c3565b610198600480360360408110156102e857600080fd5b506001600160a01b038135169060200135610a4b565b6101b46004803603604081101561031457600080fd5b506001600160a01b0381358116916020013516610a77565b604051806040016040528060078152602001600160c91b6624a3a1b1b7b4b70281525081565b60006001600160a01b03831661036757600080fd5b3360008181526003602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60045490565b6001600160a01b038316600090815260036020908152604080832033845290915281205482111561040557600080fd5b61040f8483610aa2565b1561047f576001600160a01b0384166000908152600360209081526040808320338452909152902054610448908363ffffffff610b7e16565b6001600160a01b0385166000908152600360209081526040808320338452909152902055610477848484610b93565b506001610483565b5060005b9392505050565b60015481565b601281565b6000546001600160a01b031633146104f25760408051600160e51b62461bcd0281526020600482015260156024820152600160591b7427b7363c9037bbb732b91031b0b71032379034ba1702604482015290519081900360640190fd5b600555565b6001600160a01b0381166000908152600260205260409020545b919050565b600080546001600160a01b031633146105745760408051600160e51b62461bcd0281526020600482015260156024820152600160591b7427b7363c9037bbb732b91031b0b71032379034ba1702604482015290519081900360640190fd5b600083116105bc5760408051600160e51b62461bcd02815260206004820152600a6024820152600160b41b6905f76616c7565203e20302604482015290519081900360640190fd5b6105d483670de0b6b3a764000063ffffffff610c8516565b336000908152600260205260409020549093508311156105f357600080fd5b33600090815260026020526040902054610613908463ffffffff610b7e16565b33600090815260026020526040902055600454610636908463ffffffff610b7e16565b600455600160ff8316141561065c57600154610658908463ffffffff610b7e16565b6001555b60408051848152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a250600192915050565b60055481565b604051806040016040528060038152602001600160e81b624947430281525081565b6000546001600160a01b031633146107205760408051600160e51b62461bcd0281526020600482015260156024820152600160591b7427b7363c9037bbb732b91031b0b71032379034ba1702604482015290519081900360640190fd5b6001600160a01b03831661077e5760408051600160e51b62461bcd02815260206004820152601860248201527f6163636f756e7441646472657373206e6f742072696768740000000000000000604482015290519081900360640190fd5b60058160ff1611156107da5760408051600160e51b62461bcd02815260206004820152601460248201527f726f6c6554797065206d75737420626520307e35000000000000000000000000604482015290519081900360640190fd5b60055442106108335760408051600160e51b62461bcd02815260206004820181905260248201527f626567696e54696d65203c3d206e6f772c20736f2063616e206e6f7420736574604482015290519081900360640190fd5b61084b82670de0b6b3a764000063ffffffff610c8516565b91506108556110c3565b506001600160a01b0383166000908152600660209081526040918290208251606081018452815460ff1681526001820154928101839052600290910154928101929092526108f7576040805160608101825260ff8481168252602080830187815260008486018181526001600160a01b038b1682526006909352949094209251835460ff191692169190911782559151600182015590516002909101556109ad565b805160ff8381169116146109555760408051600160e51b62461bcd02815260206004820152601660248201527f726f6c6554797065206d7573742062652073616d652100000000000000000000604482015290519081900360640190fd5b602081015161096a908463ffffffff610cac16565b6001600160a01b03851660009081526006602090815260408083206001810194909455600290930182905560078152828220805460ff1916905560089052908120555b6001600160a01b0384166000908152600260205260409020546109d6908463ffffffff610cac16565b6001600160a01b038516600090815260026020526040808220929092553381522054610a08908463ffffffff610b7e16565b33600090815260026020526040902055600160ff83161415610a3b57600154610a37908463ffffffff610b7e16565b6001555b610a4484610cbe565b5050505050565b6000610a573383610aa2565b15610a6f57610a67338484610b93565b5060016103c9565b5060006103c9565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6000600554421015610ab6575060006103c9565b6000610ac1846104f7565b11610ace575060006103c9565b610ad783610cbe565b50610ae06110c3565b506001600160a01b0383166000908152600660209081526040918290208251606081018452815460ff168152600182015492810183905260029091015492810192909252610b325760019150506103c9565b60408101516020820151610b4b9163ffffffff610b7e16565b610b6484610b58876104f7565b9063ffffffff610b7e16565b1015610b745760009150506103c9565b5060019392505050565b600082821115610b8d57600080fd5b50900390565b6001600160a01b038316600090815260026020526040902054811115610bb857600080fd5b6001600160a01b038216610bcb57600080fd5b6001600160a01b038316600090815260026020526040902054610bf4908263ffffffff610b7e16565b6001600160a01b038085166000908152600260205260408082209390935590841681522054610c29908263ffffffff610cac16565b6001600160a01b0380841660008181526002602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082610c94575060006103c9565b82820282848281610ca157fe5b041461048357600080fd5b60008282018381101561048357600080fd5b60006001600160a01b038216610d1e5760408051600160e51b62461bcd02815260206004820152601860248201527f6163636f756e7441646472657373206e6f742072696768740000000000000000604482015290519081900360640190fd5b610d266110c3565b506001600160a01b0382166000908152600660209081526040918290208251606081018452815460ff168152600182015492810183905260029091015492810192909252610d78576001915050610511565b806020015181604001511415610d92576001915050610511565b60008090506000806000610da98560000151610fd2565b919450925090508115801590610ddd57506001600160a01b03871660009081526007602052604090205460ff161515600114155b15610e4057610e1a610e0d6064610e01858960200151610c8590919063ffffffff16565b9063ffffffff6110a116565b859063ffffffff610cac16565b6001600160a01b0388166000908152600760205260409020805460ff1916600117905593505b428311610f16576000610e716001610e6562278d00610e01428963ffffffff610b7e16565b9063ffffffff610cac16565b6001600160a01b0389166000908152600860205260409020549091508110610f1457610ef6610ee96064610e0185610edd600860008f6001600160a01b03166001600160a01b031681526020019081526020016000205487038c60200151610c8590919063ffffffff16565b9063ffffffff610c8516565b869063ffffffff610cac16565b6001600160a01b038916600090815260086020526040902082905594505b505b8315610fc5576020808601516001600160a01b03891660009081526006909252604090912060020154610f4f908663ffffffff610cac16565b11610fa1576001600160a01b038716600090815260066020526040902060020154610f80908563ffffffff610cac16565b6001600160a01b038816600090815260066020526040902060020155610fc5565b6020808601516001600160a01b038916600090815260069092526040909120600201555b5060019695505050505050565b600080600060058460ff161115610fe857600080fd5b60ff84166110035750635cf1f840915060009050606461109a565b8360ff16600114156110225750635d4263c0915060009050600a61109a565b8360ff16600214156110415750635de33ac0915060009050600261109a565b8360ff16600314156110605750635d6b4240915060149050600a61109a565b8360ff166004141561107f5750635cf1f8409150600a9050600561109a565b8360ff166005141561109a5750635cf1f84091506000905060645b9193909250565b60008082116110af57600080fd5b60008284816110ba57fe5b04949350505050565b6040518060600160405280600060ff1681526020016000815260200160008152509056fea165627a7a723058200b3734ffa03e66050025dadb69649f8973c604df037bc5e222c50d136abe6da90029

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b4114610295578063a174033d1461029d578063a9059cbb146102d2578063dd62ed3e146102fe576100ea565b806370a082311461024157806379ca5d551461026757806388149fb91461028d576100ea565b806323b872dd116100c857806323b872dd146101c657806327e93fd0146101fc578063313ce567146102045780635eb17cdb14610222576100ea565b806306fdde03146100ef578063095ea7b31461016c57806318160ddd146101ac575b600080fd5b6100f761032c565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610131578181015183820152602001610119565b50505050905090810190601f16801561015e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101986004803603604081101561018257600080fd5b506001600160a01b038135169060200135610352565b604080519115158252519081900360200190f35b6101b46103cf565b60408051918252519081900360200190f35b610198600480360360608110156101dc57600080fd5b506001600160a01b038135811691602081013590911690604001356103d5565b6101b461048a565b61020c610490565b6040805160ff9092168252519081900360200190f35b61023f6004803603602081101561023857600080fd5b5035610495565b005b6101b46004803603602081101561025757600080fd5b50356001600160a01b03166104f7565b6101986004803603604081101561027d57600080fd5b508035906020013560ff16610516565b6101b461069b565b6100f76106a1565b61023f600480360360608110156102b357600080fd5b5080356001600160a01b0316906020810135906040013560ff166106c3565b610198600480360360408110156102e857600080fd5b506001600160a01b038135169060200135610a4b565b6101b46004803603604081101561031457600080fd5b506001600160a01b0381358116916020013516610a77565b604051806040016040528060078152602001600160c91b6624a3a1b1b7b4b70281525081565b60006001600160a01b03831661036757600080fd5b3360008181526003602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60045490565b6001600160a01b038316600090815260036020908152604080832033845290915281205482111561040557600080fd5b61040f8483610aa2565b1561047f576001600160a01b0384166000908152600360209081526040808320338452909152902054610448908363ffffffff610b7e16565b6001600160a01b0385166000908152600360209081526040808320338452909152902055610477848484610b93565b506001610483565b5060005b9392505050565b60015481565b601281565b6000546001600160a01b031633146104f25760408051600160e51b62461bcd0281526020600482015260156024820152600160591b7427b7363c9037bbb732b91031b0b71032379034ba1702604482015290519081900360640190fd5b600555565b6001600160a01b0381166000908152600260205260409020545b919050565b600080546001600160a01b031633146105745760408051600160e51b62461bcd0281526020600482015260156024820152600160591b7427b7363c9037bbb732b91031b0b71032379034ba1702604482015290519081900360640190fd5b600083116105bc5760408051600160e51b62461bcd02815260206004820152600a6024820152600160b41b6905f76616c7565203e20302604482015290519081900360640190fd5b6105d483670de0b6b3a764000063ffffffff610c8516565b336000908152600260205260409020549093508311156105f357600080fd5b33600090815260026020526040902054610613908463ffffffff610b7e16565b33600090815260026020526040902055600454610636908463ffffffff610b7e16565b600455600160ff8316141561065c57600154610658908463ffffffff610b7e16565b6001555b60408051848152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a250600192915050565b60055481565b604051806040016040528060038152602001600160e81b624947430281525081565b6000546001600160a01b031633146107205760408051600160e51b62461bcd0281526020600482015260156024820152600160591b7427b7363c9037bbb732b91031b0b71032379034ba1702604482015290519081900360640190fd5b6001600160a01b03831661077e5760408051600160e51b62461bcd02815260206004820152601860248201527f6163636f756e7441646472657373206e6f742072696768740000000000000000604482015290519081900360640190fd5b60058160ff1611156107da5760408051600160e51b62461bcd02815260206004820152601460248201527f726f6c6554797065206d75737420626520307e35000000000000000000000000604482015290519081900360640190fd5b60055442106108335760408051600160e51b62461bcd02815260206004820181905260248201527f626567696e54696d65203c3d206e6f772c20736f2063616e206e6f7420736574604482015290519081900360640190fd5b61084b82670de0b6b3a764000063ffffffff610c8516565b91506108556110c3565b506001600160a01b0383166000908152600660209081526040918290208251606081018452815460ff1681526001820154928101839052600290910154928101929092526108f7576040805160608101825260ff8481168252602080830187815260008486018181526001600160a01b038b1682526006909352949094209251835460ff191692169190911782559151600182015590516002909101556109ad565b805160ff8381169116146109555760408051600160e51b62461bcd02815260206004820152601660248201527f726f6c6554797065206d7573742062652073616d652100000000000000000000604482015290519081900360640190fd5b602081015161096a908463ffffffff610cac16565b6001600160a01b03851660009081526006602090815260408083206001810194909455600290930182905560078152828220805460ff1916905560089052908120555b6001600160a01b0384166000908152600260205260409020546109d6908463ffffffff610cac16565b6001600160a01b038516600090815260026020526040808220929092553381522054610a08908463ffffffff610b7e16565b33600090815260026020526040902055600160ff83161415610a3b57600154610a37908463ffffffff610b7e16565b6001555b610a4484610cbe565b5050505050565b6000610a573383610aa2565b15610a6f57610a67338484610b93565b5060016103c9565b5060006103c9565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6000600554421015610ab6575060006103c9565b6000610ac1846104f7565b11610ace575060006103c9565b610ad783610cbe565b50610ae06110c3565b506001600160a01b0383166000908152600660209081526040918290208251606081018452815460ff168152600182015492810183905260029091015492810192909252610b325760019150506103c9565b60408101516020820151610b4b9163ffffffff610b7e16565b610b6484610b58876104f7565b9063ffffffff610b7e16565b1015610b745760009150506103c9565b5060019392505050565b600082821115610b8d57600080fd5b50900390565b6001600160a01b038316600090815260026020526040902054811115610bb857600080fd5b6001600160a01b038216610bcb57600080fd5b6001600160a01b038316600090815260026020526040902054610bf4908263ffffffff610b7e16565b6001600160a01b038085166000908152600260205260408082209390935590841681522054610c29908263ffffffff610cac16565b6001600160a01b0380841660008181526002602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082610c94575060006103c9565b82820282848281610ca157fe5b041461048357600080fd5b60008282018381101561048357600080fd5b60006001600160a01b038216610d1e5760408051600160e51b62461bcd02815260206004820152601860248201527f6163636f756e7441646472657373206e6f742072696768740000000000000000604482015290519081900360640190fd5b610d266110c3565b506001600160a01b0382166000908152600660209081526040918290208251606081018452815460ff168152600182015492810183905260029091015492810192909252610d78576001915050610511565b806020015181604001511415610d92576001915050610511565b60008090506000806000610da98560000151610fd2565b919450925090508115801590610ddd57506001600160a01b03871660009081526007602052604090205460ff161515600114155b15610e4057610e1a610e0d6064610e01858960200151610c8590919063ffffffff16565b9063ffffffff6110a116565b859063ffffffff610cac16565b6001600160a01b0388166000908152600760205260409020805460ff1916600117905593505b428311610f16576000610e716001610e6562278d00610e01428963ffffffff610b7e16565b9063ffffffff610cac16565b6001600160a01b0389166000908152600860205260409020549091508110610f1457610ef6610ee96064610e0185610edd600860008f6001600160a01b03166001600160a01b031681526020019081526020016000205487038c60200151610c8590919063ffffffff16565b9063ffffffff610c8516565b869063ffffffff610cac16565b6001600160a01b038916600090815260086020526040902082905594505b505b8315610fc5576020808601516001600160a01b03891660009081526006909252604090912060020154610f4f908663ffffffff610cac16565b11610fa1576001600160a01b038716600090815260066020526040902060020154610f80908563ffffffff610cac16565b6001600160a01b038816600090815260066020526040902060020155610fc5565b6020808601516001600160a01b038916600090815260069092526040909120600201555b5060019695505050505050565b600080600060058460ff161115610fe857600080fd5b60ff84166110035750635cf1f840915060009050606461109a565b8360ff16600114156110225750635d4263c0915060009050600a61109a565b8360ff16600214156110415750635de33ac0915060009050600261109a565b8360ff16600314156110605750635d6b4240915060149050600a61109a565b8360ff166004141561107f5750635cf1f8409150600a9050600561109a565b8360ff166005141561109a5750635cf1f84091506000905060645b9193909250565b60008082116110af57600080fd5b60008284816110ba57fe5b04949350505050565b6040518060600160405280600060ff1681526020016000815260200160008152509056fea165627a7a723058200b3734ffa03e66050025dadb69649f8973c604df037bc5e222c50d136abe6da90029

Deployed Bytecode Sourcemap

1488:7068:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1488:7068:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1530:39;;;:::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;1530:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7620:226;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7620:226:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;6552:85;;;:::i;:::-;;;;;;;;;;;;;;;;7852:399;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7852:399:0;;;;;;;;;;;;;;;;;:::i;1745:61::-;;;:::i;1616:35::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2051:85;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2051:85:0;;:::i;:::-;;6643:100;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6643:100:0;-1:-1:-1;;;;;6643:100:0;;:::i;3704:479::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3704:479:0;;;;;;;;;:::i;2007:37::-;;;:::i;1574:::-;;;:::i;2524:1120::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2524:1120:0;;-1:-1:-1;;;;;2524:1120:0;;;;;;;;;;;;;:::i;6914:218::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6914:218:0;;;;;;;;:::i;6749:159::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6749:159:0;;;;;;;;;;:::i;1530:39::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1530:39:0;;;;:::o;7620:226::-;7685:4;-1:-1:-1;;;;;7706:21:0;;7698:30;;;;;;7746:10;7737:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;7737:29:0;;;;;;;;;;;;:37;;;7786:36;;;;;;;7737:29;;7746:10;7786:36;;;;;;;;;;;-1:-1:-1;7836:4:0;7620:226;;;;;:::o;6552:85::-;6619:12;;6552:85;:::o;7852:399::-;-1:-1:-1;;;;;7994:14:0;;7961:4;7994:14;;;:8;:14;;;;;;;;8009:10;7994:26;;;;;;;;7985:35;;;7977:44;;;;;;8038:25;8051:4;8057:5;8038:12;:25::i;:::-;8034:212;;;-1:-1:-1;;;;;8105:14:0;;;;;;:8;:14;;;;;;;;8120:10;8105:26;;;;;;;;:37;;8136:5;8105:37;:30;:37;:::i;:::-;-1:-1:-1;;;;;8076:14:0;;;;;;:8;:14;;;;;;;;8091:10;8076:26;;;;;;;:66;8153:26;8085:4;8169:2;8173:5;8153:9;:26::i;:::-;-1:-1:-1;8197:4:0;8190:11;;8034:212;-1:-1:-1;8233:5:0;8034:212;7852:399;;;;;:::o;1745:61::-;;;;:::o;1616:35::-;1649:2;1616:35;:::o;2051:85::-;1437:5;;-1:-1:-1;;;;;1437:5:0;1423:10;:19;1415:52;;;;;-1:-1:-1;;;;;1415:52:0;;;;;;;;;;;;-1:-1:-1;;;;;1415:52:0;;;;;;;;;;;;;;;2112:9;:18;2051:85::o;6643:100::-;-1:-1:-1;;;;;6721:16:0;;6698:7;6721:16;;;:9;:16;;;;;;6643:100;;;;:::o;3704:479::-;3777:12;1437:5;;-1:-1:-1;;;;;1437:5:0;1423:10;:19;1415:52;;;;;-1:-1:-1;;;;;1415:52:0;;;;;;;;;;;;-1:-1:-1;;;;;1415:52:0;;;;;;;;;;;;;;;3815:1;3806:6;:10;3798:33;;;;;-1:-1:-1;;;;;3798:33:0;;;;;;;;;;;;-1:-1:-1;;;;;3798:33:0;;;;;;;;;;;;;;;3847:35;:6;3858:23;3847:35;:10;:35;:::i;:::-;3907:10;3897:21;;;;:9;:21;;;;;;3838:44;;-1:-1:-1;3897:31:0;-1:-1:-1;3897:31:0;3889:40;;;;;;3970:10;3960:21;;;;:9;:21;;;;;;:33;;3986:6;3960:33;:25;:33;:::i;:::-;3946:10;3936:21;;;;:9;:21;;;;;:57;4015:12;;:24;;4032:6;4015:24;:16;:24;:::i;:::-;4000:12;:39;4062:1;4049:14;;;;4046:78;;;4091:13;;:25;;4109:6;4091:25;:17;:25;:::i;:::-;4075:13;:41;4046:78;4135:24;;;;;;;;4140:10;;4135:24;;;;;;;;;;-1:-1:-1;4173:4:0;3704:479;;;;:::o;2007:37::-;;;;:::o;1574:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1574:37:0;;;;:::o;2524:1120::-;1437:5;;-1:-1:-1;;;;;1437:5:0;1423:10;:19;1415:52;;;;;-1:-1:-1;;;;;1415:52:0;;;;;;;;;;;;-1:-1:-1;;;;;1415:52:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;2639:30:0;;2631:67;;;;;-1:-1:-1;;;;;2631:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2724:1;2713:8;:12;;;;2705:45;;;;;-1:-1:-1;;;;;2705:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2771:9;;2765:3;:15;2757:60;;;;;-1:-1:-1;;;;;2757:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2835:35;:6;2846:23;2835:35;:10;:35;:::i;:::-;2826:44;;2877:23;;:::i;:::-;-1:-1:-1;;;;;;2903:30:0;;;;;;:14;:30;;;;;;;;;2877:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2940:445;;3012:26;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3012:26:0;;;;;;-1:-1:-1;;;;;2979:30:0;;;;:14;:30;;;;;;;:59;;;;-1:-1:-1;;2979:59:0;;;;;;;;;;;-1:-1:-1;2979:59:0;;;;;;;;;;2940:445;;;3081:17;;3069:29;;;;;;;3061:64;;;;;-1:-1:-1;;;;;3061:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3179:18;;;;:30;;3202:6;3179:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;3136:30:0;;;;;;:14;:30;;;;;;;;:40;;;:73;;;;3220:45;;;;:49;;;3287:21;:37;;;;;3280:44;;-1:-1:-1;;3280:44:0;;;3342:19;:35;;;;;3335:42;2940:445;-1:-1:-1;;;;;3419:25:0;;;;;;:9;:25;;;;;;:37;;3449:6;3419:37;:29;:37;:::i;:::-;-1:-1:-1;;;;;3391:25:0;;;;;;:9;:25;;;;;;:65;;;;3497:10;3487:21;;;;:33;;3513:6;3487:33;:25;:33;:::i;:::-;3473:10;3463:21;;;;:9;:21;;;;;:57;3542:1;3530:13;;;;3527:77;;;3571:13;;:25;;3589:6;3571:25;:17;:25;:::i;:::-;3555:13;:41;3527:77;3610:28;3623:14;3610:12;:28::i;:::-;;1474:1;2524:1120;;;:::o;6914:218::-;6975:4;6991:30;7004:10;7015:5;6991:12;:30::i;:::-;6988:139;;;7032:32;7042:10;7054:2;7058:5;7032:9;:32::i;:::-;-1:-1:-1;7080:4:0;7073:11;;6988:139;-1:-1:-1;7114:5:0;7107:12;;6749:159;-1:-1:-1;;;;;6878:15:0;;;6852:7;6878:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;6749:159::o;7138:476::-;7207:4;7229:9;;7223:3;:15;7220:48;;;-1:-1:-1;7255:5:0;7248:12;;7220:48;7296:1;7278:15;7288:4;7278:9;:15::i;:::-;7277:20;7274:53;;-1:-1:-1;7314:5:0;7307:12;;7274:53;7333:18;7346:4;7333:12;:18::i;:::-;;7358:23;;:::i;:::-;-1:-1:-1;;;;;;7384:20:0;;;;;;:14;:20;;;;;;;;;7358:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7411:55;;7454:4;7447:11;;;;;7411:55;7535:23;;;;7512:18;;;;:47;;;:22;:47;:::i;:::-;7481:28;7501:7;7481:15;7491:4;7481:9;:15::i;:::-;:19;:28;:19;:28;:::i;:::-;:78;7478:111;;;7576:5;7569:12;;;;;7478:111;-1:-1:-1;7604:4:0;;7138:476;-1:-1:-1;;;7138:476:0:o;377:134::-;435:7;464:1;459;:6;;451:15;;;;;;-1:-1:-1;485:5:0;;;377:134::o;8257:294::-;-1:-1:-1;;;;;8350:15:0;;;;;;:9;:15;;;;;;8341:24;;;8333:33;;;;;;-1:-1:-1;;;;;8381:16:0;;8373:25;;;;;;-1:-1:-1;;;;;8429:15:0;;;;;;:9;:15;;;;;;:26;;8449:5;8429:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;8411:15:0;;;;;;;:9;:15;;;;;;:44;;;;8478:13;;;;;;;:24;;8496:5;8478:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;8462:13:0;;;;;;;:9;:13;;;;;;;;;:40;;;;8514:25;;;;;;;8462:13;;8514:25;;;;;;;;;;;;;8257:294;;;:::o;51:181::-;109:7;129:6;125:37;;-1:-1:-1;153:1:0;146:8;;125:37;180:5;;;184:1;180;:5;:1;200:5;;;;;:10;192:19;;;;;517:134;575:7;603:5;;;623:6;;;;615:15;;;;;4189:1540;4252:4;-1:-1:-1;;;;;4273:30:0;;4265:67;;;;;-1:-1:-1;;;;;4265:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4341:23;;:::i;:::-;-1:-1:-1;;;;;;4367:30:0;;;;;;:14;:30;;;;;;;;;4341:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4404:55;;4447:4;4440:11;;;;;4404:55;4495:8;:18;;;4468:8;:23;;;:45;4465:77;;;4530:4;4523:11;;;;;4465:77;4548:23;4574:1;4548:27;;4582:19;4608:18;4633:19;4698:27;4707:8;:17;;;4698:8;:27::i;:::-;4659:66;;-1:-1:-1;4659:66:0;-1:-1:-1;4659:66:0;-1:-1:-1;4737:14:0;;;;;:63;;-1:-1:-1;;;;;;4755:37:0;;;;;;:21;:37;;;;;;;;:45;;:37;:45;;4737:63;4734:219;;;4828:64;4848:43;4887:3;4848:34;4871:10;4848:8;:18;;;:22;;:34;;;;:::i;:::-;:38;:43;:38;:43;:::i;:::-;4828:15;;:64;:19;:64;:::i;:::-;-1:-1:-1;;;;;4901:37:0;;;;;;:21;:37;;;;;:44;;-1:-1:-1;;4901:44:0;4941:4;4901:44;;;4810:82;-1:-1:-1;4734:219:0;4977:3;4962:11;:18;4959:362;;4990:14;5007:40;5045:1;5007:33;5032:7;5007:20;:3;5015:11;5007:20;:7;:20;:::i;:33::-;:37;:40;:37;:40;:::i;:::-;-1:-1:-1;;;;;5059:35:0;;;;;;:19;:35;;;;;;4990:57;;-1:-1:-1;5059:46:0;-1:-1:-1;5056:258:0;;5136:113;5156:92;5244:3;5156:83;5227:11;5156:66;5186:19;:35;5206:14;-1:-1:-1;;;;;5186:35:0;-1:-1:-1;;;;;5186:35:0;;;;;;;;;;;;;5179:6;:42;5156:8;:18;;;:22;;:66;;;;:::i;:::-;:70;:83;:70;:83;:::i;:92::-;5136:15;;:113;:19;:113;:::i;:::-;-1:-1:-1;;;;;5260:35:0;;;;;;:19;:35;;;;;:44;;;5118:131;-1:-1:-1;5056:258:0;4959:362;;5330:19;;5327:379;;5434:18;;;;;-1:-1:-1;;;;;5364:30:0;;;;;;:14;:30;;;;;;;:45;;;:66;;5414:15;5364:66;:49;:66;:::i;:::-;:88;5361:330;;-1:-1:-1;;;;;5516:30:0;;;;;;:14;:30;;;;;:45;;;:66;;5566:15;5516:66;:49;:66;:::i;:::-;-1:-1:-1;;;;;5468:30:0;;;;;;:14;:30;;;;;:45;;:114;5361:330;;;5661:18;;;;;-1:-1:-1;;;;;5613:30:0;;;;;;:14;:30;;;;;;;:45;;:66;5361:330;-1:-1:-1;5719:4:0;;4189:1540;-1:-1:-1;;;;;;4189:1540:0:o;5735:477::-;5787:7;5795;5803;5836:1;5827:5;:10;;;;5819:19;;;;;;5848:10;;;5845:56;;-1:-1:-1;5876:10:0;;-1:-1:-1;5887:1:0;;-1:-1:-1;5889:3:0;5868:25;;5845:56;5910:5;:10;;5919:1;5910:10;5907:55;;;-1:-1:-1;5938:10:0;;-1:-1:-1;5949:1:0;;-1:-1:-1;5951:2:0;5930:24;;5907:55;5971:5;:10;;5980:1;5971:10;5968:54;;;-1:-1:-1;5999:10:0;;-1:-1:-1;6010:1:0;;-1:-1:-1;6012:1:0;5991:23;;5968:54;6031:5;:10;;6040:1;6031:10;6028:56;;;-1:-1:-1;6059:10:0;;-1:-1:-1;6070:2:0;;-1:-1:-1;6073:2:0;6051:25;;6028:56;6093:5;:10;;6102:1;6093:10;6090:55;;;-1:-1:-1;6121:10:0;;-1:-1:-1;6132:2:0;;-1:-1:-1;6135:1:0;6113:24;;6090:55;6154:5;:10;;6163:1;6154:10;6151:56;;;-1:-1:-1;6182:10:0;;-1:-1:-1;6193:1:0;;-1:-1:-1;6195:3:0;6151:56;5735:477;;;;;:::o;238:133::-;296:7;324:1;320;:5;312:14;;;;;;333:9;349:1;345;:5;;;;;;;238:133;-1:-1:-1;;;;238:133:0:o;1488:7068::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

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