@unidexexchange/sdk
v0.0.22
Published
Communicate with the unidex API to submit and manage orders
Downloads
4
Readme
Unidex SDK
This SDK helps you interact with The Unidex backend. Please see https://unidexexchange.gitbook.io/unidex/api-information/ for a description on how to manually connect to our API.
Installation
In your favorite package manager:
npm install @unidexexchange/sdk
In your code:
import LimitOrdersApi from '@unidex/sdk';
function SubmitLimitOrder() {
// get order details
const tx = await LimitOrdersApi.placeOrder(request);
submitTransaction(tx);
}
Typical Flow
Most users will use this library to submit limit orders to Unidex's backend. As shown in the
example above, the first step is to call placeOrder
. Once this is done, an order will be executed
by our contracts in the background and balances on the blockchain will be updated.
If a user desires to cancel a previously submitted order, they must fetch all pertinent information
using listOrders
and subsequently, submit the result of cancelOrder
to the blockchain.
Below we provide a description of the API. Most names are selfexplanatory.
API
LimitOrdersApi.listOrders
Fetch all orders for an account/network.
Request:
interface FetchLimitOrdersTxRequest {
account: string;
chainId: number;
includeCancelled: boolean;
includeExecuted: boolean;
}
Response:
A list of OpenLimitOrder
s
interface OpenLimitOrder {
id: string;
blockNumber: string;
createdAt: string;
inputToken: string;
inputAmount: string;
outputToken: string;
minReturn: string;
module: string;
owner: string;
witness: string;
createdTxHash: string;
executedTxHash: string;
cancelledTxHash: string;
vault: string;
updatedAt: string;
}
LimitOrdersApi.placeOrder
Fetch the EVM transaction that creates a Limit Order in the Unidex system. The returned transaction should be submitted to the blockchain.
Request:
interface PlaceLimitOrderTxRequest {
chainId: number;
account: string;
sellToken: string;
sellAmount: string;
buyToken: string;
buyAmount: string;
}
Response: Transaction to be submitted
interface Transaction {
to: string;
from?: string;
data: any;
value?: string;
gasLimit?: string;
}
LimitOrdersApi.cancelOrder
Cancel an already submitted limit order. Make sure all the parameters matched those returned
by listOrders
Request:
interface CancelLimitOrderTxRequest {
account: string;
chainId: number;
module: string;
inputToken: string;
outputToken: string;
minReturn: string;
owner: string;
witness: string;
}
Response:
interface Transaction {
to: string;
from?: string;
data: any;
value?: string;
gasLimit?: string;
}