import { Web3Provider, Network } from "@ethersproject/providers"; class WorkaroundWeb3Provider extends Web3Provider { private _detectNetworkResult: Promise | null = null; async detectNetwork(): Promise { return ( this._detectNetworkResult ?? (this._detectNetworkResult = this._uncachedDetectNetwork()) ); } } export default function getLibrary(provider: any): Web3Provider { const chainId = typeof provider.chainId === "number" ? provider.chainId : typeof provider.chainId === "string" ? parseInt(provider.chainId) : "any"; const library = new WorkaroundWeb3Provider(provider, chainId); library.pollingInterval = 15; return library; }