interface DutchXExchange {
    // Two functions below are in fact: mapping (address => mapping (address => uint)) public sellVolumesCurrent;
    // Token => Token => amount
    function buyVolumes(address sellToken, address buyToken) public view returns (uint);
    function sellVolumesCurrent(address sellToken, address buyToken) public view returns (uint);
    function deposit(address tokenAddress,uint amount) public returns(uint);
    function postBuyOrder(address sellToken,address buyToken,uint auctionIndex,uint amount) public returns (uint);

    function claimBuyerFunds(address sellToken, address buyToken, address user, uint auctionIndex) public
        returns(uint returned, uint frtsIssued);

    function withdraw(address tokenAddress,uint amount) public returns (uint);
    function getAuctionIndex(address sellToken, address buyToken) public view returns(uint index);
    function getFeeRatio(address user) public view returns (uint num, uint den); // feeRatio < 10^4

    function getCurrentAuctionPrice(address sellToken, address buyToken, uint auctionIndex) public view
        returns (uint num, uint den);
}
function buyVolumes(address sellToken, address buyToken) public view returns (uint);

// Two functions below are in fact: mapping (address => mapping (address => uint)) public sellVolumesCurrent;
// Token => Token => amount