diff --git a/Root.js b/Root.js index 86486ae54..aed6d7383 100644 --- a/Root.js +++ b/Root.js @@ -1,7 +1,4 @@ -const appRoot = require('app-root-path') -const operationsIntegration = require(`${appRoot}/Integrations/OperationsModuleIntegration`) - -exports.newRoot = function newRoot() { +exports.newRoot = function newRoot() { /* Callbacks default responses. */ @@ -917,21 +914,7 @@ exports.newRoot = function newRoot() { logger.write(MODULE_NAME, "[ERROR] start -> findProcess -> runTradingBot -> createBotInstance -> onInitializeReady -> whenStartFinishes -> Bot Id = " + botId); console.log(logDisplace + "Root : [ERROR] start -> findProcess -> runTradingBot -> createBotInstance -> onInitializeReady -> whenStartFinishes -> Bot execution finished with errors. Please check the logs."); logger.persist(); - } - - // Update operations module with latest context - if (context !== undefined) { - let lastExecution = context.executionHistory[context.executionHistory.length - 1] - let date = lastExecution[0] / 1000 | 0 - let buyAvgRate = lastExecution[1] - let sellAvgRate = lastExecution[2] - let marketRate = lastExecution[7] - let combinedProfitsA = lastExecution[13] - let combinedProfitsB = lastExecution[14] - - operationsIntegration.updateExecutionResults(date, buyAvgRate, sellAvgRate, - marketRate, combinedProfitsA, combinedProfitsB) - } + } } } else { diff --git a/TradingBotProcessMainLoop.js b/TradingBotProcessMainLoop.js index 31e20790b..e134dd36f 100644 --- a/TradingBotProcessMainLoop.js +++ b/TradingBotProcessMainLoop.js @@ -8,8 +8,9 @@ let USER_BOT_MODULE; let COMMONS_MODULE; - const BLOB_STORAGE = require(ROOT_DIR + 'BlobStorage'); + const operationsIntegration = require('./Integrations/OperationsModuleIntegration') + const BLOB_STORAGE = require(ROOT_DIR + 'BlobStorage'); const DEBUG_MODULE = require(ROOT_DIR + 'DebugLog'); let logger; // We need this here in order for the loopHealth function to work and be able to rescue the loop when it gets in trouble. @@ -907,12 +908,26 @@ } } - function saveContext() { + async function saveContext() { try { if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> saveContext -> Entering function."); } + // Update operations module with latest context + let lastExecution = context.newHistoryRecord + let date = lastExecution.date / 1000 | 0 + let buyAvgRate = lastExecution.buyAvgRate + let sellAvgRate = lastExecution.sellAvgRate + let marketRate = lastExecution.marketRate + let combinedProfitsA = lastExecution.combinedProfitsA + let combinedProfitsB = lastExecution.combinedProfitsB + + await operationsIntegration.updateExecutionResults(date, buyAvgRate, sellAvgRate, + marketRate, combinedProfitsA, combinedProfitsB) + + if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] run -> loop -> saveContext -> Execution Results updated."); } + context.saveThemAll(onFinished); function onFinished(err) {