diff options
-rw-r--r-- | src/0x.js.ts | 7 | ||||
-rw-r--r-- | src/web3_wrapper.ts | 3 | ||||
-rw-r--r-- | test/exchange_wrapper_test.ts | 4 |
3 files changed, 12 insertions, 2 deletions
diff --git a/src/0x.js.ts b/src/0x.js.ts index 25b4af777..5a0d3033c 100644 --- a/src/0x.js.ts +++ b/src/0x.js.ts @@ -137,6 +137,13 @@ export class ZeroEx { this.tokenRegistry.invalidateContractInstance(); this.token.invalidateContractInstances(); } + + /** + * Sets default account for sending transactions. + */ + public setDefaultAccount(account: string): void { + this.web3Wrapper.setDefaultAccount(account); + } /** * 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 79fd166ec..70e77dbe3 100644 --- a/src/web3_wrapper.ts +++ b/src/web3_wrapper.ts @@ -17,6 +17,9 @@ export class Web3Wrapper { public isAddress(address: string): boolean { return this.web3.isAddress(address); } + public setDefaultAccount(address: string): void { + this.web3.eth.defaultAccount = address; + } public async getSenderAddressIfExistsAsync(): Promise<string|undefined> { const defaultAccount = this.web3.eth.defaultAccount; if (!_.isUndefined(defaultAccount)) { diff --git a/test/exchange_wrapper_test.ts b/test/exchange_wrapper_test.ts index a5a327dc4..ea541ca8e 100644 --- a/test/exchange_wrapper_test.ts +++ b/test/exchange_wrapper_test.ts @@ -133,7 +133,7 @@ describe('ExchangeWrapper', () => { }); describe('successful fills', () => { afterEach('reset default account', () => { - web3.eth.defaultAccount = userAddresses[0]; + zeroEx.setDefaultAccount(userAddresses[0]); }); it('should fill the valid order', async () => { const maker = userAddresses[0]; @@ -144,12 +144,12 @@ describe('ExchangeWrapper', () => { const signedOrder = await orderFactory.createSignedOrderAsync(zeroEx, networkId, maker, 5, addressBySymbol.MLN, 5, addressBySymbol.GNT); const fillAmount = new BigNumber(5); - web3.eth.defaultAccount = taker; expect(await zeroEx.token.getBalanceAsync(addressBySymbol.MLN, maker)).to.be.bignumber.greaterThan(5); expect(await zeroEx.token.getBalanceAsync(addressBySymbol.MLN, taker)).to.be.bignumber.equal(0); expect(await zeroEx.token.getBalanceAsync(addressBySymbol.GNT, taker)).to.be.bignumber.equal(5); expect(await zeroEx.token.getProxyAllowanceAsync(addressBySymbol.MLN, maker)).to.be.bignumber.equal(5); expect(await zeroEx.token.getProxyAllowanceAsync(addressBySymbol.GNT, taker)).to.be.bignumber.equal(5); + zeroEx.setDefaultAccount(taker); await zeroEx.exchange.fillOrderAsync(signedOrder, fillAmount); expect(await zeroEx.token.getBalanceAsync(addressBySymbol.MLN, taker)).to.be.bignumber.equal(5); expect(await zeroEx.token.getBalanceAsync(addressBySymbol.GNT, taker)).to.be.bignumber.equal(0); |