@enclavemoney/enclave-wallet-sdk
Version:
A simple enclave wallet SDK for React applications
77 lines (76 loc) • 2.27 kB
TypeScript
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 {};