diff --git a/src/hooks/useEvmAdapter.ts b/src/hooks/useEvmAdapter.ts index 65fcf1e..8c4f064 100644 --- a/src/hooks/useEvmAdapter.ts +++ b/src/hooks/useEvmAdapter.ts @@ -67,17 +67,20 @@ export function useEvmAdapter() { } const providerChanged = provider !== lastProviderRef.current; - if (providerChanged) { + const addressChanged = address !== lastAddressRef.current; + if (providerChanged || addressChanged) { const adapter = await createViemAdapterFromProvider({ provider }); if (!cancelled) { setAdapter(adapter); lastProviderRef.current = provider; + lastAddressRef.current = address; } } - if (!cancelled) { - lastAddressRef.current = address; - } })(); + + return () => { + cancelled = true; + }; }, [client, address]); return { evmAdapter: adapter, evmAddress: address ?? null };