Contract 0x8d12a197cb00d4747a1fe03395095ce2a5cc6819

Dex  

 

Contract Overview

EtherDelta_2
Balance:
24,877.011610019554834768 Ether

EtherValue:
$3,709,659.97 (@ $149.12/ETH)

Token:
TxHash Block Age From To Value [TxFee]
0x9a3894a27c14002619afedc15a1e8c688d7ca93fd5e3769e1cd9fd39157e517b(pending)10 secs ago0x2572ab4c5162734c4401d3797920c0579581e153 IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190.01 Ether(Pending)
0x2299dec00036b0c680f53154860767ee1bac0ae5c75de9f6928a39a801ebba19(pending)50 secs ago0x34ec132c783dfa2ba7b4b9cc5549b224418664c5 IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0x492b62fe575ebe0b9c9c63418b72fa536e22ea8f22b2247c6e1113d5a0884686(pending)54 secs ago0x2572ab4c5162734c4401d3797920c0579581e153 IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0xba4d353b4d67e6f6d5717205fba3e2dbe9f2f904b8d903a071f5a001695c0664(pending)2 mins ago0x05abcb0e92a620451a484a565a2807d28b2cf877 IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0xb0997365fa6b36f9a6a28c2a6078d34849190fff0a3bbc4990811af0a53aceef(pending)9 hrs 37 mins ago0x228ba17e9cf33ab23614ddc300d5ef9e7ea09f6d IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0x635649f84e55ea99365a501120a7c8a38884701e5697ccccfd72faddbb129864(pending)9 hrs 46 mins ago0xb83a6f00dc60276c2b2a64dbe3019a9de77ef4f7 IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0xcf51cc61cef7fa5b7111633219dd5304b17e5d4229938e8c442a3e985d137380(pending)13 hrs 30 mins ago0x03df1a4bbab57b94e7a7cbc2fe938e894723bdfb IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0x50e5b8e0750f353690b57de91775c8ca0835bd15f758dc5b6ed9dcc36b794c30(pending)15 hrs 34 mins ago0xc6ed5cd780af01527ac2c0bae921c1a749da4146 IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0x7967754d39a70921d6a8309c42c6389fc3773db840dd14da676a53098640057e(pending)15 hrs 39 mins ago0x1117ffb9c46e3348874f0ba59ca164e136bfff6d IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0x6cd8ec9fcd95accc820744dfe207e976b3b2b4e1b215489bdf9f8af7d1cbf771(pending)15 hrs 45 mins ago0x8988156d003068f226aff6d4abaf8fc880a84c47 IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0x45720459ed3b14d4f5b5acb1f5c98460e56914ca978055efad9815b0ff7bb5bb(pending)15 hrs 59 mins ago0xbf7a9491bcdac14e971007fca8d56d4cba054c10 IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0x9cb174ea6305e3bae544e7f78b950998e9645a0ab5dc06a4adc6db2823d255f6(pending)16 hrs 1 min ago0xe2de8237959c37d82c61d2f5399d4a5a85e02868 IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0xac8ec7018d1aa7ba7fd99d364d6eb732c2cfaa444a53fa8c604fc172d3576b2d(pending)16 hrs 1 min ago0x78b350bf421d2a30224a87c28c8aface55692dc2 IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0x7c18c5ddfbbdad6c6a5c4c598de0d4e710824134c77aa7f4d9fdb0fa38014431(pending)16 hrs 2 mins ago0xf4118c9252781fdc2da918531d5ba926daa87fdd IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0x3b4c23c9bc8de369b09a57a9aa6a85fa98108c7a4c5f2fbb796c153c35ef5941(pending)16 hrs 3 mins ago0xd55c8a5e46376fc2a52c69be7369db2b676152d8 IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0xbcdb4696f324ac360ff49b0ad95b655773f4485687069883ca7f1e075e1cfceb(pending)16 hrs 4 mins ago0x3db4479c58c0ce594a63e336bea8f5579e625397 IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0xccc27c73e2abd4acb3e479504b8de8aebb7aaab720b25b0bb3ffc43eb30dba17(pending)16 hrs 4 mins ago0x3beba388f63eb8fb0b07353df071f24ac80e0f17 IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0x6ac5ef14d79acbb564341d4e3377923a458e3f88fd3cbebe031d9403f538c66c(pending)16 hrs 4 mins ago0x3beba388f63eb8fb0b07353df071f24ac80e0f17 IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0xe4f8da8fe8ad641e6ca3648ce3e83bbd7159131cf9dc95f5e1744f827322b562(pending)16 hrs 4 mins ago0x1209df9ee57720a59cfc56bac292d24c61dfa4a0 IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0x29d71b36e87ff21d9a8b2ce899619c3f088f32ebb435d60472c3c94e827dd83c(pending)16 hrs 4 mins ago0x14d42f00218f55f4f0283fa12fb355db491c475e IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0x51db91eefc25cd597226251d05b9197e6fce9335605647b1c24396e9039120d0(pending)16 hrs 4 mins ago0x14d42f00218f55f4f0283fa12fb355db491c475e IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0x9685e686e89848f345441a78da7109da58682a375f630af40e8b1e9994feb58a(pending)16 hrs 4 mins ago0x14d42f00218f55f4f0283fa12fb355db491c475e IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0xc4d03b222372ec18e911396a6d82475a7ff2b6d791c9f10c60a2a40dfd55f419(pending)16 hrs 4 mins ago0x14d42f00218f55f4f0283fa12fb355db491c475e IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0xa38b51702b08094f0a9e60f0df0ae9235959cdd8461e3527860f4f1bb325c3a1(pending)16 hrs 4 mins ago0x14d42f00218f55f4f0283fa12fb355db491c475e IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)
0xc8740cc4e7c5cd5d5a3d256965e492df7e584afd6c356c6d7f868781c5bb3961(pending)16 hrs 4 mins ago0x14d42f00218f55f4f0283fa12fb355db491c475e IN 0x8d12a197cb00d4747a1fe03395095ce2a5cc68190 Ether(Pending)

Latest 25 Internal Transaction, Click here to view more Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
0xcfc27c580a481733e69a3985a00b367f712d7dccd57f94c0a1379193ccbe591c72540792 mins ago0x8d12a197cb00d4747a1fe03395095ce2a5cc68190x77d4b24547cf1905d3c479a2c5aab0688d65a1264 Ether
0xf0adce3614981e2319a1a953f53963aed4eacf1f655790b304edd047558d884972540666 mins ago0x8d12a197cb00d4747a1fe03395095ce2a5cc68190xf96e316dd1b3284b0ce920e6fa43fe0d54dbdce10.176 Ether
0xfbda5319554401175ed0952622250ea215336da45e335287dc3b31e838b145f472540618 mins ago0xd9230c6e338fc15830ef3340016c9daf16d15f2f0x8d12a197cb00d4747a1fe03395095ce2a5cc68190.009130249097865685 Ether
0x76fe151d1fbb17a784f877ccc31388094b12c67af5d8aba75bb3b12827da6fbe72540618 mins ago0xd9230c6e338fc15830ef3340016c9daf16d15f2f0x8d12a197cb00d4747a1fe03395095ce2a5cc68190.00049583085544988 Ether
0x031c1b8a3965cf50eaaf6243b32cb7a8e3ad994fed1bb0660d1a74a38dca4c0c72540618 mins ago0xd9230c6e338fc15830ef3340016c9daf16d15f2f0x8d12a197cb00d4747a1fe03395095ce2a5cc68190.000331420161769562 Ether
0x0c65743338246eafe15f0fd81e4d6b6d5ed08ba2898c9be7b51e10ee201dc23472540618 mins ago0xd9230c6e338fc15830ef3340016c9daf16d15f2f0x8d12a197cb00d4747a1fe03395095ce2a5cc68190.00088857416496547 Ether
0x915f2541859adbd84a9cdcd245001bf392bdced1c257219a6f55f6fee5e5bfa572540618 mins ago0xd9230c6e338fc15830ef3340016c9daf16d15f2f0x8d12a197cb00d4747a1fe03395095ce2a5cc68190.000888319358410047 Ether
0xcd3813e0b89d0fe1cfa27e77c807fbb93bdc1f844177dc9ec8397e4e96f5eedd72540618 mins ago0xd9230c6e338fc15830ef3340016c9daf16d15f2f0x8d12a197cb00d4747a1fe03395095ce2a5cc68190.002673533669759377 Ether
0xdcf22f889adf75e34a9661d45f0deda0449499133b93f7d954d7582ef520bf1972540618 mins ago0xd9230c6e338fc15830ef3340016c9daf16d15f2f0x8d12a197cb00d4747a1fe03395095ce2a5cc68190.009672065055290214 Ether
0x1e5db163f32a7ff7768bfa91f5ded17aff219da3f0572a05083b0d8b9739f78d72540618 mins ago0xd9230c6e338fc15830ef3340016c9daf16d15f2f0x8d12a197cb00d4747a1fe03395095ce2a5cc68190.000148342592691297 Ether
0xa6fee364ce7af5f581df6e47639e2d54789d627309826334d8775514937d479272540618 mins ago0xd9230c6e338fc15830ef3340016c9daf16d15f2f0x8d12a197cb00d4747a1fe03395095ce2a5cc68190.000238146080537005 Ether
0x684c8d2c195dd074c08323753bea695102bb4d3a0f826f48e310ef830777688172540618 mins ago0xd9230c6e338fc15830ef3340016c9daf16d15f2f0x8d12a197cb00d4747a1fe03395095ce2a5cc68190.003818371709289776 Ether
0x4506e29d580ec937a8edfd15c7aad2f258f9316c672a973f2155dd7f2c8a9e6372540618 mins ago0xd9230c6e338fc15830ef3340016c9daf16d15f2f0x8d12a197cb00d4747a1fe03395095ce2a5cc68190.003818371709289776 Ether
0xb28694b5cd588b6e245caa1735e0ebf41fa4eaf532c01ab54602d2d1e41624c472540608 mins ago0x8d12a197cb00d4747a1fe03395095ce2a5cc68190xf96e316dd1b3284b0ce920e6fa43fe0d54dbdce10.01 Ether
0x07954408074ae3460d6f9c7e9b2b6a6a6d56244413bbab38cdc7c2dc5425f05172540608 mins ago0x8d12a197cb00d4747a1fe03395095ce2a5cc68190x76d40f6297c910192d5a1fd8863a992e071c44370.119 Ether
0x6aaaf380ade0b710f310aee8c2dfd4aa44a64c011e3446242521e8e4a9cd902e72540598 mins ago0xd9230c6e338fc15830ef3340016c9daf16d15f2f0x8d12a197cb00d4747a1fe03395095ce2a5cc68190.003818371709289776 Ether
0x7e5108e0f85735e494604dd9f1b0a40e89d8865fe3e044e69e2865882faf5c5172540598 mins ago0xd9230c6e338fc15830ef3340016c9daf16d15f2f0x8d12a197cb00d4747a1fe03395095ce2a5cc68190.003818371709289776 Ether
0x77ba6e55400337a5cc3913c7a32fc015438c28a1b5fbefee5674940a6acdbd1a72540598 mins ago0xd9230c6e338fc15830ef3340016c9daf16d15f2f0x8d12a197cb00d4747a1fe03395095ce2a5cc68190.003818371709289776 Ether
0xc5f22b7b48b1dc03465d773ba2cbc854f20043704931ac7142fec4e9c4c64bb472540598 mins ago0xd9230c6e338fc15830ef3340016c9daf16d15f2f0x8d12a197cb00d4747a1fe03395095ce2a5cc68190.003818371709289776 Ether
0x0921d9eb49bbe2d13d1ac890df4fd54c381b375b49392c504ff7a3792e757561725404911 mins ago0x8d12a197cb00d4747a1fe03395095ce2a5cc68190x7fb30face695357c2b487c52516b00bae7c7be730.006907212979762735 Ether
0x017156fa3ce21c42c28515e8f03252c650498a6afdaa728287657f5f1f3129e4725404412 mins ago0x8d12a197cb00d4747a1fe03395095ce2a5cc68190x24d9f17d7d0cc8daa7a889c4bafdef55b73e3c8e0.499902000001417106 Ether
0xfb0ea8d9361b18026534c1b5bfa2ff346a58c83e258fcb5f4a2f5e92848b3d36725404013 mins ago0x8d12a197cb00d4747a1fe03395095ce2a5cc68190x40719c9f468ef54bcd06d97f55d72688f9b5e30b1.2 Ether
0x8d10a3e0642a6f5eb08001ea5b7a8d217a66196a18b3191d103b8bb9e612b233725401723 mins ago0x8d12a197cb00d4747a1fe03395095ce2a5cc68190x28560ebe0a92b7a498d4837cb9199ae5fe1913180.003854722839597248 Ether
0x089bcecb427b1feb7441154c70c1a2b1692413558b73e1674915ef2000e6f878725401325 mins ago0x8d12a197cb00d4747a1fe03395095ce2a5cc68190x972f4acb31b860e69d9bebdd1cbb9ea65385e49a0.010972500065038381 Ether
0x8c56e7f04b1ae52ebf60cc7102815b27a125fc51e59bb25dc35e0196e3b559ca725399927 mins ago0x8d12a197cb00d4747a1fe03395095ce2a5cc68190x1bdc2ddf20a4b0b292978abbe753ea1de8c666e70.62 Ether
[ Download CSV Export 
Contract Name: EtherDelta
Compiler Version: v0.4.9+commit.364da425
Optimization Enabled: Yes
Runs (Optimizer):  200


Contract Source Code
pragma solidity ^0.4.9;

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;
  }

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

contract Token {
  /// @return total amount of tokens
  function totalSupply() constant returns (uint256 supply) {}

  /// @param _owner The address from which the balance will be retrieved
  /// @return The balance
  function balanceOf(address _owner) constant returns (uint256 balance) {}

  /// @notice send `_value` token to `_to` from `msg.sender`
  /// @param _to The address of the recipient
  /// @param _value The amount of token to be transferred
  /// @return Whether the transfer was successful or not
  function transfer(address _to, uint256 _value) returns (bool success) {}

  /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
  /// @param _from The address of the sender
  /// @param _to The address of the recipient
  /// @param _value The amount of token to be transferred
  /// @return Whether the transfer was successful or not
  function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {}

  /// @notice `msg.sender` approves `_addr` to spend `_value` tokens
  /// @param _spender The address of the account able to transfer the tokens
  /// @param _value The amount of wei to be approved for transfer
  /// @return Whether the approval was successful or not
  function approve(address _spender, uint256 _value) returns (bool success) {}

  /// @param _owner The address of the account owning tokens
  /// @param _spender The address of the account able to transfer the tokens
  /// @return Amount of remaining tokens allowed to spent
  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);

  uint public decimals;
  string public name;
}

contract StandardToken is Token {

  function transfer(address _to, uint256 _value) returns (bool success) {
    //Default assumes totalSupply can't be over max (2^256 - 1).
    //If your token leaves out totalSupply and can issue more tokens as time goes on, you need to check if it doesn't wrap.
    //Replace the if with this one instead.
    if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
    //if (balances[msg.sender] >= _value && _value > 0) {
      balances[msg.sender] -= _value;
      balances[_to] += _value;
      Transfer(msg.sender, _to, _value);
      return true;
    } else { return false; }
  }

  function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
    //same as above. Replace this line with the following if you want to protect against wrapping uints.
    if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
    //if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) {
      balances[_to] += _value;
      balances[_from] -= _value;
      allowed[_from][msg.sender] -= _value;
      Transfer(_from, _to, _value);
      return true;
    } else { return false; }
  }

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

  function approve(address _spender, uint256 _value) returns (bool success) {
    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
    return true;
  }

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

  mapping(address => uint256) balances;

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

  uint256 public totalSupply;
}

contract ReserveToken is StandardToken, SafeMath {
  address public minter;
  function ReserveToken() {
    minter = msg.sender;
  }
  function create(address account, uint amount) {
    if (msg.sender != minter) throw;
    balances[account] = safeAdd(balances[account], amount);
    totalSupply = safeAdd(totalSupply, amount);
  }
  function destroy(address account, uint amount) {
    if (msg.sender != minter) throw;
    if (balances[account] < amount) throw;
    balances[account] = safeSub(balances[account], amount);
    totalSupply = safeSub(totalSupply, amount);
  }
}

contract AccountLevels {
  //given a user, returns an account level
  //0 = regular user (pays take fee and make fee)
  //1 = market maker silver (pays take fee, no make fee, gets rebate)
  //2 = market maker gold (pays take fee, no make fee, gets entire counterparty's take fee as rebate)
  function accountLevel(address user) constant returns(uint) {}
}

contract AccountLevelsTest is AccountLevels {
  mapping (address => uint) public accountLevels;

  function setAccountLevel(address user, uint level) {
    accountLevels[user] = level;
  }

  function accountLevel(address user) constant returns(uint) {
    return accountLevels[user];
  }
}

contract EtherDelta is SafeMath {
  address public admin; //the admin address
  address public feeAccount; //the account that will receive fees
  address public accountLevelsAddr; //the address of the AccountLevels contract
  uint public feeMake; //percentage times (1 ether)
  uint public feeTake; //percentage times (1 ether)
  uint public feeRebate; //percentage times (1 ether)
  mapping (address => mapping (address => uint)) public tokens; //mapping of token addresses to mapping of account balances (token=0 means Ether)
  mapping (address => mapping (bytes32 => bool)) public orders; //mapping of user accounts to mapping of order hashes to booleans (true = submitted by user, equivalent to offchain signature)
  mapping (address => mapping (bytes32 => uint)) public orderFills; //mapping of user accounts to mapping of order hashes to uints (amount of order that has been filled)

  event Order(address tokenGet, uint amountGet, address tokenGive, uint amountGive, uint expires, uint nonce, address user);
  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);
  event Deposit(address token, address user, uint amount, uint balance);
  event Withdraw(address token, address user, uint amount, uint balance);

  function EtherDelta(address admin_, address feeAccount_, address accountLevelsAddr_, uint feeMake_, uint feeTake_, uint feeRebate_) {
    admin = admin_;
    feeAccount = feeAccount_;
    accountLevelsAddr = accountLevelsAddr_;
    feeMake = feeMake_;
    feeTake = feeTake_;
    feeRebate = feeRebate_;
  }

  function() {
    throw;
  }

  function changeAdmin(address admin_) {
    if (msg.sender != admin) throw;
    admin = admin_;
  }

  function changeAccountLevelsAddr(address accountLevelsAddr_) {
    if (msg.sender != admin) throw;
    accountLevelsAddr = accountLevelsAddr_;
  }

  function changeFeeAccount(address feeAccount_) {
    if (msg.sender != admin) throw;
    feeAccount = feeAccount_;
  }

  function changeFeeMake(uint feeMake_) {
    if (msg.sender != admin) throw;
    if (feeMake_ > feeMake) throw;
    feeMake = feeMake_;
  }

  function changeFeeTake(uint feeTake_) {
    if (msg.sender != admin) throw;
    if (feeTake_ > feeTake || feeTake_ < feeRebate) throw;
    feeTake = feeTake_;
  }

  function changeFeeRebate(uint feeRebate_) {
    if (msg.sender != admin) throw;
    if (feeRebate_ < feeRebate || feeRebate_ > feeTake) throw;
    feeRebate = feeRebate_;
  }

  function deposit() payable {
    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) {
    if (tokens[0][msg.sender] < amount) throw;
    tokens[0][msg.sender] = safeSub(tokens[0][msg.sender], amount);
    if (!msg.sender.call.value(amount)()) throw;
    Withdraw(0, msg.sender, amount, tokens[0][msg.sender]);
  }

  function depositToken(address token, uint amount) {
    //remember to call Token(address).approve(this, amount) or this contract will not be able to do the transfer on your behalf.
    if (token==0) throw;
    if (!Token(token).transferFrom(msg.sender, this, amount)) throw;
    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) {
    if (token==0) throw;
    if (tokens[token][msg.sender] < amount) throw;
    tokens[token][msg.sender] = safeSub(tokens[token][msg.sender], amount);
    if (!Token(token).transfer(msg.sender, amount)) throw;
    Withdraw(token, msg.sender, amount, tokens[token][msg.sender]);
  }

  function balanceOf(address token, address user) constant returns (uint) {
    return tokens[token][user];
  }

  function order(address tokenGet, uint amountGet, address tokenGive, uint amountGive, uint expires, uint nonce) {
    bytes32 hash = sha256(this, tokenGet, amountGet, tokenGive, amountGive, expires, nonce);
    orders[msg.sender][hash] = true;
    Order(tokenGet, amountGet, tokenGive, amountGive, expires, nonce, msg.sender);
  }

  function trade(address tokenGet, uint amountGet, address tokenGive, uint amountGive, uint expires, uint nonce, address user, uint8 v, bytes32 r, bytes32 s, uint amount) {
    //amount is in amountGet terms
    bytes32 hash = sha256(this, tokenGet, amountGet, tokenGive, amountGive, expires, nonce);
    if (!(
      (orders[user][hash] || ecrecover(sha3("\x19Ethereum Signed Message:\n32", hash),v,r,s) == user) &&
      block.number <= expires &&
      safeAdd(orderFills[user][hash], amount) <= amountGet
    )) throw;
    tradeBalances(tokenGet, amountGet, tokenGive, amountGive, user, amount);
    orderFills[user][hash] = safeAdd(orderFills[user][hash], amount);
    Trade(tokenGet, amount, tokenGive, amountGive * amount / amountGet, user, msg.sender);
  }

  function tradeBalances(address tokenGet, uint amountGet, address tokenGive, uint amountGive, address user, uint amount) private {
    uint feeMakeXfer = safeMul(amount, feeMake) / (1 ether);
    uint feeTakeXfer = safeMul(amount, feeTake) / (1 ether);
    uint feeRebateXfer = 0;
    if (accountLevelsAddr != 0x0) {
      uint accountLevel = AccountLevels(accountLevelsAddr).accountLevel(user);
      if (accountLevel==1) feeRebateXfer = safeMul(amount, feeRebate) / (1 ether);
      if (accountLevel==2) feeRebateXfer = feeTakeXfer;
    }
    tokens[tokenGet][msg.sender] = safeSub(tokens[tokenGet][msg.sender], safeAdd(amount, feeTakeXfer));
    tokens[tokenGet][user] = safeAdd(tokens[tokenGet][user], safeSub(safeAdd(amount, feeRebateXfer), feeMakeXfer));
    tokens[tokenGet][feeAccount] = safeAdd(tokens[tokenGet][feeAccount], safeSub(safeAdd(feeMakeXfer, feeTakeXfer), feeRebateXfer));
    tokens[tokenGive][user] = safeSub(tokens[tokenGive][user], safeMul(amountGive, amount) / amountGet);
    tokens[tokenGive][msg.sender] = safeAdd(tokens[tokenGive][msg.sender], safeMul(amountGive, amount) / amountGet);
  }

  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 (!(
      (orders[user][hash] || 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, uint8 v, bytes32 r, bytes32 s) 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 (!(orders[msg.sender][hash] || ecrecover(sha3("\x19Ethereum Signed Message:\n32", hash),v,r,s) == msg.sender)) throw;
    orderFills[msg.sender][hash] = amountGet;
    Cancel(tokenGet, amountGet, tokenGive, amountGive, expires, nonce, msg.sender, v, r, s);
  }
}

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":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":"order","outputs":[],"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":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":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":"amountFilled","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"tokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"feeMake_","type":"uint256"}],"name":"changeFeeMake","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"feeMake","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"feeRebate_","type":"uint256"}],"name":"changeFeeRebate","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"feeAccount","outputs":[{"name":"","type":"address"}],"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":"amount","type":"uint256"},{"name":"sender","type":"address"}],"name":"testTrade","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"feeAccount_","type":"address"}],"name":"changeFeeAccount","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"feeRebate","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"feeTake_","type":"uint256"}],"name":"changeFeeTake","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"admin_","type":"address"}],"name":"changeAdmin","outputs":[],"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":"","type":"address"},{"name":"","type":"bytes32"}],"name":"orders","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"feeTake","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"accountLevelsAddr_","type":"address"}],"name":"changeAccountLevelsAddr","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"accountLevelsAddr","outputs":[{"name":"","type":"address"}],"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":"admin","outputs":[{"name":"","type":"address"}],"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":"admin_","type":"address"},{"name":"feeAccount_","type":"address"},{"name":"accountLevelsAddr_","type":"address"},{"name":"feeMake_","type":"uint256"},{"name":"feeTake_","type":"uint256"},{"name":"feeRebate_","type":"uint256"}],"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"}],"name":"Order","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":"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"}],"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"}]

Contract Creation Code
6060604052341561000c57fe5b60405160c080611a7983398101604090815281516020830151918301516060840151608085015160a090950151929491929091905b60008054600160a060020a03808916600160a060020a0319928316179092556001805488841690831617905560028054928716929091169190911790556003839055600482905560058190555b5050505050505b6119d5806100a46000396000f300606060405236156101385763ffffffff60e060020a6000350416630a19b14a811461014d5780630b9276661461019957806319774d43146101ca578063278b8c0e146101fb5780632e1a7d4d14610239578063338b5dea1461024e57806346be96c31461026f578063508493bc146102c757806354d03b5c146102fb57806357786394146103105780635e1d7ae41461033257806365e17c9d146103475780636c86888b1461037357806371ffcb16146103dc578063731c2f81146103fa5780638823a9c01461041c5780638f283970146104315780639e281a981461044f578063bb5f462914610470578063c281309e146104a3578063d0e30db0146104c5578063e8f6bc2e146104cf578063f3412942146104ed578063f7888aec14610519578063f851a4401461054d578063fb6e155f14610579575b341561014057fe5b61014b5b610000565b565b005b341561015557fe5b61014b600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e435166101043561012435610144356105d1565b005b34156101a157fe5b61014b600160a060020a03600435811690602435906044351660643560843560a435610896565b005b34156101d257fe5b6101e9600160a060020a03600435166024356109a7565b60408051918252519081900360200190f35b341561020357fe5b61014b600160a060020a03600435811690602435906044351660643560843560a43560ff60c4351660e435610104356109c4565b005b341561024157fe5b61014b600435610bd4565b005b341561025657fe5b61014b600160a060020a0360043516602435610cf2565b005b341561027757fe5b6101e9600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e435166101043561012435610e46565b60408051918252519081900360200190f35b34156102cf57fe5b6101e9600160a060020a0360043581169060243516610f33565b60408051918252519081900360200190f35b341561030357fe5b61014b600435610f50565b005b341561031857fe5b6101e9610f83565b60408051918252519081900360200190f35b341561033a57fe5b61014b600435610f89565b005b341561034f57fe5b610357610fc8565b60408051600160a060020a039092168252519081900360200190f35b341561037b57fe5b6103c8600160a060020a0360043581169060243590604435811690606435906084359060a4359060c43581169060ff60e43516906101043590610124359061014435906101643516610fd7565b604080519115158252519081900360200190f35b34156103e457fe5b61014b600160a060020a0360043516611042565b005b341561040257fe5b6101e961107c565b60408051918252519081900360200190f35b341561042457fe5b61014b600435611082565b005b341561043957fe5b61014b600160a060020a03600435166110c1565b005b341561045757fe5b61014b600160a060020a03600435166024356110fb565b005b341561047857fe5b6103c8600160a060020a0360043516602435611299565b604080519115158252519081900360200190f35b34156104ab57fe5b6101e96112b9565b60408051918252519081900360200190f35b61014b6112bf565b005b34156104d757fe5b61014b600160a060020a0360043516611361565b005b34156104f557fe5b61035761139b565b60408051600160a060020a039092168252519081900360200190f35b341561052157fe5b6101e9600160a060020a03600435811690602435166113aa565b60408051918252519081900360200190f35b341561055557fe5b6103576113d7565b60408051600160a060020a039092168252519081900360200190f35b341561058157fe5b6101e9600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e4351661010435610124356113e6565b60408051918252519081900360200190f35b60006002308d8d8d8d8d8d6000604051602001526040518088600160a060020a0316600160a060020a0316606060020a02815260140187600160a060020a0316600160a060020a0316606060020a02815260140186815260200185600160a060020a0316600160a060020a0316606060020a0281526014018481526020018381526020018281526020019750505050505050506020604051808303816000866161da5a03f1151561067e57fe5b50506040805151600160a060020a0388166000908152600760209081528382208383529052919091205490915060ff16806107625750604080517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c8101839052815190819003603c018120600082815260208381018552928401819052835191825260ff891682840152818401889052606082018790529251600160a060020a038a16936001936080808501949193601f198101939281900390910191866161da5a03f1151561074e57fe5b505060206040510351600160a060020a0316145b801561076e5750874311155b80156107a85750600160a060020a03861660009081526008602090815260408083208484529091529020548b906107a5908461162d565b11155b15156107b357610000565b6107c18c8c8c8c8a87611655565b600160a060020a03861660009081526008602090815260408083208484529091529020546107ef908361162d565b600160a060020a03871660009081526008602090815260408083208584529091529020557f6effdda786735d5033bfad5f53e5131abcced9e52be6c507b62d639685fbed6d8c838c8e8d830281151561084457fe5b60408051600160a060020a039687168152602081019590955292851684840152046060830152828a166080830152339290921660a082015290519081900360c00190a15b505050505050505050505050565b60408051600060209182018190528251606060020a600160a060020a0330811682028352808c1682026014840152602883018b90528916026048820152605c8101879052607c8101869052609c81018590529251909260029260bc808301939192829003018186866161da5a03f1151561090c57fe5b5050604080518051600160a060020a03338116600081815260076020908152868220858352815290869020805460ff191660011790558c8316855284018b905290891683850152606083018890526080830187905260a0830186905260c083015291519192507f3f7f2eda73683c21a15f9435af1028c93185b5f1fa38270762dc32be606b3e85919081900360e00190a15b50505050505050565b600860209081526000928352604080842090915290825290205481565b60408051600060209182018190528251606060020a600160a060020a0330811682028352808f1682026014840152602883018e90528c16026048820152605c81018a9052607c8101899052609c81018890529251909260029260bc808301939192829003018186866161da5a03f11515610a3a57fe5b50506040805151600160a060020a0333166000908152600760209081528382208383529052919091205490915060ff1680610b1e5750604080517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c8101839052815190819003603c018120600082815260208381018552928401819052835191825260ff881682840152818401879052606082018690529251600160a060020a033316936001936080808501949193601f198101939281900390910191866161da5a03f11515610b0a57fe5b505060206040510351600160a060020a0316145b1515610b2957610000565b600160a060020a0333811660008181526008602090815260408083208684528252918290208d905581518e851681529081018d9052928b1683820152606083018a90526080830189905260a0830188905260c083019190915260ff861660e083015261010082018590526101208201849052517f1e0b760c386003e9cb9bcf4fcf3997886042859d9b6ed6320e804597fcdb28b0918190036101400190a15b50505050505050505050565b33600160a060020a0316600090815260008051602061198a833981519152602052604090205481901015610c0757610000565b33600160a060020a0316600090815260008051602061198a8339815191526020526040902054610c379082611931565b33600160a060020a0316600081815260008051602061198a8339815191526020526040808220939093559151909183919081818185876185025a03f1925050501515610c8257610000565b600160a060020a033316600081815260008051602061198a8339815191526020908152604080832054815193845291830193909352818301849052606082015290517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a15b50565b600160a060020a0382161515610d0757610000565b604080516000602091820181905282517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a0333811660048301523081166024830152604482018690529351938616936323b872dd9360648084019491938390030190829087803b1515610d7f57fe5b60325a03f11515610d8c57fe5b50506040515115159050610d9f57610000565b600160a060020a0380831660009081526006602090815260408083203390941683529290522054610dd0908261162d565b600160a060020a038381166000818152600660209081526040808320339095168084529482529182902085905581519283528201929092528082018490526060810192909252517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a15b5050565b600060006002308d8d8d8d8d8d6000604051602001526040518088600160a060020a0316600160a060020a0316606060020a02815260140187600160a060020a0316600160a060020a0316606060020a02815260140186815260200185600160a060020a0316600160a060020a0316606060020a0281526014018481526020018381526020018281526020019750505050505050506020604051808303816000866161da5a03f11515610ef557fe5b50506040805151600160a060020a03881660009081526008602090815283822083835290529190912054925090505b509a9950505050505050505050565b600660209081526000928352604080842090915290825290205481565b60005433600160a060020a03908116911614610f6b57610000565b600354811115610f7a57610000565b60038190555b50565b60035481565b60005433600160a060020a03908116911614610fa457610000565b600554811080610fb5575060045481115b15610fbf57610000565b60058190555b50565b600154600160a060020a031681565b600160a060020a03808d16600090815260066020908152604080832093851683529290529081205483901080159061102057508261101d8e8e8e8e8e8e8e8e8e8e6113e6565b10155b151561102e57506000611032565b5060015b9c9b505050505050505050505050565b60005433600160a060020a0390811691161461105d57610000565b60018054600160a060020a031916600160a060020a0383161790555b50565b60055481565b60005433600160a060020a0390811691161461109d57610000565b6004548111806110ae575060055481105b156110b857610000565b60048190555b50565b60005433600160a060020a039081169116146110dc57610000565b60008054600160a060020a031916600160a060020a0383161790555b50565b600160a060020a038216151561111057610000565b600160a060020a03808316600090815260066020908152604080832033909416835292905220548190101561114457610000565b600160a060020a03808316600090815260066020908152604080832033909416835292905220546111759082611931565b600160a060020a03808416600081815260066020908152604080832033909516808452948252808320959095558451810182905284517fa9059cbb0000000000000000000000000000000000000000000000000000000081526004810194909452602484018690529351919363a9059cbb936044808201949293918390030190829087803b151561120257fe5b60325a03f1151561120f57fe5b5050604051511515905061122257610000565b600160a060020a03808316600081815260066020908152604080832033959095168084529482529182902054825193845290830193909352818101849052606082019290925290517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a15b5050565b600760209081526000928352604080842090915290825290205460ff1681565b60045481565b33600160a060020a0316600090815260008051602061198a83398151915260205260409020546112ef903461162d565b33600160a060020a0316600081815260008051602061198a8339815191526020908152604080832085905580519283529082019290925234818301526060810192909252517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a15b565b60005433600160a060020a0390811691161461137c57610000565b60028054600160a060020a031916600160a060020a0383161790555b50565b600254600160a060020a031681565b600160a060020a038083166000908152600660209081526040808320938516835292905220545b92915050565b600054600160a060020a031681565b60006000600060006002308f8f8f8f8f8f6000604051602001526040518088600160a060020a0316600160a060020a0316606060020a02815260140187600160a060020a0316600160a060020a0316606060020a02815260140186815260200185600160a060020a0316600160a060020a0316606060020a0281526014018481526020018381526020018281526020019750505050505050506020604051808303816000866161da5a03f1151561149957fe5b50506040805151600160a060020a038a166000908152600760209081528382208383529052919091205490935060ff168061157d5750604080517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c8101859052815190819003603c018120600082815260208381018552928401819052835191825260ff8b16828401528184018a9052606082018990529251600160a060020a038c16936001936080808501949193601f198101939281900390910191866161da5a03f1151561156957fe5b505060206040510351600160a060020a0316145b80156115895750894311155b1515611598576000935061161c565b600160a060020a03881660009081526008602090815260408083208684529091529020546115c7908e90611931565b600160a060020a03808e166000908152600660209081526040808320938d16835292905220549092508b906115fc908f61194a565b81151561160557fe5b049050808210156116185781935061161c565b8093505b5050509a9950505050505050505050565b600082820161164a8482108015906116455750838210155b611979565b8091505b5092915050565b6000600060006000670de0b6b3a76400006116728660035461194a565b81151561167b57fe5b049350670de0b6b3a76400006116938660045461194a565b81151561169c57fe5b600254919004935060009250600160a060020a03161561177257600254604080516000602091820181905282517f1cbd0519000000000000000000000000000000000000000000000000000000008152600160a060020a038b8116600483015293519390941693631cbd0519936024808301949391928390030190829087803b151561172457fe5b60325a03f1151561173157fe5b505060405151915050600181141561176557670de0b6b3a76400006117588660055461194a565b81151561176157fe5b0491505b8060021415611772578291505b5b600160a060020a03808b16600090815260066020908152604080832033909416835292905220546117ad906117a8878661162d565b611931565b600160a060020a038b81166000908152600660209081526040808320338516845290915280822093909355908816815220546117fb906117f66117f0888661162d565b87611931565b61162d565b600160a060020a038b811660009081526006602090815260408083208b85168452909152808220939093556001549091168152205461184c906117f6611841878761162d565b85611931565b61162d565b600160a060020a03808c166000908152600660208181526040808420600154861685528252808420959095558c84168352908152838220928a1682529190915220546118ac908a61189d8a8961194a565b8115156118a657fe5b04611931565b600160a060020a0389811660009081526006602090815260408083208b851684529091528082209390935533909116815220546118fd908a6118ee8a8961194a565b8115156118f757fe5b0461162d565b600160a060020a03808a16600090815260066020908152604080832033909416835292905220555b50505050505050505050565b600061193f83831115611979565b508082035b92915050565b600082820261164a841580611645575083858381151561196657fe5b04145b611979565b8091505b5092915050565b801515610cef57610000565b5b50560054cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8a165627a7a723058201f5c6afd64915184f48f2f470649fb4e2cba0d79c31de45410dc1c0b6fc0a62f0029


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

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000001ed014aec47fae44c9e55bac7662c0b78ae61798
Arg [1] : 0000000000000000000000001ed014aec47fae44c9e55bac7662c0b78ae61798
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 000000000000000000000000000000000000000000000000000aa87bee538000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000


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