diff --git a/src/0x.js.ts b/src/0x.js.ts index 11dbe30588..4b7edc0e96 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 97d04db8c6..a532085ceb 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); }