Contract 0xcc152BA543A3942A07E488A29702CA1cB40Ea7e6

 
 
Txn Hash
Method
Block
From
To
Value
0xf1438ce65eb495c0e36edcc895a81a8ebc5770efa652dae5182f9a4abc2156c4Withdraw104935272020-07-20 1:46:48861 days 17 hrs ago0xce13ba1b069911d654e6b7183ac5b17428d1af42 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0009523640
0x5f0e449758a7f5d79137424956f60e75dbca0cce38d2d7ece3ae1f0b67a9b120Withdraw Token104935262020-07-20 1:46:20861 days 17 hrs ago0x336b7d9bd495f23d9cff3f5361a3ec19d22bac06 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0026328440
0x2c61bda4099963aa419a8d940f00f012d6b9228a0af55f19f0c87c6f38cddf34Withdraw104935232020-07-20 1:46:05861 days 17 hrs ago0x336b7d9bd495f23d9cff3f5361a3ec19d22bac06 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0009528440
0xf08e85242d58c0730a67b96f638f040dc7145e49e8f0054820bed86f9cafeafeWithdraw Token104935222020-07-20 1:46:00861 days 17 hrs ago0xce13ba1b069911d654e6b7183ac5b17428d1af42 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0020328440
0xcba1098858af9a254d228af2fb9ef510c9e1f21e3eb33f8a725d85cbe5f52fc2Withdraw Token104935222020-07-20 1:46:00861 days 17 hrs ago0xce13ba1b069911d654e6b7183ac5b17428d1af42 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0023038337.001
0xe0b8ce0011f2a1100172a54a5677554bd11f87abeac7f84314007b626185124bWithdraw Token104935212020-07-20 1:45:45861 days 17 hrs ago0x336b7d9bd495f23d9cff3f5361a3ec19d22bac06 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0029351238
0x6987f689e009edb9167b9e117e9450fc67450f0d28bac71cc98ca96f5757b38fDeposit Token104637892020-07-15 11:18:25866 days 7 hrs ago0xce13ba1b069911d654e6b7183ac5b17428d1af42 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0025907856
0xb79878368d13fc50f22c839989dcb6b3fe70697afb36d47c55dcc9457cc8ec0dWithdraw104637892020-07-15 11:18:25866 days 7 hrs ago0xce13ba1b069911d654e6b7183ac5b17428d1af42 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0021344955
0xcb00bc6e55563ac1b179c91df11d45ae97ece62ae6bf7f0fe8e76090f20274bdDeposit Token104637882020-07-15 11:18:23866 days 7 hrs ago0xce13ba1b069911d654e6b7183ac5b17428d1af42 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0029571855.98175224
0x2cb1597141978061706d625adbdf02e473be24535995f3a7a85cc8f516df679bDeposit Token104637512020-07-15 11:10:21866 days 7 hrs ago0xce13ba1b069911d654e6b7183ac5b17428d1af42 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0024359257.01
0x415048e55589ab9c07199b989d96c4749b34c40384beedffc4730352b85023d5Deposit Token104637472020-07-15 11:09:57866 days 7 hrs ago0xce13ba1b069911d654e6b7183ac5b17428d1af42 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0013798758
0xfa83f460f05a82baec3b608f4ca88fbafb4c2a8cb7dac779a6578667ed3674f6Transfer104637452020-07-15 11:09:23866 days 7 hrs ago0xce13ba1b069911d654e6b7183ac5b17428d1af42 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60.05 Ether0.0025659258
0x52622f262aad805b7e6c864a0c902d63aaec6e4b35872857d3390e2c43522d02Withdraw Token104629062020-07-15 8:04:26866 days 10 hrs ago0xff071da4e5a446eab5b8084dfbfac1713f91a9c9 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0019136449
0x555222b45838df0d7228e938f77213eab5343a7836afceec31049a90ad64c437Withdraw Token104629012020-07-15 8:03:21866 days 10 hrs ago0xff071da4e5a446eab5b8084dfbfac1713f91a9c9 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0011446449
0x49386a4be3808b7fd241f0a7b0c892d15ba19fb3a109ef5f87dfd5703e66b8f7Withdraw Token104629002020-07-15 8:03:01866 days 10 hrs ago0xff071da4e5a446eab5b8084dfbfac1713f91a9c9 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0017552249
0xbd7da71107ff783de66a71804d8ac74e3f8bfbbc6c5396bfcc11cacc71a387c0Withdraw104629002020-07-15 8:03:01866 days 10 hrs ago0xff071da4e5a446eab5b8084dfbfac1713f91a9c9 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0011445648.00000123
0x2ca8f89168c0a62f71380ab145377c262227e447043578190968162cb633434eTrade104628842020-07-15 7:58:35866 days 10 hrs ago0xff071da4e5a446eab5b8084dfbfac1713f91a9c9 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0041684744
0x22b6e81d964b087afd95a15c2e7468a2e5a5731187c1b16e1db50977a5179889Trade104628582020-07-15 7:52:22866 days 11 hrs ago0xff071da4e5a446eab5b8084dfbfac1713f91a9c9 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0039789942
0x502f12cf307471970171f2430a17abde38dc23c6d92794ada038ddeb66ca98ebTrade104628582020-07-15 7:52:22866 days 11 hrs ago0xff071da4e5a446eab5b8084dfbfac1713f91a9c9 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0039815142
0x7fe87bdec1f40f342517dab435058d634a4a9ab5509fe17c20b864b99539dafeTrade104628322020-07-15 7:46:14866 days 11 hrs ago0xff071da4e5a446eab5b8084dfbfac1713f91a9c9 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0047218343
0x3c01b74b9bc8d2ace85eb7195cd5d2276e13f8b5614c0071db748651299cf450Deposit Token104628282020-07-15 7:45:15866 days 11 hrs ago0xff071da4e5a446eab5b8084dfbfac1713f91a9c9 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0021289743
0xd7259fdba8d3b9bc18baf27d52d6bc9cf48ce0429e2823fa8365ee6dd330dd02Trade104565692020-07-14 8:29:48867 days 10 hrs ago0xff071da4e5a446eab5b8084dfbfac1713f91a9c9 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0051736347.14014929
0x3cc13810ffc6e7865e8c16945154497eca90f9f8ddf596c79a1ec3bed7e9a17cDeposit Token104565482020-07-14 8:25:50867 days 10 hrs ago0x336b7d9bd495f23d9cff3f5361a3ec19d22bac06 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0033221549
0x48498fd9673d64d65427fb5fb653743d97aab29504a79ade545f7ad3b2460b85Deposit Token104565472020-07-14 8:25:42867 days 10 hrs ago0x336b7d9bd495f23d9cff3f5361a3ec19d22bac06 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60 Ether0.0020936749
0x9f9d96c2e3bc1bb8c6af221638cbf0b958522236d4e1eebcb5ad0684b78fb4fcTransfer104564682020-07-14 8:07:51867 days 10 hrs ago0x336b7d9bd495f23d9cff3f5361a3ec19d22bac06 IN  0xcc152ba543a3942a07e488a29702ca1cb40ea7e60.07176124 Ether0.001990845
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xf1438ce65eb495c0e36edcc895a81a8ebc5770efa652dae5182f9a4abc2156c4104935272020-07-20 1:46:48861 days 17 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60xce13ba1b069911d654e6b7183ac5b17428d1af420.04 Ether
0x2c61bda4099963aa419a8d940f00f012d6b9228a0af55f19f0c87c6f38cddf34104935232020-07-20 1:46:05861 days 17 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60x336b7d9bd495f23d9cff3f5361a3ec19d22bac060.07176124 Ether
0xb79878368d13fc50f22c839989dcb6b3fe70697afb36d47c55dcc9457cc8ec0d104637892020-07-15 11:18:25866 days 7 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60xce13ba1b069911d654e6b7183ac5b17428d1af420.01 Ether
0xbd7da71107ff783de66a71804d8ac74e3f8bfbbc6c5396bfcc11cacc71a387c0104629002020-07-15 8:03:01866 days 10 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60xff071da4e5a446eab5b8084dfbfac1713f91a9c90.07497701 Ether
0x0f9e4449d10747aded13c6d9de5fb054b5ca4cc6ab62c795debf1fd64dcf8072101579752020-05-29 2:27:13913 days 16 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60x4ac145cb8033649c3727bde0b1bfacfc3a3a9a9a0.01870501 Ether
0xf6e35409963df19a5e66ea8116528443bdb46b22b283c500b845a87277a0372999159432020-04-21 12:50:56951 days 6 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60xaa55d1ed5197cbba4d8ef2843cd47feeff91d9dc0.49963403 Ether
0x248daf5002fc6a55350b548720377d962e4278d276488c7e31c2abe7f4b5664893262442020-01-21 17:37:221042 days 1 hr ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60x9b15434c93b64b559ae83faf5e9934257e4c36080.00185506 Ether
0x046ee0ffeb2b5b08eaa295daf8edbd5554117a501c6fb3ce798a5d0b3194ea5b85969502019-09-22 4:46:101163 days 14 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60xc0904276ed2791fcf167d13dbbbcf79456b809480.01296328 Ether
0x1cf8ce7038950a7b6748a743cd601365d8a1fc65554d38cff495ce7585e7fd3284062182019-08-23 11:17:201193 days 7 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60x0dd2f0a8ffc9df2dc36aa3999186126900b907e70.00789519 Ether
0xf6b0f95175e27acc67edca086b6aa1659eb4341bb955ebbd8f52ebf66ca26ac682056342019-07-23 7:40:321224 days 11 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60xdf045a9b7f88b71bef1fe36966efb935d9f9a31f0.0230158 Ether
0x3558d7ac9f274caf5e719c4e32e9926e92911e16ae337cf06599518531d1142180988622019-07-06 16:46:371241 days 2 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60x02f8e43f0a285c8aecb5c7780cda090e85fdb68b0.00973745 Ether
0x7359862c45000bdbfe70cc53add4d114f82f523667b55906f4d7b544fad7e45780709962019-07-02 8:31:271245 days 10 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60xfd56691e78b3e25daff314249bef0216050148e40.04008199 Ether
0x697d0537568d20f4441fb4f22d0b4787ad8a1b3b11be80c40c75ada3dc89dfc079253022019-06-09 14:38:081268 days 4 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60xa6210dfc908b9bea9dc01c3bc1904ee217addfc10.07220345 Ether
0x8c8d0ef18cd001b138e7f4fa975e95c1e4c739cb1badd720672fe5252bba49d979247532019-06-09 12:32:201268 days 6 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60xea41dcc314c9d0bf72044185a9033acfdb8289a40.0651765 Ether
0x7afdd9daeb1041770a917ec181f71c96c4a747128ade645f631c7c2326bb2c9a79199392019-06-08 18:18:341269 days 37 mins ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60xd0d385cc3863b3d1cdfb35b9135de239b4f728f30.00319214 Ether
0x6c15894b1e88a31643b6ea3d46a473f6d9a4970adbcfe5b86209fd092af1bc8c78155442019-05-23 10:54:241285 days 8 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60xea41dcc314c9d0bf72044185a9033acfdb8289a40.0708539 Ether
0xf8ddf80e5d3f7d2b9efce35031f506082feec8f7284656c548f58f72e3eb9a1277057702019-05-06 6:57:121302 days 11 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60x1aa5596270d239b9b38a08ad390f29d24de92cbf1.21926312 Ether
0x3835bd78a0c6ca8763a59ae2dfed1d8c5e6aeb53fc4301655e08c0cdcf1a313676098362019-04-21 8:19:301317 days 10 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60xde0dc6e00fad5efe87b19941423f1025981028b60.06699651 Ether
0xab2dac4dff484202e12aa8a7f935fac057c5aa2a86e14a5907d6d76a8160111875979542019-04-19 11:41:151319 days 7 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60xea41dcc314c9d0bf72044185a9033acfdb8289a40.12356958 Ether
0xc550d39b11be264fb9ec357b99e6cedb2a555a26902c220632cd5b2fac007b8c75587182019-04-13 9:14:411325 days 9 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60xea41dcc314c9d0bf72044185a9033acfdb8289a40.44168997 Ether
0xe042b21962ce581cbe63fcfa7f956364eeec526bef7fbcb38466e3f45898cb0074831802019-04-01 14:46:371337 days 4 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60x120b6529c452fc1d33f6686a1852f8f8cebfa9690.00429267 Ether
0x8a16c9fdcea8f1fdd6a901cfe04775709d1ec9c2bb8387d42ecf21a80b49057574616232019-03-29 5:46:301340 days 13 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60x120b6529c452fc1d33f6686a1852f8f8cebfa9690.02084903 Ether
0x2220600dea73240ab31d3f4926b6a6cd9f7f3c47ca8a6da15ddeca07b383355a74615012019-03-29 5:18:141340 days 13 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60x120b6529c452fc1d33f6686a1852f8f8cebfa9690.00368893 Ether
0x9fad134424c939076f0df3549d0a3d19574492db77e4ae138ca2327d6bf02c3474608592019-03-29 2:47:111340 days 16 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60x120b6529c452fc1d33f6686a1852f8f8cebfa9690.01008238 Ether
0x5429649428c6fdc0f4eeebd755cddc7e46b3d6102412a4461db263c57671a45774569682019-03-28 12:18:121341 days 6 hrs ago 0xcc152ba543a3942a07e488a29702ca1cb40ea7e60x120b6529c452fc1d33f6686a1852f8f8cebfa9690.01482297 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PEX

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-10-08
*/

pragma solidity ^0.4.24;
/**
 * @title Ownable contract - base contract with an owner
 */
contract Ownable {
  
  address public owner;
  address public newOwner;

  event OwnershipTransferred(address indexed _from, address indexed _to);
  
  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() public {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    assert(msg.sender == owner);
    _;
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function transferOwnership(address _newOwner) public onlyOwner {
    assert(_newOwner != address(0));      
    newOwner = _newOwner;
  }

  /**
   * @dev Accept transferOwnership.
   */
  function acceptOwnership() public {
    if (msg.sender == newOwner) {
      emit OwnershipTransferred(owner, newOwner);
      owner = newOwner;
    }
  }
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
interface ERC20I {

  function balanceOf(address _owner) external view returns (uint256);

  function totalSupply() external view returns (uint256);
  function transfer(address _to, uint256 _value) external returns (bool success);
  
  function allowance(address _owner, address _spender) external view returns (uint256);
  function transferFrom(address _from, address _to, uint256 _value) external returns (bool success);
  function approve(address _spender, uint256 _value) external returns (bool success);
  
  event Transfer(address indexed from, address indexed to, uint256 value);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}
/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
contract SafeMath {

    /**
    * @dev Subtracts two numbers, reverts on overflow.
    */
    function safeSub(uint256 x, uint256 y) internal pure returns (uint256) {
        assert(y <= x);
        uint256 z = x - y;
        return z;
    }

    /**
    * @dev Adds two numbers, reverts on overflow.
    */
    function safeAdd(uint256 x, uint256 y) internal pure returns (uint256) {
        uint256 z = x + y;
        assert(z >= x);
        return z;
    }
	
	/**
    * @dev Integer division of two numbers, reverts on division by zero.
    */
    function safeDiv(uint256 x, uint256 y) internal pure returns (uint256) {
        uint256 z = x / y;
        return z;
    }
    
    /**
    * @dev Multiplies two numbers, reverts on overflow.
    */	
    function safeMul(uint256 x, uint256 y) internal pure returns (uint256) {    
        if (x == 0) {
            return 0;
        }
    
        uint256 z = x * y;
        assert(z / x == y);
        return z;
    }

    /**
    * @dev Returns the integer percentage of the number.
    */
    function safePerc(uint256 x, uint256 y) internal pure returns (uint256) {
        if (x == 0) {
            return 0;
        }
        
        uint256 z = x * y;
        assert(z / x == y);    
        z = z / 10000; // percent to hundredths
        return z;
    }

    /**
    * @dev Returns the minimum value of two numbers.
    */	
    function min(uint256 x, uint256 y) internal pure returns (uint256) {
        uint256 z = x <= y ? x : y;
        return z;
    }

    /**
    * @dev Returns the maximum value of two numbers.
    */
    function max(uint256 x, uint256 y) internal pure returns (uint256) {
        uint256 z = x >= y ? x : y;
        return z;
    }
}






/**
 * @title Agent contract - base contract with an agent
 */
contract Agent is Ownable {

  address public defAgent;

  mapping(address => bool) public Agents;
  
  constructor() public {
    defAgent = msg.sender;
    Agents[msg.sender] = true;
  }
  
  modifier onlyAgent() {
    assert(Agents[msg.sender]);
    _;
  }
  
  function updateAgent(address _agent, bool _status) public onlyOwner {
    assert(_agent != address(0));
    Agents[_agent] = _status;
  }  
}


/**
 * @title PlayMarket 2.0 Exchange
 */
contract PEX is SafeMath, Agent {
    address public feeAccount;
    mapping (address => mapping (address => uint)) public tokens; 
    mapping (address => mapping (bytes32 => bool)) public orders;
    mapping (address => mapping (bytes32 => uint)) public orderFills;  
  
    struct whitelistToken {
        bool active;
        uint256 timestamp;
    }
    
    struct Fee {
        uint256 feeMake;
        uint256 feeTake;
    }
    
    mapping (address => whitelistToken) public whitelistTokens;
    mapping (address => uint256) public accountTypes;
    mapping (uint256 => Fee) public feeTypes;
  
    event Deposit(address token, address user, uint amount, uint balance);
    event Withdraw(address token, address user, uint amount, uint balance);
    event Order(address tokenBuy, uint amountBuy, address tokenSell, uint amountSell, uint expires, uint nonce, address user);
    event Cancel(address tokenBuy, uint amountBuy, address tokenSell, uint amountSell, uint expires, uint nonce, address user, uint8 v, bytes32 r, bytes32 s, bytes32 hash);
    event Trade(address tokenBuy, uint amountBuy, address tokenSell, uint amountSell, address user, address recipient, bytes32 hash, uint256 timestamp);
    event WhitelistTokens(address token, bool active, uint256 timestamp);
  
    modifier onlyWhitelistTokens(address token, uint256 timestamp) {
        assert(whitelistTokens[token].active && whitelistTokens[token].timestamp <= timestamp);
        _;
    }
  
    constructor (address feeAccount_, uint feeMake_, uint feeTake_) public {
        feeAccount = feeAccount_;
        feeTypes[0] = Fee(feeMake_, feeTake_);
        whitelistTokens[0] = whitelistToken(true, 1);
        emit WhitelistTokens(0, true, 1);
    }
    
    function setAccountType(address user_, uint256 type_) external onlyAgent {
        accountTypes[user_] = type_;
    }

    function getAccountType(address user_) external view returns(uint256) {
        return accountTypes[user_];
    }
  
    function setFeeType(uint256 type_ , uint256 feeMake_, uint256 feeTake_) external onlyAgent {
        feeTypes[type_] = Fee(feeMake_,feeTake_);
    }
    
    function getFeeMake(uint256 type_ ) external view returns(uint256) {
        return (feeTypes[type_].feeMake);
    }
    
    function getFeeTake(uint256 type_ ) external view returns(uint256) {
        return (feeTypes[type_].feeTake);
    }
    
    function changeFeeAccount(address feeAccount_) external onlyAgent {
        require(feeAccount_ != address(0));
        feeAccount = feeAccount_;
    }
    
    function setWhitelistTokens(address token, bool active, uint256 timestamp) external onlyAgent {
        whitelistTokens[token].active = active;
        whitelistTokens[token].timestamp = timestamp;
        emit WhitelistTokens(token, active, timestamp);
    }
    
    /**
    * deposit ETH
    */
    function() public payable {
        require(msg.value > 0);
        deposit(msg.sender);
    }
  
    /**
    * Make deposit.
    *
    * @param receiver The Ethereum address who make deposit
    *
    */
    function deposit(address receiver) private {
        tokens[0][receiver] = safeAdd(tokens[0][receiver], msg.value);
        emit Deposit(0, receiver, msg.value, tokens[0][receiver]);
    }
  
    /**
    * Withdraw deposit.
    *
    * @param amount Withdraw amount
    *
    */
    function withdraw(uint amount) external {
        require(tokens[0][msg.sender] >= amount);
        tokens[0][msg.sender] = safeSub(tokens[0][msg.sender], amount);
        msg.sender.transfer(amount);
        emit Withdraw(0, msg.sender, amount, tokens[0][msg.sender]);
    }
  
    /**
    * Deposit token.
    *
    * @param token Token address
    * @param amount Deposit amount
    *
    */
    function depositToken(address token, uint amount) external onlyWhitelistTokens(token, block.timestamp) {
        require(token != address(0));
        require(ERC20I(token).transferFrom(msg.sender, this, amount));
        tokens[token][msg.sender] = safeAdd(tokens[token][msg.sender], amount);
        emit Deposit(token, msg.sender, amount, tokens[token][msg.sender]);
    }

    /**
    * tokenFallback ERC223.
    *
    * @param owner owner token
    * @param amount Deposit amount
    * @param data payload  
    *
    */
    function tokenFallback(address owner, uint256 amount, bytes data) external onlyWhitelistTokens(msg.sender, block.timestamp) returns (bool success) {
        require(data.length == 0);
        tokens[msg.sender][owner] = safeAdd(tokens[msg.sender][owner], amount);
        emit Deposit(msg.sender, owner, amount, tokens[msg.sender][owner]);
        return true;
    }
    
    /**
    * Withdraw token.
    *
    * @param token Token address
    * @param amount Withdraw amount
    *
    */
    function withdrawToken(address token, uint amount) external {
        require(token != address(0));
        require(tokens[token][msg.sender] >= amount);
        tokens[token][msg.sender] = safeSub(tokens[token][msg.sender], amount);
        require(ERC20I(token).transfer(msg.sender, amount));
        emit Withdraw(token, msg.sender, amount, tokens[token][msg.sender]);
    }
  
    function balanceOf(address token, address user) external view returns (uint) {
        return tokens[token][user];
    }
  
    function order(address tokenBuy, uint amountBuy, address tokenSell, uint amountSell, uint expires, uint nonce) external {
        bytes32 hash = keccak256(abi.encodePacked(this, tokenBuy, amountBuy, tokenSell, amountSell, expires, nonce, msg.sender));
        orders[msg.sender][hash] = true;
        emit Order(tokenBuy, amountBuy, tokenSell, amountSell, expires, nonce, msg.sender);
    }
  
    function trade(address tokenBuy, uint amountBuy, address tokenSell, uint amountSell, uint expires, uint nonce, address user, uint8 v, bytes32 r, bytes32 s, uint amount) external {
        bytes32 hash = keccak256(abi.encodePacked(this, tokenBuy, amountBuy, tokenSell, amountSell, expires, nonce, user));
        if (!(
            (orders[user][hash] || ecrecover(keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash)),v,r,s) == user) &&
            block.timestamp <= expires &&
            safeAdd(orderFills[user][hash], amount) <= amountBuy
        )) revert();
        tradeBalances(tokenBuy, amountBuy, tokenSell, amountSell, user, amount);
        orderFills[user][hash] = safeAdd(orderFills[user][hash], amount);
        emit Trade(tokenBuy, amount, tokenSell, amountSell * amount / amountBuy, user, msg.sender, hash, block.timestamp);
    }

    function tradeBalances(address tokenBuy, uint amountBuy, address tokenSell, uint amountSell, address user, uint amount) private {
        uint feeMakeXfer = safeMul(amount, feeTypes[accountTypes[user]].feeMake) / (10**18);
        uint feeTakeXfer = safeMul(amount, feeTypes[accountTypes[msg.sender]].feeTake) / (10**18);
        tokens[tokenBuy][msg.sender] = safeSub(tokens[tokenBuy][msg.sender], safeAdd(amount, feeTakeXfer));
        tokens[tokenBuy][user] = safeAdd(tokens[tokenBuy][user], safeSub(amount, feeMakeXfer));
        tokens[tokenBuy][feeAccount] = safeAdd(tokens[tokenBuy][feeAccount], safeAdd(feeMakeXfer, feeTakeXfer));
        tokens[tokenSell][user] = safeSub(tokens[tokenSell][user], safeMul(amountSell, amount) / amountBuy);
        tokens[tokenSell][msg.sender] = safeAdd(tokens[tokenSell][msg.sender], safeMul(amountSell, amount) / amountBuy);
    }
  
    function cancelOrder(address tokenBuy, uint amountBuy, address tokenSell, uint amountSell, uint expires, uint nonce, uint8 v, bytes32 r, bytes32 s) external {
        bytes32 hash = keccak256(abi.encodePacked(this, tokenBuy, amountBuy, tokenSell, amountSell, expires, nonce, msg.sender));
        if (!(orders[msg.sender][hash] || ecrecover(keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash)),v,r,s) == msg.sender)) revert();
        orderFills[msg.sender][hash] = amountBuy;
        emit Cancel(tokenBuy, amountBuy, tokenSell, amountSell, expires, nonce, msg.sender, v, r, s, hash);
    }
  
    function testTrade(address tokenBuy, uint amountBuy, address tokenSell, uint amountSell, uint expires, uint nonce, address user, uint8 v, bytes32 r, bytes32 s, uint amount, address sender) external view returns(bool) {
        if (!(
            tokens[tokenBuy][sender] >= amount &&
            availableVolume(tokenBuy, amountBuy, tokenSell, amountSell, expires, nonce, user, v, r, s) >= amount
        )) return false;
        return true;
    }

    function availableVolume(address tokenBuy, uint amountBuy, address tokenSell, uint amountSell, uint expires, uint nonce, address user, uint8 v, bytes32 r, bytes32 s) public view returns(uint) {
        bytes32 hash = keccak256(abi.encodePacked(this, tokenBuy, amountBuy, tokenSell, amountSell, expires, nonce, user));
        if (!(
            (orders[user][hash] || ecrecover(keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash)),v,r,s) == user) &&
            block.timestamp <= expires
        )) return 0;
        uint available1 = safeSub(amountBuy, orderFills[user][hash]);
        uint available2 = safeMul(tokens[tokenSell][user], amountBuy) / amountSell;
        if (available1<available2) return available1;
        return available2;
    }

    function amountFilled(address tokenBuy, uint amountBuy, address tokenSell, uint amountSell, uint expires, uint nonce, address user) external view returns(uint) {
        bytes32 hash = keccak256(abi.encodePacked(this, tokenBuy, amountBuy, tokenSell, amountSell, expires, nonce, user));
        return orderFills[user][hash];
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"tokenBuy","type":"address"},{"name":"amountBuy","type":"uint256"},{"name":"tokenSell","type":"address"},{"name":"amountSell","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,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenBuy","type":"address"},{"name":"amountBuy","type":"uint256"},{"name":"tokenSell","type":"address"},{"name":"amountSell","type":"uint256"},{"name":"expires","type":"uint256"},{"name":"nonce","type":"uint256"}],"name":"order","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"bytes32"}],"name":"orderFills","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenBuy","type":"address"},{"name":"amountBuy","type":"uint256"},{"name":"tokenSell","type":"address"},{"name":"amountSell","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,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenBuy","type":"address"},{"name":"amountBuy","type":"uint256"},{"name":"tokenSell","type":"address"},{"name":"amountSell","type":"uint256"},{"name":"expires","type":"uint256"},{"name":"nonce","type":"uint256"},{"name":"user","type":"address"}],"name":"amountFilled","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"depositToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"tokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelistTokens","outputs":[{"name":"active","type":"bool"},{"name":"timestamp","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"feeAccount","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenBuy","type":"address"},{"name":"amountBuy","type":"uint256"},{"name":"tokenSell","type":"address"},{"name":"amountSell","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,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"Agents","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"feeAccount_","type":"address"}],"name":"changeFeeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"type_","type":"uint256"}],"name":"getFeeTake","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"defAgent","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"active","type":"bool"},{"name":"timestamp","type":"uint256"}],"name":"setWhitelistTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"user_","type":"address"}],"name":"getAccountType","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"user_","type":"address"},{"name":"type_","type":"uint256"}],"name":"setAccountType","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"bytes32"}],"name":"orders","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"},{"name":"amount","type":"uint256"},{"name":"data","type":"bytes"}],"name":"tokenFallback","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"accountTypes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"type_","type":"uint256"},{"name":"feeMake_","type":"uint256"},{"name":"feeTake_","type":"uint256"}],"name":"setFeeType","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"token","type":"address"},{"name":"user","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"feeTypes","outputs":[{"name":"feeMake","type":"uint256"},{"name":"feeTake","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"type_","type":"uint256"}],"name":"getFeeMake","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_agent","type":"address"},{"name":"_status","type":"bool"}],"name":"updateAgent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenBuy","type":"address"},{"name":"amountBuy","type":"uint256"},{"name":"tokenSell","type":"address"},{"name":"amountSell","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,"stateMutability":"view","type":"function"},{"inputs":[{"name":"feeAccount_","type":"address"},{"name":"feeMake_","type":"uint256"},{"name":"feeTake_","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"balance","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"balance","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenBuy","type":"address"},{"indexed":false,"name":"amountBuy","type":"uint256"},{"indexed":false,"name":"tokenSell","type":"address"},{"indexed":false,"name":"amountSell","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":"tokenBuy","type":"address"},{"indexed":false,"name":"amountBuy","type":"uint256"},{"indexed":false,"name":"tokenSell","type":"address"},{"indexed":false,"name":"amountSell","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"},{"indexed":false,"name":"hash","type":"bytes32"}],"name":"Cancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenBuy","type":"address"},{"indexed":false,"name":"amountBuy","type":"uint256"},{"indexed":false,"name":"tokenSell","type":"address"},{"indexed":false,"name":"amountSell","type":"uint256"},{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"hash","type":"bytes32"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"Trade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"active","type":"bool"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"WhitelistTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

608060405234801561001057600080fd5b5060405160608061216e8339810160408181528251602080850151948301516000805433600160a060020a03199182168117835560028054831682179055825260038452858220805460ff19908116600190811790925560048054909316600160a060020a038816179092558688018752888852848801848152838052600a865297517f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e35596517f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e455855180870187528781528085018881528380526008865290517f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7805490931690151517909155517f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c8558451908152918201859052818401949094529151909392917fda84b30e6a263a1d189ff742a0df74db779efa3d91ce89e02bf9b9eab1402aa9916060918190039190910190a1505050611fd48061019a6000396000f3006080604052600436106101955763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630a19b14a81146101ad5780630b927666146101fc57806319774d4314610230578063278b8c0e146102665780632d804ca2146102a75780632e1a7d4d146102e4578063338b5dea146102fc578063508493bc146103205780635fb2386e1461034757806365e17c9d146103835780636c86888b146103b45780636e84f8701461042257806371ffcb161461044357806379ba5097146104645780638da5cb5b146104795780638dbbbe101461048e5780639e281a98146104a65780639e5fd0bb146104ca578063a53cb8ca146104df578063ae20314614610508578063b311db2f14610529578063bb5f46291461054d578063c0ee0b8a14610571578063d4ee1d90146105a2578063de32b680146105b7578063e7fcde9b146105d8578063f2fde38b146105f6578063f7888aec14610617578063f7ddab951461063e578063fa58f5101461066f578063faad6eb514610687578063fb6e155f146106ad575b600034116101a257600080fd5b6101ab336106f8565b005b3480156101b957600080fd5b506101ab600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e4351661010435610124356101443561079a565b34801561020857600080fd5b506101ab600160a060020a03600435811690602435906044351660643560843560a435610b59565b34801561023c57600080fd5b50610254600160a060020a0360043516602435610cb6565b60408051918252519081900360200190f35b34801561027257600080fd5b506101ab600160a060020a03600435811690602435906044351660643560843560a43560ff60c4351660e43561010435610cd3565b3480156102b357600080fd5b50610254600160a060020a0360043581169060243590604435811690606435906084359060a4359060c43516610f8b565b3480156102f057600080fd5b506101ab600435611089565b34801561030857600080fd5b506101ab600160a060020a036004351660243561118b565b34801561032c57600080fd5b50610254600160a060020a0360043581169060243516611337565b34801561035357600080fd5b50610368600160a060020a0360043516611354565b60408051921515835260208301919091528051918290030190f35b34801561038f57600080fd5b50610398611373565b60408051600160a060020a039092168252519081900360200190f35b3480156103c057600080fd5b5061040e600160a060020a0360043581169060243590604435811690606435906084359060a4359060c43581169060ff60e43516906101043590610124359061014435906101643516611382565b604080519115158252519081900360200190f35b34801561042e57600080fd5b5061040e600160a060020a03600435166113ec565b34801561044f57600080fd5b506101ab600160a060020a0360043516611401565b34801561047057600080fd5b506101ab611460565b34801561048557600080fd5b506103986114e2565b34801561049a57600080fd5b506102546004356114f1565b3480156104b257600080fd5b506101ab600160a060020a0360043516602435611506565b3480156104d657600080fd5b506103986116a1565b3480156104eb57600080fd5b506101ab600160a060020a036004351660243515156044356116b0565b34801561051457600080fd5b50610254600160a060020a036004351661173d565b34801561053557600080fd5b506101ab600160a060020a0360043516602435611758565b34801561055957600080fd5b5061040e600160a060020a036004351660243561178f565b34801561057d57600080fd5b5061040e60048035600160a060020a03169060248035916044359182019101356117af565b3480156105ae57600080fd5b506103986118ab565b3480156105c357600080fd5b50610254600160a060020a03600435166118ba565b3480156105e457600080fd5b506101ab6004356024356044356118cc565b34801561060257600080fd5b506101ab600160a060020a0360043516611915565b34801561062357600080fd5b50610254600160a060020a036004358116906024351661196a565b34801561064a57600080fd5b50610656600435611995565b6040805192835260208301919091528051918290030190f35b34801561067b57600080fd5b506102546004356119ae565b34801561069357600080fd5b506101ab600160a060020a036004351660243515156119c0565b3480156106b957600080fd5b50610254600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e435166101043561012435611a11565b600160a060020a0381166000908152600080516020611f8983398151915260205260409020546107289034611d04565b600160a060020a0382166000818152600080516020611f898339815191526020908152604080832085905580519283529082019290925234818301526060810192909252517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a150565b6000308c8c8c8c8c8c8c6040516020018089600160a060020a0316600160a060020a03166c0100000000000000000000000002815260140188600160a060020a0316600160a060020a03166c0100000000000000000000000002815260140187815260200186600160a060020a0316600160a060020a03166c0100000000000000000000000002815260140185815260200184815260200183815260200182600160a060020a0316600160a060020a03166c01000000000000000000000000028152601401985050505050505050506040516020818303038152906040526040518082805190602001908083835b602083106108a75780518252601f199092019160209182019101610888565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120600160a060020a038c16600090815260068352848120828252909252929020549194505060ff169150819050610a1c575085600160a060020a031660018260405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b6020831061098b5780518252601f19909201916020918201910161096c565b51815160209384036101000a60001901801990921691161790526040805192909401829003822060008084528383018087529190915260ff8e1683860152606083018d9052608083018c9052935160a08084019750919550601f1981019492819003909101925090865af1158015610a07573d6000803e3d6000fd5b50505060206040510351600160a060020a0316145b8015610a285750874211155b8015610a625750600160a060020a03861660009081526007602090815260408083208484529091529020548b90610a5f9084611d04565b11155b1515610a6d57600080fd5b610a7b8c8c8c8c8a87611d1e565b600160a060020a0386166000908152600760209081526040808320848452909152902054610aa99083611d04565b600160a060020a03871660009081526007602090815260408083208584529091529020557f9af54f3727fc9dd2ab4bb1beceebee0465565940fc9121ae2e87892df9b99f1a8c838c8e8d8302811515610afe57fe5b60408051600160a060020a03968716815260208101959095529285168484015204606083015291891660808201523360a082015260c081018490524260e08201529051908190036101000190a1505050505050505050505050565b604080516c01000000000000000000000000308102602080840191909152600160a060020a03808b1683026034850152604884018a9052881682026068840152607c8301879052609c830186905260bc8301859052339190910260dc830152825160d081840301815260f0909201928390528151600093918291908401908083835b60208310610bfa5780518252601f199092019160209182019101610bdb565b51815160001960209485036101000a0190811690199190911617905260408051949092018490038420336000818152600684528481208382528452849020805460ff19166001179055600160a060020a038f811687529286018e9052918c1685840152606085018b9052608085018a905260a0850189905260c085019190915290519095507f3f7f2eda73683c21a15f9435af1028c93185b5f1fa38270762dc32be606b3e8594509182900360e001925050a150505050505050565b600760209081526000928352604080842090915290825290205481565b604080516c01000000000000000000000000308102602080840191909152600160a060020a03808e1683026034850152604884018d90528b1682026068840152607c83018a9052609c830189905260bc8301889052339190910260dc830152825160d081840301815260f0909201928390528151600093918291908401908083835b60208310610d745780518252601f199092019160209182019101610d55565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912033600090815260068352848120828252909252929020549194505060ff169150819050610ed05750604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c80830185905283518084039091018152605c909201928390528151339360019392909182918401908083835b60208310610e3f5780518252601f199092019160209182019101610e20565b51815160209384036101000a60001901801990921691161790526040805192909401829003822060008084528383018087529190915260ff8d1683860152606083018c9052608083018b9052935160a08084019750919550601f1981019492819003909101925090865af1158015610ebb573d6000803e3d6000fd5b50505060206040510351600160a060020a0316145b1515610edb57600080fd5b3360008181526007602090815260408083208584528252918290208c90558151600160a060020a038e811682529181018d9052908b1681830152606081018a90526080810189905260a0810188905260c081019290925260ff861660e0830152610100820185905261012082018490526101408201839052517fc492b04027c671b0548e5bd4639174bf1d425fe5f94566809f148b0fc6cda204918190036101600190a150505050505050505050565b604080516c01000000000000000000000000308102602080840191909152600160a060020a03808c1683026034850152604884018b9052808a1683026068850152607c8401899052609c840188905260bc8401879052851690910260dc830152825160d081840301815260f0909201928390528151600093849392909182918401908083835b602083106110305780518252601f199092019160209182019101611011565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120600160a060020a039890981660009081526007825283812098815297905250909420549a9950505050505050505050565b336000908152600080516020611f8983398151915260205260409020548111156110b257600080fd5b336000908152600080516020611f8983398151915260205260409020546110d99082611f49565b336000818152600080516020611f898339815191526020526040808220939093559151909183156108fc02918491818181858888f19350505050158015611124573d6000803e3d6000fd5b50336000818152600080516020611f898339815191526020908152604080832054815193845291830193909352818301849052606082015290517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a150565b600160a060020a0382166000908152600860205260409020548290429060ff1680156111d25750600160a060020a0382166000908152600860205260409020600101548110155b15156111da57fe5b600160a060020a03841615156111ef57600080fd5b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051600160a060020a038616916323b872dd9160648083019260209291908290030181600087803b15801561125d57600080fd5b505af1158015611271573d6000803e3d6000fd5b505050506040513d602081101561128757600080fd5b5051151561129457600080fd5b600160a060020a03841660009081526005602090815260408083203384529091529020546112c29084611d04565b600160a060020a03851660008181526005602090815260408083203380855290835292819020859055805193845290830191909152818101869052606082019290925290517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a150505050565b600560209081526000928352604080842090915290825290205481565b6008602052600090815260409020805460019091015460ff9091169082565b600454600160a060020a031681565b600160a060020a03808d16600090815260056020908152604080832093851683529290529081205483118015906113ca5750826113c78e8e8e8e8e8e8e8e8e8e611a11565b10155b15156113d8575060006113dc565b5060015b9c9b505050505050505050505050565b60036020526000908152604090205460ff1681565b3360009081526003602052604090205460ff16151561141c57fe5b600160a060020a038116151561143157600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a03163314156114e05760015460008054604051600160a060020a0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b565b600054600160a060020a031681565b6000908152600a602052604090206001015490565b600160a060020a038216151561151b57600080fd5b600160a060020a038216600090815260056020908152604080832033845290915290205481111561154b57600080fd5b600160a060020a03821660009081526005602090815260408083203384529091529020546115799082611f49565b600160a060020a0383166000818152600560209081526040808320338085529083528184209590955580517fa9059cbb00000000000000000000000000000000000000000000000000000000815260048101959095526024850186905251929363a9059cbb9360448083019491928390030190829087803b1580156115fd57600080fd5b505af1158015611611573d6000803e3d6000fd5b505050506040513d602081101561162757600080fd5b5051151561163457600080fd5b600160a060020a03821660008181526005602090815260408083203380855290835292819020548151948552918401929092528282018490526060830152517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a15050565b600254600160a060020a031681565b3360009081526003602052604090205460ff1615156116cb57fe5b600160a060020a038316600081815260086020908152604091829020805486151560ff19909116811782556001909101859055825193845290830152818101839052517fda84b30e6a263a1d189ff742a0df74db779efa3d91ce89e02bf9b9eab1402aa99181900360600190a1505050565b600160a060020a031660009081526009602052604090205490565b3360009081526003602052604090205460ff16151561177357fe5b600160a060020a03909116600090815260096020526040902055565b600660209081526000928352604080842090915290825290205460ff1681565b33600081815260086020526040812054909190429060ff1680156117ee5750600160a060020a0382166000908152600860205260409020600101548110155b15156117f657fe5b831561180157600080fd5b336000908152600560209081526040808320600160a060020a038b16845290915290205461182f9087611d04565b336000818152600560209081526040808320600160a060020a038d1680855290835292819020859055805193845290830191909152818101899052606082019290925290517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a15060019695505050505050565b600154600160a060020a031681565b60096020526000908152604090205481565b3360009081526003602052604090205460ff1615156118e757fe5b60408051808201825292835260208084019283526000948552600a9052909220905181559051600190910155565b600054600160a060020a0316331461192957fe5b600160a060020a038116151561193b57fe5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b600a602052600090815260409020805460019091015482565b6000908152600a602052604090205490565b600054600160a060020a031633146119d457fe5b600160a060020a03821615156119e657fe5b600160a060020a03919091166000908152600360205260409020805460ff1916911515919091179055565b604080516c01000000000000000000000000308102602080840191909152600160a060020a03808f1683026034850152604884018e9052808d1683026068850152607c84018c9052609c84018b905260bc84018a9052881690910260dc830152825160d081840301815260f090920192839052815160009384938493849391929182918401908083835b60208310611aba5780518252601f199092019160209182019101611a9b565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120600160a060020a038e16600090815260068352848120828252909252929020549196505060ff169150819050611c54575087600160a060020a031660018460405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310611b9e5780518252601f199092019160209182019101611b7f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020898989604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015611c3f573d6000803e3d6000fd5b50505060206040510351600160a060020a0316145b8015611c605750894211155b1515611c6f5760009350611cf3565b600160a060020a0388166000908152600760209081526040808320868452909152902054611c9e908e90611f49565b600160a060020a03808e166000908152600560209081526040808320938d16835292905220549092508b90611cd3908f611f5d565b811515611cdc57fe5b04905080821015611cef57819350611cf3565b8093505b5050509a9950505050505050505050565b600082820183811015611d1357fe5b8091505b5092915050565b600160a060020a0382166000908152600960209081526040808320548352600a9091528120548190670de0b6b3a764000090611d5b908590611f5d565b811515611d6457fe5b336000908152600960209081526040808320548352600a9091529020600101549190049250670de0b6b3a764000090611d9e908590611f5d565b811515611da757fe5b600160a060020a038a1660009081526005602090815260408083203384529091529020549190049150611de390611dde8584611d04565b611f49565b600160a060020a0389811660009081526005602090815260408083203384529091528082209390935590861681522054611e2690611e218585611f49565b611d04565b600160a060020a03898116600090815260056020908152604080832089851684529091528082209390935560045490911681522054611e6990611e218484611d04565b600160a060020a03808a166000908152600560208181526040808420600454861685528252808420959095558a841683529081528382209288168252919091522054611ec99088611eba8887611f5d565b811515611ec357fe5b04611f49565b600160a060020a038781166000908152600560209081526040808320938916835292905281812092909255338252902054611f189088611f098887611f5d565b811515611f1257fe5b04611d04565b600160a060020a03909616600090815260056020908152604080832033845290915290209590955550505050505050565b60008083831115611f5657fe5b5050900390565b600080831515611f705760009150611d17565b50828202828482811515611f8057fe5b0414611d1357fe0005b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bca165627a7a723058208f2c76b44b195ee0ebf2515af8b912b24f5c81b90605de6bf4c99b64a743735800290000000000000000000000005806ddcc0e2614376832a936382f28b705d3b4d900000000000000000000000000000000000000000000000000038d7ea4c6800000000000000000000000000000000000000000000000000000071afd498d0000

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

0000000000000000000000005806ddcc0e2614376832a936382f28b705d3b4d900000000000000000000000000000000000000000000000000038d7ea4c6800000000000000000000000000000000000000000000000000000071afd498d0000

-----Decoded View---------------
Arg [0] : feeAccount_ (address): 0x5806dDCC0E2614376832a936382F28B705D3b4d9
Arg [1] : feeMake_ (uint256): 1000000000000000
Arg [2] : feeTake_ (uint256): 2000000000000000

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000005806ddcc0e2614376832a936382f28b705d3b4d9
Arg [1] : 00000000000000000000000000000000000000000000000000038d7ea4c68000
Arg [2] : 00000000000000000000000000000000000000000000000000071afd498d0000


Swarm Source

bzzr://8f2c76b44b195ee0ebf2515af8b912b24f5c81b90605de6bf4c99b64a7437358
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.

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