ETH Price: $3,118.96 (-1.11%)
Gas: 5 Gwei

Token

Be Gaming Coin (BGC)
 

Overview

Max Total Supply

3,000,000,000 BGC

Holders

2,693 (0.00%)

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

BGC is a cryptocurrency that can be used within the Be Gaming Station platform.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
BGCToken

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-12-04
*/

pragma solidity ^0.5.0;

/**
  * @title ERC20Basic
  * @dev Simpler version of ERC20 interface
  * @dev see https://github.com/ethereum/EIPs/issues/179
  */
contract ERC20Basic {
  function totalSupply() public view returns (uint);
  function balanceOf(address who) public view returns (uint);
  function transfer(address to, uint value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint value);
}


/**
  * @title ERC20 interface
  * @dev see https://github.com/ethereum/EIPs/issues/20
  */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) public view returns (uint);
  function transferFrom(address from, address to, uint value) public returns (bool);
  function approve(address spender, uint value) public returns (bool);
  event Approval(address indexed owner, address indexed spender, uint value);
}

/**
  * @title Ownable
  * @dev Owner validator
  */
contract Ownable {
  address private _owner;
  address[] private _operator;

  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
  event OperatorAdded(address indexed newOperator);
  event OperatorRemoved(address indexed previousOperator);

  /**
    * @dev The Ownable constructor sets the original `owner` of the contract to the sender
    * account.
    */
  constructor() public {
    _owner = msg.sender;
    _operator.push(msg.sender);

    emit OwnershipTransferred(address(0), _owner);
    emit OperatorAdded(_owner);
  }

  /**
    * @return the address of the owner.
    */
  function owner() public view returns (address) {
    return _owner;
  }
 
  /**
    *  @return the address of the operator matched index
    */
  function operator(uint index) public view returns (address) {
    require(_operator.length > index);
    return _operator[index];
  }

  /**
    * @dev Throws if called by any account other than the owner.
    */
  modifier onlyOwner() {
    require(isOwner());
    _;
  }

  /**
    * @dev Throws if called by any account other than the owner or operator.
    */
  modifier onlyOwnerOrOperator() {
    require(isOwner() || isOperator());
    _;
  }


  /**
    * @return true if `msg.sender` is the owner of the contract.
    */
  function isOwner() public view returns (bool) {
    return msg.sender == _owner;
  }

  /**
    * @return true if `msg.sender` is the operator of the contract.
    */
  function isOperator() public view returns (bool) {
    return _isOperator(msg.sender);
  }
 
  /**
    * @return true if address `granted` is the operator of the contract.
    */
  function _isOperator(address granted) internal view returns (bool) {
    for(uint i = 0; i < _operator.length; i++) {
        if(_operator[i] == granted) {
            return true;
        }
    }
    return false;
  }

  /**
    * @dev Allows the current owner to transfer control of the contract to a newOwner.
    * @param newOwner The address to transfer ownership to.
    */
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));

    emit OwnershipTransferred(_owner, newOwner);
    _owner = newOwner;
  }

  /**
    * @dev Add newOperator.
    * @param newOperator The address to operate additonally.
    */
  function addOperator(address newOperator) public onlyOwner {
    require(newOperator != address(0));
    require(!_isOperator(newOperator));

    _operator.push(newOperator);
    emit OperatorAdded(newOperator);
  }

  /**
    * @dev Remove Operator.
    * @param noMoreOperator The address not to operate anymore.
    */
  function removeOperator(address noMoreOperator) public onlyOwner {
    require(noMoreOperator != address(0));
    require(_isOperator(noMoreOperator));

    uint len = _operator.length;
    uint index = len;
    for(uint i = 0; i < len; i++) {
        if (_operator[i] == noMoreOperator) {
            index = i;
        }
    }
   
    if(index != len){
        if (len == 1) {
          delete _operator[len - 1];
        } else {
          _operator[index] = _operator[len - 1];
          delete _operator[len - 1];
        }
    }
  }
}


/**
  * @title Pausable
  * @dev Base contract which allows children to implement an emergency stop mechanism.
  */
contract Pausable is Ownable {
  event Paused(address account);
  event Unpaused(address account);

  bool private _paused;

  constructor () internal {
    _paused = false;
  }

  /**
    * @return True if the contract is paused, false otherwise.
    */
  function paused() public view returns (bool) {
    return _paused;
  }

  /**
    * @dev Modifier to make a function callable only when the contract is not paused.
    */
  modifier whenNotPaused() {
    require(!_paused);
    _;
  }

  /**
    * @dev Modifier to make a function callable only when the contract is paused.
    */
  modifier whenPaused() {
    require(_paused);
    _;
  }

  /**
    * @dev Called by a pauser to pause, triggers stopped state.
    */
  function pause() public onlyOwnerOrOperator whenNotPaused {
    _paused = true;
    emit Paused(msg.sender);
  }

  /**
    * @dev Called by a pauser to unpause, returns to normal state.
    */
  function unpause() public onlyOwnerOrOperator whenPaused {
    _paused = false;
    emit Unpaused(msg.sender);
  }
}

/**
  * @title SafeMath
  * @dev Unsigned math operations with safety checks that revert on error.
  */
library SafeMath {

  /**
    * @dev Multiplies two unsigned integers, reverts on overflow.
    */
  function mul(uint a, uint b) internal pure returns (uint) {
    if (a == 0) {
      return 0;
    }

    uint c = a * b;
    require(c / a == b);

    return c;
  }

  /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
  function div(uint a, uint b) internal pure returns (uint) {
    // Solidity only automatically asserts when dividing by 0
    require(b > 0);
    uint c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold

    return c;
  }

  /**
    * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
  function sub(uint a, uint b) internal pure returns (uint) {
    require(b <= a);
    uint c = a - b;

    return c;
  }

  /**
    * @dev Adds two numbers, throws on overflow.
    */
  function add(uint a, uint b) internal pure returns (uint) {
    uint c = a + b;
    require(c >= a);

    return c;
  }

  /**
    * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
    * reverts when dividing by zero.
    */
  function mod(uint a, uint b) internal pure returns (uint) {
    require(b != 0);
    return a % b;
  }

}


/**
  * @title StandardToken
  * @dev Base Of token
  */
contract StandardToken is ERC20, Pausable {
  using SafeMath for uint;

  mapping (address => uint) private _balances;

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

  uint private _totalSupply;

  /**
    * @dev Total number of tokens in existence.
    */
  function totalSupply() public view returns (uint) {
    return _totalSupply;
  }

  /**
    * @dev Gets the balance of the specified address.
    * @param owner The address to query the balance of.
    * @return A uint representing the amount owned by the passed address.
    */
  function balanceOf(address owner) public view returns (uint) {
    return _balances[owner];
  }

  /**
    * @dev Function to check the amount of tokens that an owner allowed to a spender.
    * @param owner address The address which owns the funds.
    * @param spender address The address which will spend the funds.
    * @return A uint specifying the amount of tokens still available for the spender.
    */
  function allowance(address owner, address spender) public view returns (uint) {
    return _allowed[owner][spender];
  }

  /**
    * @dev Transfer token to a specified address.
    * @param to The address to transfer to.
    * @param value The amount to be transferred.
    */
  function transfer(address to, uint value) public whenNotPaused returns (bool) {
    _transfer(msg.sender, to, value);
    return true;
  }

  /**
    * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
    * Beware that changing an allowance with this method brings the risk that someone may use both the old
    * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
    * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
    * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
    * @param spender The address which will spend the funds.
    * @param value The amount of tokens to be spent.
    */
  function approve(address spender, uint value) public whenNotPaused returns (bool) {
    _approve(msg.sender, spender, value);
    return true;
  }

  /**
    * @dev Transfer tokens from one address to another.
    * Note that while this function emits an Approval event, this is not required as per the specification,
    * and other compliant implementations may not emit the event.
    * @param from address The address which you want to send tokens from
    * @param to address The address which you want to transfer to
    * @param value uint the amount of tokens to be transferred
    */
  function transferFrom(address from, address to, uint value) public whenNotPaused returns (bool) {
    _transferFrom(from, to, value);
    return true;
  }

  /**
    * @dev Increase the amount of tokens that an owner allowed to a spender.
    * approve should be called when _allowed[msg.sender][spender] == 0. To increment
    * allowed value is better to use this function to avoid 2 calls (and wait until
    * the first transaction is mined)
    * From MonolithDAO Token.sol
    * Emits an Approval event.
    * @param spender The address which will spend the funds.
    * @param addedValue The amount of tokens to increase the allowance by.
    */
  function increaseAllowance(address spender, uint addedValue) public whenNotPaused returns (bool) {
    _approve(msg.sender, spender, _allowed[msg.sender][spender].add(addedValue));
    return true;
  }

  /**
    * @dev Decrease the amount of tokens that an owner allowed to a spender.
    * approve should be called when _allowed[msg.sender][spender] == 0. To decrement
    * allowed value is better to use this function to avoid 2 calls (and wait until
    * the first transaction is mined)
    * From MonolithDAO Token.sol
    * Emits an Approval event.
    * @param spender The address which will spend the funds.
    * @param subtractedValue The amount of tokens to decrease the allowance by.
    */
  function decreaseAllowance(address spender, uint subtractedValue) public whenNotPaused returns (bool) {
    _approve(msg.sender, spender, _allowed[msg.sender][spender].sub(subtractedValue));
    return true;
  }

  /**
    * @dev Transfer token for a specified addresses.
    * @param from The address to transfer from.
    * @param to The address to transfer to.
    * @param value The amount to be transferred.
    */
  function _transfer(address from, address to, uint value) internal {
    require(to != address(0));

    _balances[from] = _balances[from].sub(value);
    _balances[to] = _balances[to].add(value);
    emit Transfer(from, to, value);
  }

  /**
    * @dev Transfer tokens from one address to another.
    * Note that while this function emits an Approval event, this is not required as per the specification,
    * and other compliant implementations may not emit the event.
    * @param from address The address which you want to send tokens from
    * @param to address The address which you want to transfer to
    * @param value uint the amount of tokens to be transferred
    */
  function _transferFrom(address from, address to, uint value) internal {
    _transfer(from, to, value);
    _approve(from, msg.sender, _allowed[from][msg.sender].sub(value));
  }

  /**
    * @dev Internal function that mints an amount of the token and assigns it to
    * an account. This encapsulates the modification of balances such that the
    * proper events are emitted.
    * @param account The account that will receive the created tokens.
    * @param value The amount that will be created.
    */
  function _mint(address account, uint value) internal {
    require(account != address(0));

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

  /**
    * @dev Internal function that burns an amount of the token of the owner
    * account.
    * @param value The amount that will be burnt.
    */
  function _burn(uint value) internal {
    _totalSupply = _totalSupply.sub(value);
    _balances[msg.sender] = _balances[msg.sender].sub(value);
    emit Transfer(msg.sender, address(0), value);
  }

  /**
    * @dev Approve an address to spend another addresses' tokens.
    * @param owner The address that owns the tokens.
    * @param spender The address that will spend the tokens.
    * @param value The number of tokens that can be spent.
    */
  function _approve(address owner, address spender, uint value) internal {
    require(spender != address(0));
    require(owner != address(0));

    _allowed[owner][spender] = value;
    emit Approval(owner, spender, value);
  }
}

/**
  * @title MintableToken
  * @dev Minting of total balance
  */
contract MintableToken is StandardToken {
  event MintFinished();

  bool public mintingFinished = false;

  modifier canMint() {
    require(!mintingFinished);
    _;
  }

  /**
    * @dev Function to mint tokens
    * @param to The address that will receive the minted tokens.
    * @param amount The amount of tokens to mint
    * @return A boolean that indicated if the operation was successful.
    */
  function mint(address to, uint amount) public whenNotPaused onlyOwner canMint returns (bool) {
    _mint(to, amount);
    return true;
  }

  /**
    * @dev Function to stop minting new tokens.
    * @return True if the operation was successful.
    */
  function finishMinting() public whenNotPaused onlyOwner canMint returns (bool) {
    mintingFinished = true;
    emit MintFinished();
    return true;
  }
}

/**
  * @title Burnable Token
  * @dev Token that can be irreversibly burned (destroyed).
  */
contract BurnableToken is MintableToken {
  /**
    * @dev Burns a specific amount of tokens.
    * @param value The amount of token to be burned.
    */
  function burn(uint value) public whenNotPaused onlyOwner returns (bool) {
    _burn(value);
    return true;
  }
}



/**
  * @title LockableToken
  * @dev locking of granted balance
  */
contract LockableToken is BurnableToken {

  using SafeMath for uint;

  /**
    * @dev Lock defines a lock of token
    */
  struct Lock {
    uint amount;
    uint expiresAt;
  }

  mapping (address => Lock[]) public grantedLocks;

  /**
    * @dev Transfer tokens to another
    * @param to address the address which you want to transfer to
    * @param value uint the amount of tokens to be transferred
    */
  function transfer(address to, uint value) public whenNotPaused returns (bool) {
    _verifyTransferLock(msg.sender, value);
    _transfer(msg.sender, to, value);
    return true;
  }

  /**
    * @dev Transfer tokens from one address to another
    * @param from address The address which you want to send tokens from
    * @param to address the address which you want to transfer to
    * @param value uint the amount of tokens to be transferred
    */
  function transferFrom(address from, address to, uint value) public whenNotPaused returns (bool) {
    _verifyTransferLock(from, value);
    _transferFrom(from, to, value);
    return true;
  }

  /**
    * @dev Function to add lock
    * @param granted The address that will be locked.
    * @param amount The amount of tokens to be locked
    * @param expiresAt The expired date as unix timestamp
    */
  function addLock(address granted, uint amount, uint expiresAt) public onlyOwnerOrOperator {
    require(amount > 0);
    require(expiresAt > now);

    grantedLocks[granted].push(Lock(amount, expiresAt));
  }

  /**
    * @dev Function to delete lock
    * @param granted The address that was locked
    * @param index The index of lock
    */
  function deleteLock(address granted, uint8 index) public onlyOwnerOrOperator {
    require(grantedLocks[granted].length > index);

    uint len = grantedLocks[granted].length;
    if (len == 1) {
      delete grantedLocks[granted];
    } else {
      if (len - 1 != index) {
        grantedLocks[granted][index] = grantedLocks[granted][len - 1];
      }
      delete grantedLocks[granted][len - 1];
    }
  }

  /**
    * @dev Verify transfer is possible
    * @param from - granted
    * @param value - amount of transfer
    */
  function _verifyTransferLock(address from, uint value) internal view {
    uint lockedAmount = getLockedAmount(from);
    uint balanceAmount = balanceOf(from);

    require(balanceAmount.sub(lockedAmount) >= value);
  }

  /**
    * @dev get locked amount of address
    * @param granted The address want to know the lock state.
    * @return locked amount
    */
  function getLockedAmount(address granted) public view returns(uint) {
    uint lockedAmount = 0;

    uint len = grantedLocks[granted].length;
    for (uint i = 0; i < len; i++) {
      if (now < grantedLocks[granted][i].expiresAt) {
        lockedAmount = lockedAmount.add(grantedLocks[granted][i].amount);
      }
    }
    return lockedAmount;
  }
}

/**
  * @title Be Gaming Coin Token
  * @dev ERC20 Token
  */
contract BGCToken is LockableToken {

  string public constant name = "Be Gaming Coin";
  string public constant symbol = "BGC";
  uint32 public constant decimals = 18;

  uint public constant INITIAL_SUPPLY = 3000000000e18;

  /**
    * @dev Constructor that gives msg.sender all of existing tokens.
    */
  constructor() public {
    _mint(msg.sender, INITIAL_SUPPLY);
    emit Transfer(address(0), msg.sender, INITIAL_SUPPLY);
  }
 
  function lockTransfer(address granted, uint value) public onlyOwnerOrOperator {
      bool lock_flag = false;
      uint unit_lock_amount = SafeMath.div(value, 10);
      uint total_lock_amount = SafeMath.mul(unit_lock_amount, 4);
      uint unlock_amount = SafeMath.sub(value, total_lock_amount);
      require(value == total_lock_amount + unlock_amount);
      uint moment = now;
     
      uint locktime = SafeMath.add(moment, 2 * 30 days);
      addLock(granted, unit_lock_amount, locktime);   // + 2 momths
      locktime = SafeMath.add(moment, 4 * 30 days);
      addLock(granted, unit_lock_amount, locktime);   // + 2 momths
      locktime = SafeMath.add(moment, 6 * 30 days);
      addLock(granted, unit_lock_amount, locktime);   // + 2 momths
      locktime = SafeMath.add(moment, 8 * 30 days);
      addLock(granted, unit_lock_amount, locktime);   // + 2 momths
      lock_flag = true;
      if(lock_flag){
        transfer(granted, value);
      }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newOperator","type":"address"}],"name":"OperatorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOperator","type":"address"}],"name":"OperatorRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"granted","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"expiresAt","type":"uint256"}],"name":"addLock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOperator","type":"address"}],"name":"addOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"granted","type":"address"},{"internalType":"uint8","name":"index","type":"uint8"}],"name":"deleteLock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"granted","type":"address"}],"name":"getLockedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"grantedLocks","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"expiresAt","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"granted","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"lockTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"noMoreOperator","type":"address"}],"name":"removeOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040526006805460ff191690553480156200001b57600080fd5b5060008054336001600160a01b0319918216811783556001805480820182559084527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805490921617905580546040516001600160a01b0390911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600080546040516001600160a01b03909116917fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d91a26002805460ff19169055620000ff336b09b18ab5df7180b6b80000006001600160e01b036200013816565b604080516b09b18ab5df7180b6b8000000815290513391600091600080516020620016dd8339815191529181900360200190a3620001fe565b6001600160a01b0382166200014c57600080fd5b6200016881600554620001e460201b620011861790919060201c565b6005556001600160a01b0382166000908152600360209081526040909120546200019d91839062001186620001e4821b17901c565b6001600160a01b0383166000818152600360209081526040808320949094558351858152935192939192600080516020620016dd8339815191529281900390910190a35050565b600082820183811015620001f757600080fd5b9392505050565b6114cf806200020e6000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80635c975abb1161010f5780639870d7fe116100a2578063ac8a584a11610071578063ac8a584a14610582578063cc9ac376146105a8578063dd62ed3e146105da578063f2fde38b14610608576101e5565b80639870d7fe146104e7578063a457c2d71461050d578063a9059cbb14610539578063ab3d047f14610565576101e5565b80638da5cb5b116100de5780638da5cb5b1461048d5780638f32d59b146104b1578063929ec537146104b957806395d89b41146104df576101e5565b80635c975abb1461044f57806370a08231146104575780637d64bcb41461047d5780638456cb5914610485576101e5565b8063313ce5671161018757806342966c681161015657806342966c68146103cf5780634456eda2146103ec5780634b0618cf146103f45780634bc18a6414610420576101e5565b8063313ce5671461034c578063395093511461036d5780633f4ba83a1461039957806340c10f19146103a3576101e5565b80630ab1b3c1116101c35780630ab1b3c1146102af57806318160ddd146102f457806323b872dd1461030e5780632ff2e9dc14610344576101e5565b806305d2035b146101ea57806306fdde0314610206578063095ea7b314610283575b600080fd5b6101f261062e565b604080519115158252519081900360200190f35b61020e610637565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610248578181015183820152602001610230565b50505050905090810190601f1680156102755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f26004803603604081101561029957600080fd5b506001600160a01b038135169060200135610661565b6102db600480360360408110156102c557600080fd5b506001600160a01b038135169060200135610689565b6040805192835260208301919091528051918290030190f35b6102fc6106c2565b60408051918252519081900360200190f35b6101f26004803603606081101561032457600080fd5b506001600160a01b038135811691602081013590911690604001356106c9565b6102fc6106fb565b61035461070b565b6040805163ffffffff9092168252519081900360200190f35b6101f26004803603604081101561038357600080fd5b506001600160a01b038135169060200135610710565b6103a1610763565b005b6101f2600480360360408110156103b957600080fd5b506001600160a01b0381351690602001356107d0565b6101f2600480360360208110156103e557600080fd5b503561080e565b6101f2610844565b6103a16004803603604081101561040a57600080fd5b506001600160a01b038135169060200135610854565b6103a16004803603604081101561043657600080fd5b5080356001600160a01b0316906020013560ff16610933565b6101f2610a9a565b6102fc6004803603602081101561046d57600080fd5b50356001600160a01b0316610aa3565b6101f2610abe565b6103a1610b2e565b610495610b9f565b604080516001600160a01b039092168252519081900360200190f35b6101f2610bae565b6102fc600480360360208110156104cf57600080fd5b50356001600160a01b0316610bbf565b61020e610c7c565b6103a1600480360360208110156104fd57600080fd5b50356001600160a01b0316610c9b565b6101f26004803603604081101561052357600080fd5b506001600160a01b038135169060200135610d49565b6101f26004803603604081101561054f57600080fd5b506001600160a01b038135169060200135610d97565b6104956004803603602081101561057b57600080fd5b5035610dbf565b6103a16004803603602081101561059857600080fd5b50356001600160a01b0316610df8565b6103a1600480360360608110156105be57600080fd5b506001600160a01b038135169060208101359060400135610f49565b6102fc600480360360408110156105f057600080fd5b506001600160a01b0381358116916020013516610fd2565b6103a16004803603602081101561061e57600080fd5b50356001600160a01b0316610ffd565b60065460ff1681565b6040518060400160405280600e81526020016d21329023b0b6b4b7339021b7b4b760911b81525081565b60025460009060ff161561067457600080fd5b61067f33848461107c565b5060015b92915050565b600760205281600052604060002081815481106106a257fe5b600091825260209091206002909102018054600190910154909250905082565b6005545b90565b60025460009060ff16156106dc57600080fd5b6106e68483611104565b6106f1848484611140565b5060019392505050565b6b09b18ab5df7180b6b800000081565b601281565b60025460009060ff161561072357600080fd5b3360008181526004602090815260408083206001600160a01b038816845290915290205461067f9190859061075e908663ffffffff61118616565b61107c565b61076b610bae565b806107795750610779610844565b61078257600080fd5b60025460ff1661079157600080fd5b6002805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b60025460009060ff16156107e357600080fd5b6107eb610bae565b6107f457600080fd5b60065460ff161561080457600080fd5b61067f838361119f565b60025460009060ff161561082157600080fd5b610829610bae565b61083257600080fd5b61083b82611249565b5060015b919050565b600061084f336112cc565b905090565b61085c610bae565b8061086a575061086a610844565b61087357600080fd5b60008061088183600a611327565b90506000610890826004611349565b9050600061089e8583611370565b905080820185146108ae57600080fd5b4260006108be82624f1a00611186565b90506108cb888683610f49565b6108d882629e3400611186565b90506108e5888683610f49565b6108f28262ed4e00611186565b90506108ff888683610f49565b61090d8263013c6800611186565b905061091a888683610f49565b600195506109288888610d97565b505050505050505050565b61093b610bae565b806109495750610949610844565b61095257600080fd5b6001600160a01b03821660009081526007602052604090205460ff82161061097957600080fd5b6001600160a01b03821660009081526007602052604090205460018114156109c1576001600160a01b03831660009081526007602052604081206109bc91611452565b610a95565b8160ff166001820314610a56576001600160a01b0383166000908152600760205260409020805460001983019081106109f657fe5b906000526020600020906002020160076000856001600160a01b03166001600160a01b031681526020019081526020016000208360ff1681548110610a3757fe5b6000918252602090912082546002909202019081556001918201549101555b6001600160a01b038316600090815260076020526040902080546000198301908110610a7e57fe5b600091825260208220600290910201818155600101555b505050565b60025460ff1690565b6001600160a01b031660009081526003602052604090205490565b60025460009060ff1615610ad157600080fd5b610ad9610bae565b610ae257600080fd5b60065460ff1615610af257600080fd5b6006805460ff191660011790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a150600190565b610b36610bae565b80610b445750610b44610844565b610b4d57600080fd5b60025460ff1615610b5d57600080fd5b6002805460ff191660011790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6001600160a01b0381166000908152600760205260408120548190815b81811015610c73576001600160a01b0385166000908152600760205260409020805482908110610c0857fe5b906000526020600020906002020160010154421015610c6b576001600160a01b03851660009081526007602052604090208054610c68919083908110610c4a57fe5b6000918252602090912060029091020154849063ffffffff61118616565b92505b600101610bdc565b50909392505050565b6040518060400160405280600381526020016242474360e81b81525081565b610ca3610bae565b610cac57600080fd5b6001600160a01b038116610cbf57600080fd5b610cc8816112cc565b15610cd257600080fd5b60018054808201825560009182527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b03841690811790915560405190917fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d91a250565b60025460009060ff1615610d5c57600080fd5b3360008181526004602090815260408083206001600160a01b038816845290915290205461067f9190859061075e908663ffffffff61137016565b60025460009060ff1615610daa57600080fd5b610db43383611104565b61067f338484611385565b6001546000908210610dd057600080fd5b60018281548110610ddd57fe5b6000918252602090912001546001600160a01b031692915050565b610e00610bae565b610e0957600080fd5b6001600160a01b038116610e1c57600080fd5b610e25816112cc565b610e2e57600080fd5b6001548060005b82811015610e7b57836001600160a01b031660018281548110610e5457fe5b6000918252602090912001546001600160a01b03161415610e73578091505b600101610e35565b50818114610a95578160011415610eb957600180830381548110610e9b57fe5b600091825260209091200180546001600160a01b0319169055610a95565b600180830381548110610ec857fe5b600091825260209091200154600180546001600160a01b039092169183908110610eee57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180830381548110610f2b57fe5b600091825260209091200180546001600160a01b0319169055505050565b610f51610bae565b80610f5f5750610f5f610844565b610f6857600080fd5b60008211610f7557600080fd5b428111610f8157600080fd5b6001600160a01b039092166000908152600760209081526040808320815180830190925293815280820194855283546001818101865594845291909220915160029091029091019081559151910155565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b611005610bae565b61100e57600080fd5b6001600160a01b03811661102157600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03821661108f57600080fd5b6001600160a01b0383166110a257600080fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600061110f83610bbf565b9050600061111c84610aa3565b90508261112f828463ffffffff61137016565b101561113a57600080fd5b50505050565b61114b838383611385565b6001600160a01b038316600090815260046020908152604080832033808552925290912054610a9591859161075e908563ffffffff61137016565b60008282018381101561119857600080fd5b9392505050565b6001600160a01b0382166111b257600080fd5b6005546111c5908263ffffffff61118616565b6005556001600160a01b0382166000908152600360205260409020546111f1908263ffffffff61118616565b6001600160a01b03831660008181526003602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60055461125c908263ffffffff61137016565b6005553360009081526003602052604090205461127f908263ffffffff61137016565b336000818152600360209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a350565b6000805b60015481101561131e57826001600160a01b0316600182815481106112f157fe5b6000918252602090912001546001600160a01b0316141561131657600191505061083f565b6001016112d0565b50600092915050565b600080821161133557600080fd5b600082848161134057fe5b04949350505050565b60008261135857506000610683565b8282028284828161136557fe5b041461119857600080fd5b60008282111561137f57600080fd5b50900390565b6001600160a01b03821661139857600080fd5b6001600160a01b0383166000908152600360205260409020546113c1908263ffffffff61137016565b6001600160a01b0380851660009081526003602052604080822093909355908416815220546113f6908263ffffffff61118616565b6001600160a01b0380841660008181526003602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b50805460008255600202906000526020600020908101906114739190611476565b50565b6106c691905b80821115611496576000808255600182015560020161147c565b509056fea265627a7a72315820754ad8978f4ea4cd1f467713c083eb78174d65f4910f30711b15008cef84c76a64736f6c63430005110032ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80635c975abb1161010f5780639870d7fe116100a2578063ac8a584a11610071578063ac8a584a14610582578063cc9ac376146105a8578063dd62ed3e146105da578063f2fde38b14610608576101e5565b80639870d7fe146104e7578063a457c2d71461050d578063a9059cbb14610539578063ab3d047f14610565576101e5565b80638da5cb5b116100de5780638da5cb5b1461048d5780638f32d59b146104b1578063929ec537146104b957806395d89b41146104df576101e5565b80635c975abb1461044f57806370a08231146104575780637d64bcb41461047d5780638456cb5914610485576101e5565b8063313ce5671161018757806342966c681161015657806342966c68146103cf5780634456eda2146103ec5780634b0618cf146103f45780634bc18a6414610420576101e5565b8063313ce5671461034c578063395093511461036d5780633f4ba83a1461039957806340c10f19146103a3576101e5565b80630ab1b3c1116101c35780630ab1b3c1146102af57806318160ddd146102f457806323b872dd1461030e5780632ff2e9dc14610344576101e5565b806305d2035b146101ea57806306fdde0314610206578063095ea7b314610283575b600080fd5b6101f261062e565b604080519115158252519081900360200190f35b61020e610637565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610248578181015183820152602001610230565b50505050905090810190601f1680156102755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f26004803603604081101561029957600080fd5b506001600160a01b038135169060200135610661565b6102db600480360360408110156102c557600080fd5b506001600160a01b038135169060200135610689565b6040805192835260208301919091528051918290030190f35b6102fc6106c2565b60408051918252519081900360200190f35b6101f26004803603606081101561032457600080fd5b506001600160a01b038135811691602081013590911690604001356106c9565b6102fc6106fb565b61035461070b565b6040805163ffffffff9092168252519081900360200190f35b6101f26004803603604081101561038357600080fd5b506001600160a01b038135169060200135610710565b6103a1610763565b005b6101f2600480360360408110156103b957600080fd5b506001600160a01b0381351690602001356107d0565b6101f2600480360360208110156103e557600080fd5b503561080e565b6101f2610844565b6103a16004803603604081101561040a57600080fd5b506001600160a01b038135169060200135610854565b6103a16004803603604081101561043657600080fd5b5080356001600160a01b0316906020013560ff16610933565b6101f2610a9a565b6102fc6004803603602081101561046d57600080fd5b50356001600160a01b0316610aa3565b6101f2610abe565b6103a1610b2e565b610495610b9f565b604080516001600160a01b039092168252519081900360200190f35b6101f2610bae565b6102fc600480360360208110156104cf57600080fd5b50356001600160a01b0316610bbf565b61020e610c7c565b6103a1600480360360208110156104fd57600080fd5b50356001600160a01b0316610c9b565b6101f26004803603604081101561052357600080fd5b506001600160a01b038135169060200135610d49565b6101f26004803603604081101561054f57600080fd5b506001600160a01b038135169060200135610d97565b6104956004803603602081101561057b57600080fd5b5035610dbf565b6103a16004803603602081101561059857600080fd5b50356001600160a01b0316610df8565b6103a1600480360360608110156105be57600080fd5b506001600160a01b038135169060208101359060400135610f49565b6102fc600480360360408110156105f057600080fd5b506001600160a01b0381358116916020013516610fd2565b6103a16004803603602081101561061e57600080fd5b50356001600160a01b0316610ffd565b60065460ff1681565b6040518060400160405280600e81526020016d21329023b0b6b4b7339021b7b4b760911b81525081565b60025460009060ff161561067457600080fd5b61067f33848461107c565b5060015b92915050565b600760205281600052604060002081815481106106a257fe5b600091825260209091206002909102018054600190910154909250905082565b6005545b90565b60025460009060ff16156106dc57600080fd5b6106e68483611104565b6106f1848484611140565b5060019392505050565b6b09b18ab5df7180b6b800000081565b601281565b60025460009060ff161561072357600080fd5b3360008181526004602090815260408083206001600160a01b038816845290915290205461067f9190859061075e908663ffffffff61118616565b61107c565b61076b610bae565b806107795750610779610844565b61078257600080fd5b60025460ff1661079157600080fd5b6002805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b60025460009060ff16156107e357600080fd5b6107eb610bae565b6107f457600080fd5b60065460ff161561080457600080fd5b61067f838361119f565b60025460009060ff161561082157600080fd5b610829610bae565b61083257600080fd5b61083b82611249565b5060015b919050565b600061084f336112cc565b905090565b61085c610bae565b8061086a575061086a610844565b61087357600080fd5b60008061088183600a611327565b90506000610890826004611349565b9050600061089e8583611370565b905080820185146108ae57600080fd5b4260006108be82624f1a00611186565b90506108cb888683610f49565b6108d882629e3400611186565b90506108e5888683610f49565b6108f28262ed4e00611186565b90506108ff888683610f49565b61090d8263013c6800611186565b905061091a888683610f49565b600195506109288888610d97565b505050505050505050565b61093b610bae565b806109495750610949610844565b61095257600080fd5b6001600160a01b03821660009081526007602052604090205460ff82161061097957600080fd5b6001600160a01b03821660009081526007602052604090205460018114156109c1576001600160a01b03831660009081526007602052604081206109bc91611452565b610a95565b8160ff166001820314610a56576001600160a01b0383166000908152600760205260409020805460001983019081106109f657fe5b906000526020600020906002020160076000856001600160a01b03166001600160a01b031681526020019081526020016000208360ff1681548110610a3757fe5b6000918252602090912082546002909202019081556001918201549101555b6001600160a01b038316600090815260076020526040902080546000198301908110610a7e57fe5b600091825260208220600290910201818155600101555b505050565b60025460ff1690565b6001600160a01b031660009081526003602052604090205490565b60025460009060ff1615610ad157600080fd5b610ad9610bae565b610ae257600080fd5b60065460ff1615610af257600080fd5b6006805460ff191660011790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a150600190565b610b36610bae565b80610b445750610b44610844565b610b4d57600080fd5b60025460ff1615610b5d57600080fd5b6002805460ff191660011790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6001600160a01b0381166000908152600760205260408120548190815b81811015610c73576001600160a01b0385166000908152600760205260409020805482908110610c0857fe5b906000526020600020906002020160010154421015610c6b576001600160a01b03851660009081526007602052604090208054610c68919083908110610c4a57fe5b6000918252602090912060029091020154849063ffffffff61118616565b92505b600101610bdc565b50909392505050565b6040518060400160405280600381526020016242474360e81b81525081565b610ca3610bae565b610cac57600080fd5b6001600160a01b038116610cbf57600080fd5b610cc8816112cc565b15610cd257600080fd5b60018054808201825560009182527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b03841690811790915560405190917fac6fa858e9350a46cec16539926e0fde25b7629f84b5a72bffaae4df888ae86d91a250565b60025460009060ff1615610d5c57600080fd5b3360008181526004602090815260408083206001600160a01b038816845290915290205461067f9190859061075e908663ffffffff61137016565b60025460009060ff1615610daa57600080fd5b610db43383611104565b61067f338484611385565b6001546000908210610dd057600080fd5b60018281548110610ddd57fe5b6000918252602090912001546001600160a01b031692915050565b610e00610bae565b610e0957600080fd5b6001600160a01b038116610e1c57600080fd5b610e25816112cc565b610e2e57600080fd5b6001548060005b82811015610e7b57836001600160a01b031660018281548110610e5457fe5b6000918252602090912001546001600160a01b03161415610e73578091505b600101610e35565b50818114610a95578160011415610eb957600180830381548110610e9b57fe5b600091825260209091200180546001600160a01b0319169055610a95565b600180830381548110610ec857fe5b600091825260209091200154600180546001600160a01b039092169183908110610eee57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600180830381548110610f2b57fe5b600091825260209091200180546001600160a01b0319169055505050565b610f51610bae565b80610f5f5750610f5f610844565b610f6857600080fd5b60008211610f7557600080fd5b428111610f8157600080fd5b6001600160a01b039092166000908152600760209081526040808320815180830190925293815280820194855283546001818101865594845291909220915160029091029091019081559151910155565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b611005610bae565b61100e57600080fd5b6001600160a01b03811661102157600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03821661108f57600080fd5b6001600160a01b0383166110a257600080fd5b6001600160a01b03808416600081815260046020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600061110f83610bbf565b9050600061111c84610aa3565b90508261112f828463ffffffff61137016565b101561113a57600080fd5b50505050565b61114b838383611385565b6001600160a01b038316600090815260046020908152604080832033808552925290912054610a9591859161075e908563ffffffff61137016565b60008282018381101561119857600080fd5b9392505050565b6001600160a01b0382166111b257600080fd5b6005546111c5908263ffffffff61118616565b6005556001600160a01b0382166000908152600360205260409020546111f1908263ffffffff61118616565b6001600160a01b03831660008181526003602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60055461125c908263ffffffff61137016565b6005553360009081526003602052604090205461127f908263ffffffff61137016565b336000818152600360209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a350565b6000805b60015481101561131e57826001600160a01b0316600182815481106112f157fe5b6000918252602090912001546001600160a01b0316141561131657600191505061083f565b6001016112d0565b50600092915050565b600080821161133557600080fd5b600082848161134057fe5b04949350505050565b60008261135857506000610683565b8282028284828161136557fe5b041461119857600080fd5b60008282111561137f57600080fd5b50900390565b6001600160a01b03821661139857600080fd5b6001600160a01b0383166000908152600360205260409020546113c1908263ffffffff61137016565b6001600160a01b0380851660009081526003602052604080822093909355908416815220546113f6908263ffffffff61118616565b6001600160a01b0380841660008181526003602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b50805460008255600202906000526020600020908101906114739190611476565b50565b6106c691905b80821115611496576000808255600182015560020161147c565b509056fea265627a7a72315820754ad8978f4ea4cd1f467713c083eb78174d65f4910f30711b15008cef84c76a64736f6c63430005110032

Deployed Bytecode Sourcemap

18273:1441:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18273:1441:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13989:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;18315:46;;;:::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;18315:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9071:149;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9071:149:0;;;;;;;;:::i;15427:47::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;15427:47:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7292:82;;;:::i;:::-;;;;;;;;;;;;;;;;16134:196;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;16134:196:0;;;;;;;;;;;;;;;;;:::i;18451:51::-;;;:::i;18408:36::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10349:204;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10349:204:0;;;;;;;;:::i;5357:117::-;;;:::i;:::-;;14342:141;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14342:141:0;;;;;;;;:::i;15031:115::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15031:115:0;;:::i;2491:92::-;;;:::i;18728:983::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18728:983:0;;;;;;;;:::i;16911:420::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16911:420:0;;-1:-1:-1;;;;;16911:420:0;;;;;;;;:::i;4661:72::-;;;:::i;7582:97::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7582:97:0;-1:-1:-1;;;;;7582:97:0;;:::i;14606:158::-;;;:::i;5153:115::-;;;:::i;1605:73::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1605:73:0;;;;;;;;;;;;;;2315:86;;;:::i;17840:360::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17840:360:0;-1:-1:-1;;;;;17840:360:0;;:::i;18366:37::-;;;:::i;3368:221::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3368:221:0;-1:-1:-1;;;;;3368:221:0;;:::i;11071:214::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11071:214:0;;;;;;;;:::i;15666:186::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;15666:186:0;;;;;;;;:::i;1758:136::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1758:136:0;;:::i;3704:558::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3704:558:0;-1:-1:-1;;;;;3704:558:0;;:::i;16553:213::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;16553:213:0;;;;;;;;;;;;;:::i;8006:122::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8006:122:0;;;;;;;;;;:::i;3074:182::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3074:182:0;-1:-1:-1;;;;;3074:182:0;;:::i;13989:35::-;;;;;;:::o;18315:46::-;;;;;;;;;;;;;;-1:-1:-1;;;18315:46:0;;;;:::o;9071:149::-;4882:7;;9147:4;;4882:7;;4881:8;4873:17;;;;;;9160:36;9169:10;9181:7;9190:5;9160:8;:36::i;:::-;-1:-1:-1;9210:4:0;4897:1;9071:149;;;;:::o;15427:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15427:47:0;-1:-1:-1;15427:47:0;:::o;7292:82::-;7356:12;;7292:82;;:::o;16134:196::-;4882:7;;16224:4;;4882:7;;4881:8;4873:17;;;;;;16237:32;16257:4;16263:5;16237:19;:32::i;:::-;16276:30;16290:4;16296:2;16300:5;16276:13;:30::i;:::-;-1:-1:-1;16320:4:0;16134:196;;;;;:::o;18451:51::-;18489:13;18451:51;:::o;18408:36::-;18442:2;18408:36;:::o;10349:204::-;4882:7;;10440:4;;4882:7;;4881:8;4873:17;;;;;;10462:10;10483:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;10483:29:0;;;;;;;;;;10453:76;;10462:10;10474:7;;10483:45;;10517:10;10483:45;:33;:45;:::i;:::-;10453:8;:76::i;5357:117::-;2186:9;:7;:9::i;:::-;:25;;;;2199:12;:10;:12::i;:::-;2178:34;;;;;;5045:7;;;;5037:16;;;;;;5421:7;:15;;-1:-1:-1;;5421:15:0;;;5448:20;;;5457:10;5448:20;;;;;;;;;;;;;5357:117::o;14342:141::-;4882:7;;14429:4;;4882:7;;4881:8;4873:17;;;;;;2017:9;:7;:9::i;:::-;2009:18;;;;;;14066:15;;;;14065:16;14057:25;;;;;;14442:17;14448:2;14452:6;14442:5;:17::i;15031:115::-;4882:7;;15097:4;;4882:7;;4881:8;4873:17;;;;;;2017:9;:7;:9::i;:::-;2009:18;;;;;;15110:12;15116:5;15110;:12::i;:::-;-1:-1:-1;15136:4:0;2034:1;15031:115;;;:::o;2491:92::-;2534:4;2554:23;2566:10;2554:11;:23::i;:::-;2547:30;;2491:92;:::o;18728:983::-;2186:9;:7;:9::i;:::-;:25;;;;2199:12;:10;:12::i;:::-;2178:34;;;;;;18815:14;;18870:23;18883:5;18890:2;18870:12;:23::i;:::-;18846:47;;18902:22;18927:33;18940:16;18958:1;18927:12;:33::i;:::-;18902:58;;18969:18;18990:38;19003:5;19010:17;18990:12;:38::i;:::-;18969:59;;19074:13;19054:17;:33;19045:5;:42;19037:51;;;;;;19111:3;19097:11;19146:33;19111:3;19167:11;19146:12;:33::i;:::-;19130:49;;19188:44;19196:7;19205:16;19223:8;19188:7;:44::i;:::-;19268:33;19281:6;19289:11;19268:12;:33::i;:::-;19257:44;;19310;19318:7;19327:16;19345:8;19310:7;:44::i;:::-;19390:33;19403:6;19411:11;19390:12;:33::i;:::-;19379:44;;19432;19440:7;19449:16;19467:8;19432:7;:44::i;:::-;19512:33;19525:6;19533:11;19512:12;:33::i;:::-;19501:44;;19554;19562:7;19571:16;19589:8;19554:7;:44::i;:::-;19635:4;;-1:-1:-1;19672:24:0;19681:7;19690:5;19672:8;:24::i;:::-;;2219:1;;;;;;18728:983;;:::o;16911:420::-;2186:9;:7;:9::i;:::-;:25;;;;2199:12;:10;:12::i;:::-;2178:34;;;;;;-1:-1:-1;;;;;17003:21:0;;;;;;:12;:21;;;;;:28;:36;;;-1:-1:-1;16995:45:0;;;;;;-1:-1:-1;;;;;17060:21:0;;17049:8;17060:21;;;:12;:21;;;;;:28;17106:1;17099:8;;17095:231;;;-1:-1:-1;;;;;17125:21:0;;;;;;:12;:21;;;;;17118:28;;;:::i;:::-;17095:231;;;17184:5;17173:16;;17179:1;17173:3;:7;:16;17169:104;;-1:-1:-1;;;;;17233:21:0;;;;;;:12;:21;;;;;:30;;-1:-1:-1;;17255:7:0;;;17233:30;;;;;;;;;;;;;;;;17202:12;:21;17215:7;-1:-1:-1;;;;;17202:21:0;-1:-1:-1;;;;;17202:21:0;;;;;;;;;;;;17224:5;17202:28;;;;;;;;;;;;;;;;;;:61;;:28;;;;;:61;;;;;;;;;;;17169:104;-1:-1:-1;;;;;17288:21:0;;;;;;:12;:21;;;;;:30;;-1:-1:-1;;17310:7:0;;;17288:30;;;;;;;;;;;;;;;;;;17281:37;;;;;;17095:231;2219:1;16911:420;;:::o;4661:72::-;4720:7;;;;4661:72;:::o;7582:97::-;-1:-1:-1;;;;;7657:16:0;7637:4;7657:16;;;:9;:16;;;;;;;7582:97::o;14606:158::-;4882:7;;14679:4;;4882:7;;4881:8;4873:17;;;;;;2017:9;:7;:9::i;:::-;2009:18;;;;;;14066:15;;;;14065:16;14057:25;;;;;;14692:15;:22;;-1:-1:-1;;14692:22:0;14710:4;14692:22;;;14726:14;;;;14692:15;;14726:14;-1:-1:-1;14754:4:0;14606:158;:::o;5153:115::-;2186:9;:7;:9::i;:::-;:25;;;;2199:12;:10;:12::i;:::-;2178:34;;;;;;4882:7;;;;4881:8;4873:17;;;;;;5218:7;:14;;-1:-1:-1;;5218:14:0;5228:4;5218:14;;;5244:18;;;5251:10;5244:18;;;;;;;;;;;;;5153:115::o;1605:73::-;1643:7;1666:6;-1:-1:-1;;;;;1666:6:0;1605:73;:::o;2315:86::-;2355:4;2389:6;-1:-1:-1;;;;;2389:6:0;2375:10;:20;;2315:86::o;17840:360::-;-1:-1:-1;;;;;17956:21:0;;17902:4;17956:21;;;:12;:21;;;;;:28;17902:4;;;17991:178;18012:3;18008:1;:7;17991:178;;;-1:-1:-1;;;;;18041:21:0;;;;;;:12;:21;;;;;:24;;18063:1;;18041:24;;;;;;;;;;;;;;;;:34;;;18035:3;:40;18031:131;;;-1:-1:-1;;;;;18120:21:0;;;;;;:12;:21;;;;;:24;;18103:49;;18120:21;18142:1;;18120:24;;;;;;;;;;;;;;;;;;;:31;18103:12;;:49;:16;:49;:::i;:::-;18088:64;;18031:131;18017:3;;17991:178;;;-1:-1:-1;18182:12:0;;17840:360;-1:-1:-1;;;17840:360:0:o;18366:37::-;;;;;;;;;;;;;;-1:-1:-1;;;18366:37:0;;;;:::o;3368:221::-;2017:9;:7;:9::i;:::-;2009:18;;;;;;-1:-1:-1;;;;;3442:25:0;;3434:34;;;;;;3484:24;3496:11;3484;:24::i;:::-;3483:25;3475:34;;;;;;3518:9;27:10:-1;;23:18;;;45:23;;-1:-1;3518:27:0;;;;;;;-1:-1:-1;;;;;;3518:27:0;-1:-1:-1;;;;;3518:27:0;;;;;;;;3557:26;;3518:27;;3557:26;;;3368:221;:::o;11071:214::-;4882:7;;11167:4;;4882:7;;4881:8;4873:17;;;;;;11189:10;11210:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;11210:29:0;;;;;;;;;;11180:81;;11189:10;11201:7;;11210:50;;11244:15;11210:50;:33;:50;:::i;15666:186::-;4882:7;;15738:4;;4882:7;;4881:8;4873:17;;;;;;15751:38;15771:10;15783:5;15751:19;:38::i;:::-;15796:32;15806:10;15818:2;15822:5;15796:9;:32::i;1758:136::-;1833:9;:16;1809:7;;1833:24;-1:-1:-1;1825:33:0;;;;;;1872:9;1882:5;1872:16;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1872:16:0;;1758:136;-1:-1:-1;;1758:136:0:o;3704:558::-;2017:9;:7;:9::i;:::-;2009:18;;;;;;-1:-1:-1;;;;;3784:28:0;;3776:37;;;;;;3828:27;3840:14;3828:11;:27::i;:::-;3820:36;;;;;;3876:9;:16;;3865:8;3922:120;3942:3;3938:1;:7;3922:120;;;3983:14;-1:-1:-1;;;;;3967:30:0;:9;3977:1;3967:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3967:12:0;:30;3963:72;;;4022:1;4014:9;;3963:72;3947:3;;3922:120;;;;4065:3;4056:5;:12;4053:204;;4084:3;4091:1;4084:8;4080:170;;;4114:9;4130:1;4124:3;:7;4114:18;;;;;;;;;;;;;;;;;4107:25;;-1:-1:-1;;;;;;4107:25:0;;;4080:170;;;4182:9;4198:1;4192:3;:7;4182:18;;;;;;;;;;;;;;;;;;;4163:16;;-1:-1:-1;;;;;4182:18:0;;;;4173:5;;4163:16;;;;;;;;;;;;;;:37;;;;;-1:-1:-1;;;;;4163:37:0;;;;;-1:-1:-1;;;;;4163:37:0;;;;;;4220:9;4236:1;4230:3;:7;4220:18;;;;;;;;;;;;;;;;;4213:25;;-1:-1:-1;;;;;;4213:25:0;;;2034:1;;3704:558;:::o;16553:213::-;2186:9;:7;:9::i;:::-;:25;;;;2199:12;:10;:12::i;:::-;2178:34;;;;;;16667:1;16658:6;:10;16650:19;;;;;;16696:3;16684:9;:15;16676:24;;;;;;-1:-1:-1;;;;;16709:21:0;;;;;;;:12;:21;;;;;;;;16736:23;;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;16709:51:0;;;;;;;;;;;;;;;;;;;;;;;;16553:213::o;8006:122::-;-1:-1:-1;;;;;8098:15:0;;;8078:4;8098:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;8006:122::o;3074:182::-;2017:9;:7;:9::i;:::-;2009:18;;;;;;-1:-1:-1;;;;;3151:22:0;;3143:31;;;;;;3209:6;;;3188:38;;-1:-1:-1;;;;;3188:38:0;;;;3209:6;;;3188:38;;;3233:6;:17;;-1:-1:-1;;;;;;3233:17:0;-1:-1:-1;;;;;3233:17:0;;;;;;;;;;3074:182::o;13605:233::-;-1:-1:-1;;;;;13691:21:0;;13683:30;;;;;;-1:-1:-1;;;;;13728:19:0;;13720:28;;;;;;-1:-1:-1;;;;;13757:15:0;;;;;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;:32;;;13801:31;;;;;;;;;;;;;;;;;13605:233;;;:::o;17462:224::-;17538:17;17558:21;17574:4;17558:15;:21::i;:::-;17538:41;;17586:18;17607:15;17617:4;17607:9;:15::i;:::-;17586:36;-1:-1:-1;17674:5:0;17639:31;17586:36;17657:12;17639:31;:17;:31;:::i;:::-;:40;;17631:49;;;;;;17462:224;;;;:::o;12204:181::-;12281:26;12291:4;12297:2;12301:5;12281:9;:26::i;:::-;-1:-1:-1;;;;;12341:14:0;;;;;;:8;:14;;;;;;;;12329:10;12341:26;;;;;;;;;12314:65;;12323:4;;12341:37;;12372:5;12341:37;:30;:37;:::i;6544:124::-;6596:4;6618:5;;;6638:6;;;;6630:15;;;;;;6661:1;6544:124;-1:-1:-1;;;6544:124:0:o;12727:248::-;-1:-1:-1;;;;;12795:21:0;;12787:30;;;;;;12841:12;;:23;;12858:5;12841:23;:16;:23;:::i;:::-;12826:12;:38;-1:-1:-1;;;;;12892:18:0;;;;;;:9;:18;;;;;;:29;;12915:5;12892:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;12871:18:0;;;;;;:9;:18;;;;;;;;:50;;;;12933:36;;;;;;;12871:18;;;;12933:36;;;;;;;;;;12727:248;;:::o;13140:201::-;13198:12;;:23;;13215:5;13198:23;:16;:23;:::i;:::-;13183:12;:38;13262:10;13252:21;;;;:9;:21;;;;;;:32;;13278:5;13252:32;:25;:32;:::i;:::-;13238:10;13228:21;;;;:9;:21;;;;;;;;:56;;;;13296:39;;;;;;;13228:21;;13296:39;;;;;;;;;;;13140:201;:::o;2679:225::-;2740:4;;2753:127;2773:9;:16;2769:20;;2753:127;;;2826:7;-1:-1:-1;;;;;2810:23:0;:9;2820:1;2810:12;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2810:12:0;:23;2807:66;;;2857:4;2850:11;;;;;2807:66;2791:3;;2753:127;;;-1:-1:-1;2893:5:0;;2679:225;-1:-1:-1;;2679:225:0:o;5959:269::-;6011:4;6099:1;6095;:5;6087:14;;;;;;6108:6;6121:1;6117;:5;;;;;;;5959:269;-1:-1:-1;;;;5959:269:0:o;5695:173::-;5747:4;5764:6;5760:37;;-1:-1:-1;5788:1:0;5781:8;;5760:37;5814:5;;;5818:1;5814;:5;:1;5834:5;;;;;:10;5826:19;;;;;6349:124;6401:4;6427:1;6422;:6;;6414:15;;;;;;-1:-1:-1;6445:5:0;;;6349:124::o;11504:241::-;-1:-1:-1;;;;;11585:16:0;;11577:25;;;;;;-1:-1:-1;;;;;11629:15:0;;;;;;:9;:15;;;;;;:26;;11649:5;11629:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;11611:15:0;;;;;;;:9;:15;;;;;;:44;;;;11678:13;;;;;;;:24;;11696:5;11678:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;11662:13:0;;;;;;;:9;:13;;;;;;;;;:40;;;;11714:25;;;;;;;11662:13;;11714:25;;;;;;;;;;;;;11504:241;;;:::o;18273:1441::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

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