Contract 0x3c020e014069df790d4f4e63fd297BA4e1c8e51F

Dex  
 

Contract Overview

Bitcratic
Balance:
32.932891337198792836 Ether

EtherValue:
$50,960.03 (@ $1,547.39/ETH)

Token:
Txn Hash
Block
From
To
Value
0x08557128e184f2fb902ab4664a67af50cd8f272954cfd547b469356b16364d27(pending)2021-03-02 1:17:345 mins ago0x514e7ece86bd6bed8502b133872992fe5272302e IN Bitcratic0 Ether(Pending)(Pending)
0x78ea8d43d8e01a6170d2dd140ed9a1e7096c0c21abca1adf87ded24c1549a2a3(pending)2021-03-02 1:08:0614 mins ago0x68ef6a569e039ae2c5dc544aff748890e7b1cb5d IN Bitcratic0.00009 Ether(Pending)(Pending)
0x78e3a33de524ffc5a1ba7e714dba3efa6acbc551b6824a5cc715a1ccaedbe948(pending)2021-02-28 22:24:531 day 2 hrs ago0x197e215a66f345b7de3f446178995a15de9a6960 IN Bitcratic0 Ether(Pending)(Pending)
0x434558e62f2dae2266b65c2f4444091336fbda99d4e36eff5aee1dd265585063(pending)2021-02-28 17:12:151 day 8 hrs ago0x946b5876f44ba0d63cde2e38e8434092b0e21d06 IN Bitcratic0 Ether(Pending)(Pending)
0x96af30fbe1ba455ec26b497af1d2935468c314c4f0f13e673c52d695662ba3b7(pending)2021-02-28 17:08:001 day 8 hrs ago0x35dd38215ee74090fa677b2eeaf8e603831c22c9 IN Bitcratic0.001 Ether(Pending)(Pending)
0xfabec934cc40a0344098aad864ca1339c0e2091e5192ff13b8821cbb7dcd70f2(pending)2021-02-28 15:20:191 day 10 hrs ago0x637983231d8e12913e234c77bdb6ad65c79ecd12 IN Bitcratic0 Ether(Pending)(Pending)
0xbc5ac5ce2c4f03801cec7b99cc3f117a1ae55264d497e17f255646ec45db144a(pending)2021-02-28 14:04:361 day 11 hrs ago0xbf3f0f95b88deb89513b1a23be7321dfb1fab871 IN Bitcratic0.06 Ether(Pending)(Pending)
0xf4a7affa090abb4c8abc4a2d7785528e59dee283c0aef7aadede9745f252ae0a(pending)2021-02-28 14:00:081 day 11 hrs ago0x0223ea4ca2419c8769ebbae9da3fcf29f00479d8 IN Bitcratic0 Ether(Pending)(Pending)
0xc8f24004a39edd3b1fde0b4892b0ec28cab30f509833d27718b619b22d5834cb(pending)2021-02-28 2:48:041 day 22 hrs ago0xdd5cd54a84b6f6586db1b8308036eec1436d88c7 IN Bitcratic0 Ether(Pending)(Pending)
0xd684d84b8ce83971f9cafc62051b3ed5eb6c552d52927590644e684320ab0a46(pending)2021-02-28 2:34:411 day 22 hrs ago0x2a873ee0c1dca3d42a320dc3daa6bf9eb61d870d IN Bitcratic0 Ether(Pending)(Pending)
0xbafa0814bbb6f498d8daaa7fbbd0c7b644e4d29f55ca8545da2fd5db5ced949f(pending)2021-02-28 2:09:551 day 23 hrs ago0x535d3da7f9ae495adf58e0c38eb518e17cad88a6 IN Bitcratic0 Ether(Pending)(Pending)
0xb15e3d7deede32d27a3ad11dd857a39ae71a076a61f37c687cf35736838442cf(pending)2021-02-28 1:30:541 day 23 hrs ago0x96ccc2b634814d49ab00802930668228f2e6aab8 IN Bitcratic0 Ether(Pending)(Pending)
0x6725f060884a2ae2fe0a5a301fc286acfe2c2c3204e96c50b9a11aa0b519022f(pending)2021-02-21 2:07:018 days 23 hrs ago0xd13943d4a085a0ab26bbfdd8eb09e68d74d78c14 IN Bitcratic0.00566095 Ether(Pending)(Pending)
0x382800875ee768309d8daace6dd47bd23bba716bb60a8323186f57038c605fca(pending)2021-01-30 16:19:3130 days 9 hrs ago0xb6b0bd418bf24427b0bc4c7e731c7fede3eff8da IN Bitcratic0 Ether(Pending)(Pending)
0xf304bed70c40cbbc04c0f7b2ec53212a4ff992f304ddd9aef8410291644adfa4119551922021-03-01 23:02:312 hrs 20 mins ago0xad575e9151d2153cc80f4ba4d1d99ad43cb738d6 IN  Bitcratic0 Ether0.01124916120
0x618edfc2743c9eb57d161a50c1041bbe877943743b1f093cf65c6536224b0eac119551922021-03-01 23:02:312 hrs 20 mins ago0xad575e9151d2153cc80f4ba4d1d99ad43cb738d6 IN  Bitcratic0 Ether0.00316656120
0x302885b7347c53bcb05a7cd79d7e3da3e0ef84a4ada3f138424cf5078a651a10119419212021-02-27 22:02:152 days 3 hrs ago0xbc9ede25d872013b495f8628c4cb6b76b93503c2 IN  Bitcratic0 Ether0.0063023280
0x7a26e5f7f1d90d08df7c954eaf095c8ab2b3a6c38daa11bf55777270cbca5a8f119391042021-02-27 11:34:322 days 13 hrs ago0x34f159473e4e36f1631c95abd97ee81f0690830b IN  Bitcratic0.026755249398182 Ether0.00278835793.5
0x5c0ebb75b2c8031c30deb215171ac40679422b31d6276a7e115cd0463bc3ff3b119387222021-02-27 10:09:172 days 15 hrs ago0x1e9bef77a7bd538850bb72f8038e738f9003f892 IN  Bitcratic0 Ether0.00825149688
0x6ac3efb23a581d0bd6435ba9bf93e1385472bf1d8763e223b662a47413f0cf6b119382432021-02-27 8:20:212 days 17 hrs ago0x0d99c93cbea8e8833c96ff746005a90a15d2a426 IN  Bitcratic0 Ether0.00363899793
0x1e892dbc1120e54a26e9ba686ccd69ea7ef0b30a1dbe8dfd8efa9a99defa1282119353322021-02-26 21:39:353 days 3 hrs ago0xf51a8cee8d3e9dc1764d2b6ef3fad973ebdb0ec5 IN  Bitcratic0 Ether0.0128046200
0x1a8ce8172a1983796be9272680e3dadef8c8872d6d2fdece16992b995ca02f74119353212021-02-26 21:38:063 days 3 hrs ago0xf51a8cee8d3e9dc1764d2b6ef3fad973ebdb0ec5 IN  Bitcratic0 Ether0.007821200
0xab314ef677fbd8a46afeaa5734df8e5c08231739043edd4349b0f5995dac9f54119352912021-02-26 21:30:463 days 3 hrs ago0xf51a8cee8d3e9dc1764d2b6ef3fad973ebdb0ec5 IN  Bitcratic0 Ether0.00457716140
0x64cec986e48eac12fad0d788d902a88f061b4d9f480fc0a89353e3cbed7935ea119325882021-02-26 11:34:033 days 13 hrs ago0x08b224625c88231033218fc9e648c5d4af02ebb2 IN  Bitcratic0 Ether0.00371611595
0xa104aaa1ae31c3e25681dbdd93a06d5c1ad40218acd5be6e40da5fec7ccd35fa119322232021-02-26 10:15:123 days 15 hrs ago0xaecad7163db3f1aa1fbdc64b5551febc1b543623 IN  Bitcratic0 Ether0.01325996161
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x6ac3efb23a581d0bd6435ba9bf93e1385472bf1d8763e223b662a47413f0cf6b119382432021-02-27 8:20:212 days 17 hrs ago Bitcratic0x0d99c93cbea8e8833c96ff746005a90a15d2a4260.247 Ether
0x1a8ce8172a1983796be9272680e3dadef8c8872d6d2fdece16992b995ca02f74119353212021-02-26 21:38:063 days 3 hrs ago Bitcratic0xf51a8cee8d3e9dc1764d2b6ef3fad973ebdb0ec54.9 Ether
0x64cec986e48eac12fad0d788d902a88f061b4d9f480fc0a89353e3cbed7935ea119325882021-02-26 11:34:033 days 13 hrs ago Bitcratic0x08b224625c88231033218fc9e648c5d4af02ebb20.045 Ether
0x5a8cf3e3efa4782bb0815ec7d92cefaac32c49b58ac351fa729a5fb1274c07eb119278942021-02-25 18:20:394 days 7 hrs ago Bitcratic0x47701b089ff94c296555a6c2c34fe2d18ed64f001.495549600537597444 Ether
0xbfe8d820bca80d22a2d26821e823ad7bad45397c582061158d5116f9cbc2f9e1119179082021-02-24 5:11:065 days 20 hrs ago Bitcratic0x108583dcced68f6925206516ad54919238daa9dc0.022392144105366555 Ether
0x9f8ded0aa8da712092693cd8e17d12c8fcdad83fb3e485f2e349dfeb4bab52f0118788202021-02-18 5:03:0011 days 20 hrs ago Bitcratic0x3975cbe2e51c702b46d86bd4b141e614daf52bcc0.026932615490350582 Ether
0x6956de5d6f289263ecf29bc857940cf8f6c663eabc1cf3fb2a4e76278abac089118698402021-02-16 19:49:2813 days 5 hrs ago Bitcratic0xe2461f713ff415a2e3cd46546cb6d89c369758f50.318 Ether
0x0576e8b4007d06a2822d22e5a8431483306a1a3919ee3b1debe4fa3071a0316b118678182021-02-16 12:28:1513 days 12 hrs ago Bitcratic0x1983b4a5b950ed7a3982cde58e2a2e2b8594995d0.162253036204 Ether
0x05df7db0622069db96bebd49f6403d956251c2d23b03a039c9500c4a86e5e13d118348362021-02-11 10:54:0818 days 14 hrs ago Bitcratic0xf142a93d901268a323df04f34d03f6e453ede31a0.068 Ether
0x9709c687322ed84466a3129808d7cb87581ea483f82210ebc6a9e078755338d4118313672021-02-10 21:56:3719 days 3 hrs ago Bitcratic0x81559c5cb56f319cc0839667fc8b04d00ca2b3713.330940858339 Ether
0xbc81d51f28a3cb8cf10e1f87520357c32ab42a1ecdc6e3dd4d4fce7290ed4ae1118267632021-02-10 5:02:5519 days 20 hrs ago Bitcratic0x09ebb64e8cc1435a89f9732b6b1f69713034a7db1.62930914166085136 Ether
0x826fb8494d4c5090e64bd4bcac710d88cba6a6521584c4132f35ddb16a76408c117860382021-02-03 22:41:3126 days 2 hrs ago Bitcratic0x3548eee7350268af61d77d032498af3d623034330.03590226955627332 Ether
0x60459bc605816a0bdd0822192503bee4d2c637ffbbfa9bc4b4e6c25ca022a332117665672021-01-31 22:40:3929 days 2 hrs ago Bitcratic0xc4a23dbe8d2ba44d0aac32c750caf6a54ea611f10.23926 Ether
0xc9824239f1be8a9b76171c0e53ddca043e0ef3b0c37a6ea4660fea24b3ead485117247752021-01-25 12:13:3835 days 13 hrs ago Bitcratic0x8f773af608eaac7dba92defe3b596d7d1932cf710.1 Ether
0x53b9a0b0685c7325df32c9ac8a1e3e83686756c04fbc3d984ec9145a2380a083117242252021-01-25 10:11:3835 days 15 hrs ago Bitcratic0x8f773af608eaac7dba92defe3b596d7d1932cf710.01 Ether
0xa0666d9d2831eb0a0990aff17ea71857dcd1639c94bbbdcf66b9e7ccf03b3fa5117120262021-01-23 13:10:5437 days 12 hrs ago Bitcratic0x6ad3a34633a0570f4643c3d98246c65ac4ab262f0.065 Ether
0x21f26837e94adb2f0becc790ab3ea67b075f58ff4354b5615edabfe7a503584e117112492021-01-23 10:24:5537 days 14 hrs ago Bitcratic0x220186da276c09f406ab89218177dd47840034f50.176 Ether
0xcf1d75db24d8e61df1f11150dde57318f212f6296fe3c241145276efd0f2edbe117098232021-01-23 5:06:5037 days 20 hrs ago Bitcratic0xfa68fddc3a61007d4e815ceb24edfc6e6feef90c0.000727072116439038 Ether
0x708c30d4421ca137be57673cb2245d230b8e45bb10043cd787a68fd108373d79117078112021-01-22 21:44:3138 days 3 hrs ago Bitcratic0x3a935a9ddb1e06f48566f2fd597a9da94a17ff180.0826 Ether
0x728490fb06f04f75a2ff267ef8a28e13dfb98aeeab9f60550e7685fc0587398a116756762021-01-17 23:20:4143 days 2 hrs ago Bitcratic0x95328d98630779834f3e46f78f900042bc2bdd150.144 Ether
0x6fb8e0c6107f3e57c8ea9cbda8bb2792fb83dae9af67361fe54396ea0a00c873116755882021-01-17 22:58:3443 days 2 hrs ago Bitcratic0x08b224625c88231033218fc9e648c5d4af02ebb20.31 Ether
0x8eeba7cbb7ce7bb5ddc244010f08b90e0eb6e7ff69989402be52c6e220616ed0116754022021-01-17 22:19:4543 days 3 hrs ago Bitcratic0x29d2de0a644846ebdf85bb7e6a662913d4f483380.062 Ether
0x59230611a7b453ad1691a0e0ad7e2a0fd17082b059872f851aa80d01ec1fa460116744862021-01-17 18:59:5643 days 6 hrs ago Bitcratic0x09688bcace74aa3a3594d1c188c9de591979c1660.110632531918417267 Ether
0x4083b187bd2123079c9f8846a8bc8867ae73e4f5feeb3cb2ced73b755d939c57116711652021-01-17 6:43:1243 days 18 hrs ago Bitcratic0xbb4c62f9d023eee437d56f6d51da610342914e460.066 Ether
0xaff0ee6cec9e797d0e6982a4c5ed164e13b1f329cf0b3326fdfc7d576925f20a116580132021-01-15 6:22:4645 days 18 hrs ago Bitcratic0xdcf5523fdbabfe262aad72eb9ca52f5743b2b6e10.059933594915988039 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Bitcratic

Compiler Version
v0.4.11+commit.68ef5810

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-03-16
*/

pragma solidity ^0.4.11;

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 Bitcratic 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 Bitcratic(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 Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"tokenGet","type":"address"},{"name":"amountGet","type":"uint256"},{"name":"tokenGive","type":"address"},{"name":"amountGive","type":"uint256"},{"name":"expires","type":"uint256"},{"name":"nonce","type":"uint256"},{"name":"user","type":"address"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"},{"name":"amount","type":"uint256"}],"name":"trade","outputs":[],"payable":false,"type":"function"},{"constant":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"}]

6060604052341561000c57fe5b60405160c080611ad083398101604090815281516020830151918301516060840151608085015160a090950151929491929091905b60008054600160a060020a03808916600160a060020a0319928316179092556001805488841690831617905560028054928716929091169190911790556003839055600482905560058190555b5050505050505b611a2c806100a46000396000f300606060405236156101515763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630a19b14a81146101675780630b927666146101b357806319774d43146101e4578063278b8c0e146102155780632e1a7d4d14610253578063338b5dea1461026857806346be96c314610289578063508493bc146102e157806354d03b5c14610315578063577863941461032a5780635e1d7ae41461034c57806365e17c9d146103615780636c86888b1461038d57806371ffcb16146103f6578063731c2f81146104145780638823a9c0146104365780638f2839701461044b5780639e281a9814610469578063bb5f46291461048a578063c281309e146104bd578063d0e30db0146104df578063e8f6bc2e146104e9578063f341294214610507578063f7888aec14610533578063f851a44014610567578063fb6e155f14610593575b341561015957fe5b6101655b60006000fd5b565b005b341561016f57fe5b610165600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e435166101043561012435610144356105eb565b005b34156101bb57fe5b610165600160a060020a03600435811690602435906044351660643560843560a4356108b1565b005b34156101ec57fe5b610203600160a060020a03600435166024356109c2565b60408051918252519081900360200190f35b341561021d57fe5b610165600160a060020a03600435811690602435906044351660643560843560a43560ff60c4351660e435610104356109df565b005b341561025b57fe5b610165600435610bf0565b005b341561027057fe5b610165600160a060020a0360043516602435610d10565b005b341561029157fe5b610203600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e435166101043561012435610e67565b60408051918252519081900360200190f35b34156102e957fe5b610203600160a060020a0360043581169060243516610f54565b60408051918252519081900360200190f35b341561031d57fe5b610165600435610f71565b005b341561033257fe5b610203610fa6565b60408051918252519081900360200190f35b341561035457fe5b610165600435610fac565b005b341561036957fe5b610371610fed565b60408051600160a060020a039092168252519081900360200190f35b341561039557fe5b6103e2600160a060020a0360043581169060243590604435811690606435906084359060a4359060c43581169060ff60e43516906101043590610124359061014435906101643516610ffc565b604080519115158252519081900360200190f35b34156103fe57fe5b610165600160a060020a0360043516611067565b005b341561041c57fe5b6102036110af565b60408051918252519081900360200190f35b341561043e57fe5b6101656004356110b5565b005b341561045357fe5b610165600160a060020a03600435166110f6565b005b341561047157fe5b610165600160a060020a036004351660243561113e565b005b341561049257fe5b6103e2600160a060020a03600435166024356112e0565b604080519115158252519081900360200190f35b34156104c557fe5b610203611300565b60408051918252519081900360200190f35b610165611306565b005b34156104f157fe5b610165600160a060020a03600435166113a8565b005b341561050f57fe5b6103716113f0565b60408051600160a060020a039092168252519081900360200190f35b341561053b57fe5b610203600160a060020a03600435811690602435166113ff565b60408051918252519081900360200190f35b341561056f57fe5b61037161142c565b60408051600160a060020a039092168252519081900360200190f35b341561059b57fe5b610203600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e43516610104356101243561143b565b60408051918252519081900360200190f35b60006002308d8d8d8d8d8d6000604051602001526040518088600160a060020a0316600160a060020a0316606060020a02815260140187600160a060020a0316600160a060020a0316606060020a02815260140186815260200185600160a060020a0316600160a060020a0316606060020a02815260140184815260200183815260200182815260200197505050505050505060206040518083038160008661646e5a03f1151561069857fe5b50506040805151600160a060020a0388166000908152600760209081528382208383529052919091205490915060ff168061077c5750604080517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c8101839052815190819003603c018120600082815260208381018552928401819052835191825260ff891682840152818401889052606082018790529251600160a060020a038a16936001936080808501949193601f1981019392819003909101918661646e5a03f1151561076857fe5b505060206040510351600160a060020a0316145b80156107885750874311155b80156107c25750600160a060020a03861660009081526008602090815260408083208484529091529020548b906107bf9084611682565b11155b15156107ce5760006000fd5b6107dc8c8c8c8c8a876116aa565b600160a060020a038616600090815260086020908152604080832084845290915290205461080a9083611682565b600160a060020a03871660009081526008602090815260408083208584529091529020557f6effdda786735d5033bfad5f53e5131abcced9e52be6c507b62d639685fbed6d8c838c8e8d830281151561085f57fe5b60408051600160a060020a039687168152602081019590955292851684840152046060830152828a166080830152339290921660a082015290519081900360c00190a15b505050505050505050505050565b60408051600060209182018190528251606060020a600160a060020a0330811682028352808c1682026014840152602883018b90528916026048820152605c8101879052607c8101869052609c81018590529251909260029260bc8083019391928290030181868661646e5a03f1151561092757fe5b5050604080518051600160a060020a03338116600081815260076020908152868220858352815290869020805460ff191660011790558c8316855284018b905290891683850152606083018890526080830187905260a0830186905260c083015291519192507f3f7f2eda73683c21a15f9435af1028c93185b5f1fa38270762dc32be606b3e85919081900360e00190a15b50505050505050565b600860209081526000928352604080842090915290825290205481565b60408051600060209182018190528251606060020a600160a060020a0330811682028352808f1682026014840152602883018e90528c16026048820152605c81018a9052607c8101899052609c81018890529251909260029260bc8083019391928290030181868661646e5a03f11515610a5557fe5b50506040805151600160a060020a0333166000908152600760209081528382208383529052919091205490915060ff1680610b395750604080517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c8101839052815190819003603c018120600082815260208381018552928401819052835191825260ff881682840152818401879052606082018690529251600160a060020a033316936001936080808501949193601f1981019392819003909101918661646e5a03f11515610b2557fe5b505060206040510351600160a060020a0316145b1515610b455760006000fd5b600160a060020a0333811660008181526008602090815260408083208684528252918290208d905581518e851681529081018d9052928b1683820152606083018a90526080830189905260a0830188905260c083019190915260ff861660e083015261010082018590526101208201849052517f1e0b760c386003e9cb9bcf4fcf3997886042859d9b6ed6320e804597fcdb28b0918190036101400190a15b50505050505050505050565b33600160a060020a031660009081526000805160206119e1833981519152602052604090205481901015610c245760006000fd5b33600160a060020a031660009081526000805160206119e18339815191526020526040902054610c549082611987565b33600160a060020a031660008181526000805160206119e18339815191526020526040808220939093559151909183919081818185876187965a03f1925050501515610ca05760006000fd5b600160a060020a03331660008181526000805160206119e18339815191526020908152604080832054815193845291830193909352818301849052606082015290517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a15b50565b600160a060020a0382161515610d265760006000fd5b604080516000602091820181905282517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a0333811660048301523081166024830152604482018690529351938616936323b872dd9360648084019491938390030190829087803b1515610d9e57fe5b6102c65a03f11515610dac57fe5b50506040515115159050610dc05760006000fd5b600160a060020a0380831660009081526006602090815260408083203390941683529290522054610df19082611682565b600160a060020a038381166000818152600660209081526040808320339095168084529482529182902085905581519283528201929092528082018490526060810192909252517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a15b5050565b600060006002308d8d8d8d8d8d6000604051602001526040518088600160a060020a0316600160a060020a0316606060020a02815260140187600160a060020a0316600160a060020a0316606060020a02815260140186815260200185600160a060020a0316600160a060020a0316606060020a02815260140184815260200183815260200182815260200197505050505050505060206040518083038160008661646e5a03f11515610f1657fe5b50506040805151600160a060020a03881660009081526008602090815283822083835290529190912054925090505b509a9950505050505050505050565b600660209081526000928352604080842090915290825290205481565b60005433600160a060020a03908116911614610f8d5760006000fd5b600354811115610f9d5760006000fd5b60038190555b50565b60035481565b60005433600160a060020a03908116911614610fc85760006000fd5b600554811080610fd9575060045481115b15610fe45760006000fd5b60058190555b50565b600154600160a060020a031681565b600160a060020a03808d1660009081526006602090815260408083209385168352929052908120548390108015906110455750826110428e8e8e8e8e8e8e8e8e8e61143b565b10155b151561105357506000611057565b5060015b9c9b505050505050505050505050565b60005433600160a060020a039081169116146110835760006000fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b60055481565b60005433600160a060020a039081169116146110d15760006000fd5b6004548111806110e2575060055481105b156110ed5760006000fd5b60048190555b50565b60005433600160a060020a039081169116146111125760006000fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b600160a060020a03821615156111545760006000fd5b600160a060020a0380831660009081526006602090815260408083203390941683529290522054819010156111895760006000fd5b600160a060020a03808316600090815260066020908152604080832033909416835292905220546111ba9082611987565b600160a060020a03808416600081815260066020908152604080832033909516808452948252808320959095558451810182905284517fa9059cbb0000000000000000000000000000000000000000000000000000000081526004810194909452602484018690529351919363a9059cbb936044808201949293918390030190829087803b151561124757fe5b6102c65a03f1151561125557fe5b505060405151151590506112695760006000fd5b600160a060020a03808316600081815260066020908152604080832033959095168084529482529182902054825193845290830193909352818101849052606082019290925290517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a15b5050565b600760209081526000928352604080842090915290825290205460ff1681565b60045481565b33600160a060020a031660009081526000805160206119e183398151915260205260409020546113369034611682565b33600160a060020a031660008181526000805160206119e18339815191526020908152604080832085905580519283529082019290925234818301526060810192909252517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a15b565b60005433600160a060020a039081169116146113c45760006000fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b600254600160a060020a031681565b600160a060020a038083166000908152600660209081526040808320938516835292905220545b92915050565b600054600160a060020a031681565b60006000600060006002308f8f8f8f8f8f6000604051602001526040518088600160a060020a0316600160a060020a0316606060020a02815260140187600160a060020a0316600160a060020a0316606060020a02815260140186815260200185600160a060020a0316600160a060020a0316606060020a02815260140184815260200183815260200182815260200197505050505050505060206040518083038160008661646e5a03f115156114ee57fe5b50506040805151600160a060020a038a166000908152600760209081528382208383529052919091205490935060ff16806115d25750604080517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c8101859052815190819003603c018120600082815260208381018552928401819052835191825260ff8b16828401528184018a9052606082018990529251600160a060020a038c16936001936080808501949193601f1981019392819003909101918661646e5a03f115156115be57fe5b505060206040510351600160a060020a0316145b80156115de5750894311155b15156115ed5760009350611671565b600160a060020a038816600090815260086020908152604080832086845290915290205461161c908e90611987565b600160a060020a03808e166000908152600660209081526040808320938d16835292905220549092508b90611651908f6119a0565b81151561165a57fe5b0490508082101561166d57819350611671565b8093505b5050509a9950505050505050505050565b600082820161169f84821080159061169a5750838210155b6119cf565b8091505b5092915050565b6000600060006000670de0b6b3a76400006116c7866003546119a0565b8115156116d057fe5b049350670de0b6b3a76400006116e8866004546119a0565b8115156116f157fe5b600254919004935060009250600160a060020a0316156117c857600254604080516000602091820181905282517f1cbd0519000000000000000000000000000000000000000000000000000000008152600160a060020a038b8116600483015293519390941693631cbd0519936024808301949391928390030190829087803b151561177957fe5b6102c65a03f1151561178757fe5b50506040515191505060018114156117bb57670de0b6b3a76400006117ae866005546119a0565b8115156117b757fe5b0491505b80600214156117c8578291505b5b600160a060020a03808b1660009081526006602090815260408083203390941683529290522054611803906117fe8786611682565b611987565b600160a060020a038b81166000908152600660209081526040808320338516845290915280822093909355908816815220546118519061184c6118468886611682565b87611987565b611682565b600160a060020a038b811660009081526006602090815260408083208b8516845290915280822093909355600154909116815220546118a29061184c6118978787611682565b85611987565b611682565b600160a060020a03808c166000908152600660208181526040808420600154861685528252808420959095558c84168352908152838220928a168252919091522054611902908a6118f38a896119a0565b8115156118fc57fe5b04611987565b600160a060020a0389811660009081526006602090815260408083208b85168452909152808220939093553390911681522054611953908a6119448a896119a0565b81151561194d57fe5b04611682565b600160a060020a03808a16600090815260066020908152604080832033909416835292905220555b50505050505050505050565b6000611995838311156119cf565b508082035b92915050565b600082820261169f84158061169a57508385838115156119bc57fe5b04145b6119cf565b8091505b5092915050565b801515610d0d5760006000fd5b5b50560054cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8a165627a7a72305820595bea9da105b4a3f6f7c84e421acb39b26e736f391bcc3cc25de3266a68042c00290000000000000000000000008d9171be891745426b226f29304d35de46b667310000000000000000000000008d9171be891745426b226f29304d35de46b6673100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000aa87bee5380000000000000000000000000000000000000000000000000000000000000000000

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

0000000000000000000000008d9171be891745426b226f29304d35de46b667310000000000000000000000008d9171be891745426b226f29304d35de46b6673100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000aa87bee5380000000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : admin_ (address): 0x8d9171be891745426b226f29304d35de46b66731
Arg [1] : feeAccount_ (address): 0x8d9171be891745426b226f29304d35de46b66731
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] : 0000000000000000000000008d9171be891745426b226f29304d35de46b66731
Arg [1] : 0000000000000000000000008d9171be891745426b226f29304d35de46b66731
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : 000000000000000000000000000000000000000000000000000aa87bee538000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000


Swarm Source

bzzr://595bea9da105b4a3f6f7c84e421acb39b26e736f391bcc3cc25de3266a68042c
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.