@@ -25,6 +25,20 @@ export const ethersProviders: {
2525 [ key : string ] : providers . StaticJsonRpcProvider
2626} = { }
2727
28+ export function getProvider ( chain : Chain ) : providers . StaticJsonRpcProvider {
29+ if ( ! chain ) return null
30+
31+ if ( ! ethersProviders [ chain . rpcUrl ] ) {
32+ ethersProviders [ chain . rpcUrl ] = new providers . StaticJsonRpcProvider (
33+ chain . providerConnectionInfo ?. url
34+ ? chain . providerConnectionInfo
35+ : chain . rpcUrl
36+ )
37+ }
38+
39+ return ethersProviders [ chain . rpcUrl ]
40+ }
41+
2842export function requestAccounts (
2943 provider : EIP1193Provider
3044) : Promise < ProviderAccounts > {
@@ -231,13 +245,7 @@ export async function getEns(
231245 // chain we don't recognize and don't have a rpcUrl for requests
232246 if ( ! chain ) return null
233247
234- if ( ! ethersProviders [ chain . rpcUrl ] ) {
235- ethersProviders [ chain . rpcUrl ] = new providers . StaticJsonRpcProvider (
236- chain . rpcUrl
237- )
238- }
239-
240- const provider = ethersProviders [ chain . rpcUrl ]
248+ const provider = getProvider ( chain ) ;
241249
242250 try {
243251 const name = await provider . lookupAddress ( address )
@@ -277,13 +285,7 @@ export async function getBalance(
277285 // chain we don't recognize and don't have a rpcUrl for requests
278286 if ( ! chain ) return null
279287
280- if ( ! ethersProviders [ chain . rpcUrl ] ) {
281- ethersProviders [ chain . rpcUrl ] = new providers . StaticJsonRpcProvider (
282- chain . rpcUrl
283- )
284- }
285-
286- const provider = ethersProviders [ chain . rpcUrl ]
288+ const provider = getProvider ( chain ) ;
287289
288290 try {
289291 const balanceWei = await provider . getBalance ( address )
0 commit comments