import type { Adapter, WalletError } from '@solana/wallet-adapter-base'; import { WalletAdapterNetwork } from '@solana/wallet-adapter-base'; import { ConnectionProvider, WalletProvider } from '@solana/wallet-adapter-react'; import { WalletModalProvider } from '@solana/wallet-adapter-react-ui'; import { PhantomWalletAdapter, SolflareWalletAdapter } from '@solana/wallet-adapter-wallets'; import { clusterApiUrl } from '@solana/web3.js'; import { useCallback, useMemo } from 'react'; // Default styles that can be overridden by your app import '@solana/wallet-adapter-react-ui/styles.css'; export const ClientWalletProvider = ({ children }: { children: React.ReactNode }) => { // Can also use 'devnet', 'testnet', or 'mainnet-beta' const network = WalletAdapterNetwork.Devnet; // You can also provide a custom RPC endpoint const endpoint = useMemo(() => clusterApiUrl(network), [network]); const wallets = useMemo( () => [ /** * Select the wallets you wish to support, by instantiating wallet adapters here. * Can add more like SolflareWalletAdapter, etc. */ new PhantomWalletAdapter(), new SolflareWalletAdapter(), ], // eslint-disable-next-line react-hooks/exhaustive-deps [network] ); const onError = useCallback((error: WalletError, adapter?: Adapter) => { console.error(error, adapter); }, []); return ( {children} ); };