const _ = require('lodash/fp') const txBatching = require('./tx-batching') const wallet = require('./wallet') function submitBatch(settings, batch) { txBatching.getBatchTransactions(batch).then(txs => { if (_.isEmpty(txs)) return Promise.resolve() return wallet .sendCoinsBatch(settings, txs, batch.crypto_code) .then(res => txBatching.confirmSentBatch(batch, res)) .catch(err => txBatching.setErroredBatch(batch, err.message)) }) } function processBatches(settings, lifecycle) { return txBatching.getBatchesByStatus(['open']).then(batches => { _.each(batch => { const elapsedMS = batch.time_elapsed * 1000 if (elapsedMS >= lifecycle) { return txBatching .closeTransactionBatch(batch) .then(() => submitBatch(settings, batch)) } }, batches) }) } module.exports = processBatches