@radar/redshift-api-client v0.2.9
@radar/redshift-api-client
REDSHIFT HTTP & WebSocket Client Library
Installation
npm
npm install @radar/redshift-api-client
yarn
yarn add @radar/redshift-api-client
Usage - REDSHIFT Client
The REDSHIFT client acts as a wrapper for the HTTP & WebSocket clients.
Import
import { RedshiftClient } from '@radar/redshift-api-client';
Instantiation
Mainnet
By default, the REDSHIFT client targets mainnet
const client = new RedshiftClient();
If you prefer to be explicit, you can pass RedshiftApiUrl.MAINNET
into the constructor
const client = new RedshiftClient(RedshiftApiUrl.MAINNET);
Testnet
const client = new RedshiftClient(RedshiftApiUrl.TESTNET);
Client Access
The http
and ws
getters can be used to access the HTTP & WebSocket client methods.
http
- Get Markets Example
Get the active markets
const markets = await client.http.getMarkets();
ws
- Connect Example
Establish a connection to the REDSHIFT WebSocket API
await client.ws.connect();
Usage - HTTP Client
The HTTP client can be used to interact with the REDSHIFT HTTP endpoints.
Import
import { HttpClient } from '@radar/redshift-api-client';
Instantiation
Mainnet
By default, the HTTP client targets mainnet
const client = new HttpClient();
If you prefer to be explicit, you can pass RedshiftApiUrl.MAINNET
into the constructor
const client = new HttpClient(RedshiftApiUrl.MAINNET);
Testnet
const client = new HttpClient(RedshiftApiUrl.TESTNET);
Methods
Get Markets
Get the active markets
const markets = await client.getMarkets();
Get Orders
Get all swap orders for a specific invoice
const orders = await client.getOrders(invoice);
// Or filter by the on-chain asset used to fund the swap
const orders = await client.getOrders(invoice, OnChainTicker.ETH);
Get Order
Get a single swap order
const order = await client.getOrder(orderId);
Get Order State
Get the state of a single order
const state = await client.getOrderState(orderId);
Get Order Fund Details
Get the fund details for an order
const state = await client.getOrderFundDetails(orderId);
Get Order Transactions
Get the transactions relating to an order
const state = await client.getOrderTransactions(orderId);
Get Order Refund Details
Get the refund details for a single order
const details = await client.getOrderRefundDetails(orderId);
Usage - WebSocket Client
The WebSocket client can be used to interact with the REDSHIFT WebSocket endpoints. Many WebSocket interactions are promisified to provide a better developer experience.
Import
import { WebSocketClient } from '@radar/redshift-api-client';
Instantiation
Mainnet
By default, the WebSocket client targets mainnet
const client = new WebSocketClient();
If you prefer to be explicit, you can pass RedshiftApiUrl.MAINNET
into the constructor
const client = new WebSocketClient(RedshiftApiUrl.MAINNET);
Testnet
const client = new WebSocketClient(RedshiftApiUrl.TESTNET);
Methods
Connect
Establish a connection to the REDSHIFT WebSocket API
await client.connect();
Disconnect
Disconnect from the REDSHIFT WebSocket API
client.disconnect();
Request Quote
Request a quote for the provided invoice and selected on-chain asset
await client.requestQuote(quoteRequest);
Subscribe to Order State
Subscribe to order state updates for the provided order id
await client.subscribeToOrderState(orderId);
On Order State Changed
Execute the callback function when an order state update is received
client.onOrderStateChanged(stateUpdate => {
console.log(stateUpdate);
});
Unsubscribe from Order State
Unsubscribe from order state updates for the provided order id
await client.unsubscribeFromOrderState(orderId);
Subscribe to Block Height
Subscribe to block height updates for the provided network and subnet
await client.subscribeToBlockHeight(network, subnet);
On Block Height Changed
Execute the callback function when a block height update is received
client.onBlockHeightChanged(blockHeightUpdate => {
console.log(blockHeightUpdate);
});
Unsubscribe from Block Height
Unsubscribe from block height updates for the provided network and subnet
await client.unsubscribeFromBlockHeight(network, subnet);
Request Refund Details
Request refund details for a specific swap order
const details = await client.requestRefundDetails(orderId);
Broadcast Transaction
Broadcast signed transaction hex to your network of choice
const { txId } = await client.broadcastTransaction(txRequest);