UNPKG

@ultrade/ultrade-js-sdk

Version:

This package contains the original js/ts SDK.

147 lines (146 loc) 4.43 kB
import { SuggestedParams } from 'algosdk'; import { TradingKeyType, PaginatedResult, ISafeWithdrawalWallets, UpdateWithdrawalWallet, CreateWithdrawalWallet } from "@ultrade/shared/browser/interfaces"; import { ACTION_TYPE, OperationStatusEnum, TransactionType } from '../enum/index.ts'; export interface TxnParams { suggestedParams: SuggestedParams; from: string; to: string; amount: number; assetIndex?: number; } export interface OperationTxn { txn_hash: string; chain_id: number; createdAt?: Date; updatedAt?: Date; type?: TransactionType; } export interface OperationVAA { vaaId: string; from_chain_id: number; to_chain_id: number; sequence: number; emitter: string; createdAt: Date; updatedAt: Date; } export interface OperationCCTP { id: number; destinationChainId: number; messageHash: string; messageBytes: string; status: OperationStatusEnum; attestationSignature: string; createdAt: Date; updatedAt: Date; attestationCompletedAt: Date; } export interface ITransactionDetails { primaryId: number; id: string; login_address: string; login_chain_id: number; action_type: 'withdraw' | 'deposit'; status: OperationStatusEnum; amount: string; targetAddress: string; timestamp: string; createdAt: Date; updatedAt: Date; vaa_message?: Buffer; fee: string | null; transactions: Array<OperationTxn>; vaaMessages: Array<OperationVAA>; cctp: Array<OperationCCTP>; } export interface ITransaction { primaryId: number; id: string; action_type: ACTION_TYPE; status: OperationStatusEnum; amount: string; targetAddress: string; createdAt?: Date; updatedAt: Date; vaa_message?: Buffer; fee: string | null; token_id: { id: number; address: string; chainId: number; unitName: string; name: string; decimals: number; }; transactions: Array<{ txnHash: string; chainId: number; }>; vaaMessages: Array<OperationVAA>; } export type IGetWalletTransactions = PaginatedResult<ITransaction>; export interface ITradingKey { address: string; createdAt: Date; expiredAt: Date; orders: number; device: string; type?: TradingKeyType; } export interface ITransfer { transferId: number; senderAddress: string; recipientAddress: string; tokenId: number; amount: string; expiredAt: number; whitelistId: number; txnId: string; completedAt: Date; status: OperationStatusEnum; } export type IGetTransfers = PaginatedResult<ITransfer>; export interface IPendingTxn { id: number; type: ACTION_TYPE; amount: string; tokenId: number; } export interface IWhiteList { id?: number; loginAddress: string; loginChainId: number; recipient: string; recipientChainId: number; tkAddress: string; expiredDate: number; } export interface IGetWhiteList { id: number; recipientAddress: string; tkAddress: string; expiredAt: number; } export type IPreparedGetWhiteList = PaginatedResult<IGetWhiteList>; import { IWithdrawData, ITransferData } from "@ultrade/shared/browser/interfaces"; export interface IWithdrawResponse { operationId: string; txnId: string; } export interface IWalletForClient { getTransactionDetalis(transactionId: number): Promise<ITransactionDetails>; getPendingTransactions(): Promise<IPendingTxn[]>; getWhitelist(): Promise<IPreparedGetWhiteList>; addWhitelist(data: IWhiteList): Promise<IGetWhiteList>; deleteWhitelist(whitelistId: number): Promise<void>; getWalletTransactions(type: string, page: number, limit?: number): Promise<IGetWalletTransactions>; getTradingKeys(): Promise<ITradingKey[]>; getTransfers(page: number, limit?: number): Promise<IGetTransfers>; getAllWithdrawalWallets(): Promise<ISafeWithdrawalWallets[]>; getWithdrawalWalletByAddress(address: string): Promise<ISafeWithdrawalWallets>; createWithdrawalWallet(body: CreateWithdrawalWallet): Promise<ISafeWithdrawalWallets>; updateWithdrawalWallet(params: UpdateWithdrawalWallet): Promise<boolean>; deleteWithdrawalWallet(address: string): Promise<boolean>; withdraw(withdrawData: IWithdrawData, prettyMsg?: string): Promise<IWithdrawResponse>; transfer(transferData: ITransferData): Promise<ITransfer>; }