UNPKG

espend-rest

Version:

A RESTful API for submitting payments and monitoring accounts on the eSpend network.

70 lines (55 loc) 1.7 kB
var ripple = require('espend-lib'); var config = require('./config'); var logger = require('./logger.js').logger; var remoteOpts = { servers: config.get('rippled_servers'), max_fee: parseFloat(config.get('max_transaction_fee')) }; if (config.get('debug')) { remoteOpts.trace = true; } var remote = new ripple.Remote(remoteOpts); function prepareRemote() { var connect = remote.connect; var connected = false; function ready() { if (!connected) { logger.info('[RIPD] Connection established'); connected = true; } }; remote.connect = function() { logger.info('[RIPD] Attempting to connect to the eSpend network...'); connect.apply(remote, arguments); }; remote.on('error', function(err) { logger.error('[RIPD] error: ', err); }); remote.on('disconnect', function() { logger.info('[RIPD] Disconnected from the eSpend network'); connected = false; }); remote._servers.forEach(function(server) { server.on('connect', function() { logger.info('[RIPD] Connected to rippled server:', server.getServerID()); server.once('ledger_closed', ready); }); server.on('disconnect', function() { logger.info('[RIPD] Disconnected from rippled server:', server.getServerID()); }); }); process.on('SIGHUP', function() { logger.info('Received signal SIGHUP, reconnecting to eSpend network'); remote.reconnect(); }); setInterval(function() { var pingRequest = remote.request('ping'); pingRequest.on('error', function(){}); pingRequest.broadcast(); }, 1000 * 15); remote.connect(); }; if (config.get('NODE_ENV') !== 'test') { prepareRemote(); } module.exports = remote;