Contract 0xEc3D7968b0D3FFF0A074668E08EB56c5e6d38B21

 
Txn Hash
Method
Block
From
To
Value
0x3c28265c2e35435ce4d16c5652a060a48a50e4ba4be53a577c944dc810e68c2dWithdraw Token90358072019-12-02 3:05:53990 days 20 hrs ago0xe498a89ac9efbaa314526b023dbe52a0b5fdb609 IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍00052911
0x5588a4746e25e3961e0965b90718ac64de2c87b737b088515a18a26d5dfbf2feWithdraw Token90358032019-12-02 3:05:10990 days 20 hrs ago0xe498a89ac9efbaa314526b023dbe52a0b5fdb609 IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍000729716
0x2cbec03d6c72972e2a1d44377d61467518e9590a720f39d3dc040e9fc93eb5b5Withdraw Token90357972019-12-02 3:03:36990 days 20 hrs ago0xe498a89ac9efbaa314526b023dbe52a0b5fdb609 IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍000486654
0xf4a4369c5cc545216820bfd86611c064b5fdcf96105ffe7513a73c3d61fad847Withdraw Token90357252019-12-02 2:43:54990 days 21 hrs ago0x996ecf38d51403afa173ab50ea0123c0364fe7af IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍000180343.‍75
0x9816cf71ac21f178bf4667964f0d33f989abff87614e759bfd67354b7ef4cfcfWithdraw Token90357222019-12-02 2:43:35990 days 21 hrs ago0x996ecf38d51403afa173ab50ea0123c0364fe7af IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍000283893.‍75
0x0c0ebbc31e625a525fbf51b8a0edcb430a7f4afc39ee45663426256b8f5c060aWithdraw Token90357182019-12-02 2:42:50990 days 21 hrs ago0x996ecf38d51403afa173ab50ea0123c0364fe7af IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍00034033.‍75
0x023d3a18886e7d6306919b7d002dceb703b0b6e93731e740171243561bff5f5eWithdraw88519282019-11-01 9:39:541021 days 14 hrs ago0xde0dc6e00fad5efe87b19941423f1025981028b6 IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍000067683
0xc003ce9b304e73b3666ad8a0e3cd8531230bd745ce02303683b83bc3486467a9Withdraw Token88518752019-11-01 9:25:421021 days 14 hrs ago0xd98031fffcb0d7ac78cf9e6d5e562da8f27a7846 IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍000066182
0x8ca6f79b0b0c524b788a504e43ea608a23e93b093b61ddd940ef25057cf9976eTrade85593192019-09-16 8:00:351067 days 15 hrs ago0xb6130d2f8d0139a7d381786203dbb3a33b18cf88 IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍0025752721
0x7a59b12d35f9b2e47070a89cf3b572f124c4f779d1c72c09c2f6216fe70abe60Deposit Token85592962019-09-16 7:55:131067 days 15 hrs ago0x4ac145cb8033649c3727bde0b1bfacfc3a3a9a9a IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍0011284921
0x5d47c1636ea48a3ef9c15bd8c4bcef13ca201c40904eb8e5dfe5b18308dcd7d1Withdraw84828552019-09-04 9:28:431079 days 14 hrs ago0xe498a89ac9efbaa314526b023dbe52a0b5fdb609 IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍000249611
0x9b9cdf81e984d1e5b304cbc706ed1fa7badfb7eea558911c601d83af6b1aa433Withdraw84828502019-09-04 9:27:401079 days 14 hrs ago0x996ecf38d51403afa173ab50ea0123c0364fe7af IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍000249611
0x849b242fad62bd4e0ab00101faee8894acaefeb1990526694cd3542cabd4711eTrade84267142019-08-26 15:40:321088 days 8 hrs ago0x996ecf38d51403afa173ab50ea0123c0364fe7af IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍000860999.‍25
0x4a8472b990e3bf54667b16dcb59af249cfd6ac5d440e6db5d3fe920be4f7b5deTrade84267072019-08-26 15:37:591088 days 8 hrs ago0xe498a89ac9efbaa314526b023dbe52a0b5fdb609 IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍000744648
0x6c3404ad2b77f015859cdf63cc67c8ebbf2b7888ba5f67bcb05da7d3d95a1eb4Trade84267002019-08-26 15:35:181088 days 8 hrs ago0x996ecf38d51403afa173ab50ea0123c0364fe7af IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍000744128
0x704056b2e5d3c0fab0fb40b0ee90787cc2d8161a6264ff0071ece41b2a29c66dTrade84262372019-08-26 13:54:491088 days 9 hrs ago0x996ecf38d51403afa173ab50ea0123c0364fe7af IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍0010217611
0xe4ff46f9f1a98d33d5cc3bb68ffa1069fe28ee3746dbdff8e713dff0a49bb484Trade84262342019-08-26 13:53:311088 days 9 hrs ago0x996ecf38d51403afa173ab50ea0123c0364fe7af IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍0010217611
0xfcac6e3358a478c7e2946df8f8889172c2b790ac65a0640f4d0b84c07a314063Trade84262302019-08-26 13:52:391088 days 9 hrs ago0xe498a89ac9efbaa314526b023dbe52a0b5fdb609 IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍0010231711
0xd849de888b04324419305411e4665d1f8f8dd5f396c931484e472dbd45acb186Trade84139192019-08-24 15:56:471090 days 7 hrs ago0xe498a89ac9efbaa314526b023dbe52a0b5fdb609 IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍000186032
0xd6c0a9f7990392d3317e4881b4479d9be1b4ad840de4dc04a54a6d5b25cc386cTrade84139112019-08-24 15:55:121090 days 7 hrs ago0x996ecf38d51403afa173ab50ea0123c0364fe7af IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍000232542.‍5
0x478fd1673d5a543e80f5d0e859c1aa7f1efcd1fc6aa6dbeea50e76681601099bTrade84139082019-08-24 15:54:211090 days 7 hrs ago0xe498a89ac9efbaa314526b023dbe52a0b5fdb609 IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍000232382.‍5
0xdf8684105c1dba5276b08bb9fe033aa64adf0033bdb3b140ecfbb80824355813Trade84138912019-08-24 15:51:041090 days 8 hrs ago0xe498a89ac9efbaa314526b023dbe52a0b5fdb609 IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍000371554
0x1dc9b83e3224982d3129dbd2bb4f09567dc15fabc5e7fa2e7198497819706b0bTrade84138892019-08-24 15:50:511090 days 8 hrs ago0x996ecf38d51403afa173ab50ea0123c0364fe7af IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍000304113.‍26953125
0x91ef43c999987228d747d76a0c389861389e39a2a4112f2d0ca607c561035497Trade84138822019-08-24 15:47:391090 days 8 hrs ago0xe498a89ac9efbaa314526b023dbe52a0b5fdb609 IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍0002422.‍6
0x04668f5378adff9ba8ca2e5f6bbd5be2939c56512d557b8a24fcf112e654e6aeTrade84138782019-08-24 15:46:001090 days 8 hrs ago0xe498a89ac9efbaa314526b023dbe52a0b5fdb609 IN  0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210 Ether0.‍000277893
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x023d3a18886e7d6306919b7d002dceb703b0b6e93731e740171243561bff5f5e88519282019-11-01 9:39:541021 days 14 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210xde0dc6e00fad5efe87b19941423f1025981028b60.‍01786823 Ether
0x5d47c1636ea48a3ef9c15bd8c4bcef13ca201c40904eb8e5dfe5b18308dcd7d184828552019-09-04 9:28:431079 days 14 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210xe498a89ac9efbaa314526b023dbe52a0b5fdb6090.‍41876991 Ether
0x9b9cdf81e984d1e5b304cbc706ed1fa7badfb7eea558911c601d83af6b1aa43384828502019-09-04 9:27:401079 days 14 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210x996ecf38d51403afa173ab50ea0123c0364fe7af0.‍79823851 Ether
0x75976aa27fe594a9e492f003cc7381c578f8ccc8dd4736575e75c715b29054da83610332019-08-16 10:46:591098 days 13 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210x996ecf38d51403afa173ab50ea0123c0364fe7af0.‍03 Ether
0xec00d3bf9f8bb4474c07b19fb3502bf37bb24412a8ddb8b3d3238838998ea6c581748562019-07-18 13:01:331127 days 10 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210x996ecf38d51403afa173ab50ea0123c0364fe7af0.‍03 Ether
0xb07b915f806418b36b882ff0a823ec3122bab13da55601fdc68eef1a0fbcc4fd81748562019-07-18 13:01:331127 days 10 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210xe498a89ac9efbaa314526b023dbe52a0b5fdb6090.‍03 Ether
0x5d56eaf4d8e9f0bab746889ca410cb433c180482dae0cedc416c653b3361385681369972019-07-12 15:11:231133 days 8 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210xea41dcc314c9d0bf72044185a9033acfdb8289a40.‍47373845 Ether
0x8603fd7ac4c8993fb779bcaec8957d04e33a7ee1eb1aa53d0ec1d9719e5aced381235642019-07-10 12:44:171135 days 11 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210x996ecf38d51403afa173ab50ea0123c0364fe7af0.‍03 Ether
0xdc27661d8f125c0460d3c1aafd396ca9ff3c69c6bee23372a8b0b7e81d3d12ef80975422019-07-06 11:52:591139 days 11 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210xe498a89ac9efbaa314526b023dbe52a0b5fdb6090.‍03 Ether
0x2ead915f54e645327499155ff1f93bbdf6c908de81da79a58c9178c9ba1eb06b80350262019-06-26 17:47:501149 days 6 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210x996ecf38d51403afa173ab50ea0123c0364fe7af0.‍03 Ether
0xafa11ea06c5e51e5fa6f56f451397eba9c9f8ff47dd07f657496541f648a366680284952019-06-25 17:29:181150 days 6 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210xe498a89ac9efbaa314526b023dbe52a0b5fdb6090.‍03 Ether
0xbfe006c60da9d753ca6835f06cfe9db2dfd723ae264a90145b6215b5ccd0223d79817232019-06-18 10:18:181157 days 13 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210xe498a89ac9efbaa314526b023dbe52a0b5fdb6090.‍03 Ether
0x0bd5eb49d4720134e56ebcfcdff79ba1f4f4f9804f252ac940bdd1b82592bb9679817212019-06-18 10:17:381157 days 13 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210x996ecf38d51403afa173ab50ea0123c0364fe7af0.‍03 Ether
0x0f7b28de85b5ccc8f08420bf7522039d688a281117333427793fae523bf7fda379502852019-06-13 12:12:001162 days 11 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210x996ecf38d51403afa173ab50ea0123c0364fe7af0.‍02 Ether
0x6d61a0b2ca7c60cc504d5a398781e7541a4c2fd35af2131ebc1d7d7c93334a1a79300232019-06-10 8:07:271165 days 15 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210xe498a89ac9efbaa314526b023dbe52a0b5fdb6090.‍02 Ether
0x0707c6f5bacb24236875d3a699501efa1383ea613da25d716af9f518b44fafe078432862019-05-27 18:31:391179 days 5 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210x996ecf38d51403afa173ab50ea0123c0364fe7af0.‍03 Ether
0x297ea14115ab1057ca9ae183ddcbc4acde09ad59afd77d036b0546efbd0aa47378160962019-05-23 12:52:541183 days 10 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210xe498a89ac9efbaa314526b023dbe52a0b5fdb6090.‍02 Ether
0x6558c7a829bfa2555895d137eb0e8d641d3cbd8d264241280f9377364780a54c78025102019-05-21 9:42:551185 days 14 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210xd98031fffcb0d7ac78cf9e6d5e562da8f27a78460.‍01313455 Ether
0xd5c8e4ca844527aeafc305885f6edc0902d02117fab4e8eeb77bed90e7036f5677796522019-05-17 19:43:321189 days 4 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210x996ecf38d51403afa173ab50ea0123c0364fe7af0.‍02 Ether
0xbc393142a0fa56b0aeb6584ebc5af746f894d1fd771eeb81190b598c576f510477796402019-05-17 19:41:101189 days 4 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210xe498a89ac9efbaa314526b023dbe52a0b5fdb6090.‍02 Ether
0xf24534d2678c304d1d0dd5db97191d9e374d7870c5ad027516d5da4e0bc99a1f76894042019-05-03 17:40:301203 days 6 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210x996ecf38d51403afa173ab50ea0123c0364fe7af0.‍02 Ether
0x6f0c8e10dc401d102cbec76937fbfc9ab3ebafc0ca795c29d90cd220a7cb552076378422019-04-25 17:11:051211 days 6 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210xe498a89ac9efbaa314526b023dbe52a0b5fdb6090.‍03 Ether
0xcc6a2803cd221bc83cc9c1f6b61524c85be67e65f4b4a16ca97ca4ec7ff6eb9b75419582019-04-10 18:29:421226 days 5 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210x996ecf38d51403afa173ab50ea0123c0364fe7af0.‍02 Ether
0xe94737ecd7b0cb325aabeec5c6ab3c5e73f1a6a58c0a9856837cd142c66e7d8d75319172019-04-09 4:56:581227 days 18 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210xd98031fffcb0d7ac78cf9e6d5e562da8f27a78460.‍24065888 Ether
0xa2d64c65008076d928862794fcb7f4196b5866d8af5d869518a538fbe3cdbe6f75025622019-04-04 15:43:401232 days 8 hrs ago 0xec3d7968b0d3fff0a074668e08eb56c5e6d38b210xe498a89ac9efbaa314526b023dbe52a0b5fdb6090.‍02 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DAppDEX

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-02-21
*/

pragma solidity ^0.4.25;

/**
 * @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 SDADI - Interface
 */
interface SDADI  {	
  function AddToken(address token) external;
  function DelToken(address token) external;
}


/**
 * @title DAppDEXI - Interface 
 */
interface DAppDEXI {

    function updateAgent(address _agent, bool _status) external;

    function setAccountType(address user_, uint256 type_) external;
    function getAccountType(address user_) external view returns(uint256);
    function setFeeType(uint256 type_ , uint256 feeMake_, uint256 feeTake_) external;
    function getFeeMake(uint256 type_ ) external view returns(uint256);
    function getFeeTake(uint256 type_ ) external view returns(uint256);
    function changeFeeAccount(address feeAccount_) external;
    
    function setWhitelistTokens(address token) external;
    function setWhitelistTokens(address token, bool active, uint256 timestamp, bytes32 typeERC) external;
    function depositToken(address token, uint amount) external;
    function tokenFallback(address owner, uint256 amount, bytes data) external returns (bool success);

    function withdraw(uint amount) external;
    function withdrawToken(address token, uint amount) external;

    function balanceOf(address token, address user) external view returns (uint);

    function order(address tokenBuy, uint amountBuy, address tokenSell, uint amountSell, uint expires, uint nonce) external;
    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;    
    function cancelOrder(address tokenBuy, uint amountBuy, address tokenSell, uint amountSell, uint expires, uint nonce, uint8 v, bytes32 r, bytes32 s) external;
    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);
    function availableVolume(address tokenBuy, uint amountBuy, address tokenSell, uint amountSell, uint expires, uint nonce, address user, uint8 v, bytes32 r, bytes32 s) external view returns(uint);
    function amountFilled(address tokenBuy, uint amountBuy, address tokenSell, uint amountSell, uint expires, uint nonce, address user) external view returns(uint);
}


/**
 * @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 {    
    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 DAppsDEX - Decentralized exchange for DApps
 */
contract DAppDEX is DAppDEXI, 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;

    uint public feeListing = 100; // 1.00%

    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 PayFeeListing(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, bytes32 typeERC);
  
    constructor (address feeAccount_) public {
        feeAccount = feeAccount_;
        feeTypes[0] = Fee(1000000000000000, 2000000000000000);
        whitelistTokens[0] = whitelistToken(true, 1);
        emit WhitelistTokens(0, true, 1, 0x0);
    }

    function setFeeListing(uint _feeListing) external onlyAgent {
        feeListing = _feeListing;
    }
    
    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) external onlyOwner {
        whitelistTokens[token].active = true;
        whitelistTokens[token].timestamp = now;
        SDADI(feeAccount).AddToken(token);
        emit WhitelistTokens(token, true, now, "ERC20");
    }    
    
    function setWhitelistTokens(address token, bool active, uint256 timestamp, bytes32 typeERC) external onlyAgent {
        if (active) {
            uint fee = safePerc(ERC20I(token).totalSupply(), feeListing);
            require(fee > 0);
            require(tokens[token][feeAccount] >= fee);
            SDADI(feeAccount).AddToken(token);
        } else {
            SDADI(feeAccount).DelToken(token);
        }
        whitelistTokens[token].active = active;
        whitelistTokens[token].timestamp = timestamp;
        emit WhitelistTokens(token, active, timestamp, typeERC);
    }
    
    /**
    * 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]);
    }
  
    /**
    * Deposit token.
    *
    * @param token Token address
    * @param amount Deposit amount
    *
    */
    function depositToken(address token, uint amount) external {
        require(token != address(0));
        if (whitelistTokens[token].active) {
            require(whitelistTokens[token].timestamp <= now);
            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]);
        } else {
            require(ERC20I(token).transferFrom(msg.sender, this, amount));
            tokens[token][feeAccount] = safeAdd(tokens[token][feeAccount], amount);
            emit PayFeeListing(token, msg.sender, amount, tokens[msg.sender][feeAccount]);
        }
        
    }

    /**
    * tokenFallback ERC223.
    *
    * @param owner owner token
    * @param amount Deposit amount
    * @param data payload  
    *
    */
    function tokenFallback(address owner, uint256 amount, bytes data) external returns (bool success) {      

        if (data.length == 0) {
            assert(whitelistTokens[msg.sender].active && whitelistTokens[msg.sender].timestamp <= now);            
            tokens[msg.sender][owner] = safeAdd(tokens[msg.sender][owner], amount);
            emit Deposit(msg.sender, owner, amount, tokens[msg.sender][owner]);
            return true;
        } else {
            tokens[msg.sender][feeAccount] = safeAdd(tokens[msg.sender][feeAccount], amount);
            emit PayFeeListing(msg.sender, owner, amount, tokens[msg.sender][feeAccount]);
            return true;
        }
    }

    /**
    * 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]);
    }  
    
    /**
    * 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":true,"inputs":[],"name":"feeListing","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":"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":false,"inputs":[{"name":"token","type":"address"},{"name":"active","type":"bool"},{"name":"timestamp","type":"uint256"},{"name":"typeERC","type":"bytes32"}],"name":"setWhitelistTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","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":false,"inputs":[{"name":"_feeListing","type":"uint256"}],"name":"setFeeListing","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":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":false,"inputs":[{"name":"token","type":"address"}],"name":"setWhitelistTokens","outputs":[],"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"}],"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":"PayFeeListing","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"},{"indexed":false,"name":"typeERC","type":"bytes32"}],"name":"WhitelistTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

6080604052606460085534801561001557600080fd5b5060405160208061275183398101604081815291516000805433600160a060020a031991821681178355825260036020908152858320805460ff19908116600190811790925560048054909416600160a060020a03871617909355868601875266038d7ea4c68000865266071afd498d0000828701908152848052600b835295517fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f765594517fdf7de25b7f1fd6d0b5205f0e18f1f35bd7b8d84cce336588d184533ce43a6f7755855180870187528581528082018681528480526009835290517fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b80549094169015151790925590517fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6c55845182815290810184905280850193909352606083015291517fd84efa85ce21ebc48f44b73043ac7b09daa8c745f674422b78381404cb4ab426916080908290030190a1506125b78061019a6000396000f3006080604052600436106101b65763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663030111c881146101ce5780630a19b14a146101f55780630b9276661461024457806319774d4314610278578063278b8c0e1461029c5780632d804ca2146102dd5780632e1a7d4d1461031a578063338b5dea14610332578063508493bc146103565780635b470a251461037d5780635fb2386e146103a957806365e17c9d146103e55780636c86888b146104165780636e84f8701461048457806371ffcb16146104a557806379ba5097146104c6578063853d5465146104db5780638da5cb5b146104f35780638dbbbe10146105085780639e281a98146105205780639e5fd0bb14610544578063ae20314614610559578063b311db2f1461057a578063bb5f46291461059e578063c0ee0b8a146105c2578063c84668cb146105f3578063d4ee1d9014610614578063de32b68014610629578063e7fcde9b1461064a578063f2fde38b14610668578063f7888aec14610689578063f7ddab95146106b0578063fa58f510146106e1578063faad6eb5146106f9578063fb6e155f1461071f575b600034116101c357600080fd5b6101cc3361076a565b005b3480156101da57600080fd5b506101e361080c565b60408051918252519081900360200190f35b34801561020157600080fd5b506101cc600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e43516610104356101243561014435610812565b34801561025057600080fd5b506101cc600160a060020a03600435811690602435906044351660643560843560a435610bd1565b34801561028457600080fd5b506101e3600160a060020a0360043516602435610d2e565b3480156102a857600080fd5b506101cc600160a060020a03600435811690602435906044351660643560843560a43560ff60c4351660e43561010435610d4b565b3480156102e957600080fd5b506101e3600160a060020a0360043581169060243590604435811690606435906084359060a4359060c43516611003565b34801561032657600080fd5b506101cc600435611101565b34801561033e57600080fd5b506101cc600160a060020a0360043516602435611203565b34801561036257600080fd5b506101e3600160a060020a036004358116906024351661150e565b34801561038957600080fd5b506101cc600160a060020a0360043516602435151560443560643561152b565b3480156103b557600080fd5b506103ca600160a060020a03600435166117a5565b60408051921515835260208301919091528051918290030190f35b3480156103f157600080fd5b506103fa6117c4565b60408051600160a060020a039092168252519081900360200190f35b34801561042257600080fd5b50610470600160a060020a0360043581169060243590604435811690606435906084359060a4359060c43581169060ff60e435169061010435906101243590610144359061016435166117d3565b604080519115158252519081900360200190f35b34801561049057600080fd5b50610470600160a060020a036004351661183d565b3480156104b157600080fd5b506101cc600160a060020a0360043516611852565b3480156104d257600080fd5b506101cc6118b1565b3480156104e757600080fd5b506101cc600435611933565b3480156104ff57600080fd5b506103fa611953565b34801561051457600080fd5b506101e3600435611962565b34801561052c57600080fd5b506101cc600160a060020a0360043516602435611977565b34801561055057600080fd5b506103fa611b12565b34801561056557600080fd5b506101e3600160a060020a0360043516611b21565b34801561058657600080fd5b506101cc600160a060020a0360043516602435611b3c565b3480156105aa57600080fd5b50610470600160a060020a0360043516602435611b73565b3480156105ce57600080fd5b5061047060048035600160a060020a0316906024803591604435918201910135611b93565b3480156105ff57600080fd5b506101cc600160a060020a0360043516611d35565b34801561062057600080fd5b506103fa611e57565b34801561063557600080fd5b506101e3600160a060020a0360043516611e66565b34801561065657600080fd5b506101cc600435602435604435611e78565b34801561067457600080fd5b506101cc600160a060020a0360043516611ec1565b34801561069557600080fd5b506101e3600160a060020a0360043581169060243516611f16565b3480156106bc57600080fd5b506106c8600435611f41565b6040805192835260208301919091528051918290030190f35b3480156106ed57600080fd5b506101e3600435611f5a565b34801561070557600080fd5b506101cc600160a060020a03600435166024351515611f6c565b34801561072b57600080fd5b506101e3600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e435166101043561012435611fbd565b600160a060020a038116600090815260008051602061256c833981519152602052604090205461079a90346122b0565b600160a060020a038216600081815260008051602061256c8339815191526020908152604080832085905580519283529082019290925234818301526060810192909252517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a150565b60085481565b6000308c8c8c8c8c8c8c6040516020018089600160a060020a0316600160a060020a03166c0100000000000000000000000002815260140188600160a060020a0316600160a060020a03166c0100000000000000000000000002815260140187815260200186600160a060020a0316600160a060020a03166c0100000000000000000000000002815260140185815260200184815260200183815260200182600160a060020a0316600160a060020a03166c01000000000000000000000000028152601401985050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831061091f5780518252601f199092019160209182019101610900565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120600160a060020a038c16600090815260068352848120828252909252929020549194505060ff169150819050610a94575085600160a060020a031660018260405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b60208310610a035780518252601f1990920191602091820191016109e4565b51815160209384036101000a60001901801990921691161790526040805192909401829003822060008084528383018087529190915260ff8e1683860152606083018d9052608083018c9052935160a08084019750919550601f1981019492819003909101925090865af1158015610a7f573d6000803e3d6000fd5b50505060206040510351600160a060020a0316145b8015610aa05750874211155b8015610ada5750600160a060020a03861660009081526007602090815260408083208484529091529020548b90610ad790846122b0565b11155b1515610ae557600080fd5b610af38c8c8c8c8a876122ca565b600160a060020a0386166000908152600760209081526040808320848452909152902054610b2190836122b0565b600160a060020a03871660009081526007602090815260408083208584529091529020557f9af54f3727fc9dd2ab4bb1beceebee0465565940fc9121ae2e87892df9b99f1a8c838c8e8d8302811515610b7657fe5b60408051600160a060020a03968716815260208101959095529285168484015204606083015291891660808201523360a082015260c081018490524260e08201529051908190036101000190a1505050505050505050505050565b604080516c01000000000000000000000000308102602080840191909152600160a060020a03808b1683026034850152604884018a9052881682026068840152607c8301879052609c830186905260bc8301859052339190910260dc830152825160d081840301815260f0909201928390528151600093918291908401908083835b60208310610c725780518252601f199092019160209182019101610c53565b51815160001960209485036101000a0190811690199190911617905260408051949092018490038420336000818152600684528481208382528452849020805460ff19166001179055600160a060020a038f811687529286018e9052918c1685840152606085018b9052608085018a905260a0850189905260c085019190915290519095507f3f7f2eda73683c21a15f9435af1028c93185b5f1fa38270762dc32be606b3e8594509182900360e001925050a150505050505050565b600760209081526000928352604080842090915290825290205481565b604080516c01000000000000000000000000308102602080840191909152600160a060020a03808e1683026034850152604884018d90528b1682026068840152607c83018a9052609c830189905260bc8301889052339190910260dc830152825160d081840301815260f0909201928390528151600093918291908401908083835b60208310610dec5780518252601f199092019160209182019101610dcd565b51815160209384036101000a6000190180199092169116179052604080519290940182900390912033600090815260068352848120828252909252929020549194505060ff169150819050610f485750604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c80830185905283518084039091018152605c909201928390528151339360019392909182918401908083835b60208310610eb75780518252601f199092019160209182019101610e98565b51815160209384036101000a60001901801990921691161790526040805192909401829003822060008084528383018087529190915260ff8d1683860152606083018c9052608083018b9052935160a08084019750919550601f1981019492819003909101925090865af1158015610f33573d6000803e3d6000fd5b50505060206040510351600160a060020a0316145b1515610f5357600080fd5b3360008181526007602090815260408083208584528252918290208c90558151600160a060020a038e811682529181018d9052908b1681830152606081018a90526080810189905260a0810188905260c081019290925260ff861660e0830152610100820185905261012082018490526101408201839052517fc492b04027c671b0548e5bd4639174bf1d425fe5f94566809f148b0fc6cda204918190036101600190a150505050505050505050565b604080516c01000000000000000000000000308102602080840191909152600160a060020a03808c1683026034850152604884018b9052808a1683026068850152607c8401899052609c840188905260bc8401879052851690910260dc830152825160d081840301815260f0909201928390528151600093849392909182918401908083835b602083106110a85780518252601f199092019160209182019101611089565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120600160a060020a039890981660009081526007825283812098815297905250909420549a9950505050505050505050565b33600090815260008051602061256c833981519152602052604090205481111561112a57600080fd5b33600090815260008051602061256c833981519152602052604090205461115190826124f5565b33600081815260008051602061256c8339815191526020526040808220939093559151909183156108fc02918491818181858888f1935050505015801561119c573d6000803e3d6000fd5b5033600081815260008051602061256c8339815191526020908152604080832054815193845291830193909352818301849052606082015290517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a150565b600160a060020a038216151561121857600080fd5b600160a060020a03821660009081526009602052604090205460ff16156113a857600160a060020a03821660009081526009602052604090206001015442101561126157600080fd5b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018390529051600160a060020a038416916323b872dd9160648083019260209291908290030181600087803b1580156112cf57600080fd5b505af11580156112e3573d6000803e3d6000fd5b505050506040513d60208110156112f957600080fd5b5051151561130657600080fd5b600160a060020a038216600090815260056020908152604080832033845290915290205461133490826122b0565b600160a060020a03831660008181526005602090815260408083203380855290835292819020859055805193845290830191909152818101849052606082019290925290517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a161150a565b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018390529051600160a060020a038416916323b872dd9160648083019260209291908290030181600087803b15801561141657600080fd5b505af115801561142a573d6000803e3d6000fd5b505050506040513d602081101561144057600080fd5b5051151561144d57600080fd5b600160a060020a0380831660009081526005602090815260408083206004549094168352929052205461148090826122b0565b600160a060020a038084166000818152600560208181526040808420600480548816865290835281852097909755338085529282528084209654909516835294855290839020548351928352938201528082018490526060810192909252517f0d0d8b0237a7894a7c9fc3d0a983bd42663c792c277df1c6df07e3962e4c29a69181900360800190a15b5050565b600560209081526000928352604080842090915290825290205481565b3360009081526003602052604081205460ff16151561154657fe5b83156116a6576115da85600160a060020a03166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156115a657600080fd5b505af11580156115ba573d6000803e3d6000fd5b505050506040513d60208110156115d057600080fd5b5051600854612509565b9050600081116115e957600080fd5b600160a060020a0380861660009081526005602090815260408083206004549094168352929052205481111561161e57600080fd5b60048054604080517fe473c74f000000000000000000000000000000000000000000000000000000008152600160a060020a03898116948201949094529051929091169163e473c74f9160248082019260009290919082900301818387803b15801561168957600080fd5b505af115801561169d573d6000803e3d6000fd5b5050505061172a565b60048054604080517f842a8bf6000000000000000000000000000000000000000000000000000000008152600160a060020a03898116948201949094529051929091169163842a8bf69160248082019260009290919082900301818387803b15801561171157600080fd5b505af1158015611725573d6000803e3d6000fd5b505050505b600160a060020a038516600081815260096020908152604091829020805488151560ff1990911681178255600190910187905582519384529083015281810185905260608201849052517fd84efa85ce21ebc48f44b73043ac7b09daa8c745f674422b78381404cb4ab4269181900360800190a15050505050565b6009602052600090815260409020805460019091015460ff9091169082565b600454600160a060020a031681565b600160a060020a03808d166000908152600560209081526040808320938516835292905290812054831180159061181b5750826118188e8e8e8e8e8e8e8e8e8e611fbd565b10155b15156118295750600061182d565b5060015b9c9b505050505050505050505050565b60036020526000908152604090205460ff1681565b3360009081526003602052604090205460ff16151561186d57fe5b600160a060020a038116151561188257600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a03163314156119315760015460008054604051600160a060020a0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b565b3360009081526003602052604090205460ff16151561194e57fe5b600855565b600054600160a060020a031681565b6000908152600b602052604090206001015490565b600160a060020a038216151561198c57600080fd5b600160a060020a03821660009081526005602090815260408083203384529091529020548111156119bc57600080fd5b600160a060020a03821660009081526005602090815260408083203384529091529020546119ea90826124f5565b600160a060020a0383166000818152600560209081526040808320338085529083528184209590955580517fa9059cbb00000000000000000000000000000000000000000000000000000000815260048101959095526024850186905251929363a9059cbb9360448083019491928390030190829087803b158015611a6e57600080fd5b505af1158015611a82573d6000803e3d6000fd5b505050506040513d6020811015611a9857600080fd5b50511515611aa557600080fd5b600160a060020a03821660008181526005602090815260408083203380855290835292819020548151948552918401929092528282018490526060830152517ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679181900360800190a15050565b600254600160a060020a031681565b600160a060020a03166000908152600a602052604090205490565b3360009081526003602052604090205460ff161515611b5757fe5b600160a060020a039091166000908152600a6020526040902055565b600660209081526000928352604080842090915290825290205460ff1681565b6000811515611c7a573360009081526009602052604090205460ff168015611bcd5750336000908152600960205260409020600101544210155b1515611bd557fe5b336000908152600560209081526040808320600160a060020a0389168452909152902054611c0390856122b0565b336000818152600560209081526040808320600160a060020a038b1680855290835292819020859055805193845290830191909152818101879052606082019290925290517fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181900360800190a1506001611d2d565b336000908152600560209081526040808320600454600160a060020a03168452909152902054611caa90856122b0565b33600081815260056020908152604080832060048054600160a060020a03908116865282855283862097909755548616845282529182902054825193845293891690830152818101879052606082019290925290517f0d0d8b0237a7894a7c9fc3d0a983bd42663c792c277df1c6df07e3962e4c29a69181900360800190a15060015b949350505050565b600054600160a060020a03163314611d4957fe5b600160a060020a03808216600081815260096020526040808220805460ff191660019081178255429101556004805482517fe473c74f000000000000000000000000000000000000000000000000000000008152918201949094529051929093169263e473c74f926024808301939282900301818387803b158015611dcd57600080fd5b505af1158015611de1573d6000803e3d6000fd5b505060408051600160a060020a03851681526001602082015242818301527f4552433230000000000000000000000000000000000000000000000000000000606082015290517fd84efa85ce21ebc48f44b73043ac7b09daa8c745f674422b78381404cb4ab4269350908190036080019150a150565b600154600160a060020a031681565b600a6020526000908152604090205481565b3360009081526003602052604090205460ff161515611e9357fe5b60408051808201825292835260208084019283526000948552600b9052909220905181559051600190910155565b600054600160a060020a03163314611ed557fe5b600160a060020a0381161515611ee757fe5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b600b602052600090815260409020805460019091015482565b6000908152600b602052604090205490565b600054600160a060020a03163314611f8057fe5b600160a060020a0382161515611f9257fe5b600160a060020a03919091166000908152600360205260409020805460ff1916911515919091179055565b604080516c01000000000000000000000000308102602080840191909152600160a060020a03808f1683026034850152604884018e9052808d1683026068850152607c84018c9052609c84018b905260bc84018a9052881690910260dc830152825160d081840301815260f090920192839052815160009384938493849391929182918401908083835b602083106120665780518252601f199092019160209182019101612047565b51815160209384036101000a60001901801990921691161790526040805192909401829003909120600160a060020a038e16600090815260068352848120828252909252929020549196505060ff169150819050612200575087600160a060020a031660018460405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c0182600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b6020831061214a5780518252601f19909201916020918201910161212b565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020898989604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af11580156121eb573d6000803e3d6000fd5b50505060206040510351600160a060020a0316145b801561220c5750894211155b151561221b576000935061229f565b600160a060020a038816600090815260076020908152604080832086845290915290205461224a908e906124f5565b600160a060020a03808e166000908152600560209081526040808320938d16835292905220549092508b9061227f908f612540565b81151561228857fe5b0490508082101561229b5781935061229f565b8093505b5050509a9950505050505050505050565b6000828201838110156122bf57fe5b8091505b5092915050565b600160a060020a0382166000908152600a60209081526040808320548352600b9091528120548190670de0b6b3a764000090612307908590612540565b81151561231057fe5b336000908152600a60209081526040808320548352600b9091529020600101549190049250670de0b6b3a76400009061234a908590612540565b81151561235357fe5b600160a060020a038a166000908152600560209081526040808320338452909152902054919004915061238f9061238a85846122b0565b6124f5565b600160a060020a03898116600090815260056020908152604080832033845290915280822093909355908616815220546123d2906123cd85856124f5565b6122b0565b600160a060020a03898116600090815260056020908152604080832089851684529091528082209390935560045490911681522054612415906123cd84846122b0565b600160a060020a03808a166000908152600560208181526040808420600454861685528252808420959095558a84168352908152838220928816825291909152205461247590886124668887612540565b81151561246f57fe5b046124f5565b600160a060020a0387811660009081526005602090815260408083209389168352929052818120929092553382529020546124c490886124b58887612540565b8115156124be57fe5b046122b0565b600160a060020a03909616600090815260056020908152604080832033845290915290209590955550505050505050565b6000808383111561250257fe5b5050900390565b60008083151561251c57600091506122c3565b5082820282848281151561252c57fe5b041461253457fe5b61271090049392505050565b60008083151561255357600091506122c3565b5082820282848281151561256357fe5b04146122bf57fe0005b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bca165627a7a72305820efaf60ea9c8555b4c762cec1559c9a4a3a01c65ae627891988f2826377242ab700290000000000000000000000009a156f934c3542ef6a4443ce9a91d2d768fc01c1

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

0000000000000000000000009a156f934c3542ef6a4443ce9a91d2d768fc01c1

-----Decoded View---------------
Arg [0] : feeAccount_ (address): 0x9a156f934c3542ef6a4443ce9a91d2d768fc01c1

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009a156f934c3542ef6a4443ce9a91d2d768fc01c1


Swarm Source

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