@renegade-fi/core
Version:
VanillaJS library for Renegade
40 lines (32 loc) • 1.31 kB
text/typescript
import { getHseBaseUrl } from '../chains/defaults.js'
import { ORDER_HISTORY_LEN_PARAM, ORDER_HISTORY_ROUTE } from '../constants.js'
import type { RenegadeConfig } from '../createConfig.js'
import { BaseError, type BaseErrorType } from '../errors/base.js'
import type { OrderMetadata } from '../types/order.js'
import { getRelayerWithAuth } from '../utils/http.js'
import { getWalletId } from './getWalletId.js'
export type GetOrderHistoryParameters = {
limit?: number
}
export type GetOrderHistoryReturnType = Map<string, OrderMetadata>
export type GetOrderHistoryErrorType = BaseErrorType
export async function getOrderHistory(
config: RenegadeConfig,
parameters: GetOrderHistoryParameters = {},
): Promise<GetOrderHistoryReturnType> {
const { limit } = parameters
const hseBaseUrl = getHseBaseUrl(config.chainId)
const walletId = getWalletId(config)
let url = `${hseBaseUrl}/v0${ORDER_HISTORY_ROUTE(walletId)}`
if (limit !== undefined) {
const searchParams = new URLSearchParams({
[ORDER_HISTORY_LEN_PARAM]: limit.toString(),
})
url += `?${searchParams.toString()}`
}
const res = await getRelayerWithAuth(config, url)
if (!res.orders) {
throw new BaseError('No orders found')
}
return new Map(res.orders.map((order: OrderMetadata) => [order.id, order]))
}