WalletContextProvider.tsx 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import { FC, ReactNode, useMemo } from "react"
  2. import { WalletAdapterNetwork } from "@solana/wallet-adapter-base"
  3. import {
  4. ConnectionProvider,
  5. WalletProvider,
  6. } from "@solana/wallet-adapter-react"
  7. import { WalletModalProvider } from "@solana/wallet-adapter-react-ui"
  8. import {
  9. PhantomWalletAdapter,
  10. SolflareWalletAdapter,
  11. } from "@solana/wallet-adapter-wallets"
  12. import { clusterApiUrl } from "@solana/web3.js"
  13. require("@solana/wallet-adapter-react-ui/styles.css")
  14. const WalletContextProvider: FC<{ children: ReactNode }> = ({ children }) => {
  15. const network = WalletAdapterNetwork.Devnet
  16. const endpoint = useMemo(() => clusterApiUrl(network), [network])
  17. const wallets = useMemo(
  18. () => [
  19. new PhantomWalletAdapter(),
  20. new SolflareWalletAdapter(),
  21. ],
  22. [network]
  23. )
  24. return (
  25. <ConnectionProvider endpoint={endpoint}>
  26. <WalletProvider wallets={wallets} autoConnect>
  27. <WalletModalProvider>{children}</WalletModalProvider>
  28. </WalletProvider>
  29. </ConnectionProvider>
  30. )
  31. }
  32. export default WalletContextProvider