UNPKG

@enclavemoney/enclave-wallet-sdk

Version:

A simple enclave wallet SDK for React applications

133 lines (132 loc) 4.69 kB
import React from "react"; import WalletSDK from "../index"; import { TokenInfo, OutputDetails, OptimalSourceTokenDistributionResponse, OptimalSourceTokenDistributionInput, ComputeQuoteResponse, ComputeQuoteInput, SourceTokensInput, SourceTokensResponse } from "../services/services"; import { CalculateQuoteInput, CalculateQuoteResponse, ExecuteSwapInput, ExecuteSwapResponse, GetQuoteForActionInput, GetQuoteForActionResponse, ExecuteActionInput, ExecuteActionResponse } from "../services/quoteServices"; import { swapToken } from "../types/swap"; import { ProtocolProvider } from "./utils"; import { ThemeMode, CornerRadius, WalletConfig, Theme } from "../types/theme"; interface SwapParams { fromToken: swapToken; toToken: Omit<swapToken, "amount">; showMessagePopup?: boolean; messageType?: "success" | "error"; transactionId?: string; } interface TransferParams { inputToken: { symbol?: string; name?: string; address: string; chainId: number; decimals?: number; balance?: string; logoURI?: string; chainIds?: { chainId: number; address: string; balance?: string; }[]; }; inputAmount?: string; recipient: string; } interface HeadlessTransferParams { inputToken: { symbol?: string; name?: string; address: string; chainId: number; decimals?: number; balance?: string; logoURI?: string; chainIds?: { chainId: number; address: string; balance?: string; }[]; }; inputAmount: string; recipient: string; } interface QuoteParams { fromToken: { amount: string; chainId: number; tokenAddress: string; metadata?: { tokenName: string; tokenSymbol: string; decimals: number; logoURI: string; chainIds: { chainId: number; address: string; }[]; }; }; toToken: { chainId: number; tokenAddress: string; metadata?: { tokenName: string; tokenSymbol: string; decimals: number; logoURI: string; chainIds: { chainId: number; address: string; }[]; }; }; provider?: ProtocolProvider; } interface WalletContextType { walletSDK: WalletSDK | null; isLoggedIn: boolean; username: string | null; evmWalletAddress: string | null; solanaAddress: string | null; bitcoinWalletAddress: string | null; balance: any | null; connect: () => void; openWalletModal: () => void; disconnect: () => void; swap: (params: SwapParams) => void; executeTransfer: (params: TransferParams) => void; executeHeadlessTransfer: (params: HeadlessTransferParams) => Promise<any>; tokenOptions: TokenInfo[]; tokensLoading: boolean; refreshTokenOptions: () => Promise<void>; cryptoBalance: any; loading: boolean; setLoading: (loading: boolean) => void; refreshBalance: (showLoading?: boolean) => Promise<void>; showActivity: boolean; setShowActivity: (showActivity: boolean) => void; activity: any; setActivity: (activity: any) => void; calculateDemoQuote: (params: QuoteParams) => Promise<OutputDetails | string>; headlessSwap: (params: QuoteParams) => Promise<any>; getOptimalSourceTokenDistribution: (params: OptimalSourceTokenDistributionInput) => Promise<OptimalSourceTokenDistributionResponse | null>; computeQuote: (params: ComputeQuoteInput) => Promise<ComputeQuoteResponse | null>; getSourceTokensFromTokenIdentifier: (params: SourceTokensInput) => Promise<SourceTokensResponse | null>; calculateQuote: (params: CalculateQuoteInput) => Promise<CalculateQuoteResponse | null>; executeSwap: (params: ExecuteSwapInput) => Promise<ExecuteSwapResponse | null>; getQuoteForAction: (params: GetQuoteForActionInput) => Promise<GetQuoteForActionResponse | null>; executeAction: (params: ExecuteActionInput) => Promise<ExecuteActionResponse | null>; theme: ThemeMode; walletCornerRadius: CornerRadius; config: WalletConfig; currentTheme: Theme; loginWithRedirect: () => void; handlePopupMessage: (event: MessageEvent) => void; isPopupAuthenticated: boolean; popupLoginData: any; } export declare const useWallet: () => WalletContextType; interface WalletProviderProps { children: React.ReactNode; config: WalletConfig; } export declare const WalletProvider: React.FC<WalletProviderProps>; export {};