aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/0x.js.ts7
-rw-r--r--src/web3_wrapper.ts3
-rw-r--r--test/exchange_wrapper_test.ts4
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);