0x0x230x

Untitled

Jan 20th, 2025
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. 'use client';
  2.  
  3. import { ReactNode } from 'react';
  4. import { PrivyClientConfig, PrivyProvider } from '@privy-io/react-auth';
  5. import { createConfig, WagmiProvider } from '@privy-io/wagmi';
  6. import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
  7. import { env } from '@/lib/config/env';
  8. import { base } from 'wagmi/chains';
  9. import { toSolanaWalletConnectors } from '@privy-io/react-auth/solana';
  10. // import { farcasterFrame } from '@farcaster/frame-wagmi-connector';
  11. import { http } from 'wagmi';
  12.  
  13. type Web3ProviderProps = {
  14. children: ReactNode;
  15. };
  16.  
  17. const queryClient = new QueryClient();
  18.  
  19. const privyConfig: PrivyClientConfig = {
  20. appearance: {
  21. walletChainType: 'ethereum-and-solana',
  22. walletList: [
  23. 'phantom',
  24. // 'detected_ethereum_wallets',
  25. 'metamask',
  26. 'rainbow',
  27. 'rabby_wallet',
  28. 'safe',
  29. 'okx_wallet',
  30. 'uniswap',
  31. ],
  32. },
  33. embeddedWallets: {
  34. createOnLogin: 'all-users',
  35. showWalletUIs: false,
  36. },
  37. externalWallets: {
  38. solana: {
  39. connectors: toSolanaWalletConnectors({ shouldAutoConnect: true }),
  40. },
  41. },
  42. loginMethods: ['farcaster', 'wallet'],
  43. };
  44.  
  45. const config = createConfig({
  46. chains: [base],
  47. transports: {
  48. [base.id]: http(),
  49. },
  50. // connectors: [farcasterFrame()],
  51. });
  52.  
  53. export const Web3Provider = ({ children }: Web3ProviderProps) => {
  54. return (
  55. <PrivyProvider appId={env.NEXT_PUBLIC_PRIVY_APP_ID} config={privyConfig}>
  56. <QueryClientProvider client={queryClient}>
  57. <WagmiProvider config={config}>{children}</WagmiProvider>
  58. </QueryClientProvider>
  59. </PrivyProvider>
  60. );
  61. };
  62.  
Advertisement
Add Comment
Please, Sign In to add comment