Skip to content

Commit 1c0858d

Browse files
fix: wagmiConfig override matches SE-2 main client + arbitrum (#122)
1 parent dae4d17 commit 1c0858d

1 file changed

Lines changed: 25 additions & 3 deletions

File tree

extension/packages/nextjs/services/web3/wagmiConfig.tsx.args.mjs

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,41 @@ import { arbitrum } from "viem/chains";
33
`;
44

55
export const configOverrides = {
6-
client: `$$({chain})=>{const alchemyHttpUrl=chain.id==(arbitrum.id as number)?"http://127.0.0.1:8545":getAlchemyHttpUrl(chain.id);const rpcFallbacks=alchemyHttpUrl?[http(),http(alchemyHttpUrl)]:[http()];return createClient({chain,transport:fallback(rpcFallbacks)})}$$`,
6+
client: `$$({chain})=>{const mainnetFallbackWithDefaultRPC=[http("https://mainnet.rpc.buidlguidl.com")];let rpcFallbacks=[...(chain.id===mainnet.id?mainnetFallbackWithDefaultRPC:[]),http()];if(chain.id===(arbitrum.id as number)){rpcFallbacks=[http("http://127.0.0.1:8545"),...rpcFallbacks];}const rpcOverrideUrl=(scaffoldConfig.rpcOverrides as ScaffoldConfig["rpcOverrides"])?.[chain.id];if(rpcOverrideUrl){rpcFallbacks=[http(rpcOverrideUrl),...rpcFallbacks];}else{const alchemyHttpUrl=getAlchemyHttpUrl(chain.id);if(alchemyHttpUrl){const isUsingDefaultKey=scaffoldConfig.alchemyApiKey===DEFAULT_ALCHEMY_API_KEY;rpcFallbacks=isUsingDefaultKey?[...rpcFallbacks,http(alchemyHttpUrl)]:[http(alchemyHttpUrl),...rpcFallbacks];}}return createClient({chain,transport:fallback(rpcFallbacks),...(chain.id!==(hardhat as Chain).id?{pollingInterval:scaffoldConfig.pollingInterval}:{})});}$$`,
77
};
88

99
// NOTE: While passing function you need to ensure it's in one line.
1010
// You can use AI to format the code to one line. (check above example for reference)
1111
/* export const configOverrides = {
1212
client: `$$({ chain }) => {
13-
const alchemyHttpUrl = chain.id == arbitrum.id ? "http://127.0.0.1:8545" : getAlchemyHttpUrl(chain.id);
14-
const rpcFallbacks = alchemyHttpUrl ? [http(), http(alchemyHttpUrl)] : [http()];
13+
// Extra fallback for mainnet.
14+
const mainnetFallbackWithDefaultRPC = [http("https://mainnet.rpc.buidlguidl.com")];
15+
let rpcFallbacks = [...(chain.id === mainnet.id ? mainnetFallbackWithDefaultRPC : []), http()];
16+
17+
// Custom RPC for Arbitrum (extension example).
18+
if (chain.id === (arbitrum.id as number)) {
19+
rpcFallbacks = [http("http://127.0.0.1:8545"), ...rpcFallbacks];
20+
}
21+
22+
const rpcOverrideUrl = (scaffoldConfig.rpcOverrides as ScaffoldConfig["rpcOverrides"])?.[chain.id];
23+
24+
if (rpcOverrideUrl) {
25+
rpcFallbacks = [http(rpcOverrideUrl), ...rpcFallbacks];
26+
} else {
27+
const alchemyHttpUrl = getAlchemyHttpUrl(chain.id);
28+
if (alchemyHttpUrl) {
29+
const isUsingDefaultKey = scaffoldConfig.alchemyApiKey === DEFAULT_ALCHEMY_API_KEY;
30+
// If using default Scaffold-ETH 2 API key, we prioritize the default RPC
31+
rpcFallbacks = isUsingDefaultKey
32+
? [...rpcFallbacks, http(alchemyHttpUrl)]
33+
: [http(alchemyHttpUrl), ...rpcFallbacks];
34+
}
35+
}
1536
1637
return createClient({
1738
chain,
1839
transport: fallback(rpcFallbacks),
40+
...(chain.id !== (hardhat as Chain).id ? { pollingInterval: scaffoldConfig.pollingInterval } : {}),
1941
});
2042
}$$`
2143
} */

0 commit comments

Comments
 (0)