ETH Price: $3,340.95 (-1.08%)

Token

STASIS EURS Token (EURS)
 

Overview

Max Total Supply

124,125,940 EURS

Holders

5,113 ( -0.020%)

Market

Price

$1.07 @ 0.000319 ETH (+2.33%)

Onchain Market Cap

$132,318,252.04

Circulating Supply Market Cap

$132,270,905.00

Other Info

Token Contract (WITH 2 Decimals)

Filtered by Token Holder
Poloniex
Balance
7.29 EURS

Value
$7.77 ( ~0.00232568681915287 Eth) [0.0000%]
0x32be343b94f860124dc4fee278fdcbd38c102d88
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

EURS token is a virtual financial asset that is designed to digitally mirror the EURO on the condition that its value is tied to the value of its collateral.

Market

Volume (24H):$514,850.00
Market Capitalization:$132,270,905.00
Circulating Supply:124,125,940.00 EURS
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume
1
HitBTC
EURS-USDT$1.043
0.0003119 Eth
$436,400.00
419,265.960 EURS
84.1504%
2
Uniswap V3 (Polygon)
0XE111178A87A3BFF0C8D18DECBA5798827539AE99-0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174$1.047
0.0003134 Eth
$54,472.00
51,974.190 0XE111178A87A3BFF0C8D18DECBA5798827539AE99
10.4317%
3
XSwap Protocol V3
0X1EBB2C8A71A9EC59BF558886A8ADF8F4A565814F-0X951857744785E80E2DE051C32EE7B25F9C458C42$1.13
0.0003096 Eth
$26,576.00
6,799.760 0X1EBB2C8A71A9EC59BF558886A8ADF8F4A565814F
1.3648%
4
Curve (Ethereum)
0X1A7E4E63778B4F12A199C062F3EFDD288AFCBCE8-0XDB25F211AB05B1C97D595516F45794528A807AD8$1.043
0.0003119 Eth
$21,846.00
20,919.893 0X1A7E4E63778B4F12A199C062F3EFDD288AFCBCE8
4.1988%
5
XSwap Protocol V3
0X1EBB2C8A71A9EC59BF558886A8ADF8F4A565814F-0X49D3F7543335CF38FA10889CCFF10207E22110B5$1.089
0.0004504 Eth
$11,646.13
10,247.370 0X1EBB2C8A71A9EC59BF558886A8ADF8F4A565814F
2.0567%
6
Uniswap V3 (Polygon)
0X3C499C542CEF5E3811E1192CE70D8CC03D5C3359-0XE111178A87A3BFF0C8D18DECBA5798827539AE99$1.047
0.0003134 Eth
$1,333.96
1,333.184 0X3C499C542CEF5E3811E1192CE70D8CC03D5C3359
0.2676%
7
HitBTC
BTC-EURS$1.043
0.0003161 Eth
$1,145.43
0.012 BTC
0.0000%
8
Curve (Ethereum)
0XDB25F211AB05B1C97D595516F45794528A807AD8-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48$1.035
0.0003101 Eth
$1,048.81
1,013.190 0XDB25F211AB05B1C97D595516F45794528A807AD8
0.2034%
9
Curve (Ethereum)
0XDB25F211AB05B1C97D595516F45794528A807AD8-0XD71ECFF9342A5CED620049E616C5035F1DB98620$1.039
0.0003112 Eth
$837.73
806.500 0XDB25F211AB05B1C97D595516F45794528A807AD8
0.1619%
10
Curve (Polygon)
0XE2AA7DB6DA1DAE97C5F5C6914D285FBFCC32A128-0XE111178A87A3BFF0C8D18DECBA5798827539AE99$1.05
0.0003145 Eth
$812.91
793.380 0XE2AA7DB6DA1DAE97C5F5C6914D285FBFCC32A128
0.1592%
11
Curve (Ethereum)
0XC581B735A1688071A1746C968E0798D642EDE491-0XDB25F211AB05B1C97D595516F45794528A807AD8$1.039
0.0003116 Eth
$721.11
689.997 0XC581B735A1688071A1746C968E0798D642EDE491
0.1385%
12
Uniswap V3 (Polygon)
0XE111178A87A3BFF0C8D18DECBA5798827539AE99-0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174$1.047
0.0003134 Eth
$634.31
601.730 0XE111178A87A3BFF0C8D18DECBA5798827539AE99
0.1208%
13
Curve (Polygon)
0XE111178A87A3BFF0C8D18DECBA5798827539AE99-0X7BDF330F423EA880FF95FC41A280FD5ECFD3D09F$1.051
0.0003143 Eth
$577.80
549.810 0XE111178A87A3BFF0C8D18DECBA5798827539AE99
0.1104%
14
Curve (Polygon)
0X4E3DECBB3645551B8A19F0EA1678079FCB33FB4C-0XE111178A87A3BFF0C8D18DECBA5798827539AE99$1.05
0.0003145 Eth
$249.22
256.300 0X4E3DECBB3645551B8A19F0EA1678079FCB33FB4C
0.0514%
15
YoBit
EURS-USD$1.14
0.0003409 Eth
$150.49
132.010 EURS
0.0265%
16
XSwap Protocol V3
0X1EBB2C8A71A9EC59BF558886A8ADF8F4A565814F-0X5D5F074837F5D4618B3916BA74DE1BF9662A3FED$1.10
0.0004566 Eth
$47.48
4,970.600 0X1EBB2C8A71A9EC59BF558886A8ADF8F4A565814F
0.9976%
17
HitBTC
XRP-EURS$1.04
0.0003110 Eth
$35.70
16.500 XRP
0.0033%
18
Uniswap V2 (Ethereum)
0XDB25F211AB05B1C97D595516F45794528A807AD8-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$1.043
0.0003125 Eth
$29.48
28.280 0XDB25F211AB05B1C97D595516F45794528A807AD8
0.0057%
19
YoBit
EURS-BTC$1.15
0.0003448 Eth
$27.28
23.644 EURS
0.0047%
20
Uniswap V2 (Ethereum)
0XDB25F211AB05B1C97D595516F45794528A807AD8-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48$0.9969
0.0002947 Eth
$24.20
24.280 0XDB25F211AB05B1C97D595516F45794528A807AD8
0.0049%
21
Uniswap V3 (Polygon)
0XE111178A87A3BFF0C8D18DECBA5798827539AE99-0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174$1.048
0.0003139 Eth
$21.00
20.040 0XE111178A87A3BFF0C8D18DECBA5798827539AE99
0.0040%
22
HitBTC
ETH-EURS$1.052
0.0003076 Eth
$9.79
0.003 ETH
0.0000%
23
YoBit
EURS-ETH$1.12
0.0003333 Eth
$7.41
6.648 EURS
0.0013%
24
Uniswap V3 (Polygon)
0XE111178A87A3BFF0C8D18DECBA5798827539AE99-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$1.058
0.0002727 Eth
$1.75
1.650 0XE111178A87A3BFF0C8D18DECBA5798827539AE99
0.0003%
25
HitBTC
DASH-EURS$1.043
0.0003132 Eth
$0.1095
0.003 DASH
0.0000%

Contract Source Code Verified (Exact Match)

Contract Name:
EURSToken

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-07-03
*/

/**
 * EURS Token Smart Contract: EIP-20 compatible token smart contract that
 * manages EURS tokens.
 */

/*
 * Safe Math Smart Contract.
 * Copyright (c) 2018 by STSS (Malta) Limited.
 * Contact: <[email protected]>
 */
pragma solidity ^0.4.20;

/**
 * Provides methods to safely add, subtract and multiply uint256 numbers.
 */
contract SafeMath {
  uint256 constant private MAX_UINT256 =
    0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;

  /**
   * Add two uint256 values, throw in case of overflow.
   *
   * @param x first value to add
   * @param y second value to add
   * @return x + y
   */
  function safeAdd (uint256 x, uint256 y)
  pure internal
  returns (uint256 z) {
    assert (x <= MAX_UINT256 - y);
    return x + y;
  }

  /**
   * Subtract one uint256 value from another, throw in case of underflow.
   *
   * @param x value to subtract from
   * @param y value to subtract
   * @return x - y
   */
  function safeSub (uint256 x, uint256 y)
  pure internal
  returns (uint256 z) {
    assert (x >= y);
    return x - y;
  }

  /**
   * Multiply two uint256 values, throw in case of overflow.
   *
   * @param x first value to multiply
   * @param y second value to multiply
   * @return x * y
   */
  function safeMul (uint256 x, uint256 y)
  pure internal
  returns (uint256 z) {
    if (y == 0) return 0; // Prevent division by zero at the next line
    assert (x <= MAX_UINT256 / y);
    return x * y;
  }
}
/*
 * EIP-20 Standard Token Smart Contract Interface.
 * Copyright (c) 2018 by STSS (Malta) Limited.
 * Contact: <[email protected]>

 * ERC-20 standard token interface, as defined
 * <a href="https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md">here</a>.
 */
contract Token {
  /**
   * Get total number of tokens in circulation.
   *
   * @return total number of tokens in circulation
   */
  function totalSupply () public view returns (uint256 supply);

  /**
   * Get number of tokens currently belonging to given owner.
   *
   * @param _owner address to get number of tokens currently belonging to the
   *        owner of
   * @return number of tokens currently belonging to the owner of given address
   */
  function balanceOf (address _owner) public view returns (uint256 balance);

  /**
   * Transfer given number of tokens from message sender to given recipient.
   *
   * @param _to address to transfer tokens to the owner of
   * @param _value number of tokens to transfer to the owner of given address
   * @return true if tokens were transferred successfully, false otherwise
   */
  function transfer (address _to, uint256 _value)
  public payable returns (bool success);

  /**
   * Transfer given number of tokens from given owner to given recipient.
   *
   * @param _from address to transfer tokens from the owner of
   * @param _to address to transfer tokens to the owner of
   * @param _value number of tokens to transfer from given owner to given
   *        recipient
   * @return true if tokens were transferred successfully, false otherwise
   */
  function transferFrom (address _from, address _to, uint256 _value)
  public payable returns (bool success);

  /**
   * Allow given spender to transfer given number of tokens from message sender.
   *
   * @param _spender address to allow the owner of to transfer tokens from
   *        message sender
   * @param _value number of tokens to allow to transfer
   * @return true if token transfer was successfully approved, false otherwise
   */
  function approve (address _spender, uint256 _value)
  public payable returns (bool success);

  /**
   * Tell how many tokens given spender is currently allowed to transfer from
   * given owner.
   *
   * @param _owner address to get number of tokens allowed to be transferred
   *        from the owner of
   * @param _spender address to get number of tokens allowed to be transferred
   *        by the owner of
   * @return number of tokens given spender is currently allowed to transfer
   *         from given owner
   */
  function allowance (address _owner, address _spender)
  public view returns (uint256 remaining);

  /**
   * Logged when tokens were transferred from one owner to another.
   *
   * @param _from address of the owner, tokens were transferred from
   * @param _to address of the owner, tokens were transferred to
   * @param _value number of tokens transferred
   */
  event Transfer (address indexed _from, address indexed _to, uint256 _value);

  /**
   * Logged when owner approved his tokens to be transferred by some spender.
   *
   * @param _owner owner who approved his tokens to be transferred
   * @param _spender spender who were allowed to transfer the tokens belonging
   *        to the owner
   * @param _value number of tokens belonging to the owner, approved to be
   *        transferred by the spender
   */
  event Approval (
    address indexed _owner, address indexed _spender, uint256 _value);
}
/*
 * Abstract Token Smart Contract.
 * Copyright (c) 2018 by STSS (Malta) Limited.
 * Contact: <[email protected]>

 * Abstract Token Smart Contract that could be used as a base contract for
 * ERC-20 token contracts.
 */
contract AbstractToken is Token, SafeMath {
  /**
   * Create new Abstract Token contract.
   */
  function AbstractToken () public {
    // Do nothing
  }

  /**
   * Get number of tokens currently belonging to given owner.
   *
   * @param _owner address to get number of tokens currently belonging to the
   *        owner of
   * @return number of tokens currently belonging to the owner of given address
   */
  function balanceOf (address _owner) public view returns (uint256 balance) {
    return accounts [_owner];
  }

  /**
   * Transfer given number of tokens from message sender to given recipient.
   *
   * @param _to address to transfer tokens to the owner of
   * @param _value number of tokens to transfer to the owner of given address
   * @return true if tokens were transferred successfully, false otherwise
   */
  function transfer (address _to, uint256 _value)
  public payable returns (bool success) {
    uint256 fromBalance = accounts [msg.sender];
    if (fromBalance < _value) return false;
    if (_value > 0 && msg.sender != _to) {
      accounts [msg.sender] = safeSub (fromBalance, _value);
      accounts [_to] = safeAdd (accounts [_to], _value);
    }
    Transfer (msg.sender, _to, _value);
    return true;
  }

  /**
   * Transfer given number of tokens from given owner to given recipient.
   *
   * @param _from address to transfer tokens from the owner of
   * @param _to address to transfer tokens to the owner of
   * @param _value number of tokens to transfer from given owner to given
   *        recipient
   * @return true if tokens were transferred successfully, false otherwise
   */
  function transferFrom (address _from, address _to, uint256 _value)
  public payable returns (bool success) {
    uint256 spenderAllowance = allowances [_from][msg.sender];
    if (spenderAllowance < _value) return false;
    uint256 fromBalance = accounts [_from];
    if (fromBalance < _value) return false;

    allowances [_from][msg.sender] =
      safeSub (spenderAllowance, _value);

    if (_value > 0 && _from != _to) {
      accounts [_from] = safeSub (fromBalance, _value);
      accounts [_to] = safeAdd (accounts [_to], _value);
    }
    Transfer (_from, _to, _value);
    return true;
  }

  /**
   * Allow given spender to transfer given number of tokens from message sender.
   *
   * @param _spender address to allow the owner of to transfer tokens from
   *        message sender
   * @param _value number of tokens to allow to transfer
   * @return true if token transfer was successfully approved, false otherwise
   */
  function approve (address _spender, uint256 _value)
  public payable returns (bool success) {
    allowances [msg.sender][_spender] = _value;
    Approval (msg.sender, _spender, _value);

    return true;
  }

  /**
   * Tell how many tokens given spender is currently allowed to transfer from
   * given owner.
   *
   * @param _owner address to get number of tokens allowed to be transferred
   *        from the owner of
   * @param _spender address to get number of tokens allowed to be transferred
   *        by the owner of
   * @return number of tokens given spender is currently allowed to transfer
   *         from given owner
   */
  function allowance (address _owner, address _spender)
  public view returns (uint256 remaining) {
    return allowances [_owner][_spender];
  }

  /**
   * Mapping from addresses of token holders to the numbers of tokens belonging
   * to these token holders.
   */
  mapping (address => uint256) internal accounts;

  /**
   * Mapping from addresses of token holders to the mapping of addresses of
   * spenders to the allowances set by these token holders to these spenders.
   */
  mapping (address => mapping (address => uint256)) internal allowances;
}

/*
 * EURS Token Smart Contract.
 * Copyright (c) 2018 by STSS (Malta) Limited.
 * Contact: <[email protected]>
 */

contract EURSToken is AbstractToken {
  /**
   * Fee denominator (0.001%).
   */
  uint256 constant internal FEE_DENOMINATOR = 100000;

  /**
   * Maximum fee numerator (100%).
   */
  uint256 constant internal MAX_FEE_NUMERATOR = FEE_DENOMINATOR;

  /**
   * Minimum fee numerator (0%).
   */
  uint256 constant internal MIN_FEE_NUMERATIOR = 0;

  /**
   * Maximum allowed number of tokens in circulation.
   */
  uint256 constant internal MAX_TOKENS_COUNT =
    0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff /
    MAX_FEE_NUMERATOR;

  /**
   * Default transfer fee.
   */
  uint256 constant internal DEFAULT_FEE = 5e2;

  /**
   * Address flag that marks black listed addresses.
   */
  uint256 constant internal BLACK_LIST_FLAG = 0x01;

  /**
   * Address flag that marks zero fee addresses.
   */
  uint256 constant internal ZERO_FEE_FLAG = 0x02;

  modifier delegatable {
    if (delegate == address (0)) {
      require (msg.value == 0); // Non payable if not delegated
      _;
    } else {
      assembly {
        // Save owner
        let oldOwner := sload (owner_slot)

        // Save delegate
        let oldDelegate := sload (delegate_slot)

        // Solidity stores address of the beginning of free memory at 0x40
        let buffer := mload (0x40)

        // Copy message call data into buffer
        calldatacopy (buffer, 0, calldatasize)

        // Lets call our delegate
        let result := delegatecall (gas, oldDelegate, buffer, calldatasize, buffer, 0)

        // Check, whether owner was changed
        switch eq (oldOwner, sload (owner_slot))
        case 1 {} // Owner was not changed, fine
        default {revert (0, 0) } // Owner was changed, revert!

        // Check, whether delegate was changed
        switch eq (oldDelegate, sload (delegate_slot))
        case 1 {} // Delegate was not changed, fine
        default {revert (0, 0) } // Delegate was changed, revert!

        // Copy returned value into buffer
        returndatacopy (buffer, 0, returndatasize)

        // Check call status
        switch result
        case 0 { revert (buffer, returndatasize) } // Call failed, revert!
        default { return (buffer, returndatasize) } // Call succeeded, return
      }
    }
  }

  /**
   * Create EURS Token smart contract with message sender as an owner.
   *
   * @param _feeCollector address fees are sent to
   */
  function EURSToken (address _feeCollector) public {
    fixedFee = DEFAULT_FEE;
    minVariableFee = 0;
    maxVariableFee = 0;
    variableFeeNumerator = 0;

    owner = msg.sender;
    feeCollector = _feeCollector;
  }

  /**
   * Delegate unrecognized functions.
   */
  function () public delegatable payable {
    revert (); // Revert if not delegated
  }

  /**
   * Get name of the token.
   *
   * @return name of the token
   */
  function name () public delegatable view returns (string) {
    return "STASIS EURS Token";
  }

  /**
   * Get symbol of the token.
   *
   * @return symbol of the token
   */
  function symbol () public delegatable view returns (string) {
    return "EURS";
  }

  /**
   * Get number of decimals for the token.
   *
   * @return number of decimals for the token
   */
  function decimals () public delegatable view returns (uint8) {
    return 2;
  }

  /**
   * Get total number of tokens in circulation.
   *
   * @return total number of tokens in circulation
   */
  function totalSupply () public delegatable view returns (uint256) {
    return tokensCount;
  }

  /**
   * Get number of tokens currently belonging to given owner.
   *
   * @param _owner address to get number of tokens currently belonging to the
   *        owner of
   * @return number of tokens currently belonging to the owner of given address
   */
  function balanceOf (address _owner)
    public delegatable view returns (uint256 balance) {
    return AbstractToken.balanceOf (_owner);
  }

  /**
   * Transfer given number of tokens from message sender to given recipient.
   *
   * @param _to address to transfer tokens to the owner of
   * @param _value number of tokens to transfer to the owner of given address
   * @return true if tokens were transferred successfully, false otherwise
   */
  function transfer (address _to, uint256 _value)
  public delegatable payable returns (bool) {
    if (frozen) return false;
    else if (
      (addressFlags [msg.sender] | addressFlags [_to]) & BLACK_LIST_FLAG ==
      BLACK_LIST_FLAG)
      return false;
    else {
      uint256 fee =
        (addressFlags [msg.sender] | addressFlags [_to]) & ZERO_FEE_FLAG == ZERO_FEE_FLAG ?
          0 :
          calculateFee (_value);

      if (_value <= accounts [msg.sender] &&
          fee <= safeSub (accounts [msg.sender], _value)) {
        require (AbstractToken.transfer (_to, _value));
        require (AbstractToken.transfer (feeCollector, fee));
        return true;
      } else return false;
    }
  }

  /**
   * Transfer given number of tokens from given owner to given recipient.
   *
   * @param _from address to transfer tokens from the owner of
   * @param _to address to transfer tokens to the owner of
   * @param _value number of tokens to transfer from given owner to given
   *        recipient
   * @return true if tokens were transferred successfully, false otherwise
   */
  function transferFrom (address _from, address _to, uint256 _value)
  public delegatable payable returns (bool) {
    if (frozen) return false;
    else if (
      (addressFlags [_from] | addressFlags [_to]) & BLACK_LIST_FLAG ==
      BLACK_LIST_FLAG)
      return false;
    else {
      uint256 fee =
        (addressFlags [_from] | addressFlags [_to]) & ZERO_FEE_FLAG == ZERO_FEE_FLAG ?
          0 :
          calculateFee (_value);

      if (_value <= allowances [_from][msg.sender] &&
          fee <= safeSub (allowances [_from][msg.sender], _value) &&
          _value <= accounts [_from] &&
          fee <= safeSub (accounts [_from], _value)) {
        require (AbstractToken.transferFrom (_from, _to, _value));
        require (AbstractToken.transferFrom (_from, feeCollector, fee));
        return true;
      } else return false;
    }
  }

  /**
   * Allow given spender to transfer given number of tokens from message sender.
   *
   * @param _spender address to allow the owner of to transfer tokens from
   *        message sender
   * @param _value number of tokens to allow to transfer
   * @return true if token transfer was successfully approved, false otherwise
   */
  function approve (address _spender, uint256 _value)
  public delegatable payable returns (bool success) {
    return AbstractToken.approve (_spender, _value);
  }

  /**
   * Tell how many tokens given spender is currently allowed to transfer from
   * given owner.
   *
   * @param _owner address to get number of tokens allowed to be transferred
   *        from the owner of
   * @param _spender address to get number of tokens allowed to be transferred
   *        by the owner of
   * @return number of tokens given spender is currently allowed to transfer
   *         from given owner
   */
  function allowance (address _owner, address _spender)
  public delegatable view returns (uint256 remaining) {
    return AbstractToken.allowance (_owner, _spender);
  }

  /**
   * Transfer given number of token from the signed defined by digital signature
   * to given recipient.
   *
   * @param _to address to transfer token to the owner of
   * @param _value number of tokens to transfer
   * @param _fee number of tokens to give to message sender
   * @param _nonce nonce of the transfer
   * @param _v parameter V of digital signature
   * @param _r parameter R of digital signature
   * @param _s parameter S of digital signature
   */
  function delegatedTransfer (
    address _to, uint256 _value, uint256 _fee,
    uint256 _nonce, uint8 _v, bytes32 _r, bytes32 _s)
  public delegatable payable returns (bool) {
    if (frozen) return false;
    else {
      address _from = ecrecover (
        keccak256 (
          thisAddress (), messageSenderAddress (), _to, _value, _fee, _nonce),
        _v, _r, _s);

      if (_nonce != nonces [_from]) return false;

      if (
        (addressFlags [_from] | addressFlags [_to]) & BLACK_LIST_FLAG ==
        BLACK_LIST_FLAG)
        return false;

      uint256 fee =
        (addressFlags [_from] | addressFlags [_to]) & ZERO_FEE_FLAG == ZERO_FEE_FLAG ?
          0 :
          calculateFee (_value);

      uint256 balance = accounts [_from];
      if (_value > balance) return false;
      balance = safeSub (balance, _value);
      if (fee > balance) return false;
      balance = safeSub (balance, fee);
      if (_fee > balance) return false;
      balance = safeSub (balance, _fee);

      nonces [_from] = _nonce + 1;

      accounts [_from] = balance;
      accounts [_to] = safeAdd (accounts [_to], _value);
      accounts [feeCollector] = safeAdd (accounts [feeCollector], fee);
      accounts [msg.sender] = safeAdd (accounts [msg.sender], _fee);

      Transfer (_from, _to, _value);
      Transfer (_from, feeCollector, fee);
      Transfer (_from, msg.sender, _fee);

      return true;
    }
  }

  /**
   * Create tokens.
   *
   * @param _value number of tokens to be created.
   */
  function createTokens (uint256 _value)
  public delegatable payable returns (bool) {
    require (msg.sender == owner);

    if (_value > 0) {
      if (_value <= safeSub (MAX_TOKENS_COUNT, tokensCount)) {
        accounts [msg.sender] = safeAdd (accounts [msg.sender], _value);
        tokensCount = safeAdd (tokensCount, _value);

        Transfer (address (0), msg.sender, _value);

        return true;
      } else return false;
    } else return true;
  }

  /**
   * Burn tokens.
   *
   * @param _value number of tokens to burn
   */
  function burnTokens (uint256 _value)
  public delegatable payable returns (bool) {
    require (msg.sender == owner);

    if (_value > 0) {
      if (_value <= accounts [msg.sender]) {
        accounts [msg.sender] = safeSub (accounts [msg.sender], _value);
        tokensCount = safeSub (tokensCount, _value);

        Transfer (msg.sender, address (0), _value);

        return true;
      } else return false;
    } else return true;
  }

  /**
   * Freeze token transfers.
   */
  function freezeTransfers () public delegatable payable {
    require (msg.sender == owner);

    if (!frozen) {
      frozen = true;

      Freeze ();
    }
  }

  /**
   * Unfreeze token transfers.
   */
  function unfreezeTransfers () public delegatable payable {
    require (msg.sender == owner);

    if (frozen) {
      frozen = false;

      Unfreeze ();
    }
  }

  /**
   * Set smart contract owner.
   *
   * @param _newOwner address of the new owner
   */
  function setOwner (address _newOwner) public {
    require (msg.sender == owner);

    owner = _newOwner;
  }

  /**
   * Set fee collector.
   *
   * @param _newFeeCollector address of the new fee collector
   */
  function setFeeCollector (address _newFeeCollector)
  public delegatable payable {
    require (msg.sender == owner);

    feeCollector = _newFeeCollector;
  }

  /**
   * Get current nonce for token holder with given address, i.e. nonce this
   * token holder should use for next delegated transfer.
   *
   * @param _owner address of the token holder to get nonce for
   * @return current nonce for token holder with give address
   */
  function nonce (address _owner) public view delegatable returns (uint256) {
    return nonces [_owner];
  }

  /**
   * Set fee parameters.
   *
   * @param _fixedFee fixed fee in token units
   * @param _minVariableFee minimum variable fee in token units
   * @param _maxVariableFee maximum variable fee in token units
   * @param _variableFeeNumerator variable fee numerator
   */
  function setFeeParameters (
    uint256 _fixedFee,
    uint256 _minVariableFee,
    uint256 _maxVariableFee,
    uint256 _variableFeeNumerator) public delegatable payable {
    require (msg.sender == owner);

    require (_minVariableFee <= _maxVariableFee);
    require (_variableFeeNumerator <= MAX_FEE_NUMERATOR);

    fixedFee = _fixedFee;
    minVariableFee = _minVariableFee;
    maxVariableFee = _maxVariableFee;
    variableFeeNumerator = _variableFeeNumerator;

    FeeChange (
      _fixedFee, _minVariableFee, _maxVariableFee, _variableFeeNumerator);
  }

  /**
   * Get fee parameters.
   *
   * @return fee parameters
   */
  function getFeeParameters () public delegatable view returns (
    uint256 _fixedFee,
    uint256 _minVariableFee,
    uint256 _maxVariableFee,
    uint256 _variableFeeNumnerator) {
    _fixedFee = fixedFee;
    _minVariableFee = minVariableFee;
    _maxVariableFee = maxVariableFee;
    _variableFeeNumnerator = variableFeeNumerator;
  }

  /**
   * Calculate fee for transfer of given number of tokens.
   *
   * @param _amount transfer amount to calculate fee for
   * @return fee for transfer of given amount
   */
  function calculateFee (uint256 _amount)
    public delegatable view returns (uint256 _fee) {
    require (_amount <= MAX_TOKENS_COUNT);

    _fee = safeMul (_amount, variableFeeNumerator) / FEE_DENOMINATOR;
    if (_fee < minVariableFee) _fee = minVariableFee;
    if (_fee > maxVariableFee) _fee = maxVariableFee;
    _fee = safeAdd (_fee, fixedFee);
  }

  /**
   * Set flags for given address.
   *
   * @param _address address to set flags for
   * @param _flags flags to set
   */
  function setFlags (address _address, uint256 _flags)
  public delegatable payable {
    require (msg.sender == owner);

    addressFlags [_address] = _flags;
  }

  /**
   * Get flags for given address.
   *
   * @param _address address to get flags for
   * @return flags for given address
   */
  function flags (address _address) public delegatable view returns (uint256) {
    return addressFlags [_address];
  }

  /**
   * Set address of smart contract to delegate execution of delegatable methods
   * to.
   *
   * @param _delegate address of smart contract to delegate execution of
   * delegatable methods to, or zero to not delegate delegatable methods
   * execution.
   */
  function setDelegate (address _delegate) public {
    require (msg.sender == owner);

    if (delegate != _delegate) {
      delegate = _delegate;
      Delegation (delegate);
    }
  }

  /**
   * Get address of this smart contract.
   *
   * @return address of this smart contract
   */
  function thisAddress () internal view returns (address) {
    return this;
  }

  /**
   * Get address of message sender.
   *
   * @return address of this smart contract
   */
  function messageSenderAddress () internal view returns (address) {
    return msg.sender;
  }

  /**
   * Owner of the smart contract.
   */
  address internal owner;

  /**
   * Address where fees are sent to.
   */
  address internal feeCollector;

  /**
   * Number of tokens in circulation.
   */
  uint256 internal tokensCount;

  /**
   * Whether token transfers are currently frozen.
   */
  bool internal frozen;

  /**
   * Mapping from sender's address to the next delegated transfer nonce.
   */
  mapping (address => uint256) internal nonces;

  /**
   * Fixed fee amount in token units.
   */
  uint256 internal fixedFee;

  /**
   * Minimum variable fee in token units.
   */
  uint256 internal minVariableFee;

  /**
   * Maximum variable fee in token units.
   */
  uint256 internal maxVariableFee;

  /**
   * Variable fee numerator.
   */
  uint256 internal variableFeeNumerator;

  /**
   * Maps address to its flags.
   */
  mapping (address => uint256) internal addressFlags;

  /**
   * Address of smart contract to delegate execution of delegatable methods to,
   * or zero to not delegate delegatable methods execution.
   */
  address internal delegate;

  /**
   * Logged when token transfers were frozen.
   */
  event Freeze ();

  /**
   * Logged when token transfers were unfrozen.
   */
  event Unfreeze ();

  /**
   * Logged when fee parameters were changed.
   *
   * @param fixedFee fixed fee in token units
   * @param minVariableFee minimum variable fee in token units
   * @param maxVariableFee maximum variable fee in token units
   * @param variableFeeNumerator variable fee numerator
   */
  event FeeChange (
    uint256 fixedFee,
    uint256 minVariableFee,
    uint256 maxVariableFee,
    uint256 variableFeeNumerator);

  /**
   * Logged when address of smart contract execution of delegatable methods is
   * delegated to was changed.
   *
   * @param delegate new address of smart contract execution of delegatable
   * methods is delegated to or zero if execution of delegatable methods is
   * oot delegated.
   */
  event Delegation (address delegate);
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[],"name":"freezeTransfers","outputs":[],"payable":true,"stateMutability":"payable","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":"success","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"setOwner","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":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unfreezeTransfers","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getFeeParameters","outputs":[{"name":"_fixedFee","type":"uint256"},{"name":"_minVariableFee","type":"uint256"},{"name":"_maxVariableFee","type":"uint256"},{"name":"_variableFeeNumnerator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burnTokens","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"nonce","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"createTokens","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_amount","type":"uint256"}],"name":"calculateFee","outputs":[{"name":"_fee","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"flags","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newFeeCollector","type":"address"}],"name":"setFeeCollector","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"},{"name":"_flags","type":"uint256"}],"name":"setFlags","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_fee","type":"uint256"},{"name":"_nonce","type":"uint256"},{"name":"_v","type":"uint8"},{"name":"_r","type":"bytes32"},{"name":"_s","type":"bytes32"}],"name":"delegatedTransfer","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_delegate","type":"address"}],"name":"setDelegate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_fixedFee","type":"uint256"},{"name":"_minVariableFee","type":"uint256"},{"name":"_maxVariableFee","type":"uint256"},{"name":"_variableFeeNumerator","type":"uint256"}],"name":"setFeeParameters","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_feeCollector","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[],"name":"Unfreeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"fixedFee","type":"uint256"},{"indexed":false,"name":"minVariableFee","type":"uint256"},{"indexed":false,"name":"maxVariableFee","type":"uint256"},{"indexed":false,"name":"variableFeeNumerator","type":"uint256"}],"name":"FeeChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"delegate","type":"address"}],"name":"Delegation","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"}]

6060604052341561000f57600080fd5b604051602080611764833981016040528080516101f4600755600060088190556009819055600a5560028054600160a060020a03338116600160a060020a0319928316179092556003805492909316911617905550506116f0806100746000396000f3006060604052600436106101325763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630150246081146101a657806306fdde03146101ae578063095ea7b31461023857806313af40351461026357806318160ddd1461028257806323b872dd146102a7578063313ce567146102c457806331c420d4146102ed5780634722b4a5146102f55780636d1b229d1461033357806370a082311461033e57806370ae92d21461035d5780637e1f2bb81461037c57806395d89b411461038757806399a5d7471461039a5780639fef0c01146103b0578063a42dce80146103cf578063a9059cbb146103e3578063addd9cef146103fa578063c97e848014610411578063ca5eb5e11461043a578063d5bf2dbe14610459578063dd62ed3e1461046d575b600c54600160a060020a0316151561015457341561014f57600080fd5b600080fd5b600254600c5460405136600082376000813683855af460025484146001811461017c57600080fd5b50600c5483146001811461018f57600080fd5b503d6000833e8080156101a0573d83f35b3d83fd5b005b6101a4610492565b34156101b957600080fd5b6101c1610512565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101fd5780820151838201526020016101e5565b50505050905090810190601f16801561022a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61024f600160a060020a0360043516602435610571565b604051901515815260200160405180910390f35b341561026e57600080fd5b6101a4600160a060020a03600435166105a4565b341561028d57600080fd5b6102956105ee565b60405190815260200160405180910390f35b61024f600160a060020a0360043581169060243516604435610617565b34156102cf57600080fd5b6102d76107d3565b60405160ff909116815260200160405180910390f35b6101a46107fb565b341561030057600080fd5b610308610879565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b61024f6004356108b6565b341561034957600080fd5b610295600160a060020a03600435166109ab565b341561036857600080fd5b610295600160a060020a03600435166109db565b61024f600435610a1a565b341561039257600080fd5b6101c1610af8565b34156103a557600080fd5b610295600435610b58565b34156103bb57600080fd5b610295600160a060020a0360043516610be9565b6101a4600160a060020a0360043516610c28565b61024f600160a060020a0360043516602435610c8c565b6101a4600160a060020a0360043516602435610dd8565b61024f600160a060020a036004351660243560443560643560ff6084351660a43560c435610e2d565b341561044557600080fd5b6101a4600160a060020a03600435166111c2565b6101a4600435602435604435606435611261565b341561047857600080fd5b610295600160a060020a036004358116906024351661131f565b600c54600160a060020a031615156101545734156104af57600080fd5b60025433600160a060020a039081169116146104ca57600080fd5b60055460ff161515610510576005805460ff191660011790557f615acbaede366d76a8b8cb2a9ada6a71495f0786513d71aa97aaf0c3910b78de60405160405180910390a15b565b61051a611692565b600c54600160a060020a0316151561015457341561053757600080fd5b60408051908101604052601181527f535441534953204555525320546f6b656e000000000000000000000000000000602082015290505b90565b600c54600090600160a060020a0316151561015457341561059157600080fd5b61059b8383611349565b90505b92915050565b60025433600160a060020a039081169116146105bf57600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600c54600090600160a060020a0316151561015457341561060e57600080fd5b5060045461056e565b600c546000908190600160a060020a0316151561015457341561063957600080fd5b60055460ff161561064d57600091506107cb565b600160a060020a038085166000908152600b6020526040808220549288168252902054176001908116141561068557600091506107cb565b600160a060020a038085166000908152600b6020526040808220549288168252902054176002908116146106c1576106bc83610b58565b6106c4565b60005b600160a060020a0380871660009081526001602090815260408083203390941683529290522054909150831180159061072d5750600160a060020a038086166000908152600160209081526040808320339094168352929052205461072990846113b5565b8111155b80156107515750600160a060020a0385166000908152602081905260409020548311155b801561077f5750600160a060020a03851660009081526020819052604090205461077b90846113b5565b8111155b156107c65761078f8585856113c7565b151561079a57600080fd5b6003546107b2908690600160a060020a0316836113c7565b15156107bd57600080fd5b600191506107cb565b600091505b509392505050565b600c54600090600160a060020a031615156101545734156107f357600080fd5b50600261056e565b600c54600160a060020a0316151561015457341561081857600080fd5b60025433600160a060020a0390811691161461083357600080fd5b60055460ff1615610510576005805460ff191690557f2f05ba71d0df11bf5fa562a6569d70c4f80da84284badbe015ce1456063d0ded60405160405180910390a1610510565b600c54600090819081908190600160a060020a0316151561015457341561089f57600080fd5b5050600754600854600954600a5492959194509250565b600c54600090600160a060020a031615156101545734156108d657600080fd5b60025433600160a060020a039081169116146108f157600080fd5b60008211156109a257600160a060020a033316600090815260208190526040902054821161099a57600160a060020a03331660009081526020819052604090205461093c90836113b5565b600160a060020a03331660009081526020819052604090205560045461096290836113b5565b600455600033600160a060020a03166000805160206116a58339815191528460405190815260200160405180910390a35060016109a6565b5060006109a6565b5060015b919050565b600c54600090600160a060020a031615156101545734156109cb57600080fd5b6109d48261151e565b90506109a6565b600c54600090600160a060020a031615156101545734156109fb57600080fd5b50600160a060020a0381166000908152600660205260409020546109a6565b600c54600090600160a060020a03161515610154573415610a3a57600080fd5b60025433600160a060020a03908116911614610a5557600080fd5b60008211156109a257610a71620186a0600019046004546113b5565b821161099a57600160a060020a033316600090815260208190526040902054610a9a9083611539565b600160a060020a033316600090815260208190526040902055600454610ac09083611539565b600455600160a060020a03331660006000805160206116a58339815191528460405190815260200160405180910390a35060016109a6565b610b00611692565b600c54600160a060020a03161515610154573415610b1d57600080fd5b60408051908101604052600481527f45555253000000000000000000000000000000000000000000000000000000006020820152905061056e565b600c54600090600160a060020a03161515610154573415610b7857600080fd5b7da7c5ac471b4784230fcf80dc33721d53cddd6e04c059210385c67dfe32a0821115610ba357600080fd5b620186a0610bb383600a5461154f565b811515610bbc57fe5b049050600854811015610bce57506008545b600954811115610bdd57506009545b6109d481600754611539565b600c54600090600160a060020a03161515610154573415610c0957600080fd5b50600160a060020a0381166000908152600b60205260409020546109a6565b600c54600160a060020a03161515610154573415610c4557600080fd5b60025433600160a060020a03908116911614610c6057600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b600c546000908190600160a060020a03161515610154573415610cae57600080fd5b60055460ff1615610cc25760009150610dd1565b600160a060020a038085166000908152600b6020526040808220543390931682529020541760019081161415610cfb5760009150610dd1565b600160a060020a038085166000908152600b60205260408082205433909316825290205417600290811614610d3857610d3383610b58565b610d3b565b60005b600160a060020a0333166000908152602081905260409020549091508311801590610d885750600160a060020a033316600090815260208190526040902054610d8490846113b5565b8111155b15610dcc57610d97848461157c565b1515610da257600080fd5b600354610db890600160a060020a03168261157c565b1515610dc357600080fd5b60019150610dd1565b600091505b5092915050565b600c54600160a060020a03161515610154573415610df557600080fd5b60025433600160a060020a03908116911614610e1057600080fd5b600160a060020a03919091166000908152600b6020526040902055565b600c54600090819081908190600160a060020a03161515610154573415610e5357600080fd5b60055460ff1615610e6757600093506111b4565b6001610e7161165f565b610e79611663565b8d8d8d8d6040516c01000000000000000000000000600160a060020a039788168102825295871686026014820152939095169093026028830152603c820152605c810191909152607c810191909152609c0160405180910390208888886040516000815260200160405260405193845260ff9092166020808501919091526040808501929092526060840192909252608090920191516020810390808403906000865af11515610f2857600080fd5b505060206040510351600160a060020a0381166000908152600660205260409020549093508814610f5c57600093506111b4565b600160a060020a03808c166000908152600b60205260408082205492861682529020541760019081161415610f9457600093506111b4565b600160a060020a03808c166000908152600b602052604080822054928616825290205417600290811614610fd057610fcb8a610b58565b610fd3565b60005b600160a060020a0384166000908152602081905260409020549092509050808a111561100257600093506111b4565b61100c818b6113b5565b90508082111561101f57600093506111b4565b61102981836113b5565b90508089111561103c57600093506111b4565b611046818a6113b5565b600160a060020a03808516600090815260066020908152604080832060018e01905590829052808220849055918e1681522054909150611086908b611539565b600160a060020a03808d1660009081526020819052604080822093909355600354909116815220546110b89083611539565b600354600160a060020a039081166000908152602081905260408082209390935533909116815220546110eb908a611539565b60008033600160a060020a0316600160a060020a03168152602001908152602001600020819055508a600160a060020a031683600160a060020a03166000805160206116a58339815191528c60405190815260200160405180910390a3600354600160a060020a039081169084166000805160206116a58339815191528460405190815260200160405180910390a333600160a060020a031683600160a060020a03166000805160206116a58339815191528b60405190815260200160405180910390a3600193505b505050979650505050505050565b60025433600160a060020a039081169116146111dd57600080fd5b600c54600160a060020a03828116911614610c8957600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290557f600005b3559a025151f4a40f36d9939d94cf5194016895d4ef6362b211e4c3b59116604051600160a060020a03909116815260200160405180910390a150565b600c54600160a060020a0316151561015457341561127e57600080fd5b60025433600160a060020a0390811691161461129957600080fd5b818311156112a657600080fd5b620186a08111156112b657600080fd5b600784905560088390556009829055600a8190557f650bf5314bb5924368ffebaf7dffcfaa4a0f99c2ab08264c26bf0547f8c459e9848484846040518085815260200184815260200183815260200182815260200194505050505060405180910390a150505050565b600c54600090600160a060020a0316151561015457341561133f57600080fd5b61059b8383611667565b600160a060020a03338116600081815260016020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b6000818310156113c157fe5b50900390565b600160a060020a0380841660009081526001602090815260408083203390941683529290529081205481838210156114025760009250611515565b50600160a060020a0385166000908152602081905260409020548381101561142d5760009250611515565b61143782856113b5565b600160a060020a0380881660009081526001602090815260408083203390941683529290529081209190915584118015611483575084600160a060020a031686600160a060020a031614155b156114db5761149281856113b5565b600160a060020a0380881660009081526020819052604080822093909355908716815220546114c19085611539565b600160a060020a0386166000908152602081905260409020555b84600160a060020a031686600160a060020a03166000805160206116a58339815191528660405190815260200160405180910390a3600192505b50509392505050565b600160a060020a031660009081526020819052604090205490565b600060001982900383111561154a57fe5b500190565b60008115156115605750600061059e565b8160001981151561156d57fe5b0483111561157757fe5b500290565b600160a060020a033316600090815260208190526040812054828110156115a65760009150610dd1565b6000831180156115c8575083600160a060020a031633600160a060020a031614155b15611620576115d781846113b5565b600160a060020a0333811660009081526020819052604080822093909355908616815220546116069084611539565b600160a060020a0385166000908152602081905260409020555b83600160a060020a031633600160a060020a03166000805160206116a58339815191528560405190815260200160405180910390a35060019392505050565b3090565b3390565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b602060405190810160405260008152905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582027e03fc3f414023826a7fb6fd321bb5c5ba610cbb273a99d307095a1b3d0b811002900000000000000000000000070250fcfef983c9b912c8eefb7021b4b7bae836e

Deployed Bytecode

0x6060604052600436106101325763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630150246081146101a657806306fdde03146101ae578063095ea7b31461023857806313af40351461026357806318160ddd1461028257806323b872dd146102a7578063313ce567146102c457806331c420d4146102ed5780634722b4a5146102f55780636d1b229d1461033357806370a082311461033e57806370ae92d21461035d5780637e1f2bb81461037c57806395d89b411461038757806399a5d7471461039a5780639fef0c01146103b0578063a42dce80146103cf578063a9059cbb146103e3578063addd9cef146103fa578063c97e848014610411578063ca5eb5e11461043a578063d5bf2dbe14610459578063dd62ed3e1461046d575b600c54600160a060020a0316151561015457341561014f57600080fd5b600080fd5b600254600c5460405136600082376000813683855af460025484146001811461017c57600080fd5b50600c5483146001811461018f57600080fd5b503d6000833e8080156101a0573d83f35b3d83fd5b005b6101a4610492565b34156101b957600080fd5b6101c1610512565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101fd5780820151838201526020016101e5565b50505050905090810190601f16801561022a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61024f600160a060020a0360043516602435610571565b604051901515815260200160405180910390f35b341561026e57600080fd5b6101a4600160a060020a03600435166105a4565b341561028d57600080fd5b6102956105ee565b60405190815260200160405180910390f35b61024f600160a060020a0360043581169060243516604435610617565b34156102cf57600080fd5b6102d76107d3565b60405160ff909116815260200160405180910390f35b6101a46107fb565b341561030057600080fd5b610308610879565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b61024f6004356108b6565b341561034957600080fd5b610295600160a060020a03600435166109ab565b341561036857600080fd5b610295600160a060020a03600435166109db565b61024f600435610a1a565b341561039257600080fd5b6101c1610af8565b34156103a557600080fd5b610295600435610b58565b34156103bb57600080fd5b610295600160a060020a0360043516610be9565b6101a4600160a060020a0360043516610c28565b61024f600160a060020a0360043516602435610c8c565b6101a4600160a060020a0360043516602435610dd8565b61024f600160a060020a036004351660243560443560643560ff6084351660a43560c435610e2d565b341561044557600080fd5b6101a4600160a060020a03600435166111c2565b6101a4600435602435604435606435611261565b341561047857600080fd5b610295600160a060020a036004358116906024351661131f565b600c54600160a060020a031615156101545734156104af57600080fd5b60025433600160a060020a039081169116146104ca57600080fd5b60055460ff161515610510576005805460ff191660011790557f615acbaede366d76a8b8cb2a9ada6a71495f0786513d71aa97aaf0c3910b78de60405160405180910390a15b565b61051a611692565b600c54600160a060020a0316151561015457341561053757600080fd5b60408051908101604052601181527f535441534953204555525320546f6b656e000000000000000000000000000000602082015290505b90565b600c54600090600160a060020a0316151561015457341561059157600080fd5b61059b8383611349565b90505b92915050565b60025433600160a060020a039081169116146105bf57600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600c54600090600160a060020a0316151561015457341561060e57600080fd5b5060045461056e565b600c546000908190600160a060020a0316151561015457341561063957600080fd5b60055460ff161561064d57600091506107cb565b600160a060020a038085166000908152600b6020526040808220549288168252902054176001908116141561068557600091506107cb565b600160a060020a038085166000908152600b6020526040808220549288168252902054176002908116146106c1576106bc83610b58565b6106c4565b60005b600160a060020a0380871660009081526001602090815260408083203390941683529290522054909150831180159061072d5750600160a060020a038086166000908152600160209081526040808320339094168352929052205461072990846113b5565b8111155b80156107515750600160a060020a0385166000908152602081905260409020548311155b801561077f5750600160a060020a03851660009081526020819052604090205461077b90846113b5565b8111155b156107c65761078f8585856113c7565b151561079a57600080fd5b6003546107b2908690600160a060020a0316836113c7565b15156107bd57600080fd5b600191506107cb565b600091505b509392505050565b600c54600090600160a060020a031615156101545734156107f357600080fd5b50600261056e565b600c54600160a060020a0316151561015457341561081857600080fd5b60025433600160a060020a0390811691161461083357600080fd5b60055460ff1615610510576005805460ff191690557f2f05ba71d0df11bf5fa562a6569d70c4f80da84284badbe015ce1456063d0ded60405160405180910390a1610510565b600c54600090819081908190600160a060020a0316151561015457341561089f57600080fd5b5050600754600854600954600a5492959194509250565b600c54600090600160a060020a031615156101545734156108d657600080fd5b60025433600160a060020a039081169116146108f157600080fd5b60008211156109a257600160a060020a033316600090815260208190526040902054821161099a57600160a060020a03331660009081526020819052604090205461093c90836113b5565b600160a060020a03331660009081526020819052604090205560045461096290836113b5565b600455600033600160a060020a03166000805160206116a58339815191528460405190815260200160405180910390a35060016109a6565b5060006109a6565b5060015b919050565b600c54600090600160a060020a031615156101545734156109cb57600080fd5b6109d48261151e565b90506109a6565b600c54600090600160a060020a031615156101545734156109fb57600080fd5b50600160a060020a0381166000908152600660205260409020546109a6565b600c54600090600160a060020a03161515610154573415610a3a57600080fd5b60025433600160a060020a03908116911614610a5557600080fd5b60008211156109a257610a71620186a0600019046004546113b5565b821161099a57600160a060020a033316600090815260208190526040902054610a9a9083611539565b600160a060020a033316600090815260208190526040902055600454610ac09083611539565b600455600160a060020a03331660006000805160206116a58339815191528460405190815260200160405180910390a35060016109a6565b610b00611692565b600c54600160a060020a03161515610154573415610b1d57600080fd5b60408051908101604052600481527f45555253000000000000000000000000000000000000000000000000000000006020820152905061056e565b600c54600090600160a060020a03161515610154573415610b7857600080fd5b7da7c5ac471b4784230fcf80dc33721d53cddd6e04c059210385c67dfe32a0821115610ba357600080fd5b620186a0610bb383600a5461154f565b811515610bbc57fe5b049050600854811015610bce57506008545b600954811115610bdd57506009545b6109d481600754611539565b600c54600090600160a060020a03161515610154573415610c0957600080fd5b50600160a060020a0381166000908152600b60205260409020546109a6565b600c54600160a060020a03161515610154573415610c4557600080fd5b60025433600160a060020a03908116911614610c6057600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b600c546000908190600160a060020a03161515610154573415610cae57600080fd5b60055460ff1615610cc25760009150610dd1565b600160a060020a038085166000908152600b6020526040808220543390931682529020541760019081161415610cfb5760009150610dd1565b600160a060020a038085166000908152600b60205260408082205433909316825290205417600290811614610d3857610d3383610b58565b610d3b565b60005b600160a060020a0333166000908152602081905260409020549091508311801590610d885750600160a060020a033316600090815260208190526040902054610d8490846113b5565b8111155b15610dcc57610d97848461157c565b1515610da257600080fd5b600354610db890600160a060020a03168261157c565b1515610dc357600080fd5b60019150610dd1565b600091505b5092915050565b600c54600160a060020a03161515610154573415610df557600080fd5b60025433600160a060020a03908116911614610e1057600080fd5b600160a060020a03919091166000908152600b6020526040902055565b600c54600090819081908190600160a060020a03161515610154573415610e5357600080fd5b60055460ff1615610e6757600093506111b4565b6001610e7161165f565b610e79611663565b8d8d8d8d6040516c01000000000000000000000000600160a060020a039788168102825295871686026014820152939095169093026028830152603c820152605c810191909152607c810191909152609c0160405180910390208888886040516000815260200160405260405193845260ff9092166020808501919091526040808501929092526060840192909252608090920191516020810390808403906000865af11515610f2857600080fd5b505060206040510351600160a060020a0381166000908152600660205260409020549093508814610f5c57600093506111b4565b600160a060020a03808c166000908152600b60205260408082205492861682529020541760019081161415610f9457600093506111b4565b600160a060020a03808c166000908152600b602052604080822054928616825290205417600290811614610fd057610fcb8a610b58565b610fd3565b60005b600160a060020a0384166000908152602081905260409020549092509050808a111561100257600093506111b4565b61100c818b6113b5565b90508082111561101f57600093506111b4565b61102981836113b5565b90508089111561103c57600093506111b4565b611046818a6113b5565b600160a060020a03808516600090815260066020908152604080832060018e01905590829052808220849055918e1681522054909150611086908b611539565b600160a060020a03808d1660009081526020819052604080822093909355600354909116815220546110b89083611539565b600354600160a060020a039081166000908152602081905260408082209390935533909116815220546110eb908a611539565b60008033600160a060020a0316600160a060020a03168152602001908152602001600020819055508a600160a060020a031683600160a060020a03166000805160206116a58339815191528c60405190815260200160405180910390a3600354600160a060020a039081169084166000805160206116a58339815191528460405190815260200160405180910390a333600160a060020a031683600160a060020a03166000805160206116a58339815191528b60405190815260200160405180910390a3600193505b505050979650505050505050565b60025433600160a060020a039081169116146111dd57600080fd5b600c54600160a060020a03828116911614610c8957600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290557f600005b3559a025151f4a40f36d9939d94cf5194016895d4ef6362b211e4c3b59116604051600160a060020a03909116815260200160405180910390a150565b600c54600160a060020a0316151561015457341561127e57600080fd5b60025433600160a060020a0390811691161461129957600080fd5b818311156112a657600080fd5b620186a08111156112b657600080fd5b600784905560088390556009829055600a8190557f650bf5314bb5924368ffebaf7dffcfaa4a0f99c2ab08264c26bf0547f8c459e9848484846040518085815260200184815260200183815260200182815260200194505050505060405180910390a150505050565b600c54600090600160a060020a0316151561015457341561133f57600080fd5b61059b8383611667565b600160a060020a03338116600081815260016020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b6000818310156113c157fe5b50900390565b600160a060020a0380841660009081526001602090815260408083203390941683529290529081205481838210156114025760009250611515565b50600160a060020a0385166000908152602081905260409020548381101561142d5760009250611515565b61143782856113b5565b600160a060020a0380881660009081526001602090815260408083203390941683529290529081209190915584118015611483575084600160a060020a031686600160a060020a031614155b156114db5761149281856113b5565b600160a060020a0380881660009081526020819052604080822093909355908716815220546114c19085611539565b600160a060020a0386166000908152602081905260409020555b84600160a060020a031686600160a060020a03166000805160206116a58339815191528660405190815260200160405180910390a3600192505b50509392505050565b600160a060020a031660009081526020819052604090205490565b600060001982900383111561154a57fe5b500190565b60008115156115605750600061059e565b8160001981151561156d57fe5b0483111561157757fe5b500290565b600160a060020a033316600090815260208190526040812054828110156115a65760009150610dd1565b6000831180156115c8575083600160a060020a031633600160a060020a031614155b15611620576115d781846113b5565b600160a060020a0333811660009081526020819052604080822093909355908616815220546116069084611539565b600160a060020a0385166000908152602081905260409020555b83600160a060020a031633600160a060020a03166000805160206116a58339815191528560405190815260200160405180910390a35060019392505050565b3090565b3390565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b602060405190810160405260008152905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582027e03fc3f414023826a7fb6fd321bb5c5ba610cbb273a99d307095a1b3d0b8110029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000070250fcFEf983C9b912c8EEFB7021B4b7baE836e

-----Decoded View---------------
Arg [0] : _feeCollector (address): 0x70250fcFEf983C9b912c8EEFB7021B4b7baE836e

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000070250fcFEf983C9b912c8EEFB7021B4b7baE836e


Swarm Source

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