Implement tslint enum-naming to enforce PascalCase on enum members (#1474)
This commit is contained in:
		@@ -1457,7 +1457,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
 | 
				
			|||||||
            const orderInfoBeforeCancelling = await erc721MakerBalanceThresholdWrapper.getOrderInfoAsync(
 | 
					            const orderInfoBeforeCancelling = await erc721MakerBalanceThresholdWrapper.getOrderInfoAsync(
 | 
				
			||||||
                validSignedOrder,
 | 
					                validSignedOrder,
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
            expect(orderInfoBeforeCancelling.orderStatus).to.be.equal(OrderStatus.FILLABLE);
 | 
					            expect(orderInfoBeforeCancelling.orderStatus).to.be.equal(OrderStatus.Fillable);
 | 
				
			||||||
            // Cancel
 | 
					            // Cancel
 | 
				
			||||||
            const txReceipt = await erc721MakerBalanceThresholdWrapper.cancelOrderAsync(
 | 
					            const txReceipt = await erc721MakerBalanceThresholdWrapper.cancelOrderAsync(
 | 
				
			||||||
                validSignedOrder,
 | 
					                validSignedOrder,
 | 
				
			||||||
@@ -1470,7 +1470,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
 | 
				
			|||||||
            const orderInfoAfterCancelling = await erc721MakerBalanceThresholdWrapper.getOrderInfoAsync(
 | 
					            const orderInfoAfterCancelling = await erc721MakerBalanceThresholdWrapper.getOrderInfoAsync(
 | 
				
			||||||
                validSignedOrder,
 | 
					                validSignedOrder,
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
            expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.CANCELLED);
 | 
					            expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.Cancelled);
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        it('Should successfully cancel order if maker does not meet balance threshold', async () => {
 | 
					        it('Should successfully cancel order if maker does not meet balance threshold', async () => {
 | 
				
			||||||
            // Create order where maker does not meet balance threshold
 | 
					            // Create order where maker does not meet balance threshold
 | 
				
			||||||
@@ -1479,7 +1479,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
 | 
				
			|||||||
            const orderInfoBeforeCancelling = await erc721NonValidBalanceThresholdWrapper.getOrderInfoAsync(
 | 
					            const orderInfoBeforeCancelling = await erc721NonValidBalanceThresholdWrapper.getOrderInfoAsync(
 | 
				
			||||||
                signedOrderWithBadMakerAddress,
 | 
					                signedOrderWithBadMakerAddress,
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
            expect(orderInfoBeforeCancelling.orderStatus).to.be.equal(OrderStatus.FILLABLE);
 | 
					            expect(orderInfoBeforeCancelling.orderStatus).to.be.equal(OrderStatus.Fillable);
 | 
				
			||||||
            // Cancel
 | 
					            // Cancel
 | 
				
			||||||
            const txReceipt = await erc721NonValidBalanceThresholdWrapper.cancelOrderAsync(
 | 
					            const txReceipt = await erc721NonValidBalanceThresholdWrapper.cancelOrderAsync(
 | 
				
			||||||
                signedOrderWithBadMakerAddress,
 | 
					                signedOrderWithBadMakerAddress,
 | 
				
			||||||
@@ -1492,7 +1492,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
 | 
				
			|||||||
            const orderInfoAfterCancelling = await erc721MakerBalanceThresholdWrapper.getOrderInfoAsync(
 | 
					            const orderInfoAfterCancelling = await erc721MakerBalanceThresholdWrapper.getOrderInfoAsync(
 | 
				
			||||||
                signedOrderWithBadMakerAddress,
 | 
					                signedOrderWithBadMakerAddress,
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
            expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.CANCELLED);
 | 
					            expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.Cancelled);
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1512,7 +1512,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
 | 
				
			|||||||
                const orderInfoBeforeCancelling = await erc721MakerBalanceThresholdWrapper.getOrderInfoAsync(
 | 
					                const orderInfoBeforeCancelling = await erc721MakerBalanceThresholdWrapper.getOrderInfoAsync(
 | 
				
			||||||
                    signedOrder,
 | 
					                    signedOrder,
 | 
				
			||||||
                );
 | 
					                );
 | 
				
			||||||
                return expect(orderInfoBeforeCancelling.orderStatus).to.be.equal(OrderStatus.FILLABLE);
 | 
					                return expect(orderInfoBeforeCancelling.orderStatus).to.be.equal(OrderStatus.Fillable);
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
            // Cancel
 | 
					            // Cancel
 | 
				
			||||||
            const txReceipt = await erc721MakerBalanceThresholdWrapper.batchCancelOrdersAsync(
 | 
					            const txReceipt = await erc721MakerBalanceThresholdWrapper.batchCancelOrdersAsync(
 | 
				
			||||||
@@ -1527,7 +1527,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
 | 
				
			|||||||
                const orderInfoAfterCancelling = await erc721MakerBalanceThresholdWrapper.getOrderInfoAsync(
 | 
					                const orderInfoAfterCancelling = await erc721MakerBalanceThresholdWrapper.getOrderInfoAsync(
 | 
				
			||||||
                    signedOrder,
 | 
					                    signedOrder,
 | 
				
			||||||
                );
 | 
					                );
 | 
				
			||||||
                return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.CANCELLED);
 | 
					                return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.Cancelled);
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        it('Should successfully batch cancel order if maker does not meet balance threshold', async () => {
 | 
					        it('Should successfully batch cancel order if maker does not meet balance threshold', async () => {
 | 
				
			||||||
@@ -1542,7 +1542,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
 | 
				
			|||||||
                const orderInfoBeforeCancelling = await erc721NonValidBalanceThresholdWrapper.getOrderInfoAsync(
 | 
					                const orderInfoBeforeCancelling = await erc721NonValidBalanceThresholdWrapper.getOrderInfoAsync(
 | 
				
			||||||
                    signedOrder,
 | 
					                    signedOrder,
 | 
				
			||||||
                );
 | 
					                );
 | 
				
			||||||
                return expect(orderInfoBeforeCancelling.orderStatus).to.be.equal(OrderStatus.FILLABLE);
 | 
					                return expect(orderInfoBeforeCancelling.orderStatus).to.be.equal(OrderStatus.Fillable);
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
            // Cancel
 | 
					            // Cancel
 | 
				
			||||||
            const txReceipt = await erc721NonValidBalanceThresholdWrapper.batchCancelOrdersAsync(
 | 
					            const txReceipt = await erc721NonValidBalanceThresholdWrapper.batchCancelOrdersAsync(
 | 
				
			||||||
@@ -1557,7 +1557,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
 | 
				
			|||||||
                const orderInfoAfterCancelling = await erc721NonValidBalanceThresholdWrapper.getOrderInfoAsync(
 | 
					                const orderInfoAfterCancelling = await erc721NonValidBalanceThresholdWrapper.getOrderInfoAsync(
 | 
				
			||||||
                    signedOrder,
 | 
					                    signedOrder,
 | 
				
			||||||
                );
 | 
					                );
 | 
				
			||||||
                return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.CANCELLED);
 | 
					                return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.Cancelled);
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
@@ -1578,7 +1578,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
 | 
				
			|||||||
                const orderInfoBeforeCancelling = await erc721MakerBalanceThresholdWrapper.getOrderInfoAsync(
 | 
					                const orderInfoBeforeCancelling = await erc721MakerBalanceThresholdWrapper.getOrderInfoAsync(
 | 
				
			||||||
                    signedOrder,
 | 
					                    signedOrder,
 | 
				
			||||||
                );
 | 
					                );
 | 
				
			||||||
                return expect(orderInfoBeforeCancelling.orderStatus).to.be.equal(OrderStatus.FILLABLE);
 | 
					                return expect(orderInfoBeforeCancelling.orderStatus).to.be.equal(OrderStatus.Fillable);
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
            // Cancel
 | 
					            // Cancel
 | 
				
			||||||
            const cancelOrdersUpToThisSalt = new BigNumber(1);
 | 
					            const cancelOrdersUpToThisSalt = new BigNumber(1);
 | 
				
			||||||
@@ -1596,9 +1596,9 @@ describe(ContractName.BalanceThresholdFilter, () => {
 | 
				
			|||||||
                );
 | 
					                );
 | 
				
			||||||
                const saltAsBigNumber = new BigNumber(salt);
 | 
					                const saltAsBigNumber = new BigNumber(salt);
 | 
				
			||||||
                if (saltAsBigNumber.lessThanOrEqualTo(cancelOrdersUpToThisSalt)) {
 | 
					                if (saltAsBigNumber.lessThanOrEqualTo(cancelOrdersUpToThisSalt)) {
 | 
				
			||||||
                    return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.CANCELLED);
 | 
					                    return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.Cancelled);
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
                    return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.FILLABLE);
 | 
					                    return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.Fillable);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
@@ -1614,7 +1614,7 @@ describe(ContractName.BalanceThresholdFilter, () => {
 | 
				
			|||||||
                const orderInfoBeforeCancelling = await erc721NonValidBalanceThresholdWrapper.getOrderInfoAsync(
 | 
					                const orderInfoBeforeCancelling = await erc721NonValidBalanceThresholdWrapper.getOrderInfoAsync(
 | 
				
			||||||
                    signedOrder,
 | 
					                    signedOrder,
 | 
				
			||||||
                );
 | 
					                );
 | 
				
			||||||
                return expect(orderInfoBeforeCancelling.orderStatus).to.be.equal(OrderStatus.FILLABLE);
 | 
					                return expect(orderInfoBeforeCancelling.orderStatus).to.be.equal(OrderStatus.Fillable);
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
            // Cancel
 | 
					            // Cancel
 | 
				
			||||||
            const cancelOrdersUpToThisSalt = new BigNumber(1);
 | 
					            const cancelOrdersUpToThisSalt = new BigNumber(1);
 | 
				
			||||||
@@ -1632,9 +1632,9 @@ describe(ContractName.BalanceThresholdFilter, () => {
 | 
				
			|||||||
                );
 | 
					                );
 | 
				
			||||||
                const saltAsBigNumber = new BigNumber(salt);
 | 
					                const saltAsBigNumber = new BigNumber(salt);
 | 
				
			||||||
                if (saltAsBigNumber.lessThanOrEqualTo(cancelOrdersUpToThisSalt)) {
 | 
					                if (saltAsBigNumber.lessThanOrEqualTo(cancelOrdersUpToThisSalt)) {
 | 
				
			||||||
                    return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.CANCELLED);
 | 
					                    return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.Cancelled);
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
                    return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.FILLABLE);
 | 
					                    return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.Fillable);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -432,7 +432,7 @@ describe('OrderValidator', () => {
 | 
				
			|||||||
                takerAddress,
 | 
					                takerAddress,
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
					            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
				
			||||||
            expect(orderInfo.orderStatus).to.be.equal(OrderStatus.FILLABLE);
 | 
					            expect(orderInfo.orderStatus).to.be.equal(OrderStatus.Fillable);
 | 
				
			||||||
            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
					            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
				
			||||||
            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(constants.ZERO_AMOUNT);
 | 
					            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(constants.ZERO_AMOUNT);
 | 
				
			||||||
            expect(traderInfo.makerBalance).to.be.bignumber.equal(constants.ZERO_AMOUNT);
 | 
					            expect(traderInfo.makerBalance).to.be.bignumber.equal(constants.ZERO_AMOUNT);
 | 
				
			||||||
@@ -485,7 +485,7 @@ describe('OrderValidator', () => {
 | 
				
			|||||||
                takerAddress,
 | 
					                takerAddress,
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
					            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
				
			||||||
            expect(orderInfo.orderStatus).to.be.equal(OrderStatus.FILLABLE);
 | 
					            expect(orderInfo.orderStatus).to.be.equal(OrderStatus.Fillable);
 | 
				
			||||||
            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
					            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
				
			||||||
            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(constants.ZERO_AMOUNT);
 | 
					            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(constants.ZERO_AMOUNT);
 | 
				
			||||||
            expect(traderInfo.makerBalance).to.be.bignumber.equal(makerBalance);
 | 
					            expect(traderInfo.makerBalance).to.be.bignumber.equal(makerBalance);
 | 
				
			||||||
@@ -514,10 +514,10 @@ describe('OrderValidator', () => {
 | 
				
			|||||||
            ] = await orderValidator.getOrdersAndTradersInfo.callAsync(orders, takers);
 | 
					            ] = await orderValidator.getOrdersAndTradersInfo.callAsync(orders, takers);
 | 
				
			||||||
            const expectedOrderHash1 = orderHashUtils.getOrderHashHex(signedOrder);
 | 
					            const expectedOrderHash1 = orderHashUtils.getOrderHashHex(signedOrder);
 | 
				
			||||||
            const expectedOrderHash2 = orderHashUtils.getOrderHashHex(signedOrder2);
 | 
					            const expectedOrderHash2 = orderHashUtils.getOrderHashHex(signedOrder2);
 | 
				
			||||||
            expect(orderInfo1.orderStatus).to.be.equal(OrderStatus.FILLABLE);
 | 
					            expect(orderInfo1.orderStatus).to.be.equal(OrderStatus.Fillable);
 | 
				
			||||||
            expect(orderInfo1.orderHash).to.be.equal(expectedOrderHash1);
 | 
					            expect(orderInfo1.orderHash).to.be.equal(expectedOrderHash1);
 | 
				
			||||||
            expect(orderInfo1.orderTakerAssetFilledAmount).to.be.bignumber.equal(constants.ZERO_AMOUNT);
 | 
					            expect(orderInfo1.orderTakerAssetFilledAmount).to.be.bignumber.equal(constants.ZERO_AMOUNT);
 | 
				
			||||||
            expect(orderInfo2.orderStatus).to.be.equal(OrderStatus.FILLABLE);
 | 
					            expect(orderInfo2.orderStatus).to.be.equal(OrderStatus.Fillable);
 | 
				
			||||||
            expect(orderInfo2.orderHash).to.be.equal(expectedOrderHash2);
 | 
					            expect(orderInfo2.orderHash).to.be.equal(expectedOrderHash2);
 | 
				
			||||||
            expect(orderInfo2.orderTakerAssetFilledAmount).to.be.bignumber.equal(constants.ZERO_AMOUNT);
 | 
					            expect(orderInfo2.orderTakerAssetFilledAmount).to.be.bignumber.equal(constants.ZERO_AMOUNT);
 | 
				
			||||||
            expect(traderInfo1.makerBalance).to.be.bignumber.equal(constants.ZERO_AMOUNT);
 | 
					            expect(traderInfo1.makerBalance).to.be.bignumber.equal(constants.ZERO_AMOUNT);
 | 
				
			||||||
@@ -581,10 +581,10 @@ describe('OrderValidator', () => {
 | 
				
			|||||||
            ] = await orderValidator.getOrdersAndTradersInfo.callAsync(orders, takers);
 | 
					            ] = await orderValidator.getOrdersAndTradersInfo.callAsync(orders, takers);
 | 
				
			||||||
            const expectedOrderHash1 = orderHashUtils.getOrderHashHex(signedOrder);
 | 
					            const expectedOrderHash1 = orderHashUtils.getOrderHashHex(signedOrder);
 | 
				
			||||||
            const expectedOrderHash2 = orderHashUtils.getOrderHashHex(signedOrder2);
 | 
					            const expectedOrderHash2 = orderHashUtils.getOrderHashHex(signedOrder2);
 | 
				
			||||||
            expect(orderInfo1.orderStatus).to.be.equal(OrderStatus.FILLABLE);
 | 
					            expect(orderInfo1.orderStatus).to.be.equal(OrderStatus.Fillable);
 | 
				
			||||||
            expect(orderInfo1.orderHash).to.be.equal(expectedOrderHash1);
 | 
					            expect(orderInfo1.orderHash).to.be.equal(expectedOrderHash1);
 | 
				
			||||||
            expect(orderInfo1.orderTakerAssetFilledAmount).to.be.bignumber.equal(constants.ZERO_AMOUNT);
 | 
					            expect(orderInfo1.orderTakerAssetFilledAmount).to.be.bignumber.equal(constants.ZERO_AMOUNT);
 | 
				
			||||||
            expect(orderInfo2.orderStatus).to.be.equal(OrderStatus.FILLABLE);
 | 
					            expect(orderInfo2.orderStatus).to.be.equal(OrderStatus.Fillable);
 | 
				
			||||||
            expect(orderInfo2.orderHash).to.be.equal(expectedOrderHash2);
 | 
					            expect(orderInfo2.orderHash).to.be.equal(expectedOrderHash2);
 | 
				
			||||||
            expect(orderInfo2.orderTakerAssetFilledAmount).to.be.bignumber.equal(constants.ZERO_AMOUNT);
 | 
					            expect(orderInfo2.orderTakerAssetFilledAmount).to.be.bignumber.equal(constants.ZERO_AMOUNT);
 | 
				
			||||||
            expect(traderInfo1.makerBalance).to.be.bignumber.equal(makerBalance);
 | 
					            expect(traderInfo1.makerBalance).to.be.bignumber.equal(makerBalance);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1043,7 +1043,7 @@ describe('Exchange core', () => {
 | 
				
			|||||||
            const orderInfo = await exchangeWrapper.getOrderInfoAsync(signedOrder);
 | 
					            const orderInfo = await exchangeWrapper.getOrderInfoAsync(signedOrder);
 | 
				
			||||||
            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
					            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
				
			||||||
            const expectedTakerAssetFilledAmount = new BigNumber(0);
 | 
					            const expectedTakerAssetFilledAmount = new BigNumber(0);
 | 
				
			||||||
            const expectedOrderStatus = OrderStatus.FILLABLE;
 | 
					            const expectedOrderStatus = OrderStatus.Fillable;
 | 
				
			||||||
            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
					            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
				
			||||||
            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
					            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
				
			||||||
            expect(orderInfo.orderStatus).to.equal(expectedOrderStatus);
 | 
					            expect(orderInfo.orderStatus).to.equal(expectedOrderStatus);
 | 
				
			||||||
@@ -1053,7 +1053,7 @@ describe('Exchange core', () => {
 | 
				
			|||||||
            const orderInfo = await exchangeWrapper.getOrderInfoAsync(signedOrder);
 | 
					            const orderInfo = await exchangeWrapper.getOrderInfoAsync(signedOrder);
 | 
				
			||||||
            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
					            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
				
			||||||
            const expectedTakerAssetFilledAmount = signedOrder.takerAssetAmount;
 | 
					            const expectedTakerAssetFilledAmount = signedOrder.takerAssetAmount;
 | 
				
			||||||
            const expectedOrderStatus = OrderStatus.FULLY_FILLED;
 | 
					            const expectedOrderStatus = OrderStatus.FullyFilled;
 | 
				
			||||||
            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
					            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
				
			||||||
            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
					            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
				
			||||||
            expect(orderInfo.orderStatus).to.equal(expectedOrderStatus);
 | 
					            expect(orderInfo.orderStatus).to.equal(expectedOrderStatus);
 | 
				
			||||||
@@ -1064,7 +1064,7 @@ describe('Exchange core', () => {
 | 
				
			|||||||
            const orderInfo = await exchangeWrapper.getOrderInfoAsync(signedOrder);
 | 
					            const orderInfo = await exchangeWrapper.getOrderInfoAsync(signedOrder);
 | 
				
			||||||
            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
					            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
				
			||||||
            const expectedTakerAssetFilledAmount = takerAssetFillAmount;
 | 
					            const expectedTakerAssetFilledAmount = takerAssetFillAmount;
 | 
				
			||||||
            const expectedOrderStatus = OrderStatus.FILLABLE;
 | 
					            const expectedOrderStatus = OrderStatus.Fillable;
 | 
				
			||||||
            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
					            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
				
			||||||
            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
					            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
				
			||||||
            expect(orderInfo.orderStatus).to.equal(expectedOrderStatus);
 | 
					            expect(orderInfo.orderStatus).to.equal(expectedOrderStatus);
 | 
				
			||||||
@@ -1074,7 +1074,7 @@ describe('Exchange core', () => {
 | 
				
			|||||||
            const orderInfo = await exchangeWrapper.getOrderInfoAsync(signedOrder);
 | 
					            const orderInfo = await exchangeWrapper.getOrderInfoAsync(signedOrder);
 | 
				
			||||||
            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
					            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
				
			||||||
            const expectedTakerAssetFilledAmount = new BigNumber(0);
 | 
					            const expectedTakerAssetFilledAmount = new BigNumber(0);
 | 
				
			||||||
            const expectedOrderStatus = OrderStatus.CANCELLED;
 | 
					            const expectedOrderStatus = OrderStatus.Cancelled;
 | 
				
			||||||
            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
					            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
				
			||||||
            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
					            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
				
			||||||
            expect(orderInfo.orderStatus).to.equal(expectedOrderStatus);
 | 
					            expect(orderInfo.orderStatus).to.equal(expectedOrderStatus);
 | 
				
			||||||
@@ -1086,7 +1086,7 @@ describe('Exchange core', () => {
 | 
				
			|||||||
            const orderInfo = await exchangeWrapper.getOrderInfoAsync(signedOrder);
 | 
					            const orderInfo = await exchangeWrapper.getOrderInfoAsync(signedOrder);
 | 
				
			||||||
            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
					            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
				
			||||||
            const expectedTakerAssetFilledAmount = takerAssetFillAmount;
 | 
					            const expectedTakerAssetFilledAmount = takerAssetFillAmount;
 | 
				
			||||||
            const expectedOrderStatus = OrderStatus.CANCELLED;
 | 
					            const expectedOrderStatus = OrderStatus.Cancelled;
 | 
				
			||||||
            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
					            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
				
			||||||
            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
					            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
				
			||||||
            expect(orderInfo.orderStatus).to.equal(expectedOrderStatus);
 | 
					            expect(orderInfo.orderStatus).to.equal(expectedOrderStatus);
 | 
				
			||||||
@@ -1098,7 +1098,7 @@ describe('Exchange core', () => {
 | 
				
			|||||||
            const orderInfo = await exchangeWrapper.getOrderInfoAsync(signedOrder);
 | 
					            const orderInfo = await exchangeWrapper.getOrderInfoAsync(signedOrder);
 | 
				
			||||||
            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
					            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
				
			||||||
            const expectedTakerAssetFilledAmount = new BigNumber(0);
 | 
					            const expectedTakerAssetFilledAmount = new BigNumber(0);
 | 
				
			||||||
            const expectedOrderStatus = OrderStatus.EXPIRED;
 | 
					            const expectedOrderStatus = OrderStatus.Expired;
 | 
				
			||||||
            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
					            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
				
			||||||
            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
					            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
				
			||||||
            expect(orderInfo.orderStatus).to.equal(expectedOrderStatus);
 | 
					            expect(orderInfo.orderStatus).to.equal(expectedOrderStatus);
 | 
				
			||||||
@@ -1112,7 +1112,7 @@ describe('Exchange core', () => {
 | 
				
			|||||||
            const orderInfo = await exchangeWrapper.getOrderInfoAsync(signedOrder);
 | 
					            const orderInfo = await exchangeWrapper.getOrderInfoAsync(signedOrder);
 | 
				
			||||||
            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
					            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
				
			||||||
            const expectedTakerAssetFilledAmount = takerAssetFillAmount;
 | 
					            const expectedTakerAssetFilledAmount = takerAssetFillAmount;
 | 
				
			||||||
            const expectedOrderStatus = OrderStatus.EXPIRED;
 | 
					            const expectedOrderStatus = OrderStatus.Expired;
 | 
				
			||||||
            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
					            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
				
			||||||
            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
					            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
				
			||||||
            expect(orderInfo.orderStatus).to.equal(expectedOrderStatus);
 | 
					            expect(orderInfo.orderStatus).to.equal(expectedOrderStatus);
 | 
				
			||||||
@@ -1126,7 +1126,7 @@ describe('Exchange core', () => {
 | 
				
			|||||||
            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
					            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
				
			||||||
            const expectedTakerAssetFilledAmount = signedOrder.takerAssetAmount;
 | 
					            const expectedTakerAssetFilledAmount = signedOrder.takerAssetAmount;
 | 
				
			||||||
            // FULLY_FILLED takes precedence over EXPIRED
 | 
					            // FULLY_FILLED takes precedence over EXPIRED
 | 
				
			||||||
            const expectedOrderStatus = OrderStatus.FULLY_FILLED;
 | 
					            const expectedOrderStatus = OrderStatus.FullyFilled;
 | 
				
			||||||
            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
					            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
				
			||||||
            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
					            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
				
			||||||
            expect(orderInfo.orderStatus).to.equal(expectedOrderStatus);
 | 
					            expect(orderInfo.orderStatus).to.equal(expectedOrderStatus);
 | 
				
			||||||
@@ -1136,7 +1136,7 @@ describe('Exchange core', () => {
 | 
				
			|||||||
            const orderInfo = await exchangeWrapper.getOrderInfoAsync(signedOrder);
 | 
					            const orderInfo = await exchangeWrapper.getOrderInfoAsync(signedOrder);
 | 
				
			||||||
            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
					            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
				
			||||||
            const expectedTakerAssetFilledAmount = new BigNumber(0);
 | 
					            const expectedTakerAssetFilledAmount = new BigNumber(0);
 | 
				
			||||||
            const expectedOrderStatus = OrderStatus.INVALID_MAKER_ASSET_AMOUNT;
 | 
					            const expectedOrderStatus = OrderStatus.InvalidMakerAssetAmount;
 | 
				
			||||||
            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
					            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
				
			||||||
            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
					            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
				
			||||||
            expect(orderInfo.orderStatus).to.equal(expectedOrderStatus);
 | 
					            expect(orderInfo.orderStatus).to.equal(expectedOrderStatus);
 | 
				
			||||||
@@ -1146,7 +1146,7 @@ describe('Exchange core', () => {
 | 
				
			|||||||
            const orderInfo = await exchangeWrapper.getOrderInfoAsync(signedOrder);
 | 
					            const orderInfo = await exchangeWrapper.getOrderInfoAsync(signedOrder);
 | 
				
			||||||
            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
					            const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
				
			||||||
            const expectedTakerAssetFilledAmount = new BigNumber(0);
 | 
					            const expectedTakerAssetFilledAmount = new BigNumber(0);
 | 
				
			||||||
            const expectedOrderStatus = OrderStatus.INVALID_TAKER_ASSET_AMOUNT;
 | 
					            const expectedOrderStatus = OrderStatus.InvalidTakerAssetAmount;
 | 
				
			||||||
            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
					            expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
				
			||||||
            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
					            expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
				
			||||||
            expect(orderInfo.orderStatus).to.equal(expectedOrderStatus);
 | 
					            expect(orderInfo.orderStatus).to.equal(expectedOrderStatus);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1288,7 +1288,7 @@ describe('Exchange wrappers', () => {
 | 
				
			|||||||
                _.forEach(signedOrders, (signedOrder, index) => {
 | 
					                _.forEach(signedOrders, (signedOrder, index) => {
 | 
				
			||||||
                    const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
					                    const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
				
			||||||
                    const expectedTakerAssetFilledAmount = new BigNumber(0);
 | 
					                    const expectedTakerAssetFilledAmount = new BigNumber(0);
 | 
				
			||||||
                    const expectedOrderStatus = OrderStatus.FILLABLE;
 | 
					                    const expectedOrderStatus = OrderStatus.Fillable;
 | 
				
			||||||
                    const orderInfo = ordersInfo[index];
 | 
					                    const orderInfo = ordersInfo[index];
 | 
				
			||||||
                    expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
					                    expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
				
			||||||
                    expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
					                    expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
				
			||||||
@@ -1303,7 +1303,7 @@ describe('Exchange wrappers', () => {
 | 
				
			|||||||
                _.forEach(signedOrders, (signedOrder, index) => {
 | 
					                _.forEach(signedOrders, (signedOrder, index) => {
 | 
				
			||||||
                    const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
					                    const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
				
			||||||
                    const expectedTakerAssetFilledAmount = signedOrder.takerAssetAmount.div(2);
 | 
					                    const expectedTakerAssetFilledAmount = signedOrder.takerAssetAmount.div(2);
 | 
				
			||||||
                    const expectedOrderStatus = OrderStatus.FILLABLE;
 | 
					                    const expectedOrderStatus = OrderStatus.Fillable;
 | 
				
			||||||
                    const orderInfo = ordersInfo[index];
 | 
					                    const orderInfo = ordersInfo[index];
 | 
				
			||||||
                    expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
					                    expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
				
			||||||
                    expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
					                    expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
				
			||||||
@@ -1317,7 +1317,7 @@ describe('Exchange wrappers', () => {
 | 
				
			|||||||
                _.forEach(signedOrders, (signedOrder, index) => {
 | 
					                _.forEach(signedOrders, (signedOrder, index) => {
 | 
				
			||||||
                    const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
					                    const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
				
			||||||
                    const expectedTakerAssetFilledAmount = signedOrder.takerAssetAmount;
 | 
					                    const expectedTakerAssetFilledAmount = signedOrder.takerAssetAmount;
 | 
				
			||||||
                    const expectedOrderStatus = OrderStatus.FULLY_FILLED;
 | 
					                    const expectedOrderStatus = OrderStatus.FullyFilled;
 | 
				
			||||||
                    const orderInfo = ordersInfo[index];
 | 
					                    const orderInfo = ordersInfo[index];
 | 
				
			||||||
                    expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
					                    expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
				
			||||||
                    expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
					                    expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
				
			||||||
@@ -1331,7 +1331,7 @@ describe('Exchange wrappers', () => {
 | 
				
			|||||||
                _.forEach(signedOrders, (signedOrder, index) => {
 | 
					                _.forEach(signedOrders, (signedOrder, index) => {
 | 
				
			||||||
                    const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
					                    const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
				
			||||||
                    const expectedTakerAssetFilledAmount = new BigNumber(0);
 | 
					                    const expectedTakerAssetFilledAmount = new BigNumber(0);
 | 
				
			||||||
                    const expectedOrderStatus = OrderStatus.CANCELLED;
 | 
					                    const expectedOrderStatus = OrderStatus.Cancelled;
 | 
				
			||||||
                    const orderInfo = ordersInfo[index];
 | 
					                    const orderInfo = ordersInfo[index];
 | 
				
			||||||
                    expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
					                    expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
				
			||||||
                    expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
					                    expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
				
			||||||
@@ -1347,7 +1347,7 @@ describe('Exchange wrappers', () => {
 | 
				
			|||||||
                _.forEach(signedOrders, (signedOrder, index) => {
 | 
					                _.forEach(signedOrders, (signedOrder, index) => {
 | 
				
			||||||
                    const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
					                    const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
				
			||||||
                    const expectedTakerAssetFilledAmount = signedOrder.takerAssetAmount.div(2);
 | 
					                    const expectedTakerAssetFilledAmount = signedOrder.takerAssetAmount.div(2);
 | 
				
			||||||
                    const expectedOrderStatus = OrderStatus.CANCELLED;
 | 
					                    const expectedOrderStatus = OrderStatus.Cancelled;
 | 
				
			||||||
                    const orderInfo = ordersInfo[index];
 | 
					                    const orderInfo = ordersInfo[index];
 | 
				
			||||||
                    expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
					                    expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
				
			||||||
                    expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
					                    expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
				
			||||||
@@ -1363,7 +1363,7 @@ describe('Exchange wrappers', () => {
 | 
				
			|||||||
                _.forEach(signedOrders, (signedOrder, index) => {
 | 
					                _.forEach(signedOrders, (signedOrder, index) => {
 | 
				
			||||||
                    const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
					                    const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
				
			||||||
                    const expectedTakerAssetFilledAmount = new BigNumber(0);
 | 
					                    const expectedTakerAssetFilledAmount = new BigNumber(0);
 | 
				
			||||||
                    const expectedOrderStatus = OrderStatus.EXPIRED;
 | 
					                    const expectedOrderStatus = OrderStatus.Expired;
 | 
				
			||||||
                    const orderInfo = ordersInfo[index];
 | 
					                    const orderInfo = ordersInfo[index];
 | 
				
			||||||
                    expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
					                    expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
				
			||||||
                    expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
					                    expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
				
			||||||
@@ -1381,7 +1381,7 @@ describe('Exchange wrappers', () => {
 | 
				
			|||||||
                _.forEach(signedOrders, (signedOrder, index) => {
 | 
					                _.forEach(signedOrders, (signedOrder, index) => {
 | 
				
			||||||
                    const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
					                    const expectedOrderHash = orderHashUtils.getOrderHashHex(signedOrder);
 | 
				
			||||||
                    const expectedTakerAssetFilledAmount = signedOrder.takerAssetAmount.div(2);
 | 
					                    const expectedTakerAssetFilledAmount = signedOrder.takerAssetAmount.div(2);
 | 
				
			||||||
                    const expectedOrderStatus = OrderStatus.EXPIRED;
 | 
					                    const expectedOrderStatus = OrderStatus.Expired;
 | 
				
			||||||
                    const orderInfo = ordersInfo[index];
 | 
					                    const orderInfo = ordersInfo[index];
 | 
				
			||||||
                    expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
					                    expect(orderInfo.orderHash).to.be.equal(expectedOrderHash);
 | 
				
			||||||
                    expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
					                    expect(orderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(expectedTakerAssetFilledAmount);
 | 
				
			||||||
@@ -1408,7 +1408,7 @@ describe('Exchange wrappers', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                const expectedUnfilledOrderHash = orderHashUtils.getOrderHashHex(unfilledOrder);
 | 
					                const expectedUnfilledOrderHash = orderHashUtils.getOrderHashHex(unfilledOrder);
 | 
				
			||||||
                const expectedUnfilledTakerAssetFilledAmount = new BigNumber(0);
 | 
					                const expectedUnfilledTakerAssetFilledAmount = new BigNumber(0);
 | 
				
			||||||
                const expectedUnfilledOrderStatus = OrderStatus.FILLABLE;
 | 
					                const expectedUnfilledOrderStatus = OrderStatus.Fillable;
 | 
				
			||||||
                const unfilledOrderInfo = ordersInfo[0];
 | 
					                const unfilledOrderInfo = ordersInfo[0];
 | 
				
			||||||
                expect(unfilledOrderInfo.orderHash).to.be.equal(expectedUnfilledOrderHash);
 | 
					                expect(unfilledOrderInfo.orderHash).to.be.equal(expectedUnfilledOrderHash);
 | 
				
			||||||
                expect(unfilledOrderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(
 | 
					                expect(unfilledOrderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(
 | 
				
			||||||
@@ -1418,7 +1418,7 @@ describe('Exchange wrappers', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                const expectedPartialOrderHash = orderHashUtils.getOrderHashHex(partiallyFilledOrder);
 | 
					                const expectedPartialOrderHash = orderHashUtils.getOrderHashHex(partiallyFilledOrder);
 | 
				
			||||||
                const expectedPartialTakerAssetFilledAmount = partiallyFilledOrder.takerAssetAmount.div(2);
 | 
					                const expectedPartialTakerAssetFilledAmount = partiallyFilledOrder.takerAssetAmount.div(2);
 | 
				
			||||||
                const expectedPartialOrderStatus = OrderStatus.FILLABLE;
 | 
					                const expectedPartialOrderStatus = OrderStatus.Fillable;
 | 
				
			||||||
                const partialOrderInfo = ordersInfo[1];
 | 
					                const partialOrderInfo = ordersInfo[1];
 | 
				
			||||||
                expect(partialOrderInfo.orderHash).to.be.equal(expectedPartialOrderHash);
 | 
					                expect(partialOrderInfo.orderHash).to.be.equal(expectedPartialOrderHash);
 | 
				
			||||||
                expect(partialOrderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(
 | 
					                expect(partialOrderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(
 | 
				
			||||||
@@ -1428,7 +1428,7 @@ describe('Exchange wrappers', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                const expectedFilledOrderHash = orderHashUtils.getOrderHashHex(fullyFilledOrder);
 | 
					                const expectedFilledOrderHash = orderHashUtils.getOrderHashHex(fullyFilledOrder);
 | 
				
			||||||
                const expectedFilledTakerAssetFilledAmount = fullyFilledOrder.takerAssetAmount;
 | 
					                const expectedFilledTakerAssetFilledAmount = fullyFilledOrder.takerAssetAmount;
 | 
				
			||||||
                const expectedFilledOrderStatus = OrderStatus.FULLY_FILLED;
 | 
					                const expectedFilledOrderStatus = OrderStatus.FullyFilled;
 | 
				
			||||||
                const filledOrderInfo = ordersInfo[2];
 | 
					                const filledOrderInfo = ordersInfo[2];
 | 
				
			||||||
                expect(filledOrderInfo.orderHash).to.be.equal(expectedFilledOrderHash);
 | 
					                expect(filledOrderInfo.orderHash).to.be.equal(expectedFilledOrderHash);
 | 
				
			||||||
                expect(filledOrderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(
 | 
					                expect(filledOrderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(
 | 
				
			||||||
@@ -1438,7 +1438,7 @@ describe('Exchange wrappers', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                const expectedCancelledOrderHash = orderHashUtils.getOrderHashHex(cancelledOrder);
 | 
					                const expectedCancelledOrderHash = orderHashUtils.getOrderHashHex(cancelledOrder);
 | 
				
			||||||
                const expectedCancelledTakerAssetFilledAmount = new BigNumber(0);
 | 
					                const expectedCancelledTakerAssetFilledAmount = new BigNumber(0);
 | 
				
			||||||
                const expectedCancelledOrderStatus = OrderStatus.CANCELLED;
 | 
					                const expectedCancelledOrderStatus = OrderStatus.Cancelled;
 | 
				
			||||||
                const cancelledOrderInfo = ordersInfo[3];
 | 
					                const cancelledOrderInfo = ordersInfo[3];
 | 
				
			||||||
                expect(cancelledOrderInfo.orderHash).to.be.equal(expectedCancelledOrderHash);
 | 
					                expect(cancelledOrderInfo.orderHash).to.be.equal(expectedCancelledOrderHash);
 | 
				
			||||||
                expect(cancelledOrderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(
 | 
					                expect(cancelledOrderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(
 | 
				
			||||||
@@ -1448,7 +1448,7 @@ describe('Exchange wrappers', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                const expectedExpiredOrderHash = orderHashUtils.getOrderHashHex(expiredOrder);
 | 
					                const expectedExpiredOrderHash = orderHashUtils.getOrderHashHex(expiredOrder);
 | 
				
			||||||
                const expectedExpiredTakerAssetFilledAmount = new BigNumber(0);
 | 
					                const expectedExpiredTakerAssetFilledAmount = new BigNumber(0);
 | 
				
			||||||
                const expectedExpiredOrderStatus = OrderStatus.EXPIRED;
 | 
					                const expectedExpiredOrderStatus = OrderStatus.Expired;
 | 
				
			||||||
                const expiredOrderInfo = ordersInfo[4];
 | 
					                const expiredOrderInfo = ordersInfo[4];
 | 
				
			||||||
                expect(expiredOrderInfo.orderHash).to.be.equal(expectedExpiredOrderHash);
 | 
					                expect(expiredOrderInfo.orderHash).to.be.equal(expectedExpiredOrderHash);
 | 
				
			||||||
                expect(expiredOrderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(
 | 
					                expect(expiredOrderInfo.orderTakerAssetFilledAmount).to.be.bignumber.equal(
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -268,15 +268,15 @@ export class MatchOrderTester {
 | 
				
			|||||||
        const maxAmountBoughtByLeftMaker = signedOrderLeft.takerAssetAmount.minus(initialLeftOrderFilledAmount);
 | 
					        const maxAmountBoughtByLeftMaker = signedOrderLeft.takerAssetAmount.minus(initialLeftOrderFilledAmount);
 | 
				
			||||||
        const leftOrderInfo: OrderInfo = await this._exchangeWrapper.getOrderInfoAsync(signedOrderLeft);
 | 
					        const leftOrderInfo: OrderInfo = await this._exchangeWrapper.getOrderInfoAsync(signedOrderLeft);
 | 
				
			||||||
        const leftExpectedStatus = expectedTransferAmounts.amountBoughtByLeftMaker.equals(maxAmountBoughtByLeftMaker)
 | 
					        const leftExpectedStatus = expectedTransferAmounts.amountBoughtByLeftMaker.equals(maxAmountBoughtByLeftMaker)
 | 
				
			||||||
            ? OrderStatus.FULLY_FILLED
 | 
					            ? OrderStatus.FullyFilled
 | 
				
			||||||
            : OrderStatus.FILLABLE;
 | 
					            : OrderStatus.Fillable;
 | 
				
			||||||
        expect(leftOrderInfo.orderStatus, 'Checking exchange status for left order').to.be.equal(leftExpectedStatus);
 | 
					        expect(leftOrderInfo.orderStatus, 'Checking exchange status for left order').to.be.equal(leftExpectedStatus);
 | 
				
			||||||
        // Assert right order status
 | 
					        // Assert right order status
 | 
				
			||||||
        const maxAmountBoughtByRightMaker = signedOrderRight.takerAssetAmount.minus(initialRightOrderFilledAmount);
 | 
					        const maxAmountBoughtByRightMaker = signedOrderRight.takerAssetAmount.minus(initialRightOrderFilledAmount);
 | 
				
			||||||
        const rightOrderInfo: OrderInfo = await this._exchangeWrapper.getOrderInfoAsync(signedOrderRight);
 | 
					        const rightOrderInfo: OrderInfo = await this._exchangeWrapper.getOrderInfoAsync(signedOrderRight);
 | 
				
			||||||
        const rightExpectedStatus = expectedTransferAmounts.amountBoughtByRightMaker.equals(maxAmountBoughtByRightMaker)
 | 
					        const rightExpectedStatus = expectedTransferAmounts.amountBoughtByRightMaker.equals(maxAmountBoughtByRightMaker)
 | 
				
			||||||
            ? OrderStatus.FULLY_FILLED
 | 
					            ? OrderStatus.FullyFilled
 | 
				
			||||||
            : OrderStatus.FILLABLE;
 | 
					            : OrderStatus.Fillable;
 | 
				
			||||||
        expect(rightOrderInfo.orderStatus, 'Checking exchange status for right order').to.be.equal(rightExpectedStatus);
 | 
					        expect(rightOrderInfo.orderStatus, 'Checking exchange status for right order').to.be.equal(rightExpectedStatus);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    /// @dev Asserts account balances after matching orders.
 | 
					    /// @dev Asserts account balances after matching orders.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,13 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "version": "2.0.0",
 | 
				
			||||||
 | 
					        "changes": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "note": "Renamed OrderStatus enum members to PascalCase to conform with tslint enum-naming rule",
 | 
				
			||||||
 | 
					                "pr": 1474
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        "timestamp": 1547225310,
 | 
					        "timestamp": 1547225310,
 | 
				
			||||||
        "version": "1.0.4",
 | 
					        "version": "1.0.4",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -70,13 +70,13 @@ export interface Token {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export enum OrderStatus {
 | 
					export enum OrderStatus {
 | 
				
			||||||
    INVALID,
 | 
					    Invalid,
 | 
				
			||||||
    INVALID_MAKER_ASSET_AMOUNT,
 | 
					    InvalidMakerAssetAmount,
 | 
				
			||||||
    INVALID_TAKER_ASSET_AMOUNT,
 | 
					    InvalidTakerAssetAmount,
 | 
				
			||||||
    FILLABLE,
 | 
					    Fillable,
 | 
				
			||||||
    EXPIRED,
 | 
					    Expired,
 | 
				
			||||||
    FULLY_FILLED,
 | 
					    FullyFilled,
 | 
				
			||||||
    CANCELLED,
 | 
					    Cancelled,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export enum ContractName {
 | 
					export enum ContractName {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -105,7 +105,7 @@ function getValidOrdersWithRemainingFillableMakerAssetAmountsFromOnChain(
 | 
				
			|||||||
            // get corresponding on-chain state for the order
 | 
					            // get corresponding on-chain state for the order
 | 
				
			||||||
            const { orderInfo, traderInfo } = ordersAndTradersInfo[index];
 | 
					            const { orderInfo, traderInfo } = ordersAndTradersInfo[index];
 | 
				
			||||||
            // if the order IS NOT fillable, do not add anything to the accumulations and continue iterating
 | 
					            // if the order IS NOT fillable, do not add anything to the accumulations and continue iterating
 | 
				
			||||||
            if (orderInfo.orderStatus !== OrderStatus.FILLABLE) {
 | 
					            if (orderInfo.orderStatus !== OrderStatus.Fillable) {
 | 
				
			||||||
                return accOrders;
 | 
					                return accOrders;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            // if the order IS fillable, add the order and calculate the remaining fillable amount
 | 
					            // if the order IS fillable, add the order and calculate the remaining fillable amount
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,13 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "version": "5.0.0",
 | 
				
			||||||
 | 
					        "changes": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "note": "Renamed OrderStatus enum members to PascalCase to conform with tslint enum-naming rule",
 | 
				
			||||||
 | 
					                "pr": 1474
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        "timestamp": 1547225310,
 | 
					        "timestamp": 1547225310,
 | 
				
			||||||
        "version": "4.2.1",
 | 
					        "version": "4.2.1",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -177,13 +177,13 @@ export interface OrderInfo {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export enum OrderStatus {
 | 
					export enum OrderStatus {
 | 
				
			||||||
    INVALID = 0,
 | 
					    Invalid = 0,
 | 
				
			||||||
    INVALID_MAKER_ASSET_AMOUNT,
 | 
					    InvalidMakerAssetAmount,
 | 
				
			||||||
    INVALID_TAKER_ASSET_AMOUNT,
 | 
					    InvalidTakerAssetAmount,
 | 
				
			||||||
    FILLABLE,
 | 
					    Fillable,
 | 
				
			||||||
    EXPIRED,
 | 
					    Expired,
 | 
				
			||||||
    FULLY_FILLED,
 | 
					    FullyFilled,
 | 
				
			||||||
    CANCELLED,
 | 
					    Cancelled,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface TraderInfo {
 | 
					export interface TraderInfo {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -109,7 +109,7 @@ describe('ExchangeWrapper', () => {
 | 
				
			|||||||
                );
 | 
					                );
 | 
				
			||||||
                await web3Wrapper.awaitTransactionSuccessAsync(txHash, constants.AWAIT_TRANSACTION_MINED_MS);
 | 
					                await web3Wrapper.awaitTransactionSuccessAsync(txHash, constants.AWAIT_TRANSACTION_MINED_MS);
 | 
				
			||||||
                const orderInfo = await contractWrappers.exchange.getOrderInfoAsync(signedOrder);
 | 
					                const orderInfo = await contractWrappers.exchange.getOrderInfoAsync(signedOrder);
 | 
				
			||||||
                expect(orderInfo.orderStatus).to.be.equal(OrderStatus.FULLY_FILLED);
 | 
					                expect(orderInfo.orderStatus).to.be.equal(OrderStatus.FullyFilled);
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        describe('#fillOrKillOrderAsync', () => {
 | 
					        describe('#fillOrKillOrderAsync', () => {
 | 
				
			||||||
@@ -157,7 +157,7 @@ describe('ExchangeWrapper', () => {
 | 
				
			|||||||
                );
 | 
					                );
 | 
				
			||||||
                await web3Wrapper.awaitTransactionSuccessAsync(txHash, constants.AWAIT_TRANSACTION_MINED_MS);
 | 
					                await web3Wrapper.awaitTransactionSuccessAsync(txHash, constants.AWAIT_TRANSACTION_MINED_MS);
 | 
				
			||||||
                const orderInfo = await contractWrappers.exchange.getOrderInfoAsync(signedOrder);
 | 
					                const orderInfo = await contractWrappers.exchange.getOrderInfoAsync(signedOrder);
 | 
				
			||||||
                expect(orderInfo.orderStatus).to.be.equal(OrderStatus.FULLY_FILLED);
 | 
					                expect(orderInfo.orderStatus).to.be.equal(OrderStatus.FullyFilled);
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        describe('#marketSellOrdersAsync', () => {
 | 
					        describe('#marketSellOrdersAsync', () => {
 | 
				
			||||||
@@ -183,7 +183,7 @@ describe('ExchangeWrapper', () => {
 | 
				
			|||||||
                );
 | 
					                );
 | 
				
			||||||
                await web3Wrapper.awaitTransactionSuccessAsync(txHash, constants.AWAIT_TRANSACTION_MINED_MS);
 | 
					                await web3Wrapper.awaitTransactionSuccessAsync(txHash, constants.AWAIT_TRANSACTION_MINED_MS);
 | 
				
			||||||
                const orderInfo = await contractWrappers.exchange.getOrderInfoAsync(signedOrder);
 | 
					                const orderInfo = await contractWrappers.exchange.getOrderInfoAsync(signedOrder);
 | 
				
			||||||
                expect(orderInfo.orderStatus).to.be.equal(OrderStatus.FULLY_FILLED);
 | 
					                expect(orderInfo.orderStatus).to.be.equal(OrderStatus.FullyFilled);
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        describe('#batchFillOrdersNoThrowAsync', () => {
 | 
					        describe('#batchFillOrdersNoThrowAsync', () => {
 | 
				
			||||||
@@ -197,9 +197,9 @@ describe('ExchangeWrapper', () => {
 | 
				
			|||||||
                );
 | 
					                );
 | 
				
			||||||
                await web3Wrapper.awaitTransactionSuccessAsync(txHash, constants.AWAIT_TRANSACTION_MINED_MS);
 | 
					                await web3Wrapper.awaitTransactionSuccessAsync(txHash, constants.AWAIT_TRANSACTION_MINED_MS);
 | 
				
			||||||
                let orderInfo = await contractWrappers.exchange.getOrderInfoAsync(signedOrder);
 | 
					                let orderInfo = await contractWrappers.exchange.getOrderInfoAsync(signedOrder);
 | 
				
			||||||
                expect(orderInfo.orderStatus).to.be.equal(OrderStatus.FULLY_FILLED);
 | 
					                expect(orderInfo.orderStatus).to.be.equal(OrderStatus.FullyFilled);
 | 
				
			||||||
                orderInfo = await contractWrappers.exchange.getOrderInfoAsync(anotherSignedOrder);
 | 
					                orderInfo = await contractWrappers.exchange.getOrderInfoAsync(anotherSignedOrder);
 | 
				
			||||||
                expect(orderInfo.orderStatus).to.be.equal(OrderStatus.FULLY_FILLED);
 | 
					                expect(orderInfo.orderStatus).to.be.equal(OrderStatus.FullyFilled);
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        describe('#batchFillOrKillOrdersAsync', () => {
 | 
					        describe('#batchFillOrKillOrdersAsync', () => {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -97,8 +97,8 @@ describe('ForwarderWrapper', () => {
 | 
				
			|||||||
            );
 | 
					            );
 | 
				
			||||||
            await web3Wrapper.awaitTransactionSuccessAsync(txHash, constants.AWAIT_TRANSACTION_MINED_MS);
 | 
					            await web3Wrapper.awaitTransactionSuccessAsync(txHash, constants.AWAIT_TRANSACTION_MINED_MS);
 | 
				
			||||||
            const ordersInfo = await contractWrappers.exchange.getOrdersInfoAsync([signedOrder, anotherSignedOrder]);
 | 
					            const ordersInfo = await contractWrappers.exchange.getOrdersInfoAsync([signedOrder, anotherSignedOrder]);
 | 
				
			||||||
            expect(ordersInfo[0].orderStatus).to.be.equal(OrderStatus.FULLY_FILLED);
 | 
					            expect(ordersInfo[0].orderStatus).to.be.equal(OrderStatus.FullyFilled);
 | 
				
			||||||
            expect(ordersInfo[1].orderStatus).to.be.equal(OrderStatus.FULLY_FILLED);
 | 
					            expect(ordersInfo[1].orderStatus).to.be.equal(OrderStatus.FullyFilled);
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        it('should throw when invalid transaction and shouldValidate is true', async () => {
 | 
					        it('should throw when invalid transaction and shouldValidate is true', async () => {
 | 
				
			||||||
            const signedOrders = [signedOrder];
 | 
					            const signedOrders = [signedOrder];
 | 
				
			||||||
@@ -131,8 +131,8 @@ describe('ForwarderWrapper', () => {
 | 
				
			|||||||
            );
 | 
					            );
 | 
				
			||||||
            await web3Wrapper.awaitTransactionSuccessAsync(txHash, constants.AWAIT_TRANSACTION_MINED_MS);
 | 
					            await web3Wrapper.awaitTransactionSuccessAsync(txHash, constants.AWAIT_TRANSACTION_MINED_MS);
 | 
				
			||||||
            const ordersInfo = await contractWrappers.exchange.getOrdersInfoAsync([signedOrder, anotherSignedOrder]);
 | 
					            const ordersInfo = await contractWrappers.exchange.getOrdersInfoAsync([signedOrder, anotherSignedOrder]);
 | 
				
			||||||
            expect(ordersInfo[0].orderStatus).to.be.equal(OrderStatus.FULLY_FILLED);
 | 
					            expect(ordersInfo[0].orderStatus).to.be.equal(OrderStatus.FullyFilled);
 | 
				
			||||||
            expect(ordersInfo[1].orderStatus).to.be.equal(OrderStatus.FILLABLE);
 | 
					            expect(ordersInfo[1].orderStatus).to.be.equal(OrderStatus.Fillable);
 | 
				
			||||||
            expect(ordersInfo[1].orderTakerAssetFilledAmount).to.be.bignumber.equal(new BigNumber(4)); // only 95% of ETH is sold
 | 
					            expect(ordersInfo[1].orderTakerAssetFilledAmount).to.be.bignumber.equal(new BigNumber(4)); // only 95% of ETH is sold
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        it('should throw when invalid transaction and shouldValidate is true', async () => {
 | 
					        it('should throw when invalid transaction and shouldValidate is true', async () => {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -117,9 +117,9 @@ describe('OrderValidator', () => {
 | 
				
			|||||||
        it('should return correct on-chain order info for input orders', async () => {
 | 
					        it('should return correct on-chain order info for input orders', async () => {
 | 
				
			||||||
            const firstOrderInfo = ordersInfo[0];
 | 
					            const firstOrderInfo = ordersInfo[0];
 | 
				
			||||||
            const secondOrderInfo = ordersInfo[1];
 | 
					            const secondOrderInfo = ordersInfo[1];
 | 
				
			||||||
            expect(firstOrderInfo.orderStatus).to.be.equal(OrderStatus.FILLABLE);
 | 
					            expect(firstOrderInfo.orderStatus).to.be.equal(OrderStatus.Fillable);
 | 
				
			||||||
            expect(firstOrderInfo.orderTakerAssetFilledAmount).to.bignumber.equal(constants.ZERO_AMOUNT);
 | 
					            expect(firstOrderInfo.orderTakerAssetFilledAmount).to.bignumber.equal(constants.ZERO_AMOUNT);
 | 
				
			||||||
            expect(secondOrderInfo.orderStatus).to.be.equal(OrderStatus.FILLABLE);
 | 
					            expect(secondOrderInfo.orderStatus).to.be.equal(OrderStatus.Fillable);
 | 
				
			||||||
            expect(secondOrderInfo.orderTakerAssetFilledAmount).to.bignumber.equal(constants.ZERO_AMOUNT);
 | 
					            expect(secondOrderInfo.orderTakerAssetFilledAmount).to.bignumber.equal(constants.ZERO_AMOUNT);
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        it('should return correct on-chain trader info for input takers', async () => {
 | 
					        it('should return correct on-chain trader info for input takers', async () => {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,13 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "version": "2.0.0",
 | 
				
			||||||
 | 
					        "changes": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "note": "Renamed ActionTypes enum members to PascalCase to conform with tslint enum-naming rule",
 | 
				
			||||||
 | 
					                "pr": 1474
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        "timestamp": 1542821676,
 | 
					        "timestamp": 1542821676,
 | 
				
			||||||
        "version": "1.0.1",
 | 
					        "version": "1.0.1",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,57 +21,56 @@ function createAction<T extends string, P>(type: T, data?: P): PlainAction<T> |
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export enum ActionTypes {
 | 
					export enum ActionTypes {
 | 
				
			||||||
    SET_ACCOUNT_STATE_LOADING = 'SET_ACCOUNT_STATE_LOADING',
 | 
					    SetAccountStateLoading = 'SET_ACCOUNT_STATE_LOADING',
 | 
				
			||||||
    SET_ACCOUNT_STATE_LOCKED = 'SET_ACCOUNT_STATE_LOCKED',
 | 
					    SetAccountStateLocked = 'SET_ACCOUNT_STATE_LOCKED',
 | 
				
			||||||
    SET_ACCOUNT_STATE_READY = 'SET_ACCOUNT_STATE_READY',
 | 
					    SetAccountStateReady = 'SET_ACCOUNT_STATE_READY',
 | 
				
			||||||
    UPDATE_ACCOUNT_ETH_BALANCE = 'UPDATE_ACCOUNT_ETH_BALANCE',
 | 
					    UpdateAccountEthBalance = 'UPDATE_ACCOUNT_ETH_BALANCE',
 | 
				
			||||||
    UPDATE_ETH_USD_PRICE = 'UPDATE_ETH_USD_PRICE',
 | 
					    UpdateEthUsdPrice = 'UPDATE_ETH_USD_PRICE',
 | 
				
			||||||
    UPDATE_SELECTED_ASSET_UNIT_AMOUNT = 'UPDATE_SELECTED_ASSET_UNIT_AMOUNT',
 | 
					    UpdateSelectedAssetUnitAmount = 'UPDATE_SELECTED_ASSET_UNIT_AMOUNT',
 | 
				
			||||||
    SET_BUY_ORDER_STATE_NONE = 'SET_BUY_ORDER_STATE_NONE',
 | 
					    SetBuyOrderStateNone = 'SET_BUY_ORDER_STATE_NONE',
 | 
				
			||||||
    SET_BUY_ORDER_STATE_VALIDATING = 'SET_BUY_ORDER_STATE_VALIDATING',
 | 
					    SetBuyOrderStateValidating = 'SET_BUY_ORDER_STATE_VALIDATING',
 | 
				
			||||||
    SET_BUY_ORDER_STATE_PROCESSING = 'SET_BUY_ORDER_STATE_PROCESSING',
 | 
					    SetBuyOrderStateProcessing = 'SET_BUY_ORDER_STATE_PROCESSING',
 | 
				
			||||||
    SET_BUY_ORDER_STATE_FAILURE = 'SET_BUY_ORDER_STATE_FAILURE',
 | 
					    SetBuyOrderStateFailure = 'SET_BUY_ORDER_STATE_FAILURE',
 | 
				
			||||||
    SET_BUY_ORDER_STATE_SUCCESS = 'SET_BUY_ORDER_STATE_SUCCESS',
 | 
					    SetBuyOrderStateSuccess = 'SET_BUY_ORDER_STATE_SUCCESS',
 | 
				
			||||||
    UPDATE_LATEST_BUY_QUOTE = 'UPDATE_LATEST_BUY_QUOTE',
 | 
					    UpdateLatestBuyQuote = 'UPDATE_LATEST_BUY_QUOTE',
 | 
				
			||||||
    UPDATE_SELECTED_ASSET = 'UPDATE_SELECTED_ASSET',
 | 
					    UpdateSelectedAsset = 'UPDATE_SELECTED_ASSET',
 | 
				
			||||||
    SET_AVAILABLE_ASSETS = 'SET_AVAILABLE_ASSETS',
 | 
					    SetAvailableAssets = 'SET_AVAILABLE_ASSETS',
 | 
				
			||||||
    SET_QUOTE_REQUEST_STATE_PENDING = 'SET_QUOTE_REQUEST_STATE_PENDING',
 | 
					    SetQuoteRequestStatePending = 'SET_QUOTE_REQUEST_STATE_PENDING',
 | 
				
			||||||
    SET_QUOTE_REQUEST_STATE_FAILURE = 'SET_QUOTE_REQUEST_STATE_FAILURE',
 | 
					    SetQuoteRequestStateFailure = 'SET_QUOTE_REQUEST_STATE_FAILURE',
 | 
				
			||||||
    SET_ERROR_MESSAGE = 'SET_ERROR_MESSAGE',
 | 
					    SetErrorMessage = 'SET_ERROR_MESSAGE',
 | 
				
			||||||
    HIDE_ERROR = 'HIDE_ERROR',
 | 
					    HideError = 'HIDE_ERROR',
 | 
				
			||||||
    CLEAR_ERROR = 'CLEAR_ERROR',
 | 
					    ClearError = 'CLEAR_ERROR',
 | 
				
			||||||
    RESET_AMOUNT = 'RESET_AMOUNT',
 | 
					    ResetAmount = 'RESET_AMOUNT',
 | 
				
			||||||
    OPEN_STANDARD_SLIDING_PANEL = 'OPEN_STANDARD_SLIDING_PANEL',
 | 
					    OpenStandardSlidingPanel = 'OPEN_STANDARD_SLIDING_PANEL',
 | 
				
			||||||
    CLOSE_STANDARD_SLIDING_PANEL = 'CLOSE_STANDARD_SLIDING_PANEL',
 | 
					    CloseStandardSlidingPanel = 'CLOSE_STANDARD_SLIDING_PANEL',
 | 
				
			||||||
    UPDATE_BASE_CURRENCY = 'UPDATE_BASE_CURRENCY',
 | 
					    UpdateBaseCurrency = 'UPDATE_BASE_CURRENCY',
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const actions = {
 | 
					export const actions = {
 | 
				
			||||||
    setAccountStateLoading: () => createAction(ActionTypes.SET_ACCOUNT_STATE_LOADING),
 | 
					    setAccountStateLoading: () => createAction(ActionTypes.SetAccountStateLoading),
 | 
				
			||||||
    setAccountStateLocked: () => createAction(ActionTypes.SET_ACCOUNT_STATE_LOCKED),
 | 
					    setAccountStateLocked: () => createAction(ActionTypes.SetAccountStateLocked),
 | 
				
			||||||
    setAccountStateReady: (address: string) => createAction(ActionTypes.SET_ACCOUNT_STATE_READY, address),
 | 
					    setAccountStateReady: (address: string) => createAction(ActionTypes.SetAccountStateReady, address),
 | 
				
			||||||
    updateAccountEthBalance: (addressAndBalance: AddressAndEthBalanceInWei) =>
 | 
					    updateAccountEthBalance: (addressAndBalance: AddressAndEthBalanceInWei) =>
 | 
				
			||||||
        createAction(ActionTypes.UPDATE_ACCOUNT_ETH_BALANCE, addressAndBalance),
 | 
					        createAction(ActionTypes.UpdateAccountEthBalance, addressAndBalance),
 | 
				
			||||||
    updateEthUsdPrice: (price?: BigNumber) => createAction(ActionTypes.UPDATE_ETH_USD_PRICE, price),
 | 
					    updateEthUsdPrice: (price?: BigNumber) => createAction(ActionTypes.UpdateEthUsdPrice, price),
 | 
				
			||||||
    updateSelectedAssetAmount: (amount?: BigNumber) =>
 | 
					    updateSelectedAssetAmount: (amount?: BigNumber) => createAction(ActionTypes.UpdateSelectedAssetUnitAmount, amount),
 | 
				
			||||||
        createAction(ActionTypes.UPDATE_SELECTED_ASSET_UNIT_AMOUNT, amount),
 | 
					    setBuyOrderStateNone: () => createAction(ActionTypes.SetBuyOrderStateNone),
 | 
				
			||||||
    setBuyOrderStateNone: () => createAction(ActionTypes.SET_BUY_ORDER_STATE_NONE),
 | 
					    setBuyOrderStateValidating: () => createAction(ActionTypes.SetBuyOrderStateValidating),
 | 
				
			||||||
    setBuyOrderStateValidating: () => createAction(ActionTypes.SET_BUY_ORDER_STATE_VALIDATING),
 | 
					 | 
				
			||||||
    setBuyOrderStateProcessing: (txHash: string, startTimeUnix: number, expectedEndTimeUnix: number) =>
 | 
					    setBuyOrderStateProcessing: (txHash: string, startTimeUnix: number, expectedEndTimeUnix: number) =>
 | 
				
			||||||
        createAction(ActionTypes.SET_BUY_ORDER_STATE_PROCESSING, { txHash, startTimeUnix, expectedEndTimeUnix }),
 | 
					        createAction(ActionTypes.SetBuyOrderStateProcessing, { txHash, startTimeUnix, expectedEndTimeUnix }),
 | 
				
			||||||
    setBuyOrderStateFailure: (txHash: string) => createAction(ActionTypes.SET_BUY_ORDER_STATE_FAILURE, txHash),
 | 
					    setBuyOrderStateFailure: (txHash: string) => createAction(ActionTypes.SetBuyOrderStateFailure, txHash),
 | 
				
			||||||
    setBuyOrderStateSuccess: (txHash: string) => createAction(ActionTypes.SET_BUY_ORDER_STATE_SUCCESS, txHash),
 | 
					    setBuyOrderStateSuccess: (txHash: string) => createAction(ActionTypes.SetBuyOrderStateSuccess, txHash),
 | 
				
			||||||
    updateLatestBuyQuote: (buyQuote?: BuyQuote) => createAction(ActionTypes.UPDATE_LATEST_BUY_QUOTE, buyQuote),
 | 
					    updateLatestBuyQuote: (buyQuote?: BuyQuote) => createAction(ActionTypes.UpdateLatestBuyQuote, buyQuote),
 | 
				
			||||||
    updateSelectedAsset: (asset: Asset) => createAction(ActionTypes.UPDATE_SELECTED_ASSET, asset),
 | 
					    updateSelectedAsset: (asset: Asset) => createAction(ActionTypes.UpdateSelectedAsset, asset),
 | 
				
			||||||
    setAvailableAssets: (availableAssets: Asset[]) => createAction(ActionTypes.SET_AVAILABLE_ASSETS, availableAssets),
 | 
					    setAvailableAssets: (availableAssets: Asset[]) => createAction(ActionTypes.SetAvailableAssets, availableAssets),
 | 
				
			||||||
    setQuoteRequestStatePending: () => createAction(ActionTypes.SET_QUOTE_REQUEST_STATE_PENDING),
 | 
					    setQuoteRequestStatePending: () => createAction(ActionTypes.SetQuoteRequestStatePending),
 | 
				
			||||||
    setQuoteRequestStateFailure: () => createAction(ActionTypes.SET_QUOTE_REQUEST_STATE_FAILURE),
 | 
					    setQuoteRequestStateFailure: () => createAction(ActionTypes.SetQuoteRequestStateFailure),
 | 
				
			||||||
    setErrorMessage: (errorMessage: string) => createAction(ActionTypes.SET_ERROR_MESSAGE, errorMessage),
 | 
					    setErrorMessage: (errorMessage: string) => createAction(ActionTypes.SetErrorMessage, errorMessage),
 | 
				
			||||||
    hideError: () => createAction(ActionTypes.HIDE_ERROR),
 | 
					    hideError: () => createAction(ActionTypes.HideError),
 | 
				
			||||||
    clearError: () => createAction(ActionTypes.CLEAR_ERROR),
 | 
					    clearError: () => createAction(ActionTypes.ClearError),
 | 
				
			||||||
    resetAmount: () => createAction(ActionTypes.RESET_AMOUNT),
 | 
					    resetAmount: () => createAction(ActionTypes.ResetAmount),
 | 
				
			||||||
    openStandardSlidingPanel: (content: StandardSlidingPanelContent) =>
 | 
					    openStandardSlidingPanel: (content: StandardSlidingPanelContent) =>
 | 
				
			||||||
        createAction(ActionTypes.OPEN_STANDARD_SLIDING_PANEL, content),
 | 
					        createAction(ActionTypes.OpenStandardSlidingPanel, content),
 | 
				
			||||||
    closeStandardSlidingPanel: () => createAction(ActionTypes.CLOSE_STANDARD_SLIDING_PANEL),
 | 
					    closeStandardSlidingPanel: () => createAction(ActionTypes.CloseStandardSlidingPanel),
 | 
				
			||||||
    updateBaseCurrency: (baseCurrency: BaseCurrency) => createAction(ActionTypes.UPDATE_BASE_CURRENCY, baseCurrency),
 | 
					    updateBaseCurrency: (baseCurrency: BaseCurrency) => createAction(ActionTypes.UpdateBaseCurrency, baseCurrency),
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,7 +21,7 @@ export const analyticsMiddleware: Middleware = store => next => middlewareAction
 | 
				
			|||||||
    const curAccount = curState.providerState.account;
 | 
					    const curAccount = curState.providerState.account;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    switch (nextAction.type) {
 | 
					    switch (nextAction.type) {
 | 
				
			||||||
        case ActionTypes.SET_ACCOUNT_STATE_READY:
 | 
					        case ActionTypes.SetAccountStateReady:
 | 
				
			||||||
            if (curAccount.state === AccountState.Ready) {
 | 
					            if (curAccount.state === AccountState.Ready) {
 | 
				
			||||||
                const didJustTurnReady = prevAccount.state !== AccountState.Ready;
 | 
					                const didJustTurnReady = prevAccount.state !== AccountState.Ready;
 | 
				
			||||||
                const didJustUpdateAddress =
 | 
					                const didJustUpdateAddress =
 | 
				
			||||||
@@ -38,13 +38,13 @@ export const analyticsMiddleware: Middleware = store => next => middlewareAction
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        case ActionTypes.SET_ACCOUNT_STATE_LOCKED:
 | 
					        case ActionTypes.SetAccountStateLocked:
 | 
				
			||||||
            if (prevAccount.state !== AccountState.Locked && curAccount.state === AccountState.Locked) {
 | 
					            if (prevAccount.state !== AccountState.Locked && curAccount.state === AccountState.Locked) {
 | 
				
			||||||
                // if we are moving from account not locked to account locked, track `Account - Locked`
 | 
					                // if we are moving from account not locked to account locked, track `Account - Locked`
 | 
				
			||||||
                analytics.trackAccountLocked();
 | 
					                analytics.trackAccountLocked();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        case ActionTypes.UPDATE_ACCOUNT_ETH_BALANCE:
 | 
					        case ActionTypes.UpdateAccountEthBalance:
 | 
				
			||||||
            if (
 | 
					            if (
 | 
				
			||||||
                curAccount.state === AccountState.Ready &&
 | 
					                curAccount.state === AccountState.Ready &&
 | 
				
			||||||
                curAccount.ethBalanceInWei &&
 | 
					                curAccount.ethBalanceInWei &&
 | 
				
			||||||
@@ -58,7 +58,7 @@ export const analyticsMiddleware: Middleware = store => next => middlewareAction
 | 
				
			|||||||
                analytics.addEventProperties({ ethBalanceInUnitAmount });
 | 
					                analytics.addEventProperties({ ethBalanceInUnitAmount });
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        case ActionTypes.UPDATE_SELECTED_ASSET:
 | 
					        case ActionTypes.UpdateSelectedAsset:
 | 
				
			||||||
            const selectedAsset = curState.selectedAsset;
 | 
					            const selectedAsset = curState.selectedAsset;
 | 
				
			||||||
            if (selectedAsset) {
 | 
					            if (selectedAsset) {
 | 
				
			||||||
                const assetName = selectedAsset.metaData.name;
 | 
					                const assetName = selectedAsset.metaData.name;
 | 
				
			||||||
@@ -79,7 +79,7 @@ export const analyticsMiddleware: Middleware = store => next => middlewareAction
 | 
				
			|||||||
                analytics.addEventProperties(selectedAssetEventProperties);
 | 
					                analytics.addEventProperties(selectedAssetEventProperties);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        case ActionTypes.SET_AVAILABLE_ASSETS:
 | 
					        case ActionTypes.SetAvailableAssets:
 | 
				
			||||||
            const availableAssets = curState.availableAssets;
 | 
					            const availableAssets = curState.availableAssets;
 | 
				
			||||||
            if (availableAssets) {
 | 
					            if (availableAssets) {
 | 
				
			||||||
                analytics.addEventProperties({
 | 
					                analytics.addEventProperties({
 | 
				
			||||||
@@ -87,19 +87,19 @@ export const analyticsMiddleware: Middleware = store => next => middlewareAction
 | 
				
			|||||||
                });
 | 
					                });
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        case ActionTypes.OPEN_STANDARD_SLIDING_PANEL:
 | 
					        case ActionTypes.OpenStandardSlidingPanel:
 | 
				
			||||||
            const openSlidingContent = curState.standardSlidingPanelSettings.content;
 | 
					            const openSlidingContent = curState.standardSlidingPanelSettings.content;
 | 
				
			||||||
            if (openSlidingContent === StandardSlidingPanelContent.InstallWallet) {
 | 
					            if (openSlidingContent === StandardSlidingPanelContent.InstallWallet) {
 | 
				
			||||||
                analytics.trackInstallWalletModalOpened();
 | 
					                analytics.trackInstallWalletModalOpened();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        case ActionTypes.CLOSE_STANDARD_SLIDING_PANEL:
 | 
					        case ActionTypes.CloseStandardSlidingPanel:
 | 
				
			||||||
            const closeSlidingContent = curState.standardSlidingPanelSettings.content;
 | 
					            const closeSlidingContent = curState.standardSlidingPanelSettings.content;
 | 
				
			||||||
            if (closeSlidingContent === StandardSlidingPanelContent.InstallWallet) {
 | 
					            if (closeSlidingContent === StandardSlidingPanelContent.InstallWallet) {
 | 
				
			||||||
                analytics.trackInstallWalletModalClosed();
 | 
					                analytics.trackInstallWalletModalClosed();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        case ActionTypes.UPDATE_BASE_CURRENCY:
 | 
					        case ActionTypes.UpdateBaseCurrency:
 | 
				
			||||||
            analytics.trackBaseCurrencyChanged(curState.baseCurrency);
 | 
					            analytics.trackBaseCurrencyChanged(curState.baseCurrency);
 | 
				
			||||||
            analytics.addEventProperties({ baseCurrency: curState.baseCurrency });
 | 
					            analytics.addEventProperties({ baseCurrency: curState.baseCurrency });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -72,11 +72,11 @@ export const DEFAULT_STATE: DefaultState = {
 | 
				
			|||||||
export const createReducer = (initialState: State) => {
 | 
					export const createReducer = (initialState: State) => {
 | 
				
			||||||
    const reducer = (state: State = initialState, action: Action): State => {
 | 
					    const reducer = (state: State = initialState, action: Action): State => {
 | 
				
			||||||
        switch (action.type) {
 | 
					        switch (action.type) {
 | 
				
			||||||
            case ActionTypes.SET_ACCOUNT_STATE_LOADING:
 | 
					            case ActionTypes.SetAccountStateLoading:
 | 
				
			||||||
                return reduceStateWithAccount(state, LOADING_ACCOUNT);
 | 
					                return reduceStateWithAccount(state, LOADING_ACCOUNT);
 | 
				
			||||||
            case ActionTypes.SET_ACCOUNT_STATE_LOCKED:
 | 
					            case ActionTypes.SetAccountStateLocked:
 | 
				
			||||||
                return reduceStateWithAccount(state, LOCKED_ACCOUNT);
 | 
					                return reduceStateWithAccount(state, LOCKED_ACCOUNT);
 | 
				
			||||||
            case ActionTypes.SET_ACCOUNT_STATE_READY: {
 | 
					            case ActionTypes.SetAccountStateReady: {
 | 
				
			||||||
                const address = action.data;
 | 
					                const address = action.data;
 | 
				
			||||||
                let newAccount: AccountReady = {
 | 
					                let newAccount: AccountReady = {
 | 
				
			||||||
                    state: AccountState.Ready,
 | 
					                    state: AccountState.Ready,
 | 
				
			||||||
@@ -91,7 +91,7 @@ export const createReducer = (initialState: State) => {
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
                return reduceStateWithAccount(state, newAccount);
 | 
					                return reduceStateWithAccount(state, newAccount);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            case ActionTypes.UPDATE_ACCOUNT_ETH_BALANCE: {
 | 
					            case ActionTypes.UpdateAccountEthBalance: {
 | 
				
			||||||
                const { address, ethBalanceInWei } = action.data;
 | 
					                const { address, ethBalanceInWei } = action.data;
 | 
				
			||||||
                const currentAccount = state.providerState.account;
 | 
					                const currentAccount = state.providerState.account;
 | 
				
			||||||
                if (currentAccount.state !== AccountState.Ready || currentAccount.address !== address) {
 | 
					                if (currentAccount.state !== AccountState.Ready || currentAccount.address !== address) {
 | 
				
			||||||
@@ -104,17 +104,17 @@ export const createReducer = (initialState: State) => {
 | 
				
			|||||||
                    return reduceStateWithAccount(state, newAccount);
 | 
					                    return reduceStateWithAccount(state, newAccount);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            case ActionTypes.UPDATE_ETH_USD_PRICE:
 | 
					            case ActionTypes.UpdateEthUsdPrice:
 | 
				
			||||||
                return {
 | 
					                return {
 | 
				
			||||||
                    ...state,
 | 
					                    ...state,
 | 
				
			||||||
                    ethUsdPrice: action.data,
 | 
					                    ethUsdPrice: action.data,
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
            case ActionTypes.UPDATE_SELECTED_ASSET_UNIT_AMOUNT:
 | 
					            case ActionTypes.UpdateSelectedAssetUnitAmount:
 | 
				
			||||||
                return {
 | 
					                return {
 | 
				
			||||||
                    ...state,
 | 
					                    ...state,
 | 
				
			||||||
                    selectedAssetUnitAmount: action.data,
 | 
					                    selectedAssetUnitAmount: action.data,
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
            case ActionTypes.UPDATE_LATEST_BUY_QUOTE:
 | 
					            case ActionTypes.UpdateLatestBuyQuote:
 | 
				
			||||||
                const newBuyQuoteIfExists = action.data;
 | 
					                const newBuyQuoteIfExists = action.data;
 | 
				
			||||||
                const shouldUpdate =
 | 
					                const shouldUpdate =
 | 
				
			||||||
                    _.isUndefined(newBuyQuoteIfExists) || doesBuyQuoteMatchState(newBuyQuoteIfExists, state);
 | 
					                    _.isUndefined(newBuyQuoteIfExists) || doesBuyQuoteMatchState(newBuyQuoteIfExists, state);
 | 
				
			||||||
@@ -127,29 +127,29 @@ export const createReducer = (initialState: State) => {
 | 
				
			|||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
                    return state;
 | 
					                    return state;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            case ActionTypes.SET_QUOTE_REQUEST_STATE_PENDING:
 | 
					            case ActionTypes.SetQuoteRequestStatePending:
 | 
				
			||||||
                return {
 | 
					                return {
 | 
				
			||||||
                    ...state,
 | 
					                    ...state,
 | 
				
			||||||
                    latestBuyQuote: undefined,
 | 
					                    latestBuyQuote: undefined,
 | 
				
			||||||
                    quoteRequestState: AsyncProcessState.Pending,
 | 
					                    quoteRequestState: AsyncProcessState.Pending,
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
            case ActionTypes.SET_QUOTE_REQUEST_STATE_FAILURE:
 | 
					            case ActionTypes.SetQuoteRequestStateFailure:
 | 
				
			||||||
                return {
 | 
					                return {
 | 
				
			||||||
                    ...state,
 | 
					                    ...state,
 | 
				
			||||||
                    latestBuyQuote: undefined,
 | 
					                    latestBuyQuote: undefined,
 | 
				
			||||||
                    quoteRequestState: AsyncProcessState.Failure,
 | 
					                    quoteRequestState: AsyncProcessState.Failure,
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
            case ActionTypes.SET_BUY_ORDER_STATE_NONE:
 | 
					            case ActionTypes.SetBuyOrderStateNone:
 | 
				
			||||||
                return {
 | 
					                return {
 | 
				
			||||||
                    ...state,
 | 
					                    ...state,
 | 
				
			||||||
                    buyOrderState: { processState: OrderProcessState.None },
 | 
					                    buyOrderState: { processState: OrderProcessState.None },
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
            case ActionTypes.SET_BUY_ORDER_STATE_VALIDATING:
 | 
					            case ActionTypes.SetBuyOrderStateValidating:
 | 
				
			||||||
                return {
 | 
					                return {
 | 
				
			||||||
                    ...state,
 | 
					                    ...state,
 | 
				
			||||||
                    buyOrderState: { processState: OrderProcessState.Validating },
 | 
					                    buyOrderState: { processState: OrderProcessState.Validating },
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
            case ActionTypes.SET_BUY_ORDER_STATE_PROCESSING:
 | 
					            case ActionTypes.SetBuyOrderStateProcessing:
 | 
				
			||||||
                const processingData = action.data;
 | 
					                const processingData = action.data;
 | 
				
			||||||
                const { startTimeUnix, expectedEndTimeUnix } = processingData;
 | 
					                const { startTimeUnix, expectedEndTimeUnix } = processingData;
 | 
				
			||||||
                return {
 | 
					                return {
 | 
				
			||||||
@@ -163,7 +163,7 @@ export const createReducer = (initialState: State) => {
 | 
				
			|||||||
                        },
 | 
					                        },
 | 
				
			||||||
                    },
 | 
					                    },
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
            case ActionTypes.SET_BUY_ORDER_STATE_FAILURE:
 | 
					            case ActionTypes.SetBuyOrderStateFailure:
 | 
				
			||||||
                const failureTxHash = action.data;
 | 
					                const failureTxHash = action.data;
 | 
				
			||||||
                if ('txHash' in state.buyOrderState) {
 | 
					                if ('txHash' in state.buyOrderState) {
 | 
				
			||||||
                    if (state.buyOrderState.txHash === failureTxHash) {
 | 
					                    if (state.buyOrderState.txHash === failureTxHash) {
 | 
				
			||||||
@@ -179,7 +179,7 @@ export const createReducer = (initialState: State) => {
 | 
				
			|||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                return state;
 | 
					                return state;
 | 
				
			||||||
            case ActionTypes.SET_BUY_ORDER_STATE_SUCCESS:
 | 
					            case ActionTypes.SetBuyOrderStateSuccess:
 | 
				
			||||||
                const successTxHash = action.data;
 | 
					                const successTxHash = action.data;
 | 
				
			||||||
                if ('txHash' in state.buyOrderState) {
 | 
					                if ('txHash' in state.buyOrderState) {
 | 
				
			||||||
                    if (state.buyOrderState.txHash === successTxHash) {
 | 
					                    if (state.buyOrderState.txHash === successTxHash) {
 | 
				
			||||||
@@ -195,29 +195,29 @@ export const createReducer = (initialState: State) => {
 | 
				
			|||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                return state;
 | 
					                return state;
 | 
				
			||||||
            case ActionTypes.SET_ERROR_MESSAGE:
 | 
					            case ActionTypes.SetErrorMessage:
 | 
				
			||||||
                return {
 | 
					                return {
 | 
				
			||||||
                    ...state,
 | 
					                    ...state,
 | 
				
			||||||
                    latestErrorMessage: action.data,
 | 
					                    latestErrorMessage: action.data,
 | 
				
			||||||
                    latestErrorDisplayStatus: DisplayStatus.Present,
 | 
					                    latestErrorDisplayStatus: DisplayStatus.Present,
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
            case ActionTypes.HIDE_ERROR:
 | 
					            case ActionTypes.HideError:
 | 
				
			||||||
                return {
 | 
					                return {
 | 
				
			||||||
                    ...state,
 | 
					                    ...state,
 | 
				
			||||||
                    latestErrorDisplayStatus: DisplayStatus.Hidden,
 | 
					                    latestErrorDisplayStatus: DisplayStatus.Hidden,
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
            case ActionTypes.CLEAR_ERROR:
 | 
					            case ActionTypes.ClearError:
 | 
				
			||||||
                return {
 | 
					                return {
 | 
				
			||||||
                    ...state,
 | 
					                    ...state,
 | 
				
			||||||
                    latestErrorMessage: undefined,
 | 
					                    latestErrorMessage: undefined,
 | 
				
			||||||
                    latestErrorDisplayStatus: DisplayStatus.Hidden,
 | 
					                    latestErrorDisplayStatus: DisplayStatus.Hidden,
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
            case ActionTypes.UPDATE_SELECTED_ASSET:
 | 
					            case ActionTypes.UpdateSelectedAsset:
 | 
				
			||||||
                return {
 | 
					                return {
 | 
				
			||||||
                    ...state,
 | 
					                    ...state,
 | 
				
			||||||
                    selectedAsset: action.data,
 | 
					                    selectedAsset: action.data,
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
            case ActionTypes.RESET_AMOUNT:
 | 
					            case ActionTypes.ResetAmount:
 | 
				
			||||||
                return {
 | 
					                return {
 | 
				
			||||||
                    ...state,
 | 
					                    ...state,
 | 
				
			||||||
                    latestBuyQuote: undefined,
 | 
					                    latestBuyQuote: undefined,
 | 
				
			||||||
@@ -225,12 +225,12 @@ export const createReducer = (initialState: State) => {
 | 
				
			|||||||
                    buyOrderState: { processState: OrderProcessState.None },
 | 
					                    buyOrderState: { processState: OrderProcessState.None },
 | 
				
			||||||
                    selectedAssetUnitAmount: undefined,
 | 
					                    selectedAssetUnitAmount: undefined,
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
            case ActionTypes.SET_AVAILABLE_ASSETS:
 | 
					            case ActionTypes.SetAvailableAssets:
 | 
				
			||||||
                return {
 | 
					                return {
 | 
				
			||||||
                    ...state,
 | 
					                    ...state,
 | 
				
			||||||
                    availableAssets: action.data,
 | 
					                    availableAssets: action.data,
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
            case ActionTypes.OPEN_STANDARD_SLIDING_PANEL:
 | 
					            case ActionTypes.OpenStandardSlidingPanel:
 | 
				
			||||||
                return {
 | 
					                return {
 | 
				
			||||||
                    ...state,
 | 
					                    ...state,
 | 
				
			||||||
                    standardSlidingPanelSettings: {
 | 
					                    standardSlidingPanelSettings: {
 | 
				
			||||||
@@ -238,7 +238,7 @@ export const createReducer = (initialState: State) => {
 | 
				
			|||||||
                        animationState: 'slidIn',
 | 
					                        animationState: 'slidIn',
 | 
				
			||||||
                    },
 | 
					                    },
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
            case ActionTypes.CLOSE_STANDARD_SLIDING_PANEL:
 | 
					            case ActionTypes.CloseStandardSlidingPanel:
 | 
				
			||||||
                return {
 | 
					                return {
 | 
				
			||||||
                    ...state,
 | 
					                    ...state,
 | 
				
			||||||
                    standardSlidingPanelSettings: {
 | 
					                    standardSlidingPanelSettings: {
 | 
				
			||||||
@@ -246,7 +246,7 @@ export const createReducer = (initialState: State) => {
 | 
				
			|||||||
                        animationState: 'slidOut',
 | 
					                        animationState: 'slidOut',
 | 
				
			||||||
                    },
 | 
					                    },
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
            case ActionTypes.UPDATE_BASE_CURRENCY:
 | 
					            case ActionTypes.UpdateBaseCurrency:
 | 
				
			||||||
                return {
 | 
					                return {
 | 
				
			||||||
                    ...state,
 | 
					                    ...state,
 | 
				
			||||||
                    baseCurrency: action.data,
 | 
					                    baseCurrency: action.data,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,7 +11,7 @@ const {
 | 
				
			|||||||
} = styledComponents;
 | 
					} = styledComponents;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export type Theme = { [key in ColorOption]: string };
 | 
					export type Theme = { [key in ColorOption]: string };
 | 
				
			||||||
 | 
					// tslint:disable:enum-naming
 | 
				
			||||||
export enum ColorOption {
 | 
					export enum ColorOption {
 | 
				
			||||||
    primaryColor = 'primaryColor',
 | 
					    primaryColor = 'primaryColor',
 | 
				
			||||||
    black = 'black',
 | 
					    black = 'black',
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,8 +27,8 @@ export enum QuoteFetchOrigin {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export enum BaseCurrency {
 | 
					export enum BaseCurrency {
 | 
				
			||||||
    USD = 'USD',
 | 
					    USD = 'USD', // tslint:disable-line:enum-naming
 | 
				
			||||||
    ETH = 'ETH',
 | 
					    ETH = 'ETH', // tslint:disable-line:enum-naming
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface SimulatedProgress {
 | 
					export interface SimulatedProgress {
 | 
				
			||||||
@@ -95,7 +95,7 @@ export enum Network {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export enum ZeroExInstantError {
 | 
					export enum ZeroExInstantError {
 | 
				
			||||||
    AssetMetaDataNotAvailable = 'ASSET_META_DATA_NOT_AVAILABLE',
 | 
					    AssetMetaDataNotAvailable = 'ASSET_META_DATA_NOT_AVAILABLE',
 | 
				
			||||||
    InsufficientETH = 'INSUFFICIENT_ETH',
 | 
					    InsufficientETH = 'INSUFFICIENT_ETH', // tslint:disable-line:enum-naming
 | 
				
			||||||
    CouldNotSubmitTransaction = 'COULD_NOT_SUBMIT_TRANSACTION',
 | 
					    CouldNotSubmitTransaction = 'COULD_NOT_SUBMIT_TRANSACTION',
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -168,7 +168,7 @@ export enum WalletSuggestion {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export enum OperatingSystem {
 | 
					export enum OperatingSystem {
 | 
				
			||||||
    Android = 'ANDROID',
 | 
					    Android = 'ANDROID',
 | 
				
			||||||
    iOS = 'IOS',
 | 
					    iOS = 'IOS', // tslint:disable-line:enum-naming
 | 
				
			||||||
    Mac = 'MAC',
 | 
					    Mac = 'MAC',
 | 
				
			||||||
    Windows = 'WINDOWS',
 | 
					    Windows = 'WINDOWS',
 | 
				
			||||||
    WindowsPhone = 'WINDOWS_PHONE',
 | 
					    WindowsPhone = 'WINDOWS_PHONE',
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -31,38 +31,38 @@ export const evaluateIfEnabled = (fnCall: () => void) => {
 | 
				
			|||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
enum EventNames {
 | 
					enum EventNames {
 | 
				
			||||||
    INSTANT_OPENED = 'Instant - Opened',
 | 
					    InstantOpened = 'Instant - Opened',
 | 
				
			||||||
    INSTANT_CLOSED = 'Instant - Closed',
 | 
					    InstantClosed = 'Instant - Closed',
 | 
				
			||||||
    ACCOUNT_LOCKED = 'Account - Locked',
 | 
					    AccountLocked = 'Account - Locked',
 | 
				
			||||||
    ACCOUNT_READY = 'Account - Ready',
 | 
					    AccountReady = 'Account - Ready',
 | 
				
			||||||
    ACCOUNT_UNLOCK_REQUESTED = 'Account - Unlock Requested',
 | 
					    AccountUnlockRequested = 'Account - Unlock Requested',
 | 
				
			||||||
    ACCOUNT_UNLOCK_DENIED = 'Account - Unlock Denied',
 | 
					    AccountUnlockDenied = 'Account - Unlock Denied',
 | 
				
			||||||
    ACCOUNT_ADDRESS_CHANGED = 'Account - Address Changed',
 | 
					    AccountAddressChanged = 'Account - Address Changed',
 | 
				
			||||||
    BASE_CURRENCY_CHANGED = 'Base Currency - Changed',
 | 
					    BaseCurrencyChanged = 'Base Currency - Changed',
 | 
				
			||||||
    PAYMENT_METHOD_DROPDOWN_OPENED = 'Payment Method - Dropdown Opened',
 | 
					    PaymentMethodDropdownOpened = 'Payment Method - Dropdown Opened',
 | 
				
			||||||
    PAYMENT_METHOD_OPENED_ETHERSCAN = 'Payment Method - Opened Etherscan',
 | 
					    PaymentMethodOpenedEtherscan = 'Payment Method - Opened Etherscan',
 | 
				
			||||||
    PAYMENT_METHOD_COPIED_ADDRESS = 'Payment Method - Copied Address',
 | 
					    PaymentMethodCopiedAddress = 'Payment Method - Copied Address',
 | 
				
			||||||
    BUY_NOT_ENOUGH_ETH = 'Buy - Not Enough Eth',
 | 
					    BuyNotEnoughEth = 'Buy - Not Enough Eth',
 | 
				
			||||||
    BUY_STARTED = 'Buy - Started',
 | 
					    BuyStarted = 'Buy - Started',
 | 
				
			||||||
    BUY_SIGNATURE_DENIED = 'Buy - Signature Denied',
 | 
					    BuySignatureDenied = 'Buy - Signature Denied',
 | 
				
			||||||
    BUY_SIMULATION_FAILED = 'Buy - Simulation Failed',
 | 
					    BuySimulationFailed = 'Buy - Simulation Failed',
 | 
				
			||||||
    BUY_UNKNOWN_ERROR = 'Buy - Unknown Error',
 | 
					    BuyUnknownError = 'Buy - Unknown Error',
 | 
				
			||||||
    BUY_TX_SUBMITTED = 'Buy - Tx Submitted',
 | 
					    BuyTxSubmitted = 'Buy - Tx Submitted',
 | 
				
			||||||
    BUY_TX_SUCCEEDED = 'Buy - Tx Succeeded',
 | 
					    BuyTxSucceeded = 'Buy - Tx Succeeded',
 | 
				
			||||||
    BUY_TX_FAILED = 'Buy - Tx Failed',
 | 
					    BuyTxFailed = 'Buy - Tx Failed',
 | 
				
			||||||
    USD_PRICE_FETCH_FAILED = 'USD Price - Fetch Failed',
 | 
					    UsdPriceFetchFailed = 'USD Price - Fetch Failed',
 | 
				
			||||||
    INSTALL_WALLET_CLICKED = 'Install Wallet - Clicked',
 | 
					    InstallWalletClicked = 'Install Wallet - Clicked',
 | 
				
			||||||
    INSTALL_WALLET_MODAL_OPENED = 'Install Wallet - Modal - Opened',
 | 
					    InstallWalletModalOpened = 'Install Wallet - Modal - Opened',
 | 
				
			||||||
    INSTALL_WALLET_MODAL_CLICKED_EXPLANATION = 'Install Wallet - Modal - Clicked Explanation',
 | 
					    InstallWalletModalClickedExplanation = 'Install Wallet - Modal - Clicked Explanation',
 | 
				
			||||||
    INSTALL_WALLET_MODAL_CLICKED_GET = 'Install Wallet - Modal - Clicked Get',
 | 
					    InstallWalletModalClickedGet = 'Install Wallet - Modal - Clicked Get',
 | 
				
			||||||
    INSTALL_WALLET_MODAL_CLOSED = 'Install Wallet - Modal - Closed',
 | 
					    InstallWalletModalClosed = 'Install Wallet - Modal - Closed',
 | 
				
			||||||
    TOKEN_SELECTOR_OPENED = 'Token Selector - Opened',
 | 
					    TokenSelectorOpened = 'Token Selector - Opened',
 | 
				
			||||||
    TOKEN_SELECTOR_CLOSED = 'Token Selector - Closed',
 | 
					    TokenSelectorClosed = 'Token Selector - Closed',
 | 
				
			||||||
    TOKEN_SELECTOR_CHOSE = 'Token Selector - Chose',
 | 
					    TokenSelectorChose = 'Token Selector - Chose',
 | 
				
			||||||
    TOKEN_SELECTOR_SEARCHED = 'Token Selector - Searched',
 | 
					    TokenSelectorSearched = 'Token Selector - Searched',
 | 
				
			||||||
    TRANSACTION_VIEWED = 'Transaction - Viewed',
 | 
					    TransactionViewed = 'Transaction - Viewed',
 | 
				
			||||||
    QUOTE_FETCHED = 'Quote - Fetched',
 | 
					    QuoteFetched = 'Quote - Fetched',
 | 
				
			||||||
    QUOTE_ERROR = 'Quote - Error',
 | 
					    QuoteError = 'Quote - Error',
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const track = (eventName: EventNames, eventProperties: EventProperties = {}): void => {
 | 
					const track = (eventName: EventNames, eventProperties: EventProperties = {}): void => {
 | 
				
			||||||
@@ -125,7 +125,7 @@ export interface AnalyticsEventOptions {
 | 
				
			|||||||
    baseCurrency?: string;
 | 
					    baseCurrency?: string;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
export enum TokenSelectorClosedVia {
 | 
					export enum TokenSelectorClosedVia {
 | 
				
			||||||
    ClickedX = 'Clicked X',
 | 
					    ClickedX = 'Clicked X', // tslint:disable-line:enum-naming
 | 
				
			||||||
    TokenChose = 'Token Chose',
 | 
					    TokenChose = 'Token Chose',
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
export const analytics = {
 | 
					export const analytics = {
 | 
				
			||||||
@@ -169,80 +169,80 @@ export const analytics = {
 | 
				
			|||||||
        };
 | 
					        };
 | 
				
			||||||
        return eventOptions;
 | 
					        return eventOptions;
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    trackInstantOpened: trackingEventFnWithoutPayload(EventNames.INSTANT_OPENED),
 | 
					    trackInstantOpened: trackingEventFnWithoutPayload(EventNames.InstantOpened),
 | 
				
			||||||
    trackInstantClosed: trackingEventFnWithoutPayload(EventNames.INSTANT_CLOSED),
 | 
					    trackInstantClosed: trackingEventFnWithoutPayload(EventNames.InstantClosed),
 | 
				
			||||||
    trackAccountLocked: trackingEventFnWithoutPayload(EventNames.ACCOUNT_LOCKED),
 | 
					    trackAccountLocked: trackingEventFnWithoutPayload(EventNames.AccountLocked),
 | 
				
			||||||
    trackAccountReady: (address: string) => trackingEventFnWithPayload(EventNames.ACCOUNT_READY)({ address }),
 | 
					    trackAccountReady: (address: string) => trackingEventFnWithPayload(EventNames.AccountReady)({ address }),
 | 
				
			||||||
    trackAccountUnlockRequested: trackingEventFnWithoutPayload(EventNames.ACCOUNT_UNLOCK_REQUESTED),
 | 
					    trackAccountUnlockRequested: trackingEventFnWithoutPayload(EventNames.AccountUnlockRequested),
 | 
				
			||||||
    trackAccountUnlockDenied: trackingEventFnWithoutPayload(EventNames.ACCOUNT_UNLOCK_DENIED),
 | 
					    trackAccountUnlockDenied: trackingEventFnWithoutPayload(EventNames.AccountUnlockDenied),
 | 
				
			||||||
    trackAccountAddressChanged: (address: string) =>
 | 
					    trackAccountAddressChanged: (address: string) =>
 | 
				
			||||||
        trackingEventFnWithPayload(EventNames.ACCOUNT_ADDRESS_CHANGED)({ address }),
 | 
					        trackingEventFnWithPayload(EventNames.AccountAddressChanged)({ address }),
 | 
				
			||||||
    trackBaseCurrencyChanged: (currencyChangedTo: BaseCurrency) =>
 | 
					    trackBaseCurrencyChanged: (currencyChangedTo: BaseCurrency) =>
 | 
				
			||||||
        trackingEventFnWithPayload(EventNames.BASE_CURRENCY_CHANGED)({ currencyChangedTo }),
 | 
					        trackingEventFnWithPayload(EventNames.BaseCurrencyChanged)({ currencyChangedTo }),
 | 
				
			||||||
    trackPaymentMethodDropdownOpened: trackingEventFnWithoutPayload(EventNames.PAYMENT_METHOD_DROPDOWN_OPENED),
 | 
					    trackPaymentMethodDropdownOpened: trackingEventFnWithoutPayload(EventNames.PaymentMethodDropdownOpened),
 | 
				
			||||||
    trackPaymentMethodOpenedEtherscan: trackingEventFnWithoutPayload(EventNames.PAYMENT_METHOD_OPENED_ETHERSCAN),
 | 
					    trackPaymentMethodOpenedEtherscan: trackingEventFnWithoutPayload(EventNames.PaymentMethodOpenedEtherscan),
 | 
				
			||||||
    trackPaymentMethodCopiedAddress: trackingEventFnWithoutPayload(EventNames.PAYMENT_METHOD_COPIED_ADDRESS),
 | 
					    trackPaymentMethodCopiedAddress: trackingEventFnWithoutPayload(EventNames.PaymentMethodCopiedAddress),
 | 
				
			||||||
    trackBuyNotEnoughEth: (buyQuote: BuyQuote) =>
 | 
					    trackBuyNotEnoughEth: (buyQuote: BuyQuote) =>
 | 
				
			||||||
        trackingEventFnWithPayload(EventNames.BUY_NOT_ENOUGH_ETH)(buyQuoteEventProperties(buyQuote)),
 | 
					        trackingEventFnWithPayload(EventNames.BuyNotEnoughEth)(buyQuoteEventProperties(buyQuote)),
 | 
				
			||||||
    trackBuyStarted: (buyQuote: BuyQuote) =>
 | 
					    trackBuyStarted: (buyQuote: BuyQuote) =>
 | 
				
			||||||
        trackingEventFnWithPayload(EventNames.BUY_STARTED)(buyQuoteEventProperties(buyQuote)),
 | 
					        trackingEventFnWithPayload(EventNames.BuyStarted)(buyQuoteEventProperties(buyQuote)),
 | 
				
			||||||
    trackBuySignatureDenied: (buyQuote: BuyQuote) =>
 | 
					    trackBuySignatureDenied: (buyQuote: BuyQuote) =>
 | 
				
			||||||
        trackingEventFnWithPayload(EventNames.BUY_SIGNATURE_DENIED)(buyQuoteEventProperties(buyQuote)),
 | 
					        trackingEventFnWithPayload(EventNames.BuySignatureDenied)(buyQuoteEventProperties(buyQuote)),
 | 
				
			||||||
    trackBuySimulationFailed: (buyQuote: BuyQuote) =>
 | 
					    trackBuySimulationFailed: (buyQuote: BuyQuote) =>
 | 
				
			||||||
        trackingEventFnWithPayload(EventNames.BUY_SIMULATION_FAILED)(buyQuoteEventProperties(buyQuote)),
 | 
					        trackingEventFnWithPayload(EventNames.BuySimulationFailed)(buyQuoteEventProperties(buyQuote)),
 | 
				
			||||||
    trackBuyUnknownError: (buyQuote: BuyQuote, errorMessage: string) =>
 | 
					    trackBuyUnknownError: (buyQuote: BuyQuote, errorMessage: string) =>
 | 
				
			||||||
        trackingEventFnWithPayload(EventNames.BUY_UNKNOWN_ERROR)({
 | 
					        trackingEventFnWithPayload(EventNames.BuyUnknownError)({
 | 
				
			||||||
            ...buyQuoteEventProperties(buyQuote),
 | 
					            ...buyQuoteEventProperties(buyQuote),
 | 
				
			||||||
            errorMessage,
 | 
					            errorMessage,
 | 
				
			||||||
        }),
 | 
					        }),
 | 
				
			||||||
    trackBuyTxSubmitted: (buyQuote: BuyQuote, txHash: string, startTimeUnix: number, expectedEndTimeUnix: number) =>
 | 
					    trackBuyTxSubmitted: (buyQuote: BuyQuote, txHash: string, startTimeUnix: number, expectedEndTimeUnix: number) =>
 | 
				
			||||||
        trackingEventFnWithPayload(EventNames.BUY_TX_SUBMITTED)({
 | 
					        trackingEventFnWithPayload(EventNames.BuyTxSubmitted)({
 | 
				
			||||||
            ...buyQuoteEventProperties(buyQuote),
 | 
					            ...buyQuoteEventProperties(buyQuote),
 | 
				
			||||||
            txHash,
 | 
					            txHash,
 | 
				
			||||||
            expectedTxTimeMs: expectedEndTimeUnix - startTimeUnix,
 | 
					            expectedTxTimeMs: expectedEndTimeUnix - startTimeUnix,
 | 
				
			||||||
        }),
 | 
					        }),
 | 
				
			||||||
    trackBuyTxSucceeded: (buyQuote: BuyQuote, txHash: string, startTimeUnix: number, expectedEndTimeUnix: number) =>
 | 
					    trackBuyTxSucceeded: (buyQuote: BuyQuote, txHash: string, startTimeUnix: number, expectedEndTimeUnix: number) =>
 | 
				
			||||||
        trackingEventFnWithPayload(EventNames.BUY_TX_SUCCEEDED)({
 | 
					        trackingEventFnWithPayload(EventNames.BuyTxSucceeded)({
 | 
				
			||||||
            ...buyQuoteEventProperties(buyQuote),
 | 
					            ...buyQuoteEventProperties(buyQuote),
 | 
				
			||||||
            txHash,
 | 
					            txHash,
 | 
				
			||||||
            expectedTxTimeMs: expectedEndTimeUnix - startTimeUnix,
 | 
					            expectedTxTimeMs: expectedEndTimeUnix - startTimeUnix,
 | 
				
			||||||
            actualTxTimeMs: new Date().getTime() - startTimeUnix,
 | 
					            actualTxTimeMs: new Date().getTime() - startTimeUnix,
 | 
				
			||||||
        }),
 | 
					        }),
 | 
				
			||||||
    trackBuyTxFailed: (buyQuote: BuyQuote, txHash: string, startTimeUnix: number, expectedEndTimeUnix: number) =>
 | 
					    trackBuyTxFailed: (buyQuote: BuyQuote, txHash: string, startTimeUnix: number, expectedEndTimeUnix: number) =>
 | 
				
			||||||
        trackingEventFnWithPayload(EventNames.BUY_TX_FAILED)({
 | 
					        trackingEventFnWithPayload(EventNames.BuyTxFailed)({
 | 
				
			||||||
            ...buyQuoteEventProperties(buyQuote),
 | 
					            ...buyQuoteEventProperties(buyQuote),
 | 
				
			||||||
            txHash,
 | 
					            txHash,
 | 
				
			||||||
            expectedTxTimeMs: expectedEndTimeUnix - startTimeUnix,
 | 
					            expectedTxTimeMs: expectedEndTimeUnix - startTimeUnix,
 | 
				
			||||||
            actualTxTimeMs: new Date().getTime() - startTimeUnix,
 | 
					            actualTxTimeMs: new Date().getTime() - startTimeUnix,
 | 
				
			||||||
        }),
 | 
					        }),
 | 
				
			||||||
    trackInstallWalletClicked: (walletSuggestion: WalletSuggestion) =>
 | 
					    trackInstallWalletClicked: (walletSuggestion: WalletSuggestion) =>
 | 
				
			||||||
        trackingEventFnWithPayload(EventNames.INSTALL_WALLET_CLICKED)({ walletSuggestion }),
 | 
					        trackingEventFnWithPayload(EventNames.InstallWalletClicked)({ walletSuggestion }),
 | 
				
			||||||
    trackInstallWalletModalClickedExplanation: trackingEventFnWithoutPayload(
 | 
					    trackInstallWalletModalClickedExplanation: trackingEventFnWithoutPayload(
 | 
				
			||||||
        EventNames.INSTALL_WALLET_MODAL_CLICKED_EXPLANATION,
 | 
					        EventNames.InstallWalletModalClickedExplanation,
 | 
				
			||||||
    ),
 | 
					    ),
 | 
				
			||||||
    trackInstallWalletModalClickedGet: trackingEventFnWithoutPayload(EventNames.INSTALL_WALLET_MODAL_CLICKED_GET),
 | 
					    trackInstallWalletModalClickedGet: trackingEventFnWithoutPayload(EventNames.InstallWalletModalClickedGet),
 | 
				
			||||||
    trackInstallWalletModalOpened: trackingEventFnWithoutPayload(EventNames.INSTALL_WALLET_MODAL_OPENED),
 | 
					    trackInstallWalletModalOpened: trackingEventFnWithoutPayload(EventNames.InstallWalletModalOpened),
 | 
				
			||||||
    trackInstallWalletModalClosed: trackingEventFnWithoutPayload(EventNames.INSTALL_WALLET_MODAL_CLOSED),
 | 
					    trackInstallWalletModalClosed: trackingEventFnWithoutPayload(EventNames.InstallWalletModalClosed),
 | 
				
			||||||
    trackTokenSelectorOpened: trackingEventFnWithoutPayload(EventNames.TOKEN_SELECTOR_OPENED),
 | 
					    trackTokenSelectorOpened: trackingEventFnWithoutPayload(EventNames.TokenSelectorOpened),
 | 
				
			||||||
    trackTokenSelectorClosed: (closedVia: TokenSelectorClosedVia) =>
 | 
					    trackTokenSelectorClosed: (closedVia: TokenSelectorClosedVia) =>
 | 
				
			||||||
        trackingEventFnWithPayload(EventNames.TOKEN_SELECTOR_CLOSED)({ closedVia }),
 | 
					        trackingEventFnWithPayload(EventNames.TokenSelectorClosed)({ closedVia }),
 | 
				
			||||||
    trackTokenSelectorChose: (payload: { assetName: string; assetData: string }) =>
 | 
					    trackTokenSelectorChose: (payload: { assetName: string; assetData: string }) =>
 | 
				
			||||||
        trackingEventFnWithPayload(EventNames.TOKEN_SELECTOR_CHOSE)(payload),
 | 
					        trackingEventFnWithPayload(EventNames.TokenSelectorChose)(payload),
 | 
				
			||||||
    trackTokenSelectorSearched: (searchText: string) =>
 | 
					    trackTokenSelectorSearched: (searchText: string) =>
 | 
				
			||||||
        trackingEventFnWithPayload(EventNames.TOKEN_SELECTOR_SEARCHED)({ searchText }),
 | 
					        trackingEventFnWithPayload(EventNames.TokenSelectorSearched)({ searchText }),
 | 
				
			||||||
    trackTransactionViewed: (orderProcesState: OrderProcessState) =>
 | 
					    trackTransactionViewed: (orderProcesState: OrderProcessState) =>
 | 
				
			||||||
        trackingEventFnWithPayload(EventNames.TRANSACTION_VIEWED)({ orderState: orderProcesState }),
 | 
					        trackingEventFnWithPayload(EventNames.TransactionViewed)({ orderState: orderProcesState }),
 | 
				
			||||||
    trackQuoteFetched: (buyQuote: BuyQuote, fetchOrigin: QuoteFetchOrigin) =>
 | 
					    trackQuoteFetched: (buyQuote: BuyQuote, fetchOrigin: QuoteFetchOrigin) =>
 | 
				
			||||||
        trackingEventFnWithPayload(EventNames.QUOTE_FETCHED)({
 | 
					        trackingEventFnWithPayload(EventNames.QuoteFetched)({
 | 
				
			||||||
            ...buyQuoteEventProperties(buyQuote),
 | 
					            ...buyQuoteEventProperties(buyQuote),
 | 
				
			||||||
            fetchOrigin,
 | 
					            fetchOrigin,
 | 
				
			||||||
        }),
 | 
					        }),
 | 
				
			||||||
    trackQuoteError: (errorMessage: string, assetBuyAmount: BigNumber, fetchOrigin: QuoteFetchOrigin) => {
 | 
					    trackQuoteError: (errorMessage: string, assetBuyAmount: BigNumber, fetchOrigin: QuoteFetchOrigin) => {
 | 
				
			||||||
        trackingEventFnWithPayload(EventNames.QUOTE_ERROR)({
 | 
					        trackingEventFnWithPayload(EventNames.QuoteError)({
 | 
				
			||||||
            errorMessage,
 | 
					            errorMessage,
 | 
				
			||||||
            assetBuyAmount: assetBuyAmount.toString(),
 | 
					            assetBuyAmount: assetBuyAmount.toString(),
 | 
				
			||||||
            fetchOrigin,
 | 
					            fetchOrigin,
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    trackUsdPriceFailed: trackingEventFnWithoutPayload(EventNames.USD_PRICE_FETCH_FAILED),
 | 
					    trackUsdPriceFailed: trackingEventFnWithoutPayload(EventNames.UsdPriceFetchFailed),
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -44,8 +44,8 @@ export interface CopperActivityParentResponse {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// custom activity types
 | 
					// custom activity types
 | 
				
			||||||
export enum CopperActivityTypeCategory {
 | 
					export enum CopperActivityTypeCategory {
 | 
				
			||||||
    user = 'user',
 | 
					    User = 'user',
 | 
				
			||||||
    system = 'system',
 | 
					    System = 'system',
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
export interface CopperActivityTypeResponse {
 | 
					export interface CopperActivityTypeResponse {
 | 
				
			||||||
    id: number;
 | 
					    id: number;
 | 
				
			||||||
@@ -90,7 +90,7 @@ export enum CopperCustomFieldType {
 | 
				
			|||||||
    Date = 'Date',
 | 
					    Date = 'Date',
 | 
				
			||||||
    Checkbox = 'Checkbox',
 | 
					    Checkbox = 'Checkbox',
 | 
				
			||||||
    Float = 'Float',
 | 
					    Float = 'Float',
 | 
				
			||||||
    URL = 'URL',
 | 
					    URL = 'URL', // tslint:disable-line:enum-naming
 | 
				
			||||||
    Percentage = 'Percentage',
 | 
					    Percentage = 'Percentage',
 | 
				
			||||||
    Currency = 'Currency',
 | 
					    Currency = 'Currency',
 | 
				
			||||||
    Connect = 'Connect',
 | 
					    Connect = 'Connect',
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -36,9 +36,9 @@ interface ItemByNetworkId<T> {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
enum RequestedAssetType {
 | 
					enum RequestedAssetType {
 | 
				
			||||||
    ETH = 'ETH',
 | 
					    ETH = 'ETH', // tslint:disable-line:enum-naming
 | 
				
			||||||
    WETH = 'WETH',
 | 
					    WETH = 'WETH', // tslint:disable-line:enum-naming
 | 
				
			||||||
    ZRX = 'ZRX',
 | 
					    ZRX = 'ZRX', // tslint:disable-line:enum-naming
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const FIVE_DAYS_IN_MS = 4.32e8; // TODO: make this configurable
 | 
					const FIVE_DAYS_IN_MS = 4.32e8; // TODO: make this configurable
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,6 +9,7 @@
 | 
				
			|||||||
    "scripts": {
 | 
					    "scripts": {
 | 
				
			||||||
        "build": "tsc -b",
 | 
					        "build": "tsc -b",
 | 
				
			||||||
        "build:ci": "yarn build",
 | 
					        "build:ci": "yarn build",
 | 
				
			||||||
 | 
					        "test": "mocha ./lib/test/*.spec.js",
 | 
				
			||||||
        "clean": "shx rm -rf lib",
 | 
					        "clean": "shx rm -rf lib",
 | 
				
			||||||
        "lint": "tslint --format stylish --project ."
 | 
					        "lint": "tslint --format stylish --project ."
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										60
									
								
								packages/tslint-config/rules/enumNamingRule.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								packages/tslint-config/rules/enumNamingRule.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,60 @@
 | 
				
			|||||||
 | 
					import * as Lint from 'tslint';
 | 
				
			||||||
 | 
					import * as ts from 'typescript';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export class Rule extends Lint.Rules.AbstractRule {
 | 
				
			||||||
 | 
					    public static FAILURE_STRING = `Enum member names should be PascalCase`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public apply(sourceFile: ts.SourceFile): Lint.RuleFailure[] {
 | 
				
			||||||
 | 
					        return this.applyWithFunction(sourceFile, walk);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function walk(ctx: Lint.WalkContext<void>): void {
 | 
				
			||||||
 | 
					    // Recursively walk the AST starting with root node, `ctx.sourceFile`.
 | 
				
			||||||
 | 
					    // Call the function `cb` (defined below) for each child.
 | 
				
			||||||
 | 
					    return ts.forEachChild(ctx.sourceFile, cb);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    function cb(node: ts.Node): void {
 | 
				
			||||||
 | 
					        if (node.kind === ts.SyntaxKind.EnumMember) {
 | 
				
			||||||
 | 
					            const keyNode = node.getFirstToken(ctx.sourceFile);
 | 
				
			||||||
 | 
					            if (keyNode !== undefined) {
 | 
				
			||||||
 | 
					                const keyText = keyNode.getText(ctx.sourceFile);
 | 
				
			||||||
 | 
					                if (!isPascalCase(keyText)) {
 | 
				
			||||||
 | 
					                    return ctx.addFailureAtNode(node, Rule.FAILURE_STRING, getFix(keyText, node));
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        // Continue recursion into the AST by calling function `cb` for every child of the current node.
 | 
				
			||||||
 | 
					        return ts.forEachChild(node, cb);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    function getFix(text: string, node: ts.Node): Lint.Replacement {
 | 
				
			||||||
 | 
					        let fix = toPascalCase(text);
 | 
				
			||||||
 | 
					        // check for `member = value`
 | 
				
			||||||
 | 
					        if (node.getChildCount(ctx.sourceFile) === 3) {
 | 
				
			||||||
 | 
					            const value = node.getLastToken(ctx.sourceFile);
 | 
				
			||||||
 | 
					            if (value !== undefined) {
 | 
				
			||||||
 | 
					                fix += ` = ${value.getText(ctx.sourceFile)}`;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return new Lint.Replacement(node.getStart(ctx.sourceFile), node.getWidth(ctx.sourceFile), fix);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Modified from: https://github.com/jonschlinkert/pascalcase/
 | 
				
			||||||
 | 
					function toPascalCase(str: string): string {
 | 
				
			||||||
 | 
					    let result = str.replace(/([a-z0-9\W])([A-Z])/g, '$1 $2');
 | 
				
			||||||
 | 
					    if (result.length === 1) {
 | 
				
			||||||
 | 
					        return result.toUpperCase();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    result = result.replace(/^[\W_\.]+|[\W_\.]+$/g, '').toLowerCase();
 | 
				
			||||||
 | 
					    result = result.charAt(0).toUpperCase() + result.slice(1);
 | 
				
			||||||
 | 
					    return result.replace(/[\W_\.]+(\w|$)/g, (_, ch) => {
 | 
				
			||||||
 | 
					        return ch.toUpperCase();
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					function isPascalCase(s: string): boolean {
 | 
				
			||||||
 | 
					    const regex = /^([A-Z0-9]+[a-z0-9]+)+$/g;
 | 
				
			||||||
 | 
					    const key = s.split('=')[0].trim();
 | 
				
			||||||
 | 
					    return regex.test(key);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										88
									
								
								packages/tslint-config/test/enumNamingSpec.spec.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								packages/tslint-config/test/enumNamingSpec.spec.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,88 @@
 | 
				
			|||||||
 | 
					import * as assert from 'assert';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { Rule } from '../rules/enumNamingRule';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { getFixedResult, helper } from './lintrunner';
 | 
				
			||||||
 | 
					const rule = 'enum-naming';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					describe('enumNamingRule', () => {
 | 
				
			||||||
 | 
					    it(`should not fail PascalCase`, () => {
 | 
				
			||||||
 | 
					        const src = `enum test { MemberOne, MemberTwo }`;
 | 
				
			||||||
 | 
					        const result = helper(src, rule);
 | 
				
			||||||
 | 
					        assert.equal(result.errorCount, 0);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    it(`should not fail PascalCase keys with uncased values`, () => {
 | 
				
			||||||
 | 
					        const src = `enum test { MemberOne = 'member_one', MemberTwo = 'member two' }`;
 | 
				
			||||||
 | 
					        const result = helper(src, rule);
 | 
				
			||||||
 | 
					        assert.equal(result.errorCount, 0);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    it(`should not fail PascalCase keys with numbers`, () => {
 | 
				
			||||||
 | 
					        const src = `enum test { Member1 = 'member_one', MemberTwo = 'member two' }`;
 | 
				
			||||||
 | 
					        const result = helper(src, rule);
 | 
				
			||||||
 | 
					        assert.equal(result.errorCount, 0);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    it(`should fail with camelCase`, () => {
 | 
				
			||||||
 | 
					        const src = `enum test { memberOne, memberTwo }`;
 | 
				
			||||||
 | 
					        const result = helper(src, rule);
 | 
				
			||||||
 | 
					        assert.equal(result.errorCount, 2);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    it(`should fail with snake case`, () => {
 | 
				
			||||||
 | 
					        const src = `enum test { member_one, member_two }`;
 | 
				
			||||||
 | 
					        const result = helper(src, rule);
 | 
				
			||||||
 | 
					        assert.equal(result.errorCount, 2);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    it(`should fail with all caps`, () => {
 | 
				
			||||||
 | 
					        const src = `enum test { MEMBERONE, MEMBER_TWO }`;
 | 
				
			||||||
 | 
					        const result = helper(src, rule);
 | 
				
			||||||
 | 
					        assert.equal(result.errorCount, 2);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    it(`should fail with mixed case`, () => {
 | 
				
			||||||
 | 
					        const src = `enum test { member_one, MemberTwo }`;
 | 
				
			||||||
 | 
					        const result = helper(src, rule);
 | 
				
			||||||
 | 
					        assert.equal(result.errorCount, 1);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it(`should fail with the right position`, () => {
 | 
				
			||||||
 | 
					        const src = `enum test { MemberOne, member_two }`;
 | 
				
			||||||
 | 
					        const startPosition = src.indexOf('member_two');
 | 
				
			||||||
 | 
					        const endPosition = startPosition + 'member_two'.length;
 | 
				
			||||||
 | 
					        const failure = helper(src, rule).failures[0];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        assert.equal(failure.getStartPosition().getPosition(), startPosition);
 | 
				
			||||||
 | 
					        assert.equal(failure.getEndPosition().getPosition(), endPosition);
 | 
				
			||||||
 | 
					        assert.equal(failure.getFailure(), Rule.FAILURE_STRING);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it(`should fail with the right message`, () => {
 | 
				
			||||||
 | 
					        const src = `enum test { memberOne, memberTwo }`;
 | 
				
			||||||
 | 
					        const failure = helper(src, rule).failures[0];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        assert.equal(failure.getFailure(), Rule.FAILURE_STRING);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					describe('enumNaming fixer', () => {
 | 
				
			||||||
 | 
					    it('should fix keys', () => {
 | 
				
			||||||
 | 
					        const src = `enum test { MemberOne, memberTwo, member_three, MEMBER_FOUR, MEMBERFIVE }`;
 | 
				
			||||||
 | 
					        const expected = `enum test { MemberOne, MemberTwo, MemberThree, MemberFour, Memberfive }`;
 | 
				
			||||||
 | 
					        const actual = getFixedResult(src, rule);
 | 
				
			||||||
 | 
					        const result = helper(src, rule);
 | 
				
			||||||
 | 
					        assert.equal(result.errorCount, 4); // tslint:disable-line:custom-no-magic-numbers
 | 
				
			||||||
 | 
					        assert.equal(actual, expected);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    it('should not fix values', () => {
 | 
				
			||||||
 | 
					        const src = `enum test { MemberOne = 'MemberOne', memberTwo = 'memberTwo', member_three = 'member_three', MEMBER_FOUR = 'MEMBER_FOUR' }`;
 | 
				
			||||||
 | 
					        const expected = `enum test { MemberOne = 'MemberOne', MemberTwo = 'memberTwo', MemberThree = 'member_three', MemberFour = 'MEMBER_FOUR' }`;
 | 
				
			||||||
 | 
					        const actual = getFixedResult(src, rule);
 | 
				
			||||||
 | 
					        const result = helper(src, rule);
 | 
				
			||||||
 | 
					        assert.equal(result.errorCount, 3); // tslint:disable-line:custom-no-magic-numbers
 | 
				
			||||||
 | 
					        assert.equal(actual, expected);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					    it('should preserve values with equals sign', () => {
 | 
				
			||||||
 | 
					        const src = `enum Operators { assign = '=', EQUALS = '==', Triple_Equals = '===' }`;
 | 
				
			||||||
 | 
					        const expected = `enum Operators { Assign = '=', Equals = '==', TripleEquals = '===' }`;
 | 
				
			||||||
 | 
					        const actual = getFixedResult(src, rule);
 | 
				
			||||||
 | 
					        const result = helper(src, rule);
 | 
				
			||||||
 | 
					        assert.equal(result.errorCount, 3); // tslint:disable-line:custom-no-magic-numbers
 | 
				
			||||||
 | 
					        assert.equal(actual, expected);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
							
								
								
									
										23
									
								
								packages/tslint-config/test/lintrunner.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								packages/tslint-config/test/lintrunner.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					import * as path from 'path';
 | 
				
			||||||
 | 
					import { Configuration, Linter, Replacement } from 'tslint';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const helper = (src: string, rule: string) => {
 | 
				
			||||||
 | 
					    const linter = new Linter({ fix: false });
 | 
				
			||||||
 | 
					    linter.lint(
 | 
				
			||||||
 | 
					        '',
 | 
				
			||||||
 | 
					        src,
 | 
				
			||||||
 | 
					        Configuration.parseConfigFile({
 | 
				
			||||||
 | 
					            rules: {
 | 
				
			||||||
 | 
					                [rule]: true,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            rulesDirectory: path.join(__dirname, '../rules'),
 | 
				
			||||||
 | 
					        }),
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					    return linter.getResult();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const getFixedResult = (src: string, rule: string) => {
 | 
				
			||||||
 | 
					    const result = helper(src, rule);
 | 
				
			||||||
 | 
					    const fixes = [].concat.apply(result.failures.map(x => x.getFix()));
 | 
				
			||||||
 | 
					    return Replacement.applyFixes(src, fixes);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@@ -2,7 +2,7 @@
 | 
				
			|||||||
    "extends": "../../tsconfig",
 | 
					    "extends": "../../tsconfig",
 | 
				
			||||||
    "compilerOptions": {
 | 
					    "compilerOptions": {
 | 
				
			||||||
        "outDir": "lib",
 | 
					        "outDir": "lib",
 | 
				
			||||||
        "rootDir": "rules"
 | 
					        "rootDir": "."
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "include": ["./rules/**/*"]
 | 
					    "include": ["./rules/**/*", "test/**/*"]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,6 +25,7 @@
 | 
				
			|||||||
        "curly": true,
 | 
					        "curly": true,
 | 
				
			||||||
        "custom-no-magic-numbers": [true, 0, 1, 2, 3, -1],
 | 
					        "custom-no-magic-numbers": [true, 0, 1, 2, 3, -1],
 | 
				
			||||||
        "encoding": true,
 | 
					        "encoding": true,
 | 
				
			||||||
 | 
					        "enum-naming": true,
 | 
				
			||||||
        "eofline": true,
 | 
					        "eofline": true,
 | 
				
			||||||
        "import-spacing": true,
 | 
					        "import-spacing": true,
 | 
				
			||||||
        "indent": [true, "spaces", 4],
 | 
					        "indent": [true, "spaces", 4],
 | 
				
			||||||
@@ -125,5 +126,5 @@
 | 
				
			|||||||
            "check-preblock"
 | 
					            "check-preblock"
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "rulesDirectory": "lib"
 | 
					    "rulesDirectory": "lib/rules"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,8 +20,8 @@ import { utils } from 'ts/utils/utils';
 | 
				
			|||||||
const VALID_ETHEREUM_DERIVATION_PATH_PREFIX = `44'/60'`;
 | 
					const VALID_ETHEREUM_DERIVATION_PATH_PREFIX = `44'/60'`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
enum LedgerSteps {
 | 
					enum LedgerSteps {
 | 
				
			||||||
    CONNECT,
 | 
					    Connect,
 | 
				
			||||||
    SELECT_ADDRESS,
 | 
					    SelectAddress,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
interface LedgerConfigDialogProps {
 | 
					interface LedgerConfigDialogProps {
 | 
				
			||||||
@@ -52,7 +52,7 @@ export class LedgerConfigDialog extends React.Component<LedgerConfigDialogProps,
 | 
				
			|||||||
        const derivationPathIfExists = props.blockchain.getLedgerDerivationPathIfExists();
 | 
					        const derivationPathIfExists = props.blockchain.getLedgerDerivationPathIfExists();
 | 
				
			||||||
        this.state = {
 | 
					        this.state = {
 | 
				
			||||||
            connectionErrMsg: '',
 | 
					            connectionErrMsg: '',
 | 
				
			||||||
            stepIndex: LedgerSteps.CONNECT,
 | 
					            stepIndex: LedgerSteps.Connect,
 | 
				
			||||||
            userAddresses: [],
 | 
					            userAddresses: [],
 | 
				
			||||||
            addressBalances: [],
 | 
					            addressBalances: [],
 | 
				
			||||||
            derivationPath: _.isUndefined(derivationPathIfExists)
 | 
					            derivationPath: _.isUndefined(derivationPathIfExists)
 | 
				
			||||||
@@ -67,7 +67,7 @@ export class LedgerConfigDialog extends React.Component<LedgerConfigDialogProps,
 | 
				
			|||||||
            <FlatButton key="ledgerConnectCancel" label="Cancel" onClick={this._onClose.bind(this)} />,
 | 
					            <FlatButton key="ledgerConnectCancel" label="Cancel" onClick={this._onClose.bind(this)} />,
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
        const dialogTitle =
 | 
					        const dialogTitle =
 | 
				
			||||||
            this.state.stepIndex === LedgerSteps.CONNECT ? 'Connect to your Ledger' : 'Select desired address';
 | 
					            this.state.stepIndex === LedgerSteps.Connect ? 'Connect to your Ledger' : 'Select desired address';
 | 
				
			||||||
        return (
 | 
					        return (
 | 
				
			||||||
            <Dialog
 | 
					            <Dialog
 | 
				
			||||||
                title={dialogTitle}
 | 
					                title={dialogTitle}
 | 
				
			||||||
@@ -79,8 +79,8 @@ export class LedgerConfigDialog extends React.Component<LedgerConfigDialogProps,
 | 
				
			|||||||
                bodyStyle={{ paddingBottom: 0 }}
 | 
					                bodyStyle={{ paddingBottom: 0 }}
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
                <div style={{ color: colors.grey700, paddingTop: 1 }}>
 | 
					                <div style={{ color: colors.grey700, paddingTop: 1 }}>
 | 
				
			||||||
                    {this.state.stepIndex === LedgerSteps.CONNECT && this._renderConnectStep()}
 | 
					                    {this.state.stepIndex === LedgerSteps.Connect && this._renderConnectStep()}
 | 
				
			||||||
                    {this.state.stepIndex === LedgerSteps.SELECT_ADDRESS && this._renderSelectAddressStep()}
 | 
					                    {this.state.stepIndex === LedgerSteps.SelectAddress && this._renderSelectAddressStep()}
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
            </Dialog>
 | 
					            </Dialog>
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
@@ -195,7 +195,7 @@ export class LedgerConfigDialog extends React.Component<LedgerConfigDialogProps,
 | 
				
			|||||||
    private _onClose(): void {
 | 
					    private _onClose(): void {
 | 
				
			||||||
        this.setState({
 | 
					        this.setState({
 | 
				
			||||||
            connectionErrMsg: '',
 | 
					            connectionErrMsg: '',
 | 
				
			||||||
            stepIndex: LedgerSteps.CONNECT,
 | 
					            stepIndex: LedgerSteps.Connect,
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        const isOpen = false;
 | 
					        const isOpen = false;
 | 
				
			||||||
        this.props.toggleDialogFn(isOpen);
 | 
					        this.props.toggleDialogFn(isOpen);
 | 
				
			||||||
@@ -210,7 +210,7 @@ export class LedgerConfigDialog extends React.Component<LedgerConfigDialogProps,
 | 
				
			|||||||
        this.props.blockchain.fetchTokenInformationAsync();
 | 
					        this.props.blockchain.fetchTokenInformationAsync();
 | 
				
			||||||
        this.props.dispatcher.updateUserWeiBalance(selectAddressBalance);
 | 
					        this.props.dispatcher.updateUserWeiBalance(selectAddressBalance);
 | 
				
			||||||
        this.setState({
 | 
					        this.setState({
 | 
				
			||||||
            stepIndex: LedgerSteps.CONNECT,
 | 
					            stepIndex: LedgerSteps.Connect,
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        const isOpen = false;
 | 
					        const isOpen = false;
 | 
				
			||||||
        this.props.toggleDialogFn(isOpen);
 | 
					        this.props.toggleDialogFn(isOpen);
 | 
				
			||||||
@@ -284,7 +284,7 @@ export class LedgerConfigDialog extends React.Component<LedgerConfigDialogProps,
 | 
				
			|||||||
        const didSucceed = await this._fetchAddressesAndBalancesAsync();
 | 
					        const didSucceed = await this._fetchAddressesAndBalancesAsync();
 | 
				
			||||||
        if (didSucceed) {
 | 
					        if (didSucceed) {
 | 
				
			||||||
            this.setState({
 | 
					            this.setState({
 | 
				
			||||||
                stepIndex: LedgerSteps.SELECT_ADDRESS,
 | 
					                stepIndex: LedgerSteps.SelectAddress,
 | 
				
			||||||
                connectionErrMsg: '',
 | 
					                connectionErrMsg: '',
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -182,7 +182,7 @@ export class FillOrder extends React.Component<FillOrderProps, FillOrderState> {
 | 
				
			|||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                )}
 | 
					                )}
 | 
				
			||||||
                {!_.isEmpty(this.state.orderJSONErrMsg) && (
 | 
					                {!_.isEmpty(this.state.orderJSONErrMsg) && (
 | 
				
			||||||
                    <Alert type={AlertTypes.ERROR} message={this.state.orderJSONErrMsg} />
 | 
					                    <Alert type={AlertTypes.Error} message={this.state.orderJSONErrMsg} />
 | 
				
			||||||
                )}
 | 
					                )}
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
@@ -298,7 +298,7 @@ export class FillOrder extends React.Component<FillOrderProps, FillOrderState> {
 | 
				
			|||||||
                                onClick={this._onCancelOrderClickFireAndForgetAsync.bind(this)}
 | 
					                                onClick={this._onCancelOrderClickFireAndForgetAsync.bind(this)}
 | 
				
			||||||
                            />
 | 
					                            />
 | 
				
			||||||
                            {this.state.didCancelOrderSucceed && (
 | 
					                            {this.state.didCancelOrderSucceed && (
 | 
				
			||||||
                                <Alert type={AlertTypes.SUCCESS} message={this._renderCancelSuccessMsg()} />
 | 
					                                <Alert type={AlertTypes.Success} message={this._renderCancelSuccessMsg()} />
 | 
				
			||||||
                            )}
 | 
					                            )}
 | 
				
			||||||
                        </div>
 | 
					                        </div>
 | 
				
			||||||
                    ) : (
 | 
					                    ) : (
 | 
				
			||||||
@@ -310,10 +310,10 @@ export class FillOrder extends React.Component<FillOrderProps, FillOrderState> {
 | 
				
			|||||||
                                onClick={this._onFillOrderClick.bind(this)}
 | 
					                                onClick={this._onFillOrderClick.bind(this)}
 | 
				
			||||||
                            />
 | 
					                            />
 | 
				
			||||||
                            {!_.isEmpty(this.state.globalErrMsg) && (
 | 
					                            {!_.isEmpty(this.state.globalErrMsg) && (
 | 
				
			||||||
                                <Alert type={AlertTypes.ERROR} message={this.state.globalErrMsg} />
 | 
					                                <Alert type={AlertTypes.Error} message={this.state.globalErrMsg} />
 | 
				
			||||||
                            )}
 | 
					                            )}
 | 
				
			||||||
                            {this.state.didFillOrderSucceed && (
 | 
					                            {this.state.didFillOrderSucceed && (
 | 
				
			||||||
                                <Alert type={AlertTypes.SUCCESS} message={this._renderFillSuccessMsg()} />
 | 
					                                <Alert type={AlertTypes.Success} message={this._renderFillSuccessMsg()} />
 | 
				
			||||||
                            )}
 | 
					                            )}
 | 
				
			||||||
                        </div>
 | 
					                        </div>
 | 
				
			||||||
                    )}
 | 
					                    )}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,9 +18,9 @@ import { utils } from 'ts/utils/utils';
 | 
				
			|||||||
const TOKEN_ICON_DIMENSION = 100;
 | 
					const TOKEN_ICON_DIMENSION = 100;
 | 
				
			||||||
const TILE_DIMENSION = 146;
 | 
					const TILE_DIMENSION = 146;
 | 
				
			||||||
enum AssetViews {
 | 
					enum AssetViews {
 | 
				
			||||||
    ASSET_PICKER = 'ASSET_PICKER',
 | 
					    AssetPicker = 'ASSET_PICKER',
 | 
				
			||||||
    NEW_TOKEN_FORM = 'NEW_TOKEN_FORM',
 | 
					    NewTokenForm = 'NEW_TOKEN_FORM',
 | 
				
			||||||
    CONFIRM_TRACK_TOKEN = 'CONFIRM_TRACK_TOKEN',
 | 
					    ConfirmTrackToken = 'CONFIRM_TRACK_TOKEN',
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
interface AssetPickerProps {
 | 
					interface AssetPickerProps {
 | 
				
			||||||
@@ -44,29 +44,29 @@ interface AssetPickerState {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export class AssetPicker extends React.Component<AssetPickerProps, AssetPickerState> {
 | 
					export class AssetPicker extends React.Component<AssetPickerProps, AssetPickerState> {
 | 
				
			||||||
    public static defaultProps: Partial<AssetPickerProps> = {
 | 
					    public static defaultProps: Partial<AssetPickerProps> = {
 | 
				
			||||||
        tokenVisibility: TokenVisibility.ALL,
 | 
					        tokenVisibility: TokenVisibility.All,
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    private readonly _dialogConfigsByAssetView: { [assetView: string]: DialogConfigs };
 | 
					    private readonly _dialogConfigsByAssetView: { [assetView: string]: DialogConfigs };
 | 
				
			||||||
    constructor(props: AssetPickerProps) {
 | 
					    constructor(props: AssetPickerProps) {
 | 
				
			||||||
        super(props);
 | 
					        super(props);
 | 
				
			||||||
        this.state = {
 | 
					        this.state = {
 | 
				
			||||||
            assetView: AssetViews.ASSET_PICKER,
 | 
					            assetView: AssetViews.AssetPicker,
 | 
				
			||||||
            hoveredAddress: undefined,
 | 
					            hoveredAddress: undefined,
 | 
				
			||||||
            chosenTrackTokenAddress: undefined,
 | 
					            chosenTrackTokenAddress: undefined,
 | 
				
			||||||
            isAddingTokenToTracked: false,
 | 
					            isAddingTokenToTracked: false,
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        this._dialogConfigsByAssetView = {
 | 
					        this._dialogConfigsByAssetView = {
 | 
				
			||||||
            [AssetViews.ASSET_PICKER]: {
 | 
					            [AssetViews.AssetPicker]: {
 | 
				
			||||||
                title: 'Select token',
 | 
					                title: 'Select token',
 | 
				
			||||||
                isModal: false,
 | 
					                isModal: false,
 | 
				
			||||||
                actions: [],
 | 
					                actions: [],
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            [AssetViews.NEW_TOKEN_FORM]: {
 | 
					            [AssetViews.NewTokenForm]: {
 | 
				
			||||||
                title: 'Add an ERC20 token',
 | 
					                title: 'Add an ERC20 token',
 | 
				
			||||||
                isModal: false,
 | 
					                isModal: false,
 | 
				
			||||||
                actions: [],
 | 
					                actions: [],
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            [AssetViews.CONFIRM_TRACK_TOKEN]: {
 | 
					            [AssetViews.ConfirmTrackToken]: {
 | 
				
			||||||
                title: 'Tracking confirmation',
 | 
					                title: 'Tracking confirmation',
 | 
				
			||||||
                isModal: true,
 | 
					                isModal: true,
 | 
				
			||||||
                actions: [
 | 
					                actions: [
 | 
				
			||||||
@@ -95,15 +95,15 @@ export class AssetPicker extends React.Component<AssetPickerProps, AssetPickerSt
 | 
				
			|||||||
                autoScrollBodyContent={true}
 | 
					                autoScrollBodyContent={true}
 | 
				
			||||||
                onRequestClose={this._onCloseDialog.bind(this)}
 | 
					                onRequestClose={this._onCloseDialog.bind(this)}
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
                {this.state.assetView === AssetViews.ASSET_PICKER && this._renderAssetPicker()}
 | 
					                {this.state.assetView === AssetViews.AssetPicker && this._renderAssetPicker()}
 | 
				
			||||||
                {this.state.assetView === AssetViews.NEW_TOKEN_FORM && (
 | 
					                {this.state.assetView === AssetViews.NewTokenForm && (
 | 
				
			||||||
                    <NewTokenForm
 | 
					                    <NewTokenForm
 | 
				
			||||||
                        blockchain={this.props.blockchain}
 | 
					                        blockchain={this.props.blockchain}
 | 
				
			||||||
                        onNewTokenSubmitted={this._onNewTokenSubmitted.bind(this)}
 | 
					                        onNewTokenSubmitted={this._onNewTokenSubmitted.bind(this)}
 | 
				
			||||||
                        tokenByAddress={this.props.tokenByAddress}
 | 
					                        tokenByAddress={this.props.tokenByAddress}
 | 
				
			||||||
                    />
 | 
					                    />
 | 
				
			||||||
                )}
 | 
					                )}
 | 
				
			||||||
                {this.state.assetView === AssetViews.CONFIRM_TRACK_TOKEN && this._renderConfirmTrackToken()}
 | 
					                {this.state.assetView === AssetViews.ConfirmTrackToken && this._renderConfirmTrackToken()}
 | 
				
			||||||
            </Dialog>
 | 
					            </Dialog>
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -138,19 +138,19 @@ export class AssetPicker extends React.Component<AssetPickerProps, AssetPickerSt
 | 
				
			|||||||
        const allTokens = _.values(this.props.tokenByAddress);
 | 
					        const allTokens = _.values(this.props.tokenByAddress);
 | 
				
			||||||
        // filter tokens based on visibility specified in props, do not show ZRX or ETHER as tracked or untracked
 | 
					        // filter tokens based on visibility specified in props, do not show ZRX or ETHER as tracked or untracked
 | 
				
			||||||
        const filteredTokens =
 | 
					        const filteredTokens =
 | 
				
			||||||
            this.props.tokenVisibility === TokenVisibility.ALL
 | 
					            this.props.tokenVisibility === TokenVisibility.All
 | 
				
			||||||
                ? allTokens
 | 
					                ? allTokens
 | 
				
			||||||
                : _.filter(allTokens, token => {
 | 
					                : _.filter(allTokens, token => {
 | 
				
			||||||
                      return (
 | 
					                      return (
 | 
				
			||||||
                          token.symbol !== constants.ZRX_TOKEN_SYMBOL &&
 | 
					                          token.symbol !== constants.ZRX_TOKEN_SYMBOL &&
 | 
				
			||||||
                          token.symbol !== constants.ETHER_TOKEN_SYMBOL &&
 | 
					                          token.symbol !== constants.ETHER_TOKEN_SYMBOL &&
 | 
				
			||||||
                          ((this.props.tokenVisibility === TokenVisibility.TRACKED && utils.isTokenTracked(token)) ||
 | 
					                          ((this.props.tokenVisibility === TokenVisibility.Tracked && utils.isTokenTracked(token)) ||
 | 
				
			||||||
                              (this.props.tokenVisibility === TokenVisibility.UNTRACKED &&
 | 
					                              (this.props.tokenVisibility === TokenVisibility.Untracked &&
 | 
				
			||||||
                                  !utils.isTokenTracked(token)))
 | 
					                                  !utils.isTokenTracked(token)))
 | 
				
			||||||
                      );
 | 
					                      );
 | 
				
			||||||
                  });
 | 
					                  });
 | 
				
			||||||
        // if we are showing tracked tokens, sort by date added, otherwise sort by symbol
 | 
					        // if we are showing tracked tokens, sort by date added, otherwise sort by symbol
 | 
				
			||||||
        const sortKey = this.props.tokenVisibility === TokenVisibility.TRACKED ? 'trackedTimestamp' : 'symbol';
 | 
					        const sortKey = this.props.tokenVisibility === TokenVisibility.Tracked ? 'trackedTimestamp' : 'symbol';
 | 
				
			||||||
        const sortedTokens = filteredTokens.sort(firstBy(sortKey));
 | 
					        const sortedTokens = filteredTokens.sort(firstBy(sortKey));
 | 
				
			||||||
        if (_.isEmpty(sortedTokens)) {
 | 
					        if (_.isEmpty(sortedTokens)) {
 | 
				
			||||||
            return <div className="mx-auto p4 h2">No tokens to remove.</div>;
 | 
					            return <div className="mx-auto p4 h2">No tokens to remove.</div>;
 | 
				
			||||||
@@ -188,7 +188,7 @@ export class AssetPicker extends React.Component<AssetPickerProps, AssetPickerSt
 | 
				
			|||||||
            cursor: 'pointer',
 | 
					            cursor: 'pointer',
 | 
				
			||||||
            opacity: isHovered ? 0.6 : 1,
 | 
					            opacity: isHovered ? 0.6 : 1,
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        if (this.props.tokenVisibility !== TokenVisibility.TRACKED) {
 | 
					        if (this.props.tokenVisibility !== TokenVisibility.Tracked) {
 | 
				
			||||||
            gridTiles.push(
 | 
					            gridTiles.push(
 | 
				
			||||||
                <div
 | 
					                <div
 | 
				
			||||||
                    key={otherTokenKey}
 | 
					                    key={otherTokenKey}
 | 
				
			||||||
@@ -222,7 +222,7 @@ export class AssetPicker extends React.Component<AssetPickerProps, AssetPickerSt
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    private _onCloseDialog(): void {
 | 
					    private _onCloseDialog(): void {
 | 
				
			||||||
        this.setState({
 | 
					        this.setState({
 | 
				
			||||||
            assetView: AssetViews.ASSET_PICKER,
 | 
					            assetView: AssetViews.AssetPicker,
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        this.props.onTokenChosen(this.props.currentTokenAddress);
 | 
					        this.props.onTokenChosen(this.props.currentTokenAddress);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -232,21 +232,21 @@ export class AssetPicker extends React.Component<AssetPickerProps, AssetPickerSt
 | 
				
			|||||||
            this.props.onTokenChosen(tokenAddress);
 | 
					            this.props.onTokenChosen(tokenAddress);
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            this.setState({
 | 
					            this.setState({
 | 
				
			||||||
                assetView: AssetViews.CONFIRM_TRACK_TOKEN,
 | 
					                assetView: AssetViews.ConfirmTrackToken,
 | 
				
			||||||
                chosenTrackTokenAddress: tokenAddress,
 | 
					                chosenTrackTokenAddress: tokenAddress,
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    private _onCustomAssetChosen(): void {
 | 
					    private _onCustomAssetChosen(): void {
 | 
				
			||||||
        this.setState({
 | 
					        this.setState({
 | 
				
			||||||
            assetView: AssetViews.NEW_TOKEN_FORM,
 | 
					            assetView: AssetViews.NewTokenForm,
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    private _onNewTokenSubmitted(newToken: Token): void {
 | 
					    private _onNewTokenSubmitted(newToken: Token): void {
 | 
				
			||||||
        trackedTokenStorage.addTrackedTokenToUser(this.props.userAddress, this.props.networkId, newToken);
 | 
					        trackedTokenStorage.addTrackedTokenToUser(this.props.userAddress, this.props.networkId, newToken);
 | 
				
			||||||
        this.props.dispatcher.addTokenToTokenByAddress(newToken);
 | 
					        this.props.dispatcher.addTokenToTokenByAddress(newToken);
 | 
				
			||||||
        this.setState({
 | 
					        this.setState({
 | 
				
			||||||
            assetView: AssetViews.ASSET_PICKER,
 | 
					            assetView: AssetViews.AssetPicker,
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        this.props.onTokenChosen(newToken.address);
 | 
					        this.props.onTokenChosen(newToken.address);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -254,7 +254,7 @@ export class AssetPicker extends React.Component<AssetPickerProps, AssetPickerSt
 | 
				
			|||||||
        const resetState: AssetPickerState = {
 | 
					        const resetState: AssetPickerState = {
 | 
				
			||||||
            ...this.state,
 | 
					            ...this.state,
 | 
				
			||||||
            isAddingTokenToTracked: false,
 | 
					            isAddingTokenToTracked: false,
 | 
				
			||||||
            assetView: AssetViews.ASSET_PICKER,
 | 
					            assetView: AssetViews.AssetPicker,
 | 
				
			||||||
            chosenTrackTokenAddress: undefined,
 | 
					            chosenTrackTokenAddress: undefined,
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        if (!didUserAcceptTracking) {
 | 
					        if (!didUserAcceptTracking) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -36,9 +36,9 @@ import { errorReporter } from 'ts/utils/error_reporter';
 | 
				
			|||||||
import { utils } from 'ts/utils/utils';
 | 
					import { utils } from 'ts/utils/utils';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
enum SigningState {
 | 
					enum SigningState {
 | 
				
			||||||
    UNSIGNED,
 | 
					    Unsigned,
 | 
				
			||||||
    SIGNING,
 | 
					    Signing,
 | 
				
			||||||
    SIGNED,
 | 
					    Signed,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
interface GenerateOrderFormProps {
 | 
					interface GenerateOrderFormProps {
 | 
				
			||||||
@@ -76,7 +76,7 @@ export class GenerateOrderForm extends React.Component<GenerateOrderFormProps, G
 | 
				
			|||||||
        this.state = {
 | 
					        this.state = {
 | 
				
			||||||
            globalErrMsg: '',
 | 
					            globalErrMsg: '',
 | 
				
			||||||
            shouldShowIncompleteErrs: false,
 | 
					            shouldShowIncompleteErrs: false,
 | 
				
			||||||
            signingState: SigningState.UNSIGNED,
 | 
					            signingState: SigningState.Unsigned,
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    public componentDidMount(): void {
 | 
					    public componentDidMount(): void {
 | 
				
			||||||
@@ -207,7 +207,7 @@ export class GenerateOrderForm extends React.Component<GenerateOrderFormProps, G
 | 
				
			|||||||
                            />
 | 
					                            />
 | 
				
			||||||
                        </div>
 | 
					                        </div>
 | 
				
			||||||
                        {this.state.globalErrMsg !== '' && (
 | 
					                        {this.state.globalErrMsg !== '' && (
 | 
				
			||||||
                            <Alert type={AlertTypes.ERROR} message={this.state.globalErrMsg} />
 | 
					                            <Alert type={AlertTypes.Error} message={this.state.globalErrMsg} />
 | 
				
			||||||
                        )}
 | 
					                        )}
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
@@ -215,7 +215,7 @@ export class GenerateOrderForm extends React.Component<GenerateOrderFormProps, G
 | 
				
			|||||||
                    title="Order JSON"
 | 
					                    title="Order JSON"
 | 
				
			||||||
                    titleStyle={{ fontWeight: 100 }}
 | 
					                    titleStyle={{ fontWeight: 100 }}
 | 
				
			||||||
                    modal={false}
 | 
					                    modal={false}
 | 
				
			||||||
                    open={this.state.signingState === SigningState.SIGNED}
 | 
					                    open={this.state.signingState === SigningState.Signed}
 | 
				
			||||||
                    onRequestClose={this._onCloseOrderJSONDialog.bind(this)}
 | 
					                    onRequestClose={this._onCloseOrderJSONDialog.bind(this)}
 | 
				
			||||||
                >
 | 
					                >
 | 
				
			||||||
                    <OrderJSON
 | 
					                    <OrderJSON
 | 
				
			||||||
@@ -247,7 +247,7 @@ export class GenerateOrderForm extends React.Component<GenerateOrderFormProps, G
 | 
				
			|||||||
        // orderHash will not collide with the previously generated orderHash.
 | 
					        // orderHash will not collide with the previously generated orderHash.
 | 
				
			||||||
        this.props.dispatcher.updateOrderSalt(generatePseudoRandomSalt());
 | 
					        this.props.dispatcher.updateOrderSalt(generatePseudoRandomSalt());
 | 
				
			||||||
        this.setState({
 | 
					        this.setState({
 | 
				
			||||||
            signingState: SigningState.UNSIGNED,
 | 
					            signingState: SigningState.Unsigned,
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    private async _onSignClickedAsync(): Promise<boolean> {
 | 
					    private async _onSignClickedAsync(): Promise<boolean> {
 | 
				
			||||||
@@ -305,13 +305,13 @@ export class GenerateOrderForm extends React.Component<GenerateOrderFormProps, G
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    private async _signTransactionAsync(): Promise<PortalOrder | undefined> {
 | 
					    private async _signTransactionAsync(): Promise<PortalOrder | undefined> {
 | 
				
			||||||
        this.setState({
 | 
					        this.setState({
 | 
				
			||||||
            signingState: SigningState.SIGNING,
 | 
					            signingState: SigningState.Signing,
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        const exchangeAddress = this.props.blockchain.getExchangeContractAddressIfExists();
 | 
					        const exchangeAddress = this.props.blockchain.getExchangeContractAddressIfExists();
 | 
				
			||||||
        if (_.isUndefined(exchangeAddress)) {
 | 
					        if (_.isUndefined(exchangeAddress)) {
 | 
				
			||||||
            this.props.dispatcher.updateShouldBlockchainErrDialogBeOpen(true);
 | 
					            this.props.dispatcher.updateShouldBlockchainErrDialogBeOpen(true);
 | 
				
			||||||
            this.setState({
 | 
					            this.setState({
 | 
				
			||||||
                signingState: SigningState.UNSIGNED,
 | 
					                signingState: SigningState.Unsigned,
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
            return undefined;
 | 
					            return undefined;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -371,7 +371,7 @@ export class GenerateOrderForm extends React.Component<GenerateOrderFormProps, G
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        this.setState({
 | 
					        this.setState({
 | 
				
			||||||
            signingState: globalErrMsg === '' ? SigningState.SIGNED : SigningState.UNSIGNED,
 | 
					            signingState: globalErrMsg === '' ? SigningState.Signed : SigningState.Unsigned,
 | 
				
			||||||
            globalErrMsg,
 | 
					            globalErrMsg,
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        return order;
 | 
					        return order;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -93,7 +93,7 @@ export class NewTokenForm extends React.Component<NewTokenFormProps, NewTokenFor
 | 
				
			|||||||
                        onClickAsyncFn={this._onAddNewTokenClickAsync.bind(this)}
 | 
					                        onClickAsyncFn={this._onAddNewTokenClickAsync.bind(this)}
 | 
				
			||||||
                    />
 | 
					                    />
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
                {this.state.globalErrMsg !== '' && <Alert type={AlertTypes.ERROR} message={this.state.globalErrMsg} />}
 | 
					                {this.state.globalErrMsg !== '' && <Alert type={AlertTypes.Error} message={this.state.globalErrMsg} />}
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -150,7 +150,7 @@ export class AllowanceStateToggle extends React.Component<AllowanceStateTogglePr
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
            logUtils.log(`Unexpected error encountered: ${err}`);
 | 
					            logUtils.log(`Unexpected error encountered: ${err}`);
 | 
				
			||||||
            logUtils.log(err.stack);
 | 
					            logUtils.log(err.stack);
 | 
				
			||||||
            this.props.onErrorOccurred(BalanceErrs.allowanceSettingFailed);
 | 
					            this.props.onErrorOccurred(BalanceErrs.AllowanceSettingFailed);
 | 
				
			||||||
            errorReporter.report(err);
 | 
					            errorReporter.report(err);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -229,8 +229,8 @@ export class Portal extends React.Component<PortalProps, PortalState> {
 | 
				
			|||||||
        const isAssetPickerDialogOpen = this.state.tokenManagementState !== TokenManagementState.None;
 | 
					        const isAssetPickerDialogOpen = this.state.tokenManagementState !== TokenManagementState.None;
 | 
				
			||||||
        const tokenVisibility =
 | 
					        const tokenVisibility =
 | 
				
			||||||
            this.state.tokenManagementState === TokenManagementState.Add
 | 
					            this.state.tokenManagementState === TokenManagementState.Add
 | 
				
			||||||
                ? TokenVisibility.UNTRACKED
 | 
					                ? TokenVisibility.Untracked
 | 
				
			||||||
                : TokenVisibility.TRACKED;
 | 
					                : TokenVisibility.Tracked;
 | 
				
			||||||
        return (
 | 
					        return (
 | 
				
			||||||
            <Container>
 | 
					            <Container>
 | 
				
			||||||
                <MetaTags title={DOCUMENT_TITLE} description={DOCUMENT_DESCRIPTION} />
 | 
					                <MetaTags title={DOCUMENT_TITLE} description={DOCUMENT_DESCRIPTION} />
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -303,7 +303,7 @@ export class TokenBalances extends React.Component<TokenBalancesProps, TokenBala
 | 
				
			|||||||
                    currentTokenAddress={''}
 | 
					                    currentTokenAddress={''}
 | 
				
			||||||
                    onTokenChosen={this._onAssetTokenPicked.bind(this)}
 | 
					                    onTokenChosen={this._onAssetTokenPicked.bind(this)}
 | 
				
			||||||
                    tokenByAddress={this.props.tokenByAddress}
 | 
					                    tokenByAddress={this.props.tokenByAddress}
 | 
				
			||||||
                    tokenVisibility={this.state.isAddingToken ? TokenVisibility.UNTRACKED : TokenVisibility.TRACKED}
 | 
					                    tokenVisibility={this.state.isAddingToken ? TokenVisibility.Untracked : TokenVisibility.Tracked}
 | 
				
			||||||
                />
 | 
					                />
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
@@ -439,7 +439,7 @@ export class TokenBalances extends React.Component<TokenBalancesProps, TokenBala
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    private _onSendFailed(): void {
 | 
					    private _onSendFailed(): void {
 | 
				
			||||||
        this.setState({
 | 
					        this.setState({
 | 
				
			||||||
            errorType: BalanceErrs.sendFailed,
 | 
					            errorType: BalanceErrs.SendFailed,
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    private _renderAmount(amount: BigNumber, decimals: number): React.ReactNode {
 | 
					    private _renderAmount(amount: BigNumber, decimals: number): React.ReactNode {
 | 
				
			||||||
@@ -460,7 +460,7 @@ export class TokenBalances extends React.Component<TokenBalancesProps, TokenBala
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    private _renderErrorDialogBody(): React.ReactNode {
 | 
					    private _renderErrorDialogBody(): React.ReactNode {
 | 
				
			||||||
        switch (this.state.errorType) {
 | 
					        switch (this.state.errorType) {
 | 
				
			||||||
            case BalanceErrs.incorrectNetworkForFaucet:
 | 
					            case BalanceErrs.IncorrectNetworkForFaucet:
 | 
				
			||||||
                return (
 | 
					                return (
 | 
				
			||||||
                    <div>
 | 
					                    <div>
 | 
				
			||||||
                        Our faucet can only send test Ether to addresses on testnets. Please make sure you are connected
 | 
					                        Our faucet can only send test Ether to addresses on testnets. Please make sure you are connected
 | 
				
			||||||
@@ -468,7 +468,7 @@ export class TokenBalances extends React.Component<TokenBalancesProps, TokenBala
 | 
				
			|||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                );
 | 
					                );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case BalanceErrs.faucetRequestFailed:
 | 
					            case BalanceErrs.FaucetRequestFailed:
 | 
				
			||||||
                return (
 | 
					                return (
 | 
				
			||||||
                    <div>
 | 
					                    <div>
 | 
				
			||||||
                        An unexpected error occurred while trying to request test Ether from our faucet. Please refresh
 | 
					                        An unexpected error occurred while trying to request test Ether from our faucet. Please refresh
 | 
				
			||||||
@@ -476,13 +476,13 @@ export class TokenBalances extends React.Component<TokenBalancesProps, TokenBala
 | 
				
			|||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                );
 | 
					                );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case BalanceErrs.faucetQueueIsFull:
 | 
					            case BalanceErrs.FaucetQueueIsFull:
 | 
				
			||||||
                return <div>Our test Ether faucet queue is full. Please try requesting test Ether again later.</div>;
 | 
					                return <div>Our test Ether faucet queue is full. Please try requesting test Ether again later.</div>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case BalanceErrs.mintingFailed:
 | 
					            case BalanceErrs.MintingFailed:
 | 
				
			||||||
                return <div>Minting your test tokens failed unexpectedly. Please refresh the page and try again.</div>;
 | 
					                return <div>Minting your test tokens failed unexpectedly. Please refresh the page and try again.</div>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            case BalanceErrs.allowanceSettingFailed:
 | 
					            case BalanceErrs.AllowanceSettingFailed:
 | 
				
			||||||
                return (
 | 
					                return (
 | 
				
			||||||
                    <div>
 | 
					                    <div>
 | 
				
			||||||
                        An unexpected error occurred while trying to set your test token allowance. Please refresh the
 | 
					                        An unexpected error occurred while trying to set your test token allowance. Please refresh the
 | 
				
			||||||
@@ -521,7 +521,7 @@ export class TokenBalances extends React.Component<TokenBalancesProps, TokenBala
 | 
				
			|||||||
            logUtils.log(`Unexpected error encountered: ${err}`);
 | 
					            logUtils.log(`Unexpected error encountered: ${err}`);
 | 
				
			||||||
            logUtils.log(err.stack);
 | 
					            logUtils.log(err.stack);
 | 
				
			||||||
            this.setState({
 | 
					            this.setState({
 | 
				
			||||||
                errorType: BalanceErrs.mintingFailed,
 | 
					                errorType: BalanceErrs.MintingFailed,
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
            errorReporter.report(err);
 | 
					            errorReporter.report(err);
 | 
				
			||||||
            return false;
 | 
					            return false;
 | 
				
			||||||
@@ -537,7 +537,7 @@ export class TokenBalances extends React.Component<TokenBalancesProps, TokenBala
 | 
				
			|||||||
        // from, we must show user an error message
 | 
					        // from, we must show user an error message
 | 
				
			||||||
        if (!utils.isTestNetwork(this.props.blockchain.networkId)) {
 | 
					        if (!utils.isTestNetwork(this.props.blockchain.networkId)) {
 | 
				
			||||||
            this.setState({
 | 
					            this.setState({
 | 
				
			||||||
                errorType: BalanceErrs.incorrectNetworkForFaucet,
 | 
					                errorType: BalanceErrs.IncorrectNetworkForFaucet,
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
            return false;
 | 
					            return false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -553,8 +553,8 @@ export class TokenBalances extends React.Component<TokenBalancesProps, TokenBala
 | 
				
			|||||||
            logUtils.log(`Unexpected status code: ${response.status} -> ${responseBody}`);
 | 
					            logUtils.log(`Unexpected status code: ${response.status} -> ${responseBody}`);
 | 
				
			||||||
            const errorType =
 | 
					            const errorType =
 | 
				
			||||||
                response.status === constants.UNAVAILABLE_STATUS
 | 
					                response.status === constants.UNAVAILABLE_STATUS
 | 
				
			||||||
                    ? BalanceErrs.faucetQueueIsFull
 | 
					                    ? BalanceErrs.FaucetQueueIsFull
 | 
				
			||||||
                    : BalanceErrs.faucetRequestFailed;
 | 
					                    : BalanceErrs.FaucetRequestFailed;
 | 
				
			||||||
            this.setState({
 | 
					            this.setState({
 | 
				
			||||||
                errorType,
 | 
					                errorType,
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,7 +8,7 @@ interface AlertProps {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const Alert = (props: AlertProps) => {
 | 
					export const Alert = (props: AlertProps) => {
 | 
				
			||||||
    const isAlert = props.type === AlertTypes.ERROR;
 | 
					    const isAlert = props.type === AlertTypes.Error;
 | 
				
			||||||
    const errMsgStyles = {
 | 
					    const errMsgStyles = {
 | 
				
			||||||
        background: isAlert ? colors.red200 : colors.lightestGreen,
 | 
					        background: isAlert ? colors.red200 : colors.lightestGreen,
 | 
				
			||||||
        color: colors.white,
 | 
					        color: colors.white,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,9 +6,9 @@ import * as React from 'react';
 | 
				
			|||||||
const COMPLETE_STATE_SHOW_LENGTH_MS = 2000;
 | 
					const COMPLETE_STATE_SHOW_LENGTH_MS = 2000;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
enum ButtonState {
 | 
					enum ButtonState {
 | 
				
			||||||
    READY,
 | 
					    Ready,
 | 
				
			||||||
    LOADING,
 | 
					    Loading,
 | 
				
			||||||
    COMPLETE,
 | 
					    Complete,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
interface LifeCycleRaisedButtonProps {
 | 
					interface LifeCycleRaisedButtonProps {
 | 
				
			||||||
@@ -38,7 +38,7 @@ export class LifeCycleRaisedButton extends React.Component<LifeCycleRaisedButton
 | 
				
			|||||||
    constructor(props: LifeCycleRaisedButtonProps) {
 | 
					    constructor(props: LifeCycleRaisedButtonProps) {
 | 
				
			||||||
        super(props);
 | 
					        super(props);
 | 
				
			||||||
        this.state = {
 | 
					        this.state = {
 | 
				
			||||||
            buttonState: ButtonState.READY,
 | 
					            buttonState: ButtonState.Ready,
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    public componentWillUnmount(): void {
 | 
					    public componentWillUnmount(): void {
 | 
				
			||||||
@@ -52,13 +52,13 @@ export class LifeCycleRaisedButton extends React.Component<LifeCycleRaisedButton
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        let label;
 | 
					        let label;
 | 
				
			||||||
        switch (this.state.buttonState) {
 | 
					        switch (this.state.buttonState) {
 | 
				
			||||||
            case ButtonState.READY:
 | 
					            case ButtonState.Ready:
 | 
				
			||||||
                label = this.props.labelReady;
 | 
					                label = this.props.labelReady;
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            case ButtonState.LOADING:
 | 
					            case ButtonState.Loading:
 | 
				
			||||||
                label = this.props.labelLoading;
 | 
					                label = this.props.labelLoading;
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            case ButtonState.COMPLETE:
 | 
					            case ButtonState.Complete:
 | 
				
			||||||
                label = this.props.labelComplete;
 | 
					                label = this.props.labelComplete;
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            default:
 | 
					            default:
 | 
				
			||||||
@@ -72,13 +72,13 @@ export class LifeCycleRaisedButton extends React.Component<LifeCycleRaisedButton
 | 
				
			|||||||
                backgroundColor={this.props.backgroundColor}
 | 
					                backgroundColor={this.props.backgroundColor}
 | 
				
			||||||
                labelColor={this.props.labelColor}
 | 
					                labelColor={this.props.labelColor}
 | 
				
			||||||
                onClick={this.onClickAsync.bind(this)}
 | 
					                onClick={this.onClickAsync.bind(this)}
 | 
				
			||||||
                disabled={this.props.isDisabled || this.state.buttonState !== ButtonState.READY}
 | 
					                disabled={this.props.isDisabled || this.state.buttonState !== ButtonState.Ready}
 | 
				
			||||||
            />
 | 
					            />
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    public async onClickAsync(): Promise<void> {
 | 
					    public async onClickAsync(): Promise<void> {
 | 
				
			||||||
        this.setState({
 | 
					        this.setState({
 | 
				
			||||||
            buttonState: ButtonState.LOADING,
 | 
					            buttonState: ButtonState.Loading,
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        const didSucceed = await this.props.onClickAsyncFn();
 | 
					        const didSucceed = await this.props.onClickAsyncFn();
 | 
				
			||||||
        if (this._didUnmount) {
 | 
					        if (this._didUnmount) {
 | 
				
			||||||
@@ -86,16 +86,16 @@ export class LifeCycleRaisedButton extends React.Component<LifeCycleRaisedButton
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        if (didSucceed) {
 | 
					        if (didSucceed) {
 | 
				
			||||||
            this.setState({
 | 
					            this.setState({
 | 
				
			||||||
                buttonState: ButtonState.COMPLETE,
 | 
					                buttonState: ButtonState.Complete,
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
            this._buttonTimeoutId = window.setTimeout(() => {
 | 
					            this._buttonTimeoutId = window.setTimeout(() => {
 | 
				
			||||||
                this.setState({
 | 
					                this.setState({
 | 
				
			||||||
                    buttonState: ButtonState.READY,
 | 
					                    buttonState: ButtonState.Ready,
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
            }, COMPLETE_STATE_SHOW_LENGTH_MS);
 | 
					            }, COMPLETE_STATE_SHOW_LENGTH_MS);
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            this.setState({
 | 
					            this.setState({
 | 
				
			||||||
                buttonState: ButtonState.READY,
 | 
					                buttonState: ButtonState.Ready,
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -83,12 +83,12 @@ export interface Fill {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export enum BalanceErrs {
 | 
					export enum BalanceErrs {
 | 
				
			||||||
    incorrectNetworkForFaucet,
 | 
					    IncorrectNetworkForFaucet,
 | 
				
			||||||
    faucetRequestFailed,
 | 
					    FaucetRequestFailed,
 | 
				
			||||||
    faucetQueueIsFull,
 | 
					    FaucetQueueIsFull,
 | 
				
			||||||
    mintingFailed,
 | 
					    MintingFailed,
 | 
				
			||||||
    sendFailed,
 | 
					    SendFailed,
 | 
				
			||||||
    allowanceSettingFailed,
 | 
					    AllowanceSettingFailed,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export enum ActionTypes {
 | 
					export enum ActionTypes {
 | 
				
			||||||
@@ -209,8 +209,8 @@ export enum ScreenWidths {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export enum AlertTypes {
 | 
					export enum AlertTypes {
 | 
				
			||||||
    ERROR,
 | 
					    Error,
 | 
				
			||||||
    SUCCESS,
 | 
					    Success,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export enum BlockchainErrs {
 | 
					export enum BlockchainErrs {
 | 
				
			||||||
@@ -228,11 +228,11 @@ export enum BlockchainCallErrs {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export enum Environments {
 | 
					export enum Environments {
 | 
				
			||||||
    DEVELOPMENT = 'DEVELOPMENT',
 | 
					    Development = 'DEVELOPMENT',
 | 
				
			||||||
    DOGFOOD = 'DOGFOOD',
 | 
					    Dogfood = 'DOGFOOD',
 | 
				
			||||||
    STAGING = 'STAGING',
 | 
					    Staging = 'STAGING',
 | 
				
			||||||
    PRODUCTION = 'PRODUCTION',
 | 
					    Production = 'PRODUCTION',
 | 
				
			||||||
    UNKNOWN = 'UNKNOWN',
 | 
					    Unknown = 'UNKNOWN',
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export type ContractInstance = any; // TODO: add type definition for Contract
 | 
					export type ContractInstance = any; // TODO: add type definition for Contract
 | 
				
			||||||
@@ -323,9 +323,9 @@ export interface DialogConfigs {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export enum TokenVisibility {
 | 
					export enum TokenVisibility {
 | 
				
			||||||
    ALL = 'ALL',
 | 
					    All = 'ALL',
 | 
				
			||||||
    UNTRACKED = 'UNTRACKED',
 | 
					    Untracked = 'UNTRACKED',
 | 
				
			||||||
    TRACKED = 'TRACKED',
 | 
					    Tracked = 'TRACKED',
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface VersionToFilePath {
 | 
					export interface VersionToFilePath {
 | 
				
			||||||
@@ -350,7 +350,7 @@ export enum WebsitePaths {
 | 
				
			|||||||
    Docs = '/docs',
 | 
					    Docs = '/docs',
 | 
				
			||||||
    ZeroExJs = '/docs/0x.js',
 | 
					    ZeroExJs = '/docs/0x.js',
 | 
				
			||||||
    Home = '/',
 | 
					    Home = '/',
 | 
				
			||||||
    FAQ = '/faq',
 | 
					    FAQ = '/faq', // tslint:disable-line:enum-naming
 | 
				
			||||||
    About = '/about',
 | 
					    About = '/about',
 | 
				
			||||||
    AboutMission = '/about/mission',
 | 
					    AboutMission = '/about/mission',
 | 
				
			||||||
    AboutTeam = '/about/team',
 | 
					    AboutTeam = '/about/team',
 | 
				
			||||||
@@ -629,7 +629,7 @@ export enum BrowserType {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
export enum OperatingSystemType {
 | 
					export enum OperatingSystemType {
 | 
				
			||||||
    Android = 'Android',
 | 
					    Android = 'Android',
 | 
				
			||||||
    iOS = 'iOS',
 | 
					    iOS = 'iOS', // tslint:disable-line:enum-naming
 | 
				
			||||||
    Mac = 'Mac',
 | 
					    Mac = 'Mac',
 | 
				
			||||||
    Windows = 'Windows',
 | 
					    Windows = 'Windows',
 | 
				
			||||||
    WindowsPhone = 'WindowsPhone',
 | 
					    WindowsPhone = 'WindowsPhone',
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -342,18 +342,18 @@ export const utils = {
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
    getEnvironment(): Environments {
 | 
					    getEnvironment(): Environments {
 | 
				
			||||||
        if (utils.isDogfood()) {
 | 
					        if (utils.isDogfood()) {
 | 
				
			||||||
            return Environments.DOGFOOD;
 | 
					            return Environments.Dogfood;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (utils.isDevelopment()) {
 | 
					        if (utils.isDevelopment()) {
 | 
				
			||||||
            return Environments.DEVELOPMENT;
 | 
					            return Environments.Development;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (utils.isStaging()) {
 | 
					        if (utils.isStaging()) {
 | 
				
			||||||
            return Environments.STAGING;
 | 
					            return Environments.Staging;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (utils.isProduction()) {
 | 
					        if (utils.isProduction()) {
 | 
				
			||||||
            return Environments.PRODUCTION;
 | 
					            return Environments.Production;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return Environments.UNKNOWN;
 | 
					        return Environments.Unknown;
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    getEthToken(tokenByAddress: TokenByAddress): Token {
 | 
					    getEthToken(tokenByAddress: TokenByAddress): Token {
 | 
				
			||||||
        return utils.getTokenBySymbol(constants.ETHER_TOKEN_SYMBOL, tokenByAddress);
 | 
					        return utils.getTokenBySymbol(constants.ETHER_TOKEN_SYMBOL, tokenByAddress);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user