UNPKG

@renex/renex

Version:

The official RenEx Software Development Kit in typescript.

157 lines (156 loc) 7.15 kB
import BigNumber from "bignumber.js"; import Web3 from "web3"; import BN from "bn.js"; import PromiEvent from "web3/promiEvent"; import { Provider } from "web3/providers"; import { NetworkData } from "./lib/network"; import { StorageProvider } from "./storage/interface"; import { BalanceAction, BalanceDetails, Config, MarketDetails, MatchDetails, NumberInput, Options, Order, OrderbookFilter, OrderInputs, OrderStatus, SwapperdBalanceDetails, SwapperdConnectionStatus, TokenCode, TraderOrder, Transaction, TransactionOptions, TransactionStatus, WBTCOrder, WithdrawTransactionOptions } from "./types"; import { DarknodeRegistryContract } from "./contracts/bindings/darknode_registry"; import { ERC20Contract } from "./contracts/bindings/erc20"; import { OrderbookContract } from "./contracts/bindings/orderbook"; import { RenExBalancesContract } from "./contracts/bindings/ren_ex_balances"; import { RenExSettlementContract } from "./contracts/bindings/ren_ex_settlement"; import { RenExTokensContract } from "./contracts/bindings/ren_ex_tokens"; import { WyreContract } from "./contracts/bindings/wyre"; export * from "./types"; export { errors } from "./errors"; export { StorageProvider } from "./storage/interface"; export { deserializeBalanceAction, deserializeTraderOrder, serializeBalanceAction, serializeTraderOrder } from "./storage/serializers"; /** * This is the concrete class that implements the IRenExSDK interface. * * @class RenExSDK */ export declare class RenExSDK { errors: { CouldNotFindSwap: string; CouldNotAuthorizeSwapper: string; InvalidBuffer: string; InvalidHex: string; UnableToConvertToHexadecimalRepresentation: string; UnableToConvertToBase64Representation: string; UnableToConvertToBuffer: string; UnableToRetrieveStatus: string; UnableToRetrieveSwaps: string; UnableToFindMatchingSwap: string; UnableToSubmitSwap: string; UserRejectedSwap: string; InvalidPrice: string; InvalidVolume: string; InvalidMinimumVolume: string; EthGasStationError: string; CouldNotConnectSwapServer: string; Unimplemented: string; CanceledByUser: string; SignatureCanceledByUser: string; UnsignedTransaction: string; InvalidOrderDetails: string; NumericalPrecision: string; FailedDeposit: string; FailedBalanceCheck: string; InsufficientBalance: string; InsufficientFunds: string; UnsupportedFilterStatus: string; UnknownOrderStatus: string; InvalidStoragePath: string; }; _networkData: NetworkData; _swapperdConnectionStatus: SwapperdConnectionStatus; _storage: StorageProvider; _contracts: { renExSettlement: RenExSettlementContract; renExTokens: RenExTokensContract; renExBalances: RenExBalancesContract; orderbook: OrderbookContract; darknodeRegistry: DarknodeRegistryContract; erc20: Map<TokenCode, ERC20Contract>; wyre: WyreContract; }; _cachedTokenDetails: Map<TokenCode, Promise<{ addr: string; decimals: string | number | BN; registered: boolean; }>>; swapperd: { getStatus: () => SwapperdConnectionStatus; getID: () => Promise<string>; getVersion: () => Promise<string>; isConnected: () => boolean; refreshStatus: () => Promise<SwapperdConnectionStatus>; resetStatus: () => Promise<SwapperdConnectionStatus>; authorize: () => Promise<SwapperdConnectionStatus>; fetchBalances: (tokens: string[]) => Promise<Map<string, SwapperdBalanceDetails>>; fetchAddresses: (tokens: string[]) => Promise<string[]>; wrap: (amount: NumberInput, token: string) => Promise<WBTCOrder>; unwrap: (amount: NumberInput, token: string) => Promise<WBTCOrder>; }; atom: { getStatus: () => SwapperdConnectionStatus; getID: () => Promise<string>; getVersion: () => Promise<string>; isConnected: () => boolean; refreshStatus: () => Promise<SwapperdConnectionStatus>; resetStatus: () => Promise<SwapperdConnectionStatus>; authorize: () => Promise<SwapperdConnectionStatus>; fetchBalances: (tokens: string[]) => Promise<Map<string, SwapperdBalanceDetails>>; fetchAddresses: (tokens: string[]) => Promise<string[]>; wrap: (amount: NumberInput, token: string) => Promise<WBTCOrder>; unwrap: (amount: NumberInput, token: string) => Promise<WBTCOrder>; }; utils: { normalizePrice: (price: NumberInput, roundUp?: boolean | undefined) => NumberInput; normalizeVolume: (volume: NumberInput, roundUp?: boolean | undefined) => NumberInput; normalizeOrder: (order: OrderInputs) => OrderInputs; }; private _web3; private _address; private _config; /** * Creates an instance of RenExSDK. * @param {Provider} provider * @memberof RenExSDK */ constructor(provider: Provider, options?: Options); fetchBalances: (tokens: string[]) => Promise<Map<string, BalanceDetails>>; fetchBalanceActionStatus: (txHash: string) => Promise<TransactionStatus>; fetchOrderStatus: (orderID: string) => Promise<OrderStatus>; fetchMatchDetails: (orderID: string) => Promise<MatchDetails | undefined>; fetchOrderbook: (filter: OrderbookFilter) => Promise<Order[]>; fetchOrderBlockNumber: (orderID: string) => Promise<number>; fetchMarkets: () => Promise<MarketDetails[]>; fetchSupportedTokens: () => Promise<string[]>; fetchSupportedSwapperdTokens: () => Promise<string[]>; fetchSupportedAtomicTokens: () => Promise<string[]>; withdraw: (value: NumberInput, token: string, options?: WithdrawTransactionOptions | undefined) => Promise<{ balanceAction: BalanceAction; promiEvent: PromiEvent<Transaction> | null; }>; openOrder: (order: OrderInputs, options?: TransactionOptions | undefined) => Promise<{ traderOrder: TraderOrder; promiEvent: PromiEvent<Transaction> | null; }>; cancelOrder: (orderID: string, options?: TransactionOptions | undefined) => Promise<{ promiEvent: PromiEvent<Transaction> | null; }>; fetchDarknodeFeePercent: () => Promise<BigNumber>; fetchWrappingFeePercent: () => Promise<BigNumber>; fetchUnwrappingFeePercent: () => Promise<BigNumber>; fetchMinEthTradeVolume: () => Promise<BigNumber>; fetchGasPrice: () => Promise<number | undefined>; fetchTraderOrders: (options?: { refresh: boolean; }) => Promise<TraderOrder[]>; fetchBalanceActions: (options?: { refresh: boolean; }) => Promise<BalanceAction[]>; refreshBalanceActionStatuses: () => Promise<Map<string, TransactionStatus>>; refreshOrderStatuses: () => Promise<Map<string, OrderStatus>>; getWeb3: () => Web3; getAddress: () => string; getConfig: () => Config; setAddress: (addr: string) => void; updateProvider: (provider: Provider) => void; private setupStorageProvider; } export default RenExSDK;