ETH Price: $3,142.73 (-5.82%)
Gas: 10 Gwei

Contract

0xd8d48e52F39Ab2D169c8b562C53589e6C71ac4d3
 

Overview

ETH Balance

6.020853358535112405 ETH

Eth Value

$18,921.93 (@ $3,142.73/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Withdraw Token167381212023-03-02 3:09:11490 days ago1677726551IN
0xd8d48e52...6C71ac4d3
0 ETH0.0019500832.67294452
Withdraw165680892023-02-06 6:55:23514 days ago1675666523IN
0xd8d48e52...6C71ac4d3
0 ETH0.0006540920.67174174
Cancel Order126237592021-06-13 3:36:521117 days ago1623555412IN
0xd8d48e52...6C71ac4d3
0 ETH0.000339546
Withdraw116843142021-01-19 7:15:051262 days ago1611040505IN
0xd8d48e52...6C71ac4d3
0 ETH0.0015772965.00000145
Withdraw116843002021-01-19 7:10:481262 days ago1611040248IN
0xd8d48e52...6C71ac4d3
0 ETH0.0019412880
Transfer107901472020-09-03 19:17:361399 days ago1599160656IN
0xd8d48e52...6C71ac4d3
0 ETH0.005796276
Withdraw87060592019-10-09 6:26:471730 days ago1570602407IN
0xd8d48e52...6C71ac4d3
0 ETH0.000022891
Withdraw87060492019-10-09 6:24:471730 days ago1570602287IN
0xd8d48e52...6C71ac4d3
0 ETH0.000037961
Withdraw87059672019-10-09 6:03:571730 days ago1570601037IN
0xd8d48e52...6C71ac4d3
0 ETH0.000022891
Withdraw87059542019-10-09 6:00:291730 days ago1570600829IN
0xd8d48e52...6C71ac4d3
0 ETH0.000037961
Withdraw87059452019-10-09 5:57:581730 days ago1570600678IN
0xd8d48e52...6C71ac4d3
0 ETH0.000037961
Withdraw87059342019-10-09 5:55:471730 days ago1570600547IN
0xd8d48e52...6C71ac4d3
0 ETH0.000037961
Withdraw87059312019-10-09 5:55:031730 days ago1570600503IN
0xd8d48e52...6C71ac4d3
0 ETH0.000037961
Withdraw87059262019-10-09 5:53:581730 days ago1570600438IN
0xd8d48e52...6C71ac4d3
0 ETH0.000037961
Withdraw87059222019-10-09 5:53:081730 days ago1570600388IN
0xd8d48e52...6C71ac4d3
0 ETH0.000037961
Withdraw87059132019-10-09 5:51:591730 days ago1570600319IN
0xd8d48e52...6C71ac4d3
0 ETH0.000037961
Withdraw87058982019-10-09 5:49:261730 days ago1570600166IN
0xd8d48e52...6C71ac4d3
0 ETH0.000037961
Withdraw87056502019-10-09 4:53:181730 days ago1570596798IN
0xd8d48e52...6C71ac4d3
0 ETH0.000037961
Withdraw87056232019-10-09 4:48:371730 days ago1570596517IN
0xd8d48e52...6C71ac4d3
0 ETH0.000037961
Withdraw87055932019-10-09 4:41:501730 days ago1570596110IN
0xd8d48e52...6C71ac4d3
0 ETH0.000037961
Withdraw Token83821462019-08-19 17:26:231780 days ago1566235583IN
0xd8d48e52...6C71ac4d3
0 ETH0.0006174413
Withdraw Token83718332019-08-18 2:52:301782 days ago1566096750IN
0xd8d48e52...6C71ac4d3
0 ETH0.000129984
Withdraw Token83435672019-08-13 17:43:261786 days ago1565718206IN
0xd8d48e52...6C71ac4d3
0 ETH0.000047491
Withdraw Token82557512019-07-31 2:22:401800 days ago1564539760IN
0xd8d48e52...6C71ac4d3
0 ETH0.000047491
Deposit Token82557422019-07-31 2:19:521800 days ago1564539592IN
0xd8d48e52...6C71ac4d3
0 ETH0.000037221
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
165680892023-02-06 6:55:23514 days ago1675666523
0xd8d48e52...6C71ac4d3
0.1 ETH
116843142021-01-19 7:15:051262 days ago1611040505
0xd8d48e52...6C71ac4d3
1.76860373 ETH
116843002021-01-19 7:10:481262 days ago1611040248
0xd8d48e52...6C71ac4d3
3.06518206 ETH
87060592019-10-09 6:26:471730 days ago1570602407
0xd8d48e52...6C71ac4d3
0.0002 ETH
87060492019-10-09 6:24:471730 days ago1570602287
0xd8d48e52...6C71ac4d3
0.001 ETH
87059672019-10-09 6:03:571730 days ago1570601037
0xd8d48e52...6C71ac4d3
0.00005 ETH
87059542019-10-09 6:00:291730 days ago1570600829
0xd8d48e52...6C71ac4d3
0.0006 ETH
87059452019-10-09 5:57:581730 days ago1570600678
0xd8d48e52...6C71ac4d3
0.0126 ETH
87059342019-10-09 5:55:471730 days ago1570600547
0xd8d48e52...6C71ac4d3
0.0226 ETH
87059312019-10-09 5:55:031730 days ago1570600503
0xd8d48e52...6C71ac4d3
0.0226 ETH
87059262019-10-09 5:53:581730 days ago1570600438
0xd8d48e52...6C71ac4d3
0.0226 ETH
87059222019-10-09 5:53:081730 days ago1570600388
0xd8d48e52...6C71ac4d3
0.0226 ETH
87059132019-10-09 5:51:591730 days ago1570600319
0xd8d48e52...6C71ac4d3
0.0226 ETH
87058982019-10-09 5:49:261730 days ago1570600166
0xd8d48e52...6C71ac4d3
0.0226 ETH
87056502019-10-09 4:53:181730 days ago1570596798
0xd8d48e52...6C71ac4d3
0.00465 ETH
87056232019-10-09 4:48:371730 days ago1570596517
0xd8d48e52...6C71ac4d3
0.00265 ETH
87055932019-10-09 4:41:501730 days ago1570596110
0xd8d48e52...6C71ac4d3
0.00265 ETH
82446072019-07-29 8:55:571802 days ago1564390557
0xd8d48e52...6C71ac4d3
0.002 ETH
82443642019-07-29 8:04:521802 days ago1564387492
0xd8d48e52...6C71ac4d3
0.0198 ETH
82041122019-07-23 2:01:101808 days ago1563847270
0xd8d48e52...6C71ac4d3
0.014 ETH
81933152019-07-21 9:46:251809 days ago1563702385
0xd8d48e52...6C71ac4d3
0.12839599 ETH
81902702019-07-20 22:23:101810 days ago1563661390
0xd8d48e52...6C71ac4d3
0.00102 ETH
81824862019-07-19 17:45:401811 days ago1563558340
0xd8d48e52...6C71ac4d3
0.053 ETH
81798602019-07-19 7:45:101812 days ago1563522310
0xd8d48e52...6C71ac4d3
0.09244507 ETH
80355672019-06-26 19:56:401834 days ago1561579000
0xd8d48e52...6C71ac4d3
0.01391598 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ETHERCExchange

Compiler Version
v0.4.20+commit.3155dd80

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-04-22
*/

pragma solidity ^0.4.19;


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    /**
    * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}


/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address public owner;


    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    function Ownable() public {
        owner = msg.sender;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(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 {
        require(newOwner != address(0));
        OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

}


/**
 * ERC-20 Token Standard
 * https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
 */
contract Token {
    function totalSupply() public view returns (uint256);
    function balanceOf(address _owner) public view returns (uint256);
    function transfer(address _to, uint256 _value) public returns (bool);
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool);
    function approve(address _spender, uint256 _value) public returns (bool);
    function allowance(address _owner, address _spender) public view returns (uint256);

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}


/**
 * Interface for trading discounts and rebates for specific accounts
 */
contract FeeModifiersInterface {
    function accountFeeModifiers(address _user) public view returns (uint256 feeDiscount, uint256 feeRebate);
    function tradingFeeModifiers(address _maker, address _taker) public view returns (uint256 feeMakeDiscount, uint256 feeTakeDiscount, uint256 feeRebate);
}


/**
 * Interface for trade tracker to handle trade event
 */
contract TradeTrackerInterface {
    function tradeEventHandler(address _tokenGet, uint256 _amountGet, address _tokenGive, uint256 _amountGive, address _maker, address _user, bytes32 _orderHash, uint256 _gasLimit) public;
}


contract ETHERCExchange is Ownable {
    using SafeMath for uint256;

    // the trade tracker address
    address public tradeTracker;
    // the contract which stores fee discounts/rebates
    address public feeModifiers;
    // the account that will receive fees
    address public feeAccount;
    // maker fee percentage times (1 ether)
    uint256 public feeMake;
    // taker fee percentage times (1 ether) 
    uint256 public feeTake;

    // mapping of token addresses to mapping of account balances
    mapping (address => mapping (address => uint256)) public tokens;
    // mapping of order hash to status cancelled
    mapping (bytes32 => bool) public cancelledOrders;
    // mapping order hashes to uints (amount of order that has been filled)
    mapping (bytes32 => uint256) public orderFills;

    //Logging events
    event Deposit(address token, address user, uint256 amount, uint256 balance);
    event Withdraw(address token, address user, uint256 amount, uint256 balance);
    event Cancel(address tokenGet, uint256 amountGet, address tokenGive, uint256 amountGive, uint256 expires, uint256 nonce, address maker, uint8 v, bytes32 r, bytes32 s, bytes32 orderHash, uint256 amountFilled);
    event Trade(address tokenGet, uint256 amountGet, address tokenGive, uint256 amountGive, address maker, address taker, bytes32 orderHash);

    function ETHERCExchange() public {
        feeAccount = owner;
    }

    function() public {
        revert();
    }

    ////////////////////////////////////////////////////////////////////////////////
    // Fee Discounts, Rebates
    ////////////////////////////////////////////////////////////////////////////////

    function getAccountFeeModifiers(address _user) public view returns(uint256 feeDiscount, uint256 feeRebate) {
        if (feeModifiers != address(0)) {
            (feeDiscount, feeRebate) = FeeModifiersInterface(feeModifiers).accountFeeModifiers(_user);
        }
    }

    ////////////////////////////////////////////////////////////////////////////////
    // Funds
    ////////////////////////////////////////////////////////////////////////////////

    function deposit() public payable {
        tokens[address(0)][msg.sender] = tokens[address(0)][msg.sender].add(msg.value);
        Deposit(address(0), msg.sender, msg.value, tokens[address(0)][msg.sender]);
    }

    function depositToken(address _token, uint256 _amount) public {
        require(_token != address(0));

        if (!Token(_token).transferFrom(msg.sender, this, _amount)) revert();
        tokens[_token][msg.sender] = tokens[_token][msg.sender].add(_amount);
        Deposit(_token, msg.sender, _amount, tokens[_token][msg.sender]);
    }

    function withdraw(uint256 _amount) public {
        require(tokens[address(0)][msg.sender] >= _amount);

        tokens[address(0)][msg.sender] = tokens[address(0)][msg.sender].sub(_amount);
        msg.sender.transfer(_amount);
        Withdraw(address(0), msg.sender, _amount, tokens[address(0)][msg.sender]);
    }

    function withdrawToken(address _token, uint256 _amount) public {
        require(_token != address(0));
        require(tokens[_token][msg.sender] >= _amount);

        tokens[_token][msg.sender] = tokens[_token][msg.sender].sub(_amount);
        if (!Token(_token).transfer(msg.sender, _amount)) revert();
        Withdraw(_token, msg.sender, _amount, tokens[_token][msg.sender]);
    }

    function balanceOf(address _token, address _user) public view returns (uint256) {
        return tokens[_token][_user];
    }

    ////////////////////////////////////////////////////////////////////////////////
    // Trading & Order
    ////////////////////////////////////////////////////////////////////////////////

    function trade(address _tokenGet, uint256 _amountGet, address _tokenGive, uint256 _amountGive, uint256 _expires, uint256 _nonce, address _maker, uint8 _v, bytes32 _r, bytes32 _s, uint256 _amountTrade) public {
        uint256 executionGasLimit = msg.gas;
        bytes32 orderHash = getOrderHash(_tokenGet, _amountGet, _tokenGive, _amountGive, _expires, _nonce, _maker);

        if (ecrecover(keccak256("\x19Ethereum Signed Message:\n32", orderHash), _v, _r, _s) != _maker ||
            cancelledOrders[orderHash] ||
            block.number > _expires ||
            orderFills[orderHash].add(_amountTrade) > _amountGet
        ) revert();

        tradeBalances(_tokenGet, _amountGet, _tokenGive, _amountGive, _maker, _amountTrade);
        orderFills[orderHash] = orderFills[orderHash].add(_amountTrade);
        uint256 amountTradeGive = _amountGive.mul(_amountTrade) / _amountGet;
        if(tradeTracker != address(0)){
            TradeTrackerInterface(tradeTracker).tradeEventHandler(_tokenGet, _amountTrade, _tokenGive, amountTradeGive, _maker, msg.sender, orderHash, executionGasLimit);
        }
        Trade(_tokenGet, _amountTrade, _tokenGive, amountTradeGive, _maker, msg.sender, orderHash);
    }

    function tradeBalances(address _tokenGet, uint256 _amountGet, address _tokenGive, uint256 _amountGive, address _maker, uint256 _amountTrade) private {
        uint256 feeMakeValue = _amountTrade.mul(feeMake) / (1 ether);
        uint256 feeTakeValue = _amountTrade.mul(feeTake) / (1 ether);
        uint256 feeRebateValue = 0;

        if (feeModifiers != address(0)) {
            uint256 feeMakeDiscount; uint256 feeTakeDiscount; uint256 feeRebate;
            (feeMakeDiscount, feeTakeDiscount, feeRebate) = FeeModifiersInterface(feeModifiers).tradingFeeModifiers(_maker, msg.sender);
            if (feeMakeValue > 0 && feeMakeDiscount > 0 && feeMakeDiscount <= 100 ) feeMakeValue = feeMakeValue.mul(100 - feeMakeDiscount) / 100;
            if (feeTakeValue > 0 && feeTakeDiscount > 0 && feeTakeDiscount <= 100 ) feeTakeValue = feeTakeValue.mul(100 - feeTakeDiscount) / 100;
            if (feeTakeValue > 0 && feeRebate > 0 && feeRebate <= 100) feeRebateValue = feeTakeValue.mul(feeRebate) / 100;
        }

        tokens[_tokenGet][msg.sender] = tokens[_tokenGet][msg.sender].sub(_amountTrade.add(feeTakeValue));
        tokens[_tokenGet][_maker] = tokens[_tokenGet][_maker].add(_amountTrade.sub(feeMakeValue).add(feeRebateValue));
        tokens[_tokenGive][msg.sender] = tokens[_tokenGive][msg.sender].add(_amountGive.mul(_amountTrade) / _amountGet);
        tokens[_tokenGive][_maker] = tokens[_tokenGive][_maker].sub(_amountGive.mul(_amountTrade) / _amountGet);
        tokens[_tokenGet][feeAccount] = tokens[_tokenGet][feeAccount].add(feeMakeValue.add(feeTakeValue).sub(feeRebateValue));
    }

    function validateTrade(address _tokenGet, uint256 _amountGet, address _tokenGive, uint256 _amountGive, uint256 _expires, uint256 _nonce, address _maker, uint8 _v, bytes32 _r, bytes32 _s, uint256 _amountTrade, address _taker) public view returns (uint8) {
        uint256 feeTakeValue = calculateTakerFee(_taker, _amountTrade);

        if (_amountTrade.add(feeTakeValue) > tokens[_tokenGet][_taker]) return 1;
        if (availableVolume(_tokenGet, _amountGet, _tokenGive, _amountGive, _expires, _nonce, _maker, _v, _r, _s) < _amountTrade) return 2;
        return 0;
    }

    function calculateTakerFee(address _taker, uint256 _amountTrade) public view returns (uint256) {
        uint256 feeTakeValue = _amountTrade.mul(feeTake) / (1 ether);

        uint256 feeDiscount; uint256 feeRebate;
        (feeDiscount, feeRebate) = getAccountFeeModifiers(_taker);
        if (feeTakeValue > 0 && feeDiscount > 0 && feeDiscount <= 100 ) feeTakeValue = feeTakeValue.mul(100 - feeDiscount) / 100;

        return feeTakeValue;
    }

    function getOrderHash(address _tokenGet, uint256 _amountGet, address _tokenGive, uint256 _amountGive, uint256 _expires, uint256 _nonce, address _maker) public view returns (bytes32) {
        return keccak256(this, _tokenGet, _amountGet, _tokenGive, _amountGive, _expires, _nonce, _maker);
    }

    function availableVolume(address _tokenGet, uint256 _amountGet, address _tokenGive, uint256 _amountGive, uint256 _expires, uint256 _nonce, address _maker, uint8 _v, bytes32 _r, bytes32 _s) public view returns (uint256) {
        bytes32 orderHash = getOrderHash(_tokenGet, _amountGet, _tokenGive, _amountGive, _expires, _nonce, _maker);

        if (ecrecover(keccak256("\x19Ethereum Signed Message:\n32", orderHash), _v, _r, _s) != _maker ||
            cancelledOrders[orderHash] ||
            block.number > _expires ||
            _amountGet <= orderFills[orderHash]
        ) return 0;

        uint256[2] memory available;
        available[0] = _amountGet.sub(orderFills[orderHash]);
        available[1] = tokens[_tokenGive][_maker].mul(_amountGet) / _amountGive;
        if (available[0] < available[1]) return available[0];
        return available[1];
    }

    function amountFilled(address _tokenGet, uint256 _amountGet, address _tokenGive, uint256 _amountGive, uint256 _expires, uint256 _nonce, address _maker) public view returns (uint256) {
        bytes32 orderHash = getOrderHash(_tokenGet, _amountGet, _tokenGive, _amountGive, _expires, _nonce, _maker);
        return orderFills[orderHash];
    }

    function cancelOrder(address _tokenGet, uint256 _amountGet, address _tokenGive, uint256 _amountGive, uint256 _expires, uint256 _nonce, uint8 _v, bytes32 _r, bytes32 _s) public {
        bytes32 orderHash = getOrderHash(_tokenGet, _amountGet, _tokenGive, _amountGive, _expires, _nonce, msg.sender);
        if (ecrecover(keccak256("\x19Ethereum Signed Message:\n32", orderHash), _v, _r, _s) != msg.sender) revert();

        cancelledOrders[orderHash] = true;
        Cancel(_tokenGet, _amountGet, _tokenGive, _amountGive, _expires, _nonce, msg.sender, _v, _r, _s, orderHash, orderFills[orderHash]);
    }

    ////////////////////////////////////////////////////////////////////////////////
    // Setting
    ////////////////////////////////////////////////////////////////////////////////

    function changeFeeAccount(address _feeAccount) public onlyOwner {
        require(_feeAccount != address(0));
        feeAccount = _feeAccount;
    }

    function changeFeeMake(uint256 _feeMake) public onlyOwner {
        require(_feeMake != feeMake);
        feeMake = _feeMake;
    }

    function changeFeeTake(uint256 _feeTake) public onlyOwner {
        require(_feeTake != feeTake);
        feeTake = _feeTake;
    }

    function changeFeeModifiers(address _feeModifiers) public onlyOwner {
        require(feeModifiers != _feeModifiers);
        feeModifiers = _feeModifiers;
    }

    function changeTradeTracker(address _tradeTracker) public onlyOwner {
        require(tradeTracker != _tradeTracker);
        tradeTracker = _tradeTracker;
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_tokenGet","type":"address"},{"name":"_amountGet","type":"uint256"},{"name":"_tokenGive","type":"address"},{"name":"_amountGive","type":"uint256"},{"name":"_expires","type":"uint256"},{"name":"_nonce","type":"uint256"},{"name":"_maker","type":"address"},{"name":"_v","type":"uint8"},{"name":"_r","type":"bytes32"},{"name":"_s","type":"bytes32"},{"name":"_amountTrade","type":"uint256"}],"name":"trade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenGet","type":"address"},{"name":"_amountGet","type":"uint256"},{"name":"_tokenGive","type":"address"},{"name":"_amountGive","type":"uint256"},{"name":"_expires","type":"uint256"},{"name":"_nonce","type":"uint256"},{"name":"_v","type":"uint8"},{"name":"_r","type":"bytes32"},{"name":"_s","type":"bytes32"}],"name":"cancelOrder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenGet","type":"address"},{"name":"_amountGet","type":"uint256"},{"name":"_tokenGive","type":"address"},{"name":"_amountGive","type":"uint256"},{"name":"_expires","type":"uint256"},{"name":"_nonce","type":"uint256"},{"name":"_maker","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":false,"inputs":[{"name":"_tradeTracker","type":"address"}],"name":"changeTradeTracker","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_feeModifiers","type":"address"}],"name":"changeFeeModifiers","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":"_feeMake","type":"uint256"}],"name":"changeFeeMake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"feeMake","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"feeModifiers","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"feeAccount","outputs":[{"name":"","type":"address"}],"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":"_feeTake","type":"uint256"}],"name":"changeFeeTake","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":"bytes32"}],"name":"cancelledOrders","outputs":[{"name":"","type":"bool"}],"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":"_taker","type":"address"},{"name":"_amountTrade","type":"uint256"}],"name":"calculateTakerFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"feeTake","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenGet","type":"address"},{"name":"_amountGet","type":"uint256"},{"name":"_tokenGive","type":"address"},{"name":"_amountGive","type":"uint256"},{"name":"_expires","type":"uint256"},{"name":"_nonce","type":"uint256"},{"name":"_maker","type":"address"}],"name":"getOrderHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenGet","type":"address"},{"name":"_amountGet","type":"uint256"},{"name":"_tokenGive","type":"address"},{"name":"_amountGive","type":"uint256"},{"name":"_expires","type":"uint256"},{"name":"_nonce","type":"uint256"},{"name":"_maker","type":"address"},{"name":"_v","type":"uint8"},{"name":"_r","type":"bytes32"},{"name":"_s","type":"bytes32"},{"name":"_amountTrade","type":"uint256"},{"name":"_taker","type":"address"}],"name":"validateTrade","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"tradeTracker","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_user","type":"address"}],"name":"getAccountFeeModifiers","outputs":[{"name":"feeDiscount","type":"uint256"},{"name":"feeRebate","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"orderFills","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"_tokenGet","type":"address"},{"name":"_amountGet","type":"uint256"},{"name":"_tokenGive","type":"address"},{"name":"_amountGive","type":"uint256"},{"name":"_expires","type":"uint256"},{"name":"_nonce","type":"uint256"},{"name":"_maker","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":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":false,"stateMutability":"nonpayable","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":"tokenGet","type":"address"},{"indexed":false,"name":"amountGet","type":"uint256"},{"indexed":false,"name":"tokenGive","type":"address"},{"indexed":false,"name":"amountGive","type":"uint256"},{"indexed":false,"name":"expires","type":"uint256"},{"indexed":false,"name":"nonce","type":"uint256"},{"indexed":false,"name":"maker","type":"address"},{"indexed":false,"name":"v","type":"uint8"},{"indexed":false,"name":"r","type":"bytes32"},{"indexed":false,"name":"s","type":"bytes32"},{"indexed":false,"name":"orderHash","type":"bytes32"},{"indexed":false,"name":"amountFilled","type":"uint256"}],"name":"Cancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenGet","type":"address"},{"indexed":false,"name":"amountGet","type":"uint256"},{"indexed":false,"name":"tokenGive","type":"address"},{"indexed":false,"name":"amountGive","type":"uint256"},{"indexed":false,"name":"maker","type":"address"},{"indexed":false,"name":"taker","type":"address"},{"indexed":false,"name":"orderHash","type":"bytes32"}],"name":"Trade","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

6060604052341561000f57600080fd5b60008054600160a060020a03338116600160a060020a03199283161792839055600380549092169216919091179055611b6a8061004d6000396000f3006060604052600436106101505763ffffffff60e060020a6000350416630a19b14a8114610160578063278b8c0e146101af5780632d804ca2146101ee5780632e1a7d4d1461023b578063338b5dea1461025157806348d64fd5146102735780634f3f2cbc14610292578063508493bc146102b157806354d03b5c146102d657806357786394146102ec578063617a0951146102ff57806365e17c9d1461032e57806371ffcb16146103415780638823a9c0146103605780638da5cb5b146103765780638f13f48e146103895780639e281a98146103b3578063a2190b46146103d5578063c281309e146103f7578063c4e29e661461040a578063cb3cb08514610445578063d0e30db0146104b3578063da147d32146104bb578063e7b808ea146104ce578063f2fde38b14610505578063f7213db614610524578063f7888aec1461053a578063fb6e155f1461055f575b341561015b57600080fd5b600080fd5b341561016b57600080fd5b6101ad600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e435166101043561012435610144356105a8565b005b34156101ba57600080fd5b6101ad600160a060020a03600435811690602435906044351660643560843560a43560ff60c4351660e43561010435610867565b34156101f957600080fd5b610229600160a060020a0360043581169060243590604435811690606435906084359060a4359060c43516610a22565b60405190815260200160405180910390f35b341561024657600080fd5b6101ad600435610a50565b341561025c57600080fd5b6101ad600160a060020a0360043516602435610b8f565b341561027e57600080fd5b6101ad600160a060020a0360043516610cf5565b341561029d57600080fd5b6101ad600160a060020a0360043516610d5a565b34156102bc57600080fd5b610229600160a060020a0360043581169060243516610dbf565b34156102e157600080fd5b6101ad600435610ddc565b34156102f757600080fd5b610229610e0b565b341561030a57600080fd5b610312610e11565b604051600160a060020a03909116815260200160405180910390f35b341561033957600080fd5b610312610e20565b341561034c57600080fd5b6101ad600160a060020a0360043516610e2f565b341561036b57600080fd5b6101ad600435610e8e565b341561038157600080fd5b610312610ebd565b341561039457600080fd5b61039f600435610ecc565b604051901515815260200160405180910390f35b34156103be57600080fd5b6101ad600160a060020a0360043516602435610ee1565b34156103e057600080fd5b610229600160a060020a036004351660243561108e565b341561040257600080fd5b610229611119565b341561041557600080fd5b610229600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351661111f565b341561045057600080fd5b61049d600160a060020a0360043581169060243590604435811690606435906084359060a4359060c43581169060ff60e43516906101043590610124359061014435906101643516611198565b60405160ff909116815260200160405180910390f35b6101ad61124a565b34156104c657600080fd5b610312611305565b34156104d957600080fd5b6104ed600160a060020a0360043516611314565b60405191825260208201526040908101905180910390f35b341561051057600080fd5b6101ad600160a060020a03600435166113ae565b341561052f57600080fd5b610229600435611449565b341561054557600080fd5b610229600160a060020a036004358116906024351661145b565b341561056a57600080fd5b610229600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e435166101043561012435611486565b60008060005a92506105bf8e8e8e8e8e8e8e61111f565b915087600160a060020a03166001836040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0160405180910390208989896040516000815260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f1151561066957600080fd5b505060206040510351600160a060020a0316141580610696575060008281526007602052604090205460ff165b806106a057508943115b806106c957506000828152600860205260409020548d906106c7908663ffffffff61163716565b115b156106d357600080fd5b6106e18e8e8e8e8c89611651565b600082815260086020526040902054610700908563ffffffff61163716565b6000838152600860205260409020558c6107208c8663ffffffff611abb16565b81151561072957fe5b6001549190049150600160a060020a0316156107e457600154600160a060020a031663ee0c3e028f868f858d33898b60405160e060020a63ffffffff8b16028152600160a060020a039889166004820152602481019790975294871660448701526064860193909352908516608485015290931660a483015260c482019290925260e481019190915261010401600060405180830381600087803b15156107cf57600080fd5b6102c65a03f115156107e057600080fd5b5050505b7f68381874bf7a1a19bfeecb18abbaa22f0fc7892cfec46e7dd4ea9b3688419d188e858e848c3388604051600160a060020a03978816815260208101969096529386166040808701919091526060860193909352908516608085015290931660a083015260c082015260e001905180910390a15050505050505050505050505050565b60006108788a8a8a8a8a8a3361111f565b905033600160a060020a03166001826040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0160405180910390208686866040516000815260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f1151561092257600080fd5b505060206040510351600160a060020a03161461093e57600080fd5b6000818152600760209081526040808320805460ff19166001179055600890915290819020547f499af4d13c30121ba8152d6f34a69ea73c4baa470e888ca031257a58b9216c60918c918c918c918c918c918c9133918d918d918d918d919051600160a060020a039c8d168152602081019b909b52988b166040808c019190915260608b019890985260808a019690965260a08901949094529190971660c087015260ff90961660e086015261010085019590955261012084019490945261014083019390935261016082015261018001905180910390a150505050505050505050565b600080610a348989898989898961111f565b6000908152600860205260409020549998505050505050505050565b33600160a060020a03166000908152600080516020611b1f833981519152602052604090205481901015610a8357600080fd5b33600160a060020a03166000908152600080516020611b1f8339815191526020526040902054610ab9908263ffffffff611ae616565b33600160a060020a03166000818152600080516020611b1f833981519152602052604090819020929092559082156108fc0290839051600060405180830381858888f193505050501515610b0c57600080fd5b33600160a060020a0381166000908152600080516020611b1f8339815191526020526040808220547ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567939185919051600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a150565b600160a060020a0382161515610ba457600080fd5b81600160a060020a03166323b872dd33308460006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610c0e57600080fd5b6102c65a03f11515610c1f57600080fd5b505050604051805190501515610c3457600080fd5b600160a060020a0380831660009081526006602090815260408083203390941683529290522054610c6b908263ffffffff61163716565b600160a060020a038381166000908152600660209081526040808320339485168452909152908190208390557fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79285929185919051600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a15050565b60005433600160a060020a03908116911614610d1057600080fd5b600154600160a060020a0382811691161415610d2b57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614610d7557600080fd5b600254600160a060020a0382811691161415610d9057600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600660209081526000928352604080842090915290825290205481565b60005433600160a060020a03908116911614610df757600080fd5b600454811415610e0657600080fd5b600455565b60045481565b600254600160a060020a031681565b600354600160a060020a031681565b60005433600160a060020a03908116911614610e4a57600080fd5b600160a060020a0381161515610e5f57600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614610ea957600080fd5b600554811415610eb857600080fd5b600555565b600054600160a060020a031681565b60076020526000908152604090205460ff1681565b600160a060020a0382161515610ef657600080fd5b600160a060020a038083166000908152600660209081526040808320339094168352929052205481901015610f2a57600080fd5b600160a060020a0380831660009081526006602090815260408083203390941683529290522054610f61908263ffffffff611ae616565b600160a060020a03808416600081815260066020908152604080832033958616845290915280822094909455909263a9059cbb92918591516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610fe057600080fd5b6102c65a03f11515610ff157600080fd5b50505060405180519050151561100657600080fd5b600160a060020a03808316600090815260066020908152604080832033948516845290915290819020547ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679285929091859151600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a15050565b600080600080670de0b6b3a76400006110b260055487611abb90919063ffffffff16565b8115156110bb57fe5b0492506110c786611314565b90925090506000831180156110dc5750600082115b80156110e9575060648211155b1561110f5760646111028484830363ffffffff611abb16565b81151561110b57fe5b0492505b5090949350505050565b60055481565b600030888888888888886040516c01000000000000000000000000600160a060020a03998a168102825297891688026014820152602881019690965293871686026048860152605c850192909252607c840152609c8301529092160260bc82015260d00160405180910390209050979650505050505050565b6000806111a5838561108e565b9050600660008f600160a060020a0316600160a060020a03168152602001908152602001600020600084600160a060020a0316600160a060020a0316815260200190815260200160002054611203828661163790919063ffffffff16565b11156112125760019150611239565b836112258f8f8f8f8f8f8f8f8f8f611486565b10156112345760029150611239565b600091505b509c9b505050505050505050505050565b33600160a060020a03166000908152600080516020611b1f8339815191526020526040902054611280903463ffffffff61163716565b33600160a060020a0381166000908152600080516020611b1f83398151915260205260408082208490557fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d793919291349151600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a1565b600154600160a060020a031681565b6002546000908190600160a060020a0316156113a957600254600160a060020a03166357d62a308460006040516040015260405160e060020a63ffffffff8416028152600160a060020a0390911660048201526024016040805180830381600087803b151561138257600080fd5b6102c65a03f1151561139357600080fd5b5050506040518051906020018051919350909150505b915091565b60005433600160a060020a039081169116146113c957600080fd5b600160a060020a03811615156113de57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60086020526000908152604090205481565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b600080611491611af8565b6114a08d8d8d8d8d8d8d61111f565b915086600160a060020a03166001836040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0160405180910390208888886040516000815260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f1151561154a57600080fd5b505060206040510351600160a060020a0316141580611577575060008281526007602052604090205460ff165b8061158157508843115b8061159a57506000828152600860205260409020548c11155b156115a85760009250611627565b6000828152600860205260409020546115c8908d9063ffffffff611ae616565b8152600160a060020a038b81166000908152600660209081526040808320938b16835292905220548a906115fc908e611abb565b81151561160557fe5b0460208201908152518151101561161f5780519250611627565b602081015192505b50509a9950505050505050505050565b60008282018381101561164657fe5b8091505b5092915050565b600080600080600080670de0b6b3a764000061167860045489611abb90919063ffffffff16565b81151561168157fe5b049550670de0b6b3a76400006116a260055489611abb90919063ffffffff16565b8115156116ab57fe5b600254919004955060009450600160a060020a03161561181c57600254600160a060020a031663ca8127d4893360006040516060015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401606060405180830381600087803b151561172657600080fd5b6102c65a03f1151561173757600080fd5b5050506040518051906020018051906020018051929550909350909150506000861180156117655750600083115b8015611772575060648311155b1561179857606461178b8785830363ffffffff611abb16565b81151561179457fe5b0495505b6000851180156117a85750600082115b80156117b5575060648211155b156117db5760646117ce8684830363ffffffff611abb16565b8115156117d757fe5b0494505b6000851180156117eb5750600081115b80156117f8575060648111155b1561181c57606461180f868363ffffffff611abb16565b81151561181857fe5b0493505b61186261182f888763ffffffff61163716565b600160a060020a03808f16600090815260066020908152604080832033909416835292905220549063ffffffff611ae616565b600160a060020a03808e16600090815260066020908152604080832033909416835292905220556118de6118ac856118a08a8a63ffffffff611ae616565b9063ffffffff61163716565b600160a060020a03808f166000908152600660209081526040808320938e16835292905220549063ffffffff61163716565b600160a060020a03808e166000908152600660209081526040808320938d16835292905220556119568b6119188b8a63ffffffff611abb16565b81151561192157fe5b600160a060020a03808e166000908152600660209081526040808320339094168352929052205491900463ffffffff61163716565b600160a060020a03808c16600090815260066020908152604080832033909416835292905220556119ce8b6119918b8a63ffffffff611abb16565b81151561199a57fe5b600160a060020a03808e166000908152600660209081526040808320938f168352929052205491900463ffffffff611ae616565b600160a060020a03808c166000908152600660209081526040808320938d1683529290522055611a4c611a1785611a0b898963ffffffff61163716565b9063ffffffff611ae616565b600160a060020a03808f166000908152600660209081526040808320600354909416835292905220549063ffffffff61163716565b600660008e600160a060020a0316600160a060020a031681526020019081526020016000206000600360009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002081905550505050505050505050505050565b600080831515611ace576000915061164a565b50828202828482811515611ade57fe5b041461164657fe5b600082821115611af257fe5b50900390565b604080519081016040526002815b6000815260200190600190039081611b065790505090560054cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8a165627a7a7230582061df69d2be527d09b31f3a13af9bfafd137d40a8d793b9c1c750c11733ed0cc00029

Deployed Bytecode

0x6060604052600436106101505763ffffffff60e060020a6000350416630a19b14a8114610160578063278b8c0e146101af5780632d804ca2146101ee5780632e1a7d4d1461023b578063338b5dea1461025157806348d64fd5146102735780634f3f2cbc14610292578063508493bc146102b157806354d03b5c146102d657806357786394146102ec578063617a0951146102ff57806365e17c9d1461032e57806371ffcb16146103415780638823a9c0146103605780638da5cb5b146103765780638f13f48e146103895780639e281a98146103b3578063a2190b46146103d5578063c281309e146103f7578063c4e29e661461040a578063cb3cb08514610445578063d0e30db0146104b3578063da147d32146104bb578063e7b808ea146104ce578063f2fde38b14610505578063f7213db614610524578063f7888aec1461053a578063fb6e155f1461055f575b341561015b57600080fd5b600080fd5b341561016b57600080fd5b6101ad600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e435166101043561012435610144356105a8565b005b34156101ba57600080fd5b6101ad600160a060020a03600435811690602435906044351660643560843560a43560ff60c4351660e43561010435610867565b34156101f957600080fd5b610229600160a060020a0360043581169060243590604435811690606435906084359060a4359060c43516610a22565b60405190815260200160405180910390f35b341561024657600080fd5b6101ad600435610a50565b341561025c57600080fd5b6101ad600160a060020a0360043516602435610b8f565b341561027e57600080fd5b6101ad600160a060020a0360043516610cf5565b341561029d57600080fd5b6101ad600160a060020a0360043516610d5a565b34156102bc57600080fd5b610229600160a060020a0360043581169060243516610dbf565b34156102e157600080fd5b6101ad600435610ddc565b34156102f757600080fd5b610229610e0b565b341561030a57600080fd5b610312610e11565b604051600160a060020a03909116815260200160405180910390f35b341561033957600080fd5b610312610e20565b341561034c57600080fd5b6101ad600160a060020a0360043516610e2f565b341561036b57600080fd5b6101ad600435610e8e565b341561038157600080fd5b610312610ebd565b341561039457600080fd5b61039f600435610ecc565b604051901515815260200160405180910390f35b34156103be57600080fd5b6101ad600160a060020a0360043516602435610ee1565b34156103e057600080fd5b610229600160a060020a036004351660243561108e565b341561040257600080fd5b610229611119565b341561041557600080fd5b610229600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351661111f565b341561045057600080fd5b61049d600160a060020a0360043581169060243590604435811690606435906084359060a4359060c43581169060ff60e43516906101043590610124359061014435906101643516611198565b60405160ff909116815260200160405180910390f35b6101ad61124a565b34156104c657600080fd5b610312611305565b34156104d957600080fd5b6104ed600160a060020a0360043516611314565b60405191825260208201526040908101905180910390f35b341561051057600080fd5b6101ad600160a060020a03600435166113ae565b341561052f57600080fd5b610229600435611449565b341561054557600080fd5b610229600160a060020a036004358116906024351661145b565b341561056a57600080fd5b610229600160a060020a0360043581169060243590604435811690606435906084359060a4359060c4351660ff60e435166101043561012435611486565b60008060005a92506105bf8e8e8e8e8e8e8e61111f565b915087600160a060020a03166001836040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0160405180910390208989896040516000815260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f1151561066957600080fd5b505060206040510351600160a060020a0316141580610696575060008281526007602052604090205460ff165b806106a057508943115b806106c957506000828152600860205260409020548d906106c7908663ffffffff61163716565b115b156106d357600080fd5b6106e18e8e8e8e8c89611651565b600082815260086020526040902054610700908563ffffffff61163716565b6000838152600860205260409020558c6107208c8663ffffffff611abb16565b81151561072957fe5b6001549190049150600160a060020a0316156107e457600154600160a060020a031663ee0c3e028f868f858d33898b60405160e060020a63ffffffff8b16028152600160a060020a039889166004820152602481019790975294871660448701526064860193909352908516608485015290931660a483015260c482019290925260e481019190915261010401600060405180830381600087803b15156107cf57600080fd5b6102c65a03f115156107e057600080fd5b5050505b7f68381874bf7a1a19bfeecb18abbaa22f0fc7892cfec46e7dd4ea9b3688419d188e858e848c3388604051600160a060020a03978816815260208101969096529386166040808701919091526060860193909352908516608085015290931660a083015260c082015260e001905180910390a15050505050505050505050505050565b60006108788a8a8a8a8a8a3361111f565b905033600160a060020a03166001826040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0160405180910390208686866040516000815260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f1151561092257600080fd5b505060206040510351600160a060020a03161461093e57600080fd5b6000818152600760209081526040808320805460ff19166001179055600890915290819020547f499af4d13c30121ba8152d6f34a69ea73c4baa470e888ca031257a58b9216c60918c918c918c918c918c918c9133918d918d918d918d919051600160a060020a039c8d168152602081019b909b52988b166040808c019190915260608b019890985260808a019690965260a08901949094529190971660c087015260ff90961660e086015261010085019590955261012084019490945261014083019390935261016082015261018001905180910390a150505050505050505050565b600080610a348989898989898961111f565b6000908152600860205260409020549998505050505050505050565b33600160a060020a03166000908152600080516020611b1f833981519152602052604090205481901015610a8357600080fd5b33600160a060020a03166000908152600080516020611b1f8339815191526020526040902054610ab9908263ffffffff611ae616565b33600160a060020a03166000818152600080516020611b1f833981519152602052604090819020929092559082156108fc0290839051600060405180830381858888f193505050501515610b0c57600080fd5b33600160a060020a0381166000908152600080516020611b1f8339815191526020526040808220547ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567939185919051600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a150565b600160a060020a0382161515610ba457600080fd5b81600160a060020a03166323b872dd33308460006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610c0e57600080fd5b6102c65a03f11515610c1f57600080fd5b505050604051805190501515610c3457600080fd5b600160a060020a0380831660009081526006602090815260408083203390941683529290522054610c6b908263ffffffff61163716565b600160a060020a038381166000908152600660209081526040808320339485168452909152908190208390557fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79285929185919051600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a15050565b60005433600160a060020a03908116911614610d1057600080fd5b600154600160a060020a0382811691161415610d2b57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614610d7557600080fd5b600254600160a060020a0382811691161415610d9057600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600660209081526000928352604080842090915290825290205481565b60005433600160a060020a03908116911614610df757600080fd5b600454811415610e0657600080fd5b600455565b60045481565b600254600160a060020a031681565b600354600160a060020a031681565b60005433600160a060020a03908116911614610e4a57600080fd5b600160a060020a0381161515610e5f57600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614610ea957600080fd5b600554811415610eb857600080fd5b600555565b600054600160a060020a031681565b60076020526000908152604090205460ff1681565b600160a060020a0382161515610ef657600080fd5b600160a060020a038083166000908152600660209081526040808320339094168352929052205481901015610f2a57600080fd5b600160a060020a0380831660009081526006602090815260408083203390941683529290522054610f61908263ffffffff611ae616565b600160a060020a03808416600081815260066020908152604080832033958616845290915280822094909455909263a9059cbb92918591516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610fe057600080fd5b6102c65a03f11515610ff157600080fd5b50505060405180519050151561100657600080fd5b600160a060020a03808316600090815260066020908152604080832033948516845290915290819020547ff341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb5679285929091859151600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a15050565b600080600080670de0b6b3a76400006110b260055487611abb90919063ffffffff16565b8115156110bb57fe5b0492506110c786611314565b90925090506000831180156110dc5750600082115b80156110e9575060648211155b1561110f5760646111028484830363ffffffff611abb16565b81151561110b57fe5b0492505b5090949350505050565b60055481565b600030888888888888886040516c01000000000000000000000000600160a060020a03998a168102825297891688026014820152602881019690965293871686026048860152605c850192909252607c840152609c8301529092160260bc82015260d00160405180910390209050979650505050505050565b6000806111a5838561108e565b9050600660008f600160a060020a0316600160a060020a03168152602001908152602001600020600084600160a060020a0316600160a060020a0316815260200190815260200160002054611203828661163790919063ffffffff16565b11156112125760019150611239565b836112258f8f8f8f8f8f8f8f8f8f611486565b10156112345760029150611239565b600091505b509c9b505050505050505050505050565b33600160a060020a03166000908152600080516020611b1f8339815191526020526040902054611280903463ffffffff61163716565b33600160a060020a0381166000908152600080516020611b1f83398151915260205260408082208490557fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d793919291349151600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a1565b600154600160a060020a031681565b6002546000908190600160a060020a0316156113a957600254600160a060020a03166357d62a308460006040516040015260405160e060020a63ffffffff8416028152600160a060020a0390911660048201526024016040805180830381600087803b151561138257600080fd5b6102c65a03f1151561139357600080fd5b5050506040518051906020018051919350909150505b915091565b60005433600160a060020a039081169116146113c957600080fd5b600160a060020a03811615156113de57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60086020526000908152604090205481565b600160a060020a03918216600090815260066020908152604080832093909416825291909152205490565b600080611491611af8565b6114a08d8d8d8d8d8d8d61111f565b915086600160a060020a03166001836040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0160405180910390208888886040516000815260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f1151561154a57600080fd5b505060206040510351600160a060020a0316141580611577575060008281526007602052604090205460ff165b8061158157508843115b8061159a57506000828152600860205260409020548c11155b156115a85760009250611627565b6000828152600860205260409020546115c8908d9063ffffffff611ae616565b8152600160a060020a038b81166000908152600660209081526040808320938b16835292905220548a906115fc908e611abb565b81151561160557fe5b0460208201908152518151101561161f5780519250611627565b602081015192505b50509a9950505050505050505050565b60008282018381101561164657fe5b8091505b5092915050565b600080600080600080670de0b6b3a764000061167860045489611abb90919063ffffffff16565b81151561168157fe5b049550670de0b6b3a76400006116a260055489611abb90919063ffffffff16565b8115156116ab57fe5b600254919004955060009450600160a060020a03161561181c57600254600160a060020a031663ca8127d4893360006040516060015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401606060405180830381600087803b151561172657600080fd5b6102c65a03f1151561173757600080fd5b5050506040518051906020018051906020018051929550909350909150506000861180156117655750600083115b8015611772575060648311155b1561179857606461178b8785830363ffffffff611abb16565b81151561179457fe5b0495505b6000851180156117a85750600082115b80156117b5575060648211155b156117db5760646117ce8684830363ffffffff611abb16565b8115156117d757fe5b0494505b6000851180156117eb5750600081115b80156117f8575060648111155b1561181c57606461180f868363ffffffff611abb16565b81151561181857fe5b0493505b61186261182f888763ffffffff61163716565b600160a060020a03808f16600090815260066020908152604080832033909416835292905220549063ffffffff611ae616565b600160a060020a03808e16600090815260066020908152604080832033909416835292905220556118de6118ac856118a08a8a63ffffffff611ae616565b9063ffffffff61163716565b600160a060020a03808f166000908152600660209081526040808320938e16835292905220549063ffffffff61163716565b600160a060020a03808e166000908152600660209081526040808320938d16835292905220556119568b6119188b8a63ffffffff611abb16565b81151561192157fe5b600160a060020a03808e166000908152600660209081526040808320339094168352929052205491900463ffffffff61163716565b600160a060020a03808c16600090815260066020908152604080832033909416835292905220556119ce8b6119918b8a63ffffffff611abb16565b81151561199a57fe5b600160a060020a03808e166000908152600660209081526040808320938f168352929052205491900463ffffffff611ae616565b600160a060020a03808c166000908152600660209081526040808320938d1683529290522055611a4c611a1785611a0b898963ffffffff61163716565b9063ffffffff611ae616565b600160a060020a03808f166000908152600660209081526040808320600354909416835292905220549063ffffffff61163716565b600660008e600160a060020a0316600160a060020a031681526020019081526020016000206000600360009054906101000a9004600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002081905550505050505050505050505050565b600080831515611ace576000915061164a565b50828202828482811515611ade57fe5b041461164657fe5b600082821115611af257fe5b50900390565b604080519081016040526002815b6000815260200190600190039081611b065790505090560054cdd369e4e8a8515e52ca72ec816c2101831ad1f18bf44102ed171459c9b4f8a165627a7a7230582061df69d2be527d09b31f3a13af9bfafd137d40a8d793b9c1c750c11733ed0cc00029

Swarm Source

bzzr://61df69d2be527d09b31f3a13af9bfafd137d40a8d793b9c1c750c11733ed0cc0

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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.