From eb0d7df50b23af325edaecd7a7cccb269d7c8f88 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Thu, 18 Jan 2018 14:27:12 +0800 Subject: Fix balance page copy to refer to the Wrap ETH tab instead of a "convert" button --- packages/website/ts/components/token_balances.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages') diff --git a/packages/website/ts/components/token_balances.tsx b/packages/website/ts/components/token_balances.tsx index 112b3fe60..01e69d4b2 100644 --- a/packages/website/ts/components/token_balances.tsx +++ b/packages/website/ts/components/token_balances.tsx @@ -169,7 +169,7 @@ export class TokenBalances extends React.Component -- cgit v1.2.3 From 996e9e9102dc3f7ebcd6328c59593410c397c779 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Thu, 18 Jan 2018 15:02:36 +0800 Subject: Add missing onError callbacks --- packages/website/ts/blockchain.ts | 6 +++++- packages/website/ts/web3_wrapper.ts | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'packages') diff --git a/packages/website/ts/blockchain.ts b/packages/website/ts/blockchain.ts index 1320fbeb9..e82243c83 100644 --- a/packages/website/ts/blockchain.ts +++ b/packages/website/ts/blockchain.ts @@ -375,7 +375,11 @@ export class Blockchain { clearInterval(this._zrxPollIntervalId); delete this._zrxPollIntervalId; } - }, 5000); + }, 5000, (err: Error) => { + utils.consoleLog(`Polling tokenBalance failed: ${err}`); + clearInterval(this._zrxPollIntervalId); + delete this._zrxPollIntervalId; + }); } public async signOrderHashAsync(orderHash: string): Promise { utils.assert(!_.isUndefined(this._zeroEx), 'ZeroEx must be instantiated.'); diff --git a/packages/website/ts/web3_wrapper.ts b/packages/website/ts/web3_wrapper.ts index 6f260dc48..f5e3985c5 100644 --- a/packages/website/ts/web3_wrapper.ts +++ b/packages/website/ts/web3_wrapper.ts @@ -1,6 +1,7 @@ import { BigNumber, intervalUtils, promisify } from '@0xproject/utils'; import * as _ from 'lodash'; import { Dispatcher } from 'ts/redux/dispatcher'; +import { utils } from 'ts/utils/utils'; import * as Web3 from 'web3'; export class Web3Wrapper { @@ -135,7 +136,10 @@ export class Web3Wrapper { await this._updateUserEtherBalanceAsync(this._prevUserAddress); } } - }, 5000); + }, 5000, (err: Error) => { + utils.consoleLog(`Watching network and balances failed: ${err}`); + this._stopEmittingNetworkConnectionAndUserBalanceStateAsync(); + }); } private async _updateUserEtherBalanceAsync(userAddress: string) { const balance = await this.getBalanceInEthAsync(userAddress); -- cgit v1.2.3 From 024f093585ac4d97d674e254658f4a44275b8b9e Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Thu, 18 Jan 2018 15:02:53 +0800 Subject: Fix Portal topbar so that it displays the mobile menu --- packages/website/ts/components/top_bar.tsx | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'packages') diff --git a/packages/website/ts/components/top_bar.tsx b/packages/website/ts/components/top_bar.tsx index 601471222..c07366a0c 100644 --- a/packages/website/ts/components/top_bar.tsx +++ b/packages/website/ts/components/top_bar.tsx @@ -167,15 +167,13 @@ export class TopBar extends React.Component { )} - {this.props.blockchainIsLoaded && - !_.isEmpty(this.props.userAddress) &&
{this._renderUser()}
} - {!this._isViewingPortal() && ( -
-
- -
+ {this.props.blockchainIsLoaded && _.isEmpty(this.props.userAddress) && +
{this._renderUser()}
} +
+
+
- )} +
{this._renderDrawer()} -- cgit v1.2.3 From 9e569b37912cf11fabad7fbc47bf9343c67a354e Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Thu, 18 Jan 2018 15:20:15 +0800 Subject: Remove dead-code --- packages/website/ts/components/footer.tsx | 5 ----- 1 file changed, 5 deletions(-) (limited to 'packages') diff --git a/packages/website/ts/components/footer.tsx b/packages/website/ts/components/footer.tsx index 3346f2545..22baf076b 100644 --- a/packages/website/ts/components/footer.tsx +++ b/packages/website/ts/components/footer.tsx @@ -13,7 +13,6 @@ interface FooterMenuItem { title: string; path?: string; isExternal?: boolean; - fileName?: string; } enum Sections { @@ -56,25 +55,21 @@ const menuItemsBySection: MenuItemsBySection = { title: 'Rocket.chat', isExternal: true, path: constants.URL_ZEROEX_CHAT, - fileName: 'rocketchat.png', }, { title: 'Blog', isExternal: true, path: constants.URL_BLOG, - fileName: 'medium.png', }, { title: 'Twitter', isExternal: true, path: constants.URL_TWITTER, - fileName: 'twitter.png', }, { title: 'Reddit', isExternal: true, path: constants.URL_REDDIT, - fileName: 'reddit.png', }, ], Organization: [ -- cgit v1.2.3 From 807d9e3eef883541c4f43838e6ca702b120974e1 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Thu, 18 Jan 2018 15:20:34 +0800 Subject: Add discourse forum to Community section of website footer --- packages/website/public/images/social/discourse.png | Bin 0 -> 1454 bytes packages/website/ts/components/footer.tsx | 6 ++++++ packages/website/ts/utils/constants.ts | 1 + 3 files changed, 7 insertions(+) create mode 100644 packages/website/public/images/social/discourse.png (limited to 'packages') diff --git a/packages/website/public/images/social/discourse.png b/packages/website/public/images/social/discourse.png new file mode 100644 index 000000000..4bca3de0d Binary files /dev/null and b/packages/website/public/images/social/discourse.png differ diff --git a/packages/website/ts/components/footer.tsx b/packages/website/ts/components/footer.tsx index 22baf076b..a0f1a0c96 100644 --- a/packages/website/ts/components/footer.tsx +++ b/packages/website/ts/components/footer.tsx @@ -71,6 +71,11 @@ const menuItemsBySection: MenuItemsBySection = { isExternal: true, path: constants.URL_REDDIT, }, + { + title: 'Forum', + isExternal: true, + path: constants.URL_DISCOURSE_FORUM, + }, ], Organization: [ { @@ -100,6 +105,7 @@ const titleToIcon: { [title: string]: string } = { Blog: 'medium.png', Twitter: 'twitter.png', Reddit: 'reddit.png', + Forum: 'discourse.png', }; export interface FooterProps {} diff --git a/packages/website/ts/utils/constants.ts b/packages/website/ts/utils/constants.ts index 3fc1e6397..dded82114 100644 --- a/packages/website/ts/utils/constants.ts +++ b/packages/website/ts/utils/constants.ts @@ -65,6 +65,7 @@ export const constants = { URL_BIGNUMBERJS_GITHUB: 'http://mikemcl.github.io/bignumber.js', URL_BITLY_API: 'https://api-ssl.bitly.com', URL_BLOG: 'https://blog.0xproject.com/latest', + URL_DISCOURSE_FORUM: 'https://forum.0xproject.com', URL_FIREFOX_U2F_ADDON: 'https://addons.mozilla.org/en-US/firefox/addon/u2f-support-add-on/', URL_ETHER_FAUCET: 'https://faucet.0xproject.com', URL_GITHUB_ORG: 'https://github.com/0xProject', -- cgit v1.2.3 From f9c21efc3073fea4578d46a47f5a08214c592e87 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Thu, 18 Jan 2018 19:29:54 +0800 Subject: Use intervalUtils.clearAsyncExcludingInterval instead of calling clearInterval directly for grepability --- packages/website/ts/blockchain.ts | 6 +++--- packages/website/ts/web3_wrapper.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'packages') diff --git a/packages/website/ts/blockchain.ts b/packages/website/ts/blockchain.ts index e82243c83..66f982427 100644 --- a/packages/website/ts/blockchain.ts +++ b/packages/website/ts/blockchain.ts @@ -372,12 +372,12 @@ export class Blockchain { const [balance] = await this.getTokenBalanceAndAllowanceAsync(this._userAddress, token.address); if (!balance.eq(currBalance)) { this._dispatcher.replaceTokenBalanceByAddress(token.address, balance); - clearInterval(this._zrxPollIntervalId); + intervalUtils.clearAsyncExcludingInterval(this._zrxPollIntervalId); delete this._zrxPollIntervalId; } }, 5000, (err: Error) => { utils.consoleLog(`Polling tokenBalance failed: ${err}`); - clearInterval(this._zrxPollIntervalId); + intervalUtils.clearAsyncExcludingInterval(this._zrxPollIntervalId); delete this._zrxPollIntervalId; }); } @@ -475,7 +475,7 @@ export class Blockchain { this._web3Wrapper.updatePrevUserAddress(newUserAddress); } public destroy() { - clearInterval(this._zrxPollIntervalId); + intervalUtils.clearAsyncExcludingInterval(this._zrxPollIntervalId); this._web3Wrapper.destroy(); this._stopWatchingExchangeLogFillEvents(); } diff --git a/packages/website/ts/web3_wrapper.ts b/packages/website/ts/web3_wrapper.ts index f5e3985c5..407c62aaa 100644 --- a/packages/website/ts/web3_wrapper.ts +++ b/packages/website/ts/web3_wrapper.ts @@ -149,6 +149,6 @@ export class Web3Wrapper { } } private _stopEmittingNetworkConnectionAndUserBalanceStateAsync() { - clearInterval(this._watchNetworkAndBalanceIntervalId); + intervalUtils.clearAsyncExcludingInterval(this._watchNetworkAndBalanceIntervalId); } } -- cgit v1.2.3 From 614ea14a7fe90252d2bef8a97b3c376ae4498a17 Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Thu, 18 Jan 2018 16:18:25 +0100 Subject: Fix prettier --- packages/website/ts/blockchain.ts | 24 +++++----- packages/website/ts/components/top_bar.tsx | 6 ++- packages/website/ts/web3_wrapper.ts | 72 ++++++++++++++++-------------- 3 files changed, 56 insertions(+), 46 deletions(-) (limited to 'packages') diff --git a/packages/website/ts/blockchain.ts b/packages/website/ts/blockchain.ts index 66f982427..5530701c0 100644 --- a/packages/website/ts/blockchain.ts +++ b/packages/website/ts/blockchain.ts @@ -368,18 +368,22 @@ export class Blockchain { const [currBalance] = await this.getTokenBalanceAndAllowanceAsync(this._userAddress, token.address); - this._zrxPollIntervalId = intervalUtils.setAsyncExcludingInterval(async () => { - const [balance] = await this.getTokenBalanceAndAllowanceAsync(this._userAddress, token.address); - if (!balance.eq(currBalance)) { - this._dispatcher.replaceTokenBalanceByAddress(token.address, balance); + this._zrxPollIntervalId = intervalUtils.setAsyncExcludingInterval( + async () => { + const [balance] = await this.getTokenBalanceAndAllowanceAsync(this._userAddress, token.address); + if (!balance.eq(currBalance)) { + this._dispatcher.replaceTokenBalanceByAddress(token.address, balance); + intervalUtils.clearAsyncExcludingInterval(this._zrxPollIntervalId); + delete this._zrxPollIntervalId; + } + }, + 5000, + (err: Error) => { + utils.consoleLog(`Polling tokenBalance failed: ${err}`); intervalUtils.clearAsyncExcludingInterval(this._zrxPollIntervalId); delete this._zrxPollIntervalId; - } - }, 5000, (err: Error) => { - utils.consoleLog(`Polling tokenBalance failed: ${err}`); - intervalUtils.clearAsyncExcludingInterval(this._zrxPollIntervalId); - delete this._zrxPollIntervalId; - }); + }, + ); } public async signOrderHashAsync(orderHash: string): Promise { utils.assert(!_.isUndefined(this._zeroEx), 'ZeroEx must be instantiated.'); diff --git a/packages/website/ts/components/top_bar.tsx b/packages/website/ts/components/top_bar.tsx index c07366a0c..0859755fe 100644 --- a/packages/website/ts/components/top_bar.tsx +++ b/packages/website/ts/components/top_bar.tsx @@ -167,8 +167,10 @@ export class TopBar extends React.Component { )} - {this.props.blockchainIsLoaded && _.isEmpty(this.props.userAddress) && -
{this._renderUser()}
} + {this.props.blockchainIsLoaded && + _.isEmpty(this.props.userAddress) && ( +
{this._renderUser()}
+ )}
diff --git a/packages/website/ts/web3_wrapper.ts b/packages/website/ts/web3_wrapper.ts index 407c62aaa..415df6e8b 100644 --- a/packages/website/ts/web3_wrapper.ts +++ b/packages/website/ts/web3_wrapper.ts @@ -102,44 +102,48 @@ export class Web3Wrapper { let prevNodeVersion: string; this._prevUserEtherBalanceInEth = new BigNumber(0); this._dispatcher.updateNetworkId(this._prevNetworkId); - this._watchNetworkAndBalanceIntervalId = intervalUtils.setAsyncExcludingInterval(async () => { - // Check for network state changes - const currentNetworkId = await this.getNetworkIdIfExists(); - if (currentNetworkId !== this._prevNetworkId) { - this._prevNetworkId = currentNetworkId; - this._dispatcher.updateNetworkId(currentNetworkId); - } - - // Check for node version changes - const currentNodeVersion = await this.getNodeVersionAsync(); - if (currentNodeVersion !== prevNodeVersion) { - prevNodeVersion = currentNodeVersion; - this._dispatcher.updateNodeVersion(currentNodeVersion); - } - - if (this._shouldPollUserAddress) { - const userAddressIfExists = await this.getFirstAccountIfExistsAsync(); - // Update makerAddress on network change - if (this._prevUserAddress !== userAddressIfExists) { - this._prevUserAddress = userAddressIfExists; - this._dispatcher.updateUserAddress(userAddressIfExists); + this._watchNetworkAndBalanceIntervalId = intervalUtils.setAsyncExcludingInterval( + async () => { + // Check for network state changes + const currentNetworkId = await this.getNetworkIdIfExists(); + if (currentNetworkId !== this._prevNetworkId) { + this._prevNetworkId = currentNetworkId; + this._dispatcher.updateNetworkId(currentNetworkId); } - // Check for user ether balance changes - if (userAddressIfExists !== '') { - await this._updateUserEtherBalanceAsync(userAddressIfExists); + // Check for node version changes + const currentNodeVersion = await this.getNodeVersionAsync(); + if (currentNodeVersion !== prevNodeVersion) { + prevNodeVersion = currentNodeVersion; + this._dispatcher.updateNodeVersion(currentNodeVersion); } - } else { - // This logic is primarily for the Ledger, since we don't regularly poll for the address - // we simply update the balance for the last fetched address. - if (!_.isEmpty(this._prevUserAddress)) { - await this._updateUserEtherBalanceAsync(this._prevUserAddress); + + if (this._shouldPollUserAddress) { + const userAddressIfExists = await this.getFirstAccountIfExistsAsync(); + // Update makerAddress on network change + if (this._prevUserAddress !== userAddressIfExists) { + this._prevUserAddress = userAddressIfExists; + this._dispatcher.updateUserAddress(userAddressIfExists); + } + + // Check for user ether balance changes + if (userAddressIfExists !== '') { + await this._updateUserEtherBalanceAsync(userAddressIfExists); + } + } else { + // This logic is primarily for the Ledger, since we don't regularly poll for the address + // we simply update the balance for the last fetched address. + if (!_.isEmpty(this._prevUserAddress)) { + await this._updateUserEtherBalanceAsync(this._prevUserAddress); + } } - } - }, 5000, (err: Error) => { - utils.consoleLog(`Watching network and balances failed: ${err}`); - this._stopEmittingNetworkConnectionAndUserBalanceStateAsync(); - }); + }, + 5000, + (err: Error) => { + utils.consoleLog(`Watching network and balances failed: ${err}`); + this._stopEmittingNetworkConnectionAndUserBalanceStateAsync(); + }, + ); } private async _updateUserEtherBalanceAsync(userAddress: string) { const balance = await this.getBalanceInEthAsync(userAddress); -- cgit v1.2.3 From 7b4e2257d8316ea12c1874b03d148a458318dbc1 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 13 Nov 2017 16:27:43 -0500 Subject: Re-add changelog for 0x.js --- packages/0x.js/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages') diff --git a/packages/0x.js/CHANGELOG.md b/packages/0x.js/CHANGELOG.md index 84997389a..24d09e2ba 100644 --- a/packages/0x.js/CHANGELOG.md +++ b/packages/0x.js/CHANGELOG.md @@ -268,4 +268,4 @@ ## v0.5.1 - _Jun. 15, 2017_ - * Added `postpublish` script to publish to Github Releases with assets. + * Added `postpublish` script to publish to Github Releases with assets. \ No newline at end of file -- cgit v1.2.3 From cfc868bf4dc371b299801dd24917a695387546e2 Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Thu, 18 Jan 2018 18:17:22 +1100 Subject: Reject negative amounts in isValidBaseUnitAmount --- packages/0x.js/test/exchange_wrapper_test.ts | 47 ++++++++++++++++++++++++++++ packages/assert/src/index.ts | 2 ++ packages/assert/test/assert_test.ts | 10 ++++++ 3 files changed, 59 insertions(+) (limited to 'packages') diff --git a/packages/0x.js/test/exchange_wrapper_test.ts b/packages/0x.js/test/exchange_wrapper_test.ts index d2a2149a0..7e0ffd818 100644 --- a/packages/0x.js/test/exchange_wrapper_test.ts +++ b/packages/0x.js/test/exchange_wrapper_test.ts @@ -390,6 +390,29 @@ describe('ExchangeWrapper', () => { ).to.not.be.rejectedWith(ExchangeContractErrs.OrderFillAmountZero); }); }); + describe('negative fill amount', async () => { + let signedOrder: SignedOrder; + const negativeFillTakerAmount = new BigNumber(-100); + beforeEach(async () => { + signedOrder = await fillScenarios.createFillableSignedOrderAsync( + makerTokenAddress, + takerTokenAddress, + makerAddress, + takerAddress, + fillableAmount, + ); + }); + it('should not allow the exchange wrapper to fill if amount is negative', async () => { + return expect( + zeroEx.exchange.fillOrderAsync( + signedOrder, + negativeFillTakerAmount, + shouldThrowOnInsufficientBalanceOrAllowance, + takerAddress, + ), + ).to.be.rejected(); + }); + }); }); describe('#batchFillOrdersAsync', () => { let signedOrder: SignedOrder; @@ -498,6 +521,30 @@ describe('ExchangeWrapper', () => { ).to.not.be.rejectedWith(ExchangeContractErrs.OrderFillAmountZero); }); }); + describe('negative batch fill amount', async () => { + beforeEach(async () => { + const negativeFillTakerAmount = new BigNumber(-100); + orderFillBatch = [ + { + signedOrder, + takerTokenFillAmount, + }, + { + signedOrder: anotherSignedOrder, + takerTokenFillAmount: negativeFillTakerAmount, + }, + ]; + }); + it('should not allow the exchange wrapper to batch fill if any amount is negative', async () => { + return expect( + zeroEx.exchange.batchFillOrdersAsync( + orderFillBatch, + shouldThrowOnInsufficientBalanceOrAllowance, + takerAddress, + ), + ).to.be.rejected(); + }); + }); }); describe('#fillOrdersUpTo', () => { let signedOrder: SignedOrder; diff --git a/packages/assert/src/index.ts b/packages/assert/src/index.ts index 56f663780..015ffe579 100644 --- a/packages/assert/src/index.ts +++ b/packages/assert/src/index.ts @@ -12,6 +12,8 @@ export const assert = { }, isValidBaseUnitAmount(variableName: string, value: BigNumber) { assert.isBigNumber(variableName, value); + const isNegative = value.lessThan(0); + this.assert(!isNegative, `${variableName} should not be a negative number, found value: ${value.toNumber()}` ); const hasDecimals = value.decimalPlaces() !== 0; this.assert( !hasDecimals, diff --git a/packages/assert/test/assert_test.ts b/packages/assert/test/assert_test.ts index ff337196d..732e99b3e 100644 --- a/packages/assert/test/assert_test.ts +++ b/packages/assert/test/assert_test.ts @@ -22,6 +22,16 @@ describe('Assertions', () => { invalidInputs.forEach(input => expect(assert.isBigNumber.bind(assert, variableName, input)).to.throw()); }); }); + describe('#isValidBaseUnitAmount', () => { + it('should not throw for valid input', () => { + const validInputs = [new BigNumber(23), new BigNumber('45000000')]; + validInputs.forEach(input => expect(assert.isValidBaseUnitAmount.bind(assert, variableName, input)).to.not.throw()); + }); + it('should throw for invalid input', () => { + const invalidInputs = [0, undefined, new BigNumber(3.145), 3.145, new BigNumber(-400)]; + invalidInputs.forEach(input => expect(assert.isValidBaseUnitAmount.bind(assert, variableName, input)).to.throw()); + }); + }); describe('#isString', () => { it('should not throw for valid input', () => { const validInputs = ['hello', 'goodbye']; -- cgit v1.2.3 From ceb8a492b116f966e780d0ff4992ee0919963bd0 Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Thu, 18 Jan 2018 18:59:47 +1100 Subject: Should not -> cannot --- packages/assert/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages') diff --git a/packages/assert/src/index.ts b/packages/assert/src/index.ts index 015ffe579..0ea666629 100644 --- a/packages/assert/src/index.ts +++ b/packages/assert/src/index.ts @@ -13,7 +13,7 @@ export const assert = { isValidBaseUnitAmount(variableName: string, value: BigNumber) { assert.isBigNumber(variableName, value); const isNegative = value.lessThan(0); - this.assert(!isNegative, `${variableName} should not be a negative number, found value: ${value.toNumber()}` ); + this.assert(!isNegative, `${variableName} cannot be a negative number, found value: ${value.toNumber()}` ); const hasDecimals = value.decimalPlaces() !== 0; this.assert( !hasDecimals, -- cgit v1.2.3 From fb77817c2d5258ecf92901ed9bd7db35bc11078f Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Fri, 19 Jan 2018 10:32:51 +1100 Subject: Update CHANGELOG, rebase on development --- packages/0x.js/CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) (limited to 'packages') diff --git a/packages/0x.js/CHANGELOG.md b/packages/0x.js/CHANGELOG.md index 24d09e2ba..703640e48 100644 --- a/packages/0x.js/CHANGELOG.md +++ b/packages/0x.js/CHANGELOG.md @@ -1,5 +1,8 @@ # CHANGELOG +## v0.30.1 - _January 18, 2018_ + + * Fix a bug allowing negative fill values (#212) ## v0.30.0 - _January 17, 2018_ * Add an error parameter to the order watcher callback (#312) -- cgit v1.2.3 From 13ec8ed03cd4423c9b5373e5eabd2d85a9b131f1 Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Fri, 19 Jan 2018 10:42:37 +1100 Subject: Allow Token symbols to be alphanumeric --- packages/website/ts/components/generate_order/new_token_form.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'packages') diff --git a/packages/website/ts/components/generate_order/new_token_form.tsx b/packages/website/ts/components/generate_order/new_token_form.tsx index b416de168..63645be9a 100644 --- a/packages/website/ts/components/generate_order/new_token_form.tsx +++ b/packages/website/ts/components/generate_order/new_token_form.tsx @@ -189,8 +189,8 @@ export class NewTokenForm extends React.Component maxLength) { symbolErrText = `Max length is ${maxLength}`; } else if (tokenWithSymbolExists) { @@ -231,7 +231,7 @@ export class NewTokenForm extends React.Component Date: Fri, 19 Jan 2018 10:51:57 +1100 Subject: Prettier --- packages/0x.js/CHANGELOG.md | 1 + packages/assert/src/index.ts | 2 +- packages/assert/test/assert_test.ts | 8 ++++++-- 3 files changed, 8 insertions(+), 3 deletions(-) (limited to 'packages') diff --git a/packages/0x.js/CHANGELOG.md b/packages/0x.js/CHANGELOG.md index 703640e48..0846ee7c3 100644 --- a/packages/0x.js/CHANGELOG.md +++ b/packages/0x.js/CHANGELOG.md @@ -3,6 +3,7 @@ ## v0.30.1 - _January 18, 2018_ * Fix a bug allowing negative fill values (#212) + ## v0.30.0 - _January 17, 2018_ * Add an error parameter to the order watcher callback (#312) diff --git a/packages/assert/src/index.ts b/packages/assert/src/index.ts index 0ea666629..7ad574ec7 100644 --- a/packages/assert/src/index.ts +++ b/packages/assert/src/index.ts @@ -13,7 +13,7 @@ export const assert = { isValidBaseUnitAmount(variableName: string, value: BigNumber) { assert.isBigNumber(variableName, value); const isNegative = value.lessThan(0); - this.assert(!isNegative, `${variableName} cannot be a negative number, found value: ${value.toNumber()}` ); + this.assert(!isNegative, `${variableName} cannot be a negative number, found value: ${value.toNumber()}`); const hasDecimals = value.decimalPlaces() !== 0; this.assert( !hasDecimals, diff --git a/packages/assert/test/assert_test.ts b/packages/assert/test/assert_test.ts index 732e99b3e..b0fa398d6 100644 --- a/packages/assert/test/assert_test.ts +++ b/packages/assert/test/assert_test.ts @@ -25,11 +25,15 @@ describe('Assertions', () => { describe('#isValidBaseUnitAmount', () => { it('should not throw for valid input', () => { const validInputs = [new BigNumber(23), new BigNumber('45000000')]; - validInputs.forEach(input => expect(assert.isValidBaseUnitAmount.bind(assert, variableName, input)).to.not.throw()); + validInputs.forEach(input => + expect(assert.isValidBaseUnitAmount.bind(assert, variableName, input)).to.not.throw(), + ); }); it('should throw for invalid input', () => { const invalidInputs = [0, undefined, new BigNumber(3.145), 3.145, new BigNumber(-400)]; - invalidInputs.forEach(input => expect(assert.isValidBaseUnitAmount.bind(assert, variableName, input)).to.throw()); + invalidInputs.forEach(input => + expect(assert.isValidBaseUnitAmount.bind(assert, variableName, input)).to.throw(), + ); }); }); describe('#isString', () => { -- cgit v1.2.3 From ab7f681f153778a5af4e2e2ac7713c384fe3ec79 Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Fri, 19 Jan 2018 11:17:48 +1100 Subject: Prettier newline --- packages/0x.js/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages') diff --git a/packages/0x.js/CHANGELOG.md b/packages/0x.js/CHANGELOG.md index 0846ee7c3..1a09eaf28 100644 --- a/packages/0x.js/CHANGELOG.md +++ b/packages/0x.js/CHANGELOG.md @@ -272,4 +272,4 @@ ## v0.5.1 - _Jun. 15, 2017_ - * Added `postpublish` script to publish to Github Releases with assets. \ No newline at end of file + * Added `postpublish` script to publish to Github Releases with assets. -- cgit v1.2.3 From d34135ae436acc2bc7ef669845e50238137e6812 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Fri, 19 Jan 2018 11:26:03 +0800 Subject: Fix bug hiding the user info from topBar --- packages/website/ts/components/top_bar.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages') diff --git a/packages/website/ts/components/top_bar.tsx b/packages/website/ts/components/top_bar.tsx index 0859755fe..11d3e7cc2 100644 --- a/packages/website/ts/components/top_bar.tsx +++ b/packages/website/ts/components/top_bar.tsx @@ -168,7 +168,7 @@ export class TopBar extends React.Component {
)} {this.props.blockchainIsLoaded && - _.isEmpty(this.props.userAddress) && ( + !_.isEmpty(this.props.userAddress) && (
{this._renderUser()}
)}
-- cgit v1.2.3 From 9ccf63b44afe1ae6ccc2b9298ee35697d6be9e30 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Fri, 19 Jan 2018 11:33:35 +0800 Subject: Add our mainnet and kovan nodes as backups for Portal requests --- packages/website/ts/utils/configs.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'packages') diff --git a/packages/website/ts/utils/configs.ts b/packages/website/ts/utils/configs.ts index 52b400d57..3d37a89ab 100644 --- a/packages/website/ts/utils/configs.ts +++ b/packages/website/ts/utils/configs.ts @@ -118,8 +118,8 @@ export const configs = { ] as OutdatedWrappedEtherByNetworkId[], // The order matters. We first try first node and only then fall back to others. PUBLIC_NODE_URLS_BY_NETWORK_ID: { - [1]: [`https://mainnet.infura.io/${INFURA_API_KEY}`], - [42]: [`https://kovan.infura.io/${INFURA_API_KEY}`], + [1]: [`https://mainnet.infura.io/${INFURA_API_KEY}`, 'https://mainnet.0xproject.com'], + [42]: [`https://kovan.infura.io/${INFURA_API_KEY}`, 'https://kovan.0xproject.com'], } as PublicNodeUrlsByNetworkId, SHOULD_DEPRECATE_OLD_WETH_TOKEN: true, SYMBOLS_OF_MINTABLE_TOKENS: ['MKR', 'MLN', 'GNT', 'DGD', 'REP'], -- cgit v1.2.3