UNPKG

@enclavemoney/enclave-wallet-sdk

Version:

A simple enclave wallet SDK for React applications

114 lines (113 loc) 2.5 kB
/** * Transaction types enum for multi-transactions */ export declare enum MultiTransactionType { TRANSFER = "TRANSFER", SWAP = "SWAP", CUSTOM = "CUSTOM", INCOMING = "INCOMING" } /** * Transaction status enum for individual transactions */ export declare enum TransactionStatus { PENDING = "PENDING", COMPLETED = "COMPLETED", FAILED = "FAILED" } /** * Overall status enum for multi-transactions */ export declare enum OverallStatus { PENDING = "PENDING", COMPLETED = "COMPLETED", FAILED = "FAILED" } /** * Receiver interface for transaction recipients */ export interface User { username?: string; walletAddress?: string; solana_program_wallet?: string; ens?: string; } /** * Token details interface */ export interface TokenDetail { amount: string; amountFormatted: string; tokenAddress: string; tokenName: string; tokenSymbol: string; receiver?: User; } /** * Interface for individual transaction details */ export interface TransactionDetail { txnURL: string; status: TransactionStatus; } /** * Token Details */ export interface TokenURI { tokenName: string; tokenSymbol: string; tokenAddress: string; decimals: number; logoURI: string; } /** * Interface for transaction metadata */ export interface TransactionMetadata { senderDetails: User; receiverDetails: User[]; inputAmounts: { [key: string]: TokenDetail[]; }; destinationAmounts: { [key: string]: TokenDetail[]; }; status: OverallStatus; lastUpdatedTimestamp: number; transactions: { [key: string]: { [key: string]: TransactionDetail; }; }; inputToken: TokenURI; outputToken: TokenURI; totalInputAmount: string; totalOutputAmount: string; } /** * Interface for MultiTransaction document */ export interface IMultiTransaction { multiTransactionId: string; transactionType: MultiTransactionType; transactionDescription: string; sender: User; receivers: User[]; sourceChains: number[]; destinationChains: number[]; inputTokens: { [key: string]: TokenDetail[]; }; outputTokens: { [key: string]: TokenDetail[]; }; transactions: { [key: string]: { [key: string]: TransactionDetail; }; }; overallStatus: OverallStatus; metadata: TransactionMetadata; createdTimestamp: number; lastUpdatedTimestamp: number; }