Sponsored:   INLOCK - Put Your BTC, Get Your Cash! Crypto Backed Loans, 3.2M Raised Already. Join NOW!
Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 11 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0x009bb5e9fcf28e5e601b7d0e9e821da6365d0a9cat txn 0x1a92dff9be7e038dd3c92fba57e1aba46b4443f550dac64340cfb273cf355d83
Token Balance:
 Latest 11 txns

TxHash Age From To Value [TxFee]
0x5f0df200f900fe5096e956f9377930b669d204ee3350e1493c56fea02c54f381161 days 19 hrs ago0x009bb5e9fcf28e5e601b7d0e9e821da6365d0a9c  IN   0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10 Ether0.000157782
0x128c8c670d3a507e7edea6344049f9489d79b693d6774251b4fa85e4dbccc5f4196 days 6 hrs ago0x78ac0ae05b82f32c7ef89a75d3010dfb08e9ed50  IN   0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10.00001 Ether0.001638
0x32ed5b873838c40c499950b7213c6f04f84dd8e6f0cb4651e76c38b20ebf9772196 days 6 hrs ago0x78ac0ae05b82f32c7ef89a75d3010dfb08e9ed50  IN   0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10.0001 Ether0.001641354
0xf154b30d6209eae6ed624e60f8e35b10c7d548e52524bd7fcdd6583f20831469248 days 14 hrs ago0x5436a1cd14b6bbff3af6ca93e034cc9ea4abce72  IN   0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10.00352495 Ether0.00105215
0xc0a13238f59009aa00658f0512c5483d09c4e663971d1a35a963811d508ffedd248 days 14 hrs ago0x5436a1cd14b6bbff3af6ca93e034cc9ea4abce72  IN   0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10.00352495 Ether0.00105
0xd6043a68100f2db6339e3b282bc00eead4bb2739cb1fe7da7aacf10103bb943e248 days 15 hrs ago0x5436a1cd14b6bbff3af6ca93e034cc9ea4abce72  IN   0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10.0087305 Ether0.00105215
0x1c2a40fdd11465fa9b3f4274d567756e6ec5466789bbd9e81eb78fb62b44e0a0248 days 17 hrs ago0x5436a1cd14b6bbff3af6ca93e034cc9ea4abce72  IN   0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10.0105005 Ether0.00105
0x7ff3a91c7c04f85e4cfd83fb65c30c212eb0f81a537223ca1be492e116821f8b279 days 19 hrs ago0x9e6033edd6ce498cc82051d78ef8de7c509243e7  IN   0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10 Ether0.00024292
0x634a3252c0a5add5dee12f273215129cf3b540e71ff6e8714928631a6aaad37d279 days 19 hrs ago0x9e6033edd6ce498cc82051d78ef8de7c509243e7  IN   0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10 Ether0.00024292
0xd93e51bc57887da58bdaf626e8188b4d2be79a1db9e9d93b7539e348a8412e83331 days 17 hrs ago0x009bb5e9fcf28e5e601b7d0e9e821da6365d0a9c  IN   0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10 Ether0.00008826
0x1a92dff9be7e038dd3c92fba57e1aba46b4443f550dac64340cfb273cf355d83332 days 34 mins ago0x009bb5e9fcf28e5e601b7d0e9e821da6365d0a9c  IN    Contract Creation0 Ether0.00943638
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click Here To View More View All
ParentTxHash Block Age From To Value
0xad963f1d4978250db3ab0270cd0a40cad5a294cd940193ca68d7c6532cfc5a895454964155 days 2 hrs ago0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10xc0829421c1d260bd3cb3e0f06cfe2d52db2ce31510 Ether
0xad963f1d4978250db3ab0270cd0a40cad5a294cd940193ca68d7c6532cfc5a895454964155 days 2 hrs ago0x80353044b382e8642a423069585ba13d98a42c590xf87a7ec94884f44d9de33d36b73f42c7c0dd38b110 Ether
0x3b405930db6233f199d79a7593b3225b90dcec35d0f5f93ba492126692d76ad65454947155 days 2 hrs ago0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10xc0829421c1d260bd3cb3e0f06cfe2d52db2ce3152 Ether
0x3b405930db6233f199d79a7593b3225b90dcec35d0f5f93ba492126692d76ad65454947155 days 2 hrs ago0x80353044b382e8642a423069585ba13d98a42c590xf87a7ec94884f44d9de33d36b73f42c7c0dd38b12 Ether
0x37ee9a0990a524cac035e4ce6949e701a00b2a7fcc777da0cac9f8c2410f3ff55454868155 days 3 hrs ago0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10xc0829421c1d260bd3cb3e0f06cfe2d52db2ce3155 Ether
0x37ee9a0990a524cac035e4ce6949e701a00b2a7fcc777da0cac9f8c2410f3ff55454868155 days 3 hrs ago0x80353044b382e8642a423069585ba13d98a42c590xf87a7ec94884f44d9de33d36b73f42c7c0dd38b15 Ether
0x8fde7dffac88feddcaaecb66530b9fc6e31c7e1e5d57a2f3578d6cc5daa07a9a5454867155 days 3 hrs ago0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10xc0829421c1d260bd3cb3e0f06cfe2d52db2ce3155 Ether
0x8fde7dffac88feddcaaecb66530b9fc6e31c7e1e5d57a2f3578d6cc5daa07a9a5454867155 days 3 hrs ago0x80353044b382e8642a423069585ba13d98a42c590xf87a7ec94884f44d9de33d36b73f42c7c0dd38b15 Ether
0x5198d15a802ec908231b04035c7de0cab2554d6a7a5760de674bb97f3752aaca5454865155 days 3 hrs ago0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10xc0829421c1d260bd3cb3e0f06cfe2d52db2ce3157 Ether
0x5198d15a802ec908231b04035c7de0cab2554d6a7a5760de674bb97f3752aaca5454865155 days 3 hrs ago0x80353044b382e8642a423069585ba13d98a42c590xf87a7ec94884f44d9de33d36b73f42c7c0dd38b17 Ether
0x8e9de3dafbcdd233474b50f766a23da14a41e26b6e3db596feb83a6b8c54a14b5454862155 days 3 hrs ago0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10xc0829421c1d260bd3cb3e0f06cfe2d52db2ce31511 Ether
0x8e9de3dafbcdd233474b50f766a23da14a41e26b6e3db596feb83a6b8c54a14b5454862155 days 3 hrs ago0x80353044b382e8642a423069585ba13d98a42c590xf87a7ec94884f44d9de33d36b73f42c7c0dd38b111 Ether
0x7f42260195fa9a56ec6745764bb53cb3c9055434832bd9b44a2600021f35bf315454862155 days 3 hrs ago0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10xc0829421c1d260bd3cb3e0f06cfe2d52db2ce31510 Ether
0x7f42260195fa9a56ec6745764bb53cb3c9055434832bd9b44a2600021f35bf315454862155 days 3 hrs ago0x80353044b382e8642a423069585ba13d98a42c590xf87a7ec94884f44d9de33d36b73f42c7c0dd38b110 Ether
0x30aabf294ceb45e21683f24dc2b269f6a4c253ac46d1438438537a5e12b94b125454858155 days 3 hrs ago0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10xc0829421c1d260bd3cb3e0f06cfe2d52db2ce31510 Ether
0x30aabf294ceb45e21683f24dc2b269f6a4c253ac46d1438438537a5e12b94b125454858155 days 3 hrs ago0x80353044b382e8642a423069585ba13d98a42c590xf87a7ec94884f44d9de33d36b73f42c7c0dd38b110 Ether
0x4f685642aa147c52103455006ed13cd36d7eda075925e8a7b00e773045da6dc95454854155 days 3 hrs ago0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10xc0829421c1d260bd3cb3e0f06cfe2d52db2ce3155 Ether
0x4f685642aa147c52103455006ed13cd36d7eda075925e8a7b00e773045da6dc95454854155 days 3 hrs ago0x80353044b382e8642a423069585ba13d98a42c590xf87a7ec94884f44d9de33d36b73f42c7c0dd38b15 Ether
0x4abbccba885fd2fd7a749d94834691bcfb2265b1f06ec8f7f54364a223d0ff6a5454851155 days 3 hrs ago0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10xc0829421c1d260bd3cb3e0f06cfe2d52db2ce3153 Ether
0x4abbccba885fd2fd7a749d94834691bcfb2265b1f06ec8f7f54364a223d0ff6a5454851155 days 3 hrs ago0x80353044b382e8642a423069585ba13d98a42c590xf87a7ec94884f44d9de33d36b73f42c7c0dd38b13 Ether
0x509d10edd104df10c1c5ecdb33c9f13b1e2f4ef2e8f3a21165e803a7fb8cbee85454851155 days 3 hrs ago0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10xc0829421c1d260bd3cb3e0f06cfe2d52db2ce3155 Ether
0x509d10edd104df10c1c5ecdb33c9f13b1e2f4ef2e8f3a21165e803a7fb8cbee85454851155 days 3 hrs ago0x80353044b382e8642a423069585ba13d98a42c590xf87a7ec94884f44d9de33d36b73f42c7c0dd38b15 Ether
0xc13c7b5f25e2e471b47c258650ff193c992e45c9b3735bcf51765af54a40b6585454847155 days 3 hrs ago0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10xc0829421c1d260bd3cb3e0f06cfe2d52db2ce3155 Ether
0xc13c7b5f25e2e471b47c258650ff193c992e45c9b3735bcf51765af54a40b6585454847155 days 3 hrs ago0x80353044b382e8642a423069585ba13d98a42c590xf87a7ec94884f44d9de33d36b73f42c7c0dd38b15 Ether
0xd4180346f1b0597d52f21b42c1b4728c2c44dc803b21248e0b202bfd3efa6d2b5454838155 days 3 hrs ago0xf87a7ec94884f44d9de33d36b73f42c7c0dd38b10xc0829421c1d260bd3cb3e0f06cfe2d52db2ce3155 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), NestedArrayFunctionCallDecoder (medium-severity), ZeroFunctionSelector (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: BancorQuickConverter
Compiler Text: v0.4.16+commit.d7661dd9
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.11;

/*
    Utilities & Common Modifiers
*/
contract Utils {
    /**
        constructor
    */
    function Utils() {
    }

    // verifies that an amount is greater than zero
    modifier greaterThanZero(uint256 _amount) {
        require(_amount > 0);
        _;
    }

    // validates an address - currently only checks that it isn't null
    modifier validAddress(address _address) {
        require(_address != 0x0);
        _;
    }

    // verifies that the address is different than this contract address
    modifier notThis(address _address) {
        require(_address != address(this));
        _;
    }

    // Overflow protected math functions

    /**
        @dev returns the sum of _x and _y, asserts if the calculation overflows

        @param _x   value 1
        @param _y   value 2

        @return sum
    */
    function safeAdd(uint256 _x, uint256 _y) internal returns (uint256) {
        uint256 z = _x + _y;
        assert(z >= _x);
        return z;
    }

    /**
        @dev returns the difference of _x minus _y, asserts if the subtraction results in a negative number

        @param _x   minuend
        @param _y   subtrahend

        @return difference
    */
    function safeSub(uint256 _x, uint256 _y) internal returns (uint256) {
        assert(_x >= _y);
        return _x - _y;
    }

    /**
        @dev returns the product of multiplying _x by _y, asserts if the calculation overflows

        @param _x   factor 1
        @param _y   factor 2

        @return product
    */
    function safeMul(uint256 _x, uint256 _y) internal returns (uint256) {
        uint256 z = _x * _y;
        assert(_x == 0 || z / _x == _y);
        return z;
    }
}

/*
    Owned contract interface
*/
contract IOwned {
    // this function isn't abstract since the compiler emits automatically generated getter functions as external
    function owner() public constant returns (address) {}

    function transferOwnership(address _newOwner) public;
    function acceptOwnership() public;
}

/*
    Provides support and utilities for contract ownership
*/
contract Owned is IOwned {
    address public owner;
    address public newOwner;

    event OwnerUpdate(address _prevOwner, address _newOwner);

    /**
        @dev constructor
    */
    function Owned() {
        owner = msg.sender;
    }

    // allows execution by the owner only
    modifier ownerOnly {
        assert(msg.sender == owner);
        _;
    }

    /**
        @dev allows transferring the contract ownership
        the new owner still needs to accept the transfer
        can only be called by the contract owner

        @param _newOwner    new contract owner
    */
    function transferOwnership(address _newOwner) public ownerOnly {
        require(_newOwner != owner);
        newOwner = _newOwner;
    }

    /**
        @dev used by a new owner to accept an ownership transfer
    */
    function acceptOwnership() public {
        require(msg.sender == newOwner);
        OwnerUpdate(owner, newOwner);
        owner = newOwner;
        newOwner = 0x0;
    }
}

/*
    ERC20 Standard Token interface
*/
contract IERC20Token {
    // these functions aren't abstract since the compiler emits automatically generated getter functions as external
    function name() public constant returns (string) {}
    function symbol() public constant returns (string) {}
    function decimals() public constant returns (uint8) {}
    function totalSupply() public constant returns (uint256) {}
    function balanceOf(address _owner) public constant returns (uint256) { _owner; }
    function allowance(address _owner, address _spender) public constant returns (uint256) { _owner; _spender; }

    function transfer(address _to, uint256 _value) public returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
    function approve(address _spender, uint256 _value) public returns (bool success);
}

/*
    Smart Token interface
*/
contract ISmartToken is IOwned, IERC20Token {
    function disableTransfers(bool _disable) public;
    function issue(address _to, uint256 _amount) public;
    function destroy(address _from, uint256 _amount) public;
}

/*
    Token Holder interface
*/
contract ITokenHolder is IOwned {
    function withdrawTokens(IERC20Token _token, address _to, uint256 _amount) public;
}

/*
    We consider every contract to be a 'token holder' since it's currently not possible
    for a contract to deny receiving tokens.

    The TokenHolder's contract sole purpose is to provide a safety mechanism that allows
    the owner to send tokens that were sent to the contract by mistake back to their sender.
*/
contract TokenHolder is ITokenHolder, Owned, Utils {
    /**
        @dev constructor
    */
    function TokenHolder() {
    }

    /**
        @dev withdraws tokens held by the contract and sends them to an account
        can only be called by the owner

        @param _token   ERC20 token contract address
        @param _to      account to receive the new amount
        @param _amount  amount to withdraw
    */
    function withdrawTokens(IERC20Token _token, address _to, uint256 _amount)
        public
        ownerOnly
        validAddress(_token)
        validAddress(_to)
        notThis(_to)
    {
        assert(_token.transfer(_to, _amount));
    }
}

/*
    Ether Token interface
*/
contract IEtherToken is ITokenHolder, IERC20Token {
    function deposit() public payable;
    function withdraw(uint256 _amount) public;
    function withdrawTo(address _to, uint256 _amount);
}

/*
    EIP228 Token Converter interface
*/
contract ITokenConverter {
    function convertibleTokenCount() public constant returns (uint16);
    function convertibleToken(uint16 _tokenIndex) public constant returns (address);
    function getReturn(IERC20Token _fromToken, IERC20Token _toToken, uint256 _amount) public constant returns (uint256);
    function convert(IERC20Token _fromToken, IERC20Token _toToken, uint256 _amount, uint256 _minReturn) public returns (uint256);
    // deprecated, backward compatibility
    function change(IERC20Token _fromToken, IERC20Token _toToken, uint256 _amount, uint256 _minReturn) public returns (uint256);
}

/*
    Bancor Quick Converter interface
*/
contract IBancorQuickConverter {
    function convert(IERC20Token[] _path, uint256 _amount, uint256 _minReturn) public payable returns (uint256);
    function convertFor(IERC20Token[] _path, uint256 _amount, uint256 _minReturn, address _for) public payable returns (uint256);
}

/*
    The BancorQuickConverter contract provides allows converting between any token in the 
    bancor network in a single transaction.

    A note on conversion paths -
    Conversion path is a data structure that's used when converting a token to another token in the bancor network
    when the conversion cannot necessarily be done by single converter and might require multiple 'hops'.
    The path defines which converters should be used and what kind of conversion should be done in each step.

    The path format doesn't include complex structure and instead, it is represented by a single array
    in which each 'hop' is represented by a 2-tuple - smart token & to token.
    In addition, the first element is always the source token.
    The smart token is only used as a pointer to a converter (since converter addresses are more likely to change).

    Format:
    [source token, smart token, to token, smart token, to token...]
*/
contract BancorQuickConverter is IBancorQuickConverter, TokenHolder {
    mapping (address => bool) public etherTokens;   // list of all supported ether tokens

    /**
        @dev constructor
    */
    function BancorQuickConverter() {
    }

    // validates a conversion path - verifies that the number of elements is odd and that maximum number of 'hops' is 10
    modifier validConversionPath(IERC20Token[] _path) {
        require(_path.length > 2 && _path.length <= (1 + 2 * 10) && _path.length % 2 == 1);
        _;
    }

    /**
        @dev allows the owner to register/unregister ether tokens

        @param _token       ether token contract address
        @param _register    true to register, false to unregister
    */
    function registerEtherToken(IEtherToken _token, bool _register)
        public
        ownerOnly
        validAddress(_token)
        notThis(_token)
    {
        etherTokens[_token] = _register;
    }

    /**
        @dev converts the token to any other token in the bancor network by following
        a predefined conversion path and transfers the result tokens to a target account
        note that the converter should already own the source tokens

        @param _path        conversion path, see conversion path format above
        @param _amount      amount to convert from (in the initial source token)
        @param _minReturn   if the conversion results in an amount smaller than the minimum return - it is cancelled, must be nonzero
        @param _for         account that will receive the conversion result

        @return tokens issued in return
    */
    function convertFor(IERC20Token[] _path, uint256 _amount, uint256 _minReturn, address _for)
        public
        payable
        validConversionPath(_path)
        returns (uint256)
    {
        // if ETH is provided, ensure that the amount is identical to _amount and verify that the source token is an ether token
        IERC20Token fromToken = _path[0];
        require(msg.value == 0 || (_amount == msg.value && etherTokens[fromToken]));

        ISmartToken smartToken;
        IERC20Token toToken;
        ITokenConverter converter;
        uint256 pathLength = _path.length;

        // if ETH was sent with the call, the source is an ether token - deposit the ETH in it
        // otherwise, we assume we already have the tokens
        if (msg.value > 0)
            IEtherToken(fromToken).deposit.value(msg.value)();

        // iterate over the conversion path
        for (uint256 i = 1; i < pathLength; i += 2) {
            smartToken = ISmartToken(_path[i]);
            toToken = _path[i + 1];
            converter = ITokenConverter(smartToken.owner());

            // if the smart token isn't the source (from token), the converter doesn't have control over it and thus we need to approve the request
            if (smartToken != fromToken)
                ensureAllowance(fromToken, converter, _amount);

            // make the conversion - if it's the last one, also provide the minimum return value
            _amount = converter.change(fromToken, toToken, _amount, i == pathLength - 2 ? _minReturn : 1);
            fromToken = toToken;
        }

        // finished the conversion, transfer the funds to the target account
        // if the target token is an ether token, withdraw the tokens and send them as ETH
        // otherwise, transfer the tokens as is
        if (etherTokens[toToken])
            IEtherToken(toToken).withdrawTo(_for, _amount);
        else
            assert(toToken.transfer(_for, _amount));

        return _amount;
    }

    /**
        @dev claims the caller's tokens, converts them to any other token in the bancor network
        by following a predefined conversion path and transfers the result tokens to a target account
        note that allowance must be set beforehand

        @param _path        conversion path, see conversion path format above
        @param _amount      amount to convert from (in the initial source token)
        @param _minReturn   if the conversion results in an amount smaller than the minimum return - it is cancelled, must be nonzero
        @param _for         account that will receive the conversion result

        @return tokens issued in return
    */
    function claimAndConvertFor(IERC20Token[] _path, uint256 _amount, uint256 _minReturn, address _for) public returns (uint256) {
        // we need to transfer the tokens from the caller to the converter before we follow
        // the conversion path, to allow it to execute the conversion on behalf of the caller
        // note: we assume we already have allowance
        IERC20Token fromToken = _path[0];
        assert(fromToken.transferFrom(msg.sender, this, _amount));
        return convertFor(_path, _amount, _minReturn, _for);
    }

    /**
        @dev converts the token to any other token in the bancor network by following
        a predefined conversion path and transfers the result tokens back to the sender
        note that the converter should already own the source tokens

        @param _path        conversion path, see conversion path format above
        @param _amount      amount to convert from (in the initial source token)
        @param _minReturn   if the conversion results in an amount smaller than the minimum return - it is cancelled, must be nonzero

        @return tokens issued in return
    */
    function convert(IERC20Token[] _path, uint256 _amount, uint256 _minReturn) public payable returns (uint256) {
        return convertFor(_path, _amount, _minReturn, msg.sender);
    }

    /**
        @dev claims the caller's tokens, converts them to any other token in the bancor network
        by following a predefined conversion path and transfers the result tokens back to the sender
        note that allowance must be set beforehand

        @param _path        conversion path, see conversion path format above
        @param _amount      amount to convert from (in the initial source token)
        @param _minReturn   if the conversion results in an amount smaller than the minimum return - it is cancelled, must be nonzero

        @return tokens issued in return
    */
    function claimAndConvert(IERC20Token[] _path, uint256 _amount, uint256 _minReturn) public returns (uint256) {
        return claimAndConvertFor(_path, _amount, _minReturn, msg.sender);
    }

    /**
        @dev utility, checks whether allowance for the given spender exists and approves one if it doesn't

        @param _token   token to check the allowance in
        @param _spender approved address
        @param _value   allowance amount
    */
    function ensureAllowance(IERC20Token _token, address _spender, uint256 _value) private {
        // check if allowance for the given amount already exists
        if (_token.allowance(this, _spender) >= _value)
            return;

        // if the allowance is nonzero, must reset it to 0 first
        if (_token.allowance(this, _spender) != 0)
            assert(_token.approve(_spender, 0));

        // approve the new allowance
        assert(_token.approve(_spender, _value));
    }
}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_register","type":"bool"}],"name":"registerEtherToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"etherTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_path","type":"address[]"},{"name":"_amount","type":"uint256"},{"name":"_minReturn","type":"uint256"},{"name":"_for","type":"address"}],"name":"claimAndConvertFor","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_path","type":"address[]"},{"name":"_amount","type":"uint256"},{"name":"_minReturn","type":"uint256"}],"name":"claimAndConvert","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_path","type":"address[]"},{"name":"_amount","type":"uint256"},{"name":"_minReturn","type":"uint256"},{"name":"_for","type":"address"}],"name":"convertFor","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_path","type":"address[]"},{"name":"_amount","type":"uint256"},{"name":"_minReturn","type":"uint256"}],"name":"convert","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_prevOwner","type":"address"},{"indexed":false,"name":"_newOwner","type":"address"}],"name":"OwnerUpdate","type":"event"}]

  Contract Creation Code Switch To Opcodes View
6060604052341561000f57600080fd5b5b5b5b5b60008054600160a060020a03191633600160a060020a03161790555b5b5b5b5b610cb6806100426000396000f300606060405236156100935763ffffffff60e060020a60003504166302ef521e81146100985780635e35359e146100be57806379ba5097146100e85780638077ccf7146100fd5780638da5cb5b14610130578063b1e9932b1461015f578063c7ba24bc146101d6578063c98fefed1461023e578063d4ee1d90146102aa578063f2fde38b146102d9578063f3898a97146102fa575b600080fd5b34156100a357600080fd5b6100bc600160a060020a03600435166024351515610357565b005b34156100c957600080fd5b6100bc600160a060020a03600435811690602435166044356103d5565b005b34156100f357600080fd5b6100bc6104c8565b005b341561010857600080fd5b61011c600160a060020a0360043516610570565b604051901515815260200160405180910390f35b341561013b57600080fd5b610143610585565b604051600160a060020a03909116815260200160405180910390f35b341561016a57600080fd5b6101c46004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650508435946020810135945060400135600160a060020a03169250610594915050565b60405190815260200160405180910390f35b34156101e157600080fd5b6101c460046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496505084359460200135935061065592505050565b60405190815260200160405180910390f35b6101c46004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650508435946020810135945060400135600160a060020a0316925061066d915050565b60405190815260200160405180910390f35b34156102b557600080fd5b6101436109f6565b604051600160a060020a03909116815260200160405180910390f35b34156102e457600080fd5b6100bc600160a060020a0360043516610a05565b005b6101c4600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965050843594602001359350610a6592505050565b60405190815260200160405180910390f35b60005433600160a060020a0390811691161461036f57fe5b81600160a060020a038116151561038557600080fd5b8230600160a060020a031681600160a060020a0316141515156103a757600080fd5b600160a060020a0384166000908152600260205260409020805460ff19168415151790555b5b505b505b5050565b60005433600160a060020a039081169116146103ed57fe5b82600160a060020a038116151561040357600080fd5b82600160a060020a038116151561041957600080fd5b8330600160a060020a031681600160a060020a03161415151561043b57600080fd5b85600160a060020a031663a9059cbb868660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561049857600080fd5b6102c65a03f115156104a957600080fd5b5050506040518051905015156104bb57fe5b5b5b505b505b505b505050565b60015433600160a060020a039081169116146104e357600080fd5b6000546001547f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91600160a060020a039081169116604051600160a060020a039283168152911660208201526040908101905180910390a1600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a038416179091551690555b565b60026020526000908152604090205460ff1681565b600054600160a060020a031681565b600080856000815181106105a457fe5b90602001906020020151905080600160a060020a03166323b872dd33308860006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561061a57600080fd5b6102c65a03f1151561062b57600080fd5b50505060405180519050151561063d57fe5b6106498686868661066d565b91505b50949350505050565b600061066384848433610594565b90505b9392505050565b60008060008060008060008a6002815111801561068c57506015815111155b80156106a55750600281518115156106a057fe5b066001145b15156106b057600080fd5b8b6000815181106106bd57fe5b9060200190602002015196503415806106f85750348b1480156106f85750600160a060020a03871660009081526002602052604090205460ff165b5b151561070457600080fd5b8b51925060003411156107645786600160a060020a031663d0e30db0346040518263ffffffff1660e060020a0281526004016000604051808303818588803b151561074e57600080fd5b6125ee5a03f1151561075f57600080fd5b505050505b600191505b828210156108d3578b828151811061077d57fe5b9060200190602002015195508b826001018151811061079857fe5b90602001906020020151945085600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156107ea57600080fd5b6102c65a03f115156107fb57600080fd5b5050506040518051945050600160a060020a03868116908816146108245761082487858d610a7d565b5b83600160a060020a0316635e5144eb88878e60028803871461084857600161084a565b8e5b60006040516020015260405160e060020a63ffffffff8716028152600160a060020a03948516600482015292909316602483015260448201526064810191909152608401602060405180830381600087803b15156108a757600080fd5b6102c65a03f115156108b857600080fd5b505050604051805190509a508496505b600282019150610769565b600160a060020a03851660009081526002602052604090205460ff16156109615784600160a060020a031663205c28788a8d60405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561094857600080fd5b6102c65a03f1151561095957600080fd5b5050506109e1565b84600160a060020a031663a9059cbb8a8d60006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156109be57600080fd5b6102c65a03f115156109cf57600080fd5b5050506040518051905015156109e157fe5b5b8a97505b5b50505050505050949350505050565b600154600160a060020a031681565b60005433600160a060020a03908116911614610a1d57fe5b600054600160a060020a0382811691161415610a3857600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60006106638484843361066d565b90505b9392505050565b8083600160a060020a031663dd62ed3e308560006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b1515610add57600080fd5b6102c65a03f11515610aee57600080fd5b50505060405180519050101515610b04576103cf565b82600160a060020a031663dd62ed3e308460006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b1515610b6357600080fd5b6102c65a03f11515610b7457600080fd5b5050506040518051159050610c035782600160a060020a031663095ea7b3836000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610be057600080fd5b6102c65a03f11515610bf157600080fd5b505050604051805190501515610c0357fe5b5b82600160a060020a031663095ea7b3838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610c6157600080fd5b6102c65a03f11515610c7257600080fd5b5050506040518051905015156103cf57fe5b5b5050505600a165627a7a723058205af2bfb793be1edccc5342c655ab8f6f18a8b56c7633cfecccb089c74076e9700029

   Swarm Source:
bzzr://5af2bfb793be1edccc5342c655ab8f6f18a8b56c7633cfecccb089c74076e970

 

View All
Block Age transaction Difficulty Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.