@renex/renex
Version:
The official RenEx Software Development Kit in typescript.
88 lines (87 loc) • 2.82 kB
TypeScript
import Web3 from "web3";
import { TokenCode } from "../types";
export declare enum SwapperConnectionStatus {
NotConnected = "not_connected",
ConnectedUnlocked = "connected_unlocked",
ConnectedLocked = "connected_locked",
NotAuthorized = "not_authorized"
}
interface BalanceObject {
address: string;
balance: string;
}
export interface BalancesResponse {
[token: string]: BalanceObject;
}
export declare const fetchSwapperVersion: (network: string) => Promise<string>;
export declare const fetchSwapperAddress: (network: string) => Promise<string>;
export declare function fetchSwapperStatus(network: string, ingress: string, getSwapperID: () => Promise<string>): Promise<SwapperConnectionStatus>;
export declare enum SwapStatus {
INACTIVE = "inactive",
INITIATED = "initiated",
AUDITED = "audited",
AUDIT_PENDING = "audit_pending",
AUDIT_FAILED = "audit_failed",
REDEEMED = "redeemed",
AUDITED_SECRET = "audited_secret",
REFUNDED = "refunded",
REFUND_FAILED = "refund_failed",
CANCELLED = "cancelled",
EXPIRED = "expired"
}
interface SwapCore {
id?: string;
sendToken: string;
receiveToken: string;
sendAmount: string;
receiveAmount: string;
delay?: boolean;
delayInfo?: any;
}
export interface SwapBlob extends SwapCore {
minimumReceiveAmount?: string;
sendTo?: string;
receiveFrom?: string;
timeLock?: number;
secretHash?: string;
shouldInitiateFirst?: boolean;
delayCallbackUrl?: string;
brokerFee?: number;
sendFee?: string;
receiveFee?: string;
brokerSendTokenAddr?: string;
brokerReceiveTokenAddr?: string;
}
export interface SubmitImmediateResponse {
swap: SwapBlob;
signature: string;
id: string;
}
interface InnerSwapReceipt extends SwapCore {
sendCost: any;
receiveCost: any;
timestamp: number;
timeLock: number;
status: number;
}
/**
* This replaces the InnerSwapReceipt status from type number to type SwapStatus
*/
export interface SwapReceipt extends Pick<InnerSwapReceipt, Exclude<keyof InnerSwapReceipt, "status">> {
status: SwapStatus;
}
export declare function submitSwap(swap: SwapBlob, network: string): Promise<boolean | SubmitImmediateResponse>;
export declare function findMatchingSwapReceipt(check: (swap: SwapReceipt) => boolean, network: string): Promise<SwapReceipt>;
export declare function getSwapperdAddresses(tokens: TokenCode[], options: {
network: string;
}): Promise<string[]>;
export declare function getSwapperdBalances(options: {
network: string;
}): Promise<BalancesResponse>;
export declare function generateSignature(web3: Web3, address: string, message: {
orderID: string;
kycAddr: string;
sendTokenAddr: string;
receiveTokenAddr: string;
}): Promise<string>;
export {};