Skip to content

Commit

Permalink
fix: enable ens fetching only if mainnet is configured (#1814)
Browse files Browse the repository at this point in the history
  • Loading branch information
magiziz committed Mar 7, 2024
1 parent 524d7a0 commit 2f637e4
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 0 deletions.
5 changes: 5 additions & 0 deletions .changeset/popular-ducks-travel.md
@@ -0,0 +1,5 @@
---
"@rainbow-me/rainbowkit": patch
---

Fixed a bug where wagmi would throw `ChainNotConfiguredError` if `mainnet` is not configured as a chain. This is happening when fetching ens name and ens avatar.
14 changes: 14 additions & 0 deletions packages/rainbowkit/src/hooks/useIsMainnetConfigured.ts
@@ -0,0 +1,14 @@
import { mainnet } from 'wagmi/chains';
import { useRainbowKitChains } from '../components/RainbowKitProvider/RainbowKitChainContext';

export function useIsMainnetConfigured() {
const rainbowKitChains = useRainbowKitChains();

const chainId = mainnet.id;

const configured = rainbowKitChains.some(
(rainbowKitChain) => rainbowKitChain.id === chainId,
);

return configured;
}
6 changes: 6 additions & 0 deletions packages/rainbowkit/src/hooks/useMainnetEnsAvatar.ts
@@ -1,11 +1,17 @@
import { GetEnsNameReturnType, normalize } from 'viem/ens';
import { useEnsAvatar } from 'wagmi';
import { mainnet } from 'wagmi/chains';
import { useIsMainnetConfigured } from './useIsMainnetConfigured';

export function useMainnetEnsAvatar(name: GetEnsNameReturnType | undefined) {
const mainnetConfigured = useIsMainnetConfigured();

const { data: ensAvatar } = useEnsAvatar({
chainId: mainnet.id,
name: name ? normalize(name) : undefined,
query: {
enabled: mainnetConfigured,
},
});

return ensAvatar;
Expand Down
6 changes: 6 additions & 0 deletions packages/rainbowkit/src/hooks/useMainnetEnsName.ts
@@ -1,11 +1,17 @@
import { Address } from 'viem';
import { useEnsName } from 'wagmi';
import { mainnet } from 'wagmi/chains';
import { useIsMainnetConfigured } from './useIsMainnetConfigured';

export function useMainnetEnsName(address: Address | undefined) {
const mainnetConfigured = useIsMainnetConfigured();

const { data: ensName } = useEnsName({
chainId: mainnet.id,
address,
query: {
enabled: mainnetConfigured,
},
});

return ensName;
Expand Down

0 comments on commit 2f637e4

Please sign in to comment.