ETH Price: $3,353.67 (-1.04%)

Token

ELF (ELF)
 

Overview

Max Total Supply

879,999,999.98646580876719028 ELF

Holders

51,023 (0.00%)

Market

Price

$0.44 @ 0.000132 ETH (-2.96%)

Onchain Market Cap

$390,130,399.99

Circulating Supply Market Cap

$326,422,251.00

Other Info

Token Contract (WITH 18 Decimals)

Balance
1 ELF

Value
$0.44 ( ~0.000131199702315954 Eth) [0.0000%]
0x826f51b323e83f2e2799055b7e39b1661a056059
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

elf is a decentralized self-evolving cloud computing blockchain network that aims to provide a high performance platform for commercial adoption of blockchain.

Profitability / Loss

Since Initial Offer Price
:$0.10 347.81% |ETH 0.00022 40%

Market

Volume (24H):$7,215,801.00
Market Capitalization:$326,422,251.00
Circulating Supply:736,294,130.00 ELF
Market Data Source: Coinmarketcap

ICO Information

ICO Start Date : Nov 28, 2017   
ICO End Date : Dec 10, 2017
Total Cap : $24,750,000
ICO Price  : $0.099 | 0.00022 ETH
Country : Singapore / China 

# Exchange Pair Price  24H Volume % Volume
1
Upbit
ELF-KRW$0.4512
0.0001346 Eth
$4,124,062.00
9,139,899.610 ELF
62.6979%
2
Binance
ELF-USDT$0.4432
0.0001322 Eth
$1,738,151.00
3,807,630.700 ELF
26.1196%
3
HTX
ELF-USDT$0.4438
0.0001324 Eth
$801,697.00
1,764,631.109 ELF
12.1050%
4
OKX
ELF-USDT$0.444
0.0001325 Eth
$691,138.00
1,510,995.840 ELF
10.3651%
5
Websea
ELF-USDT$0.4434
0.0001322 Eth
$678,568.00
0.000 ELF
0.0000%
6
Bitrue
ELF-USDT$0.4421
0.0001319 Eth
$512,027.00
1,158,168.000 ELF
7.9448%
7
Hotcoin
ELF-USDT$0.4433
0.0001323 Eth
$470,741.00
1,062,013.500 ELF
7.2852%
8
BitMart
ELF-USDT$0.444
0.0001325 Eth
$412,177.00
928,301.600 ELF
6.3680%
9
Bithumb
ELF-KRW$0.4499
0.0001342 Eth
$309,758.00
688,568.010 ELF
4.7234%
10
Phemex
ELF-USDT$0.4423
0.0001321 Eth
$296,730.00
670,881.890 ELF
4.6021%
11
CoinW
ELF-USDT$0.443
0.0001322 Eth
$261,276.00
589,820.496 ELF
4.0461%
12
AscendEX (BitMax)
ELF-USDT$0.446
0.0001330 Eth
$255,704.00
573,376.000 ELF
3.9332%
13
Bitget
ELF-USDT$0.4444
0.0001326 Eth
$234,736.00
516,313.000 ELF
3.5418%
14
CoinCatch
ELF-USDT$0.4434
0.0001322 Eth
$91,687.00
201,724.200 ELF
1.3838%
15
Binance
ELF-ETH$0.4433
0.0001322 Eth
$73,428.00
161,941.000 ELF
1.1109%
16
Ourbit
ELF-USDT$0.4431
0.0001322 Eth
$66,870.00
146,998.610 ELF
1.0084%
17
MEXC
ELF-USDT$0.4432
0.0001322 Eth
$65,688.00
148,221.030 ELF
1.0168%
18
Binance
ELF-BTC$0.4411
0.0001315 Eth
$63,638.00
140,648.000 ELF
0.9648%
19
BVOX
ELF-USDT$0.4432
0.0001322 Eth
$58,355.00
128,088.100 ELF
0.8787%
20
Tapbit
ELF-USDT$0.4431
0.0001322 Eth
$54,543.00
120,063.200 ELF
0.8236%
21
BingX
ELF-USDT$0.4441
0.0001325 Eth
$50,484.00
110,753.280 ELF
0.7597%
22
Gate.io
ELF-USDT$0.4435
0.0001323 Eth
$46,756.00
102,517.500 ELF
0.7033%
23
DigiFinex
ELF-USDT$0.443
0.0001322 Eth
$36,984.00
83,481.700 ELF
0.5727%
24
HTX
ELF-ETH$0.4426
0.0001320 Eth
$36,697.00
81,034.000 ELF
0.5559%
25
BloFin
ELF-USDT$0.4434
0.0001323 Eth
$35,223.00
77,444.500 ELF
0.5313%
26
LATOKEN
ELF-USDT$0.4431
0.0001321 Eth
$29,534.00
66,655.389 ELF
0.4572%
27
LATOKEN
ELF-BTC$0.4446
0.0001326 Eth
$28,327.00
63,706.118 ELF
0.4370%
28
HTX
ELF-BTC$0.4438
0.0001324 Eth
$27,511.00
60,910.000 ELF
0.4178%
29
Koinpark
ELF-USDT$0.4436
0.0001322 Eth
$20,622.00
46,490.684 ELF
0.3189%
30
Bittime
ELF-IDR$0.4462
0.0001330 Eth
$16,909.53
36,513.300 ELF
0.2505%
31
Bitvavo
ELF-EUR$0.4428
0.0001323 Eth
$15,439.29
34,866.522 ELF
0.2392%
32
Gate.io
ELF-ETH$0.4467
0.0001333 Eth
$15,022.62
33,498.520 ELF
0.2298%
33
MEXC
ELF-BTC$0.4467
0.0001331 Eth
$12,208.48
27,327.750 ELF
0.1875%
34
Pionex
ELF-USDT$0.4432
0.0001321 Eth
$11,883.84
26,024.021 ELF
0.1785%
35
KuCoin
ELF-USDT$0.4424
0.0001320 Eth
$10,451.41
23,623.537 ELF
0.1621%
36
MEXC
ELF-ETH$0.4466
0.0001332 Eth
$8,782.01
19,666.120 ELF
0.1349%
37
Bitrue
ELF-ETH$0.4444
0.0001326 Eth
$4,559.15
10,259.000 ELF
0.0704%
38
CoinEx
ELF-USDT$0.4431
0.0001321 Eth
$4,228.39
9,304.504 ELF
0.0638%
39
CoinEx
ELF-BTC$0.4451
0.0001328 Eth
$3,948.11
8,779.651 ELF
0.0602%
40
Tothemoon
ELF-USDT$0.4436
0.0001324 Eth
$3,871.55
8,727.200 ELF
0.0599%
41
Upbit Indonesia
ELF-BTC$0.4392
0.0001310 Eth
$3,835.36
8,731.811 ELF
0.0599%
42
WEEX
ELF-USDT$0.4419
0.0001320 Eth
$1,462.67
3,214.000 ELF
0.0220%
43
Nami.Exchange
ELF-USDT$0.4429
0.0001322 Eth
$1,406.75
3,175.941 ELF
0.0218%
44
Nami.Exchange
ELF-VNST$0.4406
0.0001314 Eth
$1,403.10
3,184.740 ELF
0.0218%
45
Uniswap V2 (Ethereum)
0XBF2179859FC6D5BEE9BF9158632DC51678A4100E-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$0.4533
0.0001352 Eth
$1,197.75
2,630.211 0XBF2179859FC6D5BEE9BF9158632DC51678A4100E
0.0180%
46
Bitrue
ELF-BTC$0.4431
0.0001324 Eth
$1,193.24
2,693.000 ELF
0.0185%
47
Upbit
ELF-BTC$0.4391
0.0001310 Eth
$1,018.97
2,320.577 ELF
0.0159%
48
Crypto.com Exchange
ELF-USD$0.4466
0.0001332 Eth
$1,011.97
2,266.000 ELF
0.0155%
49
KuCoin
ELF-BTC$0.4396
0.0001311 Eth
$620.59
1,411.872 ELF
0.0097%
50
Mudrex
ELF-USDT$0.4432
0.0001322 Eth
$548.64
1,237.973 ELF
0.0085%
51
CoinDCX
ELF-INR$0.4989
0.0001488 Eth
$243.36
0.000 ELF
0.0000%
52
OKX
ELF-USDC$0.4509
0.0001331 Eth
$146.08
324.000 ELF
0.0022%
53
PancakeSwap (v2)
0XA3F020A5C92E15BE13CAF0EE5C95CF79585EECC9-0X55D398326F99059FF775485246999027B3197955$0.4434
0.0001323 Eth
$110.07
248.018 0XA3F020A5C92E15BE13CAF0EE5C95CF79585EECC9
0.0017%
54
TokoCrypto
ELF-USDT$0.4438
0.0001323 Eth
$105.34
237.359 ELF
0.0016%
55
Bancor (V2)
ELF-BNT$0.4195
0.0001251 Eth
$62.87
149.870 ELF
0.0010%
56
TokoCrypto
ELF-ETH$0.4482
0.0001297 Eth
$50.58
112.854 ELF
0.0008%
57
GoPax
ELF-KRW$0.4655
0.0001388 Eth
$33.14
71.191 ELF
0.0005%
58
HitBTC
ELF-BTC$0.285
0.0000840 Eth
$24.39
85.600 ELF
0.0006%
59
HitBTC
ELF-USDT$0.2792
0.0000823 Eth
$23.90
85.600 ELF
0.0006%
60
Indodax
ELF-IDR$0.4451
0.0001328 Eth
$8.16
18.338 ELF
0.0001%

Contract Source Code Verified (Exact Match)

Contract Name:
AElfToken

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-12-18
*/

pragma solidity ^0.4.18;


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

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

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


/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


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


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


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


  /**
   * @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));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}

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

contract AElfToken is ERC20, Ownable {
  using SafeMath for uint256;

  
  // the controller of minting and destroying tokens
  address public aelfDevMultisig = 0x6d3E0B5abFc141cAa674a3c11e1580e6fff2a0B9;
  // the controller of approving of minting and withdraw tokens
  address public aelfCommunityMultisig = 0x4885B422656D4B316C9C7Abc0c0Ab31A2677d9f0;

  struct TokensWithLock {
    uint256 value;
    uint256 blockNumber;
  }
  // Balances for each account
  mapping(address => uint256) balances;
  // Tokens with time lock
  // Only when the tokens' blockNumber is less than current block number,
  // can the tokens be minted to the owner
  mapping(address => TokensWithLock) lockTokens;
  
  // Owner of account approves the transfer of an amount to another account
  mapping(address => mapping (address => uint256)) allowed;
  // Token Cap
  uint256 public totalSupplyCap = 1e27;
  // Token Info
  string public name = "ELF Token";
  string public symbol = "ELF";
  uint8 public decimals = 18;

  bool public mintingFinished = false;
  // the block number when deploy
  uint256 public deployBlockNumber = getCurrentBlockNumber();
  // the min threshold of lock time
  uint256 public constant TIMETHRESHOLD = 7200;
  // the time when mintTokensWithinTime can be called
  uint256 public constant MINTTIME = 216000;
  // the lock time of minted tokens
  uint256 public durationOfLock = 7200;
  // True if transfers are allowed
  bool public transferable = false;
  // True if the transferable can be change
  bool public canSetTransferable = true;


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

  modifier only(address _address) {
    require(msg.sender == _address);
    _;
  }

  modifier nonZeroAddress(address _address) {
    require(_address != address(0));
    _;
  }

  modifier canTransfer() {
    require(transferable == true);
    _;
  }

  event SetDurationOfLock(address indexed _caller);
  event ApproveMintTokens(address indexed _owner, uint256 _amount);
  event WithdrawMintTokens(address indexed _owner, uint256 _amount);
  event MintTokens(address indexed _owner, uint256 _amount);
  event BurnTokens(address indexed _owner, uint256 _amount);
  event MintFinished(address indexed _caller);
  event SetTransferable(address indexed _address, bool _transferable);
  event SetAElfDevMultisig(address indexed _old, address indexed _new);
  event SetAElfCommunityMultisig(address indexed _old, address indexed _new);
  event DisableSetTransferable(address indexed _address, bool _canSetTransferable);

  /**
   * @dev transfer token for a specified address
   * @param _to The address to transfer to.
   * @param _value The amount to be transferred.
   */
  function transfer(address _to, uint256 _value) canTransfer public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[msg.sender]);

    // SafeMath.sub will throw if there is not enough balance.
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
    return true;
  }

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

  /**
   * @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 uint256 the amount of tokens to be transferred
   */
  function transferFrom(address _from, address _to, uint256 _value) canTransfer public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);

    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
    Transfer(_from, _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, uint256 _value) canTransfer public returns (bool) {
    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
    return true;
  }

  /**
   * @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 uint256 specifying the amount of tokens still available for the spender.
   */
  function allowance(address _owner, address _spender) public view returns (uint256) {
    return allowed[_owner][_spender];
  }

  /**
   * approve should be called when allowed[_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
   */
  function increaseApproval(address _spender, uint256 _addedValue) canTransfer public returns (bool) {
    allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

  function decreaseApproval(address _spender, uint256 _subtractedValue) canTransfer public returns (bool) {
    uint256 oldValue = allowed[msg.sender][_spender];
    if (_subtractedValue > oldValue) {
      allowed[msg.sender][_spender] = 0;
    } else {
      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
    }
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }
  /**
   * @dev Enables token holders to transfer their tokens freely if true
   * @param _transferable True if transfers are allowed
   */
  function setTransferable(bool _transferable) only(aelfDevMultisig) public {
    require(canSetTransferable == true);
    transferable = _transferable;
    SetTransferable(msg.sender, _transferable);
  }

  /**
   * @dev disable the canSetTransferable
   */
  function disableSetTransferable() only(aelfDevMultisig) public {
    transferable = true;
    canSetTransferable = false;
    DisableSetTransferable(msg.sender, false);
  }

  /**
   * @dev Set the aelfMultisig
   * @param _aelfDevMultisig The new aelfMultisig
   */
  function setAElfDevMultisig(address _aelfDevMultisig) only(aelfDevMultisig) nonZeroAddress(_aelfDevMultisig) public {
    aelfDevMultisig = _aelfDevMultisig;
    SetAElfDevMultisig(msg.sender, _aelfDevMultisig);
  }
  /**
   * @dev Set the aelfCommunityMultisig
   * @param _aelfCommunityMultisig The new aelfCommunityMultisig
   */
  function setAElfCommunityMultisig(address _aelfCommunityMultisig) only(aelfCommunityMultisig) nonZeroAddress(_aelfCommunityMultisig) public {
    aelfCommunityMultisig = _aelfCommunityMultisig;
    SetAElfCommunityMultisig(msg.sender, _aelfCommunityMultisig);
  }
  /**
   * @dev Set the duration of lock of tokens approved of minting
   * @param _durationOfLock the new duration of lock
   */
  function setDurationOfLock(uint256 _durationOfLock) canMint only(aelfCommunityMultisig) public {
    require(_durationOfLock >= TIMETHRESHOLD);
    durationOfLock = _durationOfLock;
    SetDurationOfLock(msg.sender);
  }
  /**
   * @dev Get the quantity of locked tokens
   * @param _owner The address of locked tokens
   * @return the quantity and the lock time of locked tokens
   */
   function getLockTokens(address _owner) nonZeroAddress(_owner) view public returns (uint256 value, uint256 blockNumber) {
     return (lockTokens[_owner].value, lockTokens[_owner].blockNumber);
   }

  /**
   * @dev Approve of minting `_amount` tokens that are assigned to `_owner`
   * @param _owner The address that will be assigned the new tokens
   * @param _amount The quantity of tokens approved of mintting
   * @return True if the tokens are approved of mintting correctly
   */
  function approveMintTokens(address _owner, uint256 _amount) nonZeroAddress(_owner) canMint only(aelfCommunityMultisig) public returns (bool) {
    require(_amount > 0);
    uint256 previousLockTokens = lockTokens[_owner].value;
    require(previousLockTokens + _amount >= previousLockTokens);
    uint256 curTotalSupply = totalSupply;
    require(curTotalSupply + _amount >= curTotalSupply); // Check for overflow
    require(curTotalSupply + _amount <= totalSupplyCap);  // Check for overflow of total supply cap
    uint256 previousBalanceTo = balanceOf(_owner);
    require(previousBalanceTo + _amount >= previousBalanceTo); // Check for overflow
    lockTokens[_owner].value = previousLockTokens.add(_amount);
    uint256 curBlockNumber = getCurrentBlockNumber();
    lockTokens[_owner].blockNumber = curBlockNumber.add(durationOfLock);
    ApproveMintTokens(_owner, _amount);
    return true;
  }
  /**
   * @dev Withdraw approval of minting `_amount` tokens that are assigned to `_owner`
   * @param _owner The address that will be withdrawn the tokens
   * @param _amount The quantity of tokens withdrawn approval of mintting
   * @return True if the tokens are withdrawn correctly
   */
  function withdrawMintTokens(address _owner, uint256 _amount) nonZeroAddress(_owner) canMint only(aelfCommunityMultisig) public returns (bool) {
    require(_amount > 0);
    uint256 previousLockTokens = lockTokens[_owner].value;
    require(previousLockTokens - _amount >= 0);
    lockTokens[_owner].value = previousLockTokens.sub(_amount);
    if (previousLockTokens - _amount == 0) {
      lockTokens[_owner].blockNumber = 0;
    }
    WithdrawMintTokens(_owner, _amount);
    return true;
  }
  /**
   * @dev Mints `_amount` tokens that are assigned to `_owner`
   * @param _owner The address that will be assigned the new tokens
   * @return True if the tokens are minted correctly
   */
  function mintTokens(address _owner) canMint only(aelfDevMultisig) nonZeroAddress(_owner) public returns (bool) {
    require(lockTokens[_owner].blockNumber <= getCurrentBlockNumber());
    uint256 _amount = lockTokens[_owner].value;
    uint256 curTotalSupply = totalSupply;
    require(curTotalSupply + _amount >= curTotalSupply); // Check for overflow
    require(curTotalSupply + _amount <= totalSupplyCap);  // Check for overflow of total supply cap
    uint256 previousBalanceTo = balanceOf(_owner);
    require(previousBalanceTo + _amount >= previousBalanceTo); // Check for overflow
    
    totalSupply = curTotalSupply.add(_amount);
    balances[_owner] = previousBalanceTo.add(_amount);
    lockTokens[_owner].value = 0;
    lockTokens[_owner].blockNumber = 0;
    MintTokens(_owner, _amount);
    Transfer(0, _owner, _amount);
    return true;
  }
  /**
   * @dev Mints `_amount` tokens that are assigned to `_owner` within one day after deployment
   * the tokens minted will be added to balance immediately
   * @param _owner The address that will be assigned the new tokens
   * @param _amount The quantity of tokens withdrawn minted
   * @return True if the tokens are minted correctly
   */
  function mintTokensWithinTime(address _owner, uint256 _amount) nonZeroAddress(_owner) canMint only(aelfDevMultisig) public returns (bool) {
    require(_amount > 0);
    require(getCurrentBlockNumber() < (deployBlockNumber + MINTTIME));
    uint256 curTotalSupply = totalSupply;
    require(curTotalSupply + _amount >= curTotalSupply); // Check for overflow
    require(curTotalSupply + _amount <= totalSupplyCap);  // Check for overflow of total supply cap
    uint256 previousBalanceTo = balanceOf(_owner);
    require(previousBalanceTo + _amount >= previousBalanceTo); // Check for overflow
    
    totalSupply = curTotalSupply.add(_amount);
    balances[_owner] = previousBalanceTo.add(_amount);
    MintTokens(_owner, _amount);
    Transfer(0, _owner, _amount);
    return true;
  }
  /**
   * @dev Transfer tokens to multiple addresses
   * @param _addresses The addresses that will receieve tokens
   * @param _amounts The quantity of tokens that will be transferred
   * @return True if the tokens are transferred correctly
   */
  function transferForMultiAddresses(address[] _addresses, uint256[] _amounts) canTransfer public returns (bool) {
    for (uint256 i = 0; i < _addresses.length; i++) {
      require(_addresses[i] != address(0));
      require(_amounts[i] <= balances[msg.sender]);
      require(_amounts[i] > 0);

      // SafeMath.sub will throw if there is not enough balance.
      balances[msg.sender] = balances[msg.sender].sub(_amounts[i]);
      balances[_addresses[i]] = balances[_addresses[i]].add(_amounts[i]);
      Transfer(msg.sender, _addresses[i], _amounts[i]);
    }
    return true;
  }

  /**
   * @dev Burns `_amount` tokens from `_owner`
   * @param _amount The quantity of tokens being burned
   * @return True if the tokens are burned correctly
   */
  function burnTokens(uint256 _amount) public returns (bool) {
    require(_amount > 0);
    uint256 curTotalSupply = totalSupply;
    require(curTotalSupply >= _amount);
    uint256 previousBalanceTo = balanceOf(msg.sender);
    require(previousBalanceTo >= _amount);
    totalSupply = curTotalSupply.sub(_amount);
    balances[msg.sender] = previousBalanceTo.sub(_amount);
    BurnTokens(msg.sender, _amount);
    Transfer(msg.sender, 0, _amount);
    return true;
  }
  /**
   * @dev Function to stop minting new tokens.
   * @return True if the operation was successful.
   */
  function finishMinting() only(aelfDevMultisig) canMint public returns (bool) {
    mintingFinished = true;
    MintFinished(msg.sender);
    return true;
  }

  function getCurrentBlockNumber() private view returns (uint256) {
    return block.number;
  }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_durationOfLock","type":"uint256"}],"name":"setDurationOfLock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"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":false,"inputs":[],"name":"disableSetTransferable","outputs":[],"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":"_addresses","type":"address[]"},{"name":"_amounts","type":"uint256[]"}],"name":"transferForMultiAddresses","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"deployBlockNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TIMETHRESHOLD","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":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approveMintTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_aelfDevMultisig","type":"address"}],"name":"setAElfDevMultisig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"aelfDevMultisig","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"durationOfLock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mintTokensWithinTime","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"burnTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_aelfCommunityMultisig","type":"address"}],"name":"setAElfCommunityMultisig","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"transferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"getLockTokens","outputs":[{"name":"value","type":"uint256"},{"name":"blockNumber","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_transferable","type":"bool"}],"name":"setTransferable","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":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawMintTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupplyCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"mintTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"canSetTransferable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","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"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"aelfCommunityMultisig","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MINTTIME","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_caller","type":"address"}],"name":"SetDurationOfLock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"ApproveMintTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"WithdrawMintTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"MintTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"BurnTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_caller","type":"address"}],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"},{"indexed":false,"name":"_transferable","type":"bool"}],"name":"SetTransferable","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_old","type":"address"},{"indexed":true,"name":"_new","type":"address"}],"name":"SetAElfDevMultisig","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_old","type":"address"},{"indexed":true,"name":"_new","type":"address"}],"name":"SetAElfCommunityMultisig","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"},{"indexed":false,"name":"_canSetTransferable","type":"bool"}],"name":"DisableSetTransferable","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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"}]

6060604052736d3e0b5abfc141caa674a3c11e1580e6fff2a0b9600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734885b422656d4b316c9c7abc0c0ab31a2677d9f0600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506b033b2e3c9fd0803ce80000006007556040805190810160405280600981526020017f454c4620546f6b656e0000000000000000000000000000000000000000000000815250600890805190602001906200010b9291906200023d565b506040805190810160405280600381526020017f454c46000000000000000000000000000000000000000000000000000000000081525060099080519060200190620001599291906200023d565b506012600a60006101000a81548160ff021916908360ff1602179055506000600a60016101000a81548160ff021916908315150217905550620001af620002356401000000000262003233176401000000009004565b600b55611c20600c556000600d60006101000a81548160ff0219169083151502179055506001600d60016101000a81548160ff02191690831515021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002ec565b600043905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200028057805160ff1916838001178555620002b1565b82800160010185558215620002b1579182015b82811115620002b057825182559160200191906001019062000293565b5b509050620002c09190620002c4565b5090565b620002e991905b80821115620002e5576000816000905550600101620002cb565b5090565b90565b61326780620002fc6000396000f3006060604052600436106101c2576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063027ec848146101c757806305d2035b146101ea57806306fdde0314610217578063095ea7b3146102a557806312dc34a0146102ff57806318160ddd14610314578063204009d21461033d578063206288d3146103ef578063234e5f161461041857806323b872dd14610441578063269f4663146104ba5780633065a57514610514578063313ce5671461054d578063386b5fe71461057c5780634da1397c146105d15780634f45779f146105fa57806366188463146106545780636d1b229d146106ae57806370a08231146106e95780637d64bcb4146107365780638d00abb6146107635780638da5cb5b1461079c57806392ff0d31146107f157806395d89b411461081e5780639b98a94b146108ac5780639cd2370714610900578063a9059cbb14610925578063b5bb5ee41461097f578063bb102aea146109d9578063bcfaa79d14610a02578063d73dd62314610a53578063dca6058c14610aad578063dd62ed3e14610ada578063f2fde38b14610b46578063f752644c14610b7f578063fb2861ff14610bd4575b600080fd5b34156101d257600080fd5b6101e86004808035906020019091905050610bfd565b005b34156101f557600080fd5b6101fd610cd5565b604051808215151515815260200191505060405180910390f35b341561022257600080fd5b61022a610ce8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561026a57808201518184015260208101905061024f565b50505050905090810190601f1680156102975780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102b057600080fd5b6102e5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610d86565b604051808215151515815260200191505060405180910390f35b341561030a57600080fd5b610312610e9a565b005b341561031f57600080fd5b610327610f83565b6040518082815260200191505060405180910390f35b341561034857600080fd5b6103d560048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050610f89565b604051808215151515815260200191505060405180910390f35b34156103fa57600080fd5b6104026112cb565b6040518082815260200191505060405180910390f35b341561042357600080fd5b61042b6112d1565b6040518082815260200191505060405180910390f35b341561044c57600080fd5b6104a0600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506112d7565b604051808215151515815260200191505060405180910390f35b34156104c557600080fd5b6104fa600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506116b9565b604051808215151515815260200191505060405180910390f35b341561051f57600080fd5b61054b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061193d565b005b341561055857600080fd5b610560611a77565b604051808260ff1660ff16815260200191505060405180910390f35b341561058757600080fd5b61058f611a8a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105dc57600080fd5b6105e4611ab0565b6040518082815260200191505060405180910390f35b341561060557600080fd5b61063a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611ab6565b604051808215151515815260200191505060405180910390f35b341561065f57600080fd5b610694600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611cfc565b604051808215151515815260200191505060405180910390f35b34156106b957600080fd5b6106cf6004808035906020019091905050611faf565b604051808215151515815260200191505060405180910390f35b34156106f457600080fd5b610720600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612108565b6040518082815260200191505060405180910390f35b341561074157600080fd5b610749612151565b604051808215151515815260200191505060405180910390f35b341561076e57600080fd5b61079a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612232565b005b34156107a757600080fd5b6107af61236c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107fc57600080fd5b610804612392565b604051808215151515815260200191505060405180910390f35b341561082957600080fd5b6108316123a5565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610871578082015181840152602081019050610856565b50505050905090810190601f16801561089e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156108b757600080fd5b6108e3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612443565b604051808381526020018281526020019250505060405180910390f35b341561090b57600080fd5b61092360048080351515906020019091905050612513565b005b341561093057600080fd5b610965600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612602565b604051808215151515815260200191505060405180910390f35b341561098a57600080fd5b6109bf600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612849565b604051808215151515815260200191505060405180910390f35b34156109e457600080fd5b6109ec612a70565b6040518082815260200191505060405180910390f35b3415610a0d57600080fd5b610a39600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612a76565b604051808215151515815260200191505060405180910390f35b3415610a5e57600080fd5b610a93600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612dbf565b604051808215151515815260200191505060405180910390f35b3415610ab857600080fd5b610ac0612fdd565b604051808215151515815260200191505060405180910390f35b3415610ae557600080fd5b610b30600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612ff0565b6040518082815260200191505060405180910390f35b3415610b5157600080fd5b610b7d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613077565b005b3415610b8a57600080fd5b610b926131cf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610bdf57600080fd5b610be76131f5565b6040518082815260200191505060405180910390f35b600a60019054906101000a900460ff16151515610c1957600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c7657600080fd5b611c208210151515610c8757600080fd5b81600c819055503373ffffffffffffffffffffffffffffffffffffffff167f0396975844671389fa17a3a7695b8bd9f31c23d3d058f0706b1b75319dfd744260405160405180910390a25050565b600a60019054906101000a900460ff1681565b60088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d7e5780601f10610d5357610100808354040283529160200191610d7e565b820191906000526020600020905b815481529060010190602001808311610d6157829003601f168201915b505050505081565b600060011515600d60009054906101000a900460ff161515141515610daa57600080fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ef757600080fd5b6001600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167fa587cd36fc5173263bcfc28c8fa5b785fb89e0c74ac952d6a3554aa83b5012146000604051808215151515815260200191505060405180910390a250565b60005481565b60008060011515600d60009054906101000a900460ff161515141515610fae57600080fd5b600090505b83518110156112c057600073ffffffffffffffffffffffffffffffffffffffff168482815181101515610fe257fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff161415151561100f57600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054838281518110151561105d57fe5b906020019060200201511115151561107457600080fd5b6000838281518110151561108457fe5b9060200190602002015111151561109a57600080fd5b61110383828151811015156110ab57fe5b90602001906020020151600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131fc90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111c6838281518110151561115757fe5b9060200190602002015160046000878581518110151561117357fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321590919063ffffffff16565b6004600086848151811015156111d857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550838181518110151561122e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef858481518110151561129457fe5b906020019060200201516040518082815260200191505060405180910390a38080600101915050610fb3565b600191505092915050565b600b5481565b611c2081565b600060011515600d60009054906101000a900460ff1615151415156112fb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561133757600080fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561138557600080fd5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561141057600080fd5b61146282600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131fc90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114f782600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321590919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115c982600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131fc90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600080600086600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156116fe57600080fd5b600a60019054906101000a900460ff1615151561171a57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561177757600080fd5b60008811151561178657600080fd5b600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154955085888701101515156117dc57600080fd5b600054945084888601101515156117f257600080fd5b6007548886011115151561180557600080fd5b61180e89612108565b9350838885011015151561182157600080fd5b611834888761321590919063ffffffff16565b600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550611882613233565b9250611899600c548461321590919063ffffffff16565b600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055508873ffffffffffffffffffffffffffffffffffffffff167ff409fb63c43f80749c0457905d6ca20dea860144ecf394abef251fbc6dd4eb51896040518082815260200191505060405180910390a26001965050505050505092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561199a57600080fd5b81600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156119d757600080fd5b82600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f36965e3accc0a257ee26b7d6a7436152a4a357247438d88e75f8eed97753e18060405160405180910390a3505050565b600a60009054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b600080600084600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611af857600080fd5b600a60019054906101000a900460ff16151515611b1457600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b7157600080fd5b600086111515611b8057600080fd5b62034bc0600b5401611b90613233565b101515611b9c57600080fd5b60005493508386850110151515611bb257600080fd5b60075486850111151515611bc557600080fd5b611bce87612108565b92508286840110151515611be157600080fd5b611bf4868561321590919063ffffffff16565b600081905550611c0d868461321590919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff167f7b47457f3af09e5f794b020fd74160963a808f5985883496a096d403d380c343876040518082815260200191505060405180910390a28673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a3600194505050505092915050565b60008060011515600d60009054906101000a900460ff161515141515611d2157600080fd5b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611e2f576000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ec3565b611e4283826131fc90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008084111515611fc257600080fd5b6000549150838210151515611fd657600080fd5b611fdf33612108565b9050838110151515611ff057600080fd5b61200384836131fc90919063ffffffff16565b60008190555061201c84826131fc90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f388d6102a0230861b4e9646fb5acda1c5ec15d39df2b619d39c25d16a1268490856040518082815260200191505060405180910390a260003373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3600192505050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121b057600080fd5b600a60019054906101000a900460ff161515156121cc57600080fd5b6001600a60016101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f39b5ca6d4234a87b875f701a848e24d718e9f824d12099eec3c01762383b04ee60405160405180910390a2600191505090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561228f57600080fd5b81600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156122cc57600080fd5b82600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fcc2942da97f9d361a51b99006dd29d8609ae1bf3ddd4edac335691ca84a28ee160405160405180910390a3505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b60098054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561243b5780601f106124105761010080835404028352916020019161243b565b820191906000526020600020905b81548152906001019060200180831161241e57829003601f168201915b505050505081565b60008082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561248357600080fd5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549250925050915091565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561257057600080fd5b60011515600d60019054906101000a900460ff16151514151561259257600080fd5b81600d60006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f166d463a272e44b1c12f674f66ba19df53561af84c4a617a0011e78db3d5c22183604051808215151515815260200191505060405180910390a25050565b600060011515600d60009054906101000a900460ff16151514151561262657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561266257600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156126b057600080fd5b61270282600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131fc90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061279782600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321590919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008083600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561288957600080fd5b600a60019054906101000a900460ff161515156128a557600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561290257600080fd5b60008511151561291157600080fd5b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154925060008584031015151561296857600080fd5b61297b85846131fc90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555060008584031415612a15576000600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b8573ffffffffffffffffffffffffffffffffffffffff167fb6eefe5d57aeb45d2fb03cb184c9808f5694f3201515c33e5c40ab637af4352c866040518082815260200191505060405180910390a26001935050505092915050565b60075481565b600080600080600a60019054906101000a900460ff16151515612a9857600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612af557600080fd5b85600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612b3257600080fd5b612b3a613233565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015411151515612b8a57600080fd5b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154945060005493508385850110151515612be557600080fd5b60075485850111151515612bf857600080fd5b612c0187612108565b92508285840110151515612c1457600080fd5b612c27858561321590919063ffffffff16565b600081905550612c40858461321590919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506000600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055508673ffffffffffffffffffffffffffffffffffffffff167f7b47457f3af09e5f794b020fd74160963a808f5985883496a096d403d380c343866040518082815260200191505060405180910390a28673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a3600195505050505050919050565b600060011515600d60009054906101000a900460ff161515141515612de357600080fd5b612e7282600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321590919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600d60019054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130d357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561310f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b62034bc081565b600082821115151561320a57fe5b818303905092915050565b600080828401905083811015151561322957fe5b8091505092915050565b6000439050905600a165627a7a72305820e76bc0f15519971fc076110e4e2201373bcdbfe4c703856985006bbb771d01750029

Deployed Bytecode

0x6060604052600436106101c2576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063027ec848146101c757806305d2035b146101ea57806306fdde0314610217578063095ea7b3146102a557806312dc34a0146102ff57806318160ddd14610314578063204009d21461033d578063206288d3146103ef578063234e5f161461041857806323b872dd14610441578063269f4663146104ba5780633065a57514610514578063313ce5671461054d578063386b5fe71461057c5780634da1397c146105d15780634f45779f146105fa57806366188463146106545780636d1b229d146106ae57806370a08231146106e95780637d64bcb4146107365780638d00abb6146107635780638da5cb5b1461079c57806392ff0d31146107f157806395d89b411461081e5780639b98a94b146108ac5780639cd2370714610900578063a9059cbb14610925578063b5bb5ee41461097f578063bb102aea146109d9578063bcfaa79d14610a02578063d73dd62314610a53578063dca6058c14610aad578063dd62ed3e14610ada578063f2fde38b14610b46578063f752644c14610b7f578063fb2861ff14610bd4575b600080fd5b34156101d257600080fd5b6101e86004808035906020019091905050610bfd565b005b34156101f557600080fd5b6101fd610cd5565b604051808215151515815260200191505060405180910390f35b341561022257600080fd5b61022a610ce8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561026a57808201518184015260208101905061024f565b50505050905090810190601f1680156102975780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102b057600080fd5b6102e5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610d86565b604051808215151515815260200191505060405180910390f35b341561030a57600080fd5b610312610e9a565b005b341561031f57600080fd5b610327610f83565b6040518082815260200191505060405180910390f35b341561034857600080fd5b6103d560048080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050610f89565b604051808215151515815260200191505060405180910390f35b34156103fa57600080fd5b6104026112cb565b6040518082815260200191505060405180910390f35b341561042357600080fd5b61042b6112d1565b6040518082815260200191505060405180910390f35b341561044c57600080fd5b6104a0600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506112d7565b604051808215151515815260200191505060405180910390f35b34156104c557600080fd5b6104fa600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506116b9565b604051808215151515815260200191505060405180910390f35b341561051f57600080fd5b61054b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061193d565b005b341561055857600080fd5b610560611a77565b604051808260ff1660ff16815260200191505060405180910390f35b341561058757600080fd5b61058f611a8a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105dc57600080fd5b6105e4611ab0565b6040518082815260200191505060405180910390f35b341561060557600080fd5b61063a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611ab6565b604051808215151515815260200191505060405180910390f35b341561065f57600080fd5b610694600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611cfc565b604051808215151515815260200191505060405180910390f35b34156106b957600080fd5b6106cf6004808035906020019091905050611faf565b604051808215151515815260200191505060405180910390f35b34156106f457600080fd5b610720600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612108565b6040518082815260200191505060405180910390f35b341561074157600080fd5b610749612151565b604051808215151515815260200191505060405180910390f35b341561076e57600080fd5b61079a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612232565b005b34156107a757600080fd5b6107af61236c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107fc57600080fd5b610804612392565b604051808215151515815260200191505060405180910390f35b341561082957600080fd5b6108316123a5565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610871578082015181840152602081019050610856565b50505050905090810190601f16801561089e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156108b757600080fd5b6108e3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612443565b604051808381526020018281526020019250505060405180910390f35b341561090b57600080fd5b61092360048080351515906020019091905050612513565b005b341561093057600080fd5b610965600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612602565b604051808215151515815260200191505060405180910390f35b341561098a57600080fd5b6109bf600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612849565b604051808215151515815260200191505060405180910390f35b34156109e457600080fd5b6109ec612a70565b6040518082815260200191505060405180910390f35b3415610a0d57600080fd5b610a39600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612a76565b604051808215151515815260200191505060405180910390f35b3415610a5e57600080fd5b610a93600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612dbf565b604051808215151515815260200191505060405180910390f35b3415610ab857600080fd5b610ac0612fdd565b604051808215151515815260200191505060405180910390f35b3415610ae557600080fd5b610b30600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612ff0565b6040518082815260200191505060405180910390f35b3415610b5157600080fd5b610b7d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050613077565b005b3415610b8a57600080fd5b610b926131cf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610bdf57600080fd5b610be76131f5565b6040518082815260200191505060405180910390f35b600a60019054906101000a900460ff16151515610c1957600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c7657600080fd5b611c208210151515610c8757600080fd5b81600c819055503373ffffffffffffffffffffffffffffffffffffffff167f0396975844671389fa17a3a7695b8bd9f31c23d3d058f0706b1b75319dfd744260405160405180910390a25050565b600a60019054906101000a900460ff1681565b60088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d7e5780601f10610d5357610100808354040283529160200191610d7e565b820191906000526020600020905b815481529060010190602001808311610d6157829003601f168201915b505050505081565b600060011515600d60009054906101000a900460ff161515141515610daa57600080fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ef757600080fd5b6001600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167fa587cd36fc5173263bcfc28c8fa5b785fb89e0c74ac952d6a3554aa83b5012146000604051808215151515815260200191505060405180910390a250565b60005481565b60008060011515600d60009054906101000a900460ff161515141515610fae57600080fd5b600090505b83518110156112c057600073ffffffffffffffffffffffffffffffffffffffff168482815181101515610fe257fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff161415151561100f57600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054838281518110151561105d57fe5b906020019060200201511115151561107457600080fd5b6000838281518110151561108457fe5b9060200190602002015111151561109a57600080fd5b61110383828151811015156110ab57fe5b90602001906020020151600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131fc90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111c6838281518110151561115757fe5b9060200190602002015160046000878581518110151561117357fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321590919063ffffffff16565b6004600086848151811015156111d857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550838181518110151561122e57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef858481518110151561129457fe5b906020019060200201516040518082815260200191505060405180910390a38080600101915050610fb3565b600191505092915050565b600b5481565b611c2081565b600060011515600d60009054906101000a900460ff1615151415156112fb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561133757600080fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561138557600080fd5b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561141057600080fd5b61146282600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131fc90919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114f782600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321590919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115c982600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131fc90919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600080600086600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156116fe57600080fd5b600a60019054906101000a900460ff1615151561171a57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561177757600080fd5b60008811151561178657600080fd5b600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154955085888701101515156117dc57600080fd5b600054945084888601101515156117f257600080fd5b6007548886011115151561180557600080fd5b61180e89612108565b9350838885011015151561182157600080fd5b611834888761321590919063ffffffff16565b600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550611882613233565b9250611899600c548461321590919063ffffffff16565b600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055508873ffffffffffffffffffffffffffffffffffffffff167ff409fb63c43f80749c0457905d6ca20dea860144ecf394abef251fbc6dd4eb51896040518082815260200191505060405180910390a26001965050505050505092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561199a57600080fd5b81600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156119d757600080fd5b82600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f36965e3accc0a257ee26b7d6a7436152a4a357247438d88e75f8eed97753e18060405160405180910390a3505050565b600a60009054906101000a900460ff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b600080600084600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611af857600080fd5b600a60019054906101000a900460ff16151515611b1457600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b7157600080fd5b600086111515611b8057600080fd5b62034bc0600b5401611b90613233565b101515611b9c57600080fd5b60005493508386850110151515611bb257600080fd5b60075486850111151515611bc557600080fd5b611bce87612108565b92508286840110151515611be157600080fd5b611bf4868561321590919063ffffffff16565b600081905550611c0d868461321590919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff167f7b47457f3af09e5f794b020fd74160963a808f5985883496a096d403d380c343876040518082815260200191505060405180910390a28673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a3600194505050505092915050565b60008060011515600d60009054906101000a900460ff161515141515611d2157600080fd5b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831115611e2f576000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ec3565b611e4283826131fc90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008084111515611fc257600080fd5b6000549150838210151515611fd657600080fd5b611fdf33612108565b9050838110151515611ff057600080fd5b61200384836131fc90919063ffffffff16565b60008190555061201c84826131fc90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167f388d6102a0230861b4e9646fb5acda1c5ec15d39df2b619d39c25d16a1268490856040518082815260200191505060405180910390a260003373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a3600192505050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121b057600080fd5b600a60019054906101000a900460ff161515156121cc57600080fd5b6001600a60016101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f39b5ca6d4234a87b875f701a848e24d718e9f824d12099eec3c01762383b04ee60405160405180910390a2600191505090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561228f57600080fd5b81600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156122cc57600080fd5b82600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fcc2942da97f9d361a51b99006dd29d8609ae1bf3ddd4edac335691ca84a28ee160405160405180910390a3505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d60009054906101000a900460ff1681565b60098054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561243b5780601f106124105761010080835404028352916020019161243b565b820191906000526020600020905b81548152906001019060200180831161241e57829003601f168201915b505050505081565b60008082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561248357600080fd5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549250925050915091565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561257057600080fd5b60011515600d60019054906101000a900460ff16151514151561259257600080fd5b81600d60006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff167f166d463a272e44b1c12f674f66ba19df53561af84c4a617a0011e78db3d5c22183604051808215151515815260200191505060405180910390a25050565b600060011515600d60009054906101000a900460ff16151514151561262657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561266257600080fd5b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156126b057600080fd5b61270282600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546131fc90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061279782600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321590919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008083600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561288957600080fd5b600a60019054906101000a900460ff161515156128a557600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561290257600080fd5b60008511151561291157600080fd5b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154925060008584031015151561296857600080fd5b61297b85846131fc90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555060008584031415612a15576000600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b8573ffffffffffffffffffffffffffffffffffffffff167fb6eefe5d57aeb45d2fb03cb184c9808f5694f3201515c33e5c40ab637af4352c866040518082815260200191505060405180910390a26001935050505092915050565b60075481565b600080600080600a60019054906101000a900460ff16151515612a9857600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612af557600080fd5b85600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612b3257600080fd5b612b3a613233565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015411151515612b8a57600080fd5b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154945060005493508385850110151515612be557600080fd5b60075485850111151515612bf857600080fd5b612c0187612108565b92508285840110151515612c1457600080fd5b612c27858561321590919063ffffffff16565b600081905550612c40858461321590919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506000600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055508673ffffffffffffffffffffffffffffffffffffffff167f7b47457f3af09e5f794b020fd74160963a808f5985883496a096d403d380c343866040518082815260200191505060405180910390a28673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a3600195505050505050919050565b600060011515600d60009054906101000a900460ff161515141515612de357600080fd5b612e7282600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461321590919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600d60019054906101000a900460ff1681565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130d357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561310f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b62034bc081565b600082821115151561320a57fe5b818303905092915050565b600080828401905083811015151561322957fe5b8091505092915050565b6000439050905600a165627a7a72305820e76bc0f15519971fc076110e4e2201373bcdbfe4c703856985006bbb771d01750029

Swarm Source

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