From 0326ddd79d2a97b5841f3e5dbfe6c3067e089bba Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 2 Jul 2018 10:48:59 +0200 Subject: Add maker and taker balance/allowance scenarios to generateFillOrderCombination --- .../src/utils/core_combinatorial_utils.ts | 32 ++++++++++++++++------ 1 file changed, 24 insertions(+), 8 deletions(-) (limited to 'packages') diff --git a/packages/contracts/src/utils/core_combinatorial_utils.ts b/packages/contracts/src/utils/core_combinatorial_utils.ts index 5b725fbe3..aadf7a57c 100644 --- a/packages/contracts/src/utils/core_combinatorial_utils.ts +++ b/packages/contracts/src/utils/core_combinatorial_utils.ts @@ -165,6 +165,14 @@ export class CoreCombinatorialUtils { AssetDataScenario.ZRXFeeToken, ]; const takerAssetFillAmountScenario = [TakerAssetFillAmountScenario.ExactlyRemainingFillableTakerAssetAmount]; + const makerAssetBalanceScenario = [BalanceAmountScenario.Higher]; + const makerAssetAllowanceScenario = [AllowanceAmountScenario.Higher]; + const makerZRXBalanceScenario = [BalanceAmountScenario.Higher]; + const makerZRXAllowanceScenario = [AllowanceAmountScenario.Higher]; + const takerAssetBalanceScenario = [BalanceAmountScenario.Higher]; + const takerAssetAllowanceScenario = [AllowanceAmountScenario.Higher]; + const takerZRXBalanceScenario = [BalanceAmountScenario.Higher]; + const takerZRXAllowanceScenario = [AllowanceAmountScenario.Higher]; const fillScenarioArrays = CoreCombinatorialUtils._getAllCombinations([ takerScenarios, feeRecipientScenarios, @@ -176,6 +184,14 @@ export class CoreCombinatorialUtils { makerAssetDataScenario, takerAssetDataScenario, takerAssetFillAmountScenario, + makerAssetBalanceScenario, + makerAssetAllowanceScenario, + makerZRXBalanceScenario, + makerZRXAllowanceScenario, + takerAssetBalanceScenario, + takerAssetAllowanceScenario, + takerZRXBalanceScenario, + takerZRXAllowanceScenario, ]); const fillScenarios = _.map(fillScenarioArrays, fillScenarioArray => { @@ -193,16 +209,16 @@ export class CoreCombinatorialUtils { }, takerAssetFillAmountScenario: fillScenarioArray[9] as TakerAssetFillAmountScenario, makerStateScenario: { - traderAssetBalance: BalanceAmountScenario.Higher, - traderAssetAllowance: AllowanceAmountScenario.Higher, - zrxFeeBalance: BalanceAmountScenario.Higher, - zrxFeeAllowance: AllowanceAmountScenario.Higher, + traderAssetBalance: fillScenarioArray[10] as BalanceAmountScenario, + traderAssetAllowance: fillScenarioArray[11] as AllowanceAmountScenario, + zrxFeeBalance: fillScenarioArray[12] as BalanceAmountScenario, + zrxFeeAllowance: fillScenarioArray[13] as AllowanceAmountScenario, }, takerStateScenario: { - traderAssetBalance: BalanceAmountScenario.Higher, - traderAssetAllowance: AllowanceAmountScenario.Higher, - zrxFeeBalance: BalanceAmountScenario.Higher, - zrxFeeAllowance: AllowanceAmountScenario.Higher, + traderAssetBalance: fillScenarioArray[14] as BalanceAmountScenario, + traderAssetAllowance: fillScenarioArray[15] as AllowanceAmountScenario, + zrxFeeBalance: fillScenarioArray[16] as BalanceAmountScenario, + zrxFeeAllowance: fillScenarioArray[17] as AllowanceAmountScenario, }, }; return fillScenario; -- cgit v1.2.3 From cb6cace910b9639fc80b207b04dc8938831bae93 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 2 Jul 2018 10:49:41 +0200 Subject: Fix bug where using nullAddress for order instead of actual taker address --- packages/contracts/src/utils/core_combinatorial_utils.ts | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) (limited to 'packages') diff --git a/packages/contracts/src/utils/core_combinatorial_utils.ts b/packages/contracts/src/utils/core_combinatorial_utils.ts index aadf7a57c..3212eba04 100644 --- a/packages/contracts/src/utils/core_combinatorial_utils.ts +++ b/packages/contracts/src/utils/core_combinatorial_utils.ts @@ -783,25 +783,17 @@ export class CoreCombinatorialUtils { case AllowanceAmountScenario.TooLow: const tooLowAllowance = takerFee.minus(1); - await this.assetWrapper.setProxyAllowanceAsync( - signedOrder.takerAddress, - this.zrxAssetData, - tooLowAllowance, - ); + await this.assetWrapper.setProxyAllowanceAsync(this.takerAddress, this.zrxAssetData, tooLowAllowance); break; case AllowanceAmountScenario.Exact: const exactAllowance = takerFee; - await this.assetWrapper.setProxyAllowanceAsync( - signedOrder.takerAddress, - this.zrxAssetData, - exactAllowance, - ); + await this.assetWrapper.setProxyAllowanceAsync(this.takerAddress, this.zrxAssetData, exactAllowance); break; case AllowanceAmountScenario.Unlimited: await this.assetWrapper.setProxyAllowanceAsync( - signedOrder.takerAddress, + this.takerAddress, this.zrxAssetData, constants.UNLIMITED_ALLOWANCE_IN_BASE_UNITS, ); -- cgit v1.2.3 From 32d75b6483d8d10073238d228e180fbee46cf192 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 2 Jul 2018 10:50:48 +0200 Subject: Transfer ERC721 token instead of burning, so we can still set an allowance to it in tests --- packages/contracts/src/utils/asset_wrapper.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'packages') diff --git a/packages/contracts/src/utils/asset_wrapper.ts b/packages/contracts/src/utils/asset_wrapper.ts index a7f91f413..9946e4bde 100644 --- a/packages/contracts/src/utils/asset_wrapper.ts +++ b/packages/contracts/src/utils/asset_wrapper.ts @@ -86,7 +86,15 @@ export class AssetWrapper { ); } else if (tokenOwner === userAddress && desiredBalance.eq(0)) { // Burn token - await erc721Wrapper.burnAsync(assetProxyData.tokenAddress, assetProxyData.tokenId, userAddress); + // await erc721Wrapper.burnAsync(assetProxyData.tokenAddress, assetProxyData.tokenId, userAddress); + const userAddresses = await (erc721Wrapper as any)._web3Wrapper.getAvailableAddressesAsync(); + const nonOwner = _.find(userAddresses, a => a !== userAddress); + await erc721Wrapper.transferFromAsync( + assetProxyData.tokenAddress, + assetProxyData.tokenId, + tokenOwner, + nonOwner, + ); return; } else if ( (userAddress !== tokenOwner && desiredBalance.eq(0)) || -- cgit v1.2.3 From 018a437d626ea7ec41828ea387c380b03bd2287c Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 2 Jul 2018 10:51:28 +0200 Subject: Print out entire orderFill scenario --- packages/contracts/test/exchange/fill_order.ts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) (limited to 'packages') diff --git a/packages/contracts/test/exchange/fill_order.ts b/packages/contracts/test/exchange/fill_order.ts index d65ab2f9a..7bf12809a 100644 --- a/packages/contracts/test/exchange/fill_order.ts +++ b/packages/contracts/test/exchange/fill_order.ts @@ -67,13 +67,7 @@ describe('FillOrder Tests', () => { const test = (fillScenarios: FillScenario[]) => { _.forEach(fillScenarios, fillScenario => { const orderScenario = fillScenario.orderScenario; - const description = `Combinatorial OrderFill: ${orderScenario.feeRecipientScenario} ${ - orderScenario.makerAssetAmountScenario - } ${orderScenario.takerAssetAmountScenario} ${orderScenario.makerFeeScenario} ${ - orderScenario.takerFeeScenario - } ${orderScenario.expirationTimeSecondsScenario} ${orderScenario.makerAssetDataScenario} ${ - orderScenario.takerAssetDataScenario - }`; + const description = `Combinatorial OrderFill: ${JSON.stringify(fillScenario)}`; it(description, async () => { await coreCombinatorialUtils.testFillOrderScenarioAsync(provider, fillScenario); }); -- cgit v1.2.3 From f5a8f00af84fed0be0ab3127dc67190647baae0a Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 2 Jul 2018 10:52:49 +0200 Subject: Fix validation logic by checking for 0 maker/taker amount before 0 fillTakerAssetAmount since one causes the other during combinatorial testing --- packages/order-utils/src/order_validation_utils.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'packages') diff --git a/packages/order-utils/src/order_validation_utils.ts b/packages/order-utils/src/order_validation_utils.ts index 54428f77d..94df3ef82 100644 --- a/packages/order-utils/src/order_validation_utils.ts +++ b/packages/order-utils/src/order_validation_utils.ts @@ -140,12 +140,12 @@ export class OrderValidationUtils { takerAddress: string, zrxAssetData: string, ): Promise { - if (fillTakerAssetAmount.eq(0)) { - throw new Error(RevertReason.InvalidTakerAmount); - } if (signedOrder.makerAssetAmount.eq(0) || signedOrder.takerAssetAmount.eq(0)) { throw new Error(RevertReason.OrderUnfillable); } + if (fillTakerAssetAmount.eq(0)) { + throw new Error(RevertReason.InvalidTakerAmount); + } const orderHash = orderHashUtils.getOrderHashHex(signedOrder); const isValid = await isValidSignatureAsync( provider, -- cgit v1.2.3 From 6a6d2f73a889b6bbcbfd4082ff4dfd5f3d2a0352 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 2 Jul 2018 11:00:32 +0200 Subject: Fix comment --- packages/contracts/src/utils/asset_wrapper.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'packages') diff --git a/packages/contracts/src/utils/asset_wrapper.ts b/packages/contracts/src/utils/asset_wrapper.ts index 9946e4bde..1a7b2b9ed 100644 --- a/packages/contracts/src/utils/asset_wrapper.ts +++ b/packages/contracts/src/utils/asset_wrapper.ts @@ -85,8 +85,7 @@ export class AssetWrapper { userAddress, ); } else if (tokenOwner === userAddress && desiredBalance.eq(0)) { - // Burn token - // await erc721Wrapper.burnAsync(assetProxyData.tokenAddress, assetProxyData.tokenId, userAddress); + // Transfer token to someone else const userAddresses = await (erc721Wrapper as any)._web3Wrapper.getAvailableAddressesAsync(); const nonOwner = _.find(userAddresses, a => a !== userAddress); await erc721Wrapper.transferFromAsync( -- cgit v1.2.3 From 20acdbf6c3ba6a62e87a9a496021cb6482c0c03a Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 2 Jul 2018 11:01:15 +0200 Subject: Add commented out scenarios not run by default --- .../src/utils/core_combinatorial_utils.ts | 98 ++++++++++++++++++---- 1 file changed, 82 insertions(+), 16 deletions(-) (limited to 'packages') diff --git a/packages/contracts/src/utils/core_combinatorial_utils.ts b/packages/contracts/src/utils/core_combinatorial_utils.ts index 3212eba04..edcb050c6 100644 --- a/packages/contracts/src/utils/core_combinatorial_utils.ts +++ b/packages/contracts/src/utils/core_combinatorial_utils.ts @@ -145,13 +145,39 @@ export class CoreCombinatorialUtils { public exchangeWrapper: ExchangeWrapper; public assetWrapper: AssetWrapper; public static generateFillOrderCombinations(): FillScenario[] { - const takerScenarios = [TakerScenario.Unspecified]; - const feeRecipientScenarios = [FeeRecipientAddressScenario.EthUserAddress]; - const makerAssetAmountScenario = [OrderAssetAmountScenario.Large]; - const takerAssetAmountScenario = [OrderAssetAmountScenario.Large]; - const makerFeeScenario = [OrderAssetAmountScenario.Large]; - const takerFeeScenario = [OrderAssetAmountScenario.Large]; - const expirationTimeSecondsScenario = [ExpirationTimeSecondsScenario.InFuture]; + const takerScenarios = [ + TakerScenario.Unspecified, + // TakerScenario.CorrectlySpecified, + // TakerScenario.IncorrectlySpecified, + ]; + const feeRecipientScenarios = [ + FeeRecipientAddressScenario.EthUserAddress, + // FeeRecipientAddressScenario.BurnAddress, + ]; + const makerAssetAmountScenario = [ + OrderAssetAmountScenario.Large, + // OrderAssetAmountScenario.Zero, + // OrderAssetAmountScenario.Small, + ]; + const takerAssetAmountScenario = [ + OrderAssetAmountScenario.Large, + // OrderAssetAmountScenario.Zero, + // OrderAssetAmountScenario.Small, + ]; + const makerFeeScenario = [ + OrderAssetAmountScenario.Large, + // OrderAssetAmountScenario.Small, + // OrderAssetAmountScenario.Zero, + ]; + const takerFeeScenario = [ + OrderAssetAmountScenario.Large, + // OrderAssetAmountScenario.Small, + // OrderAssetAmountScenario.Zero, + ]; + const expirationTimeSecondsScenario = [ + ExpirationTimeSecondsScenario.InFuture, + ExpirationTimeSecondsScenario.InPast, + ]; const makerAssetDataScenario = [ AssetDataScenario.ERC20FiveDecimals, AssetDataScenario.ERC20NonZRXEighteenDecimals, @@ -164,15 +190,55 @@ export class CoreCombinatorialUtils { AssetDataScenario.ERC721, AssetDataScenario.ZRXFeeToken, ]; - const takerAssetFillAmountScenario = [TakerAssetFillAmountScenario.ExactlyRemainingFillableTakerAssetAmount]; - const makerAssetBalanceScenario = [BalanceAmountScenario.Higher]; - const makerAssetAllowanceScenario = [AllowanceAmountScenario.Higher]; - const makerZRXBalanceScenario = [BalanceAmountScenario.Higher]; - const makerZRXAllowanceScenario = [AllowanceAmountScenario.Higher]; - const takerAssetBalanceScenario = [BalanceAmountScenario.Higher]; - const takerAssetAllowanceScenario = [AllowanceAmountScenario.Higher]; - const takerZRXBalanceScenario = [BalanceAmountScenario.Higher]; - const takerZRXAllowanceScenario = [AllowanceAmountScenario.Higher]; + const takerAssetFillAmountScenario = [ + TakerAssetFillAmountScenario.ExactlyRemainingFillableTakerAssetAmount, + // TakerAssetFillAmountScenario.GreaterThanRemainingFillableTakerAssetAmount, + // TakerAssetFillAmountScenario.LessThanRemainingFillableTakerAssetAmount, + ]; + const makerAssetBalanceScenario = [ + BalanceAmountScenario.Higher, + // BalanceAmountScenario.Exact, + // BalanceAmountScenario.TooLow, + ]; + const makerAssetAllowanceScenario = [ + AllowanceAmountScenario.Higher, + // AllowanceAmountScenario.Exact, + // AllowanceAmountScenario.TooLow, + // AllowanceAmountScenario.Unlimited, + ]; + const makerZRXBalanceScenario = [ + BalanceAmountScenario.Higher, + // BalanceAmountScenario.Exact, + // BalanceAmountScenario.TooLow, + ]; + const makerZRXAllowanceScenario = [ + AllowanceAmountScenario.Higher, + // AllowanceAmountScenario.Exact, + // AllowanceAmountScenario.TooLow, + // AllowanceAmountScenario.Unlimited, + ]; + const takerAssetBalanceScenario = [ + BalanceAmountScenario.Higher, + // BalanceAmountScenario.Exact, + // BalanceAmountScenario.TooLow, + ]; + const takerAssetAllowanceScenario = [ + AllowanceAmountScenario.Higher, + // AllowanceAmountScenario.Exact, + // AllowanceAmountScenario.TooLow, + // AllowanceAmountScenario.Unlimited, + ]; + const takerZRXBalanceScenario = [ + BalanceAmountScenario.Higher, + // BalanceAmountScenario.Exact, + // BalanceAmountScenario.TooLow, + ]; + const takerZRXAllowanceScenario = [ + AllowanceAmountScenario.Higher, + // AllowanceAmountScenario.Exact, + // AllowanceAmountScenario.TooLow, + // AllowanceAmountScenario.Unlimited, + ]; const fillScenarioArrays = CoreCombinatorialUtils._getAllCombinations([ takerScenarios, feeRecipientScenarios, -- cgit v1.2.3 From 7b806fe84d453bb2f4c6d58d390b5c291077b267 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 2 Jul 2018 11:18:48 +0200 Subject: Remove unused variable --- packages/contracts/test/exchange/fill_order.ts | 1 - 1 file changed, 1 deletion(-) (limited to 'packages') diff --git a/packages/contracts/test/exchange/fill_order.ts b/packages/contracts/test/exchange/fill_order.ts index 21d86622b..029bd66e2 100644 --- a/packages/contracts/test/exchange/fill_order.ts +++ b/packages/contracts/test/exchange/fill_order.ts @@ -65,7 +65,6 @@ describe('FillOrder Tests', () => { describe('fillOrder', () => { const test = (fillScenarios: FillScenario[]) => { _.forEach(fillScenarios, fillScenario => { - const orderScenario = fillScenario.orderScenario; const description = `Combinatorial OrderFill: ${JSON.stringify(fillScenario)}`; it(description, async () => { await coreCombinatorialUtils.testFillOrderScenarioAsync(provider, fillScenario); -- cgit v1.2.3 From af1e4574a8ed97416ce27b1d9b532ee7ed02a746 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 2 Jul 2018 11:39:07 +0200 Subject: Disable custom-no-magic-number for block --- packages/contracts/test/utils/core_combinatorial_utils.ts | 2 ++ 1 file changed, 2 insertions(+) (limited to 'packages') diff --git a/packages/contracts/test/utils/core_combinatorial_utils.ts b/packages/contracts/test/utils/core_combinatorial_utils.ts index 86979b4ff..03b09521d 100644 --- a/packages/contracts/test/utils/core_combinatorial_utils.ts +++ b/packages/contracts/test/utils/core_combinatorial_utils.ts @@ -262,6 +262,7 @@ export class CoreCombinatorialUtils { ]); const fillScenarios = _.map(fillScenarioArrays, fillScenarioArray => { + // tslint:disable:custom-no-magic-numbers const fillScenario: FillScenario = { orderScenario: { takerScenario: fillScenarioArray[0] as TakerScenario, @@ -288,6 +289,7 @@ export class CoreCombinatorialUtils { zrxFeeAllowance: fillScenarioArray[17] as AllowanceAmountScenario, }, }; + // tslint:enable:custom-no-magic-numbers return fillScenario; }); -- cgit v1.2.3 From d861caca23cd87d162c0d4be62c04d9842c6b84f Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 2 Jul 2018 12:31:02 +0200 Subject: Fix bug where 18 decimal tokens instead of 5 decimal tokens created --- packages/contracts/test/utils/core_combinatorial_utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages') diff --git a/packages/contracts/test/utils/core_combinatorial_utils.ts b/packages/contracts/test/utils/core_combinatorial_utils.ts index 03b09521d..38723d53d 100644 --- a/packages/contracts/test/utils/core_combinatorial_utils.ts +++ b/packages/contracts/test/utils/core_combinatorial_utils.ts @@ -75,7 +75,7 @@ export async function coreCombinatorialUtilsFactoryAsync( const zrxAssetData = assetProxyUtils.encodeERC20AssetData(zrxToken.address); const erc20FiveDecimalTokenCount = 2; - const fiveDecimals = new BigNumber(18); + const fiveDecimals = new BigNumber(5); const [erc20FiveDecimalTokenA, erc20FiveDecimalTokenB] = await erc20Wrapper.deployDummyTokensAsync( erc20FiveDecimalTokenCount, fiveDecimals, -- cgit v1.2.3 From 9c7289d7a3824e32cb0e88a27e3fa8585da8e1ec Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 2 Jul 2018 13:31:34 +0200 Subject: Update outdated changelogs --- packages/fill-scenarios/CHANGELOG.json | 2 +- packages/json-schemas/CHANGELOG.json | 9 +++++++++ packages/order-utils/CHANGELOG.json | 6 +++++- packages/types/CHANGELOG.json | 8 ++++++++ 4 files changed, 23 insertions(+), 2 deletions(-) (limited to 'packages') diff --git a/packages/fill-scenarios/CHANGELOG.json b/packages/fill-scenarios/CHANGELOG.json index ec9111ebb..822f8d5d5 100644 --- a/packages/fill-scenarios/CHANGELOG.json +++ b/packages/fill-scenarios/CHANGELOG.json @@ -1,6 +1,6 @@ [ { - "version": "0.1.0", + "version": "1.0.0", "changes": [ { "note": "Make fill-scenarios compatible with V2 of 0x protocol", diff --git a/packages/json-schemas/CHANGELOG.json b/packages/json-schemas/CHANGELOG.json index bb9cd3cd2..2b37e1836 100644 --- a/packages/json-schemas/CHANGELOG.json +++ b/packages/json-schemas/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "1.0.0", + "changes": [ + { + "note": "Update schemas for V2", + "pr": 615 + } + ] + }, { "timestamp": 1529397769, "version": "0.8.1", diff --git a/packages/order-utils/CHANGELOG.json b/packages/order-utils/CHANGELOG.json index a1f199793..199ce2173 100644 --- a/packages/order-utils/CHANGELOG.json +++ b/packages/order-utils/CHANGELOG.json @@ -1,7 +1,11 @@ [ { - "version": "0.1.0", + "version": "1.0.0", "changes": [ + { + "note": "Refactor to work with V2 of 0x protocol", + "pr": 636 + }, { "note": "Export parseECSignature method", "pr": 684 diff --git a/packages/types/CHANGELOG.json b/packages/types/CHANGELOG.json index 40197ab92..a0be5d7fe 100644 --- a/packages/types/CHANGELOG.json +++ b/packages/types/CHANGELOG.json @@ -1,4 +1,12 @@ [ + { + "version": "1.0.0", + "changes": [ + { + "notes": "Updated types for V2 of 0x protocol" + } + ] + }, { "timestamp": 1529397769, "version": "0.8.1", -- cgit v1.2.3 From bdda1f2992ac41ea62ad4bfe2d48988a8e98bf42 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 2 Jul 2018 13:32:22 +0200 Subject: Throw if changelog version is below package.json version --- packages/monorepo-scripts/src/utils/utils.ts | 3 +++ 1 file changed, 3 insertions(+) (limited to 'packages') diff --git a/packages/monorepo-scripts/src/utils/utils.ts b/packages/monorepo-scripts/src/utils/utils.ts index 20bc57bae..b5d139de3 100644 --- a/packages/monorepo-scripts/src/utils/utils.ts +++ b/packages/monorepo-scripts/src/utils/utils.ts @@ -44,6 +44,9 @@ export const utils = { nextVersionIfValid = semver.inc(currentVersion, 'patch'); } const lastEntry = changelog[0]; + if (semver.gt(currentVersion, lastEntry.version)) { + throw new Error(`Package.json version cannot be greater then last CHANGELOG entry. Check: ${packageName}`); + } nextVersionIfValid = semver.eq(lastEntry.version, currentVersion) ? semver.inc(currentVersion, 'patch') : lastEntry.version; -- cgit v1.2.3 From e4eac14dc977fb5c63661077b51770268abff48b Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 2 Jul 2018 13:53:05 +0200 Subject: version outdated --- packages/ethereum-types/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages') diff --git a/packages/ethereum-types/package.json b/packages/ethereum-types/package.json index a937f6ad1..9d4930826 100644 --- a/packages/ethereum-types/package.json +++ b/packages/ethereum-types/package.json @@ -1,6 +1,6 @@ { "name": "ethereum-types", - "version": "0.0.1", + "version": "0.0.2", "engines": { "node": ">=6.12" }, -- cgit v1.2.3 From b763cdbd4cadf151666eda4567be1d8a662877d5 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 2 Jul 2018 13:53:24 +0200 Subject: combine changelog entries since we haven't published yet --- packages/utils/CHANGELOG.json | 13 ++++--------- packages/utils/package.json | 2 +- 2 files changed, 5 insertions(+), 10 deletions(-) (limited to 'packages') diff --git a/packages/utils/CHANGELOG.json b/packages/utils/CHANGELOG.json index c6736dc4d..a27216be7 100644 --- a/packages/utils/CHANGELOG.json +++ b/packages/utils/CHANGELOG.json @@ -1,13 +1,4 @@ [ - { - "version": "0.7.3", - "changes": [ - { - "note": "Fixes uncaught Error in abi_decoder", - "pr": 763 - } - ] - }, { "version": "0.7.2", "changes": [ @@ -17,6 +8,10 @@ { "note": "Add logUtils.warn", "pr": 589 + }, + { + "note": "Fixes uncaught Error in abi_decoder", + "pr": 763 } ] }, diff --git a/packages/utils/package.json b/packages/utils/package.json index f4f39956c..442c73109 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@0xproject/utils", - "version": "0.7.3", + "version": "0.7.2", "engines": { "node": ">=6.12" }, -- cgit v1.2.3 From 1346fa792a381cb4268b79a2167b560d44397db1 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 2 Jul 2018 13:53:44 +0200 Subject: Add logs for when tags get removed --- packages/monorepo-scripts/src/utils/utils.ts | 2 ++ 1 file changed, 2 insertions(+) (limited to 'packages') diff --git a/packages/monorepo-scripts/src/utils/utils.ts b/packages/monorepo-scripts/src/utils/utils.ts index b5d139de3..7019f9241 100644 --- a/packages/monorepo-scripts/src/utils/utils.ts +++ b/packages/monorepo-scripts/src/utils/utils.ts @@ -109,6 +109,7 @@ export const utils = { if (!_.isEmpty(result.stderr)) { throw new Error(`Failed to delete local git tag. Got err: ${result.stderr}`); } + this.log(`Removed local tag: ${tagName}`); }, async removeRemoteTagAsync(tagName: string): Promise { const result = await execAsync(`git push origin ${tagName}`, { @@ -117,5 +118,6 @@ export const utils = { if (!_.isEmpty(result.stderr)) { throw new Error(`Failed to delete remote git tag. Got err: ${result.stderr}`); } + this.log(`Removed remote tag: ${tagName}`); }, }; -- cgit v1.2.3 From a619949a56937d29b3e7463812e9ea8515d21126 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 2 Jul 2018 14:19:30 +0200 Subject: Remove remote tag before local one --- packages/monorepo-scripts/src/prepublish_checks.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'packages') diff --git a/packages/monorepo-scripts/src/prepublish_checks.ts b/packages/monorepo-scripts/src/prepublish_checks.ts index 1c4ee1fc6..3b4ff9082 100644 --- a/packages/monorepo-scripts/src/prepublish_checks.ts +++ b/packages/monorepo-scripts/src/prepublish_checks.ts @@ -34,17 +34,17 @@ async function checkGitTagsForNextVersionAndDeleteIfExistAsync( const packageLocation = lernaPackage.location; const nextVersion = await utils.getNextPackageVersionAsync(currentVersion, packageName, packageLocation); - const localTagVersions = localTagVersionsByPackageName[packageName]; - if (_.includes(localTagVersions, nextVersion)) { - const tagName = `${packageName}@${nextVersion}`; - await utils.removeLocalTagAsync(tagName); - } - const remoteTagVersions = remoteTagVersionsByPackageName[packageName]; if (_.includes(remoteTagVersions, nextVersion)) { const tagName = `:refs/tags/${packageName}@${nextVersion}`; await utils.removeRemoteTagAsync(tagName); } + + const localTagVersions = localTagVersionsByPackageName[packageName]; + if (_.includes(localTagVersions, nextVersion)) { + const tagName = `${packageName}@${nextVersion}`; + await utils.removeLocalTagAsync(tagName); + } } } -- cgit v1.2.3 From e553ef83de473fd493f32158bc61e39778acc623 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 2 Jul 2018 14:20:42 +0200 Subject: Git command outputs logs to stdErr so only way to check for errors if with try/catch --- packages/monorepo-scripts/src/utils/utils.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'packages') diff --git a/packages/monorepo-scripts/src/utils/utils.ts b/packages/monorepo-scripts/src/utils/utils.ts index 7019f9241..4d3e2d709 100644 --- a/packages/monorepo-scripts/src/utils/utils.ts +++ b/packages/monorepo-scripts/src/utils/utils.ts @@ -103,20 +103,22 @@ export const utils = { return tagVersionByPackageName; }, async removeLocalTagAsync(tagName: string): Promise { - const result = await execAsync(`git tag -d ${tagName}`, { + try { + await execAsync(`git tag -d ${tagName}`, { cwd: constants.monorepoRootPath, }); - if (!_.isEmpty(result.stderr)) { - throw new Error(`Failed to delete local git tag. Got err: ${result.stderr}`); + } catch (err) { + throw new Error(`Failed to delete local git tag. Got err: ${err}`); } this.log(`Removed local tag: ${tagName}`); }, async removeRemoteTagAsync(tagName: string): Promise { - const result = await execAsync(`git push origin ${tagName}`, { + try { + await execAsync(`git push origin ${tagName}`, { cwd: constants.monorepoRootPath, }); - if (!_.isEmpty(result.stderr)) { - throw new Error(`Failed to delete remote git tag. Got err: ${result.stderr}`); + } catch (err) { + throw new Error(`Failed to delete remote git tag. Got err: ${err}`); } this.log(`Removed remote tag: ${tagName}`); }, -- cgit v1.2.3 From db0944acde0f787f075ede55bf278108d20caf25 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 2 Jul 2018 14:21:49 +0200 Subject: fix prettier --- packages/monorepo-scripts/src/utils/utils.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'packages') diff --git a/packages/monorepo-scripts/src/utils/utils.ts b/packages/monorepo-scripts/src/utils/utils.ts index 4d3e2d709..f819ab6f1 100644 --- a/packages/monorepo-scripts/src/utils/utils.ts +++ b/packages/monorepo-scripts/src/utils/utils.ts @@ -105,8 +105,8 @@ export const utils = { async removeLocalTagAsync(tagName: string): Promise { try { await execAsync(`git tag -d ${tagName}`, { - cwd: constants.monorepoRootPath, - }); + cwd: constants.monorepoRootPath, + }); } catch (err) { throw new Error(`Failed to delete local git tag. Got err: ${err}`); } @@ -115,8 +115,8 @@ export const utils = { async removeRemoteTagAsync(tagName: string): Promise { try { await execAsync(`git push origin ${tagName}`, { - cwd: constants.monorepoRootPath, - }); + cwd: constants.monorepoRootPath, + }); } catch (err) { throw new Error(`Failed to delete remote git tag. Got err: ${err}`); } -- cgit v1.2.3 From 6aad12a52fa4db31a588cefc088d784949c65b06 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 2 Jul 2018 14:26:52 +0200 Subject: Add new changelog entry --- packages/monorepo-scripts/CHANGELOG.json | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'packages') diff --git a/packages/monorepo-scripts/CHANGELOG.json b/packages/monorepo-scripts/CHANGELOG.json index a1dda0176..781704a8e 100644 --- a/packages/monorepo-scripts/CHANGELOG.json +++ b/packages/monorepo-scripts/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "0.2.2", + "changes": [ + { + "note": "Fix git remote tag removal step & add an additional sanity assertion", + "pr": 803 + } + ] + }, { "timestamp": 1529397769, "version": "0.2.1", -- cgit v1.2.3 From 50957e1d29674e8cb5e451ec576899ba8c15dde2 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Mon, 2 Jul 2018 16:04:48 +0200 Subject: Update incorrect versions of deps --- packages/0x.js/package.json | 2 +- packages/abi-gen/package.json | 2 +- packages/base-contract/package.json | 2 +- packages/contract-wrappers/package.json | 2 +- packages/contracts/package.json | 2 +- packages/dev-utils/package.json | 2 +- packages/fill-scenarios/package.json | 2 +- packages/migrations/package.json | 2 +- packages/order-utils/package.json | 2 +- packages/order-watcher/package.json | 4 ++-- packages/sol-compiler/package.json | 2 +- packages/sol-cov/package.json | 2 +- packages/subproviders/package.json | 2 +- packages/testnet-faucets/package.json | 2 +- packages/types/package.json | 2 +- packages/typescript-typings/package.json | 2 +- packages/utils/package.json | 2 +- packages/web3-wrapper/package.json | 2 +- 18 files changed, 19 insertions(+), 19 deletions(-) (limited to 'packages') diff --git a/packages/0x.js/package.json b/packages/0x.js/package.json index 12fbf0347..1b41a7cf2 100644 --- a/packages/0x.js/package.json +++ b/packages/0x.js/package.json @@ -110,7 +110,7 @@ "@0xproject/typescript-typings": "^0.4.1", "@0xproject/utils": "^0.7.1", "@0xproject/web3-wrapper": "^0.7.1", - "ethereum-types": "^0.0.1", + "ethereum-types": "^0.0.2", "ethers": "3.0.22", "lodash": "^4.17.4" }, diff --git a/packages/abi-gen/package.json b/packages/abi-gen/package.json index 9d3c6d00d..dadf1dbfe 100644 --- a/packages/abi-gen/package.json +++ b/packages/abi-gen/package.json @@ -29,7 +29,7 @@ "dependencies": { "@0xproject/typescript-typings": "^0.4.1", "@0xproject/utils": "^0.7.1", - "ethereum-types": "^0.0.1", + "ethereum-types": "^0.0.2", "chalk": "^2.3.0", "glob": "^7.1.2", "handlebars": "^4.0.11", diff --git a/packages/base-contract/package.json b/packages/base-contract/package.json index ecbde213b..3b9383033 100644 --- a/packages/base-contract/package.json +++ b/packages/base-contract/package.json @@ -43,7 +43,7 @@ "typescript": "2.7.1" }, "dependencies": { - "ethereum-types": "^0.0.1", + "ethereum-types": "^0.0.2", "@0xproject/typescript-typings": "^0.4.1", "@0xproject/utils": "^0.7.1", "@0xproject/web3-wrapper": "^0.7.1", diff --git a/packages/contract-wrappers/package.json b/packages/contract-wrappers/package.json index fe98e08bf..1b4835be6 100644 --- a/packages/contract-wrappers/package.json +++ b/packages/contract-wrappers/package.json @@ -86,7 +86,7 @@ "@0xproject/typescript-typings": "^0.4.1", "@0xproject/utils": "^0.7.1", "@0xproject/web3-wrapper": "^0.7.1", - "ethereum-types": "^0.0.1", + "ethereum-types": "^0.0.2", "ethereumjs-blockstream": "^2.0.6", "ethereumjs-util": "^5.1.1", "ethers": "3.0.22", diff --git a/packages/contracts/package.json b/packages/contracts/package.json index e0e82adc7..01f2320d0 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -80,7 +80,7 @@ "@0xproject/typescript-typings": "^0.4.1", "@0xproject/utils": "^0.7.1", "@0xproject/web3-wrapper": "^0.7.1", - "ethereum-types": "^0.0.1", + "ethereum-types": "^0.0.2", "bn.js": "^4.11.8", "ethereumjs-abi": "^0.6.4", "ethereumjs-util": "^5.1.1", diff --git a/packages/dev-utils/package.json b/packages/dev-utils/package.json index e62075054..621053ed7 100644 --- a/packages/dev-utils/package.json +++ b/packages/dev-utils/package.json @@ -48,7 +48,7 @@ "@0xproject/subproviders": "^0.10.4", "@0xproject/types": "^0.8.1", "@0xproject/utils": "^0.7.1", - "ethereum-types": "^0.0.1", + "ethereum-types": "^0.0.2", "@0xproject/typescript-typings": "^0.4.1", "@0xproject/web3-wrapper": "^0.7.1", "lodash": "^4.17.4", diff --git a/packages/fill-scenarios/package.json b/packages/fill-scenarios/package.json index 883300fa0..91024ed34 100644 --- a/packages/fill-scenarios/package.json +++ b/packages/fill-scenarios/package.json @@ -44,7 +44,7 @@ "@0xproject/base-contract": "^0.3.4", "@0xproject/order-utils": "^1.0.0", "@0xproject/types": "1.0.0", - "ethereum-types": "^0.0.1", + "ethereum-types": "^0.0.2", "@0xproject/typescript-typings": "^0.4.1", "@0xproject/utils": "^0.7.1", "@0xproject/web3-wrapper": "^0.7.1", diff --git a/packages/migrations/package.json b/packages/migrations/package.json index 57bf0875a..f4190a771 100644 --- a/packages/migrations/package.json +++ b/packages/migrations/package.json @@ -67,7 +67,7 @@ "@0xproject/utils": "^0.7.1", "@0xproject/web3-wrapper": "^0.7.1", "@ledgerhq/hw-app-eth": "^4.3.0", - "ethereum-types": "^0.0.1", + "ethereum-types": "^0.0.2", "ethers": "3.0.22", "lodash": "^4.17.4", "web3-provider-engine": "^14.0.4" diff --git a/packages/order-utils/package.json b/packages/order-utils/package.json index e3c81de44..97b08c3d3 100644 --- a/packages/order-utils/package.json +++ b/packages/order-utils/package.json @@ -82,7 +82,7 @@ "@0xproject/web3-wrapper": "^0.7.1", "@types/node": "^8.0.53", "bn.js": "^4.11.8", - "ethereum-types": "^0.0.1", + "ethereum-types": "^0.0.2", "ethereumjs-abi": "^0.6.4", "ethereumjs-util": "^5.1.1", "ethers": "3.0.22", diff --git a/packages/order-watcher/package.json b/packages/order-watcher/package.json index 3335713a3..40613ea96 100644 --- a/packages/order-watcher/package.json +++ b/packages/order-watcher/package.json @@ -85,9 +85,9 @@ "@0xproject/order-utils": "^0.0.7", "@0xproject/types": "^0.8.1", "@0xproject/typescript-typings": "^0.4.1", - "@0xproject/utils": "^0.7.3", + "@0xproject/utils": "^0.7.2", "@0xproject/web3-wrapper": "^0.7.1", - "ethereum-types": "^0.0.1", + "ethereum-types": "^0.0.2", "bintrees": "^1.0.2", "ethers": "3.0.22", "lodash": "^4.17.4" diff --git a/packages/sol-compiler/package.json b/packages/sol-compiler/package.json index 98568c270..2c1fa41b3 100644 --- a/packages/sol-compiler/package.json +++ b/packages/sol-compiler/package.json @@ -84,7 +84,7 @@ "@0xproject/utils": "^0.7.1", "@0xproject/web3-wrapper": "^0.7.1", "@types/yargs": "^11.0.0", - "ethereum-types": "^0.0.1", + "ethereum-types": "^0.0.2", "chalk": "^2.3.0", "ethereumjs-util": "^5.1.1", "isomorphic-fetch": "^2.2.1", diff --git a/packages/sol-cov/package.json b/packages/sol-cov/package.json index 3d1b7f900..483500ca9 100644 --- a/packages/sol-cov/package.json +++ b/packages/sol-cov/package.json @@ -56,7 +56,7 @@ "@0xproject/utils": "^0.7.1", "@0xproject/web3-wrapper": "^0.7.1", "@0xproject/dev-utils": "^0.4.4", - "ethereum-types": "^0.0.1", + "ethereum-types": "^0.0.2", "ethereumjs-util": "^5.1.1", "glob": "^7.1.2", "istanbul": "^0.4.5", diff --git a/packages/subproviders/package.json b/packages/subproviders/package.json index 31b6ffed6..e87d7bf94 100644 --- a/packages/subproviders/package.json +++ b/packages/subproviders/package.json @@ -46,7 +46,7 @@ "@0xproject/utils": "^0.7.1", "@ledgerhq/hw-app-eth": "^4.3.0", "@ledgerhq/hw-transport-u2f": "^4.3.0", - "ethereum-types": "^0.0.1", + "ethereum-types": "^0.0.2", "bip39": "^2.5.0", "bn.js": "^4.11.8", "ethereumjs-tx": "^1.3.5", diff --git a/packages/testnet-faucets/package.json b/packages/testnet-faucets/package.json index 712ac6795..fdd71656a 100644 --- a/packages/testnet-faucets/package.json +++ b/packages/testnet-faucets/package.json @@ -36,7 +36,7 @@ "@types/body-parser": "^1.16.1", "@types/express": "^4.0.35", "@types/lodash": "4.14.104", - "ethereum-types": "^0.0.1", + "ethereum-types": "^0.0.2", "awesome-typescript-loader": "^3.1.3", "gulp": "^3.9.1", "make-promises-safe": "^1.1.0", diff --git a/packages/types/package.json b/packages/types/package.json index 0d5e308b9..f79b558fa 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -35,7 +35,7 @@ "dependencies": { "@types/node": "^8.0.53", "bignumber.js": "~4.1.0", - "ethereum-types": "^0.0.1" + "ethereum-types": "^0.0.2" }, "publishConfig": { "access": "public" diff --git a/packages/typescript-typings/package.json b/packages/typescript-typings/package.json index 3ba7c10ba..e3f226294 100644 --- a/packages/typescript-typings/package.json +++ b/packages/typescript-typings/package.json @@ -25,7 +25,7 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/packages/typescript-typings#readme", "dependencies": { - "ethereum-types": "^0.0.1", + "ethereum-types": "^0.0.2", "bignumber.js": "~4.1.0" }, "devDependencies": { diff --git a/packages/utils/package.json b/packages/utils/package.json index 442c73109..f10594de5 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -35,7 +35,7 @@ "typescript": "2.7.1" }, "dependencies": { - "ethereum-types": "^0.0.1", + "ethereum-types": "^0.0.2", "@0xproject/typescript-typings": "^0.4.2", "@types/node": "^8.0.53", "ethereumjs-util": "^5.1.1", diff --git a/packages/web3-wrapper/package.json b/packages/web3-wrapper/package.json index 5f7f2cb00..05d195bb9 100644 --- a/packages/web3-wrapper/package.json +++ b/packages/web3-wrapper/package.json @@ -66,7 +66,7 @@ "dependencies": { "@0xproject/typescript-typings": "^0.4.1", "@0xproject/utils": "^0.7.1", - "ethereum-types": "^0.0.1", + "ethereum-types": "^0.0.2", "ethers": "3.0.22", "lodash": "^4.17.4", "web3": "^0.20.0" -- cgit v1.2.3 From 06f4427939123cae8273bb5cc33cd90ac65a2f59 Mon Sep 17 00:00:00 2001 From: fragosti Date: Mon, 2 Jul 2018 13:15:40 -0700 Subject: Add Alex Browne to about page --- packages/website/public/images/team/alexbrowne.png | Bin 0 -> 146699 bytes packages/website/ts/pages/about/about.tsx | 29 ++++++++++++++------- 2 files changed, 19 insertions(+), 10 deletions(-) create mode 100644 packages/website/public/images/team/alexbrowne.png (limited to 'packages') diff --git a/packages/website/public/images/team/alexbrowne.png b/packages/website/public/images/team/alexbrowne.png new file mode 100644 index 000000000..76a61913e Binary files /dev/null and b/packages/website/public/images/team/alexbrowne.png differ diff --git a/packages/website/ts/pages/about/about.tsx b/packages/website/ts/pages/about/about.tsx index 0259af36f..5bb5d06a9 100644 --- a/packages/website/ts/pages/about/about.tsx +++ b/packages/website/ts/pages/about/about.tsx @@ -165,16 +165,24 @@ const teamRow5: ProfileInfo[] = [ }, ]; -// const teamRow6: ProfileInfo[] = [ -// { -// name: 'Chris Kalani', -// title: 'Director of Design', -// description: `Previously founded Wake (acquired by InVision). Early Facebook product designer.`, -// image: 'images/team/chris.png', -// linkedIn: 'https://www.linkedin.com/in/chriskalani/', -// github: 'https://github.com/chriskalani', -// }, -// ]; +const teamRow6: ProfileInfo[] = [ + { + name: 'Alex Browne', + title: 'Engineer in Residence', + description: `Full-stack blockchain engineer. Previously at Plaid. Open source guru and footgun dismantler. Computer Science and Electrical Engineering at Duke.`, + image: 'images/team/alexbrowne.png', + linkedIn: 'https://www.linkedin.com/in/stephenalexbrowne/', + github: 'http://github.com/albrow', + }, + // { + // name: 'Chris Kalani', + // title: 'Director of Design', + // description: `Previously founded Wake (acquired by InVision). Early Facebook product designer.`, + // image: 'images/team/chris.png', + // linkedIn: 'https://www.linkedin.com/in/chriskalani/', + // github: 'https://github.com/chriskalani', + // }, +]; const advisors: ProfileInfo[] = [ { @@ -270,6 +278,7 @@ export class About extends React.Component {
{this._renderProfiles(teamRow3)}
{this._renderProfiles(teamRow4)}
{this._renderProfiles(teamRow5)}
+
{this._renderProfiles(teamRow6)}
Date: Mon, 2 Jul 2018 16:00:34 -0700 Subject: Add better balance formatting rules for balances and usd values --- packages/website/package.json | 2 ++ packages/website/ts/components/wallet/wallet.tsx | 20 +++++--------------- packages/website/ts/utils/constants.ts | 3 ++- packages/website/ts/utils/utils.ts | 16 ++++++++++++++-- 4 files changed, 23 insertions(+), 18 deletions(-) (limited to 'packages') diff --git a/packages/website/package.json b/packages/website/package.json index c7b689356..cc7b7c05c 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -38,6 +38,7 @@ "lodash": "^4.17.4", "material-ui": "^0.17.1", "moment": "2.21.0", + "numeral": "^2.0.6", "polished": "^1.9.2", "query-string": "^6.0.0", "react": "15.6.1", @@ -71,6 +72,7 @@ "@types/lodash": "4.14.104", "@types/material-ui": "0.18.0", "@types/node": "^8.0.53", + "@types/numeral": "^0.0.22", "@types/query-string": "^5.1.0", "@types/react": "16.3.13", "@types/react-copy-to-clipboard": "^4.2.0", diff --git a/packages/website/ts/components/wallet/wallet.tsx b/packages/website/ts/components/wallet/wallet.tsx index 1f1e3598a..668a7a537 100644 --- a/packages/website/ts/components/wallet/wallet.tsx +++ b/packages/website/ts/components/wallet/wallet.tsx @@ -1,6 +1,5 @@ import { constants as sharedConstants, EtherscanLinkSuffixes, utils as sharedUtils } from '@0xproject/react-shared'; import { BigNumber, errorUtils } from '@0xproject/utils'; -import { Web3Wrapper } from '@0xproject/web3-wrapper'; import * as _ from 'lodash'; import ActionAccountBalanceWallet from 'material-ui/svg-icons/action/account-balance-wallet'; @@ -83,7 +82,6 @@ const ICON_DIMENSION = 28; const BODY_ITEM_KEY = 'BODY'; const HEADER_ITEM_KEY = 'HEADER'; const ETHER_ITEM_KEY = 'ETHER'; -const USD_DECIMAL_PLACES = 2; const NO_ALLOWANCE_TOGGLE_SPACE_WIDTH = 56; const ACCOUNT_PATH = `${WebsitePaths.Portal}/account`; const PLACEHOLDER_COLOR = colors.grey300; @@ -411,19 +409,11 @@ export class Wallet extends React.Component { price?: BigNumber, isLoading: boolean = false, ): React.ReactNode { - let result; - if (!isLoading) { - if (_.isUndefined(price)) { - result = '--'; - } else { - const unitAmount = Web3Wrapper.toUnitAmount(amount, decimals); - const value = unitAmount.mul(price); - const formattedAmount = value.toFixed(USD_DECIMAL_PLACES); - result = `$${formattedAmount}`; - } - } else { - result = '$0.00'; - } + const result = !isLoading + ? _.isUndefined(price) + ? '--' + : utils.getUsdValueFormattedAmount(amount, decimals, price) + : '$0.00'; return ( diff --git a/packages/website/ts/utils/constants.ts b/packages/website/ts/utils/constants.ts index d3a2aa107..71c0092d2 100644 --- a/packages/website/ts/utils/constants.ts +++ b/packages/website/ts/utils/constants.ts @@ -6,7 +6,7 @@ export const constants = { ETHER_TOKEN_SYMBOL: 'WETH', ZRX_TOKEN_SYMBOL: 'ZRX', ETHER_SYMBOL: 'ETH', - TOKEN_AMOUNT_DISPLAY_PRECISION: 5, + TOKEN_AMOUNT_DISPLAY_PRECISION: 4, GENESIS_ORDER_BLOCK_BY_NETWORK_ID: { 1: 4145578, 42: 3117574, @@ -38,6 +38,7 @@ export const constants = { UNAVAILABLE_STATUS: 503, TAKER_FEE: new BigNumber(0), TESTNET_NAME: 'Kovan', + NUMERAL_USD_FORMAT: '$0,0.00', PROJECT_URL_ETHFINEX: 'https://www.ethfinex.com/', PROJECT_URL_AMADEUS: 'http://amadeusrelay.org', PROJECT_URL_DDEX: 'https://ddex.io', diff --git a/packages/website/ts/utils/utils.ts b/packages/website/ts/utils/utils.ts index 726e1815f..b27c6e48b 100644 --- a/packages/website/ts/utils/utils.ts +++ b/packages/website/ts/utils/utils.ts @@ -8,6 +8,8 @@ import * as bowser from 'bowser'; import deepEqual = require('deep-equal'); import * as _ from 'lodash'; import * as moment from 'moment'; +import * as numeral from 'numeral'; + import { AccountState, BlockchainCallErrs, @@ -380,10 +382,20 @@ export const utils = { }, getFormattedAmount(amount: BigNumber, decimals: number, symbol: string): string { const unitAmount = Web3Wrapper.toUnitAmount(amount, decimals); - const precision = Math.min(constants.TOKEN_AMOUNT_DISPLAY_PRECISION, unitAmount.decimalPlaces()); - const formattedAmount = unitAmount.toFixed(precision); + // if the unit amount is less than 1, show the natural number of decimal places with a max of 4 + // if the unit amount is greater than or equal to 1, show only 2 decimal places + const precision = unitAmount.lt(1) + ? Math.min(constants.TOKEN_AMOUNT_DISPLAY_PRECISION, unitAmount.decimalPlaces()) + : 2; + const format = `0,0.${_.repeat('0', precision)}`; + const formattedAmount = numeral(unitAmount).format(format); return `${formattedAmount} ${symbol}`; }, + getUsdValueFormattedAmount(amount: BigNumber, decimals: number, price: BigNumber): string { + const unitAmount = Web3Wrapper.toUnitAmount(amount, decimals); + const value = unitAmount.mul(price); + return numeral(value).format(constants.NUMERAL_USD_FORMAT); + }, openUrl(url: string): void { window.open(url, '_blank'); }, -- cgit v1.2.3 From 2eede4a09ecd17cade6623b4a770a62bee57a2e8 Mon Sep 17 00:00:00 2001 From: Brandon Millman Date: Mon, 2 Jul 2018 16:30:13 -0700 Subject: Update start onboarding copy and relayer grid empty color --- packages/website/public/images/setup_account_icon.svg | 3 +++ packages/website/ts/components/portal/portal.tsx | 12 ++++++------ .../ts/components/relayer_index/relayer_grid_tile.tsx | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) create mode 100644 packages/website/public/images/setup_account_icon.svg (limited to 'packages') diff --git a/packages/website/public/images/setup_account_icon.svg b/packages/website/public/images/setup_account_icon.svg new file mode 100644 index 000000000..eaa5b2fd6 --- /dev/null +++ b/packages/website/public/images/setup_account_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/website/ts/components/portal/portal.tsx b/packages/website/ts/components/portal/portal.tsx index 9c0cb866d..8c3b5cfd7 100644 --- a/packages/website/ts/components/portal/portal.tsx +++ b/packages/website/ts/components/portal/portal.tsx @@ -1,7 +1,6 @@ import { colors, constants as sharedConstants } from '@0xproject/react-shared'; import { BigNumber } from '@0xproject/utils'; import * as _ from 'lodash'; -import Help from 'material-ui/svg-icons/action/help'; import * as React from 'react'; import * as DocumentTitle from 'react-document-title'; import { Link, Route, RouteComponentProps, Switch } from 'react-router-dom'; @@ -24,6 +23,7 @@ import { TopBar, TopBarDisplayType } from 'ts/components/top_bar/top_bar'; import { TradeHistory } from 'ts/components/trade_history/trade_history'; import { Container } from 'ts/components/ui/container'; import { FlashMessage } from 'ts/components/ui/flash_message'; +import { Image } from 'ts/components/ui/image'; import { Text } from 'ts/components/ui/text'; import { Wallet } from 'ts/components/wallet/wallet'; import { GenerateOrderForm } from 'ts/containers/generate_order_form'; @@ -368,11 +368,11 @@ export class Portal extends React.Component { const shouldStartOnboarding = !isMobile || this.props.location.pathname === `${WebsitePaths.Portal}/account`; const startOnboarding = ( - - - - Learn how to set up your account - + + Set up your account to start trading + + + ); diff --git a/packages/website/ts/components/relayer_index/relayer_grid_tile.tsx b/packages/website/ts/components/relayer_index/relayer_grid_tile.tsx index b26bf512b..80ff8c7ff 100644 --- a/packages/website/ts/components/relayer_index/relayer_grid_tile.tsx +++ b/packages/website/ts/components/relayer_index/relayer_grid_tile.tsx @@ -55,7 +55,7 @@ const styles: Styles = { }; const FALLBACK_IMG_SRC = '/images/relayer_fallback.png'; -const FALLBACK_PRIMARY_COLOR = colors.grey200; +const FALLBACK_PRIMARY_COLOR = colors.grey300; const NO_CONTENT_MESSAGE = '--'; const RELAYER_ICON_HEIGHT = '110px'; -- cgit v1.2.3 From 04d11d6fac265d8e43de8c14cab78655bb90d035 Mon Sep 17 00:00:00 2001 From: Brandon Millman Date: Mon, 2 Jul 2018 13:38:02 -0700 Subject: Add human readable names for Toshi and Cipher --- packages/website/ts/blockchain.ts | 2 ++ packages/website/ts/types.ts | 2 ++ packages/website/ts/utils/constants.ts | 2 ++ packages/website/ts/utils/utils.ts | 5 +++++ 4 files changed, 11 insertions(+) (limited to 'packages') diff --git a/packages/website/ts/blockchain.ts b/packages/website/ts/blockchain.ts index d18c34c32..b59306974 100644 --- a/packages/website/ts/blockchain.ts +++ b/packages/website/ts/blockchain.ts @@ -73,6 +73,8 @@ const providerToName: { [provider: string]: string } = { [Providers.Metamask]: constants.PROVIDER_NAME_METAMASK, [Providers.Parity]: constants.PROVIDER_NAME_PARITY_SIGNER, [Providers.Mist]: constants.PROVIDER_NAME_MIST, + [Providers.Toshi]: constants.PROVIDER_NAME_TOSHI, + [Providers.Cipher]: constants.PROVIDER_NAME_CIPHER, }; export class Blockchain { diff --git a/packages/website/ts/types.ts b/packages/website/ts/types.ts index 498a0a5b8..2e4cf84d0 100644 --- a/packages/website/ts/types.ts +++ b/packages/website/ts/types.ts @@ -487,6 +487,8 @@ export enum Providers { Parity = 'PARITY', Metamask = 'METAMASK', Mist = 'MIST', + Toshi = 'TOSHI', + Cipher = 'CIPHER', } export interface InjectedProviderUpdate { diff --git a/packages/website/ts/utils/constants.ts b/packages/website/ts/utils/constants.ts index d3a2aa107..b0cb2fa08 100644 --- a/packages/website/ts/utils/constants.ts +++ b/packages/website/ts/utils/constants.ts @@ -29,6 +29,8 @@ export const constants = { PROVIDER_NAME_METAMASK: 'MetaMask', PROVIDER_NAME_PARITY_SIGNER: 'Parity Signer', PROVIDER_NAME_MIST: 'Mist', + PROVIDER_NAME_CIPHER: 'Cipher Browser', + PROVIDER_NAME_TOSHI: 'Toshi', PROVIDER_NAME_GENERIC: 'Injected Web3', PROVIDER_NAME_PUBLIC: '0x Public', ROLLBAR_ACCESS_TOKEN: 'a6619002b51c4464928201e6ea94de65', diff --git a/packages/website/ts/utils/utils.ts b/packages/website/ts/utils/utils.ts index 726e1815f..0ef3d6723 100644 --- a/packages/website/ts/utils/utils.ts +++ b/packages/website/ts/utils/utils.ts @@ -324,6 +324,7 @@ export const utils = { getProviderType(provider: Provider): Providers | string { const constructorName = provider.constructor.name; let parsedProviderName = constructorName; + // https://ethereum.stackexchange.com/questions/24266/elegant-way-to-detect-current-provider-int-web3-js switch (constructorName) { case 'EthereumProvider': parsedProviderName = Providers.Mist; @@ -337,6 +338,10 @@ export const utils = { parsedProviderName = Providers.Parity; } else if ((provider as any).isMetaMask) { parsedProviderName = Providers.Metamask; + } else if (!_.isUndefined(_.get(window, 'SOFA'))) { + parsedProviderName = Providers.Toshi; + } else if (!_.isUndefined(_.get(window, '__CIPHER__'))) { + parsedProviderName = Providers.Cipher; } return parsedProviderName; }, -- cgit v1.2.3 From 73d8a2adf748e06552a1a7a7a188433c4c41095b Mon Sep 17 00:00:00 2001 From: Brandon Millman Date: Mon, 2 Jul 2018 16:52:20 -0700 Subject: Always show the wrap ether row in between ETH and WETH --- packages/website/ts/components/wallet/wallet.tsx | 33 +++++++++++----------- .../ts/components/wallet/wrap_ether_item.tsx | 5 ++-- 2 files changed, 20 insertions(+), 18 deletions(-) (limited to 'packages') diff --git a/packages/website/ts/components/wallet/wallet.tsx b/packages/website/ts/components/wallet/wallet.tsx index 1f1e3598a..a75404637 100644 --- a/packages/website/ts/components/wallet/wallet.tsx +++ b/packages/website/ts/components/wallet/wallet.tsx @@ -320,8 +320,24 @@ export class Wallet extends React.Component { this.state.wrappedEtherDirection === accessoryItemConfig.wrappedEtherDirection && !_.isUndefined(this.props.userEtherBalanceInWei); const etherToken = this._getEthToken(); + const wrapEtherItem = shouldShowWrapEtherItem ? ( + this.props.refetchTokenStateAsync(etherToken.address)} + /> + ) : null; return (
+ {this.state.wrappedEtherDirection === Side.Receive && wrapEtherItem} {
} accessory={this._renderAccessoryItems(accessoryItemConfig)} - backgroundColor={shouldShowWrapEtherItem ? colors.walletFocusedItemBackground : undefined} /> - {shouldShowWrapEtherItem && ( - this.props.refetchTokenStateAsync(etherToken.address)} - /> - )} + {this.state.wrappedEtherDirection === Side.Deposit && wrapEtherItem}
); } diff --git a/packages/website/ts/components/wallet/wrap_ether_item.tsx b/packages/website/ts/components/wallet/wrap_ether_item.tsx index 851b35f90..2b4cf93fe 100644 --- a/packages/website/ts/components/wallet/wrap_ether_item.tsx +++ b/packages/website/ts/components/wallet/wrap_ether_item.tsx @@ -8,6 +8,7 @@ import * as React from 'react'; import { Blockchain } from 'ts/blockchain'; import { EthAmountInput } from 'ts/components/inputs/eth_amount_input'; import { TokenAmountInput } from 'ts/components/inputs/token_amount_input'; +import { Container } from 'ts/components/ui/container'; import { Dispatcher } from 'ts/redux/dispatcher'; import { colors } from 'ts/style/colors'; import { BlockchainCallErrs, Side, Token } from 'ts/types'; @@ -94,7 +95,7 @@ export class WrapEtherItem extends React.Component +
{this._renderIsEthConversionHappeningSpinner()}
{topLabelText}
@@ -142,7 +143,7 @@ export class WrapEtherItem extends React.Component -
+
); } private _onValueChange(_isValid: boolean, amount?: BigNumber): void { -- cgit v1.2.3 From fd545ec00fc0f4b0a64db8cdb3d5c217e45a6b6a Mon Sep 17 00:00:00 2001 From: Brandon Millman Date: Mon, 2 Jul 2018 17:11:54 -0700 Subject: Remove increase balance link from balance_bounded_input component --- .../dialogs/eth_weth_conversion_dialog.tsx | 2 -- .../website/ts/components/dialogs/send_dialog.tsx | 1 - .../ts/components/inputs/balance_bounded_input.tsx | 35 ++-------------------- .../ts/components/inputs/eth_amount_input.tsx | 4 --- .../ts/components/inputs/token_amount_input.tsx | 2 -- 5 files changed, 2 insertions(+), 42 deletions(-) (limited to 'packages') diff --git a/packages/website/ts/components/dialogs/eth_weth_conversion_dialog.tsx b/packages/website/ts/components/dialogs/eth_weth_conversion_dialog.tsx index 9ac78e80e..7b09cc92c 100644 --- a/packages/website/ts/components/dialogs/eth_weth_conversion_dialog.tsx +++ b/packages/website/ts/components/dialogs/eth_weth_conversion_dialog.tsx @@ -103,7 +103,6 @@ export class EthWethConversionDialog extends React.Component< shouldCheckAllowance={false} onChange={this._onValueChange.bind(this)} amount={this.state.value} - onVisitBalancesPageClick={this.props.onCancelled} /> ) : ( )}
diff --git a/packages/website/ts/components/dialogs/send_dialog.tsx b/packages/website/ts/components/dialogs/send_dialog.tsx index 421f18b4f..8a98fdf69 100644 --- a/packages/website/ts/components/dialogs/send_dialog.tsx +++ b/packages/website/ts/components/dialogs/send_dialog.tsx @@ -80,7 +80,6 @@ export class SendDialog extends React.Component
diff --git a/packages/website/ts/components/inputs/balance_bounded_input.tsx b/packages/website/ts/components/inputs/balance_bounded_input.tsx index 968609030..f23beb436 100644 --- a/packages/website/ts/components/inputs/balance_bounded_input.tsx +++ b/packages/website/ts/components/inputs/balance_bounded_input.tsx @@ -3,9 +3,8 @@ import { BigNumber } from '@0xproject/utils'; import * as _ from 'lodash'; import TextField from 'material-ui/TextField'; import * as React from 'react'; -import { Link } from 'react-router-dom'; import { RequiredLabel } from 'ts/components/ui/required_label'; -import { ValidatedBigNumberCallback, WebsitePaths } from 'ts/types'; +import { ValidatedBigNumberCallback } from 'ts/types'; import { utils } from 'ts/utils/utils'; interface BalanceBoundedInputProps { @@ -18,8 +17,6 @@ interface BalanceBoundedInputProps { shouldShowIncompleteErrs?: boolean; shouldCheckBalance: boolean; validate?: (amount: BigNumber) => React.ReactNode; - onVisitBalancesPageClick?: () => void; - shouldHideVisitBalancesLink?: boolean; isDisabled?: boolean; shouldShowErrs?: boolean; shouldShowUnderline?: boolean; @@ -35,7 +32,6 @@ interface BalanceBoundedInputState { export class BalanceBoundedInput extends React.Component { public static defaultProps: Partial = { shouldShowIncompleteErrs: false, - shouldHideVisitBalancesLink: false, isDisabled: false, shouldShowErrs: true, hintText: 'amount', @@ -124,38 +120,11 @@ export class BalanceBoundedInput extends React.ComponentInsufficient balance. {this._renderIncreaseBalanceLink()}; + return Insufficient balance.; } const errMsg = _.isUndefined(this.props.validate) ? undefined : this.props.validate(amount); return errMsg; } - private _renderIncreaseBalanceLink(): React.ReactNode { - if (this.props.shouldHideVisitBalancesLink) { - return null; - } - - const increaseBalanceText = 'Increase balance'; - const linkStyle = { - cursor: 'pointer', - color: colors.darkestGrey, - textDecoration: 'underline', - display: 'inline', - }; - if (_.isUndefined(this.props.onVisitBalancesPageClick)) { - return ( - - {increaseBalanceText} - - ); - } else { - return ( -
- {increaseBalanceText} -
- ); - } - } - private _setAmountState(amount: string, balance: BigNumber, callback: () => void = _.noop): void { const errorMsg = this._validate(amount, balance); this.props.onErrorMsgChange(errorMsg); diff --git a/packages/website/ts/components/inputs/eth_amount_input.tsx b/packages/website/ts/components/inputs/eth_amount_input.tsx index 1f0f27410..552d4277a 100644 --- a/packages/website/ts/components/inputs/eth_amount_input.tsx +++ b/packages/website/ts/components/inputs/eth_amount_input.tsx @@ -14,9 +14,7 @@ interface EthAmountInputProps { onChange: ValidatedBigNumberCallback; onErrorMsgChange?: (errorMsg: React.ReactNode) => void; shouldShowIncompleteErrs: boolean; - onVisitBalancesPageClick?: () => void; shouldCheckBalance: boolean; - shouldHideVisitBalancesLink?: boolean; shouldShowErrs?: boolean; shouldShowUnderline?: boolean; style?: React.CSSProperties; @@ -46,8 +44,6 @@ export class EthAmountInput extends React.Component void; - onVisitBalancesPageClick?: () => void; lastForceTokenStateRefetch: number; shouldShowErrs?: boolean; shouldShowUnderline?: boolean; @@ -88,7 +87,6 @@ export class TokenAmountInput extends React.Component Date: Mon, 2 Jul 2018 17:56:37 -0700 Subject: Use new lock svg --- packages/website/public/images/lock_icon.svg | 3 +++ packages/website/ts/components/top_bar/provider_display.tsx | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 packages/website/public/images/lock_icon.svg (limited to 'packages') diff --git a/packages/website/public/images/lock_icon.svg b/packages/website/public/images/lock_icon.svg new file mode 100644 index 000000000..83e8191a1 --- /dev/null +++ b/packages/website/public/images/lock_icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/website/ts/components/top_bar/provider_display.tsx b/packages/website/ts/components/top_bar/provider_display.tsx index 8743e4320..ae3be6436 100644 --- a/packages/website/ts/components/top_bar/provider_display.tsx +++ b/packages/website/ts/components/top_bar/provider_display.tsx @@ -3,7 +3,6 @@ import * as _ from 'lodash'; import CircularProgress from 'material-ui/CircularProgress'; import RaisedButton from 'material-ui/RaisedButton'; import ActionAccountBalanceWallet from 'material-ui/svg-icons/action/account-balance-wallet'; -import Lock from 'material-ui/svg-icons/action/lock'; import * as React from 'react'; import { Blockchain } from 'ts/blockchain'; @@ -12,6 +11,7 @@ import { AccountConnection } from 'ts/components/ui/account_connection'; import { Container } from 'ts/components/ui/container'; import { DropDown } from 'ts/components/ui/drop_down'; import { Identicon } from 'ts/components/ui/identicon'; +import { Image } from 'ts/components/ui/image'; import { Island } from 'ts/components/ui/island'; import { Text } from 'ts/components/ui/text'; import { Dispatcher } from 'ts/redux/dispatcher'; @@ -154,7 +154,7 @@ export class ProviderDisplay extends React.Component; case AccountState.Locked: - return ; + return ; case AccountState.Disconnected: return ; default: -- cgit v1.2.3