UNPKG

@enclavemoney/enclave-wallet-sdk

Version:

A simple enclave wallet SDK for React applications

77 lines (76 loc) 2.27 kB
import React from "react"; import WalletSDK from "../index"; import { TokenInfo, OutputDetails } from "../services/services"; import { swapToken } from "../types/swap"; import { ProtocolProvider } from "./utils"; interface SwapParams { fromToken: swapToken; toToken: Omit<swapToken, "amount">; showMessagePopup?: boolean; messageType?: "success" | "error"; transactionId?: 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; walletAddress: string | null; solanaAddress: string | null; bitcoinWalletAddress: string | null; balance: any | null; connect: () => void; disconnect: () => void; swap: (params: SwapParams) => void; 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; calculateQuote: (params: QuoteParams) => Promise<OutputDetails | string>; executeSwap: (params: QuoteParams) => Promise<any>; } export declare const useWallet: () => WalletContextType; interface WalletProviderProps { children: React.ReactNode; sdkKey: string; } export declare const WalletProvider: React.FC<WalletProviderProps>; export {};