Change the InjectedWeb3Subprovider to accept Web3.Provider

This commit is contained in:
Jacob Evans
2018-02-02 14:44:29 -08:00
parent 6a9d3de0f9
commit 7f257e258f
2 changed files with 5 additions and 6 deletions

View File

@@ -1,17 +1,16 @@
import * as _ from 'lodash';
import Web3 = require('web3');
import Web3ProviderEngine = require('web3-provider-engine');
/*
* This class implements the web3-provider-engine subprovider interface and forwards
* requests involving user accounts (getAccounts, sendTransaction, etc...) to the injected
* web3 instance in their browser.
* MetamaskInpageProvider instance in their browser.
* Source: https://github.com/MetaMask/provider-engine/blob/master/subproviders/subprovider.js
*/
export class InjectedWeb3Subprovider {
private _injectedWeb3: Web3;
constructor(injectedWeb3: Web3) {
this._injectedWeb3 = injectedWeb3;
constructor(subprovider: Web3.Provider) {
this._injectedWeb3 = new Web3(subprovider);
}
public handleRequest(
payload: Web3.JSONRPCRequestPayload,
@@ -43,7 +42,7 @@ export class InjectedWeb3Subprovider {
}
// Required to implement this method despite not needing it for this subprovider
// tslint:disable-next-line:prefer-function-over-method
public setEngine(engine: Web3ProviderEngine) {
public setEngine(engine: any) {
// noop
}
}

View File

@@ -100,7 +100,7 @@ export class Blockchain {
// We catch all requests involving a users account and send it to the injectedWeb3
// instance. All other requests go to the public hosted node.
provider = new ProviderEngine();
provider.addProvider(new InjectedWeb3Subprovider(injectedWeb3));
provider.addProvider(new InjectedWeb3Subprovider(injectedWeb3.currentProvider));
provider.addProvider(new FilterSubprovider());
provider.addProvider(new RedundantRPCSubprovider(publicNodeUrlsIfExistsForNetworkId));
provider.start();