diff options
author | Leonid Logvinov <logvinov.leon@gmail.com> | 2017-10-30 17:34:26 +0800 |
---|---|---|
committer | Leonid Logvinov <logvinov.leon@gmail.com> | 2017-11-10 03:11:45 +0800 |
commit | 3ddb203317065a85531a31daa1ae2d73232ca6df (patch) | |
tree | 259e473b1e648d3c7dac712ce4363a40964abff9 | |
parent | 84b8e77aaae3a2c6848bcd1ffab78a2de81e6138 (diff) | |
download | dexon-0x-contracts-3ddb203317065a85531a31daa1ae2d73232ca6df.tar.gz dexon-0x-contracts-3ddb203317065a85531a31daa1ae2d73232ca6df.tar.zst dexon-0x-contracts-3ddb203317065a85531a31daa1ae2d73232ca6df.zip |
Move provider altering logic to Web3Wrapper
-rw-r--r-- | src/0x.ts | 6 | ||||
-rw-r--r-- | src/mempool/order_watcher.ts | 21 | ||||
-rw-r--r-- | src/web3_wrapper.ts | 10 |
3 files changed, 19 insertions, 18 deletions
@@ -177,12 +177,6 @@ export class ZeroEx { if (!_.isUndefined(config)) { assert.doesConformToSchema('config', config, zeroExConfigSchema); } - 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; - } const artifactJSONs = _.values(artifacts); const abiArrays = _.map(artifactJSONs, artifact => artifact.abi); this._abiDecoder = new AbiDecoder(abiArrays); diff --git a/src/mempool/order_watcher.ts b/src/mempool/order_watcher.ts index 90c15cd34..b2c8598e7 100644 --- a/src/mempool/order_watcher.ts +++ b/src/mempool/order_watcher.ts @@ -1,22 +1,23 @@ -import * as Web3 from 'web3'; import * as _ from 'lodash'; -import {Web3Provider, SignedOrder} from '../types'; +import {ZeroEx} from '../'; +import {assert} from '../utils/assert'; +import {Web3Provider, SignedOrder, OnOrderFillabilityStateChangeCallback} from '../types'; import {Web3Wrapper} from '../web3_wrapper'; export class OrderWatcher { + private _orders = new Map<string, SignedOrder>(); + private _web3Wrapper: Web3Wrapper; constructor(provider: Web3Provider) { - 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; - } + assert.isWeb3Provider('provider', provider); + this._web3Wrapper = new Web3Wrapper(provider); } public addOrder(signedOrder: SignedOrder): void { - // + const orderHash = ZeroEx.getOrderHashHex(signedOrder); + this._orders.set(orderHash, signedOrder); } public removeOrder(signedOrder: SignedOrder): void { - // + const orderHash = ZeroEx.getOrderHashHex(signedOrder); + this._orders.delete(orderHash); } public subscribe(callback: OnOrderFillabilityStateChangeCallback): void { // diff --git a/src/web3_wrapper.ts b/src/web3_wrapper.ts index 3b1e4477b..01d572654 100644 --- a/src/web3_wrapper.ts +++ b/src/web3_wrapper.ts @@ -10,10 +10,16 @@ export class Web3Wrapper { private defaults: Partial<Web3.TxData>; private networkIdIfExists?: number; private jsonRpcRequestId: number; - constructor(provider: Web3.Provider, defaults: Partial<Web3.TxData>) { + constructor(provider: Web3.Provider, defaults?: Partial<Web3.TxData>) { + 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.web3 = new Web3(); this.web3.setProvider(provider); - this.defaults = defaults; + this.defaults = defaults || {}; this.jsonRpcRequestId = 0; } public setProvider(provider: Web3.Provider) { |