Order
Last updated
import { OrderSide, OrderType, type PlaceOrderDataInput } from '@opinion-labs/opinion-clob-sdk';
// Limit BUY: spend 10 USDT on YES tokens at 0.5
const buyOrder: PlaceOrderDataInput = {
marketId: 123,
tokenId: 'yes_token_id',
side: OrderSide.BUY,
orderType: OrderType.LIMIT_ORDER,
price: '0.5',
makerAmountInQuoteToken: '10',
};
const result = await client.placeOrder(buyOrder);
// Market BUY: spend 10 USDT at market price
const marketBuy: PlaceOrderDataInput = {
marketId: 123,
tokenId: 'yes_token_id',
side: OrderSide.BUY,
orderType: OrderType.MARKET_ORDER,
price: '0',
makerAmountInQuoteToken: '10',
};
const result2 = await client.placeOrder(marketBuy);
// Limit SELL: sell 20 YES tokens at 0.6
const sellOrder: PlaceOrderDataInput = {
marketId: 123,
tokenId: 'yes_token_id',
side: OrderSide.SELL,
orderType: OrderType.LIMIT_ORDER,
price: '0.6',
makerAmountInBaseToken: '20',
};
const result3 = await client.placeOrder(sellOrder);// Cancel single order
await client.cancelOrder('order_123');
// Cancel multiple orders
const results = await client.cancelOrdersBatch(['order_1', 'order_2', 'order_3']);
// Cancel all open orders (optionally filter by market/side)
const summary = await client.cancelAllOrders({ marketId: 123, side: OrderSide.BUY });
console.log(`Cancelled: ${summary.cancelled}, Failed: ${summary.failed}`);// Place multiple orders at once
const orders = [order1, order2, order3];
const results = await client.placeOrdersBatch(orders, true);
for (const r of results) {
if (r.success) {
console.log(`Order ${r.index}: placed successfully`);
} else {
console.log(`Order ${r.index}: failed - ${r.error}`);
}
}