diff --git a/packages/web3-providers/src/resolvers/ProviderResolver.js b/packages/web3-providers/src/resolvers/ProviderResolver.js index f62046eb4ec..2626f3ffd51 100644 --- a/packages/web3-providers/src/resolvers/ProviderResolver.js +++ b/packages/web3-providers/src/resolvers/ProviderResolver.js @@ -74,6 +74,10 @@ export default class ProviderResolver { return provider; } + if (provider.host === 'Web3EthereumProvider') { + return provider; + } + if (typeof global.mist !== 'undefined' && provider.constructor.name === 'EthereumProvider') { return this.providersModuleFactory.createMistEthereumProvider(provider); } diff --git a/packages/web3-providers/tests/src/resolvers/ProviderResolverTest.js b/packages/web3-providers/tests/src/resolvers/ProviderResolverTest.js index 850a4230e4c..8f909a4475d 100644 --- a/packages/web3-providers/tests/src/resolvers/ProviderResolverTest.js +++ b/packages/web3-providers/tests/src/resolvers/ProviderResolverTest.js @@ -3,6 +3,7 @@ import ProvidersModuleFactory from '../../../src/factories/ProvidersModuleFactor import HttpProvider from '../../../src/providers/HttpProvider'; import WebsocketProvider from '../../../src/providers/WebsocketProvider'; import IpcProvider from '../../../src/providers/IpcProvider'; +import Web3EthereumProvider from '../../../src/providers/Web3EthereumProvider'; import MetamaskProvider from '../../../src/providers/MetamaskProvider'; import CustomProvider from '../../../src/providers/CustomProvider'; @@ -11,7 +12,6 @@ jest.mock('../../../src/factories/ProvidersModuleFactory'); jest.mock('../../../src/providers/HttpProvider'); jest.mock('../../../src/providers/WebsocketProvider'); jest.mock('../../../src/providers/IpcProvider'); -jest.mock('../../../src/providers/Web3EthereumProvider'); jest.mock('../../../src/providers/MetamaskProvider'); jest.mock('../../../src/providers/CustomProvider'); @@ -85,6 +85,16 @@ describe('ProviderResolverTest', () => { expect(providersModuleFactoryMock.createWeb3EthereumProvider).toHaveBeenCalledWith(ethereumProviderMock); }); + it('calls resolve with the Web3EthereumProvider', () => { + const ethereumProviderMock = { + isEIP1193: true, + on: () => {} + }; + const web3EthereumProvider = new Web3EthereumProvider(ethereumProviderMock); + + expect(providerResolver.resolve(web3EthereumProvider)).toBeInstanceOf(Web3EthereumProvider); + }); + it('calls resolve with the WebsocketProvider', () => { new WebsocketProvider({}, 1); const websocketProviderMock = WebsocketProvider.mock.instances[0];