Sponsored Link:   SocialMedia.Market - The most cost effective advertising platform with 1069% ROI. Join ICO Now!
Contract Overview
ETH Balance: 0 Ether
ETH USD Value: $0
No Of Transactions: 77 txns
  Latest 25 txns from a total Of 77 transactions View All

TxHash Age From To Value [TxFee]
0xcebe21324728e9b8890ee92fa43ec4f00a62f797a01df96604013af88d6cae0c4 days 14 hrs ago0xb3583ef73aab8cabcd193912528c5cad13e43409  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.000902
0xa6a29b25e0035ceea843ca5031cf47c4eb58d5c5e3c478bd9550b8be51fd2a6d11 days 12 hrs ago0xf03f8aa6d18460032f37b5bc77b5fff33d8b300c  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.000080289
0x36fa20d13081ede411502bfc7e88bb1bae0d1080e8db20a32590fe7bdceb05db16 days 4 hrs ago0x98779de6a665b48d3b5d8d4fae012ad47a1b987f  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.00562023
0xac35b1a32b30fc43eb3d3691f18be95b1b8eb454b24cf8099bb7e0378f1692c125 days 23 hrs ago0x00cf722d67000cec8aa35b4661b1516b493dc3b4  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.00321156
0x985c81f07e6824dc6aa64c4a26ee5c130e82a15ebf60792121d89f3368f82c3328 days 2 hrs ago0x6019dba2406a9bdda24174124097f4d0ec1a0388  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.001371069
0x6a01cbb08ebb2961eafcfca9fbceaf2c6b6af6f523dc0a29c6f5511f853bcc5a45 days 16 hrs ago0xb62a348c01c421fc520c667c7e56d9a37020d0b9  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.003291849
0x1f6b7290b09b42df7a3723ea6473a8614948748a4801d0b605bb5982cd00d94e46 days 15 hrs ago0x07d1920e45d63344fd7b9a3de9befd133e61e081  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.003291849
0xdf72c347431cef37d1f032c4b0cdf4e28f5dcab583c80afed8f9f8eee2406a9e49 days 22 hrs ago0x00e5cdd4b7b3a78a4277749957553371cb6b2310  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.007808937501
0xd981e8d2ed1ddecdbbce36895fda183e897bda5b222ac645b507c90a9b1bfd9949 days 22 hrs ago0x00e5cdd4b7b3a78a4277749957553371cb6b2310  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.002858649576
0x2d31be3165ca35bf5845056a7b23c243e83581d791301bc957426cd33c17161a49 days 22 hrs ago0x00e5cdd4b7b3a78a4277749957553371cb6b2310  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.00079541
0x611c131f79cb81777f4cbe293b69d49c2c1e3905b9ff6619d7a447d9c91fa7cd51 days 16 hrs ago0xd8f150feb4983f36ab7bf83f0829c94a00471c1e  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.001848
0x06c7b04f431274635e59be17bde8f2bb20b61975ab6874b51c05fa6501e3cb2151 days 16 hrs ago0xd8f150feb4983f36ab7bf83f0829c94a00471c1e  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.000924
0x6d222028dfe44ac63cbe75b1f24e779971a41805d0425ee73d43c3307bb207ca55 days 22 hrs ago0xaef83d97f0b7fba46cb7a892d7590a28d3d26209  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.00481734
0xdf92015d7862424f3d279f5ef477af871621072391a1bcf60719c419f911bdb656 days 16 hrs ago0x540d356ebe71390a1ede2c1f12cd3dc500b2b808  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.001686069
0x2384da15c04e501cf3a668a0e9bbe3c86e5199072dfa10adfb61e9282c2879d758 days 7 hrs ago0x61c00b460b320935aae718c0ceb5d864c4864846  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.00401445
0x37039adab3a7d3d5acc233e83ce6c4e891bed5a38396450c0f79b1a8db933e0f59 days 4 hrs ago0x00243e1090a885a9b2428cd40f9cd8764e0f3e69  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.001686069
0xb67e4816dd2a9f254f70b376b8b4241ab8d92aa19f2549502cc985b8318637b360 days 6 hrs ago0xc71c9762a6e43a4af091008ee728fe8a3d79405d  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.001766358
0xb7a2218663f3c871d3063758b135ccd2187c76cbfeb87df71fe5989b00e022ad60 days 19 hrs ago0xd8f150feb4983f36ab7bf83f0829c94a00471c1e  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.000872152
0x63846387b38180835ed7ef41da1c6a630856fca1752724f404a4d74349c20a0460 days 19 hrs ago0xd8f150feb4983f36ab7bf83f0829c94a00471c1e  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.000872152
0x97a335ac1cc5e1ba6f59c0f5d2035fdb4c0429053c912830a8ec2c9fb85594d260 days 21 hrs ago0x1db7f01cf9fafcdc5b8ef93337aa9091ac731d62  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.000065289
0x6db5988e32362cd7d6f8444b38e8312ae988ed083d30208ea88fd5b31cd5d6ca60 days 21 hrs ago0x1db7f01cf9fafcdc5b8ef93337aa9091ac731d62  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.00004
0x6802b7ee1c2d8f83fe5e8cd6ad8b7f2ae5dd6d146e3041081f91dd2983eb9c9860 days 21 hrs ago0x1db7f01cf9fafcdc5b8ef93337aa9091ac731d62  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.000022
0x4a3afd647085234e0a15d5b5555126d3623f6e808eedc8aa3b9baad923b7d02060 days 21 hrs ago0x1db7f01cf9fafcdc5b8ef93337aa9091ac731d62  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.000021272
0xd1ba357c4bf3d2b12cdc08e88b75ad031c0d2583e3933957ae6be80ee594eb3e63 days 3 hrs ago0x0318e3c5e01a938cec00e2d37e9ac1ab4350ba5d  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.00321156
0xa81b74aa4250bbe8a47943555845250f5b145bd83c9ab3eb1d99c11eea31576163 days 23 hrs ago0x00f72c18e942ee4ce56c1edfe49857be9b7e6f15  IN   0xc5357bb3eef6a7f7a70060de288de9f4a8d34eac0 Ether0.009016400001
[ 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 ZeroFunctionSelector (very low-severity), DelegateCallReturnValue (low-severity), ECRecoverMalformedInput (medium-severity), SkipEmptyStringLiteral (low-severity), ConstantOptimizerSubtraction (low-severity) Solidity compiler bugs.

Contract Source Code Verified
Note: Displaying matching verified source code at contract 0x999b190dbbc297980e6b01c5e486a54cb8dbffd6
Contract Name: TokenVault
Compiler Version: v0.4.8+commit.60cc1668
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts
/*
 * ERC20 interface
 * see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 {
  uint public totalSupply;
  function balanceOf(address who) constant returns (uint);
  function allowance(address owner, address spender) constant returns (uint);

  function transfer(address to, uint value) returns (bool ok);
  function transferFrom(address from, address to, uint value) returns (bool ok);
  function approve(address spender, uint value) returns (bool ok);
  event Transfer(address indexed from, address indexed to, uint value);
  event Approval(address indexed owner, address indexed spender, uint value);
}



/**
 * Math operations with safety checks
 */
contract SafeMath {
  function safeMul(uint a, uint b) internal returns (uint) {
    uint c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function safeDiv(uint a, uint b) internal returns (uint) {
    assert(b > 0);
    uint c = a / b;
    assert(a == b * c + a % b);
    return c;
  }

  function safeSub(uint a, uint b) internal returns (uint) {
    assert(b <= a);
    return a - b;
  }

  function safeAdd(uint a, uint b) internal returns (uint) {
    uint c = a + b;
    assert(c>=a && c>=b);
    return c;
  }

  function max64(uint64 a, uint64 b) internal constant returns (uint64) {
    return a >= b ? a : b;
  }

  function min64(uint64 a, uint64 b) internal constant returns (uint64) {
    return a < b ? a : b;
  }

  function max256(uint256 a, uint256 b) internal constant returns (uint256) {
    return a >= b ? a : b;
  }

  function min256(uint256 a, uint256 b) internal constant returns (uint256) {
    return a < b ? a : b;
  }

  function assert(bool assertion) internal {
    if (!assertion) {
      throw;
    }
  }
}



/**
 * Standard ERC20 token with Short Hand Attack and approve() race condition mitigation.
 *
 * Based on code by FirstBlood:
 * https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, SafeMath {

  /* Token supply got increased and a new owner received these tokens */
  event Minted(address receiver, uint amount);

  /* Actual balances of token holders */
  mapping(address => uint) balances;

  /* approve() allowances */
  mapping (address => mapping (address => uint)) allowed;

  /* Interface declaration */
  function isToken() public constant returns (bool weAre) {
    return true;
  }

  /**
   *
   * Fix for the ERC20 short address attack
   *
   * http://vessenes.com/the-erc20-short-address-attack-explained/
   */
  modifier onlyPayloadSize(uint size) {
     if(msg.data.length < size + 4) {
       throw;
     }
     _;
  }

  function transfer(address _to, uint _value) onlyPayloadSize(2 * 32) returns (bool success) {
    balances[msg.sender] = safeSub(balances[msg.sender], _value);
    balances[_to] = safeAdd(balances[_to], _value);
    Transfer(msg.sender, _to, _value);
    return true;
  }

  function transferFrom(address _from, address _to, uint _value) returns (bool success) {
    uint _allowance = allowed[_from][msg.sender];

    // Check is not needed because safeSub(_allowance, _value) will already throw if this condition is not met
    // if (_value > _allowance) throw;

    balances[_to] = safeAdd(balances[_to], _value);
    balances[_from] = safeSub(balances[_from], _value);
    allowed[_from][msg.sender] = safeSub(_allowance, _value);
    Transfer(_from, _to, _value);
    return true;
  }

  function balanceOf(address _owner) constant returns (uint balance) {
    return balances[_owner];
  }

  function approve(address _spender, uint _value) returns (bool success) {

    // To change the approve amount you first have to reduce the addresses`
    //  allowance to zero by calling `approve(_spender, 0)` if it is not
    //  already 0 to mitigate the race condition described here:
    //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
    if ((_value != 0) && (allowed[msg.sender][_spender] != 0)) throw;

    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
    return true;
  }

  function allowance(address _owner, address _spender) constant returns (uint remaining) {
    return allowed[_owner][_spender];
  }

  /**
   * Atomic increment of approved spending
   *
   * Works around https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   *
   */
  function addApproval(address _spender, uint _addedValue)
  returns (bool success) {
      uint oldValue = allowed[msg.sender][_spender];
      allowed[msg.sender][_spender] = safeAdd(oldValue, _addedValue);
      Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
      return true;
  }

  /**
   * Atomic decrement of approved spending.
   *
   * Works around https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   */
  function subApproval(address _spender, uint _subtractedValue)
  returns (bool success) {

      uint oldVal = allowed[msg.sender][_spender];

      if (_subtractedValue > oldVal) {
          allowed[msg.sender][_spender] = 0;
      } else {
          allowed[msg.sender][_spender] = safeSub(oldVal, _subtractedValue);
      }
      Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
      return true;
  }

}



/*
 * 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() {
    owner = msg.sender;
  }

  modifier onlyOwner() {
    if (msg.sender != owner) {
      throw;
    }
    _;
  }

  function transferOwnership(address newOwner) onlyOwner {
    if (newOwner != address(0)) {
      owner = newOwner;
    }
  }

}


/**
 * Hold tokens for a group investor of investors until the unlock date.
 *
 * After the unlock date the investor can claim their tokens.
 *
 * Steps
 *
 * - Prepare a spreadsheet for token allocation
 * - Deploy this contract, with the sum to tokens to be distributed, from the owner account
 * - Call setInvestor for all investors from the owner account using a local script and CSV input
 * - Move tokensToBeAllocated in this contract using StandardToken.transfer()
 * - Call lock from the owner account
 * - Wait until the freeze period is over
 * - After the freeze time is over investors can call claim() from their address to get their tokens
 *
 */
contract TokenVault is Ownable {

  /** How many investors we have now */
  uint public investorCount;

  /** Sum from the spreadsheet how much tokens we should get on the contract. If the sum does not match at the time of the lock the vault is faulty and must be recreated.*/
  uint public tokensToBeAllocated;

  /** How many tokens investors have claimed so far */
  uint public totalClaimed;

  /** How many tokens our internal book keeping tells us to have at the time of lock() when all investor data has been loaded */
  uint public tokensAllocatedTotal;

  /** How much we have allocated to the investors invested */
  mapping(address => uint) public balances;

  /** How many tokens investors have claimed */
  mapping(address => uint) public claimed;

  /** When our claim freeze is over (UNIX timestamp) */
  uint public freezeEndsAt;

  /** When this vault was locked (UNIX timestamp) */
  uint public lockedAt;

  /** We can also define our own token, which will override the ICO one ***/
  StandardToken public token;

  /** What is our current state.
   *
   * Loading: Investor data is being loaded and contract not yet locked
   * Holding: Holding tokens for investors
   * Distributing: Freeze time is over, investors can claim their tokens
   */
  enum State{Unknown, Loading, Holding, Distributing}

  /** We allocated tokens for investor */
  event Allocated(address investor, uint value);

  /** We distributed tokens to an investor */
  event Distributed(address investors, uint count);

  event Locked();

  /**
   * Create presale contract where lock up period is given days
   *
   * @param _owner Who can load investor data and lock
   * @param _freezeEndsAt UNIX timestamp when the vault unlocks
   * @param _token Token contract address we are distributing
   * @param _tokensToBeAllocated Total number of tokens this vault will hold - including decimal multiplcation
   *
   */
  function TokenVault(address _owner, uint _freezeEndsAt, StandardToken _token, uint _tokensToBeAllocated) {

    owner = _owner;

    // Invalid owenr
    if(owner == 0) {
      throw;
    }

    token = _token;

    // Check the address looks like a token contract
    if(!token.isToken()) {
      throw;
    }

    // Give argument
    if(_freezeEndsAt == 0) {
      throw;
    }

    // Sanity check on _tokensToBeAllocated
    if(_tokensToBeAllocated == 0) {
      throw;
    }

    freezeEndsAt = _freezeEndsAt;
    tokensToBeAllocated = _tokensToBeAllocated;
  }

  /// @dev Add a presale participating allocation
  function setInvestor(address investor, uint amount) public onlyOwner {

    if(lockedAt > 0) {
      // Cannot add new investors after the vault is locked
      throw;
    }

    if(amount == 0) throw; // No empty buys

    // Don't allow reset
    if(balances[investor] > 0) {
      throw;
    }

    balances[investor] = amount;

    investorCount++;

    tokensAllocatedTotal += amount;

    Allocated(investor, amount);
  }

  /// @dev Lock the vault
  ///      - All balances have been loaded in correctly
  ///      - Tokens are transferred on this vault correctly
  ///      - Checks are in place to prevent creating a vault that is locked with incorrect token balances.
  function lock() onlyOwner {

    if(lockedAt > 0) {
      throw; // Already locked
    }

    // Spreadsheet sum does not match to what we have loaded to the investor data
    if(tokensAllocatedTotal != tokensToBeAllocated) {
      throw;
    }

    // Do not lock the vault if the given tokens are not on this contract
    if(token.balanceOf(address(this)) != tokensAllocatedTotal) {
      throw;
    }

    lockedAt = now;

    Locked();
  }

  /// @dev In the case locking failed, then allow the owner to reclaim the tokens on the contract.
  function recoverFailedLock() onlyOwner {
    if(lockedAt > 0) {
      throw;
    }

    // Transfer all tokens on this contract back to the owner
    token.transfer(owner, token.balanceOf(address(this)));
  }

  /// @dev Get the current balance of tokens in the vault
  /// @return uint How many tokens there are currently in vault
  function getBalance() public constant returns (uint howManyTokensCurrentlyInVault) {
    return token.balanceOf(address(this));
  }

  /// @dev Claim N bought tokens to the investor as the msg sender
  function claim() {

    address investor = msg.sender;

    if(lockedAt == 0) {
      throw; // We were never locked
    }

    if(now < freezeEndsAt) {
      throw; // Trying to claim early
    }

    if(balances[investor] == 0) {
      // Not our investor
      throw;
    }

    if(claimed[investor] > 0) {
      throw; // Already claimed
    }

    uint amount = balances[investor];

    claimed[investor] = amount;

    totalClaimed += amount;

    token.transfer(investor, amount);

    Distributed(investor, amount);
  }

  /// @dev Resolve the contract umambigious state
  function getState() public constant returns(State) {
    if(lockedAt == 0) {
      return State.Loading;
    } else if(now > freezeEndsAt) {
      return State.Distributing;
    } else {
      return State.Holding;
    }
  }

}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"tokensAllocatedTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getBalance","outputs":[{"name":"howManyTokensCurrentlyInVault","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getState","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"claim","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"freezeEndsAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"investor","type":"address"},{"name":"amount","type":"uint256"}],"name":"setInvestor","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokensToBeAllocated","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"lockedAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"claimed","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalClaimed","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"investorCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"lock","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"recoverFailedLock","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_owner","type":"address"},{"name":"_freezeEndsAt","type":"uint256"},{"name":"_token","type":"address"},{"name":"_tokensToBeAllocated","type":"uint256"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Allocated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investors","type":"address"},{"indexed":false,"name":"count","type":"uint256"}],"name":"Distributed","type":"event"},{"anonymous":false,"inputs":[],"name":"Locked","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060405234610000576040516080806109df83398101604090815281516020830151918301516060909301519092905b5b60008054600160a060020a03191633600160a060020a03161790555b60008054600160a060020a031916600160a060020a03868116919091179182905516151561007a57610000565b60098054600160a060020a031916600160a060020a038481169190911791829055604080516000602091820181905282517feefa597b0000000000000000000000000000000000000000000000000000000081529251949093169363eefa597b936004808501948390030190829087803b156100005760325a03f115610000575050604051511515905061010d57610000565b82151561011957610000565b80151561012557610000565b600783905560028190555b505050505b61089b806101446000396000f300606060405236156100d55763ffffffff60e060020a60003504166311e48cdf81146100da57806312065fe0146100f95780631865c57d1461011857806327e235e3146101465780634e71d92d146101715780636962b010146101805780638da5cb5b1461019f5780638e327dd3146101c8578063990ca3ff146101e6578063b216348214610205578063c884ef8314610224578063d54ad2a11461024f578063d7e64c001461026e578063f2fde38b1461028d578063f83d08ba146102a8578063f85b2160146102b7578063fc0c546a146102c6575b610000565b34610000576100e76102ef565b60408051918252519081900360200190f35b34610000576100e76102f5565b60408051918252519081900360200190f35b3461000057610125610361565b6040518082600381116100005760ff16815260200191505060405180910390f35b34610000576100e7600160a060020a0360043516610395565b60408051918252519081900360200190f35b346100005761017e6103a7565b005b34610000576100e76104fb565b60408051918252519081900360200190f35b34610000576101ac610501565b60408051600160a060020a039092168252519081900360200190f35b346100005761017e600160a060020a0360043516602435610510565b005b34610000576100e76105d6565b60408051918252519081900360200190f35b34610000576100e76105dc565b60408051918252519081900360200190f35b34610000576100e7600160a060020a03600435166105e2565b60408051918252519081900360200190f35b34610000576100e76105f4565b60408051918252519081900360200190f35b34610000576100e76105fa565b60408051918252519081900360200190f35b346100005761017e600160a060020a0360043516610600565b005b346100005761017e610658565b005b346100005761017e610758565b005b34610000576101ac610860565b60408051600160a060020a039092168252519081900360200190f35b60045481565b6009546040805160006020918201819052825160e060020a6370a08231028152600160a060020a0330811660048301529351919493909316926370a0823192602480830193919282900301818787803b156100005760325a03f115610000575050604051519150505b90565b6000600854600014156103765750600161035e565b6007544211156103885750600361035e565b50600261035e565b5b5b90565b60056020526000908152604090205481565b600854339060009015156103ba57610000565b6007544210156103c957610000565b600160a060020a03821660009081526005602052604090205415156103ed57610000565b600160a060020a038216600090815260066020526040812054111561041157610000565b50600160a060020a038082166000818152600560209081526040808320546006835281842081905560038054820190556009548251840185905282517fa9059cbb00000000000000000000000000000000000000000000000000000000815260048101969096526024860182905291519095919091169363a9059cbb9360448083019493928390030190829087803b156100005760325a03f11561000057505060408051600160a060020a03851681526020810184905281517fb649c98f58055c520df0dcb5709eff2e931217ff2fb1e21376130d31bbb1c0af93509081900390910190a15b5050565b60075481565b600054600160a060020a031681565b60005433600160a060020a0390811691161461052b57610000565b6000600854111561053b57610000565b80151561054757610000565b600160a060020a038216600090815260056020526040812054111561056b57610000565b600160a060020a038216600081815260056020908152604091829020849055600180548101905560048054850190558151928352820183905280517f472f36e28bb47edb7c69c9e2ac00a77c66b505df54e9c818ac57110b0629e8c39281900390910190a15b5b5050565b60025481565b60085481565b60066020526000908152604090205481565b60035481565b60015481565b60005433600160a060020a0390811691161461061b57610000565b600160a060020a03811615610653576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b60005433600160a060020a0390811691161461067357610000565b6000600854111561068357610000565b6002546004541461069357610000565b600454600960009054906101000a9004600160a060020a0316600160a060020a03166370a08231306000604051602001526040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b156100005760325a03f1156100005750506040515191909114905061072757610000565b426008556040517f0f2e5b6c72c6a4491efd919a9f9a409f324ef0708c11ee57d410c2cb06c0992b90600090a15b5b565b60005433600160a060020a0390811691161461077357610000565b6000600854111561078357610000565b60095460008054604080516020908101849052815160e060020a6370a0823102815230600160a060020a03908116600483015292519583169563a9059cbb95949093169386936370a08231936024808501949193918390030190829087803b156100005760325a03f11561000057505050604051805190506000604051602001526040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b156100005760325a03f115610000575050505b5b565b600954600160a060020a0316815600a165627a7a723058203f53af6c745bf361214861f5585b9468ed51d68e03158e1beda3593db721c0a200290000000000000000000000006efd5665ab4b345a7ebe63c679b651f375dddb7e0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000b64ef51c888972c908cfacf59b47c1afbc0ab8ac0000000000000000000000000000000000000000000000000000000000000005

   Swarm Source:
bzzr://3f53af6c745bf361214861f5585b9468ed51d68e03158e1beda3593db721c0a2

 

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.