0.0.22 • Published 4 years ago

@unidexexchange/sdk v0.0.22

Weekly downloads
-
License
MIT
Repository
-
Last release
4 years ago

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 OpenLimitOrders

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;
}
0.0.22

4 years ago

0.0.21

4 years ago

0.0.101

4 years ago

0.0.20

4 years ago

0.0.19

4 years ago

0.0.1

4 years ago