From 04278d5d65dbc16d083dd4d4cbd2596f535ebb94 Mon Sep 17 00:00:00 2001 From: Aaron Imming Date: Fri, 2 Aug 2019 10:17:36 +0800 Subject: [PATCH 1/4] Keep track of balance in globalObserver --- src/botPage/bot/TradeEngine/Balance.js | 19 ++++++++++++------- src/botPage/bot/TradeEngine/index.js | 7 +++++-- src/botPage/view/View.js | 2 ++ 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/botPage/bot/TradeEngine/Balance.js b/src/botPage/bot/TradeEngine/Balance.js index 58ea161e25..eede7fd2cb 100644 --- a/src/botPage/bot/TradeEngine/Balance.js +++ b/src/botPage/bot/TradeEngine/Balance.js @@ -1,7 +1,8 @@ import { roundBalance } from '../../common/tools'; import { info } from '../broadcast'; +import { observer as globalObserver } from '../../../common/utils/observer'; -let balanceStr = ''; +const balanceStr = ''; export default Engine => class Balance extends Engine { @@ -11,8 +12,10 @@ export default Engine => balance: { balance: b, currency }, } = r; - this.balance = roundBalance({ currency, balance: b }); - balanceStr = `${this.balance} ${currency}`; + const balance = roundBalance({ currency, balance: b }); + const balanceStr = `${balance} ${currency}`; + + globalObserver.setState({ balance, currency }); info({ accountID: this.accountInfo.loginid, balance: balanceStr }); }); @@ -20,17 +23,19 @@ export default Engine => // eslint-disable-next-line class-methods-use-this getBalance(type) { const { scope } = this.store.getState(); - let { balance } = this; + const currency = globalObserver.getState('currency'); + let balance = globalObserver.getState('balance'); // Deduct trade `amount` in this scope for correct value in `balance`-block if (scope === 'BEFORE_PURCHASE') { balance = roundBalance({ - currency: this.tradeOptions.currency, - balance : Number(balance) - this.tradeOptions.amount, + balance: Number(balance) - this.tradeOptions.amount, + currency, }); - balanceStr = `${balance} ${this.tradeOptions.currency}`; } + const balanceStr = `${balance} ${currency}`; + return type === 'STR' ? balanceStr : Number(balance); } }; diff --git a/src/botPage/bot/TradeEngine/index.js b/src/botPage/bot/TradeEngine/index.js index f93ffbd8ce..2c5c91f274 100644 --- a/src/botPage/bot/TradeEngine/index.js +++ b/src/botPage/bot/TradeEngine/index.js @@ -118,8 +118,11 @@ export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Prop // Only subscribe to balance in browser, not for tests. if (document) { - this.api.subscribeToBalance().then(r => { - this.balance = Number(r.balance.balance); + this.api.subscribeToBalance().then(response => { + globalObserver.setState({ + balance : Number(response.balance.balance), + currency: response.balance.currency, + }); resolve(); }); } else { diff --git a/src/botPage/view/View.js b/src/botPage/view/View.js index b96e79b9d1..01fbc666f8 100644 --- a/src/botPage/view/View.js +++ b/src/botPage/view/View.js @@ -76,6 +76,8 @@ api.events.on('balance', response => { const element = elTopMenuBalance; element.textContent = `${balance} ${currency}`; }); + + globalObserver.setState({ balance: b, currency }); }); const addBalanceForToken = token => { From f93daa2dfc57c4f66325c325b7f09f510826734c Mon Sep 17 00:00:00 2001 From: Aaron Imming Date: Fri, 2 Aug 2019 10:21:02 +0800 Subject: [PATCH 2/4] Remove unused variable --- src/botPage/bot/TradeEngine/Balance.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/botPage/bot/TradeEngine/Balance.js b/src/botPage/bot/TradeEngine/Balance.js index eede7fd2cb..e6f3abb881 100644 --- a/src/botPage/bot/TradeEngine/Balance.js +++ b/src/botPage/bot/TradeEngine/Balance.js @@ -2,8 +2,6 @@ import { roundBalance } from '../../common/tools'; import { info } from '../broadcast'; import { observer as globalObserver } from '../../../common/utils/observer'; -const balanceStr = ''; - export default Engine => class Balance extends Engine { observeBalance() { From d9e6493c25a583a0706330d57eb62456eb2d2fef Mon Sep 17 00:00:00 2001 From: Aaron Imming Date: Wed, 7 Aug 2019 10:28:33 +0430 Subject: [PATCH 3/4] Use destructuring to access response values --- src/botPage/bot/TradeEngine/index.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/botPage/bot/TradeEngine/index.js b/src/botPage/bot/TradeEngine/index.js index 2c5c91f274..a9a2e03ea2 100644 --- a/src/botPage/bot/TradeEngine/index.js +++ b/src/botPage/bot/TradeEngine/index.js @@ -119,9 +119,13 @@ export default class TradeEngine extends Balance(Purchase(Sell(OpenContract(Prop // Only subscribe to balance in browser, not for tests. if (document) { this.api.subscribeToBalance().then(response => { + const { + balance: { balance, currency }, + } = response; + globalObserver.setState({ - balance : Number(response.balance.balance), - currency: response.balance.currency, + balance: Number(balance), + currency, }); resolve(); }); From ef5cd331fc29cefdfaa9f054640e0c28f83ccb8a Mon Sep 17 00:00:00 2001 From: Aaron Imming Date: Tue, 13 Aug 2019 11:39:29 +0430 Subject: [PATCH 4/4] Do not add currency to balance string option --- src/botPage/bot/TradeEngine/Balance.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/botPage/bot/TradeEngine/Balance.js b/src/botPage/bot/TradeEngine/Balance.js index e6f3abb881..8730573c2d 100644 --- a/src/botPage/bot/TradeEngine/Balance.js +++ b/src/botPage/bot/TradeEngine/Balance.js @@ -32,7 +32,7 @@ export default Engine => }); } - const balanceStr = `${balance} ${currency}`; + const balanceStr = `${balance}`; return type === 'STR' ? balanceStr : Number(balance); }