"use client";
import { createConfig, http, WagmiProvider } from "wagmi";
import { RainbowKitProvider } from "@rainbow-me/rainbowkit";
import { base, baseSepolia, Chain } from "wagmi/chains";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { coinbaseWallet, walletConnectWallet, rainbowWallet, metaMaskWallet } from '@rainbow-me/rainbowkit/wallets'
import TxProvider from "./TxProvider";
coinbaseWallet.preference = 'all';
const queryClient = new QueryClient()
const config = getDefaultConfig({
appName: "Uplink.wtf",
appUrl: process.env.NEXT_PUBLIC_CLIENT_URL,
projectId: process.env.NEXT_PUBLIC_WALLET_CONNECT_PROJECT_ID,
chains: [base as Chain, baseSepolia as Chain],
transports: {
[base.id]: http(),
[baseSepolia.id]: http(),
},
ssr: true,
wallets: [{
groupName: "Popular",
wallets: [coinbaseWallet, metaMaskWallet]
},
{
groupName: "More",
wallets: [walletConnectWallet, rainbowWallet]
}
],
})
export default function WalletProvider({ children }: { children: React.ReactNode }) {
return (
<WagmiProvider config={config}>
<QueryClientProvider client={queryClient}>
<RainbowKitProvider>
<TxProvider>
{children}
</TxProvider>
</RainbowKitProvider>
</QueryClientProvider>
</WagmiProvider>
);
}