interface KyberNetworkProxyInterface {
    
    // function maxGasPrice() public view returns(uint);
    // function getUserCapInWei(address user) public view returns(uint);
    // function getUserCapInTokenWei(address user, ERC20 token) public view returns(uint);
    // function enabled() public view returns(bool);
    // function info(bytes32 id) public view returns(uint);

    function getExpectedRate(IERC20 src, IERC20 dest, uint srcQty) external view
        returns (uint expectedRate, uint slippageRate);

    //function tradeWithHint(IERC20 src, 
    //                       uint srcAmount, 
    //                       IERC20 dest, 
    //                       address destAddress, 
    //                       uint maxDestAmount,
    //                       uint minConversionRate, 
    //                       address walletId, 
    //                       bytes calldata hint) external payable returns(uint);

    // function swapEtherToToken(IERC20 token, uint minRate) external payable returns (uint);
    // function swapTokenToEther(IERC20 token, uint tokenQty, uint minRate) external returns (uint);
    function swapTokenToToken(IERC20 src, uint srcAmount, IERC20 dest, uint minConversionRate) external returns(uint);
}
/// @title Kyber Network interface
function getExpectedRate(IERC20 src, IERC20 dest, uint srcQty) external view
    returns (uint expectedRate, uint slippageRate);

// function maxGasPrice() public view returns(uint);
// function getUserCapInWei(address user) public view returns(uint);
// function getUserCapInTokenWei(address user, ERC20 token) public view returns(uint);
// function enabled() public view returns(bool);
// function info(bytes32 id) public view returns(uint);