You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I tried to migrate connectkit together with other libraries to the last versions and my dapp broke. I'm having problems with Alchemy provider and with the connect wallet when I cannot Metamask.
I think somewhere I might have some client side component on server side but I cannot find where.
VM41530:12 Warning: React has detected a change in the order of Hooks called by ConnectKitProvider. This will lead to bugs and errors if not fixed. For more information, read the Rules of Hooks: https://reactjs.org/link/rules-of-hooks
Previous render Next render
------------------------------------------------------
1. useContext useContext
2. useContext useContext
3. useContext useContext
4. useEffect useEffect
5. useContext useContext
6. useContext useContext
7. useSyncExternalStore useSyncExternalStore
8. useState useState
9. useState useState
10. useState useState
11. useState useState
12. useState useState
13. useState useState
14. useState useState
15. useState useState
16. useState useState
17. useEffect useEffect
18. useEffect useEffect
19. useEffect useEffect
20. useContext useContext
21. useRef useRef
22. useRef useRef
23. useMemo useMemo
24. useSyncExternalStore useSyncExternalStore
25. useEffect useEffect
26. useDebugValue useDebugValue
27. useEffect useContext
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
at ConnectKitProvider (webpack-internal:///(app-pages-browser)/./node_modules/connectkit/build/index.es.js:15605:11)
at QueryClientProvider (webpack-internal:///(app-pages-browser)/./node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js:27:11)
at Hydrate (webpack-internal:///(app-pages-browser)/./node_modules/wagmi/dist/esm/hydrate.js:12:13)
at WagmiProvider (webpack-internal:///(app-pages-browser)/./node_modules/wagmi/dist/esm/context.js:13:13)
at html
at RootLayout (webpack-internal:///(app-pages-browser)/./app/layout.jsx:33:11)
at RedirectErrorBoundary (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/redirect-boundary.js:73:9)
at RedirectBoundary (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/redirect-boundary.js:81:11)
at NotFoundErrorBoundary (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js:76:9)
at NotFoundBoundary (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js:84:11)
at DevRootNotFoundBoundary (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/dev-root-not-found-boundary.js:33:11)
at ReactDevOverlay (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/react-dev-overlay/internal/ReactDevOverlay.js:84:9)
at HotReload (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/react-dev-overlay/hot-reloader-client.js:307:11)
at Router (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js:181:11)
at ErrorBoundaryHandler (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js:114:9)
at ErrorBoundary (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js:161:11)
at AppRouter (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js:536:13)
at ServerRoot (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/app-index.js:129:11)
at RSCComponent
at Root (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/app-index.js:145:11)
To reproduce
My RootLayout code where I setup connectkit
"use client";importReactfrom"react";import{WagmiProvider,createConfig,http}from"wagmi";import{ConnectKitProvider,getDefaultConfig}from"connectkit";import{Toaster}from"react-hot-toast";import{QueryClient,QueryClientProvider}from"@tanstack/react-query";import"./i18n.jsx";importNavbarfrom"../components/navigation/navbar";importFooterfrom"../components/navigation/footer";import{// mainnet,// polygon,// optimism,// arbitrum,polygonMumbai,}from"wagmi/chains";// Choose which chains you'd like to showconstchains=[polygonMumbai];//, polygon, mainnet, optimism, arbitrum];exportdefaultfunctionRootLayout({ children }){constconfig=createConfig(getDefaultConfig({
chains,transports: {[polygonMumbai.id]: http(`https://polygon-mumbai.g.alchemy.com/v2/${process.env.NEXT_PUBLIC_ALCHEMY_API_KEY}`),},// Required API KeyswalletConnectProjectId: process.env.NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID,// RequiredappName: "Account Abstraction interaction Dapp",// OptionalappDescription: "Your App Description",appUrl: "https://family.co",// your app's urlappIcon: "https://family.co/logo.png",// your app's logo,no bigger than 1024x1024px (max. 1MB)}));constqueryClient=newQueryClient();return(<htmllang="en"><WagmiProviderconfig={config}><QueryClientProviderclient={queryClient}><ConnectKitProvidermode="dark"><body><Toasterposition="bottom-right"/><Navbar/><divstyle={{display: "flex",flexDirection: "column",minHeight: "105vh",}}><divstyle={{flexGrow: 1}}>{children}</div><Footer/></div></body></ConnectKitProvider></QueryClientProvider></WagmiProvider></html>);}
My code setting up Alchemy provider (using AA):
import{createWalletClient,custom}from"viem";import{AlchemyProvider}from"@alchemy/aa-alchemy";import{WalletClientSigner}from"@alchemy/aa-core";import{LightSmartContractAccount,getDefaultLightAccountFactoryAddress,}from"@alchemy/aa-accounts";import{polygonMumbai}from"viem/chains";constchain=polygonMumbai;functionuseAAProvider(){constgetProvider=async()=>{constprovider=newAlchemyProvider({apiKey: process.env.NEXT_PUBLIC_ALCHEMY_API_KEY,chain: chain,});returnprovider;};constcreateEOASigner=()=>{constclient=createWalletClient({chain: polygonMumbai,transport: custom(window.ethereum),});// this can now be used as an owner for a Smart Contract AccountconsteoaSigner=newWalletClientSigner(client,"json-rpc"//signerType);returneoaSigner;};constconnectProviderWithSCAAddress=async(accountAddress)=>{constprovider=awaitgetProvider();consteoaSigner=createEOASigner();constconnectedProvider=awaitprovider.connect((rpcClient)=>newLightSmartContractAccount({
chain,owner: eoaSigner,accountAddress: accountAddress,factoryAddress: getDefaultLightAccountFactoryAddress(chain),
rpcClient,}));returnconnectedProvider;};constconnectProvider=async(scaAddress)=>{constprovider=awaitgetProvider();consteoaSigner=createEOASigner();constconnectedProvider=awaitprovider.connect((rpcClient)=>newLightSmartContractAccount({
chain,owner: eoaSigner,accountAddress: scaAddress ? scaAddress : undefined,factoryAddress: getDefaultLightAccountFactoryAddress(chain),
rpcClient,}));returnconnectedProvider;};return{ connectProviderWithSCAAddress, connectProvider };}exportdefaultuseAAProvider;
connectkit version 1.7.1
Expected behavior
Not see any error and being able to use the connectkit provider for the signer in the account abstraction Alchemy provider as I could do with previous version of connectkit
Screenshots
If applicable, add screenshots to help explain your problem.
Environment details
OS: Windows
Browser: Opera
Additional context
Next.js application
I have another error that might be related and I also haven't solved yet. I actually think this one is also caused by connectkit.
This is the traceback:
TypeError: Cannot read properties of undefined (reading 'http')
at new AlchemyProvider (base.js:61:90)
at getProvider (useAAProvider.jsx:15:22)
at connectProvider (useAAProvider.jsx:54:28)
at getProvider (index.jsx:80:30)
at eval (index.jsx:59:7)
at commitHookEffectListMount (react-dom.development.js:18071:39)
at commitHookPassiveMountEffects (react-dom.development.js:19742:21)
at commitPassiveMountOnFiber (react-dom.development.js:19826:29)
at recursivelyTraversePassiveMountEffects (react-dom.development.js:19808:21)
at commitPassiveMountOnFiber (react-dom.development.js:19918:25)
at recursivelyTraversePassiveMountEffects (react-dom.development.js:19808:21)
at commitPassiveMountOnFiber (react-dom.development.js:19824:25)
at recursivelyTraversePassiveMountEffects (react-dom.development.js:19808:21)
at commitPassiveMountOnFiber (react-dom.development.js:19824:25)
at recursivelyTraversePassiveMountEffects (react-dom.development.js:19808:21)
at commitPassiveMountOnFiber (react-dom.development.js:19918:25)
at recursivelyTraversePassiveMountEffects (react-dom.development.js:19808:21)
at commitPassiveMountOnFiber (react-dom.development.js:19824:25)
at recursivelyTraversePassiveMountEffects (react-dom.development.js:19808:21)
at commitPassiveMountOnFiber (react-dom.development.js:19918:25)
at recursivelyTraversePassiveMountEffects (react-dom.development.js:19808:21)
at commitPassiveMountOnFiber (react-dom.development.js:19824:25)
at recursivelyTraversePassiveMountEffects (react-dom.development.js:19808:21)
at commitPassiveMountOnFiber (react-dom.development.js:19918:25)
at recursivelyTraversePassiveMountEffects (react-dom.development.js:19808:21)
at commitPassiveMountOnFiber (react-dom.development.js:19824:25)
at recursivelyTraversePassiveMountEffects (react-dom.development.js:19808:21)
at commitPassiveMountOnFiber (react-dom.development.js:19824:25)
at recursivelyTraversePassiveMountEffects (react-dom.development.js:19808:21)
at commitPassiveMountOnFiber (react-dom.development.js:19824:25)
at recursivelyTraversePassiveMountEffects (react-dom.development.js:19808:21)
at commitPassiveMountOnFiber (react-dom.development.js:19918:25)
at recursivelyTraversePassiveMountEffects (react-dom.development.js:19808:21)
at commitPassiveMountOnFiber (react-dom.development.js:19824:25)
at recursivelyTraversePassiveMountEffects (react-dom.development.js:19808:21)
at commitPassiveMountOnFiber (react-dom.development.js:19824:25)
at recursivelyTraversePassiveMountEffects (react-dom.development.js:19808:21)
at commitPassiveMountOnFiber (react-dom.development.js:19918:25)
at recursivelyTraversePassiveMountEffects (react-dom.development.js:19808:21)
at commitPassiveMountOnFiber (react-dom.development.js:19918:25)
at recursivelyTraversePassiveMountEffects (react-dom.development.js:19808:21)
at commitPassiveMountOnFiber (react-dom.development.js:19824:25)
at recursivelyTraversePassiveMountEffects (react-dom.development.js:19808:21)
at commitPassiveMountOnFiber (react-dom.development.js:19918:25)
at recursivelyTraversePassiveMountEffects (react-dom.development.js:19808:21)
at commitPassiveMountOnFiber (react-dom.development.js:19918:25)
at recursivelyTraversePassiveMountEffects (react-dom.development.js:19808:21)
at commitPassiveMountOnFiber (react-dom.development.js:19918:25)
at recursivelyTraversePassiveMountEffects (react-dom.development.js:19808:21)
at commitPassiveMountOnFiber (react-dom.development.js:19918:25)
The text was updated successfully, but these errors were encountered:
Describe the bug
I tried to migrate connectkit together with other libraries to the last versions and my dapp broke. I'm having problems with Alchemy provider and with the connect wallet when I cannot Metamask.
I think somewhere I might have some client side component on server side but I cannot find where.
To reproduce
My RootLayout code where I setup connectkit
My code setting up Alchemy provider (using AA):
connectkit version 1.7.1
Expected behavior
Not see any error and being able to use the connectkit provider for the signer in the account abstraction Alchemy provider as I could do with previous version of connectkit
Screenshots
If applicable, add screenshots to help explain your problem.
Environment details
OS: Windows
Browser: Opera
Additional context
Next.js application
I have another error that might be related and I also haven't solved yet. I actually think this one is also caused by connectkit.
This is the traceback:
The text was updated successfully, but these errors were encountered: