aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLeonid Logvinov <logvinov.leon@gmail.com>2017-06-15 23:05:03 +0800
committerLeonid Logvinov <logvinov.leon@gmail.com>2017-06-15 23:05:03 +0800
commitd789aa24aa2c9f4e0d17a382fe9cb8d56ab27957 (patch)
treed93f79ec7909c1808ddfe7a145df41d2c104a553 /src
parent424912040a7e68b6d07cd4ae40763d9bcd98de28 (diff)
downloaddexon-0x-contracts-d789aa24aa2c9f4e0d17a382fe9cb8d56ab27957.tar
dexon-0x-contracts-d789aa24aa2c9f4e0d17a382fe9cb8d56ab27957.tar.gz
dexon-0x-contracts-d789aa24aa2c9f4e0d17a382fe9cb8d56ab27957.tar.bz2
dexon-0x-contracts-d789aa24aa2c9f4e0d17a382fe9cb8d56ab27957.tar.lz
dexon-0x-contracts-d789aa24aa2c9f4e0d17a382fe9cb8d56ab27957.tar.xz
dexon-0x-contracts-d789aa24aa2c9f4e0d17a382fe9cb8d56ab27957.tar.zst
dexon-0x-contracts-d789aa24aa2c9f4e0d17a382fe9cb8d56ab27957.zip
Make ZeroEx constructor accept Web3Provider instead of Web3 instance
Diffstat (limited to 'src')
-rw-r--r--src/0x.ts14
-rw-r--r--src/index.ts1
-rw-r--r--src/types.ts3
-rw-r--r--src/web3_wrapper.ts11
4 files changed, 16 insertions, 13 deletions
diff --git a/src/0x.ts b/src/0x.ts
index 74e4ef7e6..a9b2c41af 100644
--- a/src/0x.ts
+++ b/src/0x.ts
@@ -14,7 +14,7 @@ import {ExchangeWrapper} from './contract_wrappers/exchange_wrapper';
import {TokenRegistryWrapper} from './contract_wrappers/token_registry_wrapper';
import {ecSignatureSchema} from './schemas/ec_signature_schema';
import {TokenWrapper} from './contract_wrappers/token_wrapper';
-import {ECSignature, ZeroExError, Order, SignedOrder} from './types';
+import {ECSignature, ZeroExError, Order, SignedOrder, Web3Provider} from './types';
import * as ExchangeArtifacts from './artifacts/Exchange.json';
import {orderSchema} from './schemas/order_schemas';
@@ -122,12 +122,12 @@ export class ZeroEx {
}
/**
* Instantiates a new ZeroEx instance that provides the public interface to the 0x.js library.
- * @param web3 The Web3.js instance you would like the 0x.js library to use for interacting with
- * the Ethereum network.
+ * @param provider The Web3.js Provider instance you would like the 0x.js library to use for interacting with
+ * the Ethereum network.
* @return An instance of the 0x.js ZeroEx class.
*/
- constructor(web3: Web3) {
- this._web3Wrapper = new Web3Wrapper(web3);
+ constructor(provider: Web3Provider) {
+ this._web3Wrapper = new Web3Wrapper(provider);
this.token = new TokenWrapper(this._web3Wrapper);
this.exchange = new ExchangeWrapper(this._web3Wrapper, this.token);
this.tokenRegistry = new TokenRegistryWrapper(this._web3Wrapper);
@@ -135,9 +135,9 @@ export class ZeroEx {
/**
* Sets a new provider for the web3 instance used by 0x.js. Updating the provider will stop all
* subscriptions so you will need to re-subscribe to all events relevant to your app after this call.
- * @param provider The Web3.Provider you would like the 0x.js library to use from now on.
+ * @param provider The Web3Provider you would like the 0x.js library to use from now on.
*/
- public async setProviderAsync(provider: Web3.Provider) {
+ public async setProviderAsync(provider: Web3Provider) {
this._web3Wrapper.setProvider(provider);
await this.exchange.invalidateContractInstanceAsync();
this.tokenRegistry.invalidateContractInstance();
diff --git a/src/index.ts b/src/index.ts
index 48e83fc19..7b1a16125 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -19,4 +19,5 @@ export {
OrderCancellationRequest,
OrderFillRequest,
ContractEventEmitter,
+ Web3Provider,
} from './types';
diff --git a/src/types.ts b/src/types.ts
index 11d3182d8..8c9e9ad5d 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -1,4 +1,5 @@
import * as _ from 'lodash';
+import * as Web3 from 'web3';
// Utility function to create a K:V from a list of strings
// Adapted from: https://basarat.gitbooks.io/typescript/content/docs/types/literal-types.html
@@ -280,3 +281,5 @@ export interface ContractEventEmitter {
watch: (eventCallback: EventCallback) => void;
stopWatchingAsync: () => Promise<void>;
}
+
+export type Web3Provider = Web3.Provider;
diff --git a/src/web3_wrapper.ts b/src/web3_wrapper.ts
index 05a8dc063..5bff25233 100644
--- a/src/web3_wrapper.ts
+++ b/src/web3_wrapper.ts
@@ -2,16 +2,15 @@ import * as _ from 'lodash';
import * as Web3 from 'web3';
import * as BigNumber from 'bignumber.js';
import promisify = require('es6-promisify');
-import {ZeroExError} from './types';
-import {assert} from './utils/assert';
+import {Web3Provider} from './types';
export class Web3Wrapper {
private web3: Web3;
- constructor(web3: Web3) {
+ constructor(provider: Web3Provider) {
this.web3 = new Web3();
- this.web3.setProvider(web3.currentProvider);
+ this.web3.setProvider(provider);
}
- public setProvider(provider: Web3.Provider) {
+ public setProvider(provider: Web3Provider) {
this.web3.setProvider(provider);
}
public isAddress(address: string): boolean {
@@ -25,7 +24,7 @@ export class Web3Wrapper {
const nodeVersion = await promisify(this.web3.version.getNode)();
return nodeVersion;
}
- public getCurrentProvider(): Web3.Provider {
+ public getCurrentProvider(): Web3Provider {
return this.web3.currentProvider;
}
public async getNetworkIdIfExistsAsync(): Promise<number|undefined> {