ETH Price: $2,063.17 (+0.09%)

Contract

0x0232Ba609782Cea145Ec3663F52CF7aEb4AC773C
 

Overview

ETH Balance

0.017367984053883367 ETH

Eth Value

$35.83 (@ $2,063.17/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw Ether117708922021-02-01 14:34:031513 days ago1612190043IN
Kyber: Reserve eQUAD
0 ETH0.00581346180
Withdraw Token117708802021-02-01 14:32:391513 days ago1612189959IN
Kyber: Reserve eQUAD
0 ETH0.00797346180
Withdraw Ether117708212021-02-01 14:21:081513 days ago1612189268IN
Kyber: Reserve eQUAD
0 ETH0.00500789155
Withdraw Ether117703602021-02-01 12:39:131513 days ago1612183153IN
Kyber: Reserve eQUAD
0 ETH0.00349675108.22857142
Withdraw Ether117696202021-02-01 9:51:161513 days ago1612173076IN
Kyber: Reserve eQUAD
0 ETH0.00348896108.22857142
Withdraw Ether117696202021-02-01 9:51:161513 days ago1612173076IN
Kyber: Reserve eQUAD
0 ETH0.0026664682.71428571
Withdraw Ether113072542020-11-22 9:46:141584 days ago1606038374IN
Kyber: Reserve eQUAD
0 ETH0.0019069359
Withdraw Ether105883022020-08-03 17:57:541695 days ago1596477474IN
Kyber: Reserve eQUAD
0 ETH0.0013217141
Set Contracts104110682020-07-07 7:59:291723 days ago1594108769IN
Kyber: Reserve eQUAD
0 ETH0.0014265941
Transfer101295892020-05-24 16:20:451766 days ago1590337245IN
Kyber: Reserve eQUAD
8 ETH0.0006745230
Transfer99552952020-04-27 15:24:511793 days ago1588001091IN
Kyber: Reserve eQUAD
2 ETH0.0002922913
Transfer99552782020-04-27 15:21:311793 days ago1588000891IN
Kyber: Reserve eQUAD
0.01 ETH0.0002922913
Transfer99518662020-04-27 2:32:561794 days ago1587954776IN
Kyber: Reserve eQUAD
0.3 ETH0.001150
Set Contracts90378152019-12-02 11:26:411940 days ago1575286001IN
Kyber: Reserve eQUAD
0 ETH0.0004516910.5
Set Contracts81550402019-07-15 10:20:432080 days ago1563186043IN
Kyber: Reserve eQUAD
0 ETH0.0006462415
Transfer81153202019-07-09 6:04:252087 days ago1562652265IN
Kyber: Reserve eQUAD
78.62611597 ETH0.0003372615
Withdraw81084592019-07-08 4:29:492088 days ago1562560189IN
Kyber: Reserve eQUAD
0 ETH0.0005011514.15625
Approve Withdraw...81084492019-07-08 4:27:452088 days ago1562560065IN
Kyber: Reserve eQUAD
0 ETH0.0007518814.15625
Withdraw81084332019-07-08 4:23:392088 days ago1562559819IN
Kyber: Reserve eQUAD
0 ETH0.0006806813.53
Approve Withdraw...81084192019-07-08 4:21:322088 days ago1562559692IN
Kyber: Reserve eQUAD
0 ETH0.0008251215
Approve Withdraw...81083962019-07-08 4:14:132088 days ago1562559253IN
Kyber: Reserve eQUAD
0 ETH0.0006010815
Withdraw Ether81083632019-07-08 4:08:442088 days ago1562558924IN
Kyber: Reserve eQUAD
0 ETH0.000298169
Withdraw Token81083492019-07-08 4:06:532088 days ago1562558813IN
Kyber: Reserve eQUAD
0 ETH0.000389139
Transfer81082362019-07-08 3:41:592088 days ago1562557319IN
Kyber: Reserve eQUAD
0.05 ETH0.000202359
Approve Withdraw...81082182019-07-08 3:36:442088 days ago1562557004IN
Kyber: Reserve eQUAD
0 ETH0.001032819
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer198260002024-05-08 14:41:23321 days ago1715179283
Kyber: Reserve eQUAD
0.20266465 ETH
Trade150400882022-06-28 14:24:121001 days ago1656426252
Kyber: Reserve eQUAD
0.145058 ETH
-123670502021-05-04 9:50:151421 days ago1620121815
Kyber: Reserve eQUAD
0.08627513 ETH
-123566262021-05-02 19:27:511423 days ago1619983671
Kyber: Reserve eQUAD
0.08741221 ETH
-123274642021-04-28 7:08:401428 days ago1619593720
Kyber: Reserve eQUAD
0.14504802 ETH
-117708922021-02-01 14:34:031513 days ago1612190043
Kyber: Reserve eQUAD
16 ETH
-117708582021-02-01 14:29:381513 days ago1612189778
Kyber: Reserve eQUAD
1.68004139 ETH
-117708412021-02-01 14:25:421513 days ago1612189542
Kyber: Reserve eQUAD
1.14659481 ETH
-117708402021-02-01 14:25:371513 days ago1612189537
Kyber: Reserve eQUAD
1.77699529 ETH
-117708302021-02-01 14:23:351513 days ago1612189415
Kyber: Reserve eQUAD
1.998 ETH
-117708252021-02-01 14:21:291513 days ago1612189289
Kyber: Reserve eQUAD
2.15295386 ETH
-117708242021-02-01 14:21:231513 days ago1612189283
Kyber: Reserve eQUAD
2.21578998 ETH
-117708212021-02-01 14:21:081513 days ago1612189268
Kyber: Reserve eQUAD
4.93086999 ETH
-117708212021-02-01 14:21:081513 days ago1612189268
Kyber: Reserve eQUAD
28 ETH
-117707862021-02-01 14:13:431513 days ago1612188823
Kyber: Reserve eQUAD
1.8979212 ETH
-117706962021-02-01 13:54:491513 days ago1612187689
Kyber: Reserve eQUAD
1.92737872 ETH
-117705562021-02-01 13:22:231513 days ago1612185743
Kyber: Reserve eQUAD
1.14327146 ETH
-117704532021-02-01 12:59:321513 days ago1612184372
Kyber: Reserve eQUAD
1.78074776 ETH
-117704262021-02-01 12:53:321513 days ago1612184012
Kyber: Reserve eQUAD
1.998 ETH
-117704072021-02-01 12:49:421513 days ago1612183782
Kyber: Reserve eQUAD
2.32049155 ETH
-117703852021-02-01 12:44:411513 days ago1612183481
Kyber: Reserve eQUAD
1.36344086 ETH
-117703812021-02-01 12:43:271513 days ago1612183407
Kyber: Reserve eQUAD
2.04016629 ETH
-117703792021-02-01 12:42:101513 days ago1612183330
Kyber: Reserve eQUAD
2.21004387 ETH
-117703742021-02-01 12:41:291513 days ago1612183289
Kyber: Reserve eQUAD
1.3642992 ETH
-117703712021-02-01 12:41:061513 days ago1612183266
Kyber: Reserve eQUAD
1.99278285 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KyberReserve

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-07-15
*/

/**
 *Submitted for verification at Etherscan.io on 2018-07-05
*/

pragma solidity ^0.4.13;

interface ConversionRatesInterface {

    function recordImbalance(
        ERC20 token,
        int buyAmount,
        uint rateUpdateBlock,
        uint currentBlock
    )
        public;

    function getRate(ERC20 token, uint currentBlockNumber, bool buy, uint qty) public view returns(uint);
}

interface ERC20 {
    function totalSupply() public view returns (uint supply);
    function balanceOf(address _owner) public view returns (uint balance);
    function transfer(address _to, uint _value) public returns (bool success);
    function transferFrom(address _from, address _to, uint _value) public returns (bool success);
    function approve(address _spender, uint _value) public returns (bool success);
    function allowance(address _owner, address _spender) public view returns (uint remaining);
    function decimals() public view returns(uint digits);
    event Approval(address indexed _owner, address indexed _spender, uint _value);
}

interface KyberReserveInterface {

    function trade(
        ERC20 srcToken,
        uint srcAmount,
        ERC20 destToken,
        address destAddress,
        uint conversionRate,
        bool validate
    )
        public
        payable
        returns(bool);

    function getConversionRate(ERC20 src, ERC20 dest, uint srcQty, uint blockNumber) public view returns(uint);
}

contract PermissionGroups {

    address public admin;
    address public pendingAdmin;
    mapping(address=>bool) internal operators;
    mapping(address=>bool) internal alerters;
    address[] internal operatorsGroup;
    address[] internal alertersGroup;
    uint constant internal MAX_GROUP_SIZE = 50;

    function PermissionGroups() public {
        admin = msg.sender;
    }

    modifier onlyAdmin() {
        require(msg.sender == admin);
        _;
    }

    modifier onlyOperator() {
        require(operators[msg.sender]);
        _;
    }

    modifier onlyAlerter() {
        require(alerters[msg.sender]);
        _;
    }

    function getOperators () external view returns(address[]) {
        return operatorsGroup;
    }

    function getAlerters () external view returns(address[]) {
        return alertersGroup;
    }

    event TransferAdminPending(address pendingAdmin);

    /**
     * @dev Allows the current admin to set the pendingAdmin address.
     * @param newAdmin The address to transfer ownership to.
     */
    function transferAdmin(address newAdmin) public onlyAdmin {
        require(newAdmin != address(0));
        TransferAdminPending(pendingAdmin);
        pendingAdmin = newAdmin;
    }

    /**
     * @dev Allows the current admin to set the admin in one tx. Useful initial deployment.
     * @param newAdmin The address to transfer ownership to.
     */
    function transferAdminQuickly(address newAdmin) public onlyAdmin {
        require(newAdmin != address(0));
        TransferAdminPending(newAdmin);
        AdminClaimed(newAdmin, admin);
        admin = newAdmin;
    }

    event AdminClaimed( address newAdmin, address previousAdmin);

    /**
     * @dev Allows the pendingAdmin address to finalize the change admin process.
     */
    function claimAdmin() public {
        require(pendingAdmin == msg.sender);
        AdminClaimed(pendingAdmin, admin);
        admin = pendingAdmin;
        pendingAdmin = address(0);
    }

    event AlerterAdded (address newAlerter, bool isAdd);

    function addAlerter(address newAlerter) public onlyAdmin {
        require(!alerters[newAlerter]); // prevent duplicates.
        require(alertersGroup.length < MAX_GROUP_SIZE);

        AlerterAdded(newAlerter, true);
        alerters[newAlerter] = true;
        alertersGroup.push(newAlerter);
    }

    function removeAlerter (address alerter) public onlyAdmin {
        require(alerters[alerter]);
        alerters[alerter] = false;

        for (uint i = 0; i < alertersGroup.length; ++i) {
            if (alertersGroup[i] == alerter) {
                alertersGroup[i] = alertersGroup[alertersGroup.length - 1];
                alertersGroup.length--;
                AlerterAdded(alerter, false);
                break;
            }
        }
    }

    event OperatorAdded(address newOperator, bool isAdd);

    function addOperator(address newOperator) public onlyAdmin {
        require(!operators[newOperator]); // prevent duplicates.
        require(operatorsGroup.length < MAX_GROUP_SIZE);

        OperatorAdded(newOperator, true);
        operators[newOperator] = true;
        operatorsGroup.push(newOperator);
    }

    function removeOperator (address operator) public onlyAdmin {
        require(operators[operator]);
        operators[operator] = false;

        for (uint i = 0; i < operatorsGroup.length; ++i) {
            if (operatorsGroup[i] == operator) {
                operatorsGroup[i] = operatorsGroup[operatorsGroup.length - 1];
                operatorsGroup.length -= 1;
                OperatorAdded(operator, false);
                break;
            }
        }
    }
}

interface SanityRatesInterface {
    function getSanityRate(ERC20 src, ERC20 dest) public view returns(uint);
}

contract Utils {

    ERC20 constant internal ETH_TOKEN_ADDRESS = ERC20(0x00eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee);
    uint  constant internal PRECISION = (10**18);
    uint  constant internal MAX_QTY   = (10**28); // 10B tokens
    uint  constant internal MAX_RATE  = (PRECISION * 10**6); // up to 1M tokens per ETH
    uint  constant internal MAX_DECIMALS = 18;
    uint  constant internal ETH_DECIMALS = 18;
    mapping(address=>uint) internal decimals;

    function setDecimals(ERC20 token) internal {
        if (token == ETH_TOKEN_ADDRESS) decimals[token] = ETH_DECIMALS;
        else decimals[token] = token.decimals();
    }

    function getDecimals(ERC20 token) internal view returns(uint) {
        if (token == ETH_TOKEN_ADDRESS) return ETH_DECIMALS; // save storage access
        uint tokenDecimals = decimals[token];
        // technically, there might be token with decimals 0
        // moreover, very possible that old tokens have decimals 0
        // these tokens will just have higher gas fees.
        if(tokenDecimals == 0) return token.decimals();

        return tokenDecimals;
    }

    function calcDstQty(uint srcQty, uint srcDecimals, uint dstDecimals, uint rate) internal pure returns(uint) {
        require(srcQty <= MAX_QTY);
        require(rate <= MAX_RATE);

        if (dstDecimals >= srcDecimals) {
            require((dstDecimals - srcDecimals) <= MAX_DECIMALS);
            return (srcQty * rate * (10**(dstDecimals - srcDecimals))) / PRECISION;
        } else {
            require((srcDecimals - dstDecimals) <= MAX_DECIMALS);
            return (srcQty * rate) / (PRECISION * (10**(srcDecimals - dstDecimals)));
        }
    }

    function calcSrcQty(uint dstQty, uint srcDecimals, uint dstDecimals, uint rate) internal pure returns(uint) {
        require(dstQty <= MAX_QTY);
        require(rate <= MAX_RATE);
        
        //source quantity is rounded up. to avoid dest quantity being too low.
        uint numerator;
        uint denominator;
        if (srcDecimals >= dstDecimals) {
            require((srcDecimals - dstDecimals) <= MAX_DECIMALS);
            numerator = (PRECISION * dstQty * (10**(srcDecimals - dstDecimals)));
            denominator = rate;
        } else {
            require((dstDecimals - srcDecimals) <= MAX_DECIMALS);
            numerator = (PRECISION * dstQty);
            denominator = (rate * (10**(dstDecimals - srcDecimals)));
        }
        return (numerator + denominator - 1) / denominator; //avoid rounding down errors
    }
}

contract Withdrawable is PermissionGroups {

    event TokenWithdraw(ERC20 token, uint amount, address sendTo);

    /**
     * @dev Withdraw all ERC20 compatible tokens
     * @param token ERC20 The address of the token contract
     */
    function withdrawToken(ERC20 token, uint amount, address sendTo) external onlyAdmin {
        require(token.transfer(sendTo, amount));
        TokenWithdraw(token, amount, sendTo);
    }

    event EtherWithdraw(uint amount, address sendTo);

    /**
     * @dev Withdraw Ethers
     */
    function withdrawEther(uint amount, address sendTo) external onlyAdmin {
        sendTo.transfer(amount);
        EtherWithdraw(amount, sendTo);
    }
}

contract KyberReserve is KyberReserveInterface, Withdrawable, Utils {

    address public kyberNetwork;
    bool public tradeEnabled;
    ConversionRatesInterface public conversionRatesContract;
    SanityRatesInterface public sanityRatesContract;
    mapping(bytes32=>bool) public approvedWithdrawAddresses; // sha3(token,address)=>bool
    mapping(address=>address) public tokenWallet;

    function KyberReserve(address _kyberNetwork, ConversionRatesInterface _ratesContract, address _admin) public {
        require(_admin != address(0));
        require(_ratesContract != address(0));
        require(_kyberNetwork != address(0));
        kyberNetwork = _kyberNetwork;
        conversionRatesContract = _ratesContract;
        admin = _admin;
        tradeEnabled = true;
    }

    event DepositToken(ERC20 token, uint amount);

    function() public payable {
        DepositToken(ETH_TOKEN_ADDRESS, msg.value);
    }

    event TradeExecute(
        address indexed origin,
        address src,
        uint srcAmount,
        address destToken,
        uint destAmount,
        address destAddress
    );

    function trade(
        ERC20 srcToken,
        uint srcAmount,
        ERC20 destToken,
        address destAddress,
        uint conversionRate,
        bool validate
    )
        public
        payable
        returns(bool)
    {
        require(tradeEnabled);
        require(msg.sender == kyberNetwork);

        require(doTrade(srcToken, srcAmount, destToken, destAddress, conversionRate, validate));

        return true;
    }

    event TradeEnabled(bool enable);

    function enableTrade() public onlyAdmin returns(bool) {
        tradeEnabled = true;
        TradeEnabled(true);

        return true;
    }

    function disableTrade() public onlyAlerter returns(bool) {
        tradeEnabled = false;
        TradeEnabled(false);

        return true;
    }

    event WithdrawAddressApproved(ERC20 token, address addr, bool approve);

    function approveWithdrawAddress(ERC20 token, address addr, bool approve) public onlyAdmin {
        approvedWithdrawAddresses[keccak256(token, addr)] = approve;
        WithdrawAddressApproved(token, addr, approve);

        setDecimals(token);
        if ((tokenWallet[token] == address(0x0)) && (token != ETH_TOKEN_ADDRESS)) {
            tokenWallet[token] = this; // by default
            require(token.approve(this, 2 ** 255));
        }
    }

    event NewTokenWallet(ERC20 token, address wallet);

    function setTokenWallet(ERC20 token, address wallet) public onlyAdmin {
        require(wallet != address(0x0));
        tokenWallet[token] = wallet;
        NewTokenWallet(token, wallet);
    }

    event WithdrawFunds(ERC20 token, uint amount, address destination);

    function withdraw(ERC20 token, uint amount, address destination) public onlyOperator returns(bool) {
        require(approvedWithdrawAddresses[keccak256(token, destination)]);

        if (token == ETH_TOKEN_ADDRESS) {
            destination.transfer(amount);
        } else {
            require(token.transferFrom(tokenWallet[token], destination, amount));
        }

        WithdrawFunds(token, amount, destination);

        return true;
    }

    event SetContractAddresses(address network, address rate, address sanity);

    function setContracts(
        address _kyberNetwork,
        ConversionRatesInterface _conversionRates,
        SanityRatesInterface _sanityRates
    )
        public
        onlyAdmin
    {
        require(_kyberNetwork != address(0));
        require(_conversionRates != address(0));

        kyberNetwork = _kyberNetwork;
        conversionRatesContract = _conversionRates;
        sanityRatesContract = _sanityRates;

        SetContractAddresses(kyberNetwork, conversionRatesContract, sanityRatesContract);
    }

    ////////////////////////////////////////////////////////////////////////////
    /// status functions ///////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////
    function getBalance(ERC20 token) public view returns(uint) {
        if (token == ETH_TOKEN_ADDRESS)
            return this.balance;
        else {
            address wallet = tokenWallet[token];
            uint balanceOfWallet = token.balanceOf(wallet);
            uint allowanceOfWallet = token.allowance(wallet, this);

            return (balanceOfWallet < allowanceOfWallet) ? balanceOfWallet : allowanceOfWallet;
        }
    }

    function getDestQty(ERC20 src, ERC20 dest, uint srcQty, uint rate) public view returns(uint) {
        uint dstDecimals = getDecimals(dest);
        uint srcDecimals = getDecimals(src);

        return calcDstQty(srcQty, srcDecimals, dstDecimals, rate);
    }

    function getSrcQty(ERC20 src, ERC20 dest, uint dstQty, uint rate) public view returns(uint) {
        uint dstDecimals = getDecimals(dest);
        uint srcDecimals = getDecimals(src);

        return calcSrcQty(dstQty, srcDecimals, dstDecimals, rate);
    }

    function getConversionRate(ERC20 src, ERC20 dest, uint srcQty, uint blockNumber) public view returns(uint) {
        ERC20 token;
        bool  isBuy;

        if (!tradeEnabled) return 0;

        if (ETH_TOKEN_ADDRESS == src) {
            isBuy = true;
            token = dest;
        } else if (ETH_TOKEN_ADDRESS == dest) {
            isBuy = false;
            token = src;
        } else {
            return 0; // pair is not listed
        }

        uint rate = conversionRatesContract.getRate(token, blockNumber, isBuy, srcQty);
        uint destQty = getDestQty(src, dest, srcQty, rate);

        if (getBalance(dest) < destQty) return 0;

        if (sanityRatesContract != address(0)) {
            uint sanityRate = sanityRatesContract.getSanityRate(src, dest);
            if (rate > sanityRate) return 0;
        }

        return rate;
    }

    /// @dev do a trade
    /// @param srcToken Src token
    /// @param srcAmount Amount of src token
    /// @param destToken Destination token
    /// @param destAddress Destination address to send tokens to
    /// @param validate If true, additional validations are applicable
    /// @return true iff trade is successful
    function doTrade(
        ERC20 srcToken,
        uint srcAmount,
        ERC20 destToken,
        address destAddress,
        uint conversionRate,
        bool validate
    )
        internal
        returns(bool)
    {
        // can skip validation if done at kyber network level
        if (validate) {
            require(conversionRate > 0);
            if (srcToken == ETH_TOKEN_ADDRESS)
                require(msg.value == srcAmount);
            else
                require(msg.value == 0);
        }

        uint destAmount = getDestQty(srcToken, destToken, srcAmount, conversionRate);
        // sanity check
        require(destAmount > 0);

        // add to imbalance
        ERC20 token;
        int tradeAmount;
        if (srcToken == ETH_TOKEN_ADDRESS) {
            tradeAmount = int(destAmount);
            token = destToken;
        } else {
            tradeAmount = -1 * int(srcAmount);
            token = srcToken;
        }

        conversionRatesContract.recordImbalance(
            token,
            tradeAmount,
            0,
            block.number
        );

        // collect src tokens
        if (srcToken != ETH_TOKEN_ADDRESS) {
            require(srcToken.transferFrom(msg.sender, tokenWallet[srcToken], srcAmount));
        }

        // send dest tokens
        if (destToken == ETH_TOKEN_ADDRESS) {
            destAddress.transfer(destAmount);
        } else {
            require(destToken.transferFrom(tokenWallet[destToken], destAddress, destAmount));
        }

        TradeExecute(msg.sender, srcToken, srcAmount, destToken, destAmount, destAddress);

        return true;
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[],"name":"enableTrade","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"alerter","type":"address"}],"name":"removeAlerter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"wallet","type":"address"}],"name":"setTokenWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pendingAdmin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOperators","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"amount","type":"uint256"},{"name":"sendTo","type":"address"}],"name":"withdrawToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newAlerter","type":"address"}],"name":"addAlerter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sanityRatesContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"addr","type":"address"},{"name":"approve","type":"bool"}],"name":"approveWithdrawAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"amount","type":"uint256"},{"name":"destination","type":"address"}],"name":"withdraw","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"disableTrade","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"srcToken","type":"address"},{"name":"srcAmount","type":"uint256"},{"name":"destToken","type":"address"},{"name":"destAddress","type":"address"},{"name":"conversionRate","type":"uint256"},{"name":"validate","type":"bool"}],"name":"trade","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"transferAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"transferAdminQuickly","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAlerters","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"src","type":"address"},{"name":"dest","type":"address"},{"name":"srcQty","type":"uint256"},{"name":"blockNumber","type":"uint256"}],"name":"getConversionRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOperator","type":"address"}],"name":"addOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"src","type":"address"},{"name":"dest","type":"address"},{"name":"dstQty","type":"uint256"},{"name":"rate","type":"uint256"}],"name":"getSrcQty","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"operator","type":"address"}],"name":"removeOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kyberNetwork","type":"address"},{"name":"_conversionRates","type":"address"},{"name":"_sanityRates","type":"address"}],"name":"setContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"kyberNetwork","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"},{"name":"sendTo","type":"address"}],"name":"withdrawEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"conversionRatesContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tradeEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"approvedWithdrawAddresses","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"token","type":"address"}],"name":"getBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"src","type":"address"},{"name":"dest","type":"address"},{"name":"srcQty","type":"uint256"},{"name":"rate","type":"uint256"}],"name":"getDestQty","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_kyberNetwork","type":"address"},{"name":"_ratesContract","type":"address"},{"name":"_admin","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":"amount","type":"uint256"}],"name":"DepositToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"origin","type":"address"},{"indexed":false,"name":"src","type":"address"},{"indexed":false,"name":"srcAmount","type":"uint256"},{"indexed":false,"name":"destToken","type":"address"},{"indexed":false,"name":"destAmount","type":"uint256"},{"indexed":false,"name":"destAddress","type":"address"}],"name":"TradeExecute","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"enable","type":"bool"}],"name":"TradeEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"approve","type":"bool"}],"name":"WithdrawAddressApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"wallet","type":"address"}],"name":"NewTokenWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"destination","type":"address"}],"name":"WithdrawFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"network","type":"address"},{"indexed":false,"name":"rate","type":"address"},{"indexed":false,"name":"sanity","type":"address"}],"name":"SetContractAddresses","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"token","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"sendTo","type":"address"}],"name":"TokenWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"sendTo","type":"address"}],"name":"EtherWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"pendingAdmin","type":"address"}],"name":"TransferAdminPending","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newAdmin","type":"address"},{"indexed":false,"name":"previousAdmin","type":"address"}],"name":"AdminClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newAlerter","type":"address"},{"indexed":false,"name":"isAdd","type":"bool"}],"name":"AlerterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOperator","type":"address"},{"indexed":false,"name":"isAdd","type":"bool"}],"name":"OperatorAdded","type":"event"}]

6060604052341561000f57600080fd5b60405160608061219083398101604052808051919060200180519190602001805160008054600160a060020a03191633600160a060020a039081169190911790915590925082161515905061006357600080fd5b600160a060020a038216151561007857600080fd5b600160a060020a038316151561008d57600080fd5b6007805460088054600160a060020a03958616600160a060020a031991821617909155600080549486169482169490941790935560a060020a60ff02199390941691909316171674010000000000000000000000000000000000000000179055612094806100fc6000396000f3006060604052600436106101655763ffffffff60e060020a60003504166299d38681146101b957806301a12fd3146101e05780631bc7bfec14610201578063267822471461022657806327a099d8146102555780633ccdbb28146102bb578063408ee7fe146102e457806347e6924f14610303578063546dc71c1461031657806369328dec146103405780636940030f146103695780636cf698111461037c57806375829def146103a857806377f50f97146103c75780637acc8678146103da5780637c423f54146103f95780637cd442721461040c5780639870d7fe14610449578063a7fca95314610468578063a80cbac614610493578063ac8a584a146104b2578063b3066d49146104d1578063b78b842d146104fc578063ce56c4541461050f578063d5847d3314610531578063d621e81314610544578063d7b7024d14610557578063f851a4401461056d578063f8b2cb4f14610580578063fa64dffa1461059f575b7f2d0c0a8842b9944ece1495eb61121621b5e36bd6af3bba0318c695f525aef79f60008051602061204983398151915234604051600160a060020a03909216825260208201526040908101905180910390a1005b34156101c457600080fd5b6101cc6105ca565b604051901515815260200160405180910390f35b34156101eb57600080fd5b6101ff600160a060020a0360043516610658565b005b341561020c57600080fd5b6101ff600160a060020a03600435811690602435166107c8565b341561023157600080fd5b610239610874565b604051600160a060020a03909116815260200160405180910390f35b341561026057600080fd5b610268610883565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156102a757808201518382015260200161028f565b505050509050019250505060405180910390f35b34156102c657600080fd5b6101ff600160a060020a0360043581169060243590604435166108eb565b34156102ef57600080fd5b6101ff600160a060020a03600435166109e2565b341561030e57600080fd5b610239610ade565b341561032157600080fd5b6101ff600160a060020a03600435811690602435166044351515610aed565b341561034b57600080fd5b6101cc600160a060020a036004358116906024359060443516610cd7565b341561037457600080fd5b6101cc610eb0565b6101cc600160a060020a03600435811690602435906044358116906064351660843560a4351515610f31565b34156103b357600080fd5b6101ff600160a060020a0360043516610f9e565b34156103d257600080fd5b6101ff611039565b34156103e557600080fd5b6101ff600160a060020a03600435166110d3565b341561040457600080fd5b6102686111b5565b341561041757600080fd5b610437600160a060020a036004358116906024351660443560643561121b565b60405190815260200160405180910390f35b341561045457600080fd5b6101ff600160a060020a0360043516611406565b341561047357600080fd5b610437600160a060020a03600435811690602435166044356064356114d6565b341561049e57600080fd5b610239600160a060020a0360043516611508565b34156104bd57600080fd5b6101ff600160a060020a0360043516611523565b34156104dc57600080fd5b6101ff600160a060020a036004358116906024358116906044351661168f565b341561050757600080fd5b610239611773565b341561051a57600080fd5b6101ff600435600160a060020a0360243516611782565b341561053c57600080fd5b610239611815565b341561054f57600080fd5b6101cc611824565b341561056257600080fd5b6101cc600435611845565b341561057857600080fd5b61023961185a565b341561058b57600080fd5b610437600160a060020a0360043516611869565b34156105aa57600080fd5b610437600160a060020a03600435811690602435166044356064356119bd565b6000805433600160a060020a039081169116146105e657600080fd5b6007805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790557f7d7f00509dd73ac4449f698ae75ccc797895eff5fa9d446d3df387598a26e7356001604051901515815260200160405180910390a15060015b90565b6000805433600160a060020a0390811691161461067457600080fd5b600160a060020a03821660009081526003602052604090205460ff16151561069b57600080fd5b50600160a060020a0381166000908152600360205260408120805460ff191690555b6005548110156107c45781600160a060020a03166005828154811015156106e057fe5b600091825260209091200154600160a060020a031614156107bc5760058054600019810190811061070d57fe5b60009182526020909120015460058054600160a060020a03909216918390811061073357fe5b60009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055600580549061076f906000198301611ff4565b507f5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762826000604051600160a060020a039092168252151560208201526040908101905180910390a16107c4565b6001016106bd565b5050565b60005433600160a060020a039081169116146107e357600080fd5b600160a060020a03811615156107f857600080fd5b600160a060020a038281166000908152600b6020526040908190208054600160a060020a031916928416929092179091557f81995c7b922889ac0a81e41866106d4046268ea3a9abaae9f9e080a6ce36ee7d908390839051600160a060020a039283168152911660208201526040908101905180910390a15050565b600154600160a060020a031681565b61088b612018565b60048054806020026020016040519081016040528092919081815260200182805480156108e157602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116108c3575b5050505050905090565b60005433600160a060020a0390811691161461090657600080fd5b82600160a060020a031663a9059cbb828460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561096357600080fd5b6102c65a03f1151561097457600080fd5b50505060405180519050151561098957600080fd5b7f72cb8a894ddb372ceec3d2a7648d86f17d5a15caae0e986c53109b8a9a9385e6838383604051600160a060020a03938416815260208101929092529091166040808301919091526060909101905180910390a1505050565b60005433600160a060020a039081169116146109fd57600080fd5b600160a060020a03811660009081526003602052604090205460ff1615610a2357600080fd5b60055460329010610a3357600080fd5b7f5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762816001604051600160a060020a039092168252151560208201526040908101905180910390a1600160a060020a0381166000908152600360205260409020805460ff191660019081179091556005805490918101610ab28382611ff4565b5060009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055565b600954600160a060020a031681565b60005433600160a060020a03908116911614610b0857600080fd5b80600a600085856040516c01000000000000000000000000600160a060020a039384168102825291909216026014820152602801604051908190039020815260208101919091526040908101600020805460ff1916921515929092179091557fd5fd5351efae1f4bb760079da9f0ff9589e2c3e216337ca9d39cdff573b245c49084908490849051600160a060020a0393841681529190921660208201529015156040808301919091526060909101905180910390a1610bc7836119e4565b600160a060020a038381166000908152600b602052604090205416158015610c065750600160a060020a03831660008051602061204983398151915214155b15610cd257600160a060020a038381166000818152600b60205260408082208054600160a060020a03191630958616179055919263095ea7b39290917f800000000000000000000000000000000000000000000000000000000000000091516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610cac57600080fd5b6102c65a03f11515610cbd57600080fd5b505050604051805190501515610cd257600080fd5b505050565b600160a060020a03331660009081526002602052604081205460ff161515610cfe57600080fd5b600a600085846040516c01000000000000000000000000600160a060020a039384168102825291909216026014820152602801604051908190039020815260208101919091526040016000205460ff161515610d5957600080fd5b600160a060020a0384166000805160206120498339815191521415610dae57600160a060020a03821683156108fc0284604051600060405180830381858888f193505050501515610da957600080fd5b610e52565b600160a060020a038085166000818152600b60205260408082205492936323b872dd9316918691889190516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610e2c57600080fd5b6102c65a03f11515610e3d57600080fd5b505050604051805190501515610e5257600080fd5b7fb67719fc33c1f17d31bf3a698690d62066b1e0bae28fcd3c56cf2c015c2863d6848484604051600160a060020a03938416815260208101929092529091166040808301919091526060909101905180910390a15060019392505050565b600160a060020a03331660009081526003602052604081205460ff161515610ed757600080fd5b6007805474ff0000000000000000000000000000000000000000191690557f7d7f00509dd73ac4449f698ae75ccc797895eff5fa9d446d3df387598a26e7356000604051901515815260200160405180910390a150600190565b60075460009074010000000000000000000000000000000000000000900460ff161515610f5d57600080fd5b60075433600160a060020a03908116911614610f7857600080fd5b610f86878787878787611aa1565b1515610f9157600080fd5b5060019695505050505050565b60005433600160a060020a03908116911614610fb957600080fd5b600160a060020a0381161515610fce57600080fd5b6001547f3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc4090600160a060020a0316604051600160a060020a03909116815260200160405180910390a160018054600160a060020a031916600160a060020a0392909216919091179055565b60015433600160a060020a0390811691161461105457600080fd5b6001546000547f65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed91600160a060020a039081169116604051600160a060020a039283168152911660208201526040908101905180910390a16001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b60005433600160a060020a039081169116146110ee57600080fd5b600160a060020a038116151561110357600080fd5b7f3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc4081604051600160a060020a03909116815260200160405180910390a16000547f65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed908290600160a060020a0316604051600160a060020a039283168152911660208201526040908101905180910390a160008054600160a060020a031916600160a060020a0392909216919091179055565b6111bd612018565b60058054806020026020016040519081016040528092919081815260200182805480156108e157602002820191906000526020600020908154600160a060020a031681526001909101906020018083116108c3575050505050905090565b600080600080600080600760149054906101000a900460ff16151561124357600095506113f9565b600080516020612049833981519152600160a060020a038b16141561126e57600193508894506112a2565b600080516020612049833981519152600160a060020a038a16141561129957600093508994506112a2565b600095506113f9565b600854600160a060020a031663b8e9c22e8689878c60006040516020015260405160e060020a63ffffffff8716028152600160a060020a0390941660048501526024840192909252151560448301526064820152608401602060405180830381600087803b151561131257600080fd5b6102c65a03f1151561132357600080fd5b50505060405180519050925061133b8a8a8a866119bd565b9150816113478a611869565b101561135657600095506113f9565b600954600160a060020a0316156113f557600954600160a060020a031663a58092b78b8b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b15156113c857600080fd5b6102c65a03f115156113d957600080fd5b5050506040518051915050808311156113f557600095506113f9565b8295505b5050505050949350505050565b60005433600160a060020a0390811691161461142157600080fd5b600160a060020a03811660009081526002602052604090205460ff161561144757600080fd5b6004546032901061145757600080fd5b7f091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b816001604051600160a060020a039092168252151560208201526040908101905180910390a1600160a060020a0381166000908152600260205260409020805460ff191660019081179091556004805490918101610ab28382611ff4565b60008060006114e486611df6565b91506114ef87611df6565b90506114fd85828487611eb4565b979650505050505050565b600b60205260009081526040902054600160a060020a031681565b6000805433600160a060020a0390811691161461153f57600080fd5b600160a060020a03821660009081526002602052604090205460ff16151561156657600080fd5b50600160a060020a0381166000908152600260205260408120805460ff191690555b6004548110156107c45781600160a060020a03166004828154811015156115ab57fe5b600091825260209091200154600160a060020a03161415611687576004805460001981019081106115d857fe5b60009182526020909120015460048054600160a060020a0390921691839081106115fe57fe5b60009182526020909120018054600160a060020a031916600160a060020a039290921691909117905560048054600019019061163a9082611ff4565b507f091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b826000604051600160a060020a039092168252151560208201526040908101905180910390a16107c4565b600101611588565b60005433600160a060020a039081169116146116aa57600080fd5b600160a060020a03831615156116bf57600080fd5b600160a060020a03821615156116d457600080fd5b60078054600160a060020a03808616600160a060020a0319928316179283905560088054868316908416179081905560098054868416941693909317928390557f7a85322644a4462d8ff5482d2a841a4d231f8cfb3c9f4a50f66f8b2bd568c31c938216929082169116604051600160a060020a03938416815291831660208301529091166040808301919091526060909101905180910390a1505050565b600754600160a060020a031681565b60005433600160a060020a0390811691161461179d57600080fd5b600160a060020a03811682156108fc0283604051600060405180830381858888f1935050505015156117ce57600080fd5b7fec47e7ed86c86774d1a72c19f35c639911393fe7c1a34031fdbd260890da90de8282604051918252600160a060020a031660208201526040908101905180910390a15050565b600854600160a060020a031681565b60075474010000000000000000000000000000000000000000900460ff1681565b600a6020526000908152604090205460ff1681565b600054600160a060020a031681565b6000808080600160a060020a038516600080516020612049833981519152141561189f5730600160a060020a03163193506119b5565b600160a060020a038086166000818152600b602052604080822054909316955090916370a08231918691516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561190c57600080fd5b6102c65a03f1151561191d57600080fd5b5050506040518051925050600160a060020a03851663dd62ed3e843060006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561198757600080fd5b6102c65a03f1151561199857600080fd5b50505060405180519150508082106119b057806119b2565b815b93505b505050919050565b60008060006119cb86611df6565b91506119d687611df6565b90506114fd85828487611f5b565b600160a060020a0381166000805160206120498339815191521415611a2457600160a060020a038116600090815260066020526040902060129055611a9e565b80600160a060020a031663313ce5676000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611a6a57600080fd5b6102c65a03f11515611a7b57600080fd5b5050506040518051600160a060020a038316600090815260066020526040902055505b50565b6000806000808415611af55760008611611aba57600080fd5b600160a060020a038a166000805160206120498339815191521415611aea57348914611ae557600080fd5b611af5565b3415611af557600080fd5b611b018a898b896119bd565b925060008311611b1057600080fd5b600160a060020a038a166000805160206120498339815191521415611b39575086905081611b43565b5088905060001988025b600854600160a060020a031663c6fd2103838360004360405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260448301526064820152608401600060405180830381600087803b1515611ba957600080fd5b6102c65a03f11515611bba57600080fd5b505050600160a060020a038a1660008051602061204983398151915214611c8057600160a060020a03808b166000818152600b60205260408082205492936323b872dd9333939116918e9190516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515611c5a57600080fd5b6102c65a03f11515611c6b57600080fd5b505050604051805190501515611c8057600080fd5b600160a060020a0388166000805160206120498339815191521415611cd557600160a060020a03871683156108fc0284604051600060405180830381858888f193505050501515611cd057600080fd5b611d79565b600160a060020a038089166000818152600b60205260408082205492936323b872dd9316918b91889190516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515611d5357600080fd5b6102c65a03f11515611d6457600080fd5b505050604051805190501515611d7957600080fd5b33600160a060020a03167fea9415385bae08fe9f6dc457b02577166790cde83bb18cc340aac6cb81b824de8b8b8b878c604051600160a060020a039586168152602081019490945291841660408085019190915260608401919091529216608082015260a001905180910390a25060019998505050505050505050565b600080600160a060020a0383166000805160206120498339815191521415611e215760129150611eae565b50600160a060020a038216600090815260066020526040902054801515611eaa5782600160a060020a031663313ce5676000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611e8857600080fd5b6102c65a03f11515611e9957600080fd5b505050604051805190509150611eae565b8091505b50919050565b600080806b204fce5e3e25026110000000871115611ed157600080fd5b69d3c21bcecceda1000000841115611ee857600080fd5b848610611f195760128587031115611eff57600080fd5b5050828403600a0a8502670de0b6b3a76400000282611f3f565b60128686031115611f2957600080fd5b5050670de0b6b3a76400008502848403600a0a83025b80600182840103811515611f4f57fe5b04979650505050505050565b60006b204fce5e3e25026110000000851115611f7657600080fd5b69d3c21bcecceda1000000821115611f8d57600080fd5b838310611fc05760128484031115611fa457600080fd5b670de0b6b3a7640000858302858503600a0a025b049050611fec565b60128385031115611fd057600080fd5b828403600a0a670de0b6b3a764000002828602811515611fb857fe5b949350505050565b815481835581811511610cd257600083815260209020610cd291810190830161202a565b60206040519081016040526000815290565b61065591905b808211156120445760008155600101612030565b50905600000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeea165627a7a723058201d59d0bf4f7bf28f3790eed68bfeae39ef8fe90b7386feae63cfac4f72a64812002900000000000000000000000065897adcba42dcca5dd162c647b1cc3e312384900000000000000000000000006e251c08dc330fd67804bdbb547739dd8546775d00000000000000000000000030f1b9909162c77bae151102516d3091f65ca6cb

Deployed Bytecode

0x6060604052600436106101655763ffffffff60e060020a60003504166299d38681146101b957806301a12fd3146101e05780631bc7bfec14610201578063267822471461022657806327a099d8146102555780633ccdbb28146102bb578063408ee7fe146102e457806347e6924f14610303578063546dc71c1461031657806369328dec146103405780636940030f146103695780636cf698111461037c57806375829def146103a857806377f50f97146103c75780637acc8678146103da5780637c423f54146103f95780637cd442721461040c5780639870d7fe14610449578063a7fca95314610468578063a80cbac614610493578063ac8a584a146104b2578063b3066d49146104d1578063b78b842d146104fc578063ce56c4541461050f578063d5847d3314610531578063d621e81314610544578063d7b7024d14610557578063f851a4401461056d578063f8b2cb4f14610580578063fa64dffa1461059f575b7f2d0c0a8842b9944ece1495eb61121621b5e36bd6af3bba0318c695f525aef79f60008051602061204983398151915234604051600160a060020a03909216825260208201526040908101905180910390a1005b34156101c457600080fd5b6101cc6105ca565b604051901515815260200160405180910390f35b34156101eb57600080fd5b6101ff600160a060020a0360043516610658565b005b341561020c57600080fd5b6101ff600160a060020a03600435811690602435166107c8565b341561023157600080fd5b610239610874565b604051600160a060020a03909116815260200160405180910390f35b341561026057600080fd5b610268610883565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156102a757808201518382015260200161028f565b505050509050019250505060405180910390f35b34156102c657600080fd5b6101ff600160a060020a0360043581169060243590604435166108eb565b34156102ef57600080fd5b6101ff600160a060020a03600435166109e2565b341561030e57600080fd5b610239610ade565b341561032157600080fd5b6101ff600160a060020a03600435811690602435166044351515610aed565b341561034b57600080fd5b6101cc600160a060020a036004358116906024359060443516610cd7565b341561037457600080fd5b6101cc610eb0565b6101cc600160a060020a03600435811690602435906044358116906064351660843560a4351515610f31565b34156103b357600080fd5b6101ff600160a060020a0360043516610f9e565b34156103d257600080fd5b6101ff611039565b34156103e557600080fd5b6101ff600160a060020a03600435166110d3565b341561040457600080fd5b6102686111b5565b341561041757600080fd5b610437600160a060020a036004358116906024351660443560643561121b565b60405190815260200160405180910390f35b341561045457600080fd5b6101ff600160a060020a0360043516611406565b341561047357600080fd5b610437600160a060020a03600435811690602435166044356064356114d6565b341561049e57600080fd5b610239600160a060020a0360043516611508565b34156104bd57600080fd5b6101ff600160a060020a0360043516611523565b34156104dc57600080fd5b6101ff600160a060020a036004358116906024358116906044351661168f565b341561050757600080fd5b610239611773565b341561051a57600080fd5b6101ff600435600160a060020a0360243516611782565b341561053c57600080fd5b610239611815565b341561054f57600080fd5b6101cc611824565b341561056257600080fd5b6101cc600435611845565b341561057857600080fd5b61023961185a565b341561058b57600080fd5b610437600160a060020a0360043516611869565b34156105aa57600080fd5b610437600160a060020a03600435811690602435166044356064356119bd565b6000805433600160a060020a039081169116146105e657600080fd5b6007805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790557f7d7f00509dd73ac4449f698ae75ccc797895eff5fa9d446d3df387598a26e7356001604051901515815260200160405180910390a15060015b90565b6000805433600160a060020a0390811691161461067457600080fd5b600160a060020a03821660009081526003602052604090205460ff16151561069b57600080fd5b50600160a060020a0381166000908152600360205260408120805460ff191690555b6005548110156107c45781600160a060020a03166005828154811015156106e057fe5b600091825260209091200154600160a060020a031614156107bc5760058054600019810190811061070d57fe5b60009182526020909120015460058054600160a060020a03909216918390811061073357fe5b60009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055600580549061076f906000198301611ff4565b507f5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762826000604051600160a060020a039092168252151560208201526040908101905180910390a16107c4565b6001016106bd565b5050565b60005433600160a060020a039081169116146107e357600080fd5b600160a060020a03811615156107f857600080fd5b600160a060020a038281166000908152600b6020526040908190208054600160a060020a031916928416929092179091557f81995c7b922889ac0a81e41866106d4046268ea3a9abaae9f9e080a6ce36ee7d908390839051600160a060020a039283168152911660208201526040908101905180910390a15050565b600154600160a060020a031681565b61088b612018565b60048054806020026020016040519081016040528092919081815260200182805480156108e157602002820191906000526020600020905b8154600160a060020a031681526001909101906020018083116108c3575b5050505050905090565b60005433600160a060020a0390811691161461090657600080fd5b82600160a060020a031663a9059cbb828460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561096357600080fd5b6102c65a03f1151561097457600080fd5b50505060405180519050151561098957600080fd5b7f72cb8a894ddb372ceec3d2a7648d86f17d5a15caae0e986c53109b8a9a9385e6838383604051600160a060020a03938416815260208101929092529091166040808301919091526060909101905180910390a1505050565b60005433600160a060020a039081169116146109fd57600080fd5b600160a060020a03811660009081526003602052604090205460ff1615610a2357600080fd5b60055460329010610a3357600080fd5b7f5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762816001604051600160a060020a039092168252151560208201526040908101905180910390a1600160a060020a0381166000908152600360205260409020805460ff191660019081179091556005805490918101610ab28382611ff4565b5060009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055565b600954600160a060020a031681565b60005433600160a060020a03908116911614610b0857600080fd5b80600a600085856040516c01000000000000000000000000600160a060020a039384168102825291909216026014820152602801604051908190039020815260208101919091526040908101600020805460ff1916921515929092179091557fd5fd5351efae1f4bb760079da9f0ff9589e2c3e216337ca9d39cdff573b245c49084908490849051600160a060020a0393841681529190921660208201529015156040808301919091526060909101905180910390a1610bc7836119e4565b600160a060020a038381166000908152600b602052604090205416158015610c065750600160a060020a03831660008051602061204983398151915214155b15610cd257600160a060020a038381166000818152600b60205260408082208054600160a060020a03191630958616179055919263095ea7b39290917f800000000000000000000000000000000000000000000000000000000000000091516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610cac57600080fd5b6102c65a03f11515610cbd57600080fd5b505050604051805190501515610cd257600080fd5b505050565b600160a060020a03331660009081526002602052604081205460ff161515610cfe57600080fd5b600a600085846040516c01000000000000000000000000600160a060020a039384168102825291909216026014820152602801604051908190039020815260208101919091526040016000205460ff161515610d5957600080fd5b600160a060020a0384166000805160206120498339815191521415610dae57600160a060020a03821683156108fc0284604051600060405180830381858888f193505050501515610da957600080fd5b610e52565b600160a060020a038085166000818152600b60205260408082205492936323b872dd9316918691889190516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610e2c57600080fd5b6102c65a03f11515610e3d57600080fd5b505050604051805190501515610e5257600080fd5b7fb67719fc33c1f17d31bf3a698690d62066b1e0bae28fcd3c56cf2c015c2863d6848484604051600160a060020a03938416815260208101929092529091166040808301919091526060909101905180910390a15060019392505050565b600160a060020a03331660009081526003602052604081205460ff161515610ed757600080fd5b6007805474ff0000000000000000000000000000000000000000191690557f7d7f00509dd73ac4449f698ae75ccc797895eff5fa9d446d3df387598a26e7356000604051901515815260200160405180910390a150600190565b60075460009074010000000000000000000000000000000000000000900460ff161515610f5d57600080fd5b60075433600160a060020a03908116911614610f7857600080fd5b610f86878787878787611aa1565b1515610f9157600080fd5b5060019695505050505050565b60005433600160a060020a03908116911614610fb957600080fd5b600160a060020a0381161515610fce57600080fd5b6001547f3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc4090600160a060020a0316604051600160a060020a03909116815260200160405180910390a160018054600160a060020a031916600160a060020a0392909216919091179055565b60015433600160a060020a0390811691161461105457600080fd5b6001546000547f65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed91600160a060020a039081169116604051600160a060020a039283168152911660208201526040908101905180910390a16001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b60005433600160a060020a039081169116146110ee57600080fd5b600160a060020a038116151561110357600080fd5b7f3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc4081604051600160a060020a03909116815260200160405180910390a16000547f65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed908290600160a060020a0316604051600160a060020a039283168152911660208201526040908101905180910390a160008054600160a060020a031916600160a060020a0392909216919091179055565b6111bd612018565b60058054806020026020016040519081016040528092919081815260200182805480156108e157602002820191906000526020600020908154600160a060020a031681526001909101906020018083116108c3575050505050905090565b600080600080600080600760149054906101000a900460ff16151561124357600095506113f9565b600080516020612049833981519152600160a060020a038b16141561126e57600193508894506112a2565b600080516020612049833981519152600160a060020a038a16141561129957600093508994506112a2565b600095506113f9565b600854600160a060020a031663b8e9c22e8689878c60006040516020015260405160e060020a63ffffffff8716028152600160a060020a0390941660048501526024840192909252151560448301526064820152608401602060405180830381600087803b151561131257600080fd5b6102c65a03f1151561132357600080fd5b50505060405180519050925061133b8a8a8a866119bd565b9150816113478a611869565b101561135657600095506113f9565b600954600160a060020a0316156113f557600954600160a060020a031663a58092b78b8b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b15156113c857600080fd5b6102c65a03f115156113d957600080fd5b5050506040518051915050808311156113f557600095506113f9565b8295505b5050505050949350505050565b60005433600160a060020a0390811691161461142157600080fd5b600160a060020a03811660009081526002602052604090205460ff161561144757600080fd5b6004546032901061145757600080fd5b7f091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b816001604051600160a060020a039092168252151560208201526040908101905180910390a1600160a060020a0381166000908152600260205260409020805460ff191660019081179091556004805490918101610ab28382611ff4565b60008060006114e486611df6565b91506114ef87611df6565b90506114fd85828487611eb4565b979650505050505050565b600b60205260009081526040902054600160a060020a031681565b6000805433600160a060020a0390811691161461153f57600080fd5b600160a060020a03821660009081526002602052604090205460ff16151561156657600080fd5b50600160a060020a0381166000908152600260205260408120805460ff191690555b6004548110156107c45781600160a060020a03166004828154811015156115ab57fe5b600091825260209091200154600160a060020a03161415611687576004805460001981019081106115d857fe5b60009182526020909120015460048054600160a060020a0390921691839081106115fe57fe5b60009182526020909120018054600160a060020a031916600160a060020a039290921691909117905560048054600019019061163a9082611ff4565b507f091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b826000604051600160a060020a039092168252151560208201526040908101905180910390a16107c4565b600101611588565b60005433600160a060020a039081169116146116aa57600080fd5b600160a060020a03831615156116bf57600080fd5b600160a060020a03821615156116d457600080fd5b60078054600160a060020a03808616600160a060020a0319928316179283905560088054868316908416179081905560098054868416941693909317928390557f7a85322644a4462d8ff5482d2a841a4d231f8cfb3c9f4a50f66f8b2bd568c31c938216929082169116604051600160a060020a03938416815291831660208301529091166040808301919091526060909101905180910390a1505050565b600754600160a060020a031681565b60005433600160a060020a0390811691161461179d57600080fd5b600160a060020a03811682156108fc0283604051600060405180830381858888f1935050505015156117ce57600080fd5b7fec47e7ed86c86774d1a72c19f35c639911393fe7c1a34031fdbd260890da90de8282604051918252600160a060020a031660208201526040908101905180910390a15050565b600854600160a060020a031681565b60075474010000000000000000000000000000000000000000900460ff1681565b600a6020526000908152604090205460ff1681565b600054600160a060020a031681565b6000808080600160a060020a038516600080516020612049833981519152141561189f5730600160a060020a03163193506119b5565b600160a060020a038086166000818152600b602052604080822054909316955090916370a08231918691516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561190c57600080fd5b6102c65a03f1151561191d57600080fd5b5050506040518051925050600160a060020a03851663dd62ed3e843060006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561198757600080fd5b6102c65a03f1151561199857600080fd5b50505060405180519150508082106119b057806119b2565b815b93505b505050919050565b60008060006119cb86611df6565b91506119d687611df6565b90506114fd85828487611f5b565b600160a060020a0381166000805160206120498339815191521415611a2457600160a060020a038116600090815260066020526040902060129055611a9e565b80600160a060020a031663313ce5676000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611a6a57600080fd5b6102c65a03f11515611a7b57600080fd5b5050506040518051600160a060020a038316600090815260066020526040902055505b50565b6000806000808415611af55760008611611aba57600080fd5b600160a060020a038a166000805160206120498339815191521415611aea57348914611ae557600080fd5b611af5565b3415611af557600080fd5b611b018a898b896119bd565b925060008311611b1057600080fd5b600160a060020a038a166000805160206120498339815191521415611b39575086905081611b43565b5088905060001988025b600854600160a060020a031663c6fd2103838360004360405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260448301526064820152608401600060405180830381600087803b1515611ba957600080fd5b6102c65a03f11515611bba57600080fd5b505050600160a060020a038a1660008051602061204983398151915214611c8057600160a060020a03808b166000818152600b60205260408082205492936323b872dd9333939116918e9190516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515611c5a57600080fd5b6102c65a03f11515611c6b57600080fd5b505050604051805190501515611c8057600080fd5b600160a060020a0388166000805160206120498339815191521415611cd557600160a060020a03871683156108fc0284604051600060405180830381858888f193505050501515611cd057600080fd5b611d79565b600160a060020a038089166000818152600b60205260408082205492936323b872dd9316918b91889190516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515611d5357600080fd5b6102c65a03f11515611d6457600080fd5b505050604051805190501515611d7957600080fd5b33600160a060020a03167fea9415385bae08fe9f6dc457b02577166790cde83bb18cc340aac6cb81b824de8b8b8b878c604051600160a060020a039586168152602081019490945291841660408085019190915260608401919091529216608082015260a001905180910390a25060019998505050505050505050565b600080600160a060020a0383166000805160206120498339815191521415611e215760129150611eae565b50600160a060020a038216600090815260066020526040902054801515611eaa5782600160a060020a031663313ce5676000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611e8857600080fd5b6102c65a03f11515611e9957600080fd5b505050604051805190509150611eae565b8091505b50919050565b600080806b204fce5e3e25026110000000871115611ed157600080fd5b69d3c21bcecceda1000000841115611ee857600080fd5b848610611f195760128587031115611eff57600080fd5b5050828403600a0a8502670de0b6b3a76400000282611f3f565b60128686031115611f2957600080fd5b5050670de0b6b3a76400008502848403600a0a83025b80600182840103811515611f4f57fe5b04979650505050505050565b60006b204fce5e3e25026110000000851115611f7657600080fd5b69d3c21bcecceda1000000821115611f8d57600080fd5b838310611fc05760128484031115611fa457600080fd5b670de0b6b3a7640000858302858503600a0a025b049050611fec565b60128385031115611fd057600080fd5b828403600a0a670de0b6b3a764000002828602811515611fb857fe5b949350505050565b815481835581811511610cd257600083815260209020610cd291810190830161202a565b60206040519081016040526000815290565b61065591905b808211156120445760008155600101612030565b50905600000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeea165627a7a723058201d59d0bf4f7bf28f3790eed68bfeae39ef8fe90b7386feae63cfac4f72a648120029

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

00000000000000000000000065897adcba42dcca5dd162c647b1cc3e312384900000000000000000000000006e251c08dc330fd67804bdbb547739dd8546775d00000000000000000000000030f1b9909162c77bae151102516d3091f65ca6cb

-----Decoded View---------------
Arg [0] : _kyberNetwork (address): 0x65897aDCBa42dcCA5DD162c647b1cC3E31238490
Arg [1] : _ratesContract (address): 0x6E251C08Dc330Fd67804bDbb547739dD8546775D
Arg [2] : _admin (address): 0x30F1B9909162c77bAe151102516d3091F65CA6cB

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000065897adcba42dcca5dd162c647b1cc3e31238490
Arg [1] : 0000000000000000000000006e251c08dc330fd67804bdbb547739dd8546775d
Arg [2] : 00000000000000000000000030f1b9909162c77bae151102516d3091f65ca6cb


Deployed Bytecode Sourcemap

8681:8114:0:-;;;;;;;;;-1:-1:-1;;;8681:8114:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9578:42;-1:-1:-1;;;;;;;;;;;9610:9:0;9578:42;;-1:-1:-1;;;;;9578:42:0;;;;;;;;;;;;;;;;;;;;8681:8114;10335:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3916:463;;;;;;;;;;-1:-1:-1;;;;;3916:463:0;;;;;;;11249:198;;;;;;;;;;-1:-1:-1;;;;;11249:198:0;;;;;;;;;;1540:27;;;;;;;;;;;;;;;-1:-1:-1;;;;;1540:27:0;;;;;;;;;;;;;;2151:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;8220:189:0;;;;;;;;;;-1:-1:-1;;;;;8220:189:0;;;;;;;;;;;;;3600:308;;;;;;;;;;-1:-1:-1;;;;;3600:308:0;;;;;8885:47;;;;;;;;;;;;10725:458;;;;;;;;;;-1:-1:-1;;;;;10725:458:0;;;;;;;;;;;;;;11530:461;;;;;;;;;;-1:-1:-1;;;;;11530:461:0;;;;;;;;;;;;;10488:150;;;;;;;;;;;;9834:453;;-1:-1:-1;;;;;9834:453:0;;;;;;;;;;;;;;;;;;;;;;;;2569:187;;;;;;;;;;-1:-1:-1;;;;;2569:187:0;;;;;3338:194;;;;;;;;;;;;2937:223;;;;;;;;;;-1:-1:-1;;;;;2937:223:0;;;;;2257:96;;;;;;;;;;;;13868:888;;;;;;;;;;-1:-1:-1;;;;;13868:888:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4448:319;;;;;;;;;;-1:-1:-1;;;;;4448:319:0;;;;;13597:263;;;;;;;;;;-1:-1:-1;;;;;13597:263:0;;;;;;;;;;;;;;9030:44;;;;;;;;;;-1:-1:-1;;;;;9030:44:0;;;;;4775:481;;;;;;;;;;-1:-1:-1;;;;;4775:481:0;;;;;12081:534;;;;;;;;;;-1:-1:-1;;;;;12081:534:0;;;;;;;;;;;;;;;8758:27;;;;;;;;;;;;8521:153;;;;;;;;;;;;-1:-1:-1;;;;;8521:153:0;;;;;8823:55;;;;;;;;;;;;8792:24;;;;;;;;;;;;8939:55;;;;;;;;;;;;;;1513:20;;;;;;;;;;;;12869:448;;;;;;;;;;-1:-1:-1;;;;;12869:448:0;;;;;13325:264;;;;;;;;;;-1:-1:-1;;;;;13325:264:0;;;;;;;;;;;;;;10335:145;10383:4;1933:5;;1919:10;-1:-1:-1;;;;;1919:19:0;;;1933:5;;1919:19;1911:28;;;;;;10400:12;:19;;-1:-1:-1;;10400:19:0;;;;;10430:18;10415:4;10430:18;;;;;;;;;;;;;;;;-1:-1:-1;10468:4:0;1950:1;10335:145;:::o;3916:463::-;4065:6;1933:5;;1919:10;-1:-1:-1;;;;;1919:19:0;;;1933:5;;1919:19;1911:28;;;;;;-1:-1:-1;;;;;3993:17:0;;;;;;:8;:17;;;;;;;;3985:26;;;;;;;;-1:-1:-1;;;;;;4022:17:0;;4042:5;4022:17;;;:8;:17;;;;;:25;;-1:-1:-1;;4022:25:0;;;4060:312;4081:13;:20;4077:24;;4060:312;;;4147:7;-1:-1:-1;;;;;4127:27:0;:13;4141:1;4127:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4127:16:0;:27;4123:238;;;4194:13;4208:20;;-1:-1:-1;;4208:24:0;;;4194:39;;;;;;;;;;;;;;;;4175:13;:16;;-1:-1:-1;;;;;4194:39:0;;;;4189:1;;4175:16;;;;;;;;;;;;;;;:58;;-1:-1:-1;;;;;;4175:58:0;-1:-1:-1;;;;;4175:58:0;;;;;;;;;;4252:13;:22;;;;;-1:-1:-1;;4252:22:0;;;:::i;:::-;;4293:28;4306:7;4315:5;4293:28;;-1:-1:-1;;;;;4293:28:0;;;;;;;;;;;;;;;;;;;;;;4340:5;;4123:238;4103:3;;4060:312;;;3916:463;;:::o;11249:198::-;1933:5;;1919:10;-1:-1:-1;;;;;1919:19:0;;;1933:5;;1919:19;1911:28;;;;;;-1:-1:-1;;;;;11338:22:0;;;;11330:31;;;;;;-1:-1:-1;;;;;11372:18:0;;;;;;;:11;:18;;;;;;;:27;;-1:-1:-1;;;;;;11372:27:0;;;;;;;;;;;11410:29;;11372:18;;:27;;11410:29;-1:-1:-1;;;;;11410:29:0;;;;;;;;;;;;;;;;;;;;;;11249:198;;:::o;1540:27::-;;;-1:-1:-1;;;;;1540:27:0;;:::o;2151:98::-;2198:9;;:::i;:::-;2227:14;2220:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2220:21:0;;;;;;;;;;;;;;;;;;;;;;;2151:98;:::o;8220:189::-;1933:5;;1919:10;-1:-1:-1;;;;;1919:19:0;;;1933:5;;1919:19;1911:28;;;;;;8323:5;-1:-1:-1;;;;;8323:14:0;;8338:6;8346;8323:30;;;;;;;;-1:-1:-1;;;8323:30:0;;;;;;-1:-1:-1;;;;;8323:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8315:39;;;;;;;;8365:36;8379:5;8386:6;8394;8365:36;;-1:-1:-1;;;;;8365:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8220:189;;;:::o;3600:308::-;1933:5;;1919:10;-1:-1:-1;;;;;1919:19:0;;;1933:5;;1919:19;1911:28;;;;;;-1:-1:-1;;;;;3677:20:0;;;;;;:8;:20;;;;;;;;3676:21;3668:30;;;;;;3740:13;:20;1788:2;3740:37;;3732:46;;;;;;3791:30;3804:10;3816:4;3791:30;;-1:-1:-1;;;;;3791:30:0;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3832:20:0;;;;;;:8;:20;;;;;:27;;-1:-1:-1;;3832:27:0;3855:4;3832:27;;;;;;3870:13;:30;;:13;;:30;;;:13;:30;;:::i;:::-;-1:-1:-1;3870:30:0;;;;;;;;;;;-1:-1:-1;;;;;;3870:30:0;-1:-1:-1;;;;;3870:30:0;;;;;;;;;;3600:308::o;8885:47::-;;;-1:-1:-1;;;;;8885:47:0;;:::o;10725:458::-;1933:5;;1919:10;-1:-1:-1;;;;;1919:19:0;;;1933:5;;1919:19;1911:28;;;;;;10878:7;10826:25;:49;10862:5;10869:4;10852:22;;;-1:-1:-1;;;;;10852:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;10826:49;;;;;;;;;;;;;-1:-1:-1;10826:49:0;:59;;-1:-1:-1;;10826:59:0;;;;;;;;;;;10896:45;;10920:5;;10927:4;;10933:7;;10896:45;-1:-1:-1;;;;;10896:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10954:18;10966:5;10954:11;:18::i;:::-;-1:-1:-1;;;;;10988:18:0;;;11018:3;10988:18;;;:11;:18;;;;;;;:34;10987:68;;;;-1:-1:-1;;;;;;11028:26:0;;-1:-1:-1;;;;;;;;;;;11028:26:0;;10987:68;10983:193;;;-1:-1:-1;;;;;11072:18:0;;;;;;;:11;:18;;;;;;:25;;-1:-1:-1;;;;;;11072:25:0;11093:4;11072:25;;;;;;:18;;11134:13;;11093:4;;11154:8;;11134:29;;;;;;-1:-1:-1;;;11134:29:0;;;;;;-1:-1:-1;;;;;11134:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11126:38;;;;;;;;10725:458;;;:::o;11530:461::-;-1:-1:-1;;;;;2020:10:0;2010:21;11623:4;2010:21;;;:9;:21;;;;;;;;2002:30;;;;;;;;11648:25;:56;11684:5;11691:11;11674:29;;;-1:-1:-1;;;;;11674:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;11648:56;;;;;;;;;;;;;;;;11640:65;;;;;;;;-1:-1:-1;;;;;11722:26:0;;-1:-1:-1;;;;;;;;;;;11722:26:0;11718:188;;;-1:-1:-1;;;;;11765:20:0;;:28;;;;11786:6;11765:28;;;;;;;;;;;;;;;;;;;;;;;;;;11718:188;;;-1:-1:-1;;;;;11834:18:0;;;11853;;;;:11;:18;;;;;;;11834;;;;11853;;11873:11;;11886:6;;11853:18;11834:59;;;;;;-1:-1:-1;;;11834:59:0;;;;;;-1:-1:-1;;;;;11834:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11826:68;;;;;;;;11918:41;11932:5;11939:6;11947:11;11918:41;;-1:-1:-1;;;;;11918:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11979:4:0;11530:461;;;;;:::o;10488:150::-;-1:-1:-1;;;;;2111:10:0;2102:20;10539:4;2102:20;;;:8;:20;;;;;;;;2094:29;;;;;;;;10556:12;:20;;-1:-1:-1;;10556:20:0;;;10587:19;10571:5;10587:19;;;;;;;;;;;;;;;;-1:-1:-1;10626:4:0;10488:150;:::o;9834:453::-;10096:12;;10066:4;;10096:12;;;;;10088:21;;;;;;;;10142:12;;10128:10;-1:-1:-1;;;;;10128:26:0;;;10142:12;;10128:26;10120:35;;;;;;10176:78;10184:8;10194:9;10205;10216:11;10229:14;10245:8;10176:7;:78::i;:::-;10168:87;;;;;;;;-1:-1:-1;10275:4:0;9834:453;;;;;;;;:::o;2569:187::-;1933:5;;1919:10;-1:-1:-1;;;;;1919:19:0;;;1933:5;;1919:19;1911:28;;;;;;-1:-1:-1;;;;;2646:22:0;;;;2638:31;;;;;;2701:12;;2680:34;;-1:-1:-1;;;;;2701:12:0;2680:34;;-1:-1:-1;;;;;2680:34:0;;;;;;;;;;;;;;2725:12;:23;;-1:-1:-1;;;;;;2725:23:0;-1:-1:-1;;;;;2725:23:0;;;;;;;;;;2569:187::o;3338:194::-;3386:12;;3402:10;-1:-1:-1;;;;;3386:26:0;;;:12;;:26;3378:35;;;;;;3437:12;;;3451:5;3424:33;;-1:-1:-1;;;;;3437:12:0;;;;3451:5;3424:33;;-1:-1:-1;;;;;3424:33:0;;;;;;;;;;;;;;;;;;;;;;3476:12;;;;3468:20;;-1:-1:-1;;;;;;3468:20:0;;;-1:-1:-1;;;;;3476:12:0;;3468:20;;;;3499:25;;;3338:194::o;2937:223::-;1933:5;;1919:10;-1:-1:-1;;;;;1919:19:0;;;1933:5;;1919:19;1911:28;;;;;;-1:-1:-1;;;;;3021:22:0;;;;3013:31;;;;;;3055:30;3076:8;3055:30;;-1:-1:-1;;;;;3055:30:0;;;;;;;;;;;;;;3119:5;;3096:29;;3109:8;;-1:-1:-1;;;;;3119:5:0;3096:29;;-1:-1:-1;;;;;3096:29:0;;;;;;;;;;;;;;;;;;;;;;3136:5;:16;;-1:-1:-1;;;;;;3136:16:0;-1:-1:-1;;;;;3136:16:0;;;;;;;;;;2937:223::o;2257:96::-;2303:9;;:::i;:::-;2332:13;2325:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2325:20:0;;;;;;;;;;;;;;;;;;;;;;2257:96;:::o;13868:888::-;13969:4;13986:11;14008;14346:9;14435:12;14605:15;14037:12;;;;;;;;;;;14036:13;14032:27;;;14058:1;14051:8;;;;14032:27;-1:-1:-1;;;;;;;;;;;;;;;;14076:24:0;;;14072:262;;;14125:4;14117:12;;14152:4;14144:12;;14072:262;;;-1:-1:-1;;;;;;;;;;;;;;;;14178:25:0;;;14174:160;;;14228:5;14220:13;;14256:3;14248:11;;14174:160;;;14299:1;14292:8;;;;14174:160;14358:23;;-1:-1:-1;;;;;14358:23:0;:31;14390:5;14397:11;14410:5;14417:6;14358:23;:66;;;;;;;-1:-1:-1;;;14358:66:0;;;;;;-1:-1:-1;;;;;14358:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14346:78;;14450:35;14461:3;14466:4;14472:6;14480:4;14450:10;:35::i;:::-;14435:50;;14521:7;14502:16;14513:4;14502:10;:16::i;:::-;:26;14498:40;;;14537:1;14530:8;;;;14498:40;14555:19;;-1:-1:-1;;;;;14555:19:0;:33;14551:174;;14623:19;;-1:-1:-1;;;;;14623:19:0;:33;14657:3;14662:4;14623:19;:44;;;;;;;-1:-1:-1;;;14623:44:0;;;;;;-1:-1:-1;;;;;14623:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14686:17:0;;;14682:31;;;14712:1;14705:8;;;;14682:31;14744:4;14737:11;;13868:888;;;;;;;;;;;;:::o;4448:319::-;1933:5;;1919:10;-1:-1:-1;;;;;1919:19:0;;;1933:5;;1919:19;1911:28;;;;;;-1:-1:-1;;;;;4527:22:0;;;;;;:9;:22;;;;;;;;4526:23;4518:32;;;;;;4592:14;:21;1788:2;4592:38;;4584:47;;;;;;4644:32;4658:11;4671:4;4644:32;;-1:-1:-1;;;;;4644:32:0;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4687:22:0;;;;;;:9;:22;;;;;:29;;-1:-1:-1;;4687:29:0;4712:4;4687:29;;;;;;4727:14;:32;;:14;;:32;;;:14;:32;;:::i;13597:263::-;13683:4;13700:16;13747;13719:17;13731:4;13719:11;:17::i;:::-;13700:36;;13766:16;13778:3;13766:11;:16::i;:::-;13747:35;;13802:50;13813:6;13821:11;13834;13847:4;13802:10;:50::i;:::-;13795:57;13597:263;-1:-1:-1;;;;;;;13597:263:0:o;9030:44::-;;;;;;;;;;;;-1:-1:-1;;;;;9030:44:0;;:::o;4775:481::-;4930:6;1933:5;;1919:10;-1:-1:-1;;;;;1919:19:0;;;1933:5;;1919:19;1911:28;;;;;;-1:-1:-1;;;;;4854:19:0;;;;;;:9;:19;;;;;;;;4846:28;;;;;;;;-1:-1:-1;;;;;;4885:19:0;;4907:5;4885:19;;;:9;:19;;;;;:27;;-1:-1:-1;;4885:27:0;;;4925:324;4946:14;:21;4942:25;;4925:324;;;5014:8;-1:-1:-1;;;;;4993:29:0;:14;5008:1;4993:17;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4993:17:0;:29;4989:249;;;5063:14;5078:21;;-1:-1:-1;;5078:25:0;;;5063:41;;;;;;;;;;;;;;;;5043:14;:17;;-1:-1:-1;;;;;5063:41:0;;;;5058:1;;5043:17;;;;;;;;;;;;;;;:61;;-1:-1:-1;;;;;;5043:61:0;-1:-1:-1;;;;;5043:61:0;;;;;;;;;;5123:14;:26;;-1:-1:-1;;5123:26:0;;;;;;:::i;:::-;;5168:30;5182:8;5192:5;5168:30;;-1:-1:-1;;;;;5168:30:0;;;;;;;;;;;;;;;;;;;;;;5217:5;;4989:249;4969:3;;4925:324;;12081:534;1933:5;;1919:10;-1:-1:-1;;;;;1919:19:0;;;1933:5;;1919:19;1911:28;;;;;;-1:-1:-1;;;;;12297:27:0;;;;12289:36;;;;;;-1:-1:-1;;;;;12344:30:0;;;;12336:39;;;;;;12388:12;:28;;-1:-1:-1;;;;;12388:28:0;;;-1:-1:-1;;;;;;12388:28:0;;;;;;;;12427:23;:42;;;;;;;;;;;;;12480:19;:34;;;;;;;;;;;;;;;12527:80;;12548:12;;;12562:23;;;;12587:19;12527:80;;-1:-1:-1;;;;;12527:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12081:534;;;:::o;8758:27::-;;;-1:-1:-1;;;;;8758:27:0;;:::o;8521:153::-;1933:5;;1919:10;-1:-1:-1;;;;;1919:19:0;;;1933:5;;1919:19;1911:28;;;;;;-1:-1:-1;;;;;8603:15:0;;:23;;;;8619:6;8603:23;;;;;;;;;;;;;;;;;;;;;;;;;;8637:29;8651:6;8659;8637:29;;;;;-1:-1:-1;;;;;8637:29:0;;;;;;;;;;;;;;;;8521:153;;:::o;8823:55::-;;;-1:-1:-1;;;;;8823:55:0;;:::o;8792:24::-;;;;;;;;;:::o;8939:55::-;;;;;;;;;;;;;;;:::o;1513:20::-;;;-1:-1:-1;;;;;1513:20:0;;:::o;12869:448::-;12922:4;;;;-1:-1:-1;;;;;12943:26:0;;-1:-1:-1;;;;;;;;;;;12943:26:0;12939:371;;;12991:4;-1:-1:-1;;;;;12991:12:0;;12984:19;;;;12939:371;-1:-1:-1;;;;;13051:18:0;;;;;;;:11;:18;;;;;;;;;;;-1:-1:-1;13051:18:0;;13107:15;;13051:18;;13107:23;;;;;;-1:-1:-1;;;13107:23:0;;;;;;-1:-1:-1;;;;;13107:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;13170:15:0;;;13186:6;13194:4;13170:29;;;;;;;;-1:-1:-1;;;13170:29:0;;;;;;-1:-1:-1;;;;;13170:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13224:35:0;;;13223:75;;13281:17;13223:75;;;13263:15;13223:75;13216:82;;12939:371;12869:448;;;;;;:::o;13325:264::-;13412:4;13429:16;13476;13448:17;13460:4;13448:11;:17::i;:::-;13429:36;;13495:16;13507:3;13495:11;:16::i;:::-;13476:35;;13531:50;13542:6;13550:11;13563;13576:4;13531:10;:50::i;5856:174::-;-1:-1:-1;;;;;5914:26:0;;-1:-1:-1;;;;;;;;;;;5914:26:0;5910:112;;;-1:-1:-1;;;;;5942:15:0;;;;;;:8;:15;;;;;5798:2;5942:30;;5910:112;;;6006:5;-1:-1:-1;;;;;6006:14:0;;:16;;;;;;;;;;;-1:-1:-1;;;6006:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5988:15:0;;;;;;:8;:15;;;;;:34;-1:-1:-1;5910:112:0;5856:174;:::o;15098:1694::-;15317:4;15640:15;15817:11;15839:15;15406:8;15402:226;;;15456:1;15439:18;;15431:27;;;;;;-1:-1:-1;;;;;15477:29:0;;-1:-1:-1;;;;;;;;;;;15477:29:0;15473:143;;;15533:9;:22;;15525:31;;;;;;15473:143;;;15601:9;:14;15593:23;;;;;;15658:58;15669:8;15679:9;15690;15701:14;15658:10;:58::i;:::-;15640:76;-1:-1:-1;15773:1:0;15760:14;;15752:23;;;;;;-1:-1:-1;;;;;15869:29:0;;-1:-1:-1;;;;;;;;;;;15869:29:0;15865:220;;;-1:-1:-1;15967:9:0;;-1:-1:-1;15933:10:0;15865:220;;;-1:-1:-1;16065:8:0;;-1:-1:-1;;;16023:19:0;;15865:220;16097:23;;-1:-1:-1;;;;;16097:23:0;:39;16151:5;16171:11;16097:23;16213:12;16097:139;;-1:-1:-1;;;16097:139:0;;;;;;-1:-1:-1;;;;;16097:139:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16097:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;16284:29:0;;-1:-1:-1;;;;;;;;;;;16284:29:0;16280:138;;-1:-1:-1;;;;;16338:21:0;;;16372;;;;:11;:21;;;;;;;16338;;;;16360:10;;16372:21;;;16395:9;;16372:21;16338:67;;;;;;-1:-1:-1;;;16338:67:0;;;;;;-1:-1:-1;;;;;16338:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16330:76;;;;;;;;-1:-1:-1;;;;;16463:30:0;;-1:-1:-1;;;;;;;;;;;16463:30:0;16459:208;;;-1:-1:-1;;;;;16510:20:0;;:32;;;;16531:10;16510:32;;;;;;;;;;;;;;;;;;;;;;;;;;16459:208;;;-1:-1:-1;;;;;16583:22:0;;;16606;;;;:11;:22;;;;;;;16583;;;;16606;;16630:11;;16643:10;;16606:22;16583:71;;;;;;-1:-1:-1;;;16583:71:0;;;;;;-1:-1:-1;;;;;16583:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16575:80;;;;;;;;16692:10;-1:-1:-1;;;;;16679:81:0;;16704:8;16714:9;16725;16736:10;16748:11;16679:81;;-1:-1:-1;;;;;16679:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16780:4:0;;15098:1694;-1:-1:-1;;;;;;;;;15098:1694:0:o;6038:479::-;6094:4;;-1:-1:-1;;;;;6115:26:0;;-1:-1:-1;;;;;;;;;;;6115:26:0;6111:51;;;5798:2;6143:19;;;;6111:51;-1:-1:-1;;;;;;6217:15:0;;;;;;:8;:15;;;;;;6433:18;;6430:46;;;6460:5;-1:-1:-1;;;;;6460:14:0;;:16;;;;;;;;;;;-1:-1:-1;;;6460:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6453:23;;;;6430:46;6496:13;6489:20;;6038:479;;;;;:::o;7102:861::-;7204:4;;;5594:6;7229:17;;;7221:26;;;;;;5659:17;7266:16;;;7258:25;;;;;;7440:26;;;7436:430;;5750:2;7492:25;;;7491:43;;7483:52;;;;;;-1:-1:-1;;7590:25:0;;;7585:2;:31;7563:54;;5543:6;7563:54;7647:4;7436:430;;;5750:2;7693:25;;;7692:43;;7684:52;;;;;;-1:-1:-1;;5543:6:0;7764:18;;7826:25;;;7821:2;:31;7813:40;;7436:430;7915:11;7910:1;7896:11;7884:9;:23;:27;7883:43;;;;;;;;;7102:861;-1:-1:-1;;;;;;;7102:861:0:o;6525:569::-;6627:4;5594:6;6652:17;;;6644:26;;;;;;5659:17;6689:16;;;6681:25;;;;;;6723:26;;;6719:368;;5750:2;6775:25;;;6774:43;;6766:52;;;;;;5543:6;6841:13;;;6863:25;;;6858:2;:31;6841:49;6840:63;;6833:70;;;;6719:368;5750:2;6945:25;;;6944:43;;6936:52;;;;;;7061:11;7047;:25;7042:2;:31;5543:6;7029:45;7020:4;7011:6;:13;7010:65;;;;;;6719:368;6525:569;;;;;;:::o;8681:8114::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;

Swarm Source

bzzr://1d59d0bf4f7bf28f3790eed68bfeae39ef8fe90b7386feae63cfac4f72a64812

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
Loading...
Loading
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.