From c85e87017549e4508ca767a899f721bbd70c93ba Mon Sep 17 00:00:00 2001 From: Max Axenov Date: Mon, 10 Jun 2019 12:38:04 +0300 Subject: [PATCH 1/6] DEXW-1785: fix thing with replace to fake values --- .../welcome/controllers/WelcomeCtrl.js | 54 ++++++++++--------- 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/src/modules/welcome/controllers/WelcomeCtrl.js b/src/modules/welcome/controllers/WelcomeCtrl.js index 31dc68682a..49b3e9b593 100644 --- a/src/modules/welcome/controllers/WelcomeCtrl.js +++ b/src/modules/welcome/controllers/WelcomeCtrl.js @@ -151,6 +151,11 @@ * @private */ _initPairs() { + const FAKE_RATE_HISTORY = [{ + rate: new BigNumber(0), + timestamp: ds.utils.normalizeTime(Date.now()) + }]; + const startDate = angularUtils.moment().add().day(-7); Promise.all(PAIRS_IN_SLIDER.map(pair => ds.api.pairs.get(pair.amount, pair.price))) .then(pairs => Promise.all(pairs.map(pair => ds.api.pairs.info(pair)))) @@ -158,17 +163,18 @@ const tempInfoList = flatten(infoList); Promise.all(tempInfoList.map(info => { return waves.utils.getRateHistory(info.amountAsset.id, info.priceAsset.id, startDate); - })).then(rateHistory => { - this.pairsInfoList = tempInfoList.map((info, i) => { - return { - volumeBigNum: info.volume.getTokens(), - rateHistory: rateHistory[i], - ...info - }; - }); }) - .catch(() => { - this.pairsInfoList = tempInfoList.map(this._fakeValues); + .map(promise => promise.catch(() => undefined))) + .then(rateHistory => { + this.pairsInfoList = tempInfoList + .map(this._fakeValues) + .map((info, i) => { + return { + volumeBigNum: info.volume.getTokens(), + rateHistory: rateHistory[i] || FAKE_RATE_HISTORY, + ...info + }; + }); }) .then(() => { angularUtils.safeApply($scope); @@ -183,21 +189,19 @@ * @private */ _fakeValues(info) { - return { - rateHistory: [{ - rate: new BigNumber(0), - timestamp: ds.utils.normalizeTime(Date.now()) - }], - ticker: info.displayName, - amountAsset: info.amountAsset, - priceAsset: info.priceAsset, - change24: new BigNumber(0), - high: new Money(0, info.priceAsset), - id: info.id, - lastPrice: new Money(0, info.priceAsset), - low: new Money(0, info.priceAsset), - volume: new Money(0, info.priceAsset) - }; + return info.lastPrice ? + info : + { + ticker: info.displayName, + amountAsset: info.amountAsset, + priceAsset: info.priceAsset, + change24: new BigNumber(0), + high: new Money(0, info.priceAsset), + id: info.id, + lastPrice: new Money(0, info.priceAsset), + low: new Money(0, info.priceAsset), + volume: new Money(0, info.priceAsset) + }; } /** From ccca222ecf2747d06523d27574804234d773ff23 Mon Sep 17 00:00:00 2001 From: Max Axenov Date: Mon, 10 Jun 2019 14:38:24 +0300 Subject: [PATCH 2/6] DEXW-1785: added check for volume --- src/modules/welcome/controllers/WelcomeCtrl.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/modules/welcome/controllers/WelcomeCtrl.js b/src/modules/welcome/controllers/WelcomeCtrl.js index 49b3e9b593..296bb4cfdd 100644 --- a/src/modules/welcome/controllers/WelcomeCtrl.js +++ b/src/modules/welcome/controllers/WelcomeCtrl.js @@ -189,18 +189,18 @@ * @private */ _fakeValues(info) { - return info.lastPrice ? + return info.lastPrice && info.volume ? info : { ticker: info.displayName, amountAsset: info.amountAsset, priceAsset: info.priceAsset, - change24: new BigNumber(0), - high: new Money(0, info.priceAsset), + change24: info.change24 || new BigNumber(0), + high: info.high || new Money(0, info.priceAsset), id: info.id, - lastPrice: new Money(0, info.priceAsset), - low: new Money(0, info.priceAsset), - volume: new Money(0, info.priceAsset) + lastPrice: info.lastPrice || new Money(0, info.priceAsset), + low: info.low || new Money(0, info.priceAsset), + volume: info.volume || new Money(0, info.priceAsset) }; } From 49adf031ee596dc9c7a186cd213d485dc477823f Mon Sep 17 00:00:00 2001 From: Max Axenov Date: Mon, 10 Jun 2019 14:48:07 +0300 Subject: [PATCH 3/6] DEXW-1785: added for ticker check --- src/modules/welcome/controllers/WelcomeCtrl.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/welcome/controllers/WelcomeCtrl.js b/src/modules/welcome/controllers/WelcomeCtrl.js index 296bb4cfdd..42131fcbe5 100644 --- a/src/modules/welcome/controllers/WelcomeCtrl.js +++ b/src/modules/welcome/controllers/WelcomeCtrl.js @@ -189,10 +189,10 @@ * @private */ _fakeValues(info) { - return info.lastPrice && info.volume ? + return info.lastPrice && info.volume && info.ticker ? info : { - ticker: info.displayName, + ticker: info.ticker || info.displayName, amountAsset: info.amountAsset, priceAsset: info.priceAsset, change24: info.change24 || new BigNumber(0), From 68d26473f1920e4062b9282946288011586bb733 Mon Sep 17 00:00:00 2001 From: Max Axenov Date: Mon, 10 Jun 2019 14:52:06 +0300 Subject: [PATCH 4/6] DEXW-1785: change fakeValues method --- .../welcome/controllers/WelcomeCtrl.js | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/modules/welcome/controllers/WelcomeCtrl.js b/src/modules/welcome/controllers/WelcomeCtrl.js index 42131fcbe5..aa8be9ee10 100644 --- a/src/modules/welcome/controllers/WelcomeCtrl.js +++ b/src/modules/welcome/controllers/WelcomeCtrl.js @@ -167,7 +167,7 @@ .map(promise => promise.catch(() => undefined))) .then(rateHistory => { this.pairsInfoList = tempInfoList - .map(this._fakeValues) + .map(WelcomeCtrl._fillValues) .map((info, i) => { return { volumeBigNum: info.volume.getTokens(), @@ -186,22 +186,20 @@ /** * @param info - * @private + * @static */ - _fakeValues(info) { - return info.lastPrice && info.volume && info.ticker ? - info : - { - ticker: info.ticker || info.displayName, - amountAsset: info.amountAsset, - priceAsset: info.priceAsset, - change24: info.change24 || new BigNumber(0), - high: info.high || new Money(0, info.priceAsset), - id: info.id, - lastPrice: info.lastPrice || new Money(0, info.priceAsset), - low: info.low || new Money(0, info.priceAsset), - volume: info.volume || new Money(0, info.priceAsset) - }; + static _fillValues(info) { + return { + ticker: info.ticker || info.displayName, + amountAsset: info.amountAsset, + priceAsset: info.priceAsset, + change24: info.change24 || new BigNumber(0), + high: info.high || new Money(0, info.priceAsset), + id: info.id, + lastPrice: info.lastPrice || new Money(0, info.priceAsset), + low: info.low || new Money(0, info.priceAsset), + volume: info.volume || new Money(0, info.priceAsset) + }; } /** From 23b80c8b48263cd992ba3b0b5b9dcb5844bc871c Mon Sep 17 00:00:00 2001 From: Max Axenov Date: Mon, 10 Jun 2019 16:23:52 +0300 Subject: [PATCH 5/6] DEXW-1785: refactor promises --- .../welcome/controllers/WelcomeCtrl.js | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/modules/welcome/controllers/WelcomeCtrl.js b/src/modules/welcome/controllers/WelcomeCtrl.js index aa8be9ee10..8d13f10254 100644 --- a/src/modules/welcome/controllers/WelcomeCtrl.js +++ b/src/modules/welcome/controllers/WelcomeCtrl.js @@ -160,21 +160,15 @@ Promise.all(PAIRS_IN_SLIDER.map(pair => ds.api.pairs.get(pair.amount, pair.price))) .then(pairs => Promise.all(pairs.map(pair => ds.api.pairs.info(pair)))) .then(infoList => { - const tempInfoList = flatten(infoList); - Promise.all(tempInfoList.map(info => { - return waves.utils.getRateHistory(info.amountAsset.id, info.priceAsset.id, startDate); - }) - .map(promise => promise.catch(() => undefined))) + const promiseFromRateHistory = Promise.all( + PAIRS_IN_SLIDER + .map(({ amount, price }) => waves.utils.getRateHistory(amount, price, startDate)) + .map(promise => promise.catch(() => FAKE_RATE_HISTORY)) + ); + + promiseFromRateHistory .then(rateHistory => { - this.pairsInfoList = tempInfoList - .map(WelcomeCtrl._fillValues) - .map((info, i) => { - return { - volumeBigNum: info.volume.getTokens(), - rateHistory: rateHistory[i] || FAKE_RATE_HISTORY, - ...info - }; - }); + this.pairsInfoList = rateHistory.map(WelcomeCtrl._fillValues(flatten(infoList))); }) .then(() => { angularUtils.safeApply($scope); @@ -185,20 +179,26 @@ } /** - * @param info + * @param {array} infoList * @static */ - static _fillValues(info) { - return { - ticker: info.ticker || info.displayName, - amountAsset: info.amountAsset, - priceAsset: info.priceAsset, - change24: info.change24 || new BigNumber(0), - high: info.high || new Money(0, info.priceAsset), - id: info.id, - lastPrice: info.lastPrice || new Money(0, info.priceAsset), - low: info.low || new Money(0, info.priceAsset), - volume: info.volume || new Money(0, info.priceAsset) + static _fillValues(infoList) { + return (history, i) => { + const info = infoList[i]; + const volume = info.volume || new Money(0, info.priceAsset); + return { + ticker: info.ticker || info.displayName, + amountAsset: info.amountAsset, + priceAsset: info.priceAsset, + change24: info.change24 || new BigNumber(0), + high: info.high || new Money(0, info.priceAsset), + id: info.id, + lastPrice: info.lastPrice || new Money(0, info.priceAsset), + low: info.low || new Money(0, info.priceAsset), + volume, + rateHistory: history, + volumeBigNum: volume.getTokens() + }; }; } From ba3d2f711f86753ca2f023fadf6360ddb4314950 Mon Sep 17 00:00:00 2001 From: Max Axenov Date: Tue, 11 Jun 2019 11:17:28 +0300 Subject: [PATCH 6/6] DEXW-1785: more refactor --- src/modules/welcome/controllers/WelcomeCtrl.js | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/modules/welcome/controllers/WelcomeCtrl.js b/src/modules/welcome/controllers/WelcomeCtrl.js index 8d13f10254..4c83bcbe17 100644 --- a/src/modules/welcome/controllers/WelcomeCtrl.js +++ b/src/modules/welcome/controllers/WelcomeCtrl.js @@ -160,15 +160,15 @@ Promise.all(PAIRS_IN_SLIDER.map(pair => ds.api.pairs.get(pair.amount, pair.price))) .then(pairs => Promise.all(pairs.map(pair => ds.api.pairs.info(pair)))) .then(infoList => { - const promiseFromRateHistory = Promise.all( + const flattenInfoList = flatten(infoList); + + Promise.all( PAIRS_IN_SLIDER .map(({ amount, price }) => waves.utils.getRateHistory(amount, price, startDate)) .map(promise => promise.catch(() => FAKE_RATE_HISTORY)) - ); - - promiseFromRateHistory + ) .then(rateHistory => { - this.pairsInfoList = rateHistory.map(WelcomeCtrl._fillValues(flatten(infoList))); + this.pairsInfoList = rateHistory.map(WelcomeCtrl._fillValues(flattenInfoList)); }) .then(() => { angularUtils.safeApply($scope); @@ -183,20 +183,18 @@ * @static */ static _fillValues(infoList) { - return (history, i) => { + return (rateHistory, i) => { const info = infoList[i]; const volume = info.volume || new Money(0, info.priceAsset); return { + ...info, ticker: info.ticker || info.displayName, - amountAsset: info.amountAsset, - priceAsset: info.priceAsset, change24: info.change24 || new BigNumber(0), high: info.high || new Money(0, info.priceAsset), - id: info.id, lastPrice: info.lastPrice || new Money(0, info.priceAsset), low: info.low || new Money(0, info.priceAsset), volume, - rateHistory: history, + rateHistory, volumeBigNum: volume.getTokens() }; };