From 784fab2112245576598f7aa8f361fa9f2bdb0deb Mon Sep 17 00:00:00 2001 From: nazaninreihani Date: Mon, 24 Jun 2019 08:39:43 -0400 Subject: [PATCH 01/12] make digits contract's barrier to be integer --- www/js/share/services/chart.service.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/www/js/share/services/chart.service.js b/www/js/share/services/chart.service.js index 00cbaad638..33b7024b28 100644 --- a/www/js/share/services/chart.service.js +++ b/www/js/share/services/chart.service.js @@ -128,10 +128,10 @@ angular.module("binary").factory("chartService", $rootScope => { return parseFloat(price) < parseFloat(barrier); }, DIGITMATCH: function condition(barrier, price) { - return utils.lastDigit(barrier) === utils.lastDigit(price); + return utils.lastDigit(parseInt(barrier)) === utils.lastDigit(price); }, DIGITDIFF: function condition(barrier, price) { - return utils.lastDigit(barrier) !== utils.lastDigit(price); + return utils.lastDigit(parseInt(barrier)) !== utils.lastDigit(price); }, DIGITEVEN: function condition(barrier, price) { return utils.lastDigit(price) % 2 === 0; @@ -451,7 +451,8 @@ angular.module("binary").factory("chartService", $rootScope => { if (utils.higherLowerTrade(contract)) { contract.offset = contract.offset || contract.barrier; barrier = Number(tickPrice) + Number(contract.offset); - barrier = barrier.toFixed(utils.fractionalLength(tickPrice)); + barrier = utils.digitTrade(contract) ? + contract.barrier : barrier.toFixed(utils.fractionalLength(tickPrice)); } utils.setObjValue(contract, "barrier", barrier, !utils.digitTrade(contract)); utils.setObjValue(contract, "entrySpotPrice", tickPrice, true); @@ -511,7 +512,8 @@ angular.module("binary").factory("chartService", $rootScope => { if (tickPriceList.length === 0) { if (contract.entrySpotTime !== lastTime && betweenExistingSpots(lastTime)) { const entrySpotPrice = parseFloat(contract.entrySpotPrice).toFixed(fractionalLength); - const barrier = parseFloat(contract.barrier).toFixed(fractionalLength); + const barrier = utils.digitTrade(contract) ? + contract.barrier : parseFloat(contract.barrier).toFixed(fractionalLength); tickPriceList.push(entrySpotPrice); if (utils.conditions[contract.type](barrier, entrySpotPrice, From fdcea334456866691d381d518a152e8537bf851f Mon Sep 17 00:00:00 2001 From: Ashkan Date: Mon, 24 Jun 2019 14:50:32 +0200 Subject: [PATCH 02/12] New translations en.json (Italian) --- www/i18n/it.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/i18n/it.json b/www/i18n/it.json index 3b6b9899db..18564c0732 100644 --- a/www/i18n/it.json +++ b/www/i18n/it.json @@ -6,7 +6,7 @@ "get_token": "Come si ottiene un token?", "signin_with_binary_com": "Entra", "next": "Avanti", - "regulatory_information": "Informazioni regolamentari" + "regulatory_information": "Informazioni sulle normative" }, "alert": { "error": "Errore!", From 31ac0c42b6c5605f0f38069ff455c9ac92471fd2 Mon Sep 17 00:00:00 2001 From: Ashkan Date: Mon, 24 Jun 2019 15:00:57 +0200 Subject: [PATCH 03/12] New translations en.json (Italian) --- www/i18n/it.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/www/i18n/it.json b/www/i18n/it.json index 18564c0732..a96aa3cd17 100644 --- a/www/i18n/it.json +++ b/www/i18n/it.json @@ -88,16 +88,16 @@ "sign_out": "Esci" }, "reality-check": { - "title": "Verifica della realtà", - "about": "Il trading in opzioni può sviluppare una vera e propria dipendenza così come qualsiasi altra attività spinta al limite. Per evitare i danni di tale dipendenza, ti forniamo la possibilità di controllare la situazione reale dei tuoi trade e dei tuoi account su base regolare.", + "title": "Verifica della situazione reale", + "about": "Il trading di opzioni può sviluppare una vera e propria dipendenza così come qualsiasi altra attività spinta al limite. Per evitare i danni di tale dipendenza, ti forniamo la possibilità di controllare la situazione reale attraverso un regolare riepilogo dei tuoi trade e dei tuoi conti.", "login_time": "Orario di login:", "current_time": "Orario attuale:", "session_duration": "Durata della sessione:", - "interval_question": "Specifica il tuo intervallo preferito di verifica della realtà in minuti:", + "interval_question": "Specifica il tuo intervallo preferito di verifica della situazione reale in minuti:", "loginid": "ID di accesso", "currency": "Valuta", "buy_amount": "Turnover", - "profit_loss": "Profitto/Perdita", + "profit_loss": "Profitto/perdita", "buy_count": "Contratti acquistati", "sell_count": "Contratti venduti", "open_contract_count": "Apri contratti", @@ -141,7 +141,7 @@ "place_of_birth": "Luogo di nascita", "citizenship": "Cittadinanza", "tax_residence": "Residenza fiscale", - "tax_identification_number": "Codice fiscale", + "tax_identification_number": "Identificazione fiscale", "address_line_1": "Prima riga dell'indirizzo di residenza", "address_line_2": "Seconda riga dell'indirizzo di residenza", "address_city": "Città", @@ -209,12 +209,12 @@ "secret_question": "Domanda segreta", "secret_answer": "Risposta segreta", "secret_answer_pattern_error": "Sono consentiti solo lettere, numeri, spazi, trattini, punti e apostrofi.", - "confirm_tax_info": "Con la presente confermo che le informazioni fiscali fornite sono veritiere e complete. Informerò inoltre Binary Investments (Europe) Ltd. su eventuali modifiche a queste informazioni.", - "multi_tax_residence_info": "Puoi essere considerato un residente fiscale in più di una giurisdizione. Ti chiediamo di consultare il tuo consulente fiscale e verificare che i dati fiscali siano corretti." + "confirm_tax_info": "Con la presente confermo che le informazioni fiscali fornite sono veritiere e complete. Informerò inoltre Binary Investments (Europe) Ltd. di eventuali modifiche a queste informazioni.", + "multi_tax_residence_info": "Puoi essere considerato un residente fiscale in più di una giurisdizione. Consulta il tuo consulente fiscale e verifica che i dati fiscali siano corretti." }, "new-account-real": { "real_account_opening": "Apertura di un account reale", - "details": "Dettagli", + "details": "Informazioni", "address": "Indirizzo", "security": "Sicurezza", "salutation": "Titolo", @@ -230,7 +230,7 @@ "address_state": "Stato/Provincia", "address_postcode": "Codice postale/CAP", "phone": "Telefono", - "open_account": "Apri un account", + "open_account": "Apri un conto", "select": "Seleziona", "secret_question": "Domanda segreta", "secret_answer": "Risposta segreta", @@ -241,14 +241,14 @@ "general_pattern_error": "Sono consentite solo lettere, spazi, trattini, punti e apostrofi.", "length_range_error": "Questo campo deve contenere da {{min}} a {{max}} caratteri.", "maxlength_error": "Questo campo può contenere al massimo {{max}} caratteri.", - "address_pattern_error": "Sono consentiti solo lettere, numeri, spazi, trattini, e questi caratteri speciali: - . ' # ; : ( ) , @ /", + "address_pattern_error": "Sono consentiti solo lettere, numeri, spazi, trattini e i seguenti caratteri speciali: - . ' # ; : ( ) , @ /", "postcode_pattern_error": "Sono consentiti solo lettere, numeri e trattini.", "phone_pattern_error": "Sono consentiti solo numeri, spazi e trattini.", "secret_answer_pattern_error": "Sono consentiti solo lettere, numeri, spazi, trattini, punti e apostrofi.", "required": "Questo campo è obbligatorio.", "not_pep_verify": "Dichiaro di non essere una persona politicamente esposta (PEP)", - "pep_info": "Un PEP è un individuo che è o che è stato incaricato di un'importante funzione pubblica. Questo status si estende ai parenti e stretti collaboratori del PEP.", - "account_opening_reason": "Motivo dell'apertura dell'account", + "pep_info": "Un PEP è un individuo che è o è stato incaricato di un'importante funzione pubblica. Questo status si estende ai parenti e stretti collaboratori del suddetto PEP.", + "account_opening_reason": "Ragione dell'apertura del conto", "what_is_this": "Cos'è questo?" }, "profit-table": { @@ -259,7 +259,7 @@ "jump_to_date": "Vai alla data", "date": "Data", "ref": "Riferimento", - "profit_loss": "Profitto/Perdita", + "profit_loss": "Profitto/perdita", "no_transaction": "Non esiste alcuna transazione da mostrare.", "go": "Vai" }, From e6240237794bb63e64bfa7ba82f112c57f2681af Mon Sep 17 00:00:00 2001 From: nazaninreihani Date: Tue, 2 Jul 2019 08:23:59 -0400 Subject: [PATCH 04/12] update shelljs --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index d919ef832c..ce821dc08c 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "karma-jasmine": "^1.1.2", "lodash": "^4.17.4", "prettier-eslint-cli": "^4.1.1", - "shelljs": "^0.3.0", + "shelljs": "^0.8.3", "sw-precache": "^5.2.1" }, "cordovaPlugins": [ @@ -129,4 +129,4 @@ "android" ] } -} \ No newline at end of file +} From e2ad6d972328edad670b8d95a1e3756e4335e1a2 Mon Sep 17 00:00:00 2001 From: nazaninreihani Date: Tue, 2 Jul 2019 22:56:48 -0400 Subject: [PATCH 05/12] fix buy --- www/js/pages/trade/proposal.service.js | 2 +- www/js/share/services/websocket.service.js | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/www/js/pages/trade/proposal.service.js b/www/js/pages/trade/proposal.service.js index 234e5362b9..be4984f4a5 100644 --- a/www/js/pages/trade/proposal.service.js +++ b/www/js/pages/trade/proposal.service.js @@ -148,7 +148,7 @@ }; factory.purchase = function(contract) { - websocketService.sendRequestFor.purchase(contract.id, contract.ask_price); + websocketService.sendRequestFor.purchase(contract.id, contract.ask_price, { subscribe: 1 }); factory.forget(); }; diff --git a/www/js/share/services/websocket.service.js b/www/js/share/services/websocket.service.js index e6b448c481..a7b280c46b 100644 --- a/www/js/share/services/websocket.service.js +++ b/www/js/share/services/websocket.service.js @@ -327,11 +327,13 @@ angular proposal(_proposal) { sendMessage(_proposal); }, - purchase(_proposalId, price) { + purchase(_proposalId, price, params) { const data = { buy : _proposalId, price: price || 0 }; + addExtraParams(data, params); + sendMessage(data); }, balance() { From fbbd284f7e98e4fb268c3c2202d5ae3f27f92806 Mon Sep 17 00:00:00 2001 From: nazaninreihani Date: Thu, 4 Jul 2019 12:42:10 -0400 Subject: [PATCH 06/12] use buy instead of portfolio to fix chart hang when tick is 1 --- .../components/chart/chart.controller.js | 21 ----------- .../purchase/purchase.controller.js | 35 ++++++++++++++----- .../purchase/purchase.template.html | 2 +- 3 files changed, 27 insertions(+), 31 deletions(-) diff --git a/www/js/pages/trade/components/chart/chart.controller.js b/www/js/pages/trade/components/chart/chart.controller.js index bd09cd9f71..96a9d97767 100644 --- a/www/js/pages/trade/components/chart/chart.controller.js +++ b/www/js/pages/trade/components/chart/chart.controller.js @@ -19,27 +19,6 @@ chartService.destroy(); }); - $scope.$on("portfolio", (e, portfolio) => { - const contractId = vm.purchasedContract.contractId; - - if ((typeof contractId === "string" && !_.isEmpty(contractId)) || contractId) { - portfolio.contracts.forEach(contract => { - if ((typeof contractId === "string" && contract.contract_id.toString() === contractId) || contract.contract_id === contractId) { - chartService.addContract({ - startTime: contract.date_start + 1, - duration : parseInt(vm.proposal.duration), - type : - vm.proposal.tradeType === "Higher/Lower" - ? `${contract.contract_type}HL` - : contract.contract_type, - selectedTick: vm.proposal.tradeType === "High/Low Ticks" ? vm.proposal.selected_tick : null, - barrier : vm.proposal.barrier - }); - } - }); - } - }); - $scope.$on("tick", (e, feed) => { if (feed && feed.echo_req.ticks_history === vm.proposal.symbol) { chartService.historyInterface.addTick(feed.tick); diff --git a/www/js/pages/trade/components/purchase/purchase.controller.js b/www/js/pages/trade/components/purchase/purchase.controller.js index 18a01b2e47..818913aa2a 100644 --- a/www/js/pages/trade/components/purchase/purchase.controller.js +++ b/www/js/pages/trade/components/purchase/purchase.controller.js @@ -17,6 +17,7 @@ "appStateService", "proposalService", "websocketService", + "chartService", "$ionicLoading" ]; @@ -27,6 +28,7 @@ appStateService, proposalService, websocketService, + chartService, $ionicLoading) { const vm = this; let forgetRequestId = 0; @@ -39,6 +41,7 @@ vm.purchasedContractIndex = -1; vm.currencyType = "fiat"; vm.isContractFinished = false; + vm.contractType = ''; $scope.$watch( () => vm.proposal, @@ -97,21 +100,32 @@ }); $scope.$on("purchase", (e, response) => { + const purchaseInfo = response.buy; + if (!_.isEmpty(response.buy)) { vm.showSummary = true; $scope.$applyAsync(() => { vm.purchasedContract = { - contractId : response.buy.contract_id, - longcode : response.buy.longcode, + contractId : purchaseInfo.contract_id, + longcode : purchaseInfo.longcode, payout : vm.proposalResponses[vm.purchasedContractIndex].payout, - cost : response.buy.buy_price, - balance : response.buy.balance_after, - transactionId: response.buy.transaction_id, + cost : purchaseInfo.buy_price, + balance : purchaseInfo.balance_after, + transactionId: purchaseInfo.transaction_id, profit : parseFloat(vm.proposalResponses[vm.purchasedContractIndex].payout) - - parseFloat(response.buy.buy_price), + parseFloat(purchaseInfo.buy_price), }; }); - websocketService.sendRequestFor.portfolio(); + chartService.addContract({ + startTime: purchaseInfo.start_time + 1, + duration : parseInt(vm.proposal.duration), + type : + vm.proposal.tradeType === "Higher/Lower" + ? `${vm.contractType}HL` + : vm.contractType, + selectedTick: vm.proposal.tradeType === "High/Low Ticks" ? vm.proposal.selected_tick : null, + barrier : vm.proposal.barrier + }); } }); @@ -149,7 +163,7 @@ proposal.underlying_symbol, vm.purchasedContract.payout ); - + vm.isContractFinished = true; sendProposal(); } @@ -186,7 +200,7 @@ return `img/trade-icon/${contractType.toLowerCase()}.svg`; }; - vm.purchase = function (contractIndex) { + vm.purchase = function (contractIndex, contract_type) { $scope.$applyAsync(() => { vm.isContractFinished = false; vm.inPurchaseMode = true; @@ -194,6 +208,9 @@ appStateService.purchaseMode = true; appStateService.tradeMode = false; }); + if (contract_type) { + vm.contractType = contract_type; + } proposalService.purchase(vm.proposalResponses[contractIndex]); }; diff --git a/www/js/pages/trade/components/purchase/purchase.template.html b/www/js/pages/trade/components/purchase/purchase.template.html index 99564e7e81..bcb4c84d30 100644 --- a/www/js/pages/trade/components/purchase/purchase.template.html +++ b/www/js/pages/trade/components/purchase/purchase.template.html @@ -51,7 +51,7 @@
-