aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJacob Evans <dekz@dekz.net>2018-02-06 09:16:34 +0800
committerGitHub <noreply@github.com>2018-02-06 09:16:34 +0800
commit61434a91218eb4adec0de6095a51d07203f1f5bb (patch)
treef0d695cf1960ce1068a5ed4be2e646a2ffe2a904
parent2205e2b9a0dab345a14724731098043d04827c4f (diff)
parentd14ae70776e82c8a61e1c41219c40ec283890a8a (diff)
downloaddexon-sol-tools-61434a91218eb4adec0de6095a51d07203f1f5bb.tar
dexon-sol-tools-61434a91218eb4adec0de6095a51d07203f1f5bb.tar.gz
dexon-sol-tools-61434a91218eb4adec0de6095a51d07203f1f5bb.tar.bz2
dexon-sol-tools-61434a91218eb4adec0de6095a51d07203f1f5bb.tar.lz
dexon-sol-tools-61434a91218eb4adec0de6095a51d07203f1f5bb.tar.xz
dexon-sol-tools-61434a91218eb4adec0de6095a51d07203f1f5bb.tar.zst
dexon-sol-tools-61434a91218eb4adec0de6095a51d07203f1f5bb.zip
Merge pull request #363 from 0xProject/refactor/subproviders/injected-provider-constructor
Change the InjectedWeb3Subprovider to accept Web3.Provider
-rw-r--r--packages/subproviders/CHANGELOG.md6
-rw-r--r--packages/subproviders/README.md2
-rw-r--r--packages/subproviders/src/subproviders/injected_web3.ts10
-rw-r--r--packages/website/ts/blockchain.ts2
4 files changed, 13 insertions, 7 deletions
diff --git a/packages/subproviders/CHANGELOG.md b/packages/subproviders/CHANGELOG.md
index 0469150c0..6ee8e2455 100644
--- a/packages/subproviders/CHANGELOG.md
+++ b/packages/subproviders/CHANGELOG.md
@@ -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)
diff --git a/packages/subproviders/README.md b/packages/subproviders/README.md
index 78643ad55..0d8f85910 100644
--- a/packages/subproviders/README.md
+++ b/packages/subproviders/README.md
@@ -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
```
diff --git a/packages/subproviders/src/subproviders/injected_web3.ts b/packages/subproviders/src/subproviders/injected_web3.ts
index bd29acb22..a74a6c4b2 100644
--- a/packages/subproviders/src/subproviders/injected_web3.ts
+++ b/packages/subproviders/src/subproviders/injected_web3.ts
@@ -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
}
}
diff --git a/packages/website/ts/blockchain.ts b/packages/website/ts/blockchain.ts
index 71995e2cd..099efb405 100644
--- a/packages/website/ts/blockchain.ts
+++ b/packages/website/ts/blockchain.ts
@@ -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();