11import React from "react" ;
22
3- import { createWeb3Modal } from "@web3modal/wagmi/react" ;
4- import { type Chain } from "viem" ;
5- import { createConfig , fallback , http , WagmiProvider , webSocket } from "wagmi" ;
6- import { mainnet , arbitrumSepolia , gnosisChiado } from "wagmi/chains" ;
7- import { walletConnect } from "wagmi/connectors" ;
8-
3+ import { fallback , http , WagmiProvider , webSocket } from "wagmi" ;
4+ import { mainnet , arbitrumSepolia , gnosisChiado , type AppKitNetwork } from "@reown/appkit/networks" ;
5+ import { createAppKit } from "@reown/appkit/react" ;
6+ import { WagmiAdapter } from "@reown/appkit-adapter-wagmi" ;
97import { lightTheme } from "styles/themes" ;
108
119export const alchemyApiKey = import . meta. env . ALCHEMY_API_KEY ?? "" ;
@@ -17,11 +15,11 @@ const alchemyToViemChain = {
1715
1816type AlchemyProtocol = "https" | "wss" ;
1917
20- const alchemyURL = ( protocol : AlchemyProtocol , chainId : number ) =>
18+ const alchemyURL = ( protocol : AlchemyProtocol , chainId : number | string ) =>
2119 `${ protocol } ://${ alchemyToViemChain [ chainId ] } .g.alchemy.com/v2/${ alchemyApiKey } ` ;
2220
2321const getTransports = ( ) => {
24- const alchemyTransport = ( chain : Chain ) =>
22+ const alchemyTransport = ( chain : AppKitNetwork ) =>
2523 fallback ( [ http ( alchemyURL ( "https" , chain . id ) ) , webSocket ( alchemyURL ( "wss" , chain . id ) ) ] ) ;
2624 const chiadoTransport = ( ) =>
2725 fallback ( [ http ( "https://rpc.chiadochain.net" ) , webSocket ( "wss://rpc.chiadochain.net/wss" ) ] ) ;
@@ -33,26 +31,30 @@ const getTransports = () => {
3331 } ;
3432} ;
3533
36- const chains = [ arbitrumSepolia , mainnet , gnosisChiado ] as [ Chain , ...Chain [ ] ] ;
34+ const chains = [ arbitrumSepolia , mainnet , gnosisChiado ] as [ AppKitNetwork , ...AppKitNetwork [ ] ] ;
3735const transports = getTransports ( ) ;
3836const projectId = import . meta. env . WALLETCONNECT_PROJECT_ID ?? "" ;
39- const wagmiConfig = createConfig ( {
40- chains,
37+
38+ const wagmiAdapter = new WagmiAdapter ( {
39+ networks : chains ,
40+ projectId,
4141 transports,
42- connectors : [ walletConnect ( { projectId, showQrModal : false } ) ] ,
4342} ) ;
4443
45- createWeb3Modal ( {
46- wagmiConfig,
44+ createAppKit ( {
45+ adapters : [ wagmiAdapter ] ,
46+ networks : chains ,
47+ defaultNetwork : arbitrumSepolia ,
4748 projectId,
4849 themeVariables : {
4950 "--w3m-color-mix" : lightTheme . primaryPurple ,
5051 "--w3m-color-mix-strength" : 20 ,
52+ // overlay portal is at 9999
53+ "--w3m-z-index" : 10000 ,
5154 } ,
5255} ) ;
53-
5456const Web3Provider : React . FC < { children : React . ReactNode } > = ( { children } ) => {
55- return < WagmiProvider config = { wagmiConfig } > { children } </ WagmiProvider > ;
57+ return < WagmiProvider config = { wagmiAdapter . wagmiConfig } > { children } </ WagmiProvider > ;
5658} ;
5759
5860export default Web3Provider ;
0 commit comments