Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 25058 txns
Token Tracker: Tomocoin (TOMO)
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xa946aea6747ec60a6cd152ac0877d8beb3e8685dat txn 0xb09e2eb0adfd678616d42fbea05df6720398960f36dac7f9e9452a1c0fa15870
Token Balance:
 Latest 25 transactions from a total of 25058 transactions

TxHash Age From To Value [TxFee]
0xfdc2f0fe31cfbb4203bde2d19f3a3f1a882cb31db3edb436e43466b04f3d2c8f2 mins ago0x6427fc587266813b6993ae4c8de672640cb3b43f  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.00090996
0xf4e5e011c06180f1bf84e73ac7745565e6e06328643b09a5634da726fd33180b41 mins ago0xb54aa2fa94401086839d39aee11926bc652a6299  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.0004080996
0xff05a9a811d4eb617586746560c51aeb7888f6750ec4696804a49ca942e8976b46 mins ago0x37ff59ece8e1c7fc84daa5df10dd44f5e4e3886f  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.00013749
0x57c9e0a5ab01c328ff0ecd4c11bf05343c72f72b1dbc5edc006c3cf7e15b509946 mins ago0xc8fd2ef5e2db274526d55026704660ace6120c3b  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.000827262
0xaa6732983dae897a30c43dd910aca78df46eadc0908895d55df45219ce3ed92350 mins ago0x5e0c53ed7ead9390092cd2212fd15ad9e41f41a5  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.000273444
0x901b941b0fab717932c2e43723f2b41048ed05851db695ada2c60617c9e0dadd57 mins ago0x8525d1a5055d4e3e31d4e14e6f7d8a31ee6c51a7  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.000272676
0x2172248cced30eea3a8c8382be0d236df5ce57c5e0723773456ccb5bcb2038451 hr 3 mins ago0xee12c4a2ea53db169316da0f0053abde546b1df7  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.000250657
0x20747ccc311ed3f7211fef6d39bbc6d207d4d24f98a087f798aa3deabf7d82c71 hr 16 mins agoKucoin  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.0007380945
0x28435fbdeb0031bf8912774cda4d2c6e01259ad2a82ec976a4ab20d23961c79c1 hr 18 mins ago0xb54aa2fa94401086839d39aee11926bc652a6299  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.0001595125
0x613bb8e63bec84a9ff3c78bc98bcff41e9ca014ba6e3211fa5203fe87d5860ad1 hr 18 mins ago0xf3aad5b8f0545d0dc45f3c39778c4b95d70d2c44  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.000151404
0x9634117a912f11f35753b382bf9d09bdd548ac8bfe7c640a348ff5ab4dfae6561 hr 26 mins ago0x5ed86e952e1b17596206e95b94c824d31ba71fb1  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.00076566
0x09fcb917e210c574782f9b8aad767302ac27a331253cc764ef964e3b14730a361 hr 30 mins agoKucoin  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.000950166
0xfe6ca20972f5cda6ee86a090b6eae54b1c8dc2cd8b0f8d07074b6456cf6f49fe1 hr 39 mins ago0x5ed86e952e1b17596206e95b94c824d31ba71fb1  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.000897379
0x563bf3aa2c9df0d537649c8bcbc15fc73814ec678929c3dc2f1fa1c8c564ef471 hr 59 mins ago0x205165b1877902cbadcc29fca5945d9ea0e731f8  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.000644555
0x4d5d2a7c14a846b3592f5c8f33ea2a6d1e74fb37a018c4483bcdea475151c8f42 hrs 16 mins agoKucoin  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.001083585142
0xe81fd462a6c6545966cb0f9ff1890a96443d2afad16ef427c971a07a5b553dce2 hrs 27 mins ago0x89266ccf20508eb51ea637b1565979c9357fcb2b  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.000273444
0x9c9b11648890313434d1b0154a6e4982e3c2aee8c87e2c7b76746cd2bebb87f32 hrs 34 mins agoGate.io_1  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.0007548541
0xd1f2e54ed65d994e0823022e3924b8c69c9ff63b98e8c92af94dc635e963372f2 hrs 36 mins agoKucoin  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.000793527
0x492c2767cc1b991d3124c15aa77312287e997cbbb3486750811f78e3759b4b102 hrs 40 mins agoKucoin  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.000794871
0x63c5bd091fa6c8c7222d3cedb6ddd7acdc41be69ee8b7b7e7888f2a8d42939d23 hrs 12 mins agoGate.io_1  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.0006387227
0xac8cb1d400885d86f8d80e24dd0a7102271621b50217e458c342f8e8347ae21f4 hrs 1 min ago0x5f0b1301c7572fa1bc66da0e10d015d2b5cf8dbe  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.001321275
0x3b69f934811dfd0014c5be9e278d61601c6b0d3ed5d6cc2c4f75d64dd919aa054 hrs 12 mins agoKucoin  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.0010280985
0x64e159b305ed219a6aea22b3415cc39fae0e72884fa0b3bebe4c0ad9b7a4af714 hrs 26 mins ago0x261b96c26f12830f64ca7642e18372c706aba41b  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.000265405
0xb2f046fa1379df6ce28dbf126289ba9e0fd4bcfccae403b680cc7e7a32563fc74 hrs 40 mins ago0xd6003f28499f1cc39567445f2c49b4cf81a5235a  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.00125
0x3dc01723d7ec3b8e4a2b4f2ee9c3fabea37072447f36f28d304bc398ec89485b5 hrs 34 mins ago0x7126121ca547d91c285c26e7bee5275972bc1ec6  IN   0x8b353021189375591723e7384262f45709a3c3dc0 Ether0.0001048225
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: TomoCoin
Compiler Text: v0.4.19+commit.c4cbbb05
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.19;

// ================= Ownable Contract start =============================
/*
 * Ownable
 *
 * Base contract with an owner.
 * Provides onlyOwner modifier, which prevents function from running if it is called by anyone other than the owner.
 */
contract Ownable {
  address public owner;

  function Ownable() public {
    owner = msg.sender;
  }

  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  function transferOwnership(address newOwner) public onlyOwner {
    if (newOwner != address(0)) {
      owner = newOwner;
    }
  }
}
// ================= Ownable Contract end ===============================

// ================= Safemath Lib ============================
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

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

  /**
  * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}
// ================= Safemath Lib end ==============================

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

// ================= Standard Token Contract start ======================
contract StandardToken is ERC20 {
  using SafeMath for uint256;

  mapping(address => uint256) balances;
  mapping (address => mapping (address => uint256)) internal allowed;

  uint256 totalSupply_;

  /**
  * @dev total number of tokens in existence
  */
  function totalSupply() public view returns (uint256) {
    return totalSupply_;
  }

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

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

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


  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amount of tokens to be transferred
   */
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);

    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
    Transfer(_from, _to, _value);
    return true;
  }

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

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

// ================= Pausable Token Contract start ======================
/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
  event Pause();
  event Unpause();

  bool public paused = false;


  /**
  * @dev modifier to allow actions only when the contract IS paused
  */
  modifier whenNotPaused() {
    require (!paused);
    _;
  }

  /**
  * @dev modifier to allow actions only when the contract IS NOT paused
  */
  modifier whenPaused {
    require (paused) ;
    _;
  }

  /**
  * @dev called by the owner to pause, triggers stopped state
  */
  function pause() public onlyOwner whenNotPaused returns (bool) {
    paused = true;
    Pause();
    return true;
  }

  /**
  * @dev called by the owner to unpause, returns to normal state
  */
  function unpause() public onlyOwner whenPaused returns (bool) {
    paused = false;
    Unpause();
    return true;
  }
}
// ================= Pausable Token Contract end ========================

// ================= Tomocoin  start =======================
contract TomoCoin is StandardToken, Pausable {
  string public constant name = 'Tomocoin';
  string public constant symbol = 'TOMO';
  uint256 public constant decimals = 18;
  address public tokenSaleAddress;
  address public tomoDepositAddress; // multisig wallet

  uint256 public constant tomoDeposit = 100000000 * 10**decimals;

  function TomoCoin(address _tomoDepositAddress) public { 
    tomoDepositAddress = _tomoDepositAddress;

    balances[tomoDepositAddress] = tomoDeposit;
    Transfer(0x0, tomoDepositAddress, tomoDeposit);
    totalSupply_ = tomoDeposit;
  }

  function transfer(address _to, uint256 _value) public whenNotPaused returns (bool success) {
    return super.transfer(_to,_value);
  }

  function approve(address _spender, uint256 _value) public whenNotPaused returns (bool success) {
    return super.approve(_spender, _value);
  }

  function balanceOf(address _owner) public view returns (uint256 balance) {
    return super.balanceOf(_owner);
  }

  // Setup Token Sale Smart Contract
  function setTokenSaleAddress(address _tokenSaleAddress) public onlyOwner {
    if (_tokenSaleAddress != address(0)) {
      tokenSaleAddress = _tokenSaleAddress;
    }
  }

  function mint(address _recipient, uint256 _value) public whenNotPaused returns (bool success) {
      require(_value > 0);
      // This function is only called by Token Sale Smart Contract
      require(msg.sender == tokenSaleAddress);

      balances[tomoDepositAddress] = balances[tomoDepositAddress].sub(_value);
      balances[ _recipient ] = balances[_recipient].add(_value);

      Transfer(tomoDepositAddress, _recipient, _value);
      return true;
  }
}
// ================= Ico Token Contract end =======================


// ================= Whitelist start ====================
contract TomoContributorWhitelist is Ownable {
    mapping(address => uint256) public whitelist;

    function TomoContributorWhitelist() public {}

    event ListAddress( address _user, uint256 cap, uint256 _time );

    function listAddress( address _user, uint256 cap ) public onlyOwner {
        whitelist[_user] = cap;
        ListAddress( _user, cap, now );
    }

    function listAddresses( address[] _users, uint256[] _caps ) public onlyOwner {
        for( uint i = 0 ; i < _users.length ; i++ ) {
            listAddress( _users[i], _caps[i] );
        }
    }

    function getCap( address _user ) public view returns(uint) {
        return whitelist[_user];
    }
}
// ================= Whitelist end ====================

// ================= Actual Sale Contract Start ====================
contract TomoTokenSale is Pausable {
  using SafeMath for uint256;

  TomoCoin tomo;
  TomoContributorWhitelist whitelist;
  mapping(address => uint256) public participated;

  address public ethFundDepositAddress;
  address public tomoDepositAddress;

  uint256 public constant tokenCreationCap = 4000000 * 10**18;
  uint256 public totalTokenSold = 0;
  uint256 public constant fundingStartTime = 1519876800; // 2018/03/01 04:00:00
  uint256 public constant fundingPoCEndTime = 1519963200; // 2018/03/02 04:00:00
  uint256 public constant fundingEndTime = 1520136000; // 2018/03/04 04:00:00
  uint256 public constant minContribution = 0.1 ether;
  uint256 public constant maxContribution = 10 ether;
  uint256 public constant tokenExchangeRate = 3200;
  uint256 public constant maxCap = tokenExchangeRate * maxContribution;

  bool public isFinalized;

  event MintTomo(address from, address to, uint256 val);
  event RefundTomo(address to, uint256 val);

  function TomoTokenSale(
    TomoCoin _tomoCoinAddress,
    TomoContributorWhitelist _tomoContributorWhitelistAddress,
    address _ethFundDepositAddress,
    address _tomoDepositAddress
  ) public
  {
    tomo = TomoCoin(_tomoCoinAddress);
    whitelist = TomoContributorWhitelist(_tomoContributorWhitelistAddress);
    ethFundDepositAddress = _ethFundDepositAddress;
    tomoDepositAddress = _tomoDepositAddress;

    isFinalized = false;
  }

  function buy(address to, uint256 val) internal returns (bool success) {
    MintTomo(tomoDepositAddress, to, val);
    return tomo.mint(to, val);
  }

  function () public payable {    
    createTokens(msg.sender, msg.value);
  }

  function createTokens(address _beneficiary, uint256 _value) internal whenNotPaused {
    require (now >= fundingStartTime);
    require (now <= fundingEndTime);
    require (_value >= minContribution);
    require (_value <= maxContribution);
    require (!isFinalized);

    uint256 tokens = _value.mul(tokenExchangeRate);

    uint256 cap = whitelist.getCap(_beneficiary);
    require (cap > 0);

    uint256 tokensToAllocate = 0;
    uint256 tokensToRefund = 0;
    uint256 etherToRefund = 0;

    // running while PoC Buying Time
    if (now <= fundingPoCEndTime) {
      tokensToAllocate = cap.sub(participated[_beneficiary]);
    } else {
      tokensToAllocate = maxCap.sub(participated[_beneficiary]);
    }

    // calculate refund if over max cap or individual cap
    if (tokens > tokensToAllocate) {
      tokensToRefund = tokens.sub(tokensToAllocate);
      etherToRefund = tokensToRefund.div(tokenExchangeRate);
    } else {
      // user can buy amount they want
      tokensToAllocate = tokens;
    }

    uint256 checkedTokenSold = totalTokenSold.add(tokensToAllocate);

    // if reaches hard cap
    if (tokenCreationCap < checkedTokenSold) {
      tokensToAllocate = tokenCreationCap.sub(totalTokenSold);
      tokensToRefund   = tokens.sub(tokensToAllocate);
      etherToRefund = tokensToRefund.div(tokenExchangeRate);
      totalTokenSold = tokenCreationCap;
    } else {
      totalTokenSold = checkedTokenSold;
    }

    // save to participated data
    participated[_beneficiary] = participated[_beneficiary].add(tokensToAllocate);

    // allocate tokens
    require(buy(_beneficiary, tokensToAllocate));
    if (etherToRefund > 0) {
      // refund in case user buy over hard cap, individual cap
      RefundTomo(msg.sender, etherToRefund);
      msg.sender.transfer(etherToRefund);
    }
    ethFundDepositAddress.transfer(this.balance);
    return;
  }

  /// @dev Ends the funding period and sends the ETH home
  function finalize() external onlyOwner {
    require (!isFinalized);
    // move to operational
    isFinalized = true;
    ethFundDepositAddress.transfer(this.balance);
  }
}

    Contract ABI  
[{"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":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenSaleAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","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":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_recipient","type":"address"},{"name":"_value","type":"uint256"}],"name":"mint","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenSaleAddress","type":"address"}],"name":"setTokenSaleAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","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":"tomoDeposit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tomoDepositAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_tomoDepositAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","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 Switch To Opcodes View
60606040526003805460a060020a60ff0219169055341561001f57600080fd5b604051602080610c038339810160405280805160038054600160a060020a03338116600160a060020a0319928316179092556005805483851692169190911780825582166000908152602081905260408082206a52b7d2dcc80cd2e400000090819055925494965093909216935090917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91905190815260200160405180910390a3506a52b7d2dcc80cd2e4000000600255610b23806100e06000396000f3006060604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b3146101955780631448b3ca146101cb57806318160ddd146101fa57806323b872dd1461021f578063313ce567146102475780633f4ba83a1461025a57806340c10f191461026d5780635afe52071461028f5780635c975abb146102b057806370a08231146102c35780638456cb59146102e25780638da5cb5b146102f557806395d89b4114610308578063a9059cbb1461031b578063be16dccd1461033d578063dd62ed3e14610350578063ebbfcfef14610375578063f2fde38b14610388575b600080fd5b341561011657600080fd5b61011e6103a7565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561015a578082015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101a057600080fd5b6101b7600160a060020a03600435166024356103de565b604051901515815260200160405180910390f35b34156101d657600080fd5b6101de610409565b604051600160a060020a03909116815260200160405180910390f35b341561020557600080fd5b61020d610418565b60405190815260200160405180910390f35b341561022a57600080fd5b6101b7600160a060020a036004358116906024351660443561041e565b341561025257600080fd5b61020d61059e565b341561026557600080fd5b6101b76105a3565b341561027857600080fd5b6101b7600160a060020a0360043516602435610629565b341561029a57600080fd5b6102ae600160a060020a0360043516610731565b005b34156102bb57600080fd5b6101b7610787565b34156102ce57600080fd5b61020d600160a060020a0360043516610797565b34156102ed57600080fd5b6101b76107a8565b341561030057600080fd5b6101de610833565b341561031357600080fd5b61011e610842565b341561032657600080fd5b6101b7600160a060020a0360043516602435610879565b341561034857600080fd5b61020d61089d565b341561035b57600080fd5b61020d600160a060020a03600435811690602435166108ac565b341561038057600080fd5b6101de6108d7565b341561039357600080fd5b6102ae600160a060020a03600435166108e6565b60408051908101604052600881527f546f6d6f636f696e000000000000000000000000000000000000000000000000602082015281565b60035460009060a060020a900460ff16156103f857600080fd5b610402838361093d565b9392505050565b600454600160a060020a031681565b60025490565b6000600160a060020a038316151561043557600080fd5b600160a060020a03841660009081526020819052604090205482111561045a57600080fd5b600160a060020a038085166000908152600160209081526040808320339094168352929052205482111561048d57600080fd5b600160a060020a0384166000908152602081905260409020546104b6908363ffffffff6109a916565b600160a060020a0380861660009081526020819052604080822093909355908516815220546104eb908363ffffffff6109bb16565b600160a060020a0380851660009081526020818152604080832094909455878316825260018152838220339093168252919091522054610531908363ffffffff6109a916565b600160a060020a03808616600081815260016020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b601281565b60035460009033600160a060020a039081169116146105c157600080fd5b60035460a060020a900460ff1615156105d957600080fd5b6003805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a150600190565b60035460009060a060020a900460ff161561064357600080fd5b6000821161065057600080fd5b60045433600160a060020a0390811691161461066b57600080fd5b600554600160a060020a0316600090815260208190526040902054610696908363ffffffff6109a916565b600554600160a060020a0390811660009081526020819052604080822093909355908516815220546106ce908363ffffffff6109bb16565b600160a060020a03808516600081815260208190526040908190209390935560055490929116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b60035433600160a060020a0390811691161461074c57600080fd5b600160a060020a03811615610784576004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b60035460a060020a900460ff1681565b60006107a2826109ca565b92915050565b60035460009033600160a060020a039081169116146107c657600080fd5b60035460a060020a900460ff16156107dd57600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a150600190565b600354600160a060020a031681565b60408051908101604052600481527f544f4d4f00000000000000000000000000000000000000000000000000000000602082015281565b60035460009060a060020a900460ff161561089357600080fd5b61040283836109e5565b6a52b7d2dcc80cd2e400000081565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b600554600160a060020a031681565b60035433600160a060020a0390811691161461090157600080fd5b600160a060020a038116156107845760038054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b600160a060020a03338116600081815260016020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b6000828211156109b557fe5b50900390565b60008282018381101561040257fe5b600160a060020a031660009081526020819052604090205490565b6000600160a060020a03831615156109fc57600080fd5b600160a060020a033316600090815260208190526040902054821115610a2157600080fd5b600160a060020a033316600090815260208190526040902054610a4a908363ffffffff6109a916565b600160a060020a033381166000908152602081905260408082209390935590851681522054610a7f908363ffffffff6109bb16565b60008085600160a060020a0316600160a060020a031681526020019081526020016000208190555082600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a3506001929150505600a165627a7a7230582052d4187afac8e2912ec2fabc2c8a17ecba268895603de5e019547060ebc0bc6f00290000000000000000000000009b1356cc6213b5d93a9afb34804ba87bdff37ea6

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

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009b1356cc6213b5d93a9afb34804ba87bdff37ea6


   Swarm Source:
bzzr://52d4187afac8e2912ec2fabc2c8a17ecba268895603de5e019547060ebc0bc6f

 

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.