Contract 0x228344536a03C0910Fb8Be9C2755c1a0bA6f89E1 3

Contract Overview

Balance:
574.716347883067912383 Ether

Token:
Txn Hash
Method
Block
From
To
Value
0x3d097686f73a1a67b24ee2371f126b11636262d62e248ccfff454dc8dccfbf9cWithdraw95407972021-01-26 12:53:48570 days 9 hrs ago0x93a56f93fd721ef97a6254752a7e09d5ea8365b1 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether0.000156674
0x56f7b8b7e09f9192502628633ac870fe66ce563e49f6edfe72f2833fa2b41962Deposit95407192021-01-26 12:38:58570 days 9 hrs ago0x93a56f93fd721ef97a6254752a7e09d5ea8365b1 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10.1 Ether0.000119544
0x53ca463125ed4afb041a299f5e65aa0714cbc7f7077804ef85e4fad9899587e9Withdraw Token95406692021-01-26 12:25:33570 days 10 hrs ago0x93a56f93fd721ef97a6254752a7e09d5ea8365b1 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether0.000195564
0x45c29d370f5425a74691602afd4c74745a54e33f1de9d6eb7bf9e8867a995294Deposit Token95405912021-01-26 12:05:08570 days 10 hrs ago0x93a56f93fd721ef97a6254752a7e09d5ea8365b1 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether0.000211164
0x95b5f4a26fcd685b985e798799f1a817ba80465023a4d09740d5b1a07009ca51Withdraw Token85951312020-08-31 18:46:19718 days 3 hrs ago0x93a56f93fd721ef97a6254752a7e09d5ea8365b1 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether0.000128333.54331526
0x3964877b643ee10746ab5252bdbb9c996f4a05af5b5fbe72d4fb6fb8a763196cWithdraw Token85951312020-08-31 18:46:19718 days 3 hrs ago0x93a56f93fd721ef97a6254752a7e09d5ea8365b1 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether0.000022730.62775415
0x1acc2da847fa5b206422e1c43ebdc86466e0e580cb178fb4af48114cbb9d0f9dWithdraw Token85945952020-08-31 17:26:55718 days 5 hrs ago0x93a56f93fd721ef97a6254752a7e09d5ea8365b1 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether0.0009357925.83796422
0x8014c19cbf2b1da656fe1ecad30fe454437aefa5549001d5073fdc5118f8c781Withdraw Token85730512020-08-28 19:10:42721 days 3 hrs ago0x93a56f93fd721ef97a6254752a7e09d5ea8365b1 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether0.000007240.2
0x7928fb78f4a177c100882d04c1e0f0698a930771306fe1681a764e6dae7cb2c7Withdraw Token85729862020-08-28 18:51:38721 days 3 hrs ago0x93a56f93fd721ef97a6254752a7e09d5ea8365b1 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether0.000072432
0x447498bac0e41645734e7fe6c1f6ad2bb0d230bfc6dd22113b35ae896d6ec964Withdraw Token85729862020-08-28 18:51:38721 days 3 hrs ago0x93a56f93fd721ef97a6254752a7e09d5ea8365b1 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether0.000097782
0x2232dc9fdb5bd33b200909eacc39d2af60cded2dd92323d7fb497ec123ffa6c5Deposit Token85729632020-08-28 18:44:56721 days 3 hrs ago0x93a56f93fd721ef97a6254752a7e09d5ea8365b1 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether0.000052791
0xf90d216420eb9a5d104d8f9390f188e9d976276f1e1ec2d140c10d104fbb35c1Deposit84335582020-08-04 19:43:34745 days 2 hrs ago0x93a56f93fd721ef97a6254752a7e09d5ea8365b1 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10.001 Ether0.000014940.5
0x257f0ac7109023b64f4e1a29d9645c1c0e7e28c7875f04101058b1997397c2cfDeposit84330452020-08-04 17:47:22745 days 4 hrs ago0x93a56f93fd721ef97a6254752a7e09d5ea8365b1 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10.001 Ether0.000001080.03630066
0xf3fd9c921a7915f74e89a345a39fd71b4bf60e98daa6aeb529b17dbee3652478Deposit84330342020-08-04 17:44:35745 days 4 hrs ago0x93a56f93fd721ef97a6254752a7e09d5ea8365b1 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10.001 Ether0.000008960.3
0xa5b00d193e47ad8a2753cf05175faea1287a2a1c81e578a71f02f900d1d5b39cDeposit84330232020-08-04 17:42:00745 days 4 hrs ago0x93a56f93fd721ef97a6254752a7e09d5ea8365b1 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10.01 Ether0.000065742.2
0x1b14f6817b7a1d441257122a30ccf3f8d102cc57f21b616fc9a0e70dabdb3900Withdraw Token80294152020-06-04 12:46:14806 days 9 hrs ago0x1faf2960dd22ac0b9f00ffb1b0033b284f53b623 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether0.0013873128
0x635f8efc5a6c045d71837bf66c32565b783dbc0b985961c5cc2f68bcb862a30bDeposit Token80293912020-06-04 12:39:33806 days 9 hrs ago0x1faf2960dd22ac0b9f00ffb1b0033b284f53b623 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether0.0020095529
0x5ff9c26d581e8c3f6c883a9857d55d8b898bbbac458fd3b50ce2cfabf6b2cd90Withdraw Token80293692020-06-04 12:34:49806 days 9 hrs ago0x1faf2960dd22ac0b9f00ffb1b0033b284f53b623 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether00
0x7cdff0857f6a758004364dc2e34b813dccbe8b7b85857b64d468f4f44153dccdWithdraw Token80293612020-06-04 12:33:26806 days 10 hrs ago0x1faf2960dd22ac0b9f00ffb1b0033b284f53b623 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether00
0x22e0fe1a8f2d96bd9e046344eae927db1b2b6931c96f991d83870f5cef1fabb4Withdraw80293442020-06-04 12:27:58806 days 10 hrs ago0x1faf2960dd22ac0b9f00ffb1b0033b284f53b623 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether00
0xe1f14e3715cb07b4d7d5edf0e8b602c1d326eedaa2b402a33b115ba1d36aab11Withdraw Token80098752020-06-01 9:22:00809 days 13 hrs ago0x1faf2960dd22ac0b9f00ffb1b0033b284f53b623 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether0.000080931.65
0xe615447f8a9c84c4e81cbde3711d99110cbb2065cbc9dc604598751ff6e6be6dWithdraw80098692020-06-01 9:20:40809 days 13 hrs ago0x1faf2960dd22ac0b9f00ffb1b0033b284f53b623 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether0.000064561.65
0xe0aff5c81de97b4d3d73e1328dd2baf49b5dafd20ef098650ed781f8671713cdDeposit Token80098202020-06-01 9:10:27809 days 13 hrs ago0x1faf2960dd22ac0b9f00ffb1b0033b284f53b623 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether0.000140221.65
0x2354486f25df76829142c0989ad06a3905fedfe8694a679287fc8cfdaebb396eDeposit Token80098112020-06-01 9:07:48809 days 13 hrs ago0x1faf2960dd22ac0b9f00ffb1b0033b284f53b623 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether0.012540041.65
0x54b65c46695d58c2eda138b05673b3ca36f85a55a102d865b634fa29de5b444bDeposit Token80097802020-06-01 9:01:10809 days 13 hrs ago0xebb9125777ab9d4ed16139bf06823cc21e3f6cc1 IN  0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether0.012540041.65
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x3d097686f73a1a67b24ee2371f126b11636262d62e248ccfff454dc8dccfbf9c95407972021-01-26 12:53:48570 days 9 hrs ago 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10x93a56f93fd721ef97a6254752a7e09d5ea8365b10.02 Ether
0x53ca463125ed4afb041a299f5e65aa0714cbc7f7077804ef85e4fad9899587e995406692021-01-26 12:25:33570 days 10 hrs ago 0x228344536a03c0910fb8be9c2755c1a0ba6f89e1 0x70d0cfb78fb526e75a5d338d31715957e74a45390 Ether
0x45c29d370f5425a74691602afd4c74745a54e33f1de9d6eb7bf9e8867a99529495405912021-01-26 12:05:08570 days 10 hrs ago 0x228344536a03c0910fb8be9c2755c1a0ba6f89e1 0x70d0cfb78fb526e75a5d338d31715957e74a45390 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
0x2adc7d44ff4d0fc5e5ab0c7a61209b8c830e2ecc1e0b242b362bc2337146531c93260722020-12-24 15:01:33603 days 7 hrs ago 0xdbd237106a602fcc0a0e83d20908a9d1a8e67955 0x228344536a03c0910fb8be9c2755c1a0ba6f89e10 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EtherDelta

Compiler Version
v0.4.9+commit.364da425

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-02-12
*/

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"}]

6060604052341561000c57fe5b60405160c080611a7983398101604090815281516020830151918301516060840151608085015160a090950151929491929091905b60008054600160a060020a03808916600160a060020a0319928316179092556001805488841690831617905560028054928716929091169190911790556003839055600482905560058190555b5050505050505b6119d5806100a46000396000f300606060405236156101385763ffffffff60e060020a6000350416630a19b14a811461014d5780630b9276661461019957806319774d43146101ca578063278b8c0e146101fb5780632e1a7d4d14610239578063338b5dea1461024e57806346be96c31461026f578063508493bc146102c757806354d03b5c146102fb57806357786394146103105780635e1d7ae41461033257806365e17c9d146103475780636c86888b1461037357806371ffcb16146103dc578063731c2f81146103fa5780638823a9c01461041c5780638f283970146104315780639e281a981461044f578063bb5f462914610470578063c281309e146104a3578063d0e30db0146104c5578063e8f6bc2e146104cf578063f3412942146104ed578063f7888aec14610519578063f851a4401461054d578063fb6e155f14610579575b341561014057fe5b61014b5b610000565b565b005b341561015557fe5b61014b600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e435166101043561012435610144356105d1565b005b34156101a157fe5b61014b600160a060020a03600435811690602435906044351660643560843560a435610896565b005b34156101d257fe5b6101e9600160a060020a03600435166024356109a7565b60408051918252519081900360200190f35b341561020357fe5b61014b600160a060020a03600435811690602435906044351660643560843560a43560ff60c4351660e435610104356109c4565b005b341561024157fe5b61014b600435610bd4565b005b341561025657fe5b61014b600160a060020a0360043516602435610cf2565b005b341561027757fe5b6101e9600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e435166101043561012435610e46565b60408051918252519081900360200190f35b34156102cf57fe5b6101e9600160a060020a0360043581169060243516610f33565b60408051918252519081900360200190f35b341561030357fe5b61014b600435610f50565b005b341561031857fe5b6101e9610f83565b60408051918252519081900360200190f35b341561033a57fe5b61014b600435610f89565b005b341561034f57fe5b610357610fc8565b60408051600160a060020a039092168252519081900360200190f35b341561037b57fe5b6103c8600160a060020a0360043581169060243590604435811690606435906084359060a4359060c43581169060ff60e43516906101043590610124359061014435906101643516610fd7565b604080519115158252519081900360200190f35b34156103e457fe5b61014b600160a060020a0360043516611042565b005b341561040257fe5b6101e961107c565b60408051918252519081900360200190f35b341561042457fe5b61014b600435611082565b005b341561043957fe5b61014b600160a060020a03600435166110c1565b005b341561045757fe5b61014b600160a060020a03600435166024356110fb565b005b341561047857fe5b6103c8600160a060020a0360043516602435611299565b604080519115158252519081900360200190f35b34156104ab57fe5b6101e96112b9565b60408051918252519081900360200190f35b61014b6112bf565b005b34156104d757fe5b61014b600160a060020a0360043516611361565b005b34156104f557fe5b61035761139b565b60408051600160a060020a039092168252519081900360200190f35b341561052157fe5b6101e9600160a060020a03600435811690602435166113aa565b60408051918252519081900360200190f35b341561055557fe5b6103576113d7565b60408051600160a060020a039092168252519081900360200190f35b341561058157fe5b6101e9600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e4351661010435610124356113e6565b60408051918252519081900360200190f35b60006002308d8d8d8d8d8d6000604051602001526040518088600160a060020a0316600160a060020a0316606060020a02815260140187600160a060020a0316600160a060020a0316606060020a02815260140186815260200185600160a060020a0316600160a060020a0316606060020a0281526014018481526020018381526020018281526020019750505050505050506020604051808303816000866161da5a03f1151561067e57fe5b50506040805151600160a060020a0388166000908152600760209081528382208383529052919091205490915060ff16806107625750604080517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c8101839052815190819003603c018120600082815260208381018552928401819052835191825260ff891682840152818401889052606082018790529251600160a060020a038a16936001936080808501949193601f198101939281900390910191866161da5a03f1151561074e57fe5b505060206040510351600160a060020a0316145b801561076e5750874311155b80156107a85750600160a060020a03861660009081526008602090815260408083208484529091529020548b906107a5908461162d565b11155b15156107b357610000565b6107c18c8c8c8c8a87611655565b600160a060020a03861660009081526008602090815260408083208484529091529020546107ef908361162d565b600160a060020a03871660009081526008602090815260408083208584529091529020557f6effdda786735d5033bfad5f53e5131abcced9e52be6c507b62d639685fbed6d8c838c8e8d830281151561084457fe5b60408051600160a060020a039687168152602081019590955292851684840152046060830152828a166080830152339290921660a082015290519081900360c00190a15b505050505050505050505050565b60408051600060209182018190528251606060020a600160a060020a0330811682028352808c1682026014840152602883018b90528916026048820152605c8101879052607c8101869052609c81018590529251909260029260bc808301939192829003018186866161da5a03f1151561090c57fe5b5050604080518051600160a060020a03338116600081815260076020908152868220858352815290869020805460ff191660011790558c8316855284018b905290891683850152606083018890526080830187905260a0830186905260c083015291519192507f3f7f2eda73683c21a15f9435af1028c93185b5f1fa38270762dc32be606b3e85919081900360e00190a15b50505050505050565b600860209081526000928352604080842090915290825290205481565b60408051600060209182018190528251606060020a600160a060020a0330811682028352808f1682026014840152602883018e90528c16026048820152605c81018a9052607c8101899052609c81018890529251909260029260bc808301939192829003018186866161da5a03f11515610a3a57fe5b50506040805151600160a060020a0333166000908152600760209081528382208383529052919091205490915060ff1680610b1e5750604080517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c8101839052815190819003603c018120600082815260208381018552928401819052835191825260ff881682840152818401879052606082018690529251600160a060020a033316936001936080808501949193601f198101939281900390910191866161da5a03f11515610b0a57fe5b505060206040510351600160a060020a0316145b1515610b2957610000565b600160a060020a0333811660008181526008602090815260408083208684528252918290208d905581518e851681529081018d9052928b1683820152606083018a90526080830189905260a0830188905260c083019190915260ff861660e083015261010082018590526101208201849052517f1e0b760c386003e9cb9bcf4fcf3997886042859d9b6ed6320e804597fcdb28b0918190036101400190a15b50505050505050505050565b33600160a060020a0316600090815260008051602061198a833981519152602052604090205481901015610c0757610000565b33600160a060020a0316600090815260008051602061198a8339815191526020526040902054610c379082611931565b33600160a060020a0316600081815260008051602061198a8339815191526020526040808220939093559151909183919081818185876185025a03f1925050501515610c8257610000565b600160a060020a033316600081815260008051602061198a8339815191526020908152604080832054815193845291830193909352818301849052606082015290517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a15b50565b600160a060020a0382161515610d0757610000565b604080516000602091820181905282517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a0333811660048301523081166024830152604482018690529351938616936323b872dd9360648084019491938390030190829087803b1515610d7f57fe5b60325a03f11515610d8c57fe5b50506040515115159050610d9f57610000565b600160a060020a0380831660009081526006602090815260408083203390941683529290522054610dd0908261162d565b600160a060020a038381166000818152600660209081526040808320339095168084529482529182902085905581519283528201929092528082018490526060810192909252517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a15b5050565b600060006002308d8d8d8d8d8d6000604051602001526040518088600160a060020a0316600160a060020a0316606060020a02815260140187600160a060020a0316600160a060020a0316606060020a02815260140186815260200185600160a060020a0316600160a060020a0316606060020a0281526014018481526020018381526020018281526020019750505050505050506020604051808303816000866161da5a03f11515610ef557fe5b50506040805151600160a060020a03881660009081526008602090815283822083835290529190912054925090505b509a9950505050505050505050565b600660209081526000928352604080842090915290825290205481565b60005433600160a060020a03908116911614610f6b57610000565b600354811115610f7a57610000565b60038190555b50565b60035481565b60005433600160a060020a03908116911614610fa457610000565b600554811080610fb5575060045481115b15610fbf57610000565b60058190555b50565b600154600160a060020a031681565b600160a060020a03808d16600090815260066020908152604080832093851683529290529081205483901080159061102057508261101d8e8e8e8e8e8e8e8e8e8e6113e6565b10155b151561102e57506000611032565b5060015b9c9b505050505050505050505050565b60005433600160a060020a0390811691161461105d57610000565b60018054600160a060020a031916600160a060020a0383161790555b50565b60055481565b60005433600160a060020a0390811691161461109d57610000565b6004548111806110ae575060055481105b156110b857610000565b60048190555b50565b60005433600160a060020a039081169116146110dc57610000565b60008054600160a060020a031916600160a060020a0383161790555b50565b600160a060020a038216151561111057610000565b600160a060020a03808316600090815260066020908152604080832033909416835292905220548190101561114457610000565b600160a060020a03808316600090815260066020908152604080832033909416835292905220546111759082611931565b600160a060020a03808416600081815260066020908152604080832033909516808452948252808320959095558451810182905284517fa9059cbb0000000000000000000000000000000000000000000000000000000081526004810194909452602484018690529351919363a9059cbb936044808201949293918390030190829087803b151561120257fe5b60325a03f1151561120f57fe5b5050604051511515905061122257610000565b600160a060020a03808316600081815260066020908152604080832033959095168084529482529182902054825193845290830193909352818101849052606082019290925290517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a15b5050565b600760209081526000928352604080842090915290825290205460ff1681565b60045481565b33600160a060020a0316600090815260008051602061198a83398151915260205260409020546112ef903461162d565b33600160a060020a0316600081815260008051602061198a8339815191526020908152604080832085905580519283529082019290925234818301526060810192909252517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a15b565b60005433600160a060020a0390811691161461137c57610000565b60028054600160a060020a031916600160a060020a0383161790555b50565b600254600160a060020a031681565b600160a060020a038083166000908152600660209081526040808320938516835292905220545b92915050565b600054600160a060020a031681565b60006000600060006002308f8f8f8f8f8f6000604051602001526040518088600160a060020a0316600160a060020a0316606060020a02815260140187600160a060020a0316600160a060020a0316606060020a02815260140186815260200185600160a060020a0316600160a060020a0316606060020a0281526014018481526020018381526020018281526020019750505050505050506020604051808303816000866161da5a03f1151561149957fe5b50506040805151600160a060020a038a166000908152600760209081528382208383529052919091205490935060ff168061157d5750604080517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c8101859052815190819003603c018120600082815260208381018552928401819052835191825260ff8b16828401528184018a9052606082018990529251600160a060020a038c16936001936080808501949193601f198101939281900390910191866161da5a03f1151561156957fe5b505060206040510351600160a060020a0316145b80156115895750894311155b1515611598576000935061161c565b600160a060020a03881660009081526008602090815260408083208684529091529020546115c7908e90611931565b600160a060020a03808e166000908152600660209081526040808320938d16835292905220549092508b906115fc908f61194a565b81151561160557fe5b049050808210156116185781935061161c565b8093505b5050509a9950505050505050505050565b600082820161164a8482108015906116455750838210155b611979565b8091505b5092915050565b6000600060006000670de0b6b3a76400006116728660035461194a565b81151561167b57fe5b049350670de0b6b3a76400006116938660045461194a565b81151561169c57fe5b600254919004935060009250600160a060020a03161561177257600254604080516000602091820181905282517f1cbd0519000000000000000000000000000000000000000000000000000000008152600160a060020a038b8116600483015293519390941693631cbd0519936024808301949391928390030190829087803b151561172457fe5b60325a03f1151561173157fe5b505060405151915050600181141561176557670de0b6b3a76400006117588660055461194a565b81151561176157fe5b0491505b8060021415611772578291505b5b600160a060020a03808b16600090815260066020908152604080832033909416835292905220546117ad906117a8878661162d565b611931565b600160a060020a038b81166000908152600660209081526040808320338516845290915280822093909355908816815220546117fb906117f66117f0888661162d565b87611931565b61162d565b600160a060020a038b811660009081526006602090815260408083208b85168452909152808220939093556001549091168152205461184c906117f6611841878761162d565b85611931565b61162d565b600160a060020a03808c166000908152600660208181526040808420600154861685528252808420959095558c84168352908152838220928a1682529190915220546118ac908a61189d8a8961194a565b8115156118a657fe5b04611931565b600160a060020a0389811660009081526006602090815260408083208b851684529091528082209390935533909116815220546118fd908a6118ee8a8961194a565b8115156118f757fe5b0461162d565b600160a060020a03808a16600090815260066020908152604080832033909416835292905220555b50505050505050505050565b600061193f83831115611979565b508082035b92915050565b600082820261164a841580611645575083858381151561196657fe5b04145b611979565b8091505b5092915050565b801515610cef57610000565b5b50560054cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8a165627a7a72305820468be9e52c7f41ff50afc583b7c02aff6937a69ed155212dd15604aa874fef0a002900000000000000000000000018e79a47d8a58bef5aaecbba85ea1420649c64a800000000000000000000000018e79a47d8a58bef5aaecbba85ea1420649c64a800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000aa87bee5380000000000000000000000000000000000000000000000000000000000000000000

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

00000000000000000000000018e79a47d8a58bef5aaecbba85ea1420649c64a800000000000000000000000018e79a47d8a58bef5aaecbba85ea1420649c64a800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000aa87bee5380000000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : admin_ (address): 0x18e79a47d8a58bef5aaecbba85ea1420649c64a8
Arg [1] : feeAccount_ (address): 0x18e79a47d8a58bef5aaecbba85ea1420649c64a8
Arg [2] : accountLevelsAddr_ (address): 0x0000000000000000000000000000000000000000
Arg [3] : feeMake_ (uint256): 0
Arg [4] : feeTake_ (uint256): 3000000000000000
Arg [5] : feeRebate_ (uint256): 0

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


Swarm Source

bzzr://468be9e52c7f41ff50afc583b7c02aff6937a69ed155212dd15604aa874fef0a
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading

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.