UNPKG

@renex/renex

Version:

The official RenEx Software Development Kit in typescript.

106 lines (105 loc) 3.16 kB
import BigNumber from "bignumber.js"; import BN from "bn.js"; import { BalanceActionType, OrderSettlement, OrderSide, OrderStatus, OrderType, TokenCode, TransactionStatus } from "../types"; declare enum V0BalanceActionType { Withdraw = "withdraw", Deposit = "deposit" } declare enum V0TransactionStatus { Pending = "pending", Done = "done", Failed = "failed", Replaced = "replaced" } export interface V0BalanceAction { action: V0BalanceActionType; amount: BN; time: number; status: V0TransactionStatus; token: number; trader: string; txHash: string; nonce: number | undefined; } export declare const deserializeV0BalanceAction: (balanceActionString: string) => V0BalanceAction; export declare function BalanceActionMapper(actionType: V0BalanceActionType): BalanceActionType; export declare function TransactionStatusMapper(status: V0TransactionStatus): TransactionStatus; interface ComputedOrderDetails { receiveVolume: BN; spendVolume: BN; date: number; parity: V0OrderParity; feeAmount: BN; feeToken: number; } interface V0MatchDetails { orderID: string; matchedID: string; receivedVolume: BN; spentVolume: BN; fee: BN; receivedToken: number; spentToken: number; } declare enum V0OrderStatus { NOT_SUBMITTED = "NOT_SUBMITTED", FAILED_TO_SETTLE = "FAILED_TO_SETTLE", OPEN = "OPEN", CONFIRMED = "CONFIRMED", CANCELED = "CANCELED", SETTLED = "SETTLED", SLASHED = "SLASHED", EXPIRED = "EXPIRED" } interface Order { readonly id: string; readonly trader: string; status: V0OrderStatus; matchDetails?: V0MatchDetails; } interface OrderInputs { spendToken: number; receiveToken: number; price: number | string | BigNumber; volume: number | string | BN; minimumVolume: number | string | BN; type?: OrderInputsAll["type"]; orderSettlement?: OrderInputsAll["orderSettlement"]; nonce?: OrderInputsAll["nonce"]; } declare enum V0OrderParity { BUY = 0, SELL = 1 } declare enum V0OrderType { MIDPOINT = 0, LIMIT = 1, MIDPOINT_IOC = 2, LIMIT_IOC = 3 } declare enum V0OrderSettlement { RenEx = 1, RenExAtomic = 2 } interface OrderInputsAll extends OrderInputs { price: BigNumber; volume: BN; minimumVolume: BN; type: V0OrderType; orderSettlement: V0OrderSettlement; nonce: BN; expiry: number; } export interface V0TraderOrder extends Order { readonly computedOrderDetails: ComputedOrderDetails; readonly orderInputs: OrderInputsAll; readonly transactionHash: string; } export declare const deserializeV0TraderOrder: (orderString: string) => V0TraderOrder; export declare function idToToken(token: number): TokenCode; export declare function OrderSettlementMapper(settlement: V0OrderSettlement): OrderSettlement; export declare function OrderStatusMapper(status: V0OrderStatus): OrderStatus; export declare function OrderSideMapper(parity: V0OrderParity): OrderSide; export declare function OrderTypeMapper(orderType: V0OrderType): OrderType; export declare function tokenToDigits(token: TokenCode): number; export {};