WalletContextProvider.tsx 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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. BackpackWalletAdapter,
  12. } from "@solana/wallet-adapter-wallets"
  13. import { clusterApiUrl } from "@solana/web3.js"
  14. require("@solana/wallet-adapter-react-ui/styles.css")
  15. const WalletContextProvider: FC<{ children: ReactNode }> = ({ children }) => {
  16. const network = WalletAdapterNetwork.Devnet
  17. const endpoint = useMemo(() => clusterApiUrl(network), [network])
  18. const wallets = useMemo(
  19. () => [
  20. new BackpackWalletAdapter(),
  21. new PhantomWalletAdapter(),
  22. new SolflareWalletAdapter(),
  23. ],
  24. [network]
  25. )
  26. return (
  27. <ConnectionProvider endpoint={endpoint}>
  28. <WalletProvider wallets={wallets} autoConnect>
  29. <WalletModalProvider>{children}</WalletModalProvider>
  30. </WalletProvider>
  31. </ConnectionProvider>
  32. )
  33. }
  34. export default WalletContextProvider