@enclavemoney/enclave-wallet-sdk
Version:
A simple enclave wallet SDK for React applications
114 lines (113 loc) • 2.5 kB
TypeScript
/**
* 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: {
[]: TokenDetail[];
};
destinationAmounts: {
[]: TokenDetail[];
};
status: OverallStatus;
lastUpdatedTimestamp: number;
transactions: {
[]: {
[]: 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: {
[]: TokenDetail[];
};
outputTokens: {
[]: TokenDetail[];
};
transactions: {
[]: {
[]: TransactionDetail;
};
};
overallStatus: OverallStatus;
metadata: TransactionMetadata;
createdTimestamp: number;
lastUpdatedTimestamp: number;
}