UNPKG

dagcoin-wallet-workflows

Version:

Dagcoin wallet workflows implementation using Dagcoin Finite State Machine

31 lines (23 loc) 1.34 kB
"use strict"; module.exports = function (properties, stateMachine, state) { var DataFetcher = require('dagcoin-fsm/lib/dataFetcher'); var fetcher = new DataFetcher(properties, stateMachine, state); fetcher.retrieveData = function () { var enoughBytesFsm = require(__dirname + '/../../enoughBytes/enoughBytes')(properties.fundingExchangeClientService, properties.constants.MIN_BYTE_FEE); enoughBytesFsm.start(); return enoughBytesFsm.pingUntilOver().then(function () { if (!enoughBytesFsm.getCurrentState().isFinal) { throw Error('STATE MACHINE enoughBytesFsm CURRENT STATE SHOULD BE FINAL. IT IS: ' + enoughBytesFsm.getCurrentState().getName()); } return enoughBytesFsm.waitForFinalState(); }).then(function () { stateMachine.setData('shared-address', enoughBytesFsm.getData('shared-address')); stateMachine.setData('update-payment-props', enoughBytesFsm.getData('update-payment-props')); if (enoughBytesFsm.getData('send-payment-error')) { stateMachine.setData('send-payment-error', enoughBytesFsm.getData('send-payment-error')); } return Promise.resolve(enoughBytesFsm.getCurrentState().getName() === 'enough-bytes'); }); }; return fetcher; };