Latest 25 txns From a total of 5646 Transactions

TxHash Age From To Value [TxFee]
0x0e945b534930d388a6e77502f338dcfd12c1b210c05fa608d41dfea5c5b1a77095 days 8 hrs ago0x5fd968e97083b9f68cfe4d5206dba861b049059d  IN   INSPromoToken0 Ether0.00004594288
0xc1dc8a766a82966c7dfa4f01c2901b364066c68a4f9dcfe0d5484d6d4e403d50107 days 23 hrs ago0x69cff15a4c9c0419c538869bd3b2715bbe6a28d4  IN   INSPromoToken0 Ether0.00183488
0x8ddb8a075db3dc883823549021d26a82dac0ed3ad20c62d6baf198024bc619e0107 days 23 hrs ago0x69cff15a4c9c0419c538869bd3b2715bbe6a28d4  IN   INSPromoToken0 Ether0.001784016
0x0b0b83795d3f9cc70a6e796afb134edfc73b36498da1d63df0fa53119cae1916119 days 21 hrs ago0xaef6582647ccfa91575d7bcb2672e4f33e021876  IN   INSPromoToken0.001 Ether0.000105
0x06b681ea770ce70e97b333750cdf8433565a60b9687430927b527dea0df977f1133 days 6 hrs ago0x203c94e654a4cd9f484020b1efdbef4c152dfed7  IN   INSPromoToken0 Ether0.000042
0xde4c00af0dee4ea16b2b59cdb07b880f0cfbfd4e49364cdf859a665a4472787d138 days 5 hrs ago0x406f4533b2f6209812d7ef9c7d69b8c54217c208  IN   INSPromoToken0 Ether0.000525
0x1354a327bf15dc165b082d3ca53f0178d923d0e174e04fb99f068aee2c07b093146 days 10 hrs ago0xc9459c04038da2026a2b409fb8d545566b3f796f  IN   INSPromoToken0 Ether0.000389912
0x4702f2be2f409477797d3716921fcf505afda6da0cf9a436edff7d2fa8c38c6e146 days 10 hrs ago0xc9459c04038da2026a2b409fb8d545566b3f796f  IN   INSPromoToken0 Ether0.000389912
0xe990d7e90a35534999b9be487f74d003d33677f0879e31957851502c9fb81180148 days 21 hrs ago0x6f015ed8d96b5eb9501ce3e6c1c5a345a91b2b9a  IN   INSPromoToken0 Ether0.000191100005
0x46ef2b17ca68c5907a28231435302b27fafe39e5b92f7807ef2023e76722e8c3162 days 2 hrs ago0xb5cbb1b8a20a086857a95b7f157d3349a1304909  IN   INSPromoToken0 Ether0.000366976
0x4179595c12976e65bc7b65aadf5fd86e773e4d5f92d5b5094c49ad2d16aeb878162 days 2 hrs ago0xb5cbb1b8a20a086857a95b7f157d3349a1304909  IN   INSPromoToken0 Ether0.000206424
0x175ff344332a0e670d650dd819360558776421811d765998aa2afc5eff3a4736166 days 6 hrs ago0x78abc823ebe009974f638de62312ef05f715f0fe  IN   INSPromoToken0 Ether0.000205848
0x693fd804df1b35bbd4e4ab2d709403c7404cdefb19717f23c38b8a05159fffe1166 days 6 hrs ago0x78abc823ebe009974f638de62312ef05f715f0fe  IN   INSPromoToken0 Ether0.000205848
0xe902fa66b0a31da1c319379053dbb89b27139192a5a0602c4137c336c46443d6181 days 20 hrs ago0xc336ec61ec2ce648784f67bfd81cf2458bebbbc9  IN   INSPromoToken0.0000001 Ether0.00168
0xc55027bbaebaec40599479288168fd120bcfbe58ac4ddbf7a7c24fc66f3870f3189 days 2 hrs ago0xd56557992d0e4879f6eb2782044117f1f681940a  IN   INSPromoToken0 Ether0.000091488
0x6393c709a8bf808f74c719d48ff60680b9f29442c1bd881a15fe51782a19b908214 days 2 hrs ago0xd8ede3cc3c0b43b90e35891619cb65573c92afd9  IN   INSPromoToken0 Ether0.0000022872
0x3b23e9e6d139061190f717a2c78bfc2ce1e63260c4e585c04aa8e22234b6010b215 days 5 hrs ago0x17cb4341ef4d9132f9c86b335f6dd6010f6aea9a  IN   INSPromoToken0 Ether0.000022872
0x4dfd11d293ccb8d883bfa626131df26714d3ad1831988164ec48057e3572b0cc215 days 16 hrs ago0x5263261bad400def63af145270b2bd144ec64e14  IN   INSPromoToken0 Ether0.000091488
0x1a4cb0307e2c7e605aef8a506ef6fd5bd5ceedf250375fd4bed640208e5f5ec8215 days 16 hrs ago0x5263261bad400def63af145270b2bd144ec64e14  IN   INSPromoToken0 Ether0.00011436
0x00179439f539adcee5ed703ddfcc78c3836aef53e7451bb004a5110ca7c133db215 days 16 hrs ago0x5263261bad400def63af145270b2bd144ec64e14  IN   INSPromoToken0 Ether0.00011436
0xfbf306048804b0b3b85051595db0b078cb8b03eeafbf17b25802a3b93a584a76215 days 16 hrs ago0x5263261bad400def63af145270b2bd144ec64e14  IN   INSPromoToken0 Ether0.000137232
0x0b34bc1d5534cb152612f43f1ae883ed88c2ffc19bb71147e8078ed1e82a53cc215 days 16 hrs ago0x5263261bad400def63af145270b2bd144ec64e14  IN   INSPromoToken0 Ether0.00011436
0x6555c97cf0d93f7b5a35a9a59270d991967a9fd2cb71508c801823c9fc37f075215 days 16 hrs ago0x5263261bad400def63af145270b2bd144ec64e14  IN   INSPromoToken0 Ether0.000082519237
0xb105d9510f3f7cc083bea9ecd5bd8ea39c14575c1e2df3fec0dc6f0973631130215 days 16 hrs ago0x5263261bad400def63af145270b2bd144ec64e14  IN   INSPromoToken0 Ether0.00011436
0x8396dd9fe4addef07faa3a1e354a0582fa4a79e7b3566e12b065447fcd090e88215 days 16 hrs ago0x5263261bad400def63af145270b2bd144ec64e14  IN   INSPromoToken0 Ether0.00011436
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 1 Internal Transaction

ParentTxHash Block Age From To Value
0x54ad1a3d34954fb92919534abb18dda3d926f583b3c703be16b83c6d054f79874794689302 days 17 mins ago0x52903256dd18d85c2dc4a6c999907c9793ea61e30x47284536f60ca404106c399176d4f3ee8fa6fd570 Ether
[ Download CSV Export  ] 
Contract Self Destruct Called At TxHash 0x54ad1a3d34954fb92919534abb18dda3d926f583b3c703be16b83c6d054f7987

Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), NestedArrayFunctionCallDecoder (medium-severity), ZeroFunctionSelector (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: INSPromoToken
Compiler Text: v0.4.16+commit.d7661dd9
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

/*
 * Safe Math Smart Contract.  Copyright © 2016–2017 by ABDK Consulting.
 * Author: Mikhail Vladimirov <[email protected]>
 */
pragma solidity ^0.4.16;

/**
 * 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)
  constant 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)
  constant 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)
  constant 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;
  }
}

/*
 * ERC-20 Standard Token Smart Contract Interface.
 * Copyright © 2016–2017 by ABDK Consulting.
 * Author: Mikhail Vladimirov <[email protected]>
 */

/**
 * ERC-20 standard token interface, as defined
 * <a href="http://github.com/ethereum/EIPs/issues/20">here</a>.
 */
contract Token {
  /**
   * Get total number of tokens in circulation.
   *
   * @return total number of tokens in circulation
   */
  function totalSupply () constant 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) constant 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) 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)
  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) 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) constant
  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 © 2017 by ABDK Consulting.
 * Author: Mikhail Vladimirov <[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 () {
    // 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) constant 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) 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)
  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) 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) constant
  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) 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)) private allowances;
}


/*
 * Abstract Virtual Token Smart Contract.  Copyright © 2017 by ABDK Consulting.
 * Author: Mikhail Vladimirov <[email protected]>
 */

/**
 * Abstract Token Smart Contract that could be used as a base contract for
 * ERC-20 token contracts supporting virtual balance.
 */
contract AbstractVirtualToken is AbstractToken {
  /**
   * Maximum number of real (i.e. non-virtual) tokens in circulation (2^255-1).
   */
  uint256 constant MAXIMUM_TOKENS_COUNT =
    0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;

  /**
   * Mask used to extract real balance of an account (2^255-1).
   */
  uint256 constant BALANCE_MASK =
    0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;

  /**
   * Mask used to extract "materialized" flag of an account (2^255).
   */
  uint256 constant MATERIALIZED_FLAG_MASK =
    0x8000000000000000000000000000000000000000000000000000000000000000;

  /**
   * Create new Abstract Virtual Token contract.
   */
  function AbstractVirtualToken () AbstractToken () {
    // Do nothing
  }

  /**
   * Get total number of tokens in circulation.
   *
   * @return total number of tokens in circulation
   */
  function totalSupply () constant returns (uint256 supply) {
    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) constant returns (uint256 balance) {
    return safeAdd (
      accounts [_owner] & BALANCE_MASK, getVirtualBalance (_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) returns (bool success) {
    if (_value > balanceOf (msg.sender)) return false;
    else {
      materializeBalanceIfNeeded (msg.sender, _value);
      return AbstractToken.transfer (_to, _value);
    }
  }

  /**
   * 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)
  returns (bool success) {
    if (_value > allowance (_from, msg.sender)) return false;
    if (_value > balanceOf (_from)) return false;
    else {
      materializeBalanceIfNeeded (_from, _value);
      return AbstractToken.transferFrom (_from, _to, _value);
    }
  }

  /**
   * Get virtual balance of the owner of given address.
   *
   * @param _owner address to get virtual balance for the owner of
   * @return virtual balance of the owner of given address
   */
  function virtualBalanceOf (address _owner)
  internal constant returns (uint256 _virtualBalance);

  /**
   * Calculate virtual balance of the owner of given address taking into account
   * materialized flag and total number of real tokens already in circulation.
   */
  function getVirtualBalance (address _owner)
  private constant returns (uint256 _virtualBalance) {
    if (accounts [_owner] & MATERIALIZED_FLAG_MASK != 0) return 0;
    else {
      _virtualBalance = virtualBalanceOf (_owner);
      uint256 maxVirtualBalance = safeSub (MAXIMUM_TOKENS_COUNT, tokensCount);
      if (_virtualBalance > maxVirtualBalance)
        _virtualBalance = maxVirtualBalance;
    }
  }

  /**
   * Materialize virtual balance of the owner of given address if this will help
   * to transfer given number of tokens from it.
   *
   * @param _owner address to materialize virtual balance of
   * @param _value number of tokens to be transferred
   */
  function materializeBalanceIfNeeded (address _owner, uint256 _value) private {
    uint256 storedBalance = accounts [_owner];
    if (storedBalance & MATERIALIZED_FLAG_MASK == 0) {
      // Virtual balance is not materialized yet
      if (_value > storedBalance) {
        // Real balance is not enough
        uint256 virtualBalance = getVirtualBalance (_owner);
        require (safeSub (_value, storedBalance) <= virtualBalance);
        accounts [_owner] = MATERIALIZED_FLAG_MASK |
          safeAdd (storedBalance, virtualBalance);
        tokensCount = safeAdd (tokensCount, virtualBalance);
      }
    }
  }

  /**
   * Number of real (i.e. non-virtual) tokens in circulation.
   */
  uint256 tokensCount;
}

/*
 * INS Promo Token Smart Contract.  Copyright © 2016-2017 by ABDK Consulting.
 * Author: Mikhail Vladimirov <[email protected]>
 */

/**
 * EIP-20 token smart contract that manages INS promo tokens.
 */
contract INSPromoToken is AbstractVirtualToken {
  /**
   * Balance threshold to assign virtual tokens to the owner of higher balances
   * then this threshold.
   */
  uint256 private constant VIRTUAL_THRESHOLD = 0.1 ether;
  
  /**
   * Number of virtual tokens to assign to the owners of balances higher than
   * virtual threshold.
   */
  uint256 private constant VIRTUAL_COUNT = 777;
  
  /**
   * Create new INS Promo Token smart contract and make message sender to be
   * the owner of smart contract.
   */
  function INSPromoToken () AbstractVirtualToken () {
    owner = msg.sender;
  }

  /**
   * Get name of this token.
   *
   * @return name of this token
   */
  function name () constant returns (string result) {
    return "INS Promo";
  }

  /**
   * Get symbol of this token.
   *
   * @return symbol of this token
   */
  function symbol () constant returns (string result) {
    return "INSP";
  }

  /**
   * Get number of decimals for this token.
   *
   * @return number of decimals for this token
   */
  function decimals () constant returns (uint8 result) {
    return 0;
  }

  /**
   * Notify owners about their virtual balances.
   *
   * @param _owners addresses of the owners to be notified
   */
  function massNotify (address [] _owners) {
    require (msg.sender == owner);
    uint256 count = _owners.length;
    for (uint256 i = 0; i < count; i++)
      Transfer (address (0), _owners [i], VIRTUAL_COUNT);
  }

  /**
   * Kill this smart contract.
   */
  function kill () {
    require (msg.sender == owner);
    selfdestruct (owner);
  }

  /**
   * Get virtual balance of the owner of given address.
   *
   * @param _owner address to get virtual balance for the owner of
   * @return virtual balance of the owner of given address
   */
  function virtualBalanceOf (address _owner)
  internal constant returns (uint256 _virtualBalance) {
    return _owner.balance >= VIRTUAL_THRESHOLD ? VIRTUAL_COUNT : 0;
  }

  /**
   * Address of the owner of this smart contract.
   */
  address private owner;
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"result","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":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owners","type":"address[]"}],"name":"massNotify","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"result","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"kill","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"result","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"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 Switch To Opcodes View
6060604052341561000f57600080fd5b5b5b5b5b5b60038054600160a060020a03191633600160a060020a03161790555b5b610a73806100406000396000f300606060405236156100ac5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100b1578063095ea7b31461013c5780630e6848cc1461017257806318160ddd146101c357806323b872dd146101e8578063313ce5671461022457806341c0e1b51461024d57806370a082311461026257806395d89b4114610293578063a9059cbb1461031e578063dd62ed3e14610354575b600080fd5b34156100bc57600080fd5b6100c461038b565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101015780820151818401525b6020016100e8565b50505050905090810190601f16801561012e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561014757600080fd5b61015e600160a060020a03600435166024356103cd565b604051901515815260200160405180910390f35b341561017d57600080fd5b6101c1600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061043a95505050505050565b005b34156101ce57600080fd5b6101d66104d0565b60405190815260200160405180910390f35b34156101f357600080fd5b61015e600160a060020a03600435811690602435166044356104d7565b604051901515815260200160405180910390f35b341561022f57600080fd5b61023761052a565b60405160ff909116815260200160405180910390f35b341561025857600080fd5b6101c1610530565b005b341561026d57600080fd5b6101d6600160a060020a036004351661055b565b60405190815260200160405180910390f35b341561029e57600080fd5b6100c46105b0565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101015780820151818401525b6020016100e8565b50505050905090810190601f16801561012e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561032957600080fd5b61015e600160a060020a03600435166024356105f2565b604051901515815260200160405180910390f35b341561035f57600080fd5b6101d6600160a060020a036004358116906024351661062e565b60405190815260200160405180910390f35b610393610a35565b60408051908101604052600981527f494e532050726f6d6f0000000000000000000000000000000000000000000000602082015290505b90565b600160a060020a03338116600081815260016020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b600354600090819033600160a060020a0390811691161461045a57600080fd5b82519150600090505b818110156104ca5782818151811061047757fe5b90602001906020020151600160a060020a031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61030960405190815260200160405180910390a35b600101610463565b5b505050565b6002545b90565b60006104e3843361062e565b8211156104f257506000610522565b6104fb8461055b565b82111561050a57506000610522565b610514848361065b565b61051f8484846106f1565b90505b5b9392505050565b60005b90565b60035433600160a060020a0390811691161461054b57600080fd5b600354600160a060020a0316ff5b565b600160a060020a0381166000908152602081905260408120546105a8907f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff166105a384610851565b6108cd565b90505b919050565b6105b8610a35565b60408051908101604052600481527f494e535000000000000000000000000000000000000000000000000000000000602082015290505b90565b60006105fd3361055b565b82111561060c57506000610434565b610616338361065b565b61062083836108e9565b9050610434565b5b92915050565b600160a060020a038083166000908152600160209081526040808320938516835292905220545b92915050565b600160a060020a0382166000908152602081905260408120549060ff60020a821615156106e957818311156106e95761069384610851565b9050806106a084846109ef565b11156106ab57600080fd5b6106b582826108cd565b600160a060020a038516600090815260208190526040902060ff60020a9190911790556002546106e590826108cd565b6002555b5b5b50505050565b600160a060020a03808416600090815260016020908152604080832033909416835292905290812054818382101561072c5760009250610848565b50600160a060020a038516600090815260208190526040902054838110156107575760009250610848565b61076182856109ef565b600160a060020a03808816600090815260016020908152604080832033909416835292905290812091909155841180156107ad575084600160a060020a031686600160a060020a031614155b15610843576107bc81856109ef565b600160a060020a0380881660009081526020819052604080822093909355908716815220546107eb90856108cd565b600160a060020a03808716600081815260208190526040908190209390935591908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9087905190815260200160405180910390a35b600192505b50509392505050565b600160a060020a038116600090815260208190526040812054819060ff60020a161561088057600091506108c5565b61088983610a06565b91506108b77f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6002546109ef565b9050808211156108c5578091505b5b5b50919050565b60006000198290038311156108de57fe5b508181015b92915050565b600160a060020a0333166000908152602081905260408120548281101561091357600091506109e8565b600083118015610935575083600160a060020a031633600160a060020a031614155b156109e35761094481846109ef565b600160a060020a03338116600090815260208190526040808220939093559086168152205461097390846108cd565b60008086600160a060020a0316600160a060020a031681526020019081526020016000208190555083600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405190815260200160405180910390a35b600191505b5092915050565b6000818310156109fb57fe5b508082035b92915050565b600067016345785d8a000082600160a060020a0316311015610a295760006105a8565b6103095b90505b919050565b602060405190810160405260008152905600a165627a7a72305820ce703ad1b9c1f8c632a5ab06ffef9181d97fc1163d3d7f517b0ba4d7c032fee00029

   Swarm Source:
bzzr://ce703ad1b9c1f8c632a5ab06ffef9181d97fc1163d3d7f517b0ba4d7c032fee0

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.