Contract 0xba74368aa52ad58d08309f1f549aa63bab0c7e2a

 

TxHash Block Age From To Value [TxFee]
0xa0cdcb7bc26684f0966d13ab011b432f08f50c98237ed3893ced5796787f6b3173860921 day 9 hrs ago0x8472a74e5eb2816fa409967500735aba61a4060f IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.000178062
0x67e8d0513b41e21a46a70cdf1a1baa4825356afa77b78f283fa801e914ec159273860901 day 9 hrs ago0x8472a74e5eb2816fa409967500735aba61a4060f IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.000177486
0xdc7039cb6f3f322fad58f833eae591882dbed6b2d90fb5e4e05c10ac10c9f958724096427 days 4 hrs ago0xa4fcc0f32af89e77443a2596446938621c5b0a70 IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.003
0xe3172eaeaec9f4f5d5123d7ef7cd6f6494e31e93b89997c665543857a4d6ae5c724096227 days 4 hrs ago0xa4fcc0f32af89e77443a2596446938621c5b0a70 IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.0004548
0x4f897574729f66ebf5f7b00f391f84d4892ff692cfb385133da666a09e960290724080927 days 5 hrs ago0x4f27bc3be1be4703c848ba33c4fce746ef91bcfb IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.00053439
0x4e50dcb57751cdab1d1c825655744e2b6b62ef4571edcf006250aa909055e077724044227 days 7 hrs ago0x08d1a7b85ef5c8b01b59661f983845dc02f634f1 IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.00037964
0x494eafadf4208178f11008b5bc10deee98c98dd227cb8d41d46b6fecdaddad10724041527 days 7 hrs ago0x130771a646b647888939b2561cb3f05431279e0c IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.00047987
0x51ed98bb624b0c0b05f6cf78eb80b4569c6d605aa1817f0258d672ebac848973724040227 days 7 hrs ago0x130771a646b647888939b2561cb3f05431279e0c IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.00059162
0xca2479474e8c6483aac4f0562562ae8ef1dabfd3c5b6825a2a78e1c5b5f1e422723914927 days 14 hrs ago0xc941b4bd79886898f93d679facf56d5fe2a43a61 IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.0004803
0x63e5c1beff9c130acef6cb10dddeaee2d4969007b8f49ed351ba8181390e58a3723914927 days 14 hrs ago0xc941b4bd79886898f93d679facf56d5fe2a43a61 IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.00022836
0x558d28634e7da0359ce8b9f74bffdb37f5a298b8624bd0d2d19a560dfa4d1d8f723914327 days 14 hrs ago0xc941b4bd79886898f93d679facf56d5fe2a43a61 IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.00059354
0xe24af311fb4c75793aba84eae61d2d3bcbeaffb18a8c1f68613263f86d15fdac718254240 days 11 hrs ago0x61999f50359334de8c9035f59df77b1918dbfd34 IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.00047966
0x66b90b3d918249d02fcb952da6fe19424d9080cfd82ed273203421589b186e5c718253140 days 11 hrs ago0x61999f50359334de8c9035f59df77b1918dbfd34 IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.00037871
0xcf0c52b0ca747ed37ea7092e862fd680bd7ef0830898569b93385ce0f79189a0711538854 days 49 mins ago0xceaae777f1a6f9d4bdb73947ca34831dccf31002 IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.00022113
0x262d8631db9658bedd9541e2b5794a215ad34eae69ba781a5c151bef1d1366c2711538854 days 49 mins ago0xceaae777f1a6f9d4bdb73947ca34831dccf31002 IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.00029645
0x3e0835ce8ae240b9e0b46266b9d37de873cbb292b7ead3f70b6ea42d8634aecd711538854 days 49 mins ago0xceaae777f1a6f9d4bdb73947ca34831dccf31002 IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.00029645
0x3affe513ea274e1ef72dfde61dcf0a7d78f5ab19fc9995b570f3204e1718cbe3711538854 days 49 mins ago0xceaae777f1a6f9d4bdb73947ca34831dccf31002 IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.00029645
0x3f69ead82c8ea463cbf9a57b1e0c629359dc661df43c02d74719bd251620ea03711538854 days 49 mins ago0xceaae777f1a6f9d4bdb73947ca34831dccf31002 IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.00022113
0xfdfd558c7d985f5182cce6aa3d88b90aadc9c880b739f804c144da541a10f5f0711538854 days 49 mins ago0xceaae777f1a6f9d4bdb73947ca34831dccf31002 IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.00022177
0x47a849a5eb24e9352f6a785538dd1c992ff8e57db2203c978a07abc90e93b1c7711538554 days 50 mins ago0xceaae777f1a6f9d4bdb73947ca34831dccf31002 IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.00029613
0x59ca4733b0af1e545614620d69222839c1f30e950f44953897729837178e6cfa711537354 days 53 mins ago0xceaae777f1a6f9d4bdb73947ca34831dccf31002 IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.00022145
0xbd57b9ab5f73d0a05aa2ec21ab842926a8b337225d6e28d068d28abab41d1a6d711537054 days 54 mins ago0xceaae777f1a6f9d4bdb73947ca34831dccf31002 IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.00022145
0xee75f9372e5132beee5c53527f013d1781673dc4fb3c8855b5de6c851bb4af92711537054 days 54 mins ago0xceaae777f1a6f9d4bdb73947ca34831dccf31002 IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.00022145
0x20c6ca2c289aa5364529656cc9c97c561172baaf2a643566bc9d5ecda022cc2a711537054 days 54 mins ago0xceaae777f1a6f9d4bdb73947ca34831dccf31002 IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.00022145
0x41973d157aaa2c4968660149dae8cc4afd3823c7be0f58a0d0d6a508060807de710420456 days 5 hrs ago0xb9046feddeb3d22dc8eb891ac9e33ed81c86f5f9 IN  0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0 Ether0.000753705
[ Download CSV Export 

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

Parent TxHash Block Age From To Value
0xe3172eaeaec9f4f5d5123d7ef7cd6f6494e31e93b89997c665543857a4d6ae5c724096227 days 4 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0xa4fcc0f32af89e77443a2596446938621c5b0a700.16 Ether
0x4f897574729f66ebf5f7b00f391f84d4892ff692cfb385133da666a09e960290724080927 days 5 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0x4f27bc3be1be4703c848ba33c4fce746ef91bcfb4.802 Ether
0x4e50dcb57751cdab1d1c825655744e2b6b62ef4571edcf006250aa909055e077724044227 days 7 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0x08d1a7b85ef5c8b01b59661f983845dc02f634f13.139 Ether
0x63e5c1beff9c130acef6cb10dddeaee2d4969007b8f49ed351ba8181390e58a3723914927 days 14 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0xc941b4bd79886898f93d679facf56d5fe2a43a610.03 Ether
0x4cd106ee0cb16e15730c989119313c10bebe832345f623c2211ae062e0c6caf8703247569 days 2 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0x1009516ef6aadf4f7fa595cb8c6ec5c67e75925b0.0004 Ether
0xac629792f38855d6c15c17a8c428e6dbd6926bddf5c945db257ce160b1c72d416845277100 days 21 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0xa942e6909afca03398f9a91c8cd5e42bda9903df0.024 Ether
0x4fa1f40900837d4e8374606543e0313d93400da811b2a2575998b83e316ae2476605456140 days 7 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0x4f27bc3be1be4703c848ba33c4fce746ef91bcfb0.27 Ether
0x4fe3a8336983b6bf6c3c37460251d3039fb81b279425dace6773c458040f56c46591039142 days 16 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0x48850f503412d8a6e3d63541f0e225f04b13a5440.002 Ether
0x488d92a980a52134bff93ffaf48a6f2715a9ad14b2d01c0822449b16b66cf82b6573511145 days 12 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0x9ff7356be910f15d37d1e2b4b8357665fac3ccac0.3 Ether
0x7e0ad3061d6842db78f33ca982e33f9b9112f2626b95895827ab959eca67e9ad6572758145 days 16 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0x08d1a7b85ef5c8b01b59661f983845dc02f634f10.12 Ether
0x46017f448b8d631d0e829d8e4ab238ca711ab18eaa57689cda540876ed24dece6572685145 days 16 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0xbfde0299a76e9437df7242d090c73ba709834ba50.2 Ether
0x2effa899fca4369f294dea7254bf0512d014ffbe835a4afcb60562e07dadf3cd6563129147 days 5 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0x3ba17bb92522b0f2d1ea7dbf413745efafe9632e0.285656520580477845 Ether
0x9116845577f91d7529cbaf22c699370db601892eb366e1b8b2d8b3e3a26a1b6e6549584149 days 10 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0xcbb851adb85eab38720f2d04b68da7277056cdfc0.000735 Ether
0x218670f639919a27ec8d3527b3c086847132e6b553cd7d7677c1b0377ba71bff6549579149 days 10 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0xcbb851adb85eab38720f2d04b68da7277056cdfc0.024 Ether
0x983d56e6f5bbf6daa89cadf27444b53671b3e6c7100ad4fd33edd0a5235222cb6548578149 days 14 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0x3ba17bb92522b0f2d1ea7dbf413745efafe9632e0.2 Ether
0x253a4524fd3b522c730518649577325ac82f08416957d15c41f098222f7bbb9c6538998151 days 4 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0x8472a74e5eb2816fa409967500735aba61a4060f0.012279932596467834 Ether
0x7f55ffbbbb73cc9fec163a259a900aad32df09ba78e7b1fcad2cc86a7e5854946522758153 days 20 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0x9dd55bb2b6869f14e6c8fd40463ff0b8f8fa5a190.081754734980322574 Ether
0xd62758955413fc3d0d6a25ed7618710cc20aa95591dd8ed124d01f20bb8de3366520890154 days 3 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0xceaae777f1a6f9d4bdb73947ca34831dccf310020.001 Ether
0x3c83cd934953c23f613f34b0d4cd734a045c028476e07a731672d95507d8bdb26520867154 days 3 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0xceaae777f1a6f9d4bdb73947ca34831dccf310020.5 Ether
0x902772319559eea52a5836798342f64d801d0e97fe5b61b4a3f400b0143a3ceb6516109154 days 22 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0x00a7a67e76b84465811002df84f0520d76d4cc5f12.811593605670011097 Ether
0x1c7fc305a1f56b621436f63418d095a3e40c9ad29777a9dcbdb1591653e467366516106154 days 22 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0x00a7a67e76b84465811002df84f0520d76d4cc5f30 Ether
0x3ca72b82f8c1eec6420a8ed8ec27ffae3f2dfd0f29e8296ebbfe780eaa52e3516513487155 days 8 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0xbdac150625849dd9309ce5878869c9de154d43ed0.119689744714324483 Ether
0xad1ba080c63a9057a2315892d6afc03b3540d32dfc6c59b98c5d83164473f2406512335155 days 12 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0x73d923358c8def832e4f7d5bc9fddb1ed5920b6a0.224 Ether
0xc64cf7528fad6630028f3ce9306dc12869738b3a9779d1a88fbbc560ef798ed86506008156 days 13 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0x8e7fbd53b087a9b9e416ed1e402865247d4099a21.363753763333665636 Ether
0x114e49985f88034b0f1e8724bc2048b16f38e69addd2439c228020933525c8246505988156 days 13 hrs ago0xba74368aa52ad58d08309f1f549aa63bab0c7e2a0x8e7fbd53b087a9b9e416ed1e402865247d4099a20.006 Ether
[ Download CSV Export 
Contract Name: AZExchange
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 AZExchange 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 AZExchange(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;
    feeMake = feeMake_;
  }

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

  function changeFeeRebate(uint feeRebate_) {
    if (msg.sender != admin) throw;
    if (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
6060604052341561000c57fe5b60405160c080611a5283398101604090815281516020830151918301516060840151608085015160a090950151929491929091905b60008054600160a060020a03808916600160a060020a0319928316179092556001805488841690831617905560028054928716929091169190911790556003839055600482905560058190555b5050505050505b6119ae806100a46000396000f300606060405236156101385763ffffffff60e060020a6000350416630a19b14a811461014d5780630b9276661461019957806319774d43146101ca578063278b8c0e146101fb5780632e1a7d4d14610239578063338b5dea1461024e57806346be96c31461026f578063508493bc146102c757806354d03b5c146102fb57806357786394146103105780635e1d7ae41461033257806365e17c9d146103475780636c86888b1461037357806371ffcb16146103dc578063731c2f81146103fa5780638823a9c01461041c5780638f283970146104315780639e281a981461044f578063bb5f462914610470578063c281309e146104a3578063d0e30db0146104c5578063e8f6bc2e146104cf578063f3412942146104ed578063f7888aec14610519578063f851a4401461054d578063fb6e155f14610579575b341561014057fe5b61014b5b610000565b565b005b341561015557fe5b61014b600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e435166101043561012435610144356105d1565b005b34156101a157fe5b61014b600160a060020a03600435811690602435906044351660643560843560a435610896565b005b34156101d257fe5b6101e9600160a060020a03600435166024356109a7565b60408051918252519081900360200190f35b341561020357fe5b61014b600160a060020a03600435811690602435906044351660643560843560a43560ff60c4351660e435610104356109c4565b005b341561024157fe5b61014b600435610bd4565b005b341561025657fe5b61014b600160a060020a0360043516602435610cf2565b005b341561027757fe5b6101e9600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e435166101043561012435610e46565b60408051918252519081900360200190f35b34156102cf57fe5b6101e9600160a060020a0360043581169060243516610f33565b60408051918252519081900360200190f35b341561030357fe5b61014b600435610f50565b005b341561031857fe5b6101e9610f74565b60408051918252519081900360200190f35b341561033a57fe5b61014b600435610f7a565b005b341561034f57fe5b610357610fad565b60408051600160a060020a039092168252519081900360200190f35b341561037b57fe5b6103c8600160a060020a0360043581169060243590604435811690606435906084359060a4359060c43581169060ff60e43516906101043590610124359061014435906101643516610fbc565b604080519115158252519081900360200190f35b34156103e457fe5b61014b600160a060020a0360043516611027565b005b341561040257fe5b6101e9611061565b60408051918252519081900360200190f35b341561042457fe5b61014b600435611067565b005b341561043957fe5b61014b600160a060020a036004351661109a565b005b341561045757fe5b61014b600160a060020a03600435166024356110d4565b005b341561047857fe5b6103c8600160a060020a0360043516602435611272565b604080519115158252519081900360200190f35b34156104ab57fe5b6101e9611292565b60408051918252519081900360200190f35b61014b611298565b005b34156104d757fe5b61014b600160a060020a036004351661133a565b005b34156104f557fe5b610357611374565b60408051600160a060020a039092168252519081900360200190f35b341561052157fe5b6101e9600160a060020a0360043581169060243516611383565b60408051918252519081900360200190f35b341561055557fe5b6103576113b0565b60408051600160a060020a039092168252519081900360200190f35b341561058157fe5b6101e9600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e4351661010435610124356113bf565b60408051918252519081900360200190f35b60006002308d8d8d8d8d8d6000604051602001526040518088600160a060020a0316600160a060020a0316606060020a02815260140187600160a060020a0316600160a060020a0316606060020a02815260140186815260200185600160a060020a0316600160a060020a0316606060020a0281526014018481526020018381526020018281526020019750505050505050506020604051808303816000866161da5a03f1151561067e57fe5b50506040805151600160a060020a0388166000908152600760209081528382208383529052919091205490915060ff16806107625750604080517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c8101839052815190819003603c018120600082815260208381018552928401819052835191825260ff891682840152818401889052606082018790529251600160a060020a038a16936001936080808501949193601f198101939281900390910191866161da5a03f1151561074e57fe5b505060206040510351600160a060020a0316145b801561076e5750874311155b80156107a85750600160a060020a03861660009081526008602090815260408083208484529091529020548b906107a59084611606565b11155b15156107b357610000565b6107c18c8c8c8c8a8761162e565b600160a060020a03861660009081526008602090815260408083208484529091529020546107ef9083611606565b600160a060020a03871660009081526008602090815260408083208584529091529020557f6effdda786735d5033bfad5f53e5131abcced9e52be6c507b62d639685fbed6d8c838c8e8d830281151561084457fe5b60408051600160a060020a039687168152602081019590955292851684840152046060830152828a166080830152339290921660a082015290519081900360c00190a15b505050505050505050505050565b60408051600060209182018190528251606060020a600160a060020a0330811682028352808c1682026014840152602883018b90528916026048820152605c8101879052607c8101869052609c81018590529251909260029260bc808301939192829003018186866161da5a03f1151561090c57fe5b5050604080518051600160a060020a03338116600081815260076020908152868220858352815290869020805460ff191660011790558c8316855284018b905290891683850152606083018890526080830187905260a0830186905260c083015291519192507f3f7f2eda73683c21a15f9435af1028c93185b5f1fa38270762dc32be606b3e85919081900360e00190a15b50505050505050565b600860209081526000928352604080842090915290825290205481565b60408051600060209182018190528251606060020a600160a060020a0330811682028352808f1682026014840152602883018e90528c16026048820152605c81018a9052607c8101899052609c81018890529251909260029260bc808301939192829003018186866161da5a03f11515610a3a57fe5b50506040805151600160a060020a0333166000908152600760209081528382208383529052919091205490915060ff1680610b1e5750604080517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c8101839052815190819003603c018120600082815260208381018552928401819052835191825260ff881682840152818401879052606082018690529251600160a060020a033316936001936080808501949193601f198101939281900390910191866161da5a03f11515610b0a57fe5b505060206040510351600160a060020a0316145b1515610b2957610000565b600160a060020a0333811660008181526008602090815260408083208684528252918290208d905581518e851681529081018d9052928b1683820152606083018a90526080830189905260a0830188905260c083019190915260ff861660e083015261010082018590526101208201849052517f1e0b760c386003e9cb9bcf4fcf3997886042859d9b6ed6320e804597fcdb28b0918190036101400190a15b50505050505050505050565b33600160a060020a03166000908152600080516020611963833981519152602052604090205481901015610c0757610000565b33600160a060020a031660009081526000805160206119638339815191526020526040902054610c37908261190a565b33600160a060020a031660008181526000805160206119638339815191526020526040808220939093559151909183919081818185876185025a03f1925050501515610c8257610000565b600160a060020a03331660008181526000805160206119638339815191526020908152604080832054815193845291830193909352818301849052606082015290517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a15b50565b600160a060020a0382161515610d0757610000565b604080516000602091820181905282517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a0333811660048301523081166024830152604482018690529351938616936323b872dd9360648084019491938390030190829087803b1515610d7f57fe5b60325a03f11515610d8c57fe5b50506040515115159050610d9f57610000565b600160a060020a0380831660009081526006602090815260408083203390941683529290522054610dd09082611606565b600160a060020a038381166000818152600660209081526040808320339095168084529482529182902085905581519283528201929092528082018490526060810192909252517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a15b5050565b600060006002308d8d8d8d8d8d6000604051602001526040518088600160a060020a0316600160a060020a0316606060020a02815260140187600160a060020a0316600160a060020a0316606060020a02815260140186815260200185600160a060020a0316600160a060020a0316606060020a0281526014018481526020018381526020018281526020019750505050505050506020604051808303816000866161da5a03f11515610ef557fe5b50506040805151600160a060020a03881660009081526008602090815283822083835290529190912054925090505b509a9950505050505050505050565b600660209081526000928352604080842090915290825290205481565b60005433600160a060020a03908116911614610f6b57610000565b60038190555b50565b60035481565b60005433600160a060020a03908116911614610f9557610000565b600454811115610fa457610000565b60058190555b50565b600154600160a060020a031681565b600160a060020a03808d1660009081526006602090815260408083209385168352929052908120548390108015906110055750826110028e8e8e8e8e8e8e8e8e8e6113bf565b10155b151561101357506000611017565b5060015b9c9b505050505050505050505050565b60005433600160a060020a0390811691161461104257610000565b60018054600160a060020a031916600160a060020a0383161790555b50565b60055481565b60005433600160a060020a0390811691161461108257610000565b60055481101561109157610000565b60048190555b50565b60005433600160a060020a039081169116146110b557610000565b60008054600160a060020a031916600160a060020a0383161790555b50565b600160a060020a03821615156110e957610000565b600160a060020a03808316600090815260066020908152604080832033909416835292905220548190101561111d57610000565b600160a060020a038083166000908152600660209081526040808320339094168352929052205461114e908261190a565b600160a060020a03808416600081815260066020908152604080832033909516808452948252808320959095558451810182905284517fa9059cbb0000000000000000000000000000000000000000000000000000000081526004810194909452602484018690529351919363a9059cbb936044808201949293918390030190829087803b15156111db57fe5b60325a03f115156111e857fe5b505060405151151590506111fb57610000565b600160a060020a03808316600081815260066020908152604080832033959095168084529482529182902054825193845290830193909352818101849052606082019290925290517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a15b5050565b600760209081526000928352604080842090915290825290205460ff1681565b60045481565b33600160a060020a0316600090815260008051602061196383398151915260205260409020546112c89034611606565b33600160a060020a031660008181526000805160206119638339815191526020908152604080832085905580519283529082019290925234818301526060810192909252517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a15b565b60005433600160a060020a0390811691161461135557610000565b60028054600160a060020a031916600160a060020a0383161790555b50565b600254600160a060020a031681565b600160a060020a038083166000908152600660209081526040808320938516835292905220545b92915050565b600054600160a060020a031681565b60006000600060006002308f8f8f8f8f8f6000604051602001526040518088600160a060020a0316600160a060020a0316606060020a02815260140187600160a060020a0316600160a060020a0316606060020a02815260140186815260200185600160a060020a0316600160a060020a0316606060020a0281526014018481526020018381526020018281526020019750505050505050506020604051808303816000866161da5a03f1151561147257fe5b50506040805151600160a060020a038a166000908152600760209081528382208383529052919091205490935060ff16806115565750604080517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c8101859052815190819003603c018120600082815260208381018552928401819052835191825260ff8b16828401528184018a9052606082018990529251600160a060020a038c16936001936080808501949193601f198101939281900390910191866161da5a03f1151561154257fe5b505060206040510351600160a060020a0316145b80156115625750894311155b151561157157600093506115f5565b600160a060020a03881660009081526008602090815260408083208684529091529020546115a0908e9061190a565b600160a060020a03808e166000908152600660209081526040808320938d16835292905220549092508b906115d5908f611923565b8115156115de57fe5b049050808210156115f1578193506115f5565b8093505b5050509a9950505050505050505050565b600082820161162384821080159061161e5750838210155b611952565b8091505b5092915050565b6000600060006000670de0b6b3a764000061164b86600354611923565b81151561165457fe5b049350670de0b6b3a764000061166c86600454611923565b81151561167557fe5b600254919004935060009250600160a060020a03161561174b57600254604080516000602091820181905282517f1cbd0519000000000000000000000000000000000000000000000000000000008152600160a060020a038b8116600483015293519390941693631cbd0519936024808301949391928390030190829087803b15156116fd57fe5b60325a03f1151561170a57fe5b505060405151915050600181141561173e57670de0b6b3a764000061173186600554611923565b81151561173a57fe5b0491505b806002141561174b578291505b5b600160a060020a03808b1660009081526006602090815260408083203390941683529290522054611786906117818786611606565b61190a565b600160a060020a038b81166000908152600660209081526040808320338516845290915280822093909355908816815220546117d4906117cf6117c98886611606565b8761190a565b611606565b600160a060020a038b811660009081526006602090815260408083208b851684529091528082209390935560015490911681522054611825906117cf61181a8787611606565b8561190a565b611606565b600160a060020a03808c166000908152600660208181526040808420600154861685528252808420959095558c84168352908152838220928a168252919091522054611885908a6118768a89611923565b81151561187f57fe5b0461190a565b600160a060020a0389811660009081526006602090815260408083208b851684529091528082209390935533909116815220546118d6908a6118c78a89611923565b8115156118d057fe5b04611606565b600160a060020a03808a16600090815260066020908152604080832033909416835292905220555b50505050505050505050565b600061191883831115611952565b508082035b92915050565b600082820261162384158061161e575083858381151561193f57fe5b04145b611952565b8091505b5092915050565b801515610cef57610000565b5b50560054cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8a165627a7a72305820f2828a39c69387cf5601d402996336632c9d93a3aae31eadb6aee56c4912d2f90029000000000000000000000000a8c0041ef98333fc425af691aa2d01897d481c37000000000000000000000000a8c0041ef98333fc425af691aa2d01897d481c3700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000aa87bee5380000000000000000000000000000000000000000000000000000000000000000000


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

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


   Swarm Source:
bzzr://f2828a39c69387cf5601d402996336632c9d93a3aae31eadb6aee56c4912d2f9
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.