diff --git a/www/js/pages/transaction-detail/transaction-detail.controller.js b/www/js/pages/transaction-detail/transaction-detail.controller.js index 474409baa1..4d4e34f6e8 100644 --- a/www/js/pages/transaction-detail/transaction-detail.controller.js +++ b/www/js/pages/transaction-detail/transaction-detail.controller.js @@ -16,11 +16,20 @@ function TransactionDetail($scope, $timeout, appStateService, websocketService) { const vm = this; vm.currency = sessionStorage.getItem("currency"); + vm.fractionalLength = 2; + const activeSymbols = JSON.parse(sessionStorage.getItem("all_active_symbols")); const id = sessionStorage.getItem("id"); const contractId = parseInt(id); const extraParams = { req_id: contractId }; + + const getFractionalLength = (floatNumber) => { + const stringNumber = floatNumber.toString(); + const decimalLength = stringNumber.indexOf("."); + return stringNumber.length - decimalLength - 1; + }; + const sendDetailsRequest = () => { if (appStateService.isLoggedin) { websocketService.sendRequestFor.openContract(id, extraParams); @@ -32,10 +41,15 @@ $scope.$on("proposal:open-contract", (e, proposal_open_contract, req_id) => { const proposalOpenContract = proposal_open_contract; const reqId = req_id; + if (reqId === contractId) { - $scope.$applyAsync(() => { - vm.contract = proposalOpenContract; - }); + const activeSymbol = + activeSymbols.find((activeSymbol) => activeSymbol.symbol === proposalOpenContract.underlying); + const pip = activeSymbol.pip || 0.01; + vm.fractionalLength = getFractionalLength(pip); + vm.contract = proposalOpenContract; + $scope.$apply(); + } }); diff --git a/www/js/pages/transaction-detail/transaction-detail.template.html b/www/js/pages/transaction-detail/transaction-detail.template.html index c932ebea18..7860d6895d 100644 --- a/www/js/pages/transaction-detail/transaction-detail.template.html +++ b/www/js/pages/transaction-detail/transaction-detail.template.html @@ -61,7 +61,8 @@

  • @@ -87,7 +88,9 @@

    • {{'transaction-details.exit_spot' | translate}}
    • -
    • {{vm.contract.exit_tick}}
    • +
    • +
  • diff --git a/www/js/share/services/chart.service.js b/www/js/share/services/chart.service.js index 90177cf463..00cbaad638 100644 --- a/www/js/share/services/chart.service.js +++ b/www/js/share/services/chart.service.js @@ -254,10 +254,13 @@ angular.module("binary").factory("chartService", $rootScope => { let historyData = []; const addTick = function addTick(tick) { + const options = JSON.parse(localStorage.options); + const pip = options.underlying.pip; + const fractionalLength = utils.fractionalLength(pip); if (parseInt(tick.epoch) > parseInt(historyData.slice(-1)[0].time)) { historyData.push({ time : tick.epoch, - price: tick.quote + price: parseFloat(tick.quote).toFixed(fractionalLength) }); historyData.shift(); } @@ -500,33 +503,43 @@ angular.module("binary").factory("chartService", $rootScope => { }; const addRegions = function addRegions(lastTime, lastPrice) { + const options = JSON.parse(localStorage.options); + const pip = options.underlying.pip; + const fractionalLength = utils.fractionalLength(pip); + if (hasEntrySpot() && broadcastable) { if (tickPriceList.length === 0) { if (contract.entrySpotTime !== lastTime && betweenExistingSpots(lastTime)) { - tickPriceList.push(parseFloat(contract.entrySpotPrice)); - if (utils.conditions[contract.type](contract.barrier, contract.entrySpotPrice, + const entrySpotPrice = parseFloat(contract.entrySpotPrice).toFixed(fractionalLength); + const barrier = parseFloat(contract.barrier).toFixed(fractionalLength); + tickPriceList.push(entrySpotPrice); + + if (utils.conditions[contract.type](barrier, entrySpotPrice, tickPriceList, contract.selectedTick)) { contract.result = "win"; } else { contract.result = "lose"; } - $rootScope.$broadcast("contract:spot", contract, contract.entrySpotPrice); + $rootScope.$broadcast("contract:spot", contract, entrySpotPrice); } else { - tickPriceList.push(parseFloat(lastPrice)); + tickPriceList.push(parseFloat(lastPrice).toFixed(fractionalLength)); } } else { - tickPriceList.push(parseFloat(lastPrice)); + tickPriceList.push(parseFloat(lastPrice).toFixed(fractionalLength)); } if (betweenExistingSpots(lastTime)) { - if (utils.conditions[contract.type](contract.barrier, lastPrice, + const barrier = parseFloat(contract.barrier).toFixed(fractionalLength); + const lastPriceFloat = parseFloat(lastPrice).toFixed(fractionalLength); + + if (utils.conditions[contract.type](barrier, lastPriceFloat, tickPriceList, contract.selectedTick)) { contract.result = "win"; } else { contract.result = "lose"; } - $rootScope.$broadcast("contract:spot", contract, lastPrice); + $rootScope.$broadcast("contract:spot", contract, lastPriceFloat); if (isFinished() && broadcastable) { tickPriceList = [];