Sell and buy orders
Buying with cash or selling for cash can be done via the buy
and sell
functions of a Market instance. The code snippets below send limit buy (taker) orders on the market, with an allowed slippage of 2%:
// buy limit order for 100 base tokens at an average price of 0.1 quote per base
const buyPromises = await mgvMarket.buy({volume:100, price:0.1, slippage:2});
const buyResult = await buyPromises.result;
// limit order with a desired quantitiy
const butPromises_ = await mgvMarket.buy({wants:100, gives:1000, slippage:2});
const buyResult_ = await buyPromises_.result;
// sell limit order (selling 10 base tokens).
const sellPromises = await mgvMarket.sell({volume:10, price: 0.09, slippage:2});
const sellResult = await sellPromises.result;
info
sell
and buy
orders return a pair { response: Promise<ContractTransaction>, result: Promise<OrderResult> }
The result (OrderResult
) returns a triple {
takerGave:Big, takerGot:Big, bounty:Big}
where:
takerGave
is the total amount of base (for a sell) or quote (for a buy) tokens that the taker spent for the ordertakerGot
is the total amount of quote (for a sell) or base (for a buy) tokens that the taker received as a result of the orderbounty
is the amount of native tokens the taker received to compensate for the gas lost of executing failing offer during the order execution see bounty.