From 55b00ab3809973e385b6baffd9c44d6db5540b12 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Tue, 30 May 2017 12:28:07 +0200 Subject: Add setProvider method to 0x.js that updates the web3 provider and invalidates any contractInstances instantiated with the old provider --- src/0x.js.ts | 8 ++++++++ src/web3_wrapper.ts | 3 +++ 2 files changed, 11 insertions(+) diff --git a/src/0x.js.ts b/src/0x.js.ts index 11dbe3058..4b7edc0e9 100644 --- a/src/0x.js.ts +++ b/src/0x.js.ts @@ -133,6 +133,14 @@ export class ZeroEx { this.web3Wrapper = new Web3Wrapper(web3); this.exchange = new ExchangeWrapper(this.web3Wrapper); } + /** + * Sets a new provider for the web3 instance used by 0x.js internally and invalidates any instantiated + * contract instances created with the old provider. + */ + public setProvider(provider: Web3.Provider) { + this.web3Wrapper.setProvider(provider); + this.exchange.invalidateExchangeContract(); + } /** * Signs an orderHash and returns it's elliptic curve signature * This method currently supports TestRPC, Geth and Parity above and below V1.6.6 diff --git a/src/web3_wrapper.ts b/src/web3_wrapper.ts index 97d04db8c..a532085ce 100644 --- a/src/web3_wrapper.ts +++ b/src/web3_wrapper.ts @@ -9,6 +9,9 @@ export class Web3Wrapper { this.web3 = new Web3(); this.web3.setProvider(web3.currentProvider); } + public setProvider(provider: Web3.Provider) { + this.web3.setProvider(provider); + } public isAddress(address: string): boolean { return this.web3.isAddress(address); } -- cgit v1.2.3