Contract 0xdb25f211ab05b1c97d595516f45794528a807ad8

 

TxHash Block Age From To Value [TxFee]
0xad96c59bad408d4a3eaf0c1568ba28a59794e3301f1650b9b7166ac03b4cb560(pending)2 mins ago0xf03291249e9252c4e1dc17dee2df37f59b129a2d IN 0xdb25f211ab05b1c97d595516f45794528a807ad80 Ether(Pending)
0xd277173146ea5dd99dd843412621002577f11bc45ef223aabe6981fcb69c64ed72498436 mins ago0x4d985d2cc519ec61557aa918604dd172ccdedc96 IN  EURS_Token0 Ether0.000627516
0x7bc9b2b8fce52c30fb9636e5ad3642a53fb9fa71ca0d51667b21ec07c83d1e96724982912 mins ago0x001c356c0be5dd6c91ca24ef04d9e10081510682 IN  EURS_Token0 Ether0.00128298
0x865d7a4fff74bfff52dceab70e20166c6040c6950dda729d5b0826a51defb9b7724979524 mins ago0x001c356c0be5dd6c91ca24ef04d9e10081510682 IN  EURS_Token0 Ether0.00083202
0x3d49ff0a95c3f7ae46b70bb0665a72bc1f4f20b15e910de018eb9b1a9090d55c724978329 mins ago0x001c356c0be5dd6c91ca24ef04d9e10081510682 IN  EURS_Token0 Ether0.00128202
0x0cd330ad43108d97a3f0987f612840b41f7920ce414e59d8bf599d728aac49ba724976137 mins ago0x84eb4e7568651c7d3d05b228af27fa7e63f4d24d IN  EURS_Token0 Ether0.000221728
0x5bef465d97a71a5acfb45f14cac19bb6dbf1edf39590218f7b8b66af8d66588f724975140 mins ago0x001c356c0be5dd6c91ca24ef04d9e10081510682 IN  EURS_Token0 Ether0.00128298
0x25a70970a5d75fcfdc73c79ff6f626802b17e421da4c74ba958f6b03626eee76724973446 mins ago0x0108a4ea2a504f55a53aac896ba0c2bc7dbfcbdb IN  EURS_Token0 Ether0.00054724
0x8d037e690beb4121d0dca114499d8c9b36ddbcdd3d27f94f9f31d297eee15fe2724972650 mins ago0x001c356c0be5dd6c91ca24ef04d9e10081510682 IN  EURS_Token0 Ether0.00105798
0xa9044fe20daa35bff70805b9ddecafbb1df81109936cf527ebe4ff2c49958e86724971653 mins ago0x001c356c0be5dd6c91ca24ef04d9e10081510682 IN  EURS_Token0 Ether0.00105702
0xd27c5f1afcb34c00cb7f42fbc0bb29fe70c68f0a107d72ac82f4527e22a5bed5724971653 mins ago0x001c356c0be5dd6c91ca24ef04d9e10081510682 IN  EURS_Token0 Ether0.00083298
0x7c4f59f045c905e9fa7a5cfbe4b52dfe78de0b27365db92f84942a615cebb0e9724970557 mins ago0x001c356c0be5dd6c91ca24ef04d9e10081510682 IN  EURS_Token0 Ether0.00128298
0x15b9d76fafa827d6f2b29fc9b06532cb184dcf4f8729f2bf0fdfc186f8eb903b72496761 hr 8 mins ago0x001c356c0be5dd6c91ca24ef04d9e10081510682 IN  EURS_Token0 Ether0.00083298
0xdba8ed411f4fc919d386524424852570e28f5065c8a16e719a0294754b8478ff72496611 hr 11 mins ago0x001c356c0be5dd6c91ca24ef04d9e10081510682 IN  EURS_Token0 Ether0.00083298
0xaac55220a1b6e71a19e3697fc2c6a6255f96f4984244866744b2953a1edfc9dd72496491 hr 14 mins ago0x001c356c0be5dd6c91ca24ef04d9e10081510682 IN  EURS_Token0 Ether0.00083298
0x6a141d16116b973ece0d2452f8f3a2d9ce638883689872f4b4128798dfddf20072496231 hr 22 mins ago0x001c356c0be5dd6c91ca24ef04d9e10081510682 IN  EURS_Token0 Ether0.00083298
0x0a590e5ea07be3e936079c7ad233fdb69805018e81075331cc2a2bf7d2a8203872496051 hr 28 mins ago0x001c356c0be5dd6c91ca24ef04d9e10081510682 IN  EURS_Token0 Ether0.00128298
0xf16e97007e5b253e699206a078dc49a3c984750089750d24d02b8d0cc1ce484972495721 hr 38 mins ago0x001c356c0be5dd6c91ca24ef04d9e10081510682 IN  EURS_Token0 Ether0.00128298
0xfc45afdacdaa51baaa7e43ad7168712b58dc8466884eebefda51c2e737137eb672495321 hr 46 mins ago0x001c356c0be5dd6c91ca24ef04d9e10081510682 IN  EURS_Token0 Ether0.00128298
0xa1446f4bddf6356bc990a7c4aa38c8163d1b635692978d263cafe32068be01ae72495151 hr 52 mins ago0x001c356c0be5dd6c91ca24ef04d9e10081510682 IN  EURS_Token0 Ether0.00128202
0x6abe3c4e86c3b4b9076085f86ff2b681e06fecadbd88dadac18417433ed709c872495071 hr 57 mins ago0x001c356c0be5dd6c91ca24ef04d9e10081510682 IN  EURS_Token0 Ether0.00128202
0xd29756b89cc5c257b4777832a4769280d385a738fd16093a40791575c823f4ff72494672 hrs 10 mins ago0x001c356c0be5dd6c91ca24ef04d9e10081510682 IN  EURS_Token0 Ether0.00128298
0x62857d744a750dd79f555387b5d54d6290473a0c7ab22904d96cf8f75fdd0bef72494452 hrs 15 mins ago0x1bc07a1e61831731be3c3bc54f65bc7610d445d9 IN  EURS_Token0 Ether0.00025431
0xf6118cd59bc8a3ee91d93478b47b398f8f951ce01216024178e804046b5160e572494442 hrs 16 mins ago0x001c356c0be5dd6c91ca24ef04d9e10081510682 IN  EURS_Token0 Ether0.00128298
0x885e5a9d59ac31f45e46b627c9074ef77d64ee01217bb65f4d68ca155e8a1d1972494162 hrs 26 mins ago0xc526e26a698889ae156bf232cfda255f90562fbe IN  EURS_Token0 Ether0.000875584
[ Download CSV Export 

Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) Solidity Compiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: EURSToken
Compiler Version: v0.4.21+commit.dfe3193c
Optimization Enabled: Yes
Runs (Optimizer):  200


Contract Source Code
/**
 * 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 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"}]

Contract Creation Code
6060604052341561000f57600080fd5b604051602080611764833981016040528080516101f4600755600060088190556009819055600a5560028054600160a060020a03338116600160a060020a0319928316179092556003805492909316911617905550506116f0806100746000396000f3006060604052600436106101325763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630150246081146101a657806306fdde03146101ae578063095ea7b31461023857806313af40351461026357806318160ddd1461028257806323b872dd146102a7578063313ce567146102c457806331c420d4146102ed5780634722b4a5146102f55780636d1b229d1461033357806370a082311461033e57806370ae92d21461035d5780637e1f2bb81461037c57806395d89b411461038757806399a5d7471461039a5780639fef0c01146103b0578063a42dce80146103cf578063a9059cbb146103e3578063addd9cef146103fa578063c97e848014610411578063ca5eb5e11461043a578063d5bf2dbe14610459578063dd62ed3e1461046d575b600c54600160a060020a0316151561015457341561014f57600080fd5b600080fd5b600254600c5460405136600082376000813683855af460025484146001811461017c57600080fd5b50600c5483146001811461018f57600080fd5b503d6000833e8080156101a0573d83f35b3d83fd5b005b6101a4610492565b34156101b957600080fd5b6101c1610512565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101fd5780820151838201526020016101e5565b50505050905090810190601f16801561022a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61024f600160a060020a0360043516602435610571565b604051901515815260200160405180910390f35b341561026e57600080fd5b6101a4600160a060020a03600435166105a4565b341561028d57600080fd5b6102956105ee565b60405190815260200160405180910390f35b61024f600160a060020a0360043581169060243516604435610617565b34156102cf57600080fd5b6102d76107d3565b60405160ff909116815260200160405180910390f35b6101a46107fb565b341561030057600080fd5b610308610879565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b61024f6004356108b6565b341561034957600080fd5b610295600160a060020a03600435166109ab565b341561036857600080fd5b610295600160a060020a03600435166109db565b61024f600435610a1a565b341561039257600080fd5b6101c1610af8565b34156103a557600080fd5b610295600435610b58565b34156103bb57600080fd5b610295600160a060020a0360043516610be9565b6101a4600160a060020a0360043516610c28565b61024f600160a060020a0360043516602435610c8c565b6101a4600160a060020a0360043516602435610dd8565b61024f600160a060020a036004351660243560443560643560ff6084351660a43560c435610e2d565b341561044557600080fd5b6101a4600160a060020a03600435166111c2565b6101a4600435602435604435606435611261565b341561047857600080fd5b610295600160a060020a036004358116906024351661131f565b600c54600160a060020a031615156101545734156104af57600080fd5b60025433600160a060020a039081169116146104ca57600080fd5b60055460ff161515610510576005805460ff191660011790557f615acbaede366d76a8b8cb2a9ada6a71495f0786513d71aa97aaf0c3910b78de60405160405180910390a15b565b61051a611692565b600c54600160a060020a0316151561015457341561053757600080fd5b60408051908101604052601181527f535441534953204555525320546f6b656e000000000000000000000000000000602082015290505b90565b600c54600090600160a060020a0316151561015457341561059157600080fd5b61059b8383611349565b90505b92915050565b60025433600160a060020a039081169116146105bf57600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600c54600090600160a060020a0316151561015457341561060e57600080fd5b5060045461056e565b600c546000908190600160a060020a0316151561015457341561063957600080fd5b60055460ff161561064d57600091506107cb565b600160a060020a038085166000908152600b6020526040808220549288168252902054176001908116141561068557600091506107cb565b600160a060020a038085166000908152600b6020526040808220549288168252902054176002908116146106c1576106bc83610b58565b6106c4565b60005b600160a060020a0380871660009081526001602090815260408083203390941683529290522054909150831180159061072d5750600160a060020a038086166000908152600160209081526040808320339094168352929052205461072990846113b5565b8111155b80156107515750600160a060020a0385166000908152602081905260409020548311155b801561077f5750600160a060020a03851660009081526020819052604090205461077b90846113b5565b8111155b156107c65761078f8585856113c7565b151561079a57600080fd5b6003546107b2908690600160a060020a0316836113c7565b15156107bd57600080fd5b600191506107cb565b600091505b509392505050565b600c54600090600160a060020a031615156101545734156107f357600080fd5b50600261056e565b600c54600160a060020a0316151561015457341561081857600080fd5b60025433600160a060020a0390811691161461083357600080fd5b60055460ff1615610510576005805460ff191690557f2f05ba71d0df11bf5fa562a6569d70c4f80da84284badbe015ce1456063d0ded60405160405180910390a1610510565b600c54600090819081908190600160a060020a0316151561015457341561089f57600080fd5b5050600754600854600954600a5492959194509250565b600c54600090600160a060020a031615156101545734156108d657600080fd5b60025433600160a060020a039081169116146108f157600080fd5b60008211156109a257600160a060020a033316600090815260208190526040902054821161099a57600160a060020a03331660009081526020819052604090205461093c90836113b5565b600160a060020a03331660009081526020819052604090205560045461096290836113b5565b600455600033600160a060020a03166000805160206116a58339815191528460405190815260200160405180910390a35060016109a6565b5060006109a6565b5060015b919050565b600c54600090600160a060020a031615156101545734156109cb57600080fd5b6109d48261151e565b90506109a6565b600c54600090600160a060020a031615156101545734156109fb57600080fd5b50600160a060020a0381166000908152600660205260409020546109a6565b600c54600090600160a060020a03161515610154573415610a3a57600080fd5b60025433600160a060020a03908116911614610a5557600080fd5b60008211156109a257610a71620186a0600019046004546113b5565b821161099a57600160a060020a033316600090815260208190526040902054610a9a9083611539565b600160a060020a033316600090815260208190526040902055600454610ac09083611539565b600455600160a060020a03331660006000805160206116a58339815191528460405190815260200160405180910390a35060016109a6565b610b00611692565b600c54600160a060020a03161515610154573415610b1d57600080fd5b60408051908101604052600481527f45555253000000000000000000000000000000000000000000000000000000006020820152905061056e565b600c54600090600160a060020a03161515610154573415610b7857600080fd5b7da7c5ac471b4784230fcf80dc33721d53cddd6e04c059210385c67dfe32a0821115610ba357600080fd5b620186a0610bb383600a5461154f565b811515610bbc57fe5b049050600854811015610bce57506008545b600954811115610bdd57506009545b6109d481600754611539565b600c54600090600160a060020a03161515610154573415610c0957600080fd5b50600160a060020a0381166000908152600b60205260409020546109a6565b600c54600160a060020a03161515610154573415610c4557600080fd5b60025433600160a060020a03908116911614610c6057600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b600c546000908190600160a060020a03161515610154573415610cae57600080fd5b60055460ff1615610cc25760009150610dd1565b600160a060020a038085166000908152600b6020526040808220543390931682529020541760019081161415610cfb5760009150610dd1565b600160a060020a038085166000908152600b60205260408082205433909316825290205417600290811614610d3857610d3383610b58565b610d3b565b60005b600160a060020a0333166000908152602081905260409020549091508311801590610d885750600160a060020a033316600090815260208190526040902054610d8490846113b5565b8111155b15610dcc57610d97848461157c565b1515610da257600080fd5b600354610db890600160a060020a03168261157c565b1515610dc357600080fd5b60019150610dd1565b600091505b5092915050565b600c54600160a060020a03161515610154573415610df557600080fd5b60025433600160a060020a03908116911614610e1057600080fd5b600160a060020a03919091166000908152600b6020526040902055565b600c54600090819081908190600160a060020a03161515610154573415610e5357600080fd5b60055460ff1615610e6757600093506111b4565b6001610e7161165f565b610e79611663565b8d8d8d8d6040516c01000000000000000000000000600160a060020a039788168102825295871686026014820152939095169093026028830152603c820152605c810191909152607c810191909152609c0160405180910390208888886040516000815260200160405260405193845260ff9092166020808501919091526040808501929092526060840192909252608090920191516020810390808403906000865af11515610f2857600080fd5b505060206040510351600160a060020a0381166000908152600660205260409020549093508814610f5c57600093506111b4565b600160a060020a03808c166000908152600b60205260408082205492861682529020541760019081161415610f9457600093506111b4565b600160a060020a03808c166000908152600b602052604080822054928616825290205417600290811614610fd057610fcb8a610b58565b610fd3565b60005b600160a060020a0384166000908152602081905260409020549092509050808a111561100257600093506111b4565b61100c818b6113b5565b90508082111561101f57600093506111b4565b61102981836113b5565b90508089111561103c57600093506111b4565b611046818a6113b5565b600160a060020a03808516600090815260066020908152604080832060018e01905590829052808220849055918e1681522054909150611086908b611539565b600160a060020a03808d1660009081526020819052604080822093909355600354909116815220546110b89083611539565b600354600160a060020a039081166000908152602081905260408082209390935533909116815220546110eb908a611539565b60008033600160a060020a0316600160a060020a03168152602001908152602001600020819055508a600160a060020a031683600160a060020a03166000805160206116a58339815191528c60405190815260200160405180910390a3600354600160a060020a039081169084166000805160206116a58339815191528460405190815260200160405180910390a333600160a060020a031683600160a060020a03166000805160206116a58339815191528b60405190815260200160405180910390a3600193505b505050979650505050505050565b60025433600160a060020a039081169116146111dd57600080fd5b600c54600160a060020a03828116911614610c8957600c805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290557f600005b3559a025151f4a40f36d9939d94cf5194016895d4ef6362b211e4c3b59116604051600160a060020a03909116815260200160405180910390a150565b600c54600160a060020a0316151561015457341561127e57600080fd5b60025433600160a060020a0390811691161461129957600080fd5b818311156112a657600080fd5b620186a08111156112b657600080fd5b600784905560088390556009829055600a8190557f650bf5314bb5924368ffebaf7dffcfaa4a0f99c2ab08264c26bf0547f8c459e9848484846040518085815260200184815260200183815260200182815260200194505050505060405180910390a150505050565b600c54600090600160a060020a0316151561015457341561133f57600080fd5b61059b8383611667565b600160a060020a03338116600081815260016020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b6000818310156113c157fe5b50900390565b600160a060020a0380841660009081526001602090815260408083203390941683529290529081205481838210156114025760009250611515565b50600160a060020a0385166000908152602081905260409020548381101561142d5760009250611515565b61143782856113b5565b600160a060020a0380881660009081526001602090815260408083203390941683529290529081209190915584118015611483575084600160a060020a031686600160a060020a031614155b156114db5761149281856113b5565b600160a060020a0380881660009081526020819052604080822093909355908716815220546114c19085611539565b600160a060020a0386166000908152602081905260409020555b84600160a060020a031686600160a060020a03166000805160206116a58339815191528660405190815260200160405180910390a3600192505b50509392505050565b600160a060020a031660009081526020819052604090205490565b600060001982900383111561154a57fe5b500190565b60008115156115605750600061059e565b8160001981151561156d57fe5b0483111561157757fe5b500290565b600160a060020a033316600090815260208190526040812054828110156115a65760009150610dd1565b6000831180156115c8575083600160a060020a031633600160a060020a031614155b15611620576115d781846113b5565b600160a060020a0333811660009081526020819052604080822093909355908616815220546116069084611539565b600160a060020a0385166000908152602081905260409020555b83600160a060020a031633600160a060020a03166000805160206116a58339815191528560405190815260200160405180910390a35060019392505050565b3090565b3390565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b602060405190810160405260008152905600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582027e03fc3f414023826a7fb6fd321bb5c5ba610cbb273a99d307095a1b3d0b811002900000000000000000000000070250fcfef983c9b912c8eefb7021b4b7bae836e


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

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


   Swarm Source:
bzzr://27e03fc3f414023826a7fb6fd321bb5c5ba610cbb273a99d307095a1b3d0b811
Block Age transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.