ETH Price: $3,619.61 (-2.28%)

Contract

0x1cE7AE555139c5EF5A57CC8d814a867ee6Ee33D8
 

Overview

ETH Balance

642.561291013395564489 ETH

Eth Value

$2,325,822.86 (@ $3,619.61/ETH)

Token Holdings

Transaction Hash
Method
Block
From
To
Withdraw213145022024-12-02 11:22:592 hrs ago1733138579IN
Token.Store
0 ETH0.0006442617.66328502
Withdraw213144132024-12-02 11:05:112 hrs ago1733137511IN
Token.Store
0 ETH0.0005040313.8232295
Withdraw212197332024-11-19 5:37:4713 days ago1731994667IN
Token.Store
0 ETH0.000237567.5
Withdraw211648762024-11-11 13:55:4720 days ago1731333347IN
Token.Store
0 ETH0.0006337420
Withdraw211514422024-11-09 16:58:4722 days ago1731171527IN
Token.Store
0 ETH0.0003167510
Withdraw211364122024-11-07 14:36:2324 days ago1730990183IN
Token.Store
0 ETH0.0006374620.1098956
Withdraw Token211364032024-11-07 14:34:3524 days ago1730990075IN
Token.Store
0 ETH0.0003732516.81319662
Withdraw Token211363842024-11-07 14:30:4724 days ago1730989847IN
Token.Store
0 ETH0.0003862817.4
Withdraw210848722024-10-31 9:58:5932 days ago1730368739IN
Token.Store
0 ETH0.0003166310
Withdraw Token210620862024-10-28 5:36:5935 days ago1730093819IN
Token.Store
0 ETH0.000298785
Withdraw210586982024-10-27 18:16:2335 days ago1730052983IN
Token.Store
0 ETH0.00031888.7402656
Withdraw210162332024-10-21 20:05:3541 days ago1729541135IN
Token.Store
0 ETH0.0004150913.1
Withdraw209882342024-10-17 22:21:1145 days ago1729203671IN
Token.Store
0 ETH0.0006863121.66731815
Withdraw209854552024-10-17 13:01:5946 days ago1729170119IN
Token.Store
0 ETH0.0009713830.67893379
Withdraw Token207298072024-09-11 20:38:4781 days ago1726087127IN
Token.Store
0 ETH0.000183773.1
Withdraw207293082024-09-11 18:58:2381 days ago1726081103IN
Token.Store
0 ETH0.000130544.11978086
Withdraw207290572024-09-11 18:07:4781 days ago1726078067IN
Token.Store
0 ETH0.000090852.86843544
Withdraw206159192024-08-26 23:03:1197 days ago1724713391IN
Token.Store
0 ETH0.000030040.94830564
Withdraw205695872024-08-20 11:38:59104 days ago1724153939IN
Token.Store
0 ETH0.000049061.54965928
Withdraw205187742024-08-13 9:21:35111 days ago1723540895IN
Token.Store
0 ETH0.000063372
Withdraw204534652024-08-04 6:42:23120 days ago1722753743IN
Token.Store
0 ETH0.000031681
Withdraw Token204534652024-08-04 6:42:23120 days ago1722753743IN
Token.Store
0 ETH0.000058921
Withdraw Token204534652024-08-04 6:42:23120 days ago1722753743IN
Token.Store
0 ETH0.000063831
Withdraw Token204534652024-08-04 6:42:23120 days ago1722753743IN
Token.Store
0 ETH0.000059421
Withdraw Token204534652024-08-04 6:42:23120 days ago1722753743IN
Token.Store
0 ETH0.00005941
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
213145022024-12-02 11:22:592 hrs ago1733138579
Token.Store
0.009 ETH
213144132024-12-02 11:05:112 hrs ago1733137511
Token.Store
0.0001 ETH
212197332024-11-19 5:37:4713 days ago1731994667
Token.Store
0.001726 ETH
211648762024-11-11 13:55:4720 days ago1731333347
Token.Store
0.01202978 ETH
211514422024-11-09 16:58:4722 days ago1731171527
Token.Store
0.1 ETH
211364122024-11-07 14:36:2324 days ago1730990183
Token.Store
4.166422 ETH
210848722024-10-31 9:58:5932 days ago1730368739
Token.Store
0.014 ETH
210586982024-10-27 18:16:2335 days ago1730052983
Token.Store
0.1016 ETH
210162332024-10-21 20:05:3541 days ago1729541135
Token.Store
0.3256122 ETH
209882342024-10-17 22:21:1145 days ago1729203671
Token.Store
0.102 ETH
209854552024-10-17 13:01:5946 days ago1729170119
Token.Store
0.05 ETH
207293082024-09-11 18:58:2381 days ago1726081103
Token.Store
0.000401 ETH
207290572024-09-11 18:07:4781 days ago1726078067
Token.Store
0.00065459 ETH
206159192024-08-26 23:03:1197 days ago1724713391
Token.Store
0.00581417 ETH
205695872024-08-20 11:38:59104 days ago1724153939
Token.Store
0.0002812 ETH
205187742024-08-13 9:21:35111 days ago1723540895
Token.Store
0.00188336 ETH
204534652024-08-04 6:42:23120 days ago1722753743
Token.Store
0.00200437 ETH
204534332024-08-04 6:35:59120 days ago1722753359
Token.Store
0.00191553 ETH
204534162024-08-04 6:32:35120 days ago1722753155
Token.Store
0.000198 ETH
204534162024-08-04 6:32:35120 days ago1722753155
Token.Store
0.0000295 ETH
204533902024-08-04 6:27:23120 days ago1722752843
Token.Store
0.02524307 ETH
204533602024-08-04 6:21:23120 days ago1722752483
Token.Store
0 ETH
204532402024-08-04 5:57:11120 days ago1722751031
Token.Store
0.000714 ETH
204532142024-08-04 5:51:59120 days ago1722750719
Token.Store
0.00385761 ETH
204529792024-08-04 5:04:47120 days ago1722747887
Token.Store
0.01052 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TokenStore

Compiler Version
v0.4.13+commit.fb4cb1a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-07-31
*/

pragma solidity ^0.4.11;

// ERC20 token protocol, see more details at
// https://theethereum.wiki/w/index.php/ERC20_Token_Standard
// And also https://github.com/ethereum/eips/issues/20

contract Token {
  function totalSupply() constant returns (uint256 supply);
  function balanceOf(address _owner) constant returns (uint256 balance);
  function transfer(address _to, uint256 _value) returns (bool success);
  function transferFrom(address _from, address _to, uint256 _value) returns (bool success);
  function approve(address _spender, uint256 _value) returns (bool success);
  function allowance(address _owner, address _spender) constant returns (uint256 remaining);

  event Transfer(address indexed _from, address indexed _to, uint256 _value);
  event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

// Safe mathematics to make the code more readable

contract SafeMath {
  function safeMul(uint a, uint b) internal returns (uint) {
    uint c = a * b;
    assert(a == 0 || 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;
  }
}

// Ownable interface to simplify owner checks

contract Ownable {
  address public owner;

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

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

  function transferOwnership(address _newOwner) onlyOwner {
    require(_newOwner != address(0));
    owner = _newOwner;
  }
}

// Interface for trading discounts and rebates for specific accounts

contract AccountModifiersInterface {
  function accountModifiers(address _user) constant returns(uint takeFeeDiscount, uint rebatePercentage);
  function tradeModifiers(address _maker, address _taker) constant returns(uint takeFeeDiscount, uint rebatePercentage);
}

// Interface for trade tacker

contract TradeTrackerInterface {
  function tradeComplete(address _tokenGet, uint _amountGet, address _tokenGive, uint _amountGive, address _get, address _give, uint _takerFee, uint _makerRebate);
}

// Exchange contract

contract TokenStore is SafeMath, Ownable {

  // The account that will receive fees
  address feeAccount;

  // The account that stores fee discounts/rebates
  address accountModifiers;
  
  // Trade tracker account
  address tradeTracker;

  // We charge only the takers and this is the fee, percentage times 1 ether
  uint public fee;

  // Mapping of token addresses to mapping of account balances (token 0 means Ether)
  mapping (address => mapping (address => uint)) public tokens;

  // Mapping of user accounts to mapping of order hashes to uints (amount of order that has been filled)
  mapping (address => mapping (bytes32 => uint)) public orderFills;
  
  // Address of a next and previous versions of the contract, also status of the contract
  // can be used for user-triggered fund migrations
  address public successor;
  address public predecessor;
  bool public deprecated;
  uint16 public version;

  // Logging events
  // Note: Order creation is handled off-chain, see explanation further below
  event Cancel(address tokenGet, uint amountGet, address tokenGive, uint amountGive, uint expires, uint nonce, address user, uint8 v, bytes32 r, bytes32 s);
  event Trade(address tokenGet, uint amountGet, address tokenGive, uint amountGive, address get, address give, uint nonce);
  event Deposit(address token, address user, uint amount, uint balance);
  event Withdraw(address token, address user, uint amount, uint balance);
  event FundsMigrated(address user);

  function TokenStore(uint _fee, address _predecessor) {
    feeAccount = owner;
    fee = _fee;
    predecessor = _predecessor;
    deprecated = false;
    if (predecessor != address(0)) {
      version = TokenStore(predecessor).version() + 1;
    } else {
      version = 1;
    }
  }

  // Throw on default handler to prevent direct transactions of Ether
  function() {
    revert();
  }
  
  modifier deprecable() {
    require(!deprecated);
    _;
  }

  function deprecate(bool _deprecated, address _successor) onlyOwner {
    deprecated = _deprecated;
    successor = _successor;
  }

  function changeFeeAccount(address _feeAccount) onlyOwner {
    require(_feeAccount != address(0));
    feeAccount = _feeAccount;
  }

  function changeAccountModifiers(address _accountModifiers) onlyOwner {
    accountModifiers = _accountModifiers;
  }
  
  function changeTradeTracker(address _tradeTracker) onlyOwner {
    tradeTracker = _tradeTracker;
  }

  // Fee can only be decreased!
  function changeFee(uint _fee) onlyOwner {
    require(_fee <= fee);
    fee = _fee;
  }
  
  // Allows a user to get her current discount/rebate
  function getAccountModifiers() constant returns(uint takeFeeDiscount, uint rebatePercentage) {
    if (accountModifiers != address(0)) {
      return AccountModifiersInterface(accountModifiers).accountModifiers(msg.sender);
    } else {
      return (0, 0);
    }
  }
  
  ////////////////////////////////////////////////////////////////////////////////
  // Deposits, withdrawals, balances
  ////////////////////////////////////////////////////////////////////////////////

  function deposit() payable deprecable {
    tokens[0][msg.sender] = safeAdd(tokens[0][msg.sender], msg.value);
    Deposit(0, msg.sender, msg.value, tokens[0][msg.sender]);
  }

  function withdraw(uint _amount) {
    require(tokens[0][msg.sender] >= _amount);
    tokens[0][msg.sender] = safeSub(tokens[0][msg.sender], _amount);
    if (!msg.sender.call.value(_amount)()) {
      revert();
    }
    Withdraw(0, msg.sender, _amount, tokens[0][msg.sender]);
  }

  function depositToken(address _token, uint _amount) deprecable {
    // Note that Token(_token).approve(this, _amount) needs to be called
    // first or this contract will not be able to do the transfer.
    require(_token != 0);
    if (!Token(_token).transferFrom(msg.sender, this, _amount)) {
      revert();
    }
    tokens[_token][msg.sender] = safeAdd(tokens[_token][msg.sender], _amount);
    Deposit(_token, msg.sender, _amount, tokens[_token][msg.sender]);
  }

  function withdrawToken(address _token, uint _amount) {
    require(_token != 0);
    require(tokens[_token][msg.sender] >= _amount);
    tokens[_token][msg.sender] = safeSub(tokens[_token][msg.sender], _amount);
    if (!Token(_token).transfer(msg.sender, _amount)) {
      revert();
    }
    Withdraw(_token, msg.sender, _amount, tokens[_token][msg.sender]);
  }

  function balanceOf(address _token, address _user) constant returns (uint) {
    return tokens[_token][_user];
  }
  
  ////////////////////////////////////////////////////////////////////////////////
  // Trading
  ////////////////////////////////////////////////////////////////////////////////

  // Note: Order creation happens off-chain but the orders are signed by creators,
  // we validate the contents and the creator address in the logic below

  function trade(address _tokenGet, uint _amountGet, address _tokenGive, uint _amountGive,
      uint _expires, uint _nonce, address _user, uint8 _v, bytes32 _r, bytes32 _s, uint _amount) {
    bytes32 hash = sha256(this, _tokenGet, _amountGet, _tokenGive, _amountGive, _expires, _nonce);
    // Check order signatures and expiration, also check if not fulfilled yet
		if (ecrecover(sha3("\x19Ethereum Signed Message:\n32", hash), _v, _r, _s) != _user ||
      block.number > _expires ||
      safeAdd(orderFills[_user][hash], _amount) > _amountGet) {
      revert();
    }
    tradeBalances(_tokenGet, _amountGet, _tokenGive, _amountGive, _user, msg.sender, _amount);
    orderFills[_user][hash] = safeAdd(orderFills[_user][hash], _amount);
    Trade(_tokenGet, _amount, _tokenGive, _amountGive * _amount / _amountGet, _user, msg.sender, _nonce);
  }
  
  function tradeBalances(address _tokenGet, uint _amountGet, address _tokenGive, uint _amountGive,
      address _user, address _caller, uint _amount) private {

    uint feeTakeValue = safeMul(_amount, fee) / (1 ether);
    uint rebateValue = 0;
    uint tokenGiveValue = safeMul(_amountGive, _amount) / _amountGet; // Proportionate to request ratio

    // Apply modifiers
    if (accountModifiers != address(0)) {
      var (feeTakeDiscount, rebatePercentage) = AccountModifiersInterface(accountModifiers).tradeModifiers(_user, _caller);
      // Check that the discounts/rebates are never higher then 100%
      if (feeTakeDiscount > 100) {
        feeTakeDiscount = 0;
      }
      if (rebatePercentage > 100) {
        rebatePercentage = 0;
      }
      feeTakeValue = safeMul(feeTakeValue, 100 - feeTakeDiscount) / 100;  // discounted fee
      rebateValue = safeMul(rebatePercentage, feeTakeValue) / 100;        // % of actual taker fee
    }
    
    tokens[_tokenGet][_user] = safeAdd(tokens[_tokenGet][_user], safeAdd(_amount, rebateValue));
    tokens[_tokenGet][_caller] = safeSub(tokens[_tokenGet][_caller], safeAdd(_amount, feeTakeValue));
    tokens[_tokenGive][_user] = safeSub(tokens[_tokenGive][_user], tokenGiveValue);
    tokens[_tokenGive][_caller] = safeAdd(tokens[_tokenGive][_caller], tokenGiveValue);
    tokens[_tokenGet][feeAccount] = safeAdd(tokens[_tokenGet][feeAccount], safeSub(feeTakeValue, rebateValue));
    
    if (tradeTracker != address(0)) {
      TradeTrackerInterface(tradeTracker).tradeComplete(_tokenGet, _amount, _tokenGive, tokenGiveValue, _user, _caller, feeTakeValue, rebateValue);
    }
  }

  function testTrade(address _tokenGet, uint _amountGet, address _tokenGive, uint _amountGive, uint _expires,
      uint _nonce, address _user, uint8 _v, bytes32 _r, bytes32 _s, uint _amount, address _sender) constant returns(bool) {
    if (tokens[_tokenGet][_sender] < _amount ||
      availableVolume(_tokenGet, _amountGet, _tokenGive, _amountGive, _expires, _nonce, _user, _v, _r, _s) < _amount) {
      return false;
    }
    return true;
  }

  function availableVolume(address _tokenGet, uint _amountGet, address _tokenGive, uint _amountGive, uint _expires,
      uint _nonce, address _user, uint8 _v, bytes32 _r, bytes32 _s) constant returns(uint) {
    bytes32 hash = sha256(this, _tokenGet, _amountGet, _tokenGive, _amountGive, _expires, _nonce);
    if (ecrecover(sha3("\x19Ethereum Signed Message:\n32", hash), _v, _r, _s) != _user ||
      block.number > _expires) {
      return 0;
    }
    uint available1 = safeSub(_amountGet, orderFills[_user][hash]);
    uint available2 = safeMul(tokens[_tokenGive][_user], _amountGet) / _amountGive;
    if (available1 < available2) return available1;
    return available2;
  }

  function amountFilled(address _tokenGet, uint _amountGet, address _tokenGive, uint _amountGive, uint _expires,
      uint _nonce, address _user) constant returns(uint) {
    bytes32 hash = sha256(this, _tokenGet, _amountGet, _tokenGive, _amountGive, _expires, _nonce);
    return orderFills[_user][hash];
  }

  function cancelOrder(address _tokenGet, uint _amountGet, address _tokenGive, uint _amountGive, uint _expires,
      uint _nonce, uint8 _v, bytes32 _r, bytes32 _s) {
    bytes32 hash = sha256(this, _tokenGet, _amountGet, _tokenGive, _amountGive, _expires, _nonce);
    if (!(ecrecover(sha3("\x19Ethereum Signed Message:\n32", hash), _v, _r, _s) == msg.sender)) {
      revert();
    }
    orderFills[msg.sender][hash] = _amountGet;
    Cancel(_tokenGet, _amountGet, _tokenGive, _amountGive, _expires, _nonce, msg.sender, _v, _r, _s);
  }
  
  ////////////////////////////////////////////////////////////////////////////////
  // Migrations
  ////////////////////////////////////////////////////////////////////////////////

  // User-triggered (!) fund migrations in case contract got updated
  // Similar to withdraw but we use a successor account instead
  // As we don't store user tokens list on chain, it has to be passed from the outside
  function migrateFunds(address[] _tokens) {
  
    // Get the latest successor in the chain
    require(successor != address(0));
    TokenStore newExchange = TokenStore(successor);
    for (uint16 n = 0; n < 20; n++) {  // We will look past 20 contracts in the future
      address nextSuccessor = newExchange.successor();
      if (nextSuccessor == address(this)) {  // Circular succession
        revert();
      }
      if (nextSuccessor == address(0)) { // We reached the newest, stop
        break;
      }
      newExchange = TokenStore(nextSuccessor);
    }

    // Ether
    uint etherAmount = tokens[0][msg.sender];
    if (etherAmount > 0) {
      tokens[0][msg.sender] = 0;
      newExchange.depositForUser.value(etherAmount)(msg.sender);
    }

    // Tokens
    for (n = 0; n < _tokens.length; n++) {
      address token = _tokens[n];
      require(token != address(0)); // 0 = Ether, we handle it above
      uint tokenAmount = tokens[token][msg.sender];
      if (tokenAmount == 0) {
        continue;
      }
      if (!Token(token).approve(newExchange, tokenAmount)) {
        revert();
      }
      tokens[token][msg.sender] = 0;
      newExchange.depositTokenForUser(token, tokenAmount, msg.sender);
    }

    FundsMigrated(msg.sender);
  }

  // This is used for migrations only. To be called by previous exchange only,
  // user-triggered, on behalf of the user called the migrateFunds method.
  // Note that it does exactly the same as depositToken, but as this is called
  // by a previous generation of exchange itself, we credit internally not the
  // previous exchange, but the user it was called for.
  function depositForUser(address _user) payable deprecable {
    require(_user != address(0));
    require(msg.value > 0);
    TokenStore caller = TokenStore(msg.sender);
    require(caller.version() > 0); // Make sure it's an exchange account
    tokens[0][_user] = safeAdd(tokens[0][_user], msg.value);
  }

  function depositTokenForUser(address _token, uint _amount, address _user) deprecable {
    require(_token != address(0));
    require(_user != address(0));
    require(_amount > 0);
    TokenStore caller = TokenStore(msg.sender);
    require(caller.version() > 0); // Make sure it's an exchange account
    if (!Token(_token).transferFrom(msg.sender, this, _amount)) {
      revert();
    }
    tokens[_token][_user] = safeAdd(tokens[_token][_user], _amount);
  }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_tokenGet","type":"address"},{"name":"_amountGet","type":"uint256"},{"name":"_tokenGive","type":"address"},{"name":"_amountGive","type":"uint256"},{"name":"_expires","type":"uint256"},{"name":"_nonce","type":"uint256"},{"name":"_user","type":"address"},{"name":"_v","type":"uint8"},{"name":"_r","type":"bytes32"},{"name":"_s","type":"bytes32"},{"name":"_amount","type":"uint256"}],"name":"trade","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"deprecated","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"bytes32"}],"name":"orderFills","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tokenGet","type":"address"},{"name":"_amountGet","type":"uint256"},{"name":"_tokenGive","type":"address"},{"name":"_amountGive","type":"uint256"},{"name":"_expires","type":"uint256"},{"name":"_nonce","type":"uint256"},{"name":"_v","type":"uint8"},{"name":"_r","type":"bytes32"},{"name":"_s","type":"bytes32"}],"name":"cancelOrder","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_tokenGet","type":"address"},{"name":"_amountGet","type":"uint256"},{"name":"_tokenGive","type":"address"},{"name":"_amountGive","type":"uint256"},{"name":"_expires","type":"uint256"},{"name":"_nonce","type":"uint256"},{"name":"_user","type":"address"}],"name":"amountFilled","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"depositToken","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_accountModifiers","type":"address"}],"name":"changeAccountModifiers","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_user","type":"address"}],"name":"depositTokenForUser","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tradeTracker","type":"address"}],"name":"changeTradeTracker","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"tokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"uint16"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getAccountModifiers","outputs":[{"name":"takeFeeDiscount","type":"uint256"},{"name":"rebatePercentage","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_fee","type":"uint256"}],"name":"changeFee","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_user","type":"address"}],"name":"depositForUser","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[{"name":"_tokenGet","type":"address"},{"name":"_amountGet","type":"uint256"},{"name":"_tokenGive","type":"address"},{"name":"_amountGive","type":"uint256"},{"name":"_expires","type":"uint256"},{"name":"_nonce","type":"uint256"},{"name":"_user","type":"address"},{"name":"_v","type":"uint8"},{"name":"_r","type":"bytes32"},{"name":"_s","type":"bytes32"},{"name":"_amount","type":"uint256"},{"name":"_sender","type":"address"}],"name":"testTrade","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"successor","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_feeAccount","type":"address"}],"name":"changeFeeAccount","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"predecessor","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"address[]"}],"name":"migrateFunds","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"fee","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_deprecated","type":"bool"},{"name":"_successor","type":"address"}],"name":"deprecate","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_token","type":"address"},{"name":"_user","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_tokenGet","type":"address"},{"name":"_amountGet","type":"uint256"},{"name":"_tokenGive","type":"address"},{"name":"_amountGive","type":"uint256"},{"name":"_expires","type":"uint256"},{"name":"_nonce","type":"uint256"},{"name":"_user","type":"address"},{"name":"_v","type":"uint8"},{"name":"_r","type":"bytes32"},{"name":"_s","type":"bytes32"}],"name":"availableVolume","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"_fee","type":"uint256"},{"name":"_predecessor","type":"address"}],"payable":false,"type":"constructor"},{"payable":false,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenGet","type":"address"},{"indexed":false,"name":"amountGet","type":"uint256"},{"indexed":false,"name":"tokenGive","type":"address"},{"indexed":false,"name":"amountGive","type":"uint256"},{"indexed":false,"name":"expires","type":"uint256"},{"indexed":false,"name":"nonce","type":"uint256"},{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"v","type":"uint8"},{"indexed":false,"name":"r","type":"bytes32"},{"indexed":false,"name":"s","type":"bytes32"}],"name":"Cancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenGet","type":"address"},{"indexed":false,"name":"amountGet","type":"uint256"},{"indexed":false,"name":"tokenGive","type":"address"},{"indexed":false,"name":"amountGive","type":"uint256"},{"indexed":false,"name":"get","type":"address"},{"indexed":false,"name":"give","type":"address"},{"indexed":false,"name":"nonce","type":"uint256"}],"name":"Trade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"balance","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"balance","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"user","type":"address"}],"name":"FundsMigrated","type":"event"}]

6060604052341561000f57600080fd5b60405160408061233883398101604052808051919060200180519150505b5b60008054600160a060020a03191633600160a060020a03161790555b60005460018054600160a060020a03928316600160a060020a0319918216179091556004849055600880549091168383161760a060020a60ff02198116909155161561013057600854600160a060020a03166354fd4d506000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156100f157600080fd5b6102c65a03f1151561010257600080fd5b50505060405180519050600101600860156101000a81548161ffff021916908361ffff16021790555061015a565b6008805460a860020a61ffff02191675010000000000000000000000000000000000000000001790555b5b50505b6121cb8061016d6000396000f3006060604052361561014e5763ffffffff60e060020a6000350416630a19b14a81146101665780630e136b19146101b557806319774d43146101dc578063278b8c0e146102105780632d804ca2146102515780632e1a7d4d1461029e578063338b5dea146102b657806338ec18c3146102da5780633c2e2a75146102fb57806348d64fd514610326578063508493bc1461034757806354fd4d501461037e57806359015ed5146103a85780636a1db1bf146103d35780636a523c5e146103eb5780636c86888b146104015780636ff968c31461046d57806371ffcb161461049c5780638da5cb5b146104bd5780639e281a98146104ec578063b719d03214610510578063be3dd1311461053f578063d0e30db014610590578063ddca3f431461059a578063e6213127146105bf578063f2fde38b146105e5578063f7888aec14610606578063fb6e155f1461063d575b341561015957600080fd5b6101645b600080fd5b565b005b341561017157600080fd5b610164600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e43516610104356101243561014435610698565b005b34156101c057600080fd5b6101c8610921565b604051901515815260200160405180910390f35b34156101e757600080fd5b6101fe600160a060020a0360043516602435610931565b60405190815260200160405180910390f35b341561021b57600080fd5b610164600160a060020a03600435811690602435906044351660643560843560a43560ff60c4351660e4356101043561094e565b005b341561025c57600080fd5b6101fe600160a060020a0360043581169060243590604435811690606435906084359060a4359060c43516610b74565b60405190815260200160405180910390f35b34156102a957600080fd5b610164600435610c39565b005b34156102c157600080fd5b610164600160a060020a0360043516602435610d6f565b005b34156102e557600080fd5b610164600160a060020a0360043516610ee8565b005b341561030657600080fd5b610164600160a060020a036004358116906024359060443516610f30565b005b341561033157600080fd5b610164600160a060020a03600435166110e3565b005b341561035257600080fd5b6101fe600160a060020a036004358116906024351661112b565b60405190815260200160405180910390f35b341561038957600080fd5b610391611148565b60405161ffff909116815260200160405180910390f35b34156103b357600080fd5b6103bb61116b565b60405191825260208201526040908101905180910390f35b34156103de57600080fd5b61016460043561120f565b005b610164600160a060020a0360043516611243565b005b341561040c57600080fd5b6101c8600160a060020a0360043581169060243590604435811690606435906084359060a4359060c43581169060ff60e4351690610104359061012435906101443590610164351661134f565b604051901515815260200160405180910390f35b341561047857600080fd5b6104806113b6565b604051600160a060020a03909116815260200160405180910390f35b34156104a757600080fd5b610164600160a060020a03600435166113c5565b005b34156104c857600080fd5b610480611422565b604051600160a060020a03909116815260200160405180910390f35b34156104f757600080fd5b610164600160a060020a0360043516602435611431565b005b341561051b57600080fd5b6104806115d9565b604051600160a060020a03909116815260200160405180910390f35b341561054a57600080fd5b61016460046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506115e895505050505050565b005b610164611970565b005b34156105a557600080fd5b6101fe611a3e565b60405190815260200160405180910390f35b34156105ca57600080fd5b6101646004351515600160a060020a0360243516611a44565b005b34156105f057600080fd5b610164600160a060020a0360043516611ab5565b005b341561061157600080fd5b6101fe600160a060020a0360043581169060243516611b12565b60405190815260200160405180910390f35b341561064857600080fd5b6101fe600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e435166101043561012435611b3f565b60405190815260200160405180910390f35b60006002308d8d8d8d8d8d6000604051602001526040516c01000000000000000000000000600160a060020a0398891681028252968816870260148201526028810195909552929095169093026048830152605c820192909252607c810192909252609c82015260bc0160206040518083038160008661646e5a03f1151561071f57600080fd5b50506040518051915050600160a060020a0386166001826040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0160405180910390208787876040518060005260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f115156107d157600080fd5b505060206040510351600160a060020a03161415806107ef57508743115b806108275750600160a060020a03861660009081526006602090815260408083208484529091529020548b906108259084611d3d565b115b1561083157600080fd5b6108408c8c8c8c8a3388611d65565b600160a060020a038616600090815260066020908152604080832084845290915290205461086e9083611d3d565b600160a060020a03871660009081526006602090815260408083208584529091529020557f3314c351c2a2a45771640a1442b843167a4da29bd543612311c031bbfb4ffa988c838c8e8d83028115156108c357fe5b048a338d604051600160a060020a03978816815260208101969096529386166040808701919091526060860193909352908516608085015290931660a083015260c082015260e001905180910390a15b505050505050505050505050565b60085460a060020a900460ff1681565b600660209081526000928352604080842090915290825290205481565b60006002308b8b8b8b8b8b6000604051602001526040516c01000000000000000000000000600160a060020a0398891681028252968816870260148201526028810195909552929095169093026048830152605c820192909252607c810192909252609c82015260bc0160206040518083038160008661646e5a03f115156109d557600080fd5b50506040518051915050600160a060020a0333166001826040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0160405180910390208686866040518060005260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f11515610a8757600080fd5b505060206040510351600160a060020a031614610aa357600080fd5b33600160a060020a0381166000908152600660209081526040808320858452909152908190208b90557f1e0b760c386003e9cb9bcf4fcf3997886042859d9b6ed6320e804597fcdb28b0918c918c918c918c918c918c91908c908c908c9051600160a060020a039a8b16815260208101999099529689166040808a01919091526060890196909652608088019490945260a087019290925290951660c085015260ff90941660e084015261010083019390935261012082015261014001905180910390a15b50505050505050505050565b6000806002308a8a8a8a8a8a6000604051602001526040516c01000000000000000000000000600160a060020a0398891681028252968816870260148201526028810195909552929095169093026048830152605c820192909252607c810192909252609c82015260bc0160206040518083038160008661646e5a03f11515610bfc57600080fd5b50506040518051600160a060020a038516600090815260066020908152604080832084845290915290205493509150505b50979650505050505050565b33600160a060020a03166000908152600080516020612180833981519152602052604090205481901015610c6c57600080fd5b33600160a060020a031660009081526000805160206121808339815191526020526040902054610c9c9082612139565b33600160a060020a03166000818152600080516020612180833981519152602052604090819020929092559082905160006040518083038185876187965a03f1925050501515610ceb57600080fd5b33600160a060020a03811660009081526000805160206121808339815191526020526040808220547ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567939185919051600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a15b50565b60085460a060020a900460ff1615610d8657600080fd5b600160a060020a0382161515610d9b57600080fd5b81600160a060020a03166323b872dd33308460006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610e0557600080fd5b6102c65a03f11515610e1657600080fd5b505050604051805190501515610e2b57600080fd5b600160a060020a0380831660009081526005602090815260408083203390941683529290522054610e5c9082611d3d565b600160a060020a038381166000908152600560209081526040808320339485168452909152908190208390557fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79285929185919051600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a15b5b5050565b60005433600160a060020a03908116911614610f0357600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60085460009060a060020a900460ff1615610f4a57600080fd5b600160a060020a0384161515610f5f57600080fd5b600160a060020a0382161515610f7457600080fd5b60008311610f8157600080fd5b50336000600160a060020a0382166354fd4d5082604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fca57600080fd5b6102c65a03f11515610fdb57600080fd5b5050506040518051905061ffff16111515610ff557600080fd5b83600160a060020a03166323b872dd33308660006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561105f57600080fd5b6102c65a03f1151561107057600080fd5b50505060405180519050151561108557600080fd5b600160a060020a038085166000908152600560209081526040808320938616835292905220546110b59084611d3d565b600160a060020a038086166000908152600560209081526040808320938716835292905220555b5b50505050565b60005433600160a060020a039081169116146110fe57600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600560209081526000928352604080842090915290825290205481565b6008547501000000000000000000000000000000000000000000900461ffff1681565b6002546000908190600160a060020a03161561120357600254600160a060020a031663ea08ec2c3360006040516040015260405160e060020a63ffffffff8416028152600160a060020a0390911660048201526024016040805180830381600087803b15156111d957600080fd5b6102c65a03f115156111ea57600080fd5b505050604051805190602001805190509150915061120a565b5060009050805b5b9091565b60005433600160a060020a0390811691161461122a57600080fd5b60045481111561123957600080fd5b60048190555b5b50565b60085460009060a060020a900460ff161561125d57600080fd5b600160a060020a038216151561127257600080fd5b6000341161127f57600080fd5b50336000600160a060020a0382166354fd4d5082604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156112c857600080fd5b6102c65a03f115156112d957600080fd5b5050506040518051905061ffff161115156112f357600080fd5b600160a060020a038216600090815260008051602061218083398151915260205260409020546113239034611d3d565b600160a060020a038316600090815260008051602061218083398151915260205260409020555b5b5050565b600160a060020a03808d166000908152600560209081526040808320938516835292905290812054839010806113955750826113938e8e8e8e8e8e8e8e8e8e611b3f565b105b156113a2575060006113a6565b5060015b9c9b505050505050505050505050565b600754600160a060020a031681565b60005433600160a060020a039081169116146113e057600080fd5b600160a060020a03811615156113f557600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600054600160a060020a031681565b600160a060020a038216151561144657600080fd5b600160a060020a03808316600090815260056020908152604080832033909416835292905220548190101561147a57600080fd5b600160a060020a03808316600090815260056020908152604080832033909416835292905220546114ab9082612139565b600160a060020a03808416600081815260056020908152604080832033958616845290915280822094909455909263a9059cbb92918591516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561152a57600080fd5b6102c65a03f1151561153b57600080fd5b50505060405180519050151561155057600080fd5b600160a060020a03808316600090815260056020908152604080832033948516845290915290819020547ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679285929091859151600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a15b5050565b600854600160a060020a031681565b60075460009081908190819081908190600160a060020a0316151561160c57600080fd5b600754600160a060020a03169550600094505b60148561ffff1610156116d25785600160a060020a0316636ff968c36000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561167257600080fd5b6102c65a03f1151561168357600080fd5b50505060405180519050935030600160a060020a031684600160a060020a031614156116ae57600080fd5b600160a060020a03841615156116c3576116d2565b8395505b60019094019361161f565b33600160a060020a031660009081526000805160206121808339815191526020526040812054935083111561178a57600160a060020a0333818116600090815260008051602061218083398151915260205260408082209190915591881691636a523c5e9186915160e060020a63ffffffff8516028152600160a060020a0390911660048201526024016000604051808303818588803b151561177457600080fd5b6125ee5a03f1151561178557600080fd5b505050505b600094505b86518561ffff16101561192957868561ffff16815181106117ac57fe5b906020019060200201519150600160a060020a03821615156117cd57600080fd5b50600160a060020a03808216600090815260056020908152604080832033909416835292905220548015156118015761191e565b81600160a060020a031663095ea7b3878360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561185e57600080fd5b6102c65a03f1151561186f57600080fd5b50505060405180519050151561188457600080fd5b600160a060020a03808316600090815260056020908152604080832033808616855292528083209290925591881691633c2e2a7591859185915160e060020a63ffffffff8616028152600160a060020a03938416600482015260248101929092529091166044820152606401600060405180830381600087803b151561190957600080fd5b6102c65a03f1151561191a57600080fd5b5050505b60019094019361178f565b7f0e3e9a671666295c299b941a07625839915442794bf73a484b24bb3e221270c333604051600160a060020a03909116815260200160405180910390a15b50505050505050565b60085460a060020a900460ff161561198757600080fd5b33600160a060020a0316600090815260008051602061218083398151915260205260409020546119b79034611d3d565b33600160a060020a038116600090815260008051602061218083398151915260205260408082208490557fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d793919291349151600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a15b5b565b60045481565b60005433600160a060020a03908116911614611a5f57600080fd5b6008805474ff0000000000000000000000000000000000000000191660a060020a841515021790556007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5050565b60005433600160a060020a03908116911614611ad057600080fd5b600160a060020a0381161515611ae557600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600160a060020a038083166000908152600560209081526040808320938516835292905220545b92915050565b6000806000806002308f8f8f8f8f8f6000604051602001526040516c01000000000000000000000000600160a060020a0398891681028252968816870260148201526028810195909552929095169093026048830152605c820192909252607c810192909252609c82015260bc0160206040518083038160008661646e5a03f11515611bca57600080fd5b50506040518051935050600160a060020a0388166001846040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0160405180910390208989896040518060005260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f11515611c7c57600080fd5b505060206040510351600160a060020a0316141580611c9a57508943115b15611ca85760009350611d2c565b600160a060020a0388166000908152600660209081526040808320868452909152902054611cd7908e90612139565b600160a060020a03808e166000908152600560209081526040808320938d16835292905220549092508b90611d0c908f612150565b811515611d1557fe5b04905080821015611d2857819350611d2c565b8093505b5050509a9950505050505050505050565b6000828201838110801590611d525750828110155b1515611d5a57fe5b8091505b5092915050565b6000806000806000670de0b6b3a7640000611d8287600454612150565b811515611d8b57fe5b049450600093508a611d9d8a88612150565b811515611da657fe5b6002549190049350600160a060020a031615611e9057600254600160a060020a031663e97fe114898960006040516040015260405160e060020a63ffffffff8516028152600160a060020a039283166004820152911660248201526044016040805180830381600087803b1515611e1c57600080fd5b6102c65a03f11515611e2d57600080fd5b50505060405180519060200180519050915091506064821115611e4f57600091505b6064811115611e5c575060005b6064611e6b8684606403612150565b811515611e7457fe5b0494506064611e838287612150565b811515611e8c57fe5b0493505b600160a060020a03808d166000908152600560209081526040808320938c1683529290522054611ec990611ec48887611d3d565b611d3d565b600160a060020a038d811660009081526005602090815260408083208d851684529091528082209390935590891681522054611f0e90611f098888611d3d565b612139565b600160a060020a03808e1660009081526005602081815260408084208d861685528252808420959095558e84168352908152838220928c168252919091522054611f589084612139565b600160a060020a038b811660009081526005602090815260408083208d851684529091528082209390935590891681522054611f949084611d3d565b600560008c600160a060020a0316600160a060020a03168152602001908152602001600020600089600160a060020a0316600160a060020a0316815260200190815260200160002081905550612050600560008e600160a060020a0316600160a060020a031681526020019081526020016000206000600160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002054611ec48787612139565b611d3d565b600160a060020a03808e16600090815260056020908152604080832060015485168452909152902091909155600354161561091357600354600160a060020a031663f0fc14388d888d878d8d8c8c60405160e060020a63ffffffff8b16028152600160a060020a039889166004820152602481019790975294871660448701526064860193909352908516608485015290931660a483015260c482019290925260e481019190915261010401600060405180830381600087803b151561211557600080fd5b6102c65a03f1151561212657600080fd5b5050505b5b505050505050505050505050565b60008282111561214557fe5b508082035b92915050565b6000828202831580611d52575082848281151561216957fe5b04145b1515611d5a57fe5b8091505b5092915050560005b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bca165627a7a7230582077f218d396cd040a425e3dc0d8a1d2b99db2d2b265a225a4134ec6bed3adc3810029000000000000000000000000000000000000000000000000000aa87bee5380000000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6060604052361561014e5763ffffffff60e060020a6000350416630a19b14a81146101665780630e136b19146101b557806319774d43146101dc578063278b8c0e146102105780632d804ca2146102515780632e1a7d4d1461029e578063338b5dea146102b657806338ec18c3146102da5780633c2e2a75146102fb57806348d64fd514610326578063508493bc1461034757806354fd4d501461037e57806359015ed5146103a85780636a1db1bf146103d35780636a523c5e146103eb5780636c86888b146104015780636ff968c31461046d57806371ffcb161461049c5780638da5cb5b146104bd5780639e281a98146104ec578063b719d03214610510578063be3dd1311461053f578063d0e30db014610590578063ddca3f431461059a578063e6213127146105bf578063f2fde38b146105e5578063f7888aec14610606578063fb6e155f1461063d575b341561015957600080fd5b6101645b600080fd5b565b005b341561017157600080fd5b610164600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e43516610104356101243561014435610698565b005b34156101c057600080fd5b6101c8610921565b604051901515815260200160405180910390f35b34156101e757600080fd5b6101fe600160a060020a0360043516602435610931565b60405190815260200160405180910390f35b341561021b57600080fd5b610164600160a060020a03600435811690602435906044351660643560843560a43560ff60c4351660e4356101043561094e565b005b341561025c57600080fd5b6101fe600160a060020a0360043581169060243590604435811690606435906084359060a4359060c43516610b74565b60405190815260200160405180910390f35b34156102a957600080fd5b610164600435610c39565b005b34156102c157600080fd5b610164600160a060020a0360043516602435610d6f565b005b34156102e557600080fd5b610164600160a060020a0360043516610ee8565b005b341561030657600080fd5b610164600160a060020a036004358116906024359060443516610f30565b005b341561033157600080fd5b610164600160a060020a03600435166110e3565b005b341561035257600080fd5b6101fe600160a060020a036004358116906024351661112b565b60405190815260200160405180910390f35b341561038957600080fd5b610391611148565b60405161ffff909116815260200160405180910390f35b34156103b357600080fd5b6103bb61116b565b60405191825260208201526040908101905180910390f35b34156103de57600080fd5b61016460043561120f565b005b610164600160a060020a0360043516611243565b005b341561040c57600080fd5b6101c8600160a060020a0360043581169060243590604435811690606435906084359060a4359060c43581169060ff60e4351690610104359061012435906101443590610164351661134f565b604051901515815260200160405180910390f35b341561047857600080fd5b6104806113b6565b604051600160a060020a03909116815260200160405180910390f35b34156104a757600080fd5b610164600160a060020a03600435166113c5565b005b34156104c857600080fd5b610480611422565b604051600160a060020a03909116815260200160405180910390f35b34156104f757600080fd5b610164600160a060020a0360043516602435611431565b005b341561051b57600080fd5b6104806115d9565b604051600160a060020a03909116815260200160405180910390f35b341561054a57600080fd5b61016460046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506115e895505050505050565b005b610164611970565b005b34156105a557600080fd5b6101fe611a3e565b60405190815260200160405180910390f35b34156105ca57600080fd5b6101646004351515600160a060020a0360243516611a44565b005b34156105f057600080fd5b610164600160a060020a0360043516611ab5565b005b341561061157600080fd5b6101fe600160a060020a0360043581169060243516611b12565b60405190815260200160405180910390f35b341561064857600080fd5b6101fe600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e435166101043561012435611b3f565b60405190815260200160405180910390f35b60006002308d8d8d8d8d8d6000604051602001526040516c01000000000000000000000000600160a060020a0398891681028252968816870260148201526028810195909552929095169093026048830152605c820192909252607c810192909252609c82015260bc0160206040518083038160008661646e5a03f1151561071f57600080fd5b50506040518051915050600160a060020a0386166001826040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0160405180910390208787876040518060005260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f115156107d157600080fd5b505060206040510351600160a060020a03161415806107ef57508743115b806108275750600160a060020a03861660009081526006602090815260408083208484529091529020548b906108259084611d3d565b115b1561083157600080fd5b6108408c8c8c8c8a3388611d65565b600160a060020a038616600090815260066020908152604080832084845290915290205461086e9083611d3d565b600160a060020a03871660009081526006602090815260408083208584529091529020557f3314c351c2a2a45771640a1442b843167a4da29bd543612311c031bbfb4ffa988c838c8e8d83028115156108c357fe5b048a338d604051600160a060020a03978816815260208101969096529386166040808701919091526060860193909352908516608085015290931660a083015260c082015260e001905180910390a15b505050505050505050505050565b60085460a060020a900460ff1681565b600660209081526000928352604080842090915290825290205481565b60006002308b8b8b8b8b8b6000604051602001526040516c01000000000000000000000000600160a060020a0398891681028252968816870260148201526028810195909552929095169093026048830152605c820192909252607c810192909252609c82015260bc0160206040518083038160008661646e5a03f115156109d557600080fd5b50506040518051915050600160a060020a0333166001826040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0160405180910390208686866040518060005260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f11515610a8757600080fd5b505060206040510351600160a060020a031614610aa357600080fd5b33600160a060020a0381166000908152600660209081526040808320858452909152908190208b90557f1e0b760c386003e9cb9bcf4fcf3997886042859d9b6ed6320e804597fcdb28b0918c918c918c918c918c918c91908c908c908c9051600160a060020a039a8b16815260208101999099529689166040808a01919091526060890196909652608088019490945260a087019290925290951660c085015260ff90941660e084015261010083019390935261012082015261014001905180910390a15b50505050505050505050565b6000806002308a8a8a8a8a8a6000604051602001526040516c01000000000000000000000000600160a060020a0398891681028252968816870260148201526028810195909552929095169093026048830152605c820192909252607c810192909252609c82015260bc0160206040518083038160008661646e5a03f11515610bfc57600080fd5b50506040518051600160a060020a038516600090815260066020908152604080832084845290915290205493509150505b50979650505050505050565b33600160a060020a03166000908152600080516020612180833981519152602052604090205481901015610c6c57600080fd5b33600160a060020a031660009081526000805160206121808339815191526020526040902054610c9c9082612139565b33600160a060020a03166000818152600080516020612180833981519152602052604090819020929092559082905160006040518083038185876187965a03f1925050501515610ceb57600080fd5b33600160a060020a03811660009081526000805160206121808339815191526020526040808220547ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567939185919051600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a15b50565b60085460a060020a900460ff1615610d8657600080fd5b600160a060020a0382161515610d9b57600080fd5b81600160a060020a03166323b872dd33308460006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610e0557600080fd5b6102c65a03f11515610e1657600080fd5b505050604051805190501515610e2b57600080fd5b600160a060020a0380831660009081526005602090815260408083203390941683529290522054610e5c9082611d3d565b600160a060020a038381166000908152600560209081526040808320339485168452909152908190208390557fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79285929185919051600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a15b5b5050565b60005433600160a060020a03908116911614610f0357600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60085460009060a060020a900460ff1615610f4a57600080fd5b600160a060020a0384161515610f5f57600080fd5b600160a060020a0382161515610f7457600080fd5b60008311610f8157600080fd5b50336000600160a060020a0382166354fd4d5082604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fca57600080fd5b6102c65a03f11515610fdb57600080fd5b5050506040518051905061ffff16111515610ff557600080fd5b83600160a060020a03166323b872dd33308660006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561105f57600080fd5b6102c65a03f1151561107057600080fd5b50505060405180519050151561108557600080fd5b600160a060020a038085166000908152600560209081526040808320938616835292905220546110b59084611d3d565b600160a060020a038086166000908152600560209081526040808320938716835292905220555b5b50505050565b60005433600160a060020a039081169116146110fe57600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600560209081526000928352604080842090915290825290205481565b6008547501000000000000000000000000000000000000000000900461ffff1681565b6002546000908190600160a060020a03161561120357600254600160a060020a031663ea08ec2c3360006040516040015260405160e060020a63ffffffff8416028152600160a060020a0390911660048201526024016040805180830381600087803b15156111d957600080fd5b6102c65a03f115156111ea57600080fd5b505050604051805190602001805190509150915061120a565b5060009050805b5b9091565b60005433600160a060020a0390811691161461122a57600080fd5b60045481111561123957600080fd5b60048190555b5b50565b60085460009060a060020a900460ff161561125d57600080fd5b600160a060020a038216151561127257600080fd5b6000341161127f57600080fd5b50336000600160a060020a0382166354fd4d5082604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156112c857600080fd5b6102c65a03f115156112d957600080fd5b5050506040518051905061ffff161115156112f357600080fd5b600160a060020a038216600090815260008051602061218083398151915260205260409020546113239034611d3d565b600160a060020a038316600090815260008051602061218083398151915260205260409020555b5b5050565b600160a060020a03808d166000908152600560209081526040808320938516835292905290812054839010806113955750826113938e8e8e8e8e8e8e8e8e8e611b3f565b105b156113a2575060006113a6565b5060015b9c9b505050505050505050505050565b600754600160a060020a031681565b60005433600160a060020a039081169116146113e057600080fd5b600160a060020a03811615156113f557600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600054600160a060020a031681565b600160a060020a038216151561144657600080fd5b600160a060020a03808316600090815260056020908152604080832033909416835292905220548190101561147a57600080fd5b600160a060020a03808316600090815260056020908152604080832033909416835292905220546114ab9082612139565b600160a060020a03808416600081815260056020908152604080832033958616845290915280822094909455909263a9059cbb92918591516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561152a57600080fd5b6102c65a03f1151561153b57600080fd5b50505060405180519050151561155057600080fd5b600160a060020a03808316600090815260056020908152604080832033948516845290915290819020547ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679285929091859151600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a15b5050565b600854600160a060020a031681565b60075460009081908190819081908190600160a060020a0316151561160c57600080fd5b600754600160a060020a03169550600094505b60148561ffff1610156116d25785600160a060020a0316636ff968c36000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561167257600080fd5b6102c65a03f1151561168357600080fd5b50505060405180519050935030600160a060020a031684600160a060020a031614156116ae57600080fd5b600160a060020a03841615156116c3576116d2565b8395505b60019094019361161f565b33600160a060020a031660009081526000805160206121808339815191526020526040812054935083111561178a57600160a060020a0333818116600090815260008051602061218083398151915260205260408082209190915591881691636a523c5e9186915160e060020a63ffffffff8516028152600160a060020a0390911660048201526024016000604051808303818588803b151561177457600080fd5b6125ee5a03f1151561178557600080fd5b505050505b600094505b86518561ffff16101561192957868561ffff16815181106117ac57fe5b906020019060200201519150600160a060020a03821615156117cd57600080fd5b50600160a060020a03808216600090815260056020908152604080832033909416835292905220548015156118015761191e565b81600160a060020a031663095ea7b3878360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561185e57600080fd5b6102c65a03f1151561186f57600080fd5b50505060405180519050151561188457600080fd5b600160a060020a03808316600090815260056020908152604080832033808616855292528083209290925591881691633c2e2a7591859185915160e060020a63ffffffff8616028152600160a060020a03938416600482015260248101929092529091166044820152606401600060405180830381600087803b151561190957600080fd5b6102c65a03f1151561191a57600080fd5b5050505b60019094019361178f565b7f0e3e9a671666295c299b941a07625839915442794bf73a484b24bb3e221270c333604051600160a060020a03909116815260200160405180910390a15b50505050505050565b60085460a060020a900460ff161561198757600080fd5b33600160a060020a0316600090815260008051602061218083398151915260205260409020546119b79034611d3d565b33600160a060020a038116600090815260008051602061218083398151915260205260408082208490557fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d793919291349151600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a15b5b565b60045481565b60005433600160a060020a03908116911614611a5f57600080fd5b6008805474ff0000000000000000000000000000000000000000191660a060020a841515021790556007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5050565b60005433600160a060020a03908116911614611ad057600080fd5b600160a060020a0381161515611ae557600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600160a060020a038083166000908152600560209081526040808320938516835292905220545b92915050565b6000806000806002308f8f8f8f8f8f6000604051602001526040516c01000000000000000000000000600160a060020a0398891681028252968816870260148201526028810195909552929095169093026048830152605c820192909252607c810192909252609c82015260bc0160206040518083038160008661646e5a03f11515611bca57600080fd5b50506040518051935050600160a060020a0388166001846040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0160405180910390208989896040518060005260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f11515611c7c57600080fd5b505060206040510351600160a060020a0316141580611c9a57508943115b15611ca85760009350611d2c565b600160a060020a0388166000908152600660209081526040808320868452909152902054611cd7908e90612139565b600160a060020a03808e166000908152600560209081526040808320938d16835292905220549092508b90611d0c908f612150565b811515611d1557fe5b04905080821015611d2857819350611d2c565b8093505b5050509a9950505050505050505050565b6000828201838110801590611d525750828110155b1515611d5a57fe5b8091505b5092915050565b6000806000806000670de0b6b3a7640000611d8287600454612150565b811515611d8b57fe5b049450600093508a611d9d8a88612150565b811515611da657fe5b6002549190049350600160a060020a031615611e9057600254600160a060020a031663e97fe114898960006040516040015260405160e060020a63ffffffff8516028152600160a060020a039283166004820152911660248201526044016040805180830381600087803b1515611e1c57600080fd5b6102c65a03f11515611e2d57600080fd5b50505060405180519060200180519050915091506064821115611e4f57600091505b6064811115611e5c575060005b6064611e6b8684606403612150565b811515611e7457fe5b0494506064611e838287612150565b811515611e8c57fe5b0493505b600160a060020a03808d166000908152600560209081526040808320938c1683529290522054611ec990611ec48887611d3d565b611d3d565b600160a060020a038d811660009081526005602090815260408083208d851684529091528082209390935590891681522054611f0e90611f098888611d3d565b612139565b600160a060020a03808e1660009081526005602081815260408084208d861685528252808420959095558e84168352908152838220928c168252919091522054611f589084612139565b600160a060020a038b811660009081526005602090815260408083208d851684529091528082209390935590891681522054611f949084611d3d565b600560008c600160a060020a0316600160a060020a03168152602001908152602001600020600089600160a060020a0316600160a060020a0316815260200190815260200160002081905550612050600560008e600160a060020a0316600160a060020a031681526020019081526020016000206000600160009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002054611ec48787612139565b611d3d565b600160a060020a03808e16600090815260056020908152604080832060015485168452909152902091909155600354161561091357600354600160a060020a031663f0fc14388d888d878d8d8c8c60405160e060020a63ffffffff8b16028152600160a060020a039889166004820152602481019790975294871660448701526064860193909352908516608485015290931660a483015260c482019290925260e481019190915261010401600060405180830381600087803b151561211557600080fd5b6102c65a03f1151561212657600080fd5b5050505b5b505050505050505050505050565b60008282111561214557fe5b508082035b92915050565b6000828202831580611d52575082848281151561216957fe5b04145b1515611d5a57fe5b8091505b5092915050560005b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bca165627a7a7230582077f218d396cd040a425e3dc0d8a1d2b99db2d2b265a225a4134ec6bed3adc3810029

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

000000000000000000000000000000000000000000000000000aa87bee5380000000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _fee (uint256): 3000000000000000
Arg [1] : _predecessor (address): 0x0000000000000000000000000000000000000000

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000aa87bee538000
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000


Swarm Source

bzzr://77f218d396cd040a425e3dc0d8a1d2b99db2d2b265a225a4134ec6bed3adc381

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Chain Token Portfolio % Price Amount Value
ETH
Ether (ETH)
38.93%$3,619.85642.5613$2,325,976.83
ETH35.64%$234.059,100$2,129,855
ETH16.27%$0.003789256,487,554.9$971,903.16
ETH4.80%$0.789685362,861.1342$286,545.99
ETH3.69%$0.0000366,097,221,572.8201$220,368.52
ETH0.14%$0.000036230,125,952$8,319.34
ETH0.11%$0.8684217,866.8762$6,831.76
ETH0.11%$20.93314.9617$6,592.15
ETH0.08%$0.009569500,000.8$4,784.37
ETH0.07%<$0.00000119,327,866,796.8301$4,354.2
ETH0.03%$19.01105.2871$2,001.51
ETH0.02%$1,836.070.7283$1,337.14
ETH0.02%<$0.00000110,341,811,517$1,310.67
ETH0.02%$0.00003624,920,604.7911$900.69
ETH0.01%$0.00003620,210,231.4071$730.45
ETH<0.01%$1.44326.3261$468.35
ETH<0.01%$0.03435510,466.5314$359.58
ETH<0.01%$0.3053831,078.749$329.43
ETH<0.01%$0.001453208,515.4719$303.05
ETH<0.01%$2.89100$289
ETH<0.01%$0.000957268,247.9685$256.82
ETH<0.01%$0.1278012,002.3207$255.9
ETH<0.01%<$0.00000124,229,904,957.7687$243.4
ETH<0.01%$0.000155919,354.3334$142.22
ETH<0.01%$0.0000361,999,991$72.28
ETH<0.01%$0.00022319,427.6832$70.26
ETH<0.01%$0.00154839,090.863$60.52
ETH<0.01%$0.484417119.0405$57.67
ETH<0.01%$0.000497110,365.2154$54.8
ETH<0.01%$0.0264912,042.618$54.11
ETH<0.01%$0.0000192,786,748.2016$53.51
ETH<0.01%$0.000165290,747.8511$47.89
ETH<0.01%$3,619.850.01$36.2
ETH<0.01%$17.681.7093$30.22
ETH<0.01%$2,651.880.01$26.52
ETH<0.01%$0.72559130$21.77
ETH<0.01%$0.000036598,737.5607$21.64
ETH<0.01%$0.00025584,279.8129$21.46
ETH<0.01%$0.00050237,063.7345$18.62
ETH<0.01%$0.125921114.6371$14.44
ETH<0.01%$112.6022$12.61
ETH<0.01%$0.56313119.1996$10.81
ETH<0.01%$0.018542456.4041$8.46
ETH<0.01%$1.45.553$7.77
ETH<0.01%$0.078888.3431$6.96
ETH<0.01%$0.62007610.495$6.51
ETH<0.01%$0.0019473,155.9084$6.15
ETH<0.01%$1.165.0761$5.89
ETH<0.01%$0.12739837.2032$4.74
ETH<0.01%$0.20684822.2856$4.61
ETH<0.01%$0.6170936$3.7
ETH<0.01%$0.00003795,114$3.49
ETH<0.01%$13.2984$3.3
ETH<0.01%$0.00003691,175$3.3
ETH<0.01%$0.0497956.6161$2.82
ETH<0.01%$269.260.01$2.69
ETH<0.01%$0.10624221.632$2.3
ETH<0.01%$0.004897360.5754$1.77
ETH<0.01%$0.00003644,731.82$1.62
ETH<0.01%$0.13999510$1.4
ETH<0.01%$0.000013103,218.6851$1.31
ETH<0.01%$0.00003623,335.1157$0.8433
ETH<0.01%$0.6760861.2294$0.8311
ETH<0.01%$0.005125159.1507$0.8156
ETH<0.01%$0.000957692.9048$0.6633
ETH<0.01%$0.003164201.013$0.6359
ETH<0.01%$0.005048100$0.5048
ETH<0.01%$0.004423100$0.4423
ETH<0.01%$0.000761533.945$0.4063
ETH<0.01%$0.00438790$0.3948
ETH<0.01%$0.00003610,000$0.3614
ETH<0.01%$0.0000369,000$0.3252
ETH<0.01%$10.2702$0.2704
ETH<0.01%$0.000957244$0.2334
ETH<0.01%$0.000681325$0.2211
ETH<0.01%$0.00387850$0.1938
ETH<0.01%$0.0000365,015$0.1812
POL<0.01%$0.00122784,279.82$103.43
ARB<0.01%$13.15$3.15
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.