Commit 021aab65 authored by Moody Salem's avatar Moody Salem

fix(wallet): workaround the ethers bug to fix other wallets

parent 81af31ee
import { Web3Provider } from '@ethersproject/providers' import { Web3Provider, Network } from '@ethersproject/providers'
import { Web3ReactContextInterface } from '@web3-react/core/dist/types'
export default function getLibrary( class WorkaroundWeb3Provider extends Web3Provider {
provider: any, private _detectNetworkResult: Promise<Network> | null = null
connector?: Required<Web3ReactContextInterface>['connector']
): Web3Provider { async detectNetwork(): Promise<Network> {
// todo: need to add types to this function and fix the issue with latest version of ethers not able to detect network if we pass in 'any' return this._detectNetworkResult ?? (this._detectNetworkResult = this._uncachedDetectNetwork())
const chainId = }
provider?.chainId ?? connector?.supportedChainIds?.length === 1 ? connector?.supportedChainIds?.[0] : undefined }
// latest ethers version tries to detect the network which fails
const library = new Web3Provider( export default function getLibrary(provider: any): Web3Provider {
const library = new WorkaroundWeb3Provider(
provider, provider,
typeof chainId === 'number' ? chainId : typeof chainId === 'string' ? parseInt(chainId) : 'any' typeof provider.chainId === 'number'
? provider.chainId
: typeof provider.chainId === 'string'
? parseInt(provider.chainId)
: 'any'
) )
library.pollingInterval = 15000 library.pollingInterval = 15000
return library return library
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment