Merge pull request #363 from 0xProject/refactor/subproviders/injected-provider-constructor
Change the InjectedWeb3Subprovider to accept Web3.Provider
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
# CHANGELOG
|
||||
|
||||
## v0.4.0 - _January 28, 2017_
|
||||
## v0.4.0 - _Feburary 02, 2018_
|
||||
|
||||
* InjectedWeb3Subprovider accepts a Provider in the constructor, previously it was a Web3 object.
|
||||
|
||||
## v0.3.5 - _January 28, 2018_
|
||||
|
||||
* Return a transaction hash from `_sendTransactionAsync` (#303)
|
||||
|
||||
|
@@ -2,6 +2,8 @@
|
||||
|
||||
A few useful web3 subproviders including a LedgerSubprovider useful for adding Ledger Nano S support.
|
||||
|
||||
We have written up a [Wiki](https://0xproject.com/wiki#Web3-Provider-Examples) article detailing some use cases of this subprovider package.
|
||||
|
||||
## Installation
|
||||
|
||||
```
|
||||
|
@@ -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.
|
||||
* provider 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,
|
||||
@@ -42,8 +41,9 @@ export class InjectedWeb3Subprovider {
|
||||
}
|
||||
}
|
||||
// Required to implement this method despite not needing it for this subprovider
|
||||
// This type is Web3ProviderEngine, but there is no need to import this for a noop.
|
||||
// tslint:disable-next-line:prefer-function-over-method
|
||||
public setEngine(engine: Web3ProviderEngine) {
|
||||
public setEngine(engine: any) {
|
||||
// noop
|
||||
}
|
||||
}
|
||||
|
@@ -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();
|
||||
|
Reference in New Issue
Block a user