@renex/renex
Version:
The official RenEx Software Development Kit in typescript.
106 lines (105 loc) • 3.16 kB
TypeScript
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 {};