import ProviderEngine = require('web3-provider-engine'); import RpcSubprovider = require('web3-provider-engine/subproviders/rpc'); import Web3Subprovider = require('web3-provider-engine/subproviders/web3'); import * as Web3 from 'web3'; export const web3ProviderFactory = { getRpcProvider(protocol: string, host: string, port: number, path: string = ''): Web3.Provider { const provider = new ProviderEngine(); const rpcUrl = `${protocol}://${host}:${port}${path}`; provider.addProvider(new RpcSubprovider({ rpcUrl, })); provider.start(); return provider; }, getWeb3Provider(web3Provider: Web3.Provider): Web3.Provider { const provider: ProviderEngine = new ProviderEngine(); provider.addProvider(new Web3Subprovider(web3Provider)); provider.start(); return provider; } };