@renex/renex
Version:
The official RenEx Software Development Kit in typescript.
195 lines (194 loc) • 5.15 kB
TypeScript
import BigNumber from "bignumber.js";
import BN from "bn.js";
import { StorageProvider } from "./storage/interface";
export { NetworkData } from "./lib/network";
export declare type NumberInput = number | string | BigNumber;
export interface Transaction {
receipt: any;
tx: string;
logs: any[];
}
export declare type OrderID = string;
export declare enum OrderStatus {
NOT_SUBMITTED = "NOT_SUBMITTED",
FAILED_TO_SETTLE = "FAILED_TO_SETTLE",
OPEN = "OPEN",
CONFIRMED = "CONFIRMED",
CANCELED = "CANCELED",
SETTLED = "SETTLED",
SLASHED = "SLASHED",
EXPIRED = "EXPIRED"
}
export declare enum OrderSettlement {
RenEx = "renex",
RenExAtomic = "atomic"
}
export declare enum OrderType {
MIDPOINT = "midpoint",
LIMIT = "limit",
MIDPOINT_IOC = "midpoint_ioc",
LIMIT_IOC = "limit_ioc"
}
export declare type OrderSide = "buy" | "sell";
export declare const OrderSide: {
BUY: OrderSide;
SELL: OrderSide;
};
export declare enum Token {
BTC = "BTC",
ETH = "ETH",
DGX = "DGX",
TUSD = "TUSD",
REN = "REN",
ZRX = "ZRX",
OMG = "OMG",
WBTC = "WBTC"
}
export declare enum MarketPair {
WBTC_BTC = "WBTC/BTC",
ETH_BTC = "ETH/BTC",
REN_BTC = "REN/BTC",
TUSD_BTC = "TUSD/BTC",
DGX_ETH = "DGX/ETH",
TUSD_ETH = "TUSD/ETH",
REN_ETH = "REN/ETH",
ZRX_ETH = "ZRX/ETH",
OMG_ETH = "OMG/ETH"
}
export interface MarketDetails {
symbol: MarketCode;
orderSettlement: OrderSettlement;
quote: TokenCode;
base: TokenCode;
}
export declare type TokenCode = string;
export declare type MarketCode = string;
export interface OrderInputs {
symbol: MarketCode;
side: OrderSide;
price: NumberInput;
volume: NumberInput;
minVolume?: NumberInput;
type?: OrderInputsAll["type"];
}
export interface OrderInputsAll extends OrderInputs {
price: BigNumber;
volume: BigNumber;
side: OrderSide;
minVolume: BigNumber;
type: OrderType;
expiry: number;
}
export interface ComputedOrderDetails {
receiveToken: TokenCode;
spendToken: TokenCode;
receiveVolume: BigNumber;
spendVolume: BigNumber;
date: number;
feeAmount: BigNumber;
feeToken: TokenCode;
orderSettlement: OrderSettlement;
nonce: BN;
}
export interface Order {
readonly id: OrderID;
readonly trader: string;
status: OrderStatus;
matchDetails?: MatchDetails;
}
export interface WBTCOrder extends Order {
readonly version?: number;
readonly swapServer: true;
readonly orderInputs: OrderInputs;
readonly computedOrderDetails: ComputedOrderDetails;
}
export interface SwapOrder extends Order {
readonly version?: number;
readonly swapServer: undefined;
readonly computedOrderDetails: ComputedOrderDetails;
readonly orderInputs: OrderInputsAll;
readonly transactionHash: string;
}
export declare type TraderOrder = WBTCOrder | SwapOrder;
export interface OrderbookFilter {
address?: string;
status?: OrderStatus;
limit?: number;
start?: number;
}
export interface MatchDetails {
orderID: string;
matchedID: string;
receivedVolume: BigNumber;
spentVolume: BigNumber;
fee: BigNumber;
receivedToken: TokenCode;
spentToken: TokenCode;
}
export interface TokenDetails {
address: string;
decimals: number;
registered: boolean;
}
export interface BalanceDetails {
free: BigNumber | null;
used: BigNumber | null;
nondeposited: BigNumber | null;
}
export interface SwapperdBalanceDetails {
free: BigNumber | null;
used: BigNumber | null;
}
export declare enum BalanceActionType {
Withdraw = "withdraw",
Deposit = "deposit"
}
export declare enum TransactionStatus {
Pending = "pending",
Done = "done",
Failed = "failed",
Replaced = "replaced"
}
export interface TransactionOptions {
awaitConfirmation?: boolean;
gasPrice?: number | undefined;
simpleConsole?: SimpleConsole;
}
export interface WithdrawTransactionOptions extends TransactionOptions {
withoutIngressSignature?: boolean;
}
export interface BalanceAction {
version?: number;
action: BalanceActionType;
amount: BigNumber;
time: number;
status: TransactionStatus;
token: TokenCode;
trader: string;
txHash: string;
nonce: number | undefined;
}
export interface Options {
network?: Config["network"];
autoNormalizeOrders?: Config["autoNormalizeOrders"];
storageProvider?: Config["storageProvider"];
}
export interface Config extends Options {
network: string;
autoNormalizeOrders: boolean;
storageProvider: string | StorageProvider;
}
export interface SimpleConsole {
error(message?: string): void;
log(message?: string): void;
}
export declare const NullConsole: SimpleConsole;
export declare enum SwapperdConnectionStatus {
InvalidSwapper = "invalid_swapper",
ChangedSwapper = "changed_swapper",
NotConnected = "not_connected",
NotAuthorized = "not_authorized",
AtomNotAuthorized = "swapperd_not_authorized",
ConnectedUnlocked = "connected_unlocked",
ConnectedLocked = "connected_locked"
}