Exchanges

Reto Trinkler edited this page Apr 2, 2017 · 5 revisions

Overview

Currently used Exchange

Currently used exchange implementation is a derivative of Maker exchange.

Deployment Addresses

Intended Extension

Exchange Protocol implementation will follow one or several of the prevalent exchanges, especially likely is

  • OasisDex compatibility and/or
  • 0xProject

Technical Overview

Protocol implementation according to:

/// @title Exchange Protocol Contract
/// @author Melonport AG <team@melonport.com>
/// @notice This is to be considered as a protocol on how to access the underlying Exchange Contract
contract ExchangeProtocol {

    // CONSTANT METHODS

    function getLastOrderId() constant returns (uint) {}
    function isActive(uint id) constant returns (bool active) {}
    function getOwner(uint id) constant returns (address owner) {}
    function getOrder(uint id) constant returns (uint, ERC20, uint, ERC20) {}

    // NON-CONSTANT METHODS

    function make(
        uint sell_how_much, ERC20 sell_which_token,
        uint buy_how_much,  ERC20 buy_which_token
    )
        returns (uint id)
    {}
    function take(uint id, uint quantity) returns (bool) {}
    function cancel(uint id) returns (bool) {}

    // EVENTS

    event OrderUpdate(uint id);
    event Trade(uint sell_how_much, address indexed sell_which_token,
        uint buy_how_much, address indexed buy_which_token);

}