aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFabio Berger <me@fabioberger.com>2017-08-31 01:47:14 +0800
committerFabio Berger <me@fabioberger.com>2017-08-31 01:47:14 +0800
commit4620c1c818e6d54741b262e2100d2731dae16dda (patch)
tree2bb1e842a02780ec009995e1481997895885ff7b /src
parent4370e19880966cf00726a6fae41cfaa5f751e881 (diff)
parent5f44b5f7111873a3958050503fff0ed098b65b04 (diff)
downloaddexon-sol-tools-4620c1c818e6d54741b262e2100d2731dae16dda.tar
dexon-sol-tools-4620c1c818e6d54741b262e2100d2731dae16dda.tar.gz
dexon-sol-tools-4620c1c818e6d54741b262e2100d2731dae16dda.tar.bz2
dexon-sol-tools-4620c1c818e6d54741b262e2100d2731dae16dda.tar.lz
dexon-sol-tools-4620c1c818e6d54741b262e2100d2731dae16dda.tar.xz
dexon-sol-tools-4620c1c818e6d54741b262e2100d2731dae16dda.tar.zst
dexon-sol-tools-4620c1c818e6d54741b262e2100d2731dae16dda.zip
Merge branch 'development' of github.com:0xProject/0x.js into development
* 'development' of github.com:0xProject/0x.js: Improve the comment Add assert.isWeb3Provider Use more concise dep pointing Don't create whole web3 object in beta tests Improve the comment Add tests for web3@1.0 Use zeroEx.getAvailableAddressesAsync instead of web3.eth.getAccounts Add web3@1.0 to web3Factory Support web3@1.0 providers Define web3@1.0 types ;) Install web3@1.0.0 as web3_beta
Diffstat (limited to 'src')
-rw-r--r--src/0x.ts7
-rw-r--r--src/globals.d.ts1
-rw-r--r--src/utils/assert.ts4
3 files changed, 12 insertions, 0 deletions
diff --git a/src/0x.ts b/src/0x.ts
index 7fe6331c1..ba222f2c9 100644
--- a/src/0x.ts
+++ b/src/0x.ts
@@ -163,6 +163,13 @@ export class ZeroEx {
* @return An instance of the 0x.js ZeroEx class.
*/
constructor(provider: Web3Provider, config?: ZeroExConfig) {
+ assert.isWeb3Provider('provider', provider);
+ if (_.isUndefined((provider as any).sendAsync)) {
+ // Web3@1.0 provider doesn't support synchronous http requests,
+ // so it only has an async `send` method, instead of a `send` and `sendAsync` in web3@0.x.x`
+ // We re-assign the send method so that Web3@1.0 providers work with 0x.js
+ (provider as any).sendAsync = (provider as any).send;
+ }
this._web3Wrapper = new Web3Wrapper(provider);
const gasPrice = _.isUndefined(config) ? undefined : config.gasPrice;
this.token = new TokenWrapper(this._web3Wrapper, gasPrice);
diff --git a/src/globals.d.ts b/src/globals.d.ts
index 1ef70d679..9230ab02d 100644
--- a/src/globals.d.ts
+++ b/src/globals.d.ts
@@ -1,5 +1,6 @@
/// <reference types='chai-typescript-typings' />
/// <reference types='chai-as-promised-typescript-typings' />
+declare module 'web3_beta';
declare module 'chai-bignumber';
declare module 'dirty-chai';
declare module 'request-promise-native';
diff --git a/src/utils/assert.ts b/src/utils/assert.ts
index a26b19311..eb084129c 100644
--- a/src/utils/assert.ts
+++ b/src/utils/assert.ts
@@ -61,6 +61,10 @@ export const assert = {
isBoolean(variableName: string, value: boolean): void {
this.assert(_.isBoolean(value), this.typeAssertionMessage(variableName, 'boolean', value));
},
+ isWeb3Provider(variableName: string, value: Web3.Provider): void {
+ const isWeb3Provider = _.isFunction((value as any).send) || _.isFunction((value as any).sendAsync);
+ this.assert(isWeb3Provider, this.typeAssertionMessage(variableName, 'Web3.Provider', value));
+ },
doesConformToSchema(variableName: string, value: any, schema: Schema): void {
const schemaValidator = new SchemaValidator();
const validationResult = schemaValidator.validate(value, schema);