From 062b864a954ce9ce7e41da75ca0d9600a09ca5ed Mon Sep 17 00:00:00 2001 From: Venus Tools Date: Thu, 31 Aug 2023 15:32:45 +0000 Subject: [PATCH] chore(release): 2.13.1 [skip ci] --- .../Web3Wrapper/binanceWalletConnector.ts | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/clients/web3/Web3Wrapper/binanceWalletConnector.ts b/src/clients/web3/Web3Wrapper/binanceWalletConnector.ts index 12c5e6d809..b48ced58a1 100644 --- a/src/clients/web3/Web3Wrapper/binanceWalletConnector.ts +++ b/src/clients/web3/Web3Wrapper/binanceWalletConnector.ts @@ -13,8 +13,7 @@ const mappingNetwork: Record = { 97: 'bsc-testnet', }; -// eslint-disable-next-line -const _binanceChainListener = async () => +const binanceChainListener = async () => new Promise(resolve => Object.defineProperty(window, 'BinanceChain', { get() { @@ -95,16 +94,17 @@ export class BinanceWalletConnector extends InjectedConnector { } async getProvider() { - if (typeof window === 'undefined') { - return this.provider; - } - - if (window.BinanceChain) { - this.provider = window.BinanceChain; - } else { - await _binanceChainListener(); - this.provider = window.BinanceChain; + if (typeof window !== 'undefined') { + // TODO: Fallback to `ethereum#initialized` event for async injection + // https://github.com/MetaMask/detect-provider#synchronous-and-asynchronous-injection= + if (window.BinanceChain) { + this.provider = window.BinanceChain; + } else { + await binanceChainListener(); + this.provider = window.BinanceChain; + } } + return this.provider; } async switchChain(chainId: number): Promise {