contract DirectlyExchangeable {
    bool public isRatio; //Should be true if the prices used will be a Ratio, and not just a simple price, otherwise false.

    function sellToConsumer(address consumer, uint quantity, uint price) public returns (bool success);
    function buyFromTrusterDealer(address dealer, uint quantity, uint price) public payable returns (bool success);
    function cancelSellToConsumer(address consumer) public returns (bool success);
    function checkMySellerOffer(address consumer) public view returns (uint quantity, uint price, uint totalWeiCost);
    function checkSellerOffer(address seller) public view returns (uint quantity, uint price, uint totalWeiCost);

    //Events:
    event DirectOfferAvailable(address indexed seller, address indexed buyer, uint quantity, uint price);
    event DirectOfferCancelled(address indexed seller, address indexed consumer, uint quantity, uint price);
    event OrderQuantityMismatch(address indexed addr, uint expectedInRegistry, uint buyerValue);
    event OrderPriceMismatch(address indexed addr, uint expectedInRegistry, uint buyerValue);
}
// ---------------------------------------------------------------------------------------------
// Directly Exchangeable token
// This will allow users to directly exchange between themselves tokens for Eth and vice versa, 
// while having the assurance the other party will be kept to their part of the agreement.
// ---------------------------------------------------------------------------------------------
function sellToConsumer(address consumer, uint quantity, uint price) public returns (bool success);

//Should be true if the prices used will be a Ratio, and not just a simple price, otherwise false.