42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
'use client';
|
|
|
|
import { WalletAdapterNetwork } from '@solana/wallet-adapter-base';
|
|
import { ConnectionProvider, WalletProvider as SolanaWalletProvider } 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 { useMemo } from 'react';
|
|
|
|
// Import wallet adapter CSS
|
|
import '@solana/wallet-adapter-react-ui/styles.css';
|
|
|
|
interface WalletProviderProps {
|
|
children: React.ReactNode;
|
|
}
|
|
|
|
export default function WalletProvider({ children }: WalletProviderProps) {
|
|
// The network can be set to '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(
|
|
() => [
|
|
new PhantomWalletAdapter(),
|
|
new SolflareWalletAdapter(),
|
|
],
|
|
[]
|
|
);
|
|
|
|
return (
|
|
<ConnectionProvider endpoint={endpoint}>
|
|
<SolanaWalletProvider wallets={wallets} autoConnect>
|
|
<WalletModalProvider>
|
|
{children}
|
|
</WalletModalProvider>
|
|
</SolanaWalletProvider>
|
|
</ConnectionProvider>
|
|
);
|
|
}
|