Report initial table load bug fix

Report initial table load bug fix
pull/713/head
Shahana Farooqui 3 years ago
parent db581c63bb
commit f599b40062

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -13,6 +13,6 @@
<style>@font-face{font-family:Roboto;src:url(Roboto-Thin.dbd56bd3357dc3617fe5.woff2) format("woff2"),url(Roboto-Thin.e7f7c82374bd0ebef14b.woff) format("woff");font-weight:100;font-style:normal;}@font-face{font-family:Roboto;src:url(Roboto-ThinItalic.a8cef84f735ef887abdc.woff2) format("woff2"),url(Roboto-ThinItalic.5dd9349c940073834e9a.woff) format("woff");font-weight:100;font-style:italic;}@font-face{font-family:Roboto;src:url(Roboto-Light.c27d89ac77468ae18f28.woff2) format("woff2"),url(Roboto-Light.d923dfafc0c5183b59aa.woff) format("woff");font-weight:300;font-style:normal;}@font-face{font-family:Roboto;src:url(Roboto-LightItalic.506274c7228cf81cae4d.woff2) format("woff2"),url(Roboto-LightItalic.d4b8c137518d9d92bb28.woff) format("woff");font-weight:300;font-style:italic;}@font-face{font-family:Roboto;src:url(Roboto-Regular.64cfb66c866ea50cad47.woff2) format("woff2"),url(Roboto-Regular.e02e9d6ff5547f7e9962.woff) format("woff");font-weight:400;font-style:normal;}@font-face{font-family:Roboto;src:url(Roboto-RegularItalic.4dd2af1e8df532f41db8.woff2) format("woff2"),url(Roboto-RegularItalic.5ea38fff9eebef99c5df.woff) format("woff");font-weight:400;font-style:italic;}@font-face{font-family:Roboto;src:url(Roboto-Medium.1d3bced88509b0838984.woff2) format("woff2"),url(Roboto-Medium.092c6130df8fd2199888.woff) format("woff");font-weight:500;font-style:normal;}@font-face{font-family:Roboto;src:url(Roboto-MediumItalic.d620b8f53f75966fe42e.woff2) format("woff2"),url(Roboto-MediumItalic.18ff1628c628080166c1.woff) format("woff");font-weight:500;font-style:italic;}@font-face{font-family:Roboto;src:url(Roboto-Bold.92fbd4e93cf0a5dbebaa.woff2) format("woff2"),url(Roboto-Bold.73288d91c325e82a5b92.woff) format("woff");font-weight:700;font-style:normal;}@font-face{font-family:Roboto;src:url(Roboto-BoldItalic.5f600d98a73d800ae575.woff2) format("woff2"),url(Roboto-BoldItalic.6d89acbd21d7e3fbecb2.woff) format("woff");font-weight:700;font-style:italic;}@font-face{font-family:Roboto;src:url(Roboto-Black.41ed1105a6ebb8ffe34e.woff2) format("woff2"),url(Roboto-Black.937491dfcbe64ca9a9f1.woff) format("woff");font-weight:900;font-style:normal;}@font-face{font-family:Roboto;src:url(Roboto-BlackItalic.50ca4c51ebc27e7e7d2f.woff2) format("woff2"),url(Roboto-BlackItalic.2e1ee657996854c6f427.woff) format("woff");font-weight:900;font-style:italic;}html{width:100%;height:99%;line-height:1.5;overflow-x:hidden;font-family:Roboto,sans-serif!important;font-size:62.5%;}body{box-sizing:border-box;margin:0;}body{height:100%;overflow:hidden;}*{margin:0;padding:0;}</style><link rel="stylesheet" href="styles.97554e699a42acff6579.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.97554e699a42acff6579.css"></noscript></head>
<body>
<rtl-app></rtl-app>
<script src="runtime.ac5247c67a0794a28efc.js" defer></script><script src="polyfills.99f4d82f067fba7525c4.js" defer></script><script src="main.481591da65b011ae1d11.js" defer></script>
<script src="runtime.9ac5db6bfbea0f01a745.js" defer></script><script src="polyfills.99f4d82f067fba7525c4.js" defer></script><script src="main.481591da65b011ae1d11.js" defer></script>
</body></html>

@ -1 +1 @@
(()=>{"use strict";var e,r,t,a={},o={};function n(e){var r=o[e];if(void 0!==r)return r.exports;var t=o[e]={id:e,loaded:!1,exports:{}};return a[e].call(t.exports,t,t.exports,n),t.loaded=!0,t.exports}n.m=a,e=[],n.O=(r,t,a,o)=>{if(!t){var l=1/0;for(s=0;s<e.length;s++){for(var[t,a,o]=e[s],i=!0,d=0;d<t.length;d++)(!1&o||l>=o)&&Object.keys(n.O).every(e=>n.O[e](t[d]))?t.splice(d--,1):(i=!1,o<l&&(l=o));i&&(e.splice(s--,1),r=a())}return r}o=o||0;for(var s=e.length;s>0&&e[s-1][2]>o;s--)e[s]=e[s-1];e[s]=[t,a,o]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce((r,t)=>(n.f[t](e,r),r),[])),n.u=e=>e+"."+{432:"8ab20bc741e8d0d046de",646:"a5f74183fbc705ea5f1c",891:"5038d0ff36f6af42d88b",958:"9a3ae49eb9fc6ea729f7"}[e]+".js",n.miniCssF=e=>"styles.97554e699a42acff6579.css",n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},t="rtl:",n.l=(e,a,o,l)=>{if(r[e])r[e].push(a);else{var i,d;if(void 0!==o)for(var s=document.getElementsByTagName("script"),u=0;u<s.length;u++){var c=s[u];if(c.getAttribute("src")==e||c.getAttribute("data-webpack")==t+o){i=c;break}}i||(d=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,n.nc&&i.setAttribute("nonce",n.nc),i.setAttribute("data-webpack",t+o),i.src=e),r[e]=[a];var f=(t,a)=>{i.onerror=i.onload=null,clearTimeout(p);var o=r[e];if(delete r[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach(e=>e(a)),t)return t(a)},p=setTimeout(f.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=f.bind(null,i.onerror),i.onload=f.bind(null,i.onload),d&&document.head.appendChild(i)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.p="",(()=>{var e={666:0};n.f.j=(r,t)=>{var a=n.o(e,r)?e[r]:void 0;if(0!==a)if(a)t.push(a[2]);else if(666!=r){var o=new Promise((t,o)=>a=e[r]=[t,o]);t.push(a[2]=o);var l=n.p+n.u(r),i=new Error;n.l(l,t=>{if(n.o(e,r)&&(0!==(a=e[r])&&(e[r]=void 0),a)){var o=t&&("load"===t.type?"missing":t.type),l=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+o+": "+l+")",i.name="ChunkLoadError",i.type=o,i.request=l,a[1](i)}},"chunk-"+r,r)}else e[r]=0},n.O.j=r=>0===e[r];var r=(r,t)=>{var a,o,[l,i,d]=t,s=0;for(a in i)n.o(i,a)&&(n.m[a]=i[a]);if(d)var u=d(n);for(r&&r(t);s<l.length;s++)n.o(e,o=l[s])&&e[o]&&e[o][0](),e[l[s]]=0;return n.O(u)},t=self.webpackChunkrtl=self.webpackChunkrtl||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})()})();
(()=>{"use strict";var e,r,t,a={},o={};function n(e){var r=o[e];if(void 0!==r)return r.exports;var t=o[e]={id:e,loaded:!1,exports:{}};return a[e].call(t.exports,t,t.exports,n),t.loaded=!0,t.exports}n.m=a,e=[],n.O=(r,t,a,o)=>{if(!t){var l=1/0;for(s=0;s<e.length;s++){for(var[t,a,o]=e[s],d=!0,i=0;i<t.length;i++)(!1&o||l>=o)&&Object.keys(n.O).every(e=>n.O[e](t[i]))?t.splice(i--,1):(d=!1,o<l&&(l=o));d&&(e.splice(s--,1),r=a())}return r}o=o||0;for(var s=e.length;s>0&&e[s-1][2]>o;s--)e[s]=e[s-1];e[s]=[t,a,o]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce((r,t)=>(n.f[t](e,r),r),[])),n.u=e=>e+"."+{432:"635dd65c825f8e4ca25b",646:"4d1e1dc02d21b483a9c9",891:"3b392db9ed3e23be4231",958:"9a3ae49eb9fc6ea729f7"}[e]+".js",n.miniCssF=e=>"styles.97554e699a42acff6579.css",n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},t="rtl:",n.l=(e,a,o,l)=>{if(r[e])r[e].push(a);else{var d,i;if(void 0!==o)for(var s=document.getElementsByTagName("script"),u=0;u<s.length;u++){var c=s[u];if(c.getAttribute("src")==e||c.getAttribute("data-webpack")==t+o){d=c;break}}d||(i=!0,(d=document.createElement("script")).charset="utf-8",d.timeout=120,n.nc&&d.setAttribute("nonce",n.nc),d.setAttribute("data-webpack",t+o),d.src=e),r[e]=[a];var f=(t,a)=>{d.onerror=d.onload=null,clearTimeout(p);var o=r[e];if(delete r[e],d.parentNode&&d.parentNode.removeChild(d),o&&o.forEach(e=>e(a)),t)return t(a)},p=setTimeout(f.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=f.bind(null,d.onerror),d.onload=f.bind(null,d.onload),i&&document.head.appendChild(d)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.p="",(()=>{var e={666:0};n.f.j=(r,t)=>{var a=n.o(e,r)?e[r]:void 0;if(0!==a)if(a)t.push(a[2]);else if(666!=r){var o=new Promise((t,o)=>a=e[r]=[t,o]);t.push(a[2]=o);var l=n.p+n.u(r),d=new Error;n.l(l,t=>{if(n.o(e,r)&&(0!==(a=e[r])&&(e[r]=void 0),a)){var o=t&&("load"===t.type?"missing":t.type),l=t&&t.target&&t.target.src;d.message="Loading chunk "+r+" failed.\n("+o+": "+l+")",d.name="ChunkLoadError",d.type=o,d.request=l,a[1](d)}},"chunk-"+r,r)}else e[r]=0},n.O.j=r=>0===e[r];var r=(r,t)=>{var a,o,[l,d,i]=t,s=0;for(a in d)n.o(d,a)&&(n.m[a]=d[a]);if(i)var u=i(n);for(r&&r(t);s<l.length;s++)n.o(e,o=l[s])&&e[o]&&e[o][0](),e[l[s]]=0;return n.O(u)},t=self.webpackChunkrtl=self.webpackChunkrtl||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})()})();

@ -4,11 +4,11 @@ var logger = require('../shared/logger');
var options = {};
exports.getBalance = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Balance', msg: 'Getting Balance...'});
logger.log({level: 'INFO', fileName: 'Balance', msg: 'Getting Balance..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/getBalance';
request(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Balance', msg: 'Balance Received: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Balance', msg: 'Balance Received', data: body});
if(!body.totalBalance) {
body.totalBalance = 0;
body.btc_totalBalance = 0;
@ -27,7 +27,7 @@ exports.getBalance = (req, res, next) => {
} else {
body.btc_unconfBalance = common.convertToBTC(body.unconfBalance);
}
logger.log({level: 'INFO', fileName: 'Balance', msg: 'Balance Received.'});
logger.log({level: 'INFO', fileName: 'Balance', msg: 'Balance Received'});
res.status(200).json(body);
})
.catch(errRes => {
@ -38,7 +38,7 @@ exports.getBalance = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Balance', msg: 'Balance Fetch Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Balance', msg: 'Balance Fetch Error', error: err});
return res.status(500).json({
message: "Fetching balance failed!",
error: err.error

@ -4,11 +4,11 @@ var logger = require('../shared/logger');
var options = {};
exports.listChannels = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Channels...'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Channels..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/channel/listChannels';
request(options).then(function (body) {
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'List Channels: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'List Channels', data: body});
body.map(channel => {
if (!channel.alias || channel.alias === '') { channel.alias = channel.id.substring(0, 20); }
local = (channel.msatoshi_to_us) ? channel.msatoshi_to_us : 0;
@ -16,7 +16,7 @@ exports.listChannels = (req, res, next) => {
total = channel.msatoshi_total ? channel.msatoshi_total : 0;
channel.balancedness = (total == 0) ? 1 : (1 - Math.abs((local-remote)/total)).toFixed(3);
})
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channels Received.'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channels Received'});
res.status(200).json(body);
})
.catch(errRes => {
@ -27,7 +27,7 @@ exports.listChannels = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'List Channels Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'List Channels Error', error: err});
return res.status(500).json({
message: 'Fetching List Channels Failed!',
error: err.error
@ -36,21 +36,21 @@ exports.listChannels = (req, res, next) => {
}
exports.openChannel = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Opening Channel...'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Opening Channel..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/channel/openChannel';
options.body = req.body;
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Options: ' + JSON.stringify(options.body)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Options', data: options.body});
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Response: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Response', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Open Channel Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Open Channel Error', error: body.error});
res.status(500).json({
message: 'Open Channel Failed!',
error: (!body) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Opened.'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Opened'});
res.status(201).json(body);
}
})
@ -62,7 +62,7 @@ exports.openChannel = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Open Channel Failed: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Open Channel Error', error: err});
return res.status(500).json({
message: 'Open Channel Failed!',
error: err.error
@ -71,21 +71,21 @@ exports.openChannel = (req, res, next) => {
}
exports.setChannelFee = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Setting Channel Fee...'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Setting Channel Fee..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/channel/setChannelFee';
options.body = req.body;
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy Options: ' + JSON.stringify(options.body)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy Options', data: options.body});
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Update Channel Policy Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Update Channel Policy Error', error: body.error});
res.status(500).json({
message: 'Update Channel Policy Failed!',
error: (!body) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Fee Set.'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Fee Set'});
res.status(201).json(body);
}
})
@ -97,7 +97,7 @@ exports.setChannelFee = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Update Channel Policy: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Update Channel Policy Error', error: err});
return res.status(500).json({
message: 'Update Channel Policy Failed!',
error: err.error
@ -106,22 +106,22 @@ exports.setChannelFee = (req, res, next) => {
}
exports.closeChannel = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Closing Channel...'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Closing Channel..'});
req.setTimeout(60000 * 10); // timeout 10 mins
options = common.getOptions();
const unilateralTimeoutQuery = req.query.force ? '?unilateralTimeout=1' : '';
options.url = common.getSelLNServerUrl() + '/v1/channel/closeChannel/' + req.params.channelId + unilateralTimeoutQuery;
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Closing Channel: ' + options.url});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Closing Channel', data: options.url});
request.delete(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Close Channel Response: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Close Channel Response', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Close Channel Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Close Channel Error', error: body.error});
res.status(500).json({
message: 'Close Channel Failed!',
error: (!body) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Closed.'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Closed'});
res.status(204).json(body);
}
})
@ -133,7 +133,7 @@ exports.closeChannel = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Close Channel Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Close Channel Error', error: err});
return res.status(500).json({
message: 'Close Channel Failed!',
error: err.error
@ -142,11 +142,11 @@ exports.closeChannel = (req, res, next) => {
}
exports.getLocalRemoteBalance = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Local & Remote Balances...'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Local & Remote Balances..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/channel/localremotebal';
request(options).then(function (body) {
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Local Remote Balance: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Local Remote Balance', data: body});
if(!body.localBalance) {
body.localBalance = 0;
body.btc_localBalance = 0;
@ -159,7 +159,7 @@ exports.getLocalRemoteBalance = (req, res, next) => {
} else {
body.btc_remoteBalance = common.convertToBTC(body.remoteBalance);
}
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Local & Remote Balances Received.'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Local & Remote Balances Received'});
res.status(200).json(body);
})
.catch(errRes => {
@ -170,7 +170,7 @@ exports.getLocalRemoteBalance = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Local Remote Balance Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Local Remote Balance Error', error: err});
return res.status(500).json({
message: 'Fetching Local Remote Balance Failed!',
error: err.error
@ -179,13 +179,13 @@ exports.getLocalRemoteBalance = (req, res, next) => {
};
exports.listForwards = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Channel List Forwards...'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Channel List Forwards..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/channel/listForwards/';
request.get(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Forwarding History Response: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Forwarding History Response', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Forwarding History Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Forwarding History Error', error: body.error});
res.status(500).json({
message: "Forwarding History Failed!",
error: (!body) ? 'Error From Server!' : body.error
@ -194,8 +194,8 @@ exports.listForwards = (req, res, next) => {
if (body && body.length > 0) {
body = common.sortDescByKey(body, 'received_time');
}
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Forwarding History Received: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel List Forwards Received.'});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Forwarding History Received', data: body});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel List Forwards Received'});
res.status(200).json({ last_offset_index: 0, forwarding_events: body });
}
})
@ -207,7 +207,7 @@ exports.listForwards = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Forwarding History Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Forwarding History Error', error: err});
return res.status(500).json({
message: "Forwarding History Failed!",
error: err.error

@ -4,13 +4,13 @@ var logger = require('../shared/logger');
var options = {};
exports.getFees = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Fees', msg: 'Getting Fees...'});
logger.log({level: 'INFO', fileName: 'Fees', msg: 'Getting Fees..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/getFees';
request(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Fee Received: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Fee Received', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Fees', msg: 'Get Fee Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Fees', msg: 'Get Fee Error', error: body.error});
res.status(500).json({
message: "Fetching fee failed!",
error: (!body) ? 'Error From Server!' : body.error
@ -22,7 +22,7 @@ exports.getFees = (req, res, next) => {
} else {
body.btc_feeCollected = common.convertToBTC(body.feeCollected);
}
logger.log({level: 'INFO', fileName: 'Fees', msg: 'Fees Received.'});
logger.log({level: 'INFO', fileName: 'Fees', msg: 'Fees Received'});
res.status(200).json(body);
}
})
@ -34,7 +34,7 @@ exports.getFees = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Fees', msg: 'Get Fees Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Fees', msg: 'Get Fees Error', error: err});
return res.status(500).json({
message: "Fetching fee failed!",
error: err.error

@ -4,25 +4,25 @@ var logger = require('../shared/logger');
var options = {};
exports.getInfo = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'GetInfo', msg: 'Getting CLightning Node Information...'});
logger.log({level: 'INFO', fileName: 'GetInfo', msg: 'Getting CLightning Node Information..'});
common.setOptions();
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/getinfo';
logger.log({level: 'DEBUG', fileName:'GetInfo', msg: 'Selected Node: ' + JSON.stringify(common.selectedNode.ln_node)});
logger.log({level: 'DEBUG', fileName: 'GetInfo', msg: 'Calling Info from C-Lightning server url: ' + options.url});
logger.log({level: 'DEBUG', fileName:'GetInfo', msg: 'Selected Node', data: common.selectedNode.ln_node});
logger.log({level: 'DEBUG', fileName: 'GetInfo', msg: 'Calling Info from C-Lightning server url', data: options.url});
if (!options.headers || !options.headers.macaroon) {
logger.log({level: 'ERROR', fileName: 'GetInfo', msg: 'C-Lightning Get info failed due to bad or missing macaroon!'});
logger.log({level: 'ERROR', fileName: 'GetInfo', msg: 'C-Lightning Get info failed due to bad or missing macaroon!', error: {error: 'Bad macaroon.'}});
res.status(502).json({
message: "Fetching Info Failed!",
error: "Bad Macaroon"
});
} else {
request(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'GetInfo', msg: JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'GetInfo', msg: 'Node Information', data: body});
const body_str = (!body) ? '' : JSON.stringify(body);
const search_idx = (!body) ? -1 : body_str.search('Not Found');
if(!body || search_idx > -1 || body.error) {
logger.log({level: 'ERROR', fileName: 'GetInfo', msg: 'Get Info Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'GetInfo', msg: 'Get Info Error', error: body.error});
res.status(500).json({
message: "Fetching Info failed!",
error: (!body || search_idx > -1) ? 'Error From Server!' : body.error
@ -52,7 +52,7 @@ exports.getInfo = (req, res, next) => {
body.uris.push(body.id + '@' + addr.address + ':' + addr.port);
});
}
logger.log({level: 'INFO', fileName: 'GetInfo', msg: 'CLightning Node Information Received.'});
logger.log({level: 'INFO', fileName: 'GetInfo', msg: 'CLightning Node Information Received'});
res.status(200).json(body);
}
})
@ -64,7 +64,7 @@ exports.getInfo = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'GetInfo', msg: 'Get Info Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'GetInfo', msg: 'Get Info Error', error: err});
return res.status(500).json({
message: "Fetching Info failed!",
error: err.error

@ -4,20 +4,20 @@ var logger = require('../shared/logger');
var options = {};
exports.deleteExpiredInvoice = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Deleting Expired Invoices...'});
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Deleting Expired Invoices..'});
options = common.getOptions();
const queryStr = req.query.maxExpiry ? '?maxexpiry=' + req.query.maxExpiry : '';
options.url = common.getSelLNServerUrl() + '/v1/invoice/delExpiredInvoice' + queryStr;
request.delete(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices Deleted: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices Deleted', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'Invoice Delete Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'Invoice Delete Error', error: body.error});
res.status(500).json({
message: "Deleting Invoice Failed!",
error: (!body) ? 'Error From Server!' : body.error
});
}
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Expired Invoices Deleted.'});
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Expired Invoices Deleted'});
res.status(204).json({status: 'Invoice Deleted Successfully'});
})
.catch(errRes => {
@ -28,7 +28,7 @@ exports.deleteExpiredInvoice = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'Invoice Delete Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'Invoice Delete Error', error: err});
return res.status(500).json({
message: "Deleting Invoice Failed!",
error: err.error
@ -37,14 +37,14 @@ exports.deleteExpiredInvoice = (req, res, next) => {
};
exports.listInvoices = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Getting Invoices...'});
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Getting Invoices..'});
options = common.getOptions();
const labelQuery = req.query.label ? '?label=' + req.query.label : '';
options.url = common.getSelLNServerUrl() + '/v1/invoice/listInvoices' + labelQuery;
request(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received: ' + body});
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'List Invoice Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'List Invoice Error', error: body.error});
res.status(500).json({
message: "Fetching Invoice Info failed!",
error: (!body) ? 'Error From Server!' : body.error
@ -53,8 +53,8 @@ exports.listInvoices = (req, res, next) => {
if ( body.invoices && body.invoices.length > 0) {
body.invoices = common.sortDescByKey(body.invoices, 'expires_at');
}
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Invoices Received.'});
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received', data: body});
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Invoices Received'});
res.status(200).json(body);
}
})
@ -66,7 +66,7 @@ exports.listInvoices = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'List Invoice Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'List Invoice Error', error: err});
return res.status(500).json({
message: "Fetching Invoice Info failed!",
error: err.error
@ -75,20 +75,20 @@ exports.listInvoices = (req, res, next) => {
};
exports.addInvoice = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Creating Invoice...'});
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Creating Invoice..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/invoice/genInvoice';
options.body = req.body;
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Add Invoice Responce: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Add Invoice Responce', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'Add Invoice Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'Add Invoice Error', error: body.error});
res.status(500).json({
message: "Add Invoice Failed!",
error: (!body) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Invoice Created.'});
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Invoice Created'});
res.status(201).json(body);
}
})
@ -100,7 +100,7 @@ exports.addInvoice = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'Add Invoice Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'Add Invoice Error', error: err});
return res.status(500).json({
message: "Add Invoice Failed!",
error: err.error

@ -4,20 +4,20 @@ var logger = require('../shared/logger');
var options = {};
exports.signMessage = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Message', msg: 'Signing Message...'});
logger.log({level: 'INFO', fileName: 'Message', msg: 'Signing Message..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/utility/signMessage';
options.form = { message: req.body.message };
request.post(options, (error, response, body) => {
logger.log({level: 'DEBUG', fileName: 'Messages', msg: 'Message Signed: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Messages', msg: 'Message Signed', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Messages', msg: 'Message Sign Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Messages', msg: 'Message Sign Error', error: body.error});
res.status(500).json({
message: "Sign message failed!",
error: (!body) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'Message', msg: 'Message Signed...'});
logger.log({level: 'INFO', fileName: 'Message', msg: 'Message Signed'});
res.status(201).json(body);
}
})
@ -29,7 +29,7 @@ exports.signMessage = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Messages', msg: 'Sign Message Failed: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Messages', msg: 'Sign Message Error', error: err});
return res.status(500).json({
message: 'Sign Message Failed!',
error: err.error
@ -38,19 +38,19 @@ exports.signMessage = (req, res, next) => {
};
exports.verifyMessage = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Message', msg: 'Verifying Message...'});
logger.log({level: 'INFO', fileName: 'Message', msg: 'Verifying Message..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/utility/checkMessage/' + req.body.message + '/' + req.body.signature;
request.get(options, (error, response, body) => {
logger.log({level: 'DEBUG', fileName: 'Messages', msg: 'Message Verified: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Messages', msg: 'Message Verified', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Messages', msg: 'Verify Message Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Messages', msg: 'Verify Message Error', error: body.error});
res.status(500).json({
message: "Verify message failed!",
error: (!body) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'Message', msg: 'Message Verified.'});
logger.log({level: 'INFO', fileName: 'Message', msg: 'Message Verified'});
res.status(201).json(body);
}
})
@ -62,7 +62,7 @@ exports.verifyMessage = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Messages', msg: 'Message Verification Failed: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Messages', msg: 'Message Verification Error', error: err});
return res.status(500).json({
message: 'Verify Message Failed!',
error: err.error

@ -4,19 +4,19 @@ var logger = require('../shared/logger');
var options = {};
exports.getRoute = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Network', msg: 'Getting Network Routes...'});
logger.log({level: 'INFO', fileName: 'Network', msg: 'Getting Network Routes..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/network/getRoute/' + req.params.destPubkey + '/' + req.params.amount;
request(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Network', msg: 'Query Routes Received: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Network', msg: 'Query Routes Received', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Network', msg: 'Query Routes Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Network', msg: 'Query Routes Error', error: body.error});
res.status(500).json({
message: "Fetching Query Routes Failed!",
error: (!body) ? 'Error From Server!' : body.error
});
}
logger.log({level: 'INFO', fileName: 'Network', msg: 'Network Routes Received.'});
logger.log({level: 'INFO', fileName: 'Network', msg: 'Network Routes Received'});
res.status(200).json({routes: body});
})
.catch(errRes => {
@ -27,7 +27,7 @@ exports.getRoute = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Network', msg: 'Query Routes Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Network', msg: 'Query Routes Error', error: err});
return res.status(500).json({
message: "Fetching Query Routes Failed!",
error: err.error
@ -36,12 +36,12 @@ exports.getRoute = (req, res, next) => {
};
exports.listNode = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Network', msg: 'Node Lookup...'});
logger.log({level: 'INFO', fileName: 'Network', msg: 'Node Lookup..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/network/listNode/' + req.params.id;
request(options).then(function (body) {
logger.log({level: 'DEBUG', fileName: 'Network', msg: 'Node Lookup: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Network', msg: 'Node Lookup Finished.'});
logger.log({level: 'DEBUG', fileName: 'Network', msg: 'Node Lookup', data: body});
logger.log({level: 'INFO', fileName: 'Network', msg: 'Node Lookup Finished'});
res.status(200).json(body);
})
.catch(errRes => {
@ -52,7 +52,7 @@ exports.listNode = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Network', msg: 'Node Lookup Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Network', msg: 'Node Lookup Error', error: err});
return res.status(500).json({
message: "Node Lookup Failed!",
error: err.error
@ -61,12 +61,12 @@ exports.listNode = (req, res, next) => {
};
exports.listChannel = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Network', msg: 'Channel Lookup...'});
logger.log({level: 'INFO', fileName: 'Network', msg: 'Channel Lookup..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/network/listChannel/' + req.params.channelShortId;
request(options).then(function (body) {
logger.log({level: 'DEBUG', fileName: 'Network', msg: 'Channel Lookup: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Network', msg: 'Channel Lookup Finished.'});
logger.log({level: 'DEBUG', fileName: 'Network', msg: 'Channel Lookup', data: body});
logger.log({level: 'INFO', fileName: 'Network', msg: 'Channel Lookup Finished'});
res.status(200).json(body);
})
.catch(errRes => {
@ -77,7 +77,7 @@ exports.listChannel = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Network', msg: 'Channel Lookup Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Network', msg: 'Channel Lookup Error', error: err});
return res.status(500).json({
message: "Channel Lookup Failed!",
error: err.error
@ -86,11 +86,11 @@ exports.listChannel = (req, res, next) => {
};
exports.feeRates = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Network', msg: 'Getting Network Fee Rates...'});
logger.log({level: 'INFO', fileName: 'Network', msg: 'Getting Network Fee Rates..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/network/feeRates/' + req.params.feeRateStyle;
request(options).then(function (body) {
logger.log({level: 'INFO', fileName: 'Network', msg: 'Network Fee Rates Received.'});
logger.log({level: 'INFO', fileName: 'Network', msg: 'Network Fee Rates Received'});
res.status(200).json(body);
})
.catch(errRes => {
@ -101,7 +101,7 @@ exports.feeRates = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Network', msg: 'Fee Rates Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Network', msg: 'Fee Rates Error', error: err});
return res.status(500).json({
message: "Fee Rates Failed!",
error: err.error

@ -4,11 +4,11 @@ var logger = require('../shared/logger');
var options = {};
exports.getNewAddress = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'Generating New Address...'});
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'Generating New Address..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/newaddr?addrType=' + req.query.type;
request(options).then((body) => {
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'New Address Generated.'});
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'New Address Generated'});
res.status(200).json(body);
})
.catch(errRes => {
@ -19,7 +19,7 @@ exports.getNewAddress = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'OnChain', msg: 'OnChain New Address Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'OnChain', msg: 'OnChain New Address Error', error: err});
return res.status(500).json({
message: "Fetching new address failed!",
error: err.error
@ -28,21 +28,21 @@ exports.getNewAddress = (req, res, next) => {
};
exports.onChainWithdraw = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'Withdrawing from On Chain...'});
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'Withdrawing from On Chain..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/withdraw';
options.body = req.body;
logger.log({level: 'DEBUG', fileName: 'OnChain', msg: 'OnChain Withdraw Options: ' + JSON.stringify(options.body)});
logger.log({level: 'DEBUG', fileName: 'OnChain', msg: 'OnChain Withdraw Options', data: options.body});
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'OnChain', msg: 'OnChain Withdraw Response: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'OnChain', msg: 'OnChain Withdraw Response', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'OnChain', msg: 'OnChain Withdraw Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'OnChain', msg: 'OnChain Withdraw Error', error: body.error});
res.status(500).json({
message: 'OnChain Withdraw Failed!',
error: (!body) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'Withdraw Finished...'});
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'Withdraw Finished'});
res.status(201).json(body);
}
})
@ -54,7 +54,7 @@ exports.onChainWithdraw = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'OnChain', msg: 'OnChain Withdraw Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'OnChain', msg: 'OnChain Withdraw Error', error: err});
return res.status(500).json({
message: 'OnChain Withdraw Failed!',
error: err
@ -63,12 +63,12 @@ exports.onChainWithdraw = (req, res, next) => {
}
exports.getUTXOs = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'List Funds...'});
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'List Funds..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/listFunds';
request(options).then((body) => {
if (body.outputs) { body.outputs = common.sortDescByStrKey(body.outputs, 'status'); }
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'List Funds Received.'});
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'List Funds Received'});
res.status(200).json(body);
}).catch(errRes => {
let err = JSON.parse(JSON.stringify(errRes));
@ -78,7 +78,7 @@ exports.getUTXOs = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'OnChain', msg: 'OnChain List Funds Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'OnChain', msg: 'OnChain List Funds Error', error: err});
return res.status(500).json({
message: "Fetching list funds failed!",
error: err.error

@ -46,13 +46,13 @@ function groupBy(payments) {
}
exports.listPayments = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Payments', msg: 'List Payments...'});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'List Payments..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/pay/listPayments';
request(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Payment List Received: ' + JSON.stringify(body.payments)});
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Payment List Received', data: body.payments});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'Payments List Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'Payments List Error', error: body.error});
res.status(500).json({
message: "Payments List Failed!",
error: (!body) ? 'Error From Server!' : body.error
@ -61,7 +61,7 @@ exports.listPayments = (req, res, next) => {
if ( body && body.payments && body.payments.length > 0) {
body.payments = common.sortDescByKey(body.payments, 'created_at');
}
logger.log({level: 'INFO', fileName: 'Payments', msg: 'List Payments Received.'});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'List Payments Received'});
res.status(200).json(groupBy(body.payments));
}
})
@ -73,7 +73,7 @@ exports.listPayments = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'Payments List Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'Payments List Error', error: err});
return res.status(500).json({
message: "Payments List Failed!",
error: err.error
@ -82,19 +82,19 @@ exports.listPayments = (req, res, next) => {
};
exports.decodePayment = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Decoding Payment...'});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Decoding Payment..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/pay/decodePay/' + req.params.invoice;
request(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Payment Decode Received: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Payment Decode Received', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'Payment Decode Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'Payment Decode Error', error: body.error});
res.status(500).json({
message: "Payment Request Decode Failed!",
error: (!body || search_idx > -1) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Payment Decoded.'});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Payment Decoded'});
res.status(200).json(body);
}
})
@ -106,7 +106,7 @@ exports.decodePayment = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'Payment Decode Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'Payment Decode Error', error: err});
return res.status(500).json({
message: "Payment Request Decode Failed!",
error: err.error
@ -117,23 +117,23 @@ exports.decodePayment = (req, res, next) => {
exports.postPayment = (req, res, next) => {
options = common.getOptions();
if (req.params.type === 'keysend') {
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Keysend Payment...'});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Keysend Payment..'});
options.url = common.getSelLNServerUrl() + '/v1/pay/keysend';
} else {
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Send Payment...'});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Send Payment..'});
options.url = common.getSelLNServerUrl() + '/v1/pay';
}
options.body = req.body;
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Send Payment Response: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Send Payment Response', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'Send Payment Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'Send Payment Error', error: body.error});
res.status(500).json({
message: "Send Payment Failed!",
error: (!body) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Payment Sent.'});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Payment Sent'});
res.status(201).json(body);
}
})
@ -145,7 +145,7 @@ exports.postPayment = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'Send Payments Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'Send Payments Error', error: err});
return res.status(500).json({
message: "Send Payment Failed!",
error: err.error

@ -4,14 +4,14 @@ var logger = require('../shared/logger');
var options = {};
exports.getPeers = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Peers', msg: 'List Peers...'});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'List Peers..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/peer/listPeers';
request(options).then(function (body) {
body.forEach(peer => { if (!peer.alias || peer.alias === '') { peer.alias = peer.id.substring(0, 20);}});
let peers = (body) ? common.sortDescByStrKey(body, 'alias') : [];
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peers with Alias: ' + JSON.stringify(peers)});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peers Received.'});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peers with Alias', data: peers});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peers Received'});
res.status(200).json(peers);
})
.catch(errRes => {
@ -22,7 +22,7 @@ exports.getPeers = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Peers List Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Peers List Error', error: err});
return res.status(500).json({
message: "Peers Fetch Failed!",
error: err.error
@ -31,26 +31,26 @@ exports.getPeers = (req, res, next) => {
};
exports.postPeer = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Connecting Peer...'});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Connecting Peer..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/peer/connect';
options.body = req.body;
request.post(options, (error, response, body) => {
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Connect Peer Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Connect Peer Error', error: body.error});
res.status(500).json({
message: "Adding peer failed!",
error: (!body) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added', data: body});
options.url = common.getSelLNServerUrl() + '/v1/peer/listPeers';
request(options).then(function (body) {
let peers = ( body) ? common.sortDescByStrKey(body, 'alias') : [];
peers = common.newestOnTop(peers, 'id', req.body.id);
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer with Newest On Top: ' + JSON.stringify(peers)});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer with Newest On Top', data: peers});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added Successfully'});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peer Connected.'});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peer Connected'});
res.status(201).json(peers);
}).catch(errRes => {
let err = JSON.parse(JSON.stringify(errRes));
@ -60,7 +60,7 @@ exports.postPeer = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Connect Peer Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Connect Peer Error', error: err});
return res.status(500).json({
message: "Peer Add Failed!",
error: err.error
@ -71,20 +71,20 @@ exports.postPeer = (req, res, next) => {
};
exports.deletePeer = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Disconnecting Peer...'});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Disconnecting Peer..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/peer/disconnect/' + req.params.peerId + '?force=' + req.query.force;
request.delete(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Detach Peer Response: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Detach Peer Response', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Detach Peer Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Detach Peer Error', error: body.error});
res.status(500).json({
message: "Detach peer failed!",
error: (!body) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer Detached: ' + req.params.peerId});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peer Disconnected.'});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer Detached', data: req.params.peerId});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peer Disconnected'});
res.status(204).json({});
}
})
@ -96,7 +96,7 @@ exports.deletePeer = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.macaroon) {
delete err.response.request.headers.macaroon;
}
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Detach Peer Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Detach Peer Error', error: err});
return res.status(500).json({
message: "Detach Peer Failed!",
error: err.error

@ -35,10 +35,10 @@ arrangeChannels = (simplifiedChannels) => {
});
lightningBalances = { localBalance: totalLocalBalance, remoteBalance: totalRemoteBalance };
activeChannels = common.sortDescByKey(activeChannels, 'balancedness');
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Lightning Balances: ' + JSON.stringify(lightningBalances)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Active Channels: ' + JSON.stringify(activeChannels)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Pending Channels: ' + JSON.stringify(pendingChannels)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Inactive Channels: ' + JSON.stringify(inactiveChannels)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Lightning Balances', data: lightningBalances});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Active Channels', data: activeChannels});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Pending Channels', data: pendingChannels});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Inactive Channels', data: inactiveChannels});
return ({activeChannels: activeChannels, pendingChannels: pendingChannels, inactiveChannels: inactiveChannels, lightningBalances: lightningBalances, channelStatus: channelStatus});
};
@ -66,9 +66,9 @@ simplifyAllChannels = (channels) => {
channelNodeIds = channelNodeIds.substring(1);
options.url = common.getSelLNServerUrl() + '/nodes';
options.form = { nodeIds: channelNodeIds };
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Node Ids to find alias: ' + channelNodeIds});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Node Ids to find alias', data: channelNodeIds});
return request.post(options).then(function(nodes) {
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Filtered Nodes: ' + JSON.stringify(nodes)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Filtered Nodes', data: nodes});
let foundPeer = {};
simplifiedChannels.map(channel => {
foundPeer = nodes.find(channelWithAlias => channel.nodeId === channelWithAlias.nodeId);
@ -81,28 +81,28 @@ simplifyAllChannels = (channels) => {
};
exports.getChannels = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'List Channels...'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'List Channels..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/channels';
options.form = {};
if (req.query && req.query.nodeId) {
options.form = req.query;
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Channels Node Id: ' + JSON.stringify(options.form)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Channels Node Id', data: options.form});
}
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Options: ' + JSON.stringify(options)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Options', data: options});
if (common.read_dummy_data) {
common.getDummyData('Channels').then(function(data) { res.status(200).json(arrangeChannels(data)); });
} else {
request.post(options).then(function (body) {
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'All Channels: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'All Channels', data: body});
if(body && body.length) {
return simplifyAllChannels(body).then(function(simplifiedChannels) {
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Simplified Channels with Alias: ' + JSON.stringify(simplifiedChannels)});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channels List Received.'});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Simplified Channels with Alias', data: simplifiedChannels});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channels List Received'});
res.status(200).json(arrangeChannels(simplifiedChannels));
});
} else {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Empty Channels List Received.'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Empty Channels List Received'});
res.status(200).json({activeChannels: [], pendingChannels: [], inactiveChannels: [], lightningBalances: { localBalance: 0, remoteBalance: 0 }, channelStatus: {active: { channels: 0, capacity: 0 }, inactive: { channels: 0, capacity: 0 }, pending: { channels: 0, capacity: 0 }}});
}
})
@ -114,7 +114,7 @@ exports.getChannels = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Get Channels Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Get Channels Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: 'Fetching Channels Failed!',
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"
@ -124,13 +124,13 @@ exports.getChannels = (req, res, next) => {
};
exports.getChannelStats = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Channel States...'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Channel States..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/channelstats';
options.form = {};
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Channel Stats Response: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel States Received.'});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Channel Stats Response', data: body});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel States Received'});
res.status(201).json(body);
})
.catch(errRes => {
@ -141,7 +141,7 @@ exports.getChannelStats = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'ChannelStats', msg: 'Get Channel Stats Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'ChannelStats', msg: 'Get Channel Stats Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: "Channel Stats Failed!",
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"
@ -150,21 +150,21 @@ exports.getChannelStats = (req, res, next) => {
}
exports.openChannel = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Opening Channel...'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Opening Channel..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/open';
options.form = req.body;
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Params: ' + JSON.stringify(options.form)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Params', data: options.form});
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Response: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Response', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Open Channel Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Open Channel Error', error: body.error});
res.status(500).json({
message: 'Open Channel Failed!',
error: (!body) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Opened.'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Opened'});
res.status(201).json(body);
}
})
@ -176,7 +176,7 @@ exports.openChannel = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Open Channel Failed: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Open Channel Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: "Open Channel Failed!",
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"
@ -185,14 +185,14 @@ exports.openChannel = (req, res, next) => {
}
exports.updateChannelRelayFee = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Updating Channel Relay Fee...'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Updating Channel Relay Fee..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/updaterelayfee';
options.form = req.query;
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Update Relay Fee Params: ' + JSON.stringify(options.form)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Update Relay Fee Params', data: options.form});
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Update Relay Fee Response: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Relay Fee Updated.'});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Update Relay Fee Response', data: body});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Relay Fee Updated'});
res.status(201).json(body);
})
.catch(errRes => {
@ -203,7 +203,7 @@ exports.updateChannelRelayFee = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Update Relay Fee Failed: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Update Relay Fee Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: "Update Relay Fee Failed!",
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"
@ -214,18 +214,17 @@ exports.updateChannelRelayFee = (req, res, next) => {
exports.closeChannel = (req, res, next) => {
options = common.getOptions();
if (req.query.force !== 'true') {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Closing Channel...'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Closing Channel..'});
options.url = common.getSelLNServerUrl() + '/close';
} else {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Force Closing Channel...'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Force Closing Channel..'});
options.url = common.getSelLNServerUrl() + '/forceclose';
}
options.form = { channelId: req.query.channelId };
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Close Channel URL: ' + JSON.stringify(options.url)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Close Channel Params: ' + JSON.stringify(options.form)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: '[Close URL, Close Params]', data: [options.url, options.form]});
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Close Channel Response: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Closed.'});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Close Channel Response', data: body});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Closed'});
res.status(204).json(body);
})
.catch(errRes => {
@ -236,7 +235,7 @@ exports.closeChannel = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Close Channel Failed: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Close Channel Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: "Close Channel Failed!",
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"

@ -21,7 +21,7 @@ arrangeFees = (body, current_time) => {
fees.monthly_fee = fees.monthly_fee + fee;
fees.monthly_txs = fees.monthly_txs + 1;
});
logger.log({level: 'DEBUG', fileName: 'Fees', msg: JSON.stringify(fees)});
logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Arranged Fee', data: fees});
return fees;
};
@ -56,12 +56,12 @@ arrangePayments = (body) => {
payments.sent = common.sortDescByKey(payments.sent, 'firstPartTimestamp');
payments.received = common.sortDescByKey(payments.received, 'firstPartTimestamp');
payments.relayed = common.sortDescByKey(payments.relayed, 'timestamp');
logger.log({level: 'DEBUG', fileName: 'Fees', msg: JSON.stringify(payments)});
logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Arranged Payments', data: payments});
return payments;
};
exports.getFees = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Fees', msg: 'Getting Fees...'});
logger.log({level: 'INFO', fileName: 'Fees', msg: 'Getting Fees..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/audit';
let today = new Date(Date.now());
@ -71,13 +71,13 @@ exports.getFees = (req, res, next) => {
from: fromLastMonth,
to: tillToday
};
logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Fee Audit Options: ' + JSON.stringify(options.form)});
logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Fee Audit Options', data: options.form});
if (common.read_dummy_data) {
common.getDummyData('Fees').then(function(data) { res.status(200).json(arrangeFees(data, Math.round((new Date().getTime())))); });
} else {
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Fee Response: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Fees', msg: 'Fee Received.'});
logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Fee Response', data: body});
logger.log({level: 'INFO', fileName: 'Fees', msg: 'Fee Received'});
res.status(200).json(arrangeFees(body, Math.round((new Date().getTime()))));
})
.catch(errRes => {
@ -88,7 +88,7 @@ exports.getFees = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Fees', msg: 'Get Fees Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Fees', msg: 'Get Fees Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: "Fetching Fees failed!",
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"
@ -98,7 +98,7 @@ exports.getFees = (req, res, next) => {
};
exports.getPayments = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Fees', msg: 'Getting Payments...'});
logger.log({level: 'INFO', fileName: 'Fees', msg: 'Getting Payments..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/audit';
options.form = null;
@ -106,8 +106,8 @@ exports.getPayments = (req, res, next) => {
common.getDummyData('Payments').then(function(data) { res.status(200).json(arrangePayments(data)); });
} else {
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Payments Response: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Fees', msg: 'Payments Received.'});
logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Payments Response', data: body});
logger.log({level: 'INFO', fileName: 'Fees', msg: 'Payments Received'});
res.status(200).json(arrangePayments(body));
})
.catch(errRes => {
@ -118,7 +118,7 @@ exports.getPayments = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Fees', msg: 'Get Payments Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Fees', msg: 'Get Payments Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: "Fetching Payments failed!",
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"

@ -4,13 +4,13 @@ var logger = require('../shared/logger');
var options = {};
exports.getInfo = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'GetInfo', msg: 'Getting Eclair Node Information...'});
logger.log({level: 'INFO', fileName: 'GetInfo', msg: 'Getting Eclair Node Information..'});
common.setOptions();
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/getinfo';
options.form = {};
logger.log({level: 'DEBUG', fileName:'GetInfo', msg: 'Selected Node: ' + JSON.stringify(common.selectedNode.ln_node)});
logger.log({level: 'DEBUG', fileName: 'GetInfo', msg: 'Calling Info from Eclair server url: ' + options.url});
logger.log({level: 'DEBUG', fileName:'GetInfo', msg: 'Selected Node', data: common.selectedNode.ln_node});
logger.log({level: 'DEBUG', fileName: 'GetInfo', msg: 'Calling Info from Eclair server url', data: options.url});
if (common.read_dummy_data) {
common.getDummyData('GetInfo').then(function(data) {
data.currency_unit = 'BTC';
@ -20,20 +20,20 @@ exports.getInfo = (req, res, next) => {
});
} else {
if (!options.headers || !options.headers.authorization) {
logger.log({level: 'ERROR', fileName: 'GetInfo', msg: 'Eclair Get info failed due to missing or wrong password!'});
logger.log({level: 'ERROR', fileName: 'GetInfo', msg: 'Eclair Get info failed due to missing or wrong password!', error: {error: 'Missing or wrong password.'}});
res.status(502).json({
message: "Fetching Info Failed!",
error: "Missing Or Wrong Password"
});
} else {
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'GetInfo', msg: 'Get Info Response: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'GetInfo', msg: 'Get Info Response', data: body});
const body_str = (!body) ? '' : JSON.stringify(body);
const search_idx = (!body) ? -1 : body_str.search('Not Found');
body.currency_unit = 'BTC';
body.smaller_currency_unit = 'Sats';
body.lnImplementation = 'Eclair';
logger.log({level: 'INFO', fileName: 'GetInfo', msg: 'Eclair Node Information Received.'});
logger.log({level: 'INFO', fileName: 'GetInfo', msg: 'Eclair Node Information Received'});
res.status(200).json(body);
})
.catch(errRes => {
@ -44,7 +44,7 @@ exports.getInfo = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'GetInfo', msg: 'Get Info Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'GetInfo', msg: 'Get Info Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: "Fetching Info failed!",
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"

@ -31,7 +31,7 @@ getReceivedPaymentInfo = (invoice) => {
}
exports.listInvoices = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Getting List Invoices...'});
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Getting List Invoices..'});
options = common.getOptions();
options.form = {};
options1 = JSON.parse(JSON.stringify(options));
@ -53,15 +53,15 @@ exports.listInvoices = (req, res, next) => {
} else {
return Promise.all([request(options1), request(options2)])
.then(body => {
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received', data: body});
let invoices = (!body[0] || body[0].length <= 0) ? [] : body[0];
pendingInvoices = (!body[1] || body[1].length <= 0) ? [] : body[1];
if (invoices && invoices.length > 0) {
return Promise.all(invoices.map(invoice => getReceivedPaymentInfo(invoice)))
.then(values => {
body = common.sortDescByKey(invoices, 'expiresAt');
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Final Invoices List: ' + JSON.stringify(invoices)});
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'List Invoices Received.'});
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Final Invoices List', data: invoices});
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'List Invoices Received'});
res.status(200).json(invoices);
})
.catch(errRes => {
@ -72,14 +72,14 @@ exports.listInvoices = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'List Invoices Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'List Invoices Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: "Fetching Invoices failed!",
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"
});
});
} else {
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Empty List Invoice Received.'});
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Empty List Invoice Received'});
res.status(200).json([]);
}
})
@ -91,7 +91,7 @@ exports.listInvoices = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'List Invoices Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'List Invoices Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: "Fetching Invoices failed!",
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"
@ -101,14 +101,14 @@ exports.listInvoices = (req, res, next) => {
};
exports.createInvoice = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Creating Invoice...'});
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Creating Invoice..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/createinvoice';
options.form = req.body;
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Create Invoice Response: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Create Invoice Response', data: body});
if (body.amount) { body.amount = Math.round(body.amount/1000); }
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Invoice Created.'});
logger.log({level: 'INFO', fileName: 'Invoices', msg: 'Invoice Created'});
res.status(201).json(body);
})
.catch(errRes => {
@ -119,7 +119,7 @@ exports.createInvoice = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'Create Invoice Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'Create Invoice Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: "Create Invoice Failed!",
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"

@ -4,13 +4,13 @@ var logger = require('../shared/logger');
var options = {};
exports.getNodes = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Network', msg: 'Node Lookup...'});
logger.log({level: 'INFO', fileName: 'Network', msg: 'Node Lookup..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/nodes';
options.form = { nodeIds: req.params.id };
request.post(options).then(function (body) {
logger.log({level: 'DEBUG', fileName: 'Network', msg: 'Node Lookup: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Network', msg: 'Node Lookup Finished.'});
logger.log({level: 'DEBUG', fileName: 'Network', msg: 'Node Lookup', data: body});
logger.log({level: 'INFO', fileName: 'Network', msg: 'Node Lookup Finished'});
res.status(200).json(body);
})
.catch(errRes => {
@ -21,7 +21,7 @@ exports.getNodes = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Network', msg: 'Node Lookup Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Network', msg: 'Node Lookup Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: 'Node Lookup Failed!',
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"

@ -22,13 +22,13 @@ arrangeBalances = (body) => {
};
exports.getNewAddress = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'Generating New Address...'});
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'Generating New Address..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/getnewaddress';
options.form = {};
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Onchain', msg: JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'New Address Generated.'});
logger.log({level: 'DEBUG', fileName: 'Onchain', msg: 'New Address Generated', data: body});
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'New Address Generated'});
res.status(200).json(body);
})
.catch(errRes => {
@ -39,7 +39,7 @@ exports.getNewAddress = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Onchain', msg: 'Get New Address Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Onchain', msg: 'Get New Address Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: "Getting New Address failed!",
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"
@ -48,7 +48,7 @@ exports.getNewAddress = (req, res, next) => {
};
exports.getBalance = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'Getting On Chain Balance...'});
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'Getting On Chain Balance..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/onchainbalance';
options.form = {};
@ -56,8 +56,8 @@ exports.getBalance = (req, res, next) => {
common.getDummyData('OnChainBalance').then(function(data) { res.status(200).json(arrangeBalances(data)); });
} else {
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Onchain', msg: 'Balance Received: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'On Chain Balance Received.'});
logger.log({level: 'DEBUG', fileName: 'Onchain', msg: 'Balance Received', data: body});
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'On Chain Balance Received'});
res.status(200).json(arrangeBalances(body));
})
.catch(errRes => {
@ -68,7 +68,7 @@ exports.getBalance = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Onchain', msg: 'Fetch Balance Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Onchain', msg: 'Fetch Balance Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: "Fetching balance failed!",
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"
@ -78,20 +78,20 @@ exports.getBalance = (req, res, next) => {
};
exports.getTransactions = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'Getting On Chain Transactions...'});
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'Getting On Chain Transactions..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/onchaintransactions';
options.form = {
count: req.query.count,
skip: req.query.skip
};
logger.log({level: 'DEBUG', fileName: 'OnChain', msg: 'Getting On Chain Transactions Options: ' + JSON.stringify(options.form)});
logger.log({level: 'DEBUG', fileName: 'OnChain', msg: 'Getting On Chain Transactions Options', data: options.form});
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Transactions', msg: 'Transaction Received: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'OnChain', msg: 'Transaction Received', data: body});
if (body && body.length > 0) {
body = common.sortDescByKey(body, 'timestamp');
}
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'On Chain Transaction Received.'});
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'On Chain Transaction Received'});
res.status(200).json(body);
})
.catch(errRes => {
@ -102,7 +102,7 @@ exports.getTransactions = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Onchain', msg: 'Get Transactions Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Onchain', msg: 'Get Transactions Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: "Getting transactions failed!",
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"
@ -111,7 +111,7 @@ exports.getTransactions = (req, res, next) => {
};
exports.sendFunds = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'Sending On Chain Funds...'});
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'Sending On Chain Funds..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/sendonchain';
options.form = {
@ -119,10 +119,10 @@ exports.sendFunds = (req, res, next) => {
amountSatoshis: req.body.amount,
confirmationTarget: req.body.blocks
};
logger.log({level: 'DEBUG', fileName: 'Onchain', msg: 'Send Funds Options: ' + JSON.stringify(options.form)});
logger.log({level: 'DEBUG', fileName: 'Onchain', msg: 'Send Funds Options', data: options.form});
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Onchain', msg: 'Send Funds Response: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'On Chain Fund Sent.'});
logger.log({level: 'DEBUG', fileName: 'Onchain', msg: 'Send Funds Response', data: body});
logger.log({level: 'INFO', fileName: 'OnChain', msg: 'On Chain Fund Sent'});
res.status(201).json(body);
})
.catch(errRes => {
@ -133,7 +133,7 @@ exports.sendFunds = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Onchain', msg: 'Send Funds Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Onchain', msg: 'Send Funds Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: "Send funds failed!",
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"

@ -7,7 +7,7 @@ getQueryNodes = (nodeIds) => {
options.url = common.getSelLNServerUrl() + '/nodes';
options.form = { nodeIds: nodeIds };
return request.post(options).then(function(nodes) {
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Query Nodes: ' + JSON.stringify(nodes)});
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Query Nodes', data: nodes});
return nodes;
}).catch(err => {
return [];
@ -15,14 +15,14 @@ getQueryNodes = (nodeIds) => {
}
exports.decodePayment = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Decoding Payment...'});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Decoding Payment..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/parseinvoice';
options.form = { invoice: req.params.invoice };
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Payment Decode Received: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Payment Decode Received', data: body});
if (body.amount) { body.amount = Math.round(body.amount/1000); }
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Payment Decoded.'});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Payment Decoded'});
res.status(200).json(body);
})
.catch(errRes => {
@ -33,7 +33,7 @@ exports.decodePayment = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'Payment Decode Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'Payment Decode Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: "Payment Decode Failed!",
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"
@ -42,14 +42,14 @@ exports.decodePayment = (req, res, next) => {
};
exports.postPayment = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Paying Invoice...'});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Paying Invoice..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/payinvoice';
options.form = req.body;
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Send Payment Options: ' + JSON.stringify(options.form)});
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Send Payment Options', data: options.form});
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Send Payment Response: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Invoice Paid.'});
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Send Payment Response', data: body});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Invoice Paid'});
res.status(201).json(body);
})
.catch(errRes => {
@ -60,7 +60,7 @@ exports.postPayment = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'Send Payment Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'Send Payment Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: "Send Payment Failed!",
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"
@ -69,16 +69,16 @@ exports.postPayment = (req, res, next) => {
};
exports.queryPaymentRoute = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Querying Payment Route...'});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Querying Payment Route..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/findroutetonode';
options.form = {
nodeId: req.query.nodeId,
amountMsat: req.query.amountMsat
};
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Query Payment Route Options: ' + JSON.stringify(options.form)});
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Query Payment Route Options', data: options.form});
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Query Payment Route Received: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Query Payment Route Received', data: body});
if (body && body.length) {
let queryRoutes = [];
return getQueryNodes(body).then(function(hopsWithAlias) {
@ -87,12 +87,12 @@ exports.queryPaymentRoute = (req, res, next) => {
foundPeer = hopsWithAlias.find(hopWithAlias => hop === hopWithAlias.nodeId);
queryRoutes.push({nodeId: hop, alias: foundPeer ? foundPeer.alias : ''});
});
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Query Routes with Alias: ' + JSON.stringify(queryRoutes)});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Payment Route Information Received.'});
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Query Routes with Alias', data: queryRoutes});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Payment Route Information Received'});
res.status(200).json(queryRoutes);
});
} else {
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Empty Payment Route Information Received.'});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Empty Payment Route Information Received'});
res.status(200).json([]);
}
})
@ -104,7 +104,7 @@ exports.queryPaymentRoute = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'Query Payment Route Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'Query Payment Route Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: "Query Payment Route Failed!",
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"
@ -113,15 +113,15 @@ exports.queryPaymentRoute = (req, res, next) => {
};
exports.getSentPaymentsInformation = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Getting Sent Payment Information...'});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Getting Sent Payment Information..'});
options = common.getOptions();
if (req.body.payments) {
let paymentsArr = req.body.payments.split(',');
return Promise.all(paymentsArr.map(payment => {return getSentInfoFromPaymentRequest(payment)}))
.then(function(values) {
console.warn(values);
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Payment Sent Informations: ' + JSON.stringify(values)});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Sent Payment Information Received.'});
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Payment Sent Informations', data: values});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Sent Payment Information Received'});
res.status(200).json(values);
})
.catch(errRes => {
@ -132,14 +132,14 @@ exports.getSentPaymentsInformation = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'Payment Sent Information Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'Payment Sent Information Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: "Payment Sent Information Failed!",
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"
});
});
} else {
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Empty Sent Payment Information Received.'});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Empty Sent Payment Information Received'});
res.status(200).json([]);
}
};
@ -148,7 +148,7 @@ getSentInfoFromPaymentRequest = (payment) => {
options.url = common.getSelLNServerUrl() + '/getsentinfo';
options.form = { paymentHash: payment };
return request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Payment Sent Information Received: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Payment Sent Information Received', data: body});
body.forEach(sentPayment => {
if (sentPayment.amount) { sentPayment.amount = Math.round(sentPayment.amount/1000); }
if (sentPayment.recipientAmount) { sentPayment.recipientAmount = Math.round(sentPayment.recipientAmount/1000); }

@ -7,7 +7,7 @@ getFilteredNodes = (peersNodeIds) => {
options.url = common.getSelLNServerUrl() + '/nodes';
options.form = { nodeIds: peersNodeIds };
return request.post(options).then(function(nodes) {
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Filtered Nodes: ' + JSON.stringify(nodes)});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Filtered Nodes', data: nodes});
return nodes;
}).catch(err => {
return [];
@ -15,7 +15,7 @@ getFilteredNodes = (peersNodeIds) => {
}
exports.getPeers = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Getting Peers...'});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Getting Peers..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/peers';
options.form = {};
@ -23,7 +23,7 @@ exports.getPeers = (req, res, next) => {
common.getDummyData('Peers').then(function(data) { res.status(200).json(data); });
} else {
request.post(options).then(function (body) {
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peers Received: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peers Received', data: body});
if (body && body.length) {
let peersNodeIds = '';
body.forEach(peer => { peersNodeIds = peersNodeIds + ',' + peer.nodeId; });
@ -35,12 +35,12 @@ exports.getPeers = (req, res, next) => {
peer.alias = foundPeer ? foundPeer.alias : peer.nodeId.substring(0, 20);
});
body = common.sortDescByStrKey(body, 'alias');
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peers with Alias: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peers Received.'});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peers with Alias', data: body});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peers Received'});
res.status(200).json(body);
});
} else {
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Empty Peers Received.'});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Empty Peers Received'});
res.status(200).json([]);
}
})
@ -52,7 +52,7 @@ exports.getPeers = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Get Peers Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Get Peers Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: 'Fetching Peers Failed!',
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"
@ -62,16 +62,16 @@ exports.getPeers = (req, res, next) => {
};
exports.connectPeer = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Conneting Peer...'});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Conneting Peer..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/connect';
options.form = {};
if (req.query) {
options.form = req.query;
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Connect Peer Params: ' + JSON.stringify(options.form)});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Connect Peer Params', data: options.form});
}
request.post(options, (error, response, body) => {
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Add Peer Response: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Add Peer Response', data: body});
if (body === 'already connected') {
return res.status(500).json({
message: "Connect Peer Failed!",
@ -86,7 +86,7 @@ exports.connectPeer = (req, res, next) => {
options.url = common.getSelLNServerUrl() + '/peers';
options.form = {};
request.post(options).then(function (body) {
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peers Received: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peers Received', data: body});
if (body && body.length) {
let peersNodeIds = '';
body.forEach(peer => { peersNodeIds = peersNodeIds + ',' + peer.nodeId; });
@ -99,9 +99,9 @@ exports.connectPeer = (req, res, next) => {
});
let peers = (body) ? common.sortDescByStrKey(body, 'alias') : [];
peers = common.newestOnTop(peers, 'nodeId', req.query.nodeId ? req.query.nodeId : req.query.uri ? req.query.uri.substring(0, req.query.uri.indexOf('@')) : '');
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer with Newest On Top: ' + JSON.stringify(peers)});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer with Newest On Top', data: peers});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added Successfully'});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peer Connected.'});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peer Connected'});
res.status(201).json(peers);
});
} else {
@ -115,7 +115,7 @@ exports.connectPeer = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Connect Peer Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Connect Peer Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: "Connect Peer Failed!",
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"
@ -129,7 +129,7 @@ exports.connectPeer = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Connect Peer Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Connect Peer Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: "Connect Peer Failed!",
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"
@ -138,18 +138,18 @@ exports.connectPeer = (req, res, next) => {
};
exports.deletePeer = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Disconneting Peer...'});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Disconneting Peer..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/disconnect';
options.form = {};
if (req.params.nodeId) {
options.form = { nodeId: req.params.nodeId };
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Disconnect Peer Params: ' + JSON.stringify(options.form)});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Disconnect Peer Params', data: options.form});
}
request.post(options, (error, response, body) => {
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Disconnect Peer Response: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Disconnect Peer Response', data: body});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer Disconnected: ' + req.params.nodeId});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peer Disconnected.'});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peer Disconnected'});
res.status(204).json(body);
})
.catch(errRes => {
@ -160,7 +160,7 @@ exports.deletePeer = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers.authorization) {
delete err.response.request.headers.authorization;
}
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Disconnect Peer Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Disconnect Peer Error', error: err});
return res.status(err.statusCode ? err.statusCode : 500).json({
message: "Disconnect Peer Failed!",
error: err.error && err.error.error ? err.error.error : err.error ? err.error : "Unknown Server Error"

@ -4,12 +4,12 @@ var logger = require('../shared/logger');
var options = {};
exports.getBalance = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Balance', msg: 'Getting Balance...'});
logger.log({level: 'INFO', fileName: 'Balance', msg: 'Getting Balance..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/balance/' + req.params.source;
options.qs = req.query;
request(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Balance', msg: 'Request params: ' + JSON.stringify(req.params) + 'Request Query: ' + JSON.stringify(req.query) + ' Balance Received: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Balance', msg: '[Request params, Request Query, Balance Received]', data: [req.params, req.query, body]});
if (body) {
if (req.params.source === 'blockchain') {
if (!body.total_balance) { body.total_balance = 0; }
@ -25,7 +25,7 @@ exports.getBalance = (req, res, next) => {
body.btc_balance = common.convertToBTC(body.balance);
body.btc_pending_open_balance = common.convertToBTC(body.pending_open_balance);
}
logger.log({level: 'INFO', fileName: 'Balance', msg: 'Balance Received.'});
logger.log({level: 'INFO', fileName: 'Balance', msg: 'Balance Received'});
res.status(200).json(body);
}
})
@ -37,7 +37,7 @@ exports.getBalance = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Balance', msg: 'Fetch Balance Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Balance', msg: 'Fetch Balance Error', error: err});
return res.status(500).json({
message: "Fetching balance failed!",
error: err.error

@ -6,8 +6,8 @@ var options = {};
getAliasForChannel = (channel) => {
let pubkey = (channel.remote_pubkey) ? channel.remote_pubkey : (channel.remote_node_pub) ? channel.remote_node_pub : '';
options.url = common.getSelLNServerUrl() + '/v1/graph/node/' + pubkey;
request(options).then(function(aliasBody) {
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Alias: ' + JSON.stringify(aliasBody.node.alias)});
return request(options).then(function(aliasBody) {
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Alias', data: aliasBody.node.alias});
channel.remote_alias = aliasBody.node.alias;
return aliasBody.node.alias;
})
@ -18,7 +18,7 @@ getAliasForChannel = (channel) => {
}
exports.getAllChannels = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Channels...'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Channels..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/channels';
options.qs = req.query;
@ -26,7 +26,7 @@ exports.getAllChannels = (req, res, next) => {
let remote = 0;
let total = 0;
request(options).then(function (body) {
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'All Channels Received: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'All Channels Received', data: body});
if(body.channels) {
return Promise.all(
body.channels.map(channel => {
@ -39,8 +39,8 @@ exports.getAllChannels = (req, res, next) => {
)
.then(function(values) {
body.channels = common.sortDescByKey(body.channels, 'balancedness');
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'All Channels with Alias: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channels Received.'});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'All Channels with Alias', data: body});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channels Received'});
res.status(200).json(body);
})
.catch(errRes => {
@ -51,7 +51,7 @@ exports.getAllChannels = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Get All Channel Alias Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Get All Channel Alias Error', error: err});
res.status(500).json({
message: 'Fetching Channels Alias Failed!',
error: err.error
@ -59,7 +59,7 @@ exports.getAllChannels = (req, res, next) => {
});
} else {
body.channels = [];
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Empty Channels Received.'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Empty Channels Received'});
res.status(200).json(body);
}
})
@ -71,7 +71,7 @@ exports.getAllChannels = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Get All Channels Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Get All Channels Error', error: err});
return res.status(500).json({
message: 'Fetching All Channels Failed!',
error: err.error
@ -80,7 +80,7 @@ exports.getAllChannels = (req, res, next) => {
};
exports.getPendingChannels = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Pending Channels...'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Pending Channels..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/channels/pending';
options.qs = req.query;
@ -105,8 +105,8 @@ exports.getPendingChannels = (req, res, next) => {
body.waiting_close_channels.map(channel => { return promises.push(getAliasForChannel(channel.channel))});
}
return Promise.all(promises).then(function(values) {
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Pending Channels: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Pending Channels Received.'});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Pending Channels', data: body});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Pending Channels Received'});
res.status(200).json(body);
})
.catch(errRes => {
@ -117,7 +117,7 @@ exports.getPendingChannels = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Get Pending Channel Alias Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Get Pending Channel Alias Error', error: err});
res.status(500).json({
message: 'Fetching Pending Channels Failed!',
error: err.error
@ -132,7 +132,7 @@ exports.getPendingChannels = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Get Pending Channel Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Get Pending Channel Error', error: err});
return res.status(500).json({
message: 'Fetching Pending Channels Failed!',
error: err.error
@ -141,7 +141,7 @@ exports.getPendingChannels = (req, res, next) => {
};
exports.getClosedChannels = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Closed Channels...'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Getting Closed Channels..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/channels/closed';
options.qs = req.query;
@ -155,8 +155,8 @@ exports.getClosedChannels = (req, res, next) => {
)
.then(function(values) {
body.channels = common.sortDescByKey(body.channels, 'close_height');
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Closed Channels: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Closed Channels Received.'});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Closed Channels', data: body});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Closed Channels Received'});
res.status(200).json(body);
})
.catch(errRes => {
@ -167,7 +167,7 @@ exports.getClosedChannels = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Get All Channel Alias Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Get All Channel Alias Error', error: err});
res.status(500).json({
message: 'Fetching Channels Alias Failed!',
error: err.error
@ -186,7 +186,7 @@ exports.getClosedChannels = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Get Closed Channel Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Get Closed Channel Error', error: err});
return res.status(500).json({
message: 'Fetching Closed Channels Failed!',
error: err.error
@ -195,7 +195,7 @@ exports.getClosedChannels = (req, res, next) => {
};
exports.postChannel = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Opening Channel...'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Opening Channel..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/channels';
options.form = {
@ -211,15 +211,15 @@ exports.postChannel = (req, res, next) => {
}
options.form = JSON.stringify(options.form);
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Channel Open Response: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Channel Open Response', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Open New Channel Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Open New Channel Error', error: body.error});
res.status(500).json({
message: 'Open Channel Failed!',
error: (!body) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channels Opened.'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channels Opened'});
res.status(201).json(body);
}
})
@ -231,7 +231,7 @@ exports.postChannel = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Open New Channel Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Open New Channel Error', error: err});
return res.status(500).json({
message: 'Open Channel Failed!',
error: err.error
@ -240,7 +240,7 @@ exports.postChannel = (req, res, next) => {
};
exports.postTransactions = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Sending Payment...'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Sending Payment..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/channels/transactions';
options.form = { payment_request: req.body.paymentReq };
@ -252,11 +252,11 @@ exports.postTransactions = (req, res, next) => {
if (req.body.allowSelfPayment) { options.form.allow_self_payment = req.body.allowSelfPayment; }
if (req.body.lastHopPubkey) { options.form.last_hop_pubkey = Buffer.from(req.body.lastHopPubkey, 'hex').toString('base64'); }
options.form = JSON.stringify(options.form);
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Send Payment Options: ' + options.form});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Send Payment Options', data: options.form});
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Send Payment Response: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Send Payment Response', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Send Payment Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Send Payment Error', error: body.error});
res.status(500).json({
message: 'Send Payment Failed!',
error: (!body) ? 'Error From Server!' : body.error
@ -268,7 +268,7 @@ exports.postTransactions = (req, res, next) => {
error: (!body) ? 'Error From Server!' : body.payment_error
});
} else {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Payment Sent.'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Payment Sent'});
res.status(201).json(body);
}
})
@ -280,7 +280,7 @@ exports.postTransactions = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Send Payment Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Send Payment Error', error: err});
return res.status(500).json({
message: 'Send Payment Failed!',
error: err.error
@ -289,24 +289,24 @@ exports.postTransactions = (req, res, next) => {
};
exports.closeChannel = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Closing Channel...'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Closing Channel..'});
req.setTimeout(60000 * 10); // timeout 10 mins
options = common.getOptions();
let channelpoint = req.params.channelPoint.replace(':', '/');
options.url = common.getSelLNServerUrl() + '/v1/channels/' + channelpoint + '?force=' + req.query.force;
if(req.query.target_conf) { options.url = options.url + '&target_conf=' + req.query.target_conf; }
if(req.query.sat_per_byte) { options.url = options.url + '&sat_per_byte=' + req.query.sat_per_byte; }
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Closing Channel: ' + options.url});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Closing Channel Options URL', data: options.url});
request.delete(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Close Channel Response: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Close Channel Response', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Close Channel Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Close Channel Error', error: body.error});
res.status(500).json({
message: 'Close Channel Failed!',
error: (!body) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Closed.'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Closed'});
res.status(204).json({message: 'Channel Closed!'});
}
})
@ -318,7 +318,7 @@ exports.closeChannel = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Close Channel Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Close Channel Error', error: err});
return res.status(500).json({
message: 'Close Channel Failed!',
error: err.error
@ -327,7 +327,7 @@ exports.closeChannel = (req, res, next) => {
}
exports.postChanPolicy = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Updating Channel Policy...'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Updating Channel Policy..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/chanpolicy';
if(req.body.chanPoint === 'all') {
@ -348,17 +348,17 @@ exports.postChanPolicy = (req, res, next) => {
chan_point: {funding_txid_str: txid_str, output_index: parseInt(output_idx)}
});
}
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy Options: ' + JSON.stringify(options.form)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy Options', data: options.form});
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Update Channel Policy Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Update Channel Policy Error', error: body.error});
res.status(500).json({
message: 'Update Channel Failed!',
error: (!body) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Policy Updated.'});
logger.log({level: 'INFO', fileName: 'Channels', msg: 'Channel Policy Updated'});
res.status(201).json(body);
}
})
@ -370,7 +370,7 @@ exports.postChanPolicy = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Update Channel Policy Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Channels', msg: 'Update Channel Policy Error', error: err});
return res.status(500).json({
message: 'Update Channel Failed!',
error: err.error

@ -27,7 +27,7 @@ function getFilesList(callback) {
}
exports.getBackup = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'ChannelBackup', msg: 'Getting Channel Backup...'});
logger.log({level: 'INFO', fileName: 'ChannelBackup', msg: 'Getting Channel Backup..'});
options = common.getOptions();
let channel_backup_file = '';
let message = '';
@ -56,13 +56,13 @@ exports.getBackup = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'ChannelsBackup', msg: 'Channels Backup Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'ChannelsBackup', msg: 'Channels Backup Error', error: err});
return res.status(500).json({ message: 'Channels Backup Failed!', error: err });
}
}
}
request(options).then(function (body) {
logger.log({level: 'DEBUG', fileName: 'ChannelsBackup', msg: 'Channel Backup: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'ChannelsBackup', msg: 'Channel Backup', data: body});
fs.writeFile(channel_backup_file, JSON.stringify(body), function(errRes) {
if (errRes) {
let err = JSON.parse(JSON.stringify(errRes));
@ -72,10 +72,10 @@ exports.getBackup = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'ChannelsBackup', msg: 'Channels Backup Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'ChannelsBackup', msg: 'Channels Backup Error', error: err});
return res.status(500).json({ message: 'Channels Backup Failed!', error: err.error });
} else {
logger.log({level: 'INFO', fileName: 'ChannelBackup', msg: 'Channel Backup Finished.'});
logger.log({level: 'INFO', fileName: 'ChannelBackup', msg: 'Channel Backup Finished'});
res.status(200).json({ message: message });
}
});
@ -88,7 +88,7 @@ exports.getBackup = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'ChannelsBackup', msg: 'Channel Backup Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'ChannelsBackup', msg: 'Channel Backup Error', error: err});
return res.status(500).json({
message: 'Channels Backup Failed!',
error: err.error
@ -97,7 +97,7 @@ exports.getBackup = (req, res, next) => {
};
exports.postBackupVerify = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'ChannelBackup', msg: 'Verifying Channel Backup...'});
logger.log({level: 'INFO', fileName: 'ChannelBackup', msg: 'Verifying Channel Backup..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/channels/backup/verify';
let channel_verify_file = '';
@ -114,12 +114,12 @@ exports.postBackupVerify = (req, res, next) => {
delete verify_backup.single_chan_backups;
options.form = JSON.stringify(verify_backup);
} else {
logger.log({level: 'ERROR', fileName: 'ChannelBackup', msg: 'Channel Backup Verify Error: Channel backup to verify does not Exist!'});
logger.log({level: 'ERROR', fileName: 'ChannelBackup', msg: 'Channel Backup Verify Error. Channel backup to verify does not Exist!', error: {error: 'Channel backup to verify does not Exist.'}});
res.status(404).json({ message: 'Channels backup to verify does not Exist!' });
}
} else {
verify_backup = '';
logger.log({level: 'ERROR', fileName: 'ChannelBackup', msg: 'Channel Backup Verify Error: Channel backup to verify does not Exist!'});
logger.log({level: 'ERROR', fileName: 'ChannelBackup', msg: 'Channel Backup Verify Error. Channel backup to verify does not Exist!', error: {error: 'Channel backup to verify does not Exist.'}});
res.status(404).json({ message: 'Channels backup to verify does not Exist!' });
}
} else {
@ -131,14 +131,14 @@ exports.postBackupVerify = (req, res, next) => {
options.form = JSON.stringify({ single_chan_backups: { chan_backups: [JSON.parse(verify_backup)] } });
} else {
verify_backup = '';
logger.log({level: 'ERROR', fileName: 'ChannelBackup', msg: 'Channel Backup Verify Error: Channel backup to verify does not Exist!'});
logger.log({level: 'ERROR', fileName: 'ChannelBackup', msg: 'Channel Backup Verify Error. Channel backup to verify does not Exist!', error: {error: 'Channel backup to verify does not Exist.'}});
res.status(404).json({ message: 'Channel backup to verify does not Exist!' });
}
}
if (verify_backup !== '') {
request.post(options).then(function (body) {
logger.log({level: 'DEBUG', fileName: 'ChannelBackup', msg: 'Channel Backup Verify: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'ChannelBackup', msg: 'Channel Backup Verified.'});
logger.log({level: 'DEBUG', fileName: 'ChannelBackup', msg: 'Channel Backup Verify', data: body});
logger.log({level: 'INFO', fileName: 'ChannelBackup', msg: 'Channel Backup Verified'});
res.status(201).json({ message: message });
})
.catch(errRes => {
@ -149,7 +149,7 @@ exports.postBackupVerify = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'ChannelBackup', msg: 'Channel Backup Verify Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'ChannelBackup', msg: 'Channel Backup Verify Error', error: err});
return res.status(404).json({
message: 'Channel backup to Verify failed!',
error: err.error
@ -159,7 +159,7 @@ exports.postBackupVerify = (req, res, next) => {
};
exports.postRestore = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'ChannelBackup', msg: 'Restoring Channel Backup...'});
logger.log({level: 'INFO', fileName: 'ChannelBackup', msg: 'Restoring Channel Backup..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/channels/backup/restore';
let channel_restore_file = '';
@ -176,7 +176,7 @@ exports.postRestore = (req, res, next) => {
restore_backup = JSON.parse(restore_backup);
options.form = JSON.stringify({multi_chan_backup: restore_backup.multi_chan_backup.multi_chan_backup});
} else {
logger.log({level: 'ERROR', fileName: 'ChannelBackup', msg: 'Channel Restore Error: Channels backup to restore does not Exist!'});
logger.log({level: 'ERROR', fileName: 'ChannelBackup', msg: 'Channel Restore Error.Channels backup to restore does not Exist!', error: {error: 'Channel backup to restore does not Exist.'}});
res.status(404).json({ message: 'Channels backup to restore does not Exist!' });
}
} else if (downloaded_exists) {
@ -185,12 +185,12 @@ exports.postRestore = (req, res, next) => {
restore_backup = JSON.parse(restore_backup);
options.form = JSON.stringify({multi_chan_backup: restore_backup.multi_chan_backup.multi_chan_backup});
} else {
logger.log({level: 'ERROR', fileName: 'ChannelBackup', msg: 'Channel Restore Error: Channels backup to restore does not Exist!'});
logger.log({level: 'ERROR', fileName: 'ChannelBackup', msg: 'Channel Restore Error. Channels backup to restore does not Exist!', error: {error: 'Channel backup to restore does not Exist.'}});
res.status(404).json({ message: 'Channels backup to restore does not Exist!' });
}
} else {
restore_backup = '';
logger.log({level: 'ERROR', fileName: 'ChannelBackup', msg: 'Channel Restore Error: Channels backup to restore does not Exist!'});
logger.log({level: 'ERROR', fileName: 'ChannelBackup', msg: 'Channel Restore Error. Channels backup to restore does not Exist!', error: {error: 'Channel backup to restore does not Exist.'}});
res.status(404).json({ message: 'Channels backup to restore does not Exist!' });
}
} else {
@ -202,20 +202,20 @@ exports.postRestore = (req, res, next) => {
options.form = JSON.stringify({ chan_backups: { chan_backups: [JSON.parse(restore_backup)] } });
} else {
restore_backup = '';
logger.log({level: 'ERROR', fileName: 'ChannelBackup', msg: 'Channel Restore Error: Channels backup to restore does not Exist!'});
logger.log({level: 'ERROR', fileName: 'ChannelBackup', msg: 'Channel Restore Error. Channels backup to restore does not Exist!', error: {error: 'Channel backup to restore does not Exist.'}});
res.status(404).json({ message: 'Channel backup to restore does not Exist!' });
}
}
if (restore_backup !== '') {
request.post(options).then(function (body) {
logger.log({level: 'DEBUG', fileName: 'ChannelBackup', msg: 'Channel Backup Restore: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'ChannelBackup', msg: 'Channel Backup Restore', data: body});
fs.rename(channel_restore_file, channel_restore_file + '.restored', () => {
getFilesList(getFilesListRes => {
if (getFilesListRes.error) {
logger.log({level: 'ERROR', fileName: 'ChannelBackup', msg: 'Channel Restore Error: ' + JSON.stringify(getFilesListRes.error)});
logger.log({level: 'ERROR', fileName: 'ChannelBackup', msg: 'Channel Restore Error', error: getFilesListRes.error});
return res.status(500).json({ message: 'Channel restore failed!', list: getFilesListRes });
} else {
logger.log({level: 'INFO', fileName: 'ChannelBackup', msg: 'Channel Restored.'});
logger.log({level: 'INFO', fileName: 'ChannelBackup', msg: 'Channel Restored'});
return res.status(201).json({ message: message, list: getFilesListRes });
}
});
@ -229,7 +229,7 @@ exports.postRestore = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'ChannelBackup', msg: 'Channel Restore Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'ChannelBackup', msg: 'Channel Restore Error', error: err});
return res.status(404).json({
message: 'Channel restore failed!',
error: err.error.error

@ -5,13 +5,13 @@ var swtch = require('./switch');
var options = {};
exports.getFees = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Fees', msg: 'Getting Fees...'});
logger.log({level: 'INFO', fileName: 'Fees', msg: 'Getting Fees..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/fees';
request(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Fee Received: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Fee Received', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Fees', msg: 'Get Fee Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Fees', msg: 'Get Fee Error', error: body.error});
res.status(500).json({
message: "Fetching fee failed!",
error: (!body) ? 'Error From Server!' : body.error
@ -24,13 +24,13 @@ exports.getFees = (req, res, next) => {
let week_start_time = current_time - 604800;
let day_start_time = current_time - 86400;
return swtch.getAllForwardingEvents(month_start_time, current_time, 0, (history) => {
logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Forwarding History Received: ' + JSON.stringify(history)});
logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Forwarding History Received', data: history});
daily_sum = history.forwarding_events.reduce((acc, curr) => (curr.timestamp >= day_start_time) ? [(acc[0] + 1), (acc[1] + +curr.fee_msat)] : acc, [0, 0]);
weekly_sum = history.forwarding_events.reduce((acc, curr) => (curr.timestamp >= week_start_time) ? [(acc[0] + 1), (acc[1] + +curr.fee_msat)] : acc, [0, 0]);
monthly_sum = history.forwarding_events.reduce((acc, curr) => [(acc[0] + 1), (acc[1] + +curr.fee_msat)], [0, 0]);
logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Daily Sum (Transactions, Fee): ' + daily_sum});
logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Weekly Sum (Transactions, Fee): ' + weekly_sum});
logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Monthly Sum (Transactions, Fee): ' + monthly_sum});
logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Daily Sum (Transactions, Fee)', data: daily_sum});
logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Weekly Sum (Transactions, Fee)', data: weekly_sum});
logger.log({level: 'DEBUG', fileName: 'Fees', msg: 'Monthly Sum (Transactions, Fee)', data: monthly_sum});
body.daily_tx_count = daily_sum[0];
body.weekly_tx_count = weekly_sum[0];
body.monthly_tx_count = monthly_sum[0];
@ -42,9 +42,9 @@ exports.getFees = (req, res, next) => {
body.btc_month_fee_sum = common.convertToBTC(body.month_fee_sum);
body.forwarding_events_history = history;
if (history.error) {
logger.log({level: 'ERROR', fileName: 'Fees', msg: 'Fetch Forwarding Events Error: ' + JSON.stringify(history.error)});
logger.log({level: 'ERROR', fileName: 'Fees', msg: 'Fetch Forwarding Events Error', error: history.error});
}
logger.log({level: 'INFO', fileName: 'Fees', msg: 'Fees Received.'});
logger.log({level: 'INFO', fileName: 'Fees', msg: 'Fees Received'});
res.status(200).json(body);
})
}
@ -57,7 +57,7 @@ exports.getFees = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Fees', msg: 'Fetch Forwarding Events Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Fees', msg: 'Fetch Forwarding Events Error', error: err});
return res.status(500).json({
message: "Fetching fee failed!",
error: err.error

@ -5,14 +5,14 @@ var connect = require('../../routes/connect');
var options = {};
exports.getInfo = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'GetInfo', msg: 'Getting LND Node Information...'});
logger.log({level: 'INFO', fileName: 'GetInfo', msg: 'Getting LND Node Information..'});
common.setOptions();
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/getinfo';
logger.log({level: 'DEBUG', fileName:'GetInfo', msg: 'Selected Node: ' + JSON.stringify(common.selectedNode.ln_node)});
logger.log({level: 'DEBUG', fileName: 'GetInfo', msg: 'Calling Info from LND server url: ' + options.url});
logger.log({level: 'DEBUG', fileName:'GetInfo', msg: 'Selected Node', data: common.selectedNode.ln_node});
logger.log({level: 'DEBUG', fileName: 'GetInfo', msg: 'Calling Info from LND server url', data: options.url});
if (!options.headers || !options.headers['Grpc-Metadata-macaroon']) {
logger.log({level: 'ERROR', fileName: 'GetInfo', msg: 'LND Get info failed due to bad or missing macaroon!'});
logger.log({level: 'ERROR', fileName: 'GetInfo', msg: 'LND Get info failed due to bad or missing macaroon!', error: {error: 'Bad or missing macaroon.'}});
res.status(502).json({
message: "Fetching Info Failed!",
error: "Bad Macaroon"
@ -20,17 +20,17 @@ exports.getInfo = (req, res, next) => {
} else {
common.nodes.map(node => { if (node.lnImplementation === 'LND') { connect.getAllNodeAllChannelBackup(node); }});
request(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'GetInfo', msg: JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'GetInfo', msg: 'Node Information', data: body});
const body_str = (!body) ? '' : JSON.stringify(body);
const search_idx = (!body) ? -1 : body_str.search('Not Found');
if(!body || search_idx > -1 || body.error) {
logger.log({level: 'ERROR', fileName: 'GetInfo', msg: 'Get Info Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'GetInfo', msg: 'Get Info Error', error: body.error});
res.status(500).json({
message: "Fetching Info Failed!",
error: (!body || search_idx > -1) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'GetInfo', msg: 'LND Node Information Received.'});
logger.log({level: 'INFO', fileName: 'GetInfo', msg: 'LND Node Information Received'});
res.status(200).json(body);
}
})
@ -42,7 +42,7 @@ exports.getInfo = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'GetInfo', msg: 'Get Info Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'GetInfo', msg: 'Get Info Error', error: err});
return res.status(500).json({
message: "Fetching Info Failed!",
error: err.error

@ -6,28 +6,28 @@ var options = {};
getAliasFromPubkey = (pubkey) => {
options.url = common.getSelLNServerUrl() + '/v1/graph/node/' + pubkey;
return request(options).then(function(res) {
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Alias: ' + JSON.stringify(res.node.alias)});
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Alias', data: res.node.alias});
return res.node.alias;
})
.catch(err => pubkey.substring(0, 17) + '...');
}
exports.getDescribeGraph = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Getting Network Graph...'});
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Getting Network Graph..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/graph';
request.get(options).then((body) => {
const body_str = (!body) ? '' : JSON.stringify(body);
const search_idx = (!body) ? -1 : body_str.search('Not Found');
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Describe Graph Received: ' + body_str});
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Describe Graph Received', data: body_str});
if(!body || search_idx > -1 || body.error) {
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Describe Graph Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Describe Graph Error', error: body.error});
res.status(500).json({
message: "Fetching Describe Graph Failed!",
error: (!body || search_idx > -1) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Network Graph Received.'});
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Network Graph Received'});
res.status(200).json(body);
}
})
@ -39,7 +39,7 @@ exports.getDescribeGraph = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Describe Graph Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Describe Graph Error', error: err});
return res.status(500).json({
message: "Fetching Describe Graph Failed!",
error: err.error
@ -48,15 +48,15 @@ exports.getDescribeGraph = (req, res, next) => {
};
exports.getGraphInfo = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Getting Graph Information...'});
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Getting Graph Information..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/graph/info';
request.get(options).then((body) => {
const body_str = (!body) ? '' : JSON.stringify(body);
const search_idx = (!body) ? -1 : body_str.search('Not Found');
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Network Info Received: ' + body_str});
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Network Info Received', data: body_str});
if(!body || search_idx > -1 || body.error) {
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Network Info Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Network Info Error', error: body.error});
res.status(500).json({
message: "Fetching network Info failed!",
error: (!body || search_idx > -1) ? 'Error From Server!' : body.error
@ -66,8 +66,8 @@ exports.getGraphInfo = (req, res, next) => {
body.btc_avg_channel_size = (!body.avg_channel_size) ? 0 : common.convertToBTC(body.avg_channel_size);
body.btc_min_channel_size = (!body.min_channel_size) ? 0 : common.convertToBTC(body.min_channel_size);
body.btc_max_channel_size = (!body.max_channel_size) ? 0 : common.convertToBTC(body.max_channel_size);
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Network Information After Rounding and Conversion: ' + body_str});
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Graph Information Received.'});
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Network Information After Rounding and Conversion', data: body_str});
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Graph Information Received'});
res.status(200).json(body);
}
})
@ -79,7 +79,7 @@ exports.getGraphInfo = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Fetch Network Info Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Fetch Network Info Error', error: err});
return res.status(500).json({
message: "Fetching network Info failed!",
error: err.error
@ -88,19 +88,19 @@ exports.getGraphInfo = (req, res, next) => {
};
exports.getGraphNode = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Getting Graph Node Information...'});
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Getting Graph Node Information..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/graph/node/' + req.params.pubKey;
request(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Node Info Received: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Node Info Received', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Fetch Node Info Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Fetch Node Info Error', error: body.error});
res.status(500).json({
message: "Fetching node Info failed!",
error: (!body) ? 'Error From Server!' : body.error
});
}
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Graph Node Information Received.'});
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Graph Node Information Received'});
res.status(200).json(body);
})
.catch(errRes => {
@ -111,7 +111,7 @@ exports.getGraphNode = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Fetch Node Info Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Fetch Node Info Error', error: err});
return res.status(500).json({
message: "Fetching node Info failed!",
error: err.error
@ -120,19 +120,19 @@ exports.getGraphNode = (req, res, next) => {
};
exports.getGraphEdge = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Getting Graph Edge Information...'});
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Getting Graph Edge Information..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/graph/edge/' + req.params.chanid;
request(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Edge Info Received: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Edge Info Received', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Fetch Edge Info Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Fetch Edge Info Error', error: body.error});
res.status(500).json({
message: "Fetching Edge Info Failed!",
error: (!body) ? 'Error From Server!' : body.error
});
}
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Graph Edge Information Received.'});
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Graph Edge Information Received'});
res.status(200).json(body);
})
.catch(errRes => {
@ -143,7 +143,7 @@ exports.getGraphEdge = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Fetch Edge Info Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Fetch Edge Info Error', error: err});
return res.status(500).json({
message: "Fetching Edge Info Failed!",
error: err.error
@ -152,17 +152,17 @@ exports.getGraphEdge = (req, res, next) => {
};
exports.getQueryRoutes = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Getting Graph Routes...'});
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Getting Graph Routes..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/graph/routes/' + req.params.destPubkey + '/' + req.params.amount;
if(req.query.outgoing_chan_id) {
options.url = options.url + '?outgoing_chan_id=' + req.query.outgoing_chan_id;
}
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Query Routes URL: ' + options.url});
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Query Routes URL', data: options.url});
request(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Query Routes Received: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Query Routes Received', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Fetch Query Routes Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Fetch Query Routes Error', error: body.error});
res.status(500).json({
message: "Fetching Query Routes Failed!",
error: (!body) ? 'Error From Server!' : body.error
@ -176,8 +176,8 @@ exports.getQueryRoutes = (req, res, next) => {
hop.pubkey_alias = values[i];
return hop;
});
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Hops with Alias: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Graph Routes Received.'});
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Hops with Alias', data: body});
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Graph Routes Received'});
res.status(200).json(body);
})
.catch(errRes => {
@ -188,14 +188,14 @@ exports.getQueryRoutes = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Fetch Query Routes Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Fetch Query Routes Error', error: err});
return res.status(500).json({
message: "Fetching Query Routes Failed!",
error: err.error
});
});
} else {
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Graph Routes Received.'});
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Graph Routes Received'});
res.status(200).json(body);
}
})
@ -207,7 +207,7 @@ exports.getQueryRoutes = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Fetch Query Routes Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Fetch Query Routes Error', error: err});
return res.status(500).json({
message: "Fetching Query Routes Failed!",
error: err.error
@ -216,13 +216,13 @@ exports.getQueryRoutes = (req, res, next) => {
};
exports.getRemoteFeePolicy = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Getting Remote Fee Policy...'});
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Getting Remote Fee Policy..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/graph/edge/' + req.params.chanid;
request(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Edge Info Received: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Edge Info Received', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Fetch Edge Info Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Fetch Edge Info Error', error: body.error});
res.status(500).json({
message: "Fetching Edge Info Failed!",
error: (!body) ? 'Error From Server!' : body.error
@ -242,7 +242,7 @@ exports.getRemoteFeePolicy = (req, res, next) => {
fee_rate_milli_msat: body.node1_policy.fee_rate_milli_msat
};
}
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Remote Fee Policy Received.'});
logger.log({level: 'INFO', fileName: 'Graph', msg: 'Remote Fee Policy Received'});
res.status(200).json(remoteNodeFee);
})
.catch(errRes => {
@ -253,7 +253,7 @@ exports.getRemoteFeePolicy = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Fetch Edge Info Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Fetch Edge Info Error', error: err});
return res.status(500).json({
message: "Fetching Edge Info Failed!",
error: err.error
@ -267,7 +267,7 @@ exports.getAliasesForPubkeys = (req, res, next) => {
let pubkeyArr = req.query.pubkeys.split(',');
return Promise.all(pubkeyArr.map(pubkey => getAliasFromPubkey(pubkey)))
.then(function(values) {
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Node Alias: ' + JSON.stringify(values)});
logger.log({level: 'DEBUG', fileName: 'Graph', msg: 'Node Alias', data: values});
res.status(200).json(values);
})
.catch(errRes => {
@ -278,7 +278,7 @@ exports.getAliasesForPubkeys = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Get Aliases for Pubkeys Failed: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Graph', msg: 'Get Aliases for Pubkeys Error', error: err});
return res.status(500).json({
message: "Getting Aliases for Pubkeys Failed!",
error: err.error

@ -4,19 +4,19 @@ var logger = require('../shared/logger');
var options = {};
exports.getInvoice = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Invoice', msg: 'Getting Invoice Information...'});
logger.log({level: 'INFO', fileName: 'Invoice', msg: 'Getting Invoice Information..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/invoice/' + req.params.rHashStr;
request(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoice Info Received: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoice Info Received', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'Invoice Info Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'Invoice Info Error', error: body.error});
res.status(500).json({
message: "Fetching Invoice Info Failed!",
error: (!body) ? 'Error From Server!' : body.error
});
}
logger.log({level: 'INFO', fileName: 'Invoice', msg: 'Invoice Information Received.'});
logger.log({level: 'INFO', fileName: 'Invoice', msg: 'Invoice Information Received'});
res.status(200).json(body);
})
.catch(errRes => {
@ -27,7 +27,7 @@ exports.getInvoice = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'Fetch Invoice Info Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'Fetch Invoice Info Error', error: err});
return res.status(500).json({
message: "Fetching Invoice Info Failed!",
error: err.error
@ -36,16 +36,16 @@ exports.getInvoice = (req, res, next) => {
};
exports.listInvoices = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Invoice', msg: 'Getting List Invoices...'});
logger.log({level: 'INFO', fileName: 'Invoice', msg: 'Getting List Invoices..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/invoices?num_max_invoices=' + req.query.num_max_invoices + '&index_offset=' + req.query.index_offset +
'&reversed=' + req.query.reversed;
request(options).then((body) => {
const body_str = (!body) ? '' : JSON.stringify(body);
const search_idx = (!body) ? -1 : body_str.search('Not Found');
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received: ' + body_str});
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received', data: body_str});
if(!body || search_idx > -1 || body.error) {
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'List Invoices Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'List Invoices Error', error: body.error});
res.status(500).json({
message: "Fetching Invoice Info failed!",
error: (!body || search_idx > -1) ? 'Error From Server!' : body.error
@ -61,8 +61,8 @@ exports.listInvoices = (req, res, next) => {
});
body.invoices = common.sortDescByKey(body.invoices, 'creation_date');
}
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Invoice', msg: 'Invoices List Received.'});
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List Received', data: body});
logger.log({level: 'INFO', fileName: 'Invoice', msg: 'Invoices List Received'});
res.status(200).json(body);
}
})
@ -74,7 +74,7 @@ exports.listInvoices = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'List Invoice Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'List Invoice Error', error: err});
return res.status(500).json({
message: "Fetching Invoices failed!",
error: err.error
@ -83,7 +83,7 @@ exports.listInvoices = (req, res, next) => {
};
exports.addInvoice = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Invoice', msg: 'Adding Invoice...'});
logger.log({level: 'INFO', fileName: 'Invoice', msg: 'Adding Invoice..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/invoices';
options.form = {
@ -98,15 +98,15 @@ exports.addInvoice = (req, res, next) => {
}
options.form = JSON.stringify(options.form);
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Add Invoice Responce: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Invoice', msg: 'Add Invoice Responce', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'Add Invoice Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'Add Invoice Error', error: body.error});
res.status(500).json({
message: "Add Invoice Failed!",
error: (!body) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'Invoice', msg: 'Invoice Added.'});
logger.log({level: 'INFO', fileName: 'Invoice', msg: 'Invoice Added'});
res.status(201).json(body);
}
})
@ -118,7 +118,7 @@ exports.addInvoice = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'Add Invoice Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Invoice', msg: 'Add Invoice Error', error: err});
return res.status(500).json({
message: "Add Invoice Failed!",
error: err.error

@ -4,22 +4,22 @@ var logger = require('../shared/logger');
var options = {};
exports.signMessage = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Message', msg: 'Signing Message...'});
logger.log({level: 'INFO', fileName: 'Message', msg: 'Signing Message..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/signmessage';
options.form = JSON.stringify({
msg: Buffer.from(req.body.message).toString('base64')
});
request.post(options, (error, response, body) => {
logger.log({level: 'DEBUG', fileName: 'Messages', msg: 'Message Signed: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Messages', msg: 'Message Signed', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Messages', msg: 'Sign Message Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Messages', msg: 'Sign Message Error', error: body.error});
res.status(500).json({
message: "Sign message failed!",
error: (!body) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'Message', msg: 'Message Signed.'});
logger.log({level: 'INFO', fileName: 'Message', msg: 'Message Signed'});
res.status(201).json(body);
}
})
@ -31,7 +31,7 @@ exports.signMessage = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Messages', msg: 'Sign Message Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Messages', msg: 'Sign Message Error', error: err});
return res.status(500).json({
message: 'Sign Message Failed!',
error: err.error
@ -40,7 +40,7 @@ exports.signMessage = (req, res, next) => {
};
exports.verifyMessage = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Message', msg: 'Verifying Message...'});
logger.log({level: 'INFO', fileName: 'Message', msg: 'Verifying Message..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/verifymessage';
options.form = JSON.stringify({
@ -48,15 +48,15 @@ exports.verifyMessage = (req, res, next) => {
signature: req.body.signature
});
request.post(options, (error, response, body) => {
logger.log({level: 'DEBUG', fileName: 'Messages', msg: 'Message Verified: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Messages', msg: 'Message Verified', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Messages', msg: 'Verify Message Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Messages', msg: 'Verify Message Error', error: body.error});
res.status(500).json({
message: "Verify message failed!",
error: (!body) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'Message', msg: 'Message Verified.'});
logger.log({level: 'INFO', fileName: 'Message', msg: 'Message Verified'});
res.status(201).json(body);
}
})
@ -68,7 +68,7 @@ exports.verifyMessage = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Messages', msg: 'Message Verification Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Messages', msg: 'Message Verification Error', error: err});
return res.status(500).json({
message: 'Verify Message Failed!',
error: err.error

@ -4,21 +4,21 @@ var logger = require('../shared/logger');
var options = {};
exports.getNewAddress = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'NewAddress', msg: 'Getting New Address...'});
logger.log({level: 'INFO', fileName: 'NewAddress', msg: 'Getting New Address..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/newaddress?type=' + req.query.type;
request(options).then((body) => {
const body_str = (!body) ? '' : JSON.stringify(body);
const search_idx = (!body) ? -1 : body_str.search('Not Found');
logger.log({level: 'DEBUG', fileName: 'NewAddress', msg: 'New Address Received: ' + body_str});
logger.log({level: 'DEBUG', fileName: 'NewAddress', msg: 'New Address Received', data: body_str});
if(!body || search_idx > -1 || body.error) {
logger.log({level: 'ERROR', fileName: 'NewAddress', msg: 'New Address Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'NewAddress', msg: 'New Address Error', error: body.error});
res.status(500).json({
message: "Fetching new address failed!",
error: (!body || search_idx > -1) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'NewAddress', msg: 'New Address Received.'});
logger.log({level: 'INFO', fileName: 'NewAddress', msg: 'New Address Received'});
res.status(200).json(body);
}
})
@ -30,7 +30,7 @@ exports.getNewAddress = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'NewAddress', msg: 'New Address Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'NewAddress', msg: 'New Address Error', error: err});
return res.status(500).json({
message: "Fetching new address failed!",
error: err.error

@ -3,23 +3,32 @@ var common = require('../../routes/common');
var logger = require('../shared/logger');
var options = {};
decodePaymentFromPaymentRequest = (payment) => {
options.url = common.getSelLNServerUrl() + '/v1/payreq/' + payment;
return request(options).then(function(res) {
logger.log({level: 'DEBUG', fileName: 'PayReq', msg: 'Description', data: res.description});
return res;
})
.catch(err => {});
}
exports.decodePayment = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'PayRequest', msg: 'Decoding Payment...'});
logger.log({level: 'INFO', fileName: 'PayRequest', msg: 'Decoding Payment..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/payreq/' + req.params.payRequest;
request(options).then((body) => {
const body_str = (!body) ? '' : JSON.stringify(body);
const search_idx = (!body) ? -1 : body_str.search('Not Found');
logger.log({level: 'DEBUG', fileName: 'PayReq', msg: 'Payment Decode Received: ' + body_str});
logger.log({level: 'DEBUG', fileName: 'PayReq', msg: 'Payment Decode Received', data: body_str});
if(!body || search_idx > -1 || body.error) {
logger.log({level: 'ERROR', fileName: 'PayReq', msg: 'Payment Decode Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'PayReq', msg: 'Payment Decode Error 1', error: body.error});
res.status(500).json({
message: "Payment Request Decode Failed!",
error: (!body || search_idx > -1) ? 'Error From Server!' : body.error
});
} else {
body.btc_num_satoshis = (!body.num_satoshis) ? 0 : common.convertToBTC(body.num_satoshis);
logger.log({level: 'INFO', fileName: 'PayRequest', msg: 'Payment Decoded.'});
logger.log({level: 'INFO', fileName: 'PayRequest', msg: 'Payment Decoded'});
res.status(200).json(body);
}
})
@ -31,7 +40,7 @@ exports.decodePayment = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'PayReq', msg: 'Payment Decode Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'PayReq', msg: 'Payment Decode Error 2', error: err.error});
return res.status(500).json({
message: "Payment Request Decode Failed!",
error: err.error
@ -40,14 +49,14 @@ exports.decodePayment = (req, res, next) => {
};
exports.decodePayments = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'PayRequest', msg: 'Decoding Payments List...'});
logger.log({level: 'INFO', fileName: 'PayRequest', msg: 'Decoding Payments List..'});
options = common.getOptions();
if (req.body.payments) {
let paymentsArr = req.body.payments.split(',');
return Promise.all(paymentsArr.map(payment => decodePaymentFromPaymentRequest(payment)))
.then(function(values) {
logger.log({level: 'DEBUG', fileName: 'PayReq', msg: 'Decoded Payments: ' + JSON.stringify(values)});
logger.log({level: 'INFO', fileName: 'PayRequest', msg: 'Payment List Decoded.'});
logger.log({level: 'DEBUG', fileName: 'PayReq', msg: 'Decoded Payments', data: values});
logger.log({level: 'INFO', fileName: 'PayRequest', msg: 'Payment List Decoded'});
res.status(200).json(values);
})
.catch(errRes => {
@ -58,23 +67,14 @@ exports.decodePayments = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'PayReq', msg: 'Decode Payments Failed: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'PayReq', msg: 'Decode Payments Error', error: err});
return res.status(500).json({
message: "Decode Payments Failed!",
error: err.error
});
});
} else {
logger.log({level: 'INFO', fileName: 'PayRequest', msg: 'Empty Payment List Decoded.'});
logger.log({level: 'INFO', fileName: 'PayRequest', msg: 'Empty Payment List Decoded'});
res.status(200).json([]);
}
};
decodePaymentFromPaymentRequest = (payment) => {
options.url = common.getSelLNServerUrl() + '/v1/payreq/' + payment;
return request(options).then(function(res) {
logger.log({level: 'DEBUG', fileName: 'PayReq', msg: 'Description: ' + JSON.stringify(res.description)});
return res;
})
.catch(err => {});
}

@ -4,15 +4,15 @@ var logger = require('../shared/logger');
var options = {};
exports.getPayments = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Getting Payments List...'});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Getting Payments List..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/payments?max_payments=' + req.query.max_payments + '&index_offset=' + req.query.index_offset + '&reversed=' + req.query.reversed;
request(options).then((body) => {
const body_str = (!body) ? '' : JSON.stringify(body);
const search_idx = (!body) ? -1 : body_str.search('Not Found');
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Payment List Received: ' + body_str});
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Payment List Received', data: body_str});
if(!body || search_idx > -1 || body.error) {
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'List Payments Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'List Payments Error', error: body.error});
res.status(500).json({
message: "Payments List Failed!",
error: (!body || search_idx > -1) ? 'Error From Server!' : body.error
@ -21,8 +21,8 @@ exports.getPayments = (req, res, next) => {
if (body.payments && body.payments.length > 0) {
body.payments = common.sortDescByKey(body.payments, 'creation_date');
}
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Payments After Sort: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Payments List Received.'});
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'Payments After Sort', data: body});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Payments List Received'});
res.status(200).json(body);
}
})
@ -34,7 +34,7 @@ exports.getPayments = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'List Payments Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'List Payments Error', error: err});
return res.status(500).json({
message: "Payments List Failed!",
error: err.error
@ -43,15 +43,15 @@ exports.getPayments = (req, res, next) => {
};
exports.getAllLightningTransactions = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Getting All Lightning Transactions...'});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Getting All Lightning Transactions..'});
const options1 = JSON.parse(JSON.stringify(common.getOptions()))
const options2 = JSON.parse(JSON.stringify(common.getOptions()))
options1.url = common.getSelLNServerUrl() + '/v1/payments?max_payments=1000000&index_offset=0&reversed=true';
options2.url = common.getSelLNServerUrl() + '/v1/invoices?num_max_invoices=1000000&index_offset=0&reversed=true';
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'All Payments Options: ' + JSON.stringify(options1)});
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'All Invoices Options: ' + JSON.stringify(options2)});
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'All Payments Options', data: options1});
logger.log({level: 'DEBUG', fileName: 'Payments', msg: 'All Invoices Options', data: options2});
return Promise.all([request(options1), request(options2)]).then(function(values) {
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Payments & Invoices Received.'});
logger.log({level: 'INFO', fileName: 'Payments', msg: 'Payments & Invoices Received'});
res.status(200).json({paymentsAll: values[0], invoicesAll: values[1]});
}).catch(errRes => {
let err = JSON.parse(JSON.stringify(errRes));
@ -61,7 +61,7 @@ exports.getAllLightningTransactions = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'All Lightning Transactions Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Payments', msg: 'All Lightning Transactions Error', error: err});
return res.status(500).json({
message: "All Lightning Transactions Failed!",
error: (err.error && err.error.error) ? err.error.error : (err.error) ? err.error : err

@ -6,7 +6,7 @@ var options = {};
getAliasForPeers = (peer) => {
options.url = common.getSelLNServerUrl() + '/v1/graph/node/' + peer.pub_key;
return request(options).then(function(aliasBody) {
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Alias: ' + JSON.stringify(aliasBody.node.alias)});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Alias', data: aliasBody.node.alias});
peer.alias = aliasBody.node.alias;
return aliasBody.node.alias;
})
@ -17,19 +17,19 @@ getAliasForPeers = (peer) => {
}
exports.getPeers = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Getting Peers...'});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Getting Peers..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/peers';
request(options).then(function (body) {
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peers Received: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peers Received', data: body});
let peers = !body.peers ? [] : body.peers;
return Promise.all(peers.map(peer => getAliasForPeers(peer))).then(function(values) {
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peers with Alias before Sort: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peers with Alias before Sort', data: body});
if (body.peers) {
body.peers = common.sortDescByStrKey(body.peers, 'alias');
}
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peers with Alias after Sort: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peers Received.'});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peers with Alias after Sort', data: body});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peers Received'});
res.status(200).json(body.peers);
})
}).catch(errRes => {
@ -40,7 +40,7 @@ exports.getPeers = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'List Peers Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'List Peers Error', error: err});
return res.status(500).json({
message: "Peers List Failed!",
error: err.error
@ -49,7 +49,7 @@ exports.getPeers = (req, res, next) => {
};
exports.postPeer = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Connecting Peer...'});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Connecting Peer..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/peers';
options.form = JSON.stringify({
@ -57,9 +57,9 @@ exports.postPeer = (req, res, next) => {
perm: req.body.perm
});
request.post(options, (error, response, body) => {
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Add Peer Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Add Peer Error', error: body.error});
res.status(500).json({
message: "Adding peer failed!",
error: (!body) ? 'Error From Server!' : body.error
@ -71,12 +71,12 @@ exports.postPeer = (req, res, next) => {
return Promise.all(peers.map(peer => getAliasForPeers(peer))).then(function(values) {
if (body.peers) {
body.peers = common.sortDescByStrKey(body.peers, 'alias');
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer with Alias: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer with Alias', data: body});
body.peers = common.newestOnTop(body.peers, 'pub_key', req.body.pubkey);
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer with Newest On Top: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer with Newest On Top', data: body});
}
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer Added Successfully'});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peer Connected.'});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peer Connected'});
res.status(201).json(body.peers);
})
.catch(errRes => {
@ -87,7 +87,7 @@ exports.postPeer = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Peer', msg: 'Add Peer Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Peer', msg: 'Add Peer Error', error: err});
return res.status(500).json({
message: "Peer Add Failed!",
error: err.error
@ -99,20 +99,20 @@ exports.postPeer = (req, res, next) => {
};
exports.deletePeer = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Disconnecting Peer...'});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Disconnecting Peer..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/peers/' + req.params.peerPubKey;
request.delete(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Detach Peer Response: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Detach Peer Response', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Detach Peer Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Detach Peer Error', error: body.error});
res.status(500).json({
message: "Detach peer failed!",
error: (!body) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer Detached: ' + req.params.peerPubKey});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peer Disconnected.'});
logger.log({level: 'DEBUG', fileName: 'Peers', msg: 'Peer Detached', data: req.params.peerPubKey});
logger.log({level: 'INFO', fileName: 'Peers', msg: 'Peer Disconnected'});
res.status(204).json({});
}
})
@ -124,7 +124,7 @@ exports.deletePeer = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Detach Peer Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Peers', msg: 'Detach Peer Error', error: err});
return res.status(500).json({
message: "Detach Peer Failed!",
error: err.error

@ -17,7 +17,7 @@ exports.forwardingHistory = (req, res, next) => {
};
exports.getAllForwardingEvents = (start, end, offset, callback) => {
logger.log({level: 'INFO', fileName: 'Switch', msg: 'Getting Forwarding Events...'});
logger.log({level: 'INFO', fileName: 'Switch', msg: 'Getting Forwarding Events..'});
if (offset === 0) { responseData = { forwarding_events: [], last_offset_index: 0 }; }
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/switch';
@ -27,10 +27,10 @@ exports.getAllForwardingEvents = (start, end, offset, callback) => {
options.form.num_max_events = num_max_events;
options.form.index_offset = offset;
options.form = JSON.stringify(options.form);
logger.log({level: 'DEBUG', fileName: 'Switch', msg: 'Forwarding History Params: ' + options.form});
logger.log({level: 'DEBUG', fileName: 'Switch', msg: 'Forwarding History Params', data: options.form});
return request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Switch', msg: 'Forwarding History: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Switch', msg: 'Forwarding Events Received.'});
logger.log({level: 'DEBUG', fileName: 'Switch', msg: 'Forwarding History', data: body});
logger.log({level: 'INFO', fileName: 'Switch', msg: 'Forwarding Events Received'});
if (body.forwarding_events) {
responseData.forwarding_events.push(...body.forwarding_events);
}
@ -52,7 +52,7 @@ exports.getAllForwardingEvents = (start, end, offset, callback) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Switch', msg: 'Get All Forwarding Events Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Switch', msg: 'Get All Forwarding Events Error', error: err});
return callback({
message: "Forwarding Events Failed!",
error: err.error

@ -4,15 +4,15 @@ var logger = require('../shared/logger');
var options = {};
exports.getTransactions = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Transactions', msg: 'Getting Transactions...'});
logger.log({level: 'INFO', fileName: 'Transactions', msg: 'Getting Transactions..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/transactions';
request(options).then((body) => {
const body_str = (!body) ? '' : JSON.stringify(body);
const search_idx = (!body) ? -1 : body_str.search('Not Found');
logger.log({level: 'DEBUG', fileName: 'Transactions', msg: 'Transaction Received: ' + body_str});
logger.log({level: 'DEBUG', fileName: 'Transactions', msg: 'Transaction Received', data: body_str});
if (!body || search_idx > -1 || body.error) {
logger.log({level: 'ERROR', fileName: 'Transactions', msg: 'List Transactions Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Transactions', msg: 'List Transactions Error', error: body.error});
res.status(500).json({
message: "Fetching Transactions Failed!",
error: (!body || search_idx > -1) ? 'Error From Server!' : body.error
@ -21,7 +21,7 @@ exports.getTransactions = (req, res, next) => {
if (body.transactions && body.transactions.length > 0) {
body.transactions = common.sortDescByKey(body.transactions, 'time_stamp');
}
logger.log({level: 'INFO', fileName: 'Transactions', msg: 'Transactions Received.'});
logger.log({level: 'INFO', fileName: 'Transactions', msg: 'Transactions Received'});
res.status(200).json(body.transactions);
}
})
@ -33,7 +33,7 @@ exports.getTransactions = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Transactions', msg: 'List Transactions Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Transactions', msg: 'List Transactions Error', error: err});
return res.status(500).json({
message: "Fetching Transactions Failed!",
error: err.error
@ -42,7 +42,7 @@ exports.getTransactions = (req, res, next) => {
};
exports.postTransactions = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Transactions', msg: 'Sending Transaction...'});
logger.log({level: 'INFO', fileName: 'Transactions', msg: 'Sending Transaction..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v1/transactions';
options.form = {
@ -56,15 +56,15 @@ exports.postTransactions = (req, res, next) => {
}
options.form = JSON.stringify(options.form);
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Transactions', msg: 'Transaction Post Response: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Transactions', msg: 'Transaction Post Response', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Transactions', msg: 'Post Transaction Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Transactions', msg: 'Post Transaction Error', error: body.error});
res.status(500).json({
message: "Transactions post failed!",
error: (!body) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'Transactions', msg: 'Transaction Sent.'});
logger.log({level: 'INFO', fileName: 'Transactions', msg: 'Transaction Sent'});
res.status(201).json(body);
}
})
@ -76,7 +76,7 @@ exports.postTransactions = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Transactions', msg: 'Transaction Post Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Transactions', msg: 'Transaction Post Error', error: err});
return res.status(500).json({
message: "Transactions post failed!",
error: err.error

@ -5,7 +5,7 @@ var logger = require('../shared/logger');
var options = {};
exports.genSeed = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Generating Seed...'});
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Generating Seed..'});
options = common.getOptions();
if ( req.params.passphrase) {
options.url = common.getSelLNServerUrl() + '/v1/genseed?aezeed_passphrase=' + Buffer.from(atob(req.params.passphrase)).toString('base64');
@ -14,13 +14,13 @@ exports.genSeed = (req, res, next) => {
}
request(options).then((body) => {
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'Gen Seed Error: ' + ((!body || !body.error) ? 'Error From Server!' : JSON.stringify(body.error))});
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'Gen Seed Error', error: body.error});
res.status(500).json({
message: "Genseed failed!",
error: (!body) ? 'Error From Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Seed Generated.'});
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Seed Generated'});
res.status(200).json(body);
}
})
@ -32,7 +32,7 @@ exports.genSeed = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'Gen Seed Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'Gen Seed Error', error: err});
return res.status(500).json({
message: "Genseed failed!",
error: err.error
@ -44,14 +44,14 @@ exports.operateWallet = (req, res, next) => {
options = common.getOptions();
options.method = 'POST';
if (!req.params.operation || req.params.operation === 'unlockwallet') {
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Unlocking Wallet...'});
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Unlocking Wallet..'});
options.url = common.getSelLNServerUrl() + '/v1/unlockwallet';
options.form = JSON.stringify({
wallet_password: Buffer.from(atob(req.body.wallet_password)).toString('base64')
});
err_message = 'Unlocking wallet failed! Verify that lnd is running and the wallet is locked!';
} else {
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Initializing Wallet...'});
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Initializing Wallet..'});
options.url = common.getSelLNServerUrl() + '/v1/initwallet';
if ( req.body.aezeed_passphrase && req.body.aezeed_passphrase !== '') {
options.form = JSON.stringify({
@ -68,17 +68,17 @@ exports.operateWallet = (req, res, next) => {
err_message = 'Initializing wallet failed!';
}
request(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'Wallet Response: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'Wallet Response', data: body});
const body_str = (!body) ? '' : JSON.stringify(body);
const search_idx = (!body) ? -1 : body_str.search('Not Found');
if(!body) {
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'Wallet Error: ' + ((error) ? JSON.stringify(error) : err_message)});
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'Wallet Error', error: {error: (error ? error : err_message)}});
res.status(500).json({
message: err_message,
error: (error) ? error : err_message
});
} else if(search_idx > -1) {
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'Wallet Error: ' + err_message});
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'Wallet Error', error: {error: err_message}});
res.status(500).json({
message: err_message,
error: err_message
@ -87,14 +87,14 @@ exports.operateWallet = (req, res, next) => {
if((body.code === 1 && body.error === 'context canceled') || (body.code === 14 && body.error === 'transport is closing')) {
res.status(201).json('Successful');
} else {
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'Wallet Error: ' + JSON.stringify(body.error)});
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'Wallet Error', error: body.error});
res.status(500).json({
message: err_message,
error: body.error
});
}
} else {
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Wallet Unlocked/Initialized.'});
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Wallet Unlocked/Initialized'});
res.status(201).json('Successful');
}
})
@ -106,7 +106,7 @@ exports.operateWallet = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'Wallet Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'Wallet Error', error: err});
if((err.error.code === 1 && err.error.error === 'context canceled') || (err.error.code === 14 && err.error.error === 'transport is closing')) {
res.status(201).json('Successful');
} else {
@ -124,12 +124,12 @@ exports.updateSelNodeOptions = (req, res, next) => {
}
exports.getUTXOs = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Getting UTXOs...'});
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Getting UTXOs..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v2/wallet/utxos?max_confs=' + req.query.max_confs;
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'UTXO List Response: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'UTXOs Received.'});
logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'UTXO List Response', data: body});
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'UTXOs Received'});
res.status(200).json(body.utxos ? body.utxos : []);
})
.catch(errRes => {
@ -140,7 +140,7 @@ exports.getUTXOs = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'UTXOs Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'UTXOs Error', error: err});
return res.status(500).json({
message: "UTXO list failed!",
error: err.error
@ -149,7 +149,7 @@ exports.getUTXOs = (req, res, next) => {
}
exports.bumpFee = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Bumping Fee...'});
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Bumping Fee..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v2/wallet/bumpfee';
options.form = {};
@ -164,8 +164,8 @@ exports.bumpFee = (req, res, next) => {
}
options.form = JSON.stringify(options.form);
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'Bump Fee Response: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Fee Bumped.'});
logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'Bump Fee Response', data: body});
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Fee Bumped'});
res.status(200).json(body);
})
.catch(errRes => {
@ -176,7 +176,7 @@ exports.bumpFee = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'Bump Fee Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'Bump Fee Error', error: err});
return res.status(500).json({
message: "Bump fee failed!",
error: err.error
@ -185,7 +185,7 @@ exports.bumpFee = (req, res, next) => {
}
exports.labelTransaction = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Labelling Transaction...'});
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Labelling Transaction..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v2/wallet/tx/label';
options.form = {};
@ -193,10 +193,10 @@ exports.labelTransaction = (req, res, next) => {
options.form.label = req.body.label;
options.form.overwrite = req.body.overwrite;
options.form = JSON.stringify(options.form);
logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'Label Transaction Options: ' + JSON.stringify(options.form)});
logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'Label Transaction Options', data: options.form});
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'Label Transaction Post Response: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Transaction Labelled.'});
logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'Label Transaction Post Response', data: body});
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Transaction Labelled'});
res.status(200).json(body);
})
.catch(errRes => {
@ -207,7 +207,7 @@ exports.labelTransaction = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'Label Transaction Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'Label Transaction Error', error: err});
return res.status(500).json({
message: "Transaction label failed!",
error: err.error
@ -216,7 +216,7 @@ exports.labelTransaction = (req, res, next) => {
}
exports.leaseUTXO = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Leasing UTXO...'});
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Leasing UTXO..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v2/wallet/utxos/lease';
options.form = {};
@ -226,10 +226,10 @@ exports.leaseUTXO = (req, res, next) => {
output_index: req.body.outputIndex
};
options.form = JSON.stringify(options.form);
logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'UTXO Lease Options: ' + options.form});
logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'UTXO Lease Options', data: options.form});
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'UTXO Lease Response: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'UTXO Leased.'});
logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'UTXO Lease Response', data: body});
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'UTXO Leased'});
res.status(200).json(body);
})
.catch(errRes => {
@ -240,7 +240,7 @@ exports.leaseUTXO = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'Lease UTXO Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'Lease UTXO Error', error: err});
return res.status(500).json({
message: "Lease UTXO failed!",
error: err.error
@ -249,7 +249,7 @@ exports.leaseUTXO = (req, res, next) => {
}
exports.releaseUTXO = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Releasing UTXO...'});
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'Releasing UTXO..'});
options = common.getOptions();
options.url = common.getSelLNServerUrl() + '/v2/wallet/utxos/release';
options.form = {};
@ -260,8 +260,8 @@ exports.releaseUTXO = (req, res, next) => {
};
options.form = JSON.stringify(options.form);
request.post(options).then((body) => {
logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'UTXO Release Response: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'UTXO Released.'});
logger.log({level: 'DEBUG', fileName: 'Wallet', msg: 'UTXO Release Response', data: body});
logger.log({level: 'INFO', fileName: 'Wallet', msg: 'UTXO Released'});
res.status(200).json(body);
})
.catch(errRes => {
@ -272,7 +272,7 @@ exports.releaseUTXO = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'Release UTXO Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Wallet', msg: 'Release UTXO Error', error: err});
return res.status(500).json({
message: "Release UTXO failed!",
error: err.error

@ -7,26 +7,26 @@ var request = require('request-promise');
var options = {};
exports.updateSelectedNode = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Updating Selected Node...'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Updating Selected Node..'});
const selNodeIndex = req.body.selNodeIndex;
common.selectedNode = common.findNode(selNodeIndex);
const responseVal = common.selectedNode && common.selectedNode.ln_node ? common.selectedNode.ln_node : '';
logger.log({level: 'DEBUG', fileName: 'RTLConf', msg: 'Selected Node Updated To: ' + JSON.stringify(responseVal)});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Selected Node Updated.'});
logger.log({level: 'DEBUG', fileName: 'RTLConf', msg: 'Selected Node Updated To', data: responseVal});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Selected Node Updated'});
res.status(200).json({status: 'Selected Node Updated To: ' + JSON.stringify(responseVal) + '!'});
};
exports.getRTLConfig = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Getting RTL Configuration...'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Getting RTL Configuration..'});
var confFile = common.rtl_conf_file_path + common.path_separator + 'RTL-Config.json';
logger.log({level: 'DEBUG', fileName: 'RTLConf', msg: 'Getting Node Config'});
fs.readFile(confFile, 'utf8', function(err, data) {
if (err) {
if (err.code === 'ENOENT') {
logger.log({level: 'ERROR', fileName: 'RTLConf', msg: 'Node config does not exist!'});
logger.log({level: 'ERROR', fileName: 'RTLConf', msg: 'Node config does not exist!', error: {error: 'Node config does not exist.'}});
res.status(200).json({ defaultNodeIndex: 0, selectedNodeIndex: 0, sso: {}, nodes: [] });
} else {
logger.log({level: 'ERROR', fileName: 'RTLConf', msg: 'Getting Node Config Failed!'});
logger.log({level: 'ERROR', fileName: 'RTLConf', msg: 'Getting Node Config Failed!', error: err});
res.status(500).json({
message: "Reading Node Config Failed!",
error: err
@ -63,14 +63,14 @@ exports.getRTLConfig = (req, res, next) => {
authentication: authentication})
});
}
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'RTL Configuration Received.'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'RTL Configuration Received'});
res.status(200).json({ defaultNodeIndex: nodeConfData.defaultNodeIndex, selectedNodeIndex: common.selectedNode.index, sso: sso, enable2FA: enable2FA, nodes: nodesArr });
}
});
};
exports.updateUISettings = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Updating UI Settings...'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Updating UI Settings..'});
var RTLConfFile = common.rtl_conf_file_path + common.path_separator + 'RTL-Config.json';
var config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8'));
config.nodes.find(node => {
@ -100,11 +100,11 @@ exports.updateUISettings = (req, res, next) => {
try {
fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8');
logger.log({level: 'DEBUG', fileName: 'RTLConf', msg: 'Updating Node Settings Succesful!'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'UI Settings Updated.'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'UI Settings Updated'});
res.status(201).json({message: 'Node Settings Updated Successfully'});
}
catch (err) {
logger.log({level: 'ERROR', fileName: 'Conf', msg: 'Updating Node Settings Failed!'});
logger.log({level: 'ERROR', fileName: 'RTLConf', msg: 'Updating Node Settings Failed!', error: {error: 'Updating node settings failed.'}});
res.status(500).json({
message: "Updating Node Settings Failed!",
error: 'Updating Node Settings Failed!'
@ -113,7 +113,7 @@ exports.updateUISettings = (req, res, next) => {
};
exports.update2FASettings = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Updating 2FA Settings...'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Updating 2FA Settings..'});
var RTLConfFile = common.rtl_conf_file_path + common.path_separator + 'RTL-Config.json';
var config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8'));
config.secret2fa = req.body.secret2fa;
@ -122,11 +122,11 @@ exports.update2FASettings = (req, res, next) => {
fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8');
common.rtl_secret2fa = config.secret2fa;
logger.log({level: 'DEBUG', fileName: 'RTLConf', msg: message});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: '2FA Updated.'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: '2FA Updated'});
res.status(201).json({message: message});
}
catch (err) {
logger.log({level: 'ERROR', fileName: 'Conf', msg: 'Updating 2FA Settings Failed!'});
logger.log({level: 'ERROR', fileName: 'RTLConf', msg: 'Updating 2FA Settings Failed!', error: {error: 'Updating 2FA settings failed.'}});
res.status(500).json({
message: "Updating 2FA Settings Failed!",
error: 'Updating 2FA Settings Failed!'
@ -135,18 +135,18 @@ exports.update2FASettings = (req, res, next) => {
};
exports.updateDefaultNode = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Updating Default Node...'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Updating Default Node..'});
RTLConfFile = common.rtl_conf_file_path + common.path_separator + 'RTL-Config.json';
var config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8'));
config.defaultNodeIndex = req.body.defaultNodeIndex;
try {
fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8');
logger.log({level: 'DEBUG', fileName: 'RTLConf', msg: 'Updating Default Node Succesful!'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Default Node Updated.'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Default Node Updated'});
res.status(201).json({message: 'Default Node Updated Successfully'});
}
catch (err) {
logger.log({level: 'ERROR', fileName: 'Conf', msg: 'Updating Default Node Failed!'});
logger.log({level: 'ERROR', fileName: 'RTLConf', msg: 'Updating Default Node Failed!', error: {error: 'Updating dafault node failed.'}});
res.status(500).json({
message: "Updating Default Node Failed!",
error: 'Updating Default Node Failed!'
@ -155,7 +155,7 @@ exports.updateDefaultNode = (req, res, next) => {
};
exports.getConfig = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Reading Configuration File...'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Reading Configuration File..'});
let confFile = '';
let fileFormat = 'INI';
switch (req.params.nodeType) {
@ -173,10 +173,10 @@ exports.getConfig = (req, res, next) => {
confFile = '';
break;
}
logger.log({level: 'DEBUG', fileName: 'RTLConf', msg: 'Node Type: ' + req.params.nodeType + ', File Path: ' + confFile});
logger.log({level: 'DEBUG', fileName: 'RTLConf', msg: '[Node Type, File Path]', data: [req.params.nodeType, confFile]});
fs.readFile(confFile, 'utf8', function(err, data) {
if (err) {
logger.log({level: 'ERROR', fileName: 'Conf', msg: 'Reading Conf Failed!'});
logger.log({level: 'ERROR', fileName: 'RTLConf', msg: 'Reading Conf Failed!', error: err});
res.status(500).json({
message: "Reading Config File Failed!",
error: err
@ -195,19 +195,19 @@ exports.getConfig = (req, res, next) => {
}
jsonConfig = maskPasswords(jsonConfig);
const responseJSON = (fileFormat === 'JSON') ? jsonConfig : ini.stringify(jsonConfig);
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Configuration Data Received.'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Configuration Data Received'});
res.status(200).json({format: fileFormat, data: responseJSON});
}
});
};
exports.getFile = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Getting File...'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Getting File..'});
let file = req.query.path ? req.query.path : (common.selectedNode.channel_backup_path + common.path_separator + 'channel-' + req.query.channel.replace(':', '-') + '.bak');
logger.log({level: 'DEBUG', fileName: 'Conf', msg: 'Channel Point: ' + req.query.channel + ', File Path: ' + file});
logger.log({level: 'DEBUG', fileName: 'RTLConf', msg: '[Channel Point, File Path]', data: [req.query.channel, file]});
fs.readFile(file, 'utf8', function(err, data) {
if (err) {
logger.log({level: 'ERROR', fileName: 'Conf', msg: 'Reading File Failed!' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'RTLConf', msg: 'Reading File Failed!', error: err});
if (err.code && err.code === 'ENOENT') {
err.code = 'Backup File Not Found!';
}
@ -216,15 +216,15 @@ exports.getFile = (req, res, next) => {
error: err
});
} else {
logger.log({level: 'DEBUG', fileName: 'Conf', msg: 'File Data: ' + data});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'File Data Received.'});
logger.log({level: 'DEBUG', fileName: 'RTLConf', msg: 'File Data', data: data});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'File Data Received'});
res.status(200).json(data);
}
});
};
exports.getCurrencyRates = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Getting Currency Rates...'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Getting Currency Rates..'});
options.url = 'https://blockchain.info/ticker';
request(options).then((body) => {
if(!body || body.error) {
@ -233,12 +233,12 @@ exports.getCurrencyRates = (req, res, next) => {
error: (!body) ? 'Error From External Server!' : body.error
});
} else {
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Currency Rates Received.'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Currency Rates Received'});
res.status(200).json(JSON.parse(body));
}
})
.catch(function (err) {
logger.log({level: 'ERROR', fileName: 'Conf', msg: 'Fetching Rates Failed! ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'RTLConf', msg: 'Fetching Rates Failed!', error: err});
return res.status(500).json({
message: "Fetching Rates Failed!",
error: err.error
@ -247,7 +247,7 @@ exports.getCurrencyRates = (req, res, next) => {
};
exports.updateSSO = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Updating SSO Settings...'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Updating SSO Settings..'});
RTLConfFile = common.rtl_conf_file_path + common.path_separator + 'RTL-Config.json';
var config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8'));
delete config.SSO;
@ -255,11 +255,11 @@ exports.updateSSO = (req, res, next) => {
try {
fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8');
logger.log({level: 'DEBUG', fileName: 'RTLConf', msg: 'Updating SSO Succesful!'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'SSO Setting Updated.'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'SSO Setting Updated'});
res.status(201).json({message: 'SSO Updated Successfully'});
}
catch (err) {
logger.log({level: 'ERROR', fileName: 'RTLConf', msg: 'Updating SSO Failed!'});
logger.log({level: 'ERROR', fileName: 'RTLConf', msg: 'Updating SSO Failed!', error: {error: 'Updating SSO failed.'}});
res.status(500).json({
message: "Updating SSO Failed!",
error: 'Updating SSO Failed!'
@ -268,7 +268,7 @@ exports.updateSSO = (req, res, next) => {
};
exports.updateServiceSettings = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Updating Service Settings...'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Updating Service Settings..'});
var RTLConfFile = common.rtl_conf_file_path + common.path_separator + 'RTL-Config.json';
var config = JSON.parse(fs.readFileSync(RTLConfFile, 'utf-8'));
const selectedNode = common.findNode(common.selectedNode.index);
@ -312,11 +312,11 @@ exports.updateServiceSettings = (req, res, next) => {
try {
fs.writeFileSync(RTLConfFile, JSON.stringify(config, null, 2), 'utf-8');
logger.log({level: 'DEBUG', fileName: 'RTLConf', msg: 'Updating Service Settings Succesful!'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Service Settings Updated.'});
logger.log({level: 'INFO', fileName: 'RTLConf', msg: 'Service Settings Updated'});
res.status(201).json({message: 'Service Settings Updated Successfully'});
}
catch (err) {
logger.log({level: 'ERROR', fileName: 'RTLConf', msg: 'Updating Service Settings Failed!'});
logger.log({level: 'ERROR', fileName: 'RTLConf', msg: 'Updating Service Settings Failed!', error: {error: 'Updating service settings failed.'}});
res.status(500).json({
message: "Updating Service Settings Failed!",
error: 'Updating Service Settings Failed!'

@ -47,10 +47,10 @@ exports.verifyToken = (twoFAToken) => {
};
exports.authenticateUser = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Authenticate', msg: 'Authenticating User...'});
logger.log({level: 'INFO', fileName: 'Authenticate', msg: 'Authenticating User..'});
if(+common.rtl_sso) {
if(req.body.authenticateWith === 'JWT' && jwt.verify(req.body.authenticationValue, common.secret_key)) {
logger.log({level: 'INFO', fileName: 'Authenticate', msg: 'User Authenticated.'});
logger.log({level: 'INFO', fileName: 'Authenticate', msg: 'User Authenticated'});
res.status(200).json({ token: token });
} else if (req.body.authenticateWith === 'PASSWORD' && common.cookie.trim().length >= 32 && crypto.timingSafeEqual(Buffer.from(crypto.createHash('sha256').update(common.cookie).digest('hex'), 'utf-8'), Buffer.from(req.body.authenticationValue, 'utf-8'))) {
connect.refreshCookie(common.rtl_cookie_path);
@ -61,7 +61,7 @@ exports.authenticateUser = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Authenticate', msg: 'User Authenticated.'});
res.status(200).json({ token: token });
} else {
logger.log({level: 'ERROR', fileName: 'Authenticate', msg: 'SSO Authentication Failed! Access key too short or does not match.'});
logger.log({level: 'ERROR', fileName: 'Authenticate', msg: 'SSO Authentication Failed! Access key too short or does not match.', error: {error: 'Access key too short or does not match.'}});
res.status(406).json({
message: "SSO Authentication Failed!",
error: "SSO failed. Access key too short or does not match."
@ -75,7 +75,7 @@ exports.authenticateUser = (req, res, next) => {
if (common.rtl_pass === password && failed.count < ALLOWED_LOGIN_ATTEMPTS) {
if (req.body.twoFAToken && req.body.twoFAToken !== '') {
if (!this.verifyToken(req.body.twoFAToken)) {
logger.log({level: 'ERROR', fileName: 'Authenticate', msg: 'Invalid Token! Failed IP ' + reqIP});
logger.log({level: 'ERROR', fileName: 'Authenticate', msg: 'Invalid Token! Failed IP ' + reqIP, error: {error: 'Invalid token.'}});
failed.count = failed.count + 1;
failed.lastTried = currentTime;
return res.status(401).json(handleError(failed, currentTime, 'Invalid 2FA Token!'));
@ -87,10 +87,10 @@ exports.authenticateUser = (req, res, next) => {
{ user: rpcUser, configPath: common.nodes[0].config_path, macaroonPath: common.nodes[0].macaroon_path },
common.secret_key
);
logger.log({level: 'INFO', fileName: 'Authenticate', msg: 'User Authenticated.'});
logger.log({level: 'INFO', fileName: 'Authenticate', msg: 'User Authenticated'});
res.status(200).json({ token: token });
} else {
logger.log({level: 'ERROR', fileName: 'Authenticate', msg: 'Invalid Password! Failed IP ' + reqIP});
logger.log({level: 'ERROR', fileName: 'Authenticate', msg: 'Invalid Password! Failed IP ' + reqIP, error: {error: 'Invalid password.'}});
failed.count = common.rtl_pass !== password ? (failed.count + 1) : failed.count;
failed.lastTried = common.rtl_pass !== password ? currentTime : failed.lastTried;
return res.status(401).json(handleError(failed, currentTime, 'Invalid Password!'));
@ -99,9 +99,9 @@ exports.authenticateUser = (req, res, next) => {
};
exports.resetPassword = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Authenticate', msg: 'Resetting Password...'});
logger.log({level: 'INFO', fileName: 'Authenticate', msg: 'Resetting Password..'});
if(+common.rtl_sso) {
logger.log({level: 'ERROR', fileName: 'Authenticate', msg: 'Password Reset Failed!'});
logger.log({level: 'ERROR', fileName: 'Authenticate', msg: 'Password Reset Failed!', error: {error: 'Password reset failed.'}});
res.status(401).json({
message: "Password Reset Failed!",
error: "Password cannot be reset for SSO authentication!"
@ -115,10 +115,10 @@ exports.resetPassword = (req, res, next) => {
{ user: rpcUser, configPath: common.nodes[0].config_path, macaroonPath: common.nodes[0].macaroon_path },
common.secret_key
);
logger.log({level: 'INFO', fileName: 'Authenticate', msg: 'Password Reset Successful.'});
logger.log({level: 'INFO', fileName: 'Authenticate', msg: 'Password Reset Successful'});
res.status(200).json({ token: token });
} else {
logger.log({level: 'ERROR', fileName: 'Authenticate', msg: 'Password Reset Failed!'});
logger.log({level: 'ERROR', fileName: 'Authenticate', msg: 'Password Reset Failed!', error: {error: 'Password reset failed.'}});
res.status(401).json({
message: "Password Reset Failed!",
error: "Old password is not correct!"

@ -4,13 +4,13 @@ var logger = require('../shared/logger');
var options = {};
exports.getInfo = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Getting Boltz Information...'});
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Getting Boltz Information..'});
options = common.getBoltzServerOptions();
if(options.url === '') { return res.status(500).json({message: "Boltz Get Info Failed!",error: { message: 'Boltz Server URL is missing in the configuration.'}}); }
options.url = options.url + '/v1/info';
request(options).then(function (body) {
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Boltz Information Received.'});
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Boltz Get Info: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Boltz Information Received'});
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Boltz Get Info', data: body});
res.status(200).json(body);
})
.catch(errRes => {
@ -21,7 +21,7 @@ exports.getInfo = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Boltz Get Info Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Boltz Get Info Error', error: err});
return res.status(500).json({
message: "Boltz Get Info Failed!",
error: (err.error && err.error.error) ? err.error.error : (err.error) ? err.error : err
@ -30,13 +30,13 @@ exports.getInfo = (req, res, next) => {
};
exports.getServiceInfo = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Getting Service Information...'});
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Getting Service Information..'});
options = common.getBoltzServerOptions();
if(options.url === '') { return res.status(500).json({message: "Boltz Get Service Info Failed!",error: { message: 'Boltz Server URL is missing in the configuration.'}}); }
options.url = options.url + '/v1/serviceinfo';
request(options).then(function (body) {
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Service Information Received.'});
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Boltz Get Service Info: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Service Information Received'});
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Boltz Get Service Info', data: body});
res.status(200).json(body);
})
.catch(errRes => {
@ -47,7 +47,7 @@ exports.getServiceInfo = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Boltz Get Service Info Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Boltz Get Service Info Error', error: err});
return res.status(500).json({
message: "Boltz Get Service Info Failed!",
error: (err.error && err.error.error) ? err.error.error : (err.error) ? err.error : err
@ -56,15 +56,15 @@ exports.getServiceInfo = (req, res, next) => {
};
exports.listSwaps = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Getting List Swaps...'});
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Getting List Swaps..'});
options = common.getBoltzServerOptions();
if(options.url === '') { return res.status(500).json({message: "Boltz List Swaps Failed!",error: { message: 'Boltz Server URL is missing in the configuration.'}}); }
options.url = options.url + '/v1/listswaps';
request(options).then(function (body) {
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Boltz List Swaps Info: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Boltz List Swaps Info', data: body});
if (body && body.swaps && body.swaps.length && body.swaps.length > 0) { body.swaps = body.swaps.reverse(); }
if (body && body.reverseSwaps && body.reverseSwaps.length && body.reverseSwaps.length > 0) { body.reverseSwaps = body.reverseSwaps.reverse(); }
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'List Swaps Received.'});
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'List Swaps Received'});
res.status(200).json(body);
})
.catch(errRes => {
@ -75,7 +75,7 @@ exports.listSwaps = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Boltz List Swaps Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Boltz List Swaps Error', error: err});
return res.status(500).json({
message: "Boltz List Swaps Failed!",
error: (err.error && err.error.error) ? err.error.error : (err.error) ? err.error : err
@ -84,13 +84,13 @@ exports.listSwaps = (req, res, next) => {
};
exports.getSwapInfo = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Getting Swap...'});
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Getting Swap..'});
options = common.getBoltzServerOptions();
if(options.url === '') { return res.status(500).json({message: "Boltz Swap Info Failed!",error: { message: 'Boltz Server URL is missing in the configuration.'}}); }
options.url = options.url + '/v1/swap/' + req.params.swapId;
request(options).then(function (body) {
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Boltz Swap Info: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Swap Received.'});
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Boltz Swap Info', data: body});
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Swap Received'});
res.status(200).json(body);
})
.catch(errRes => {
@ -101,7 +101,7 @@ exports.getSwapInfo = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Boltz Swap Info Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Boltz Swap Info Error', error: err});
return res.status(500).json({
message: "Boltz Swap Info Failed!",
error: (err.error && err.error.error) ? err.error.error : (err.error) ? err.error : err
@ -110,23 +110,23 @@ exports.getSwapInfo = (req, res, next) => {
};
exports.createSwap = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Creating Swap...'});
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Creating Swap..'});
options = common.getBoltzServerOptions();
if(options.url === '') { return res.status(500).json({message: "Create Swap Failed!",error: { message: 'Boltz Server URL is missing in the configuration.'}}); }
options.url = options.url + '/v1/createswap';
options.body = { amount: req.body.amount };
if (req.body.address !== '') { options.body.address = req.body.address; }
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Create Swap Body: ' + JSON.stringify(options.body)});
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Create Swap Body', data: options.body});
request.post(options).then(createSwapRes => {
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Create Swap Response: ' + JSON.stringify(createSwapRes)});
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Create Swap Response', data: createSwapRes});
if(!createSwapRes || createSwapRes.error) {
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Create Swap Error: ' + JSON.stringify(createSwapRes.error)});
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Create Swap Error', error: createSwapRes.error});
res.status(500).json({
message: 'Create Swap Failed!',
error: (!createSwapRes) ? 'Error From Server!' : createSwapRes.error.message
});
} else {
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Swap Created.'});
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Swap Created'});
res.status(201).json(createSwapRes);
}
})
@ -138,7 +138,7 @@ exports.createSwap = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Create Swap Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Create Swap Error', error: err});
return res.status(500).json({
message: "Create Swap Failed!",
error: (err.error && err.error.error) ? err.error.error : (err.error) ? err.error : err
@ -147,23 +147,23 @@ exports.createSwap = (req, res, next) => {
};
exports.createReverseSwap = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Creating Reverse Swap...'});
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Creating Reverse Swap..'});
options = common.getBoltzServerOptions();
if(options.url === '') { return res.status(500).json({message: "Create Reverse Swap Failed!",error: { message: 'Boltz Server URL is missing in the configuration.'}}); }
options.url = options.url + '/v1/createreverseswap';
options.body = { amount: req.body.amount };
if (req.body.address !== '') { options.body.address = req.body.address; }
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Create Reverse Swap Body: ' + JSON.stringify(options.body)});
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Create Reverse Swap Body', data: options.body});
request.post(options).then(createReverseSwapRes => {
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Create Reverse Swap Response: ' + JSON.stringify(createReverseSwapRes)});
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Create Reverse Swap Response', data: createReverseSwapRes});
if(!createReverseSwapRes || createReverseSwapRes.error) {
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Create Reverse Swap Error: ' + JSON.stringify(createReverseSwapRes.error)});
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Create Reverse Swap Error', error: createReverseSwapRes.error});
res.status(500).json({
message: 'Create Reverse Swap Failed!',
error: (!createReverseSwapRes) ? 'Error From Server!' : createReverseSwapRes.error.message
});
} else {
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Reverse Swap Created.'});
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Reverse Swap Created'});
res.status(201).json(createReverseSwapRes);
}
})
@ -175,7 +175,7 @@ exports.createReverseSwap = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Create Reverse Swap Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Create Reverse Swap Error', error: err});
return res.status(500).json({
message: "Create Reverse Swap Failed!",
error: (err.error && err.error.error) ? err.error.error : (err.error) ? err.error : err
@ -184,23 +184,23 @@ exports.createReverseSwap = (req, res, next) => {
};
exports.createChannel = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Creating Boltz Channel...'});
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Creating Boltz Channel..'});
options = common.getBoltzServerOptions();
if(options.url === '') { return res.status(500).json({message: "Create Channel Failed!",error: { message: 'Boltz Server URL is missing in the configuration.'}}); }
options.url = options.url + '/v1/createchannel';
options.body = { amount: req.body.amount };
if (req.body.address !== '') { options.body.address = req.body.address; }
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Create Channel Body: ' + JSON.stringify(options.body)});
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Create Channel Body', data: options.body});
request.post(options).then(createChannelRes => {
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Create Channel Response: ' + JSON.stringify(createChannelRes)});
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Create Channel Response', data: createChannelRes});
if(!createChannelRes || createChannelRes.error) {
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Create Channel Error: ' + JSON.stringify(createChannelRes.error)});
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Create Channel Error', error: createChannelRes.error});
res.status(500).json({
message: 'Create Channel Failed!',
error: (!createChannelRes) ? 'Error From Server!' : createChannelRes.error.message
});
} else {
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Boltz Channel Created.'});
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Boltz Channel Created'});
res.status(201).json(createChannelRes);
}
})
@ -212,7 +212,7 @@ exports.createChannel = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Create Channel Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Create Channel Error', error: err});
return res.status(500).json({
message: "Create Channel Failed!",
error: (err.error && err.error.error) ? err.error.error : (err.error) ? err.error : err
@ -221,20 +221,20 @@ exports.createChannel = (req, res, next) => {
};
exports.deposit = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Boltz Deposit Start...'});
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Boltz Deposit Start..'});
options = common.getBoltzServerOptions();
if(options.url === '') { return res.status(500).json({message: "Deposit Failed!",error: { message: 'Boltz Server URL is missing in the configuration.'}}); }
options.url = options.url + '/v1/deposit';
request.post(options).then(depositRes => {
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Deposit Response: ' + JSON.stringify(depositRes)});
logger.log({level: 'DEBUG', fileName: 'Boltz', msg: 'Deposit Response', data: depositRes});
if(!depositRes || depositRes.error) {
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Deposit Error: ' + JSON.stringify(depositRes.error)});
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Deposit Error', error: depositRes.error});
res.status(500).json({
message: 'Deposit Failed!',
error: (!depositRes) ? 'Error From Server!' : depositRes.error.message
});
} else {
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Boltz Deposit Finished.'});
logger.log({level: 'INFO', fileName: 'Boltz', msg: 'Boltz Deposit Finished'});
res.status(201).json(depositRes);
}
})
@ -246,7 +246,7 @@ exports.deposit = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Deposit Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Boltz', msg: 'Deposit Error', error: err});
return res.status(500).json({
message: "Deposit Failed!",
error: (err.error && err.error.error) ? err.error.error : (err.error) ? err.error : err

@ -5,6 +5,7 @@ exports.log = (msgJSON, selNode = common.selectedNode) => {
let msgStr = '\r\n[' + new Date().toISOString() + '] ' + msgJSON.level + ': ' + msgJSON.fileName + ' => ' + msgJSON.msg;
switch (msgJSON.level) {
case 'ERROR':
msgStr = msgStr + ': ' + (msgJSON.error && typeof msgJSON.error === 'object' ? JSON.stringify(msgJSON.error) : (msgJSON.error && typeof msgJSON.error === 'string') ? msgJSON.error : '');
console.error(msgStr);
if(selNode && selNode.enable_logging) {
fs.appendFile(selNode.log_file, msgStr, function(err) {
@ -18,11 +19,31 @@ exports.log = (msgJSON, selNode = common.selectedNode) => {
break;
case 'INFO':
console.log(msgStr);
if(selNode && selNode.enable_logging && msgJSON.data) {
msgStr = msgStr + ': ' + (msgJSON.data && typeof msgJSON.data === 'object' ? JSON.stringify(msgJSON.data) : (msgJSON.data && typeof msgJSON.data === 'string') ? msgJSON.data : '');
if (msgJSON.fileName !== 'Config Setup Variable') { console.log(msgStr); }
fs.appendFile(selNode.log_file, msgStr, function(err) {
if (err) {
return ({ error: 'Updating Log Failed!' });
} else {
return ({ message: 'Log Updated Successfully' });
}
});
} else {
console.log(msgStr + '.');
}
break;
case 'DEBUG':
if(selNode && selNode.enable_logging) {
if (msgJSON.data && msgJSON.data.length && msgJSON.data.length > 0) {
msgStr = msgJSON.data.reduce((accumulator, dataEle) => {
return accumulator + (typeof dataEle === 'object' ? JSON.stringify(dataEle) : (typeof dataEle === 'string') ? dataEle : '') + ', ';
}, msgStr + ': [');
msgStr = msgStr.slice(0, -2) + ']';
} else {
msgStr = msgStr + ': ' + (msgJSON.data && typeof msgJSON.data === 'object' ? JSON.stringify(msgJSON.data) : (msgJSON.data && typeof msgJSON.data === 'string') ? msgJSON.data : '');
}
if (msgJSON.fileName !== 'Config Setup Variable') { console.log(msgStr); }
fs.appendFile(selNode.log_file, msgStr, function(err) {
if (err) {

@ -4,7 +4,7 @@ var logger = require('./logger');
var options = {};
exports.loopOut = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Looping Out...'});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Looping Out..'});
options = common.getSwapServerOptions();
if(options.url === '') { return res.status(500).json({message: "Loop Out Failed!",error: { message: 'Loop Server URL is missing in the configuration.'}}); }
options.url = options.url + '/v1/loop/out';
@ -21,17 +21,17 @@ exports.loopOut = (req, res, next) => {
};
if (req.body.chanId !== '') { options.body['loop_out_channel'] = req.body.chanId; }
if (req.body.destAddress !== '') { options.body['dest'] = req.body.destAddress; }
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Body: ' + JSON.stringify(options.body)});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Body', data: options.body});
request.post(options).then(loopOutRes => {
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out: ' + JSON.stringify(loopOutRes)});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out', data: loopOutRes});
if(!loopOutRes || loopOutRes.error) {
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop Out Error: ' + JSON.stringify(loopOutRes.error)});
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop Out Error', error: loopOutRes.error});
res.status(500).json({
message: 'Loop Out Failed!',
error: (!loopOutRes) ? 'Error From Server!' : loopOutRes.error.message
});
} else {
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop Out Finished.'});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop Out Finished'});
res.status(201).json(loopOutRes);
}
})
@ -43,7 +43,7 @@ exports.loopOut = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop Out Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop Out Error', error: err});
return res.status(500).json({
message: "Loop Out Failed!",
error: (err.error && err.error.error) ? err.error.error : (err.error) ? err.error : err
@ -52,13 +52,13 @@ exports.loopOut = (req, res, next) => {
};
exports.loopOutTerms = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting Loop Out Terms...'});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting Loop Out Terms..'});
options = common.getSwapServerOptions();
if(options.url === '') { return res.status(500).json({message: "Loop Out Terms Failed!",error: { message: 'Loop Server URL is missing in the configuration.'}}); }
options.url = options.url + '/v1/loop/out/terms';
request(options).then(function (body) {
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Terms: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop Out Terms Received.'});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Terms', data: body});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop Out Terms Received'});
res.status(200).json(body);
})
.catch(errRes => {
@ -69,7 +69,7 @@ exports.loopOutTerms = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop Out Terms Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop Out Terms Error', error: err});
return res.status(500).json({
message: "Loop Out Terms Failed!",
error: (err.error && err.error.error) ? err.error.error : (err.error) ? err.error : err
@ -78,16 +78,16 @@ exports.loopOutTerms = (req, res, next) => {
};
exports.loopOutQuote = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting Loop Out Quotes...'});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting Loop Out Quotes..'});
options = common.getSwapServerOptions();
if(options.url === '') { return res.status(500).json({message: "Loop Out Quote Failed!",error: { message: 'Loop Server URL is missing in the configuration.'}}); }
options.url = options.url + '/v1/loop/out/quote/' + req.params.amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline;
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Quote URL: ' + options.url});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Quote URL', data: options.url});
request(options).then(function (quoteRes) {
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Quote: ' + JSON.stringify(quoteRes)});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Quote', data: quoteRes});
quoteRes.amount = +req.params.amount;
quoteRes.swap_payment_dest = quoteRes.swap_payment_dest ? Buffer.from(quoteRes.swap_payment_dest, 'base64').toString('hex') : '';
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop Out Quotes Received.'});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop Out Quotes Received'});
res.status(200).json(quoteRes);
})
.catch(errRes => {
@ -98,7 +98,7 @@ exports.loopOutQuote = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop Out Quote Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop Out Quote Error', error: err});
return res.status(500).json({
message: "Loop Out Quote Failed!",
error: (err.error && err.error.error) ? err.error.error : (err.error) ? err.error : err
@ -107,25 +107,25 @@ exports.loopOutQuote = (req, res, next) => {
};
exports.loopOutTermsAndQuotes = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting Loop Out Terms & Quotes...'});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting Loop Out Terms & Quotes..'});
options = common.getSwapServerOptions();
if(options.url === '') { return res.status(500).json({message: "Loop Out Terms And Quotes Failed!",error: { message: 'Loop Server URL is missing in the configuration.'}}); }
options.url = options.url + '/v1/loop/out/terms';
request(options).then(function(terms) {
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Terms: ' + JSON.stringify(terms)});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Terms', data: terms});
const options1 = common.getSwapServerOptions(); const options2 = common.getSwapServerOptions();
options1.url = options1.url + '/v1/loop/out/quote/' + terms.min_swap_amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline;
options2.url = options2.url + '/v1/loop/out/quote/' + terms.max_swap_amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline;
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Min Quote Options: ' + JSON.stringify(options1)});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Max Quote Options: ' + JSON.stringify(options2)});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Min Quote Options', data: options1});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Max Quote Options', data: options2});
return Promise.all([request(options1), request(options2)]).then(function(values) {
values[0].amount = +terms.min_swap_amount;
values[1].amount = +terms.max_swap_amount;
values[0].swap_payment_dest = values[0].swap_payment_dest ? Buffer.from(values[0].swap_payment_dest, 'base64').toString('hex') : '';
values[1].swap_payment_dest = values[1].swap_payment_dest ? Buffer.from(values[1].swap_payment_dest, 'base64').toString('hex') : '';
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Quotes 1: ' + JSON.stringify(values[0])});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Quotes 2: ' + JSON.stringify(values[1])});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop Out Terms & Quotes Received.'});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Quotes 1', data: values[0]});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Out Quotes 2', data: values[1]});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop Out Terms & Quotes Received'});
res.status(200).json(values);
})
.catch(errRes => {
@ -136,7 +136,7 @@ exports.loopOutTermsAndQuotes = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop Out Quotes Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop Out Quotes Error', error: err});
return res.status(500).json({
message: "Loop Out Quotes Failed!",
error: (err.error && err.error.error) ? err.error.error : (err.error) ? err.error : err
@ -151,7 +151,7 @@ exports.loopOutTermsAndQuotes = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop Out Terms Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop Out Terms Error', error: err});
return res.status(500).json({
message: "Loop Out Terms Failed!",
error: (err.error && err.error.error) ? err.error.error : (err.error) ? err.error : err
@ -160,7 +160,7 @@ exports.loopOutTermsAndQuotes = (req, res, next) => {
};
exports.loopIn = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Looping In...'});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Looping In..'});
options = common.getSwapServerOptions();
if(options.url === '') { return res.status(500).json({message: "Loop In Failed!",error: { message: 'Loop Server URL is missing in the configuration.'}}); }
options.url = options.url + '/v1/loop/in';
@ -170,17 +170,17 @@ exports.loopIn = (req, res, next) => {
max_miner_fee: req.body.minerFee,
initiator: 'RTL'
};
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Body: ' + JSON.stringify(options.body)});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Body', data: options.body});
request.post(options).then(function (body) {
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In', data: body});
if(!body || body.error) {
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop In Error: ' + JSON.stringify(body.error)});
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop In Error', error: body.error});
res.status(500).json({
message: 'Loop In Failed!',
error: (body.error && body.error.message) ? body.error.message : 'Error From Server!'
});
} else {
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop In Finished.'});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop In Finished'});
res.status(201).json(body);
}
})
@ -192,7 +192,7 @@ exports.loopIn = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop In Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop In Error', error: err});
return res.status(500).json({
message: "Loop In Failed!",
error: (err.error && err.error.error) ? err.error.error : (err.error) ? err.error : err
@ -201,13 +201,13 @@ exports.loopIn = (req, res, next) => {
};
exports.loopInTerms = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting Loop In Terms...'});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting Loop In Terms..'});
options = common.getSwapServerOptions();
if(options.url === '') { return res.status(500).json({message: "Loop In Terms Failed!",error: { message: 'Loop Server URL is missing in the configuration.'}}); }
options.url = options.url + '/v1/loop/in/terms';
request(options).then(function (body) {
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Terms: ' + JSON.stringify(body)});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop In Terms Received.'});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Terms', data: body});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop In Terms Received'});
res.status(200).json(body);
})
.catch(errRes => {
@ -218,7 +218,7 @@ exports.loopInTerms = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop In Terms Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop In Terms Error', error: err});
return res.status(500).json({
message: "Loop In Terms Failed!",
error: (err.error && err.error.error) ? err.error.error : (err.error) ? err.error : err
@ -227,16 +227,16 @@ exports.loopInTerms = (req, res, next) => {
};
exports.loopInQuote = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting Loop In Quotes...'});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting Loop In Quotes..'});
options = common.getSwapServerOptions();
if(options.url === '') { return res.status(500).json({message: "Loop In Quote Failed!",error: { message: 'Loop Server URL is missing in the configuration.'}}); }
options.url = options.url + '/v1/loop/in/quote/' + req.params.amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline;
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Quote Options: ' + options.url});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Quote Options', data: options.url});
request(options).then(function (body) {
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Quote: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Quote', data: body});
body.amount = +req.params.amount;
body.swap_payment_dest = body.swap_payment_dest ? Buffer.from(body.swap_payment_dest, 'base64').toString('hex') : '';
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop In Qoutes Received.'});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop In Qoutes Received'});
res.status(200).json(body);
})
.catch(errRes => {
@ -247,7 +247,7 @@ exports.loopInQuote = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop In Quote Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop In Quote Error', error: err});
return res.status(500).json({
message: "Loop In Quote Failed!",
error: (err.error && err.error.error) ? err.error.error : (err.error) ? err.error : err
@ -256,25 +256,25 @@ exports.loopInQuote = (req, res, next) => {
};
exports.loopInTermsAndQuotes = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting Loop In Terms & Quotes...'});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting Loop In Terms & Quotes..'});
options = common.getSwapServerOptions();
if(options.url === '') { return res.status(500).json({message: "Loop In Terms And Quotes Failed!",error: { message: 'Loop Server URL is missing in the configuration.'}}); }
options.url = options.url + '/v1/loop/in/terms';
request(options).then(function(terms) {
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Terms: ' + JSON.stringify(terms)});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Terms', data: terms});
const options1 = common.getSwapServerOptions(); const options2 = common.getSwapServerOptions();
options1.url = options1.url + '/v1/loop/in/quote/' + terms.min_swap_amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline;
options2.url = options2.url + '/v1/loop/in/quote/' + terms.max_swap_amount + '?conf_target=' + (req.query.targetConf ? req.query.targetConf : '2') + '&swap_publication_deadline=' + req.query.swapPublicationDeadline;
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Min Quote Options: ' + JSON.stringify(options1)});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Max Quote Options: ' + JSON.stringify(options2)});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Min Quote Options', data: options1});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Max Quote Options', data: options2});
return Promise.all([request(options1), request(options2)]).then(function(values) {
values[0].amount = +terms.min_swap_amount;
values[1].amount = +terms.max_swap_amount;
values[0].swap_payment_dest = values[0].swap_payment_dest ? Buffer.from(values[0].swap_payment_dest, 'base64').toString('hex') : '';
values[1].swap_payment_dest = values[1].swap_payment_dest ? Buffer.from(values[1].swap_payment_dest, 'base64').toString('hex') : '';
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Quotes 1: ' + JSON.stringify(values[0])});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Quotes 2: ' + JSON.stringify(values[1])});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop In Terms & Qoutes Received.'});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Quotes 1', data: values[0]});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop In Quotes 2', data: values[1]});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Loop In Terms & Qoutes Received'});
res.status(200).json(values);
})
.catch(errRes => {
@ -285,7 +285,7 @@ exports.loopInTermsAndQuotes = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop In Quotes Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop In Quotes Error', error: err});
return res.status(500).json({
message: "Loop In Quotes Failed!",
error: (err.error && err.error.error) ? err.error.error : (err.error) ? err.error : err
@ -300,7 +300,7 @@ exports.loopInTermsAndQuotes = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop In Terms Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Loop In Terms Error', error: err});
return res.status(500).json({
message: "Loop In Terms Failed!",
error: (err.error && err.error.error) ? err.error.error : (err.error) ? err.error : err
@ -309,17 +309,17 @@ exports.loopInTermsAndQuotes = (req, res, next) => {
};
exports.swaps = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting List Swaps...'});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting List Swaps..'});
options = common.getSwapServerOptions();
if(options.url === '') { return res.status(500).json({message: "Loop Out Failed!",error: { message: 'Loop Server URL is missing in the configuration.'}}); }
options.url = options.url + '/v1/loop/swaps';
request(options).then(function (body) {
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Swaps: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Swaps', data: body});
if (body.swaps && body.swaps.length > 0) {
body.swaps = common.sortDescByKey(body.swaps, 'initiation_time');
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Swaps after Sort: ' + JSON.stringify(body)});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Swaps after Sort', data: body});
}
logger.log({level: 'INFO', fileName: 'Loop', msg: 'List Swaps Received.'});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'List Swaps Received'});
res.status(200).json(body.swaps);
})
.catch(errRes => {
@ -330,7 +330,7 @@ exports.swaps = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'List Swaps Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'List Swaps Error', error: err});
return res.status(500).json({
message: "Loop Swaps Failed!",
error: (err.error && err.error.error) ? err.error.error : (err.error) ? err.error : err
@ -339,13 +339,13 @@ exports.swaps = (req, res, next) => {
};
exports.swap = (req, res, next) => {
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting Swap Information...'});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Getting Swap Information..'});
options = common.getSwapServerOptions();
if(options.url === '') { return res.status(500).json({message: "Loop Out Failed!",error: { message: 'Loop Server URL is missing in the configuration.'}}); }
options.url = options.url + '/v1/loop/swap/' + req.params.id;
request(options).then(function (body) {
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Swap: ' + body});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Swap Information Received.'});
logger.log({level: 'DEBUG', fileName: 'Loop', msg: 'Loop Swap', data: body});
logger.log({level: 'INFO', fileName: 'Loop', msg: 'Swap Information Received'});
res.status(200).json(body);
})
.catch(errRes => {
@ -356,7 +356,7 @@ exports.swap = (req, res, next) => {
if (err.response && err.response.request && err.response.request.headers && err.response.request.headers['Grpc-Metadata-macaroon']) {
delete err.response.request.headers['Grpc-Metadata-macaroon'];
}
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Swap Info Error: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Loop', msg: 'Swap Info Error', error: err});
return res.status(500).json({
message: "Loop Swap Failed!",
error: (err.error && err.error.error) ? err.error.error : (err.error) ? err.error : err

@ -363,20 +363,20 @@ connect.getAllNodeAllChannelBackup = (node) => {
fs.writeFile(channel_backup_file, JSON.stringify(body), function(err) {
if (err) {
if (node.ln_node) {
logger.log({level: 'ERROR', fileName: 'Connect', msg: 'Channel Backup Failed for Node ' + node.ln_node + ' with error response: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Connect', msg: 'Channel Backup Failed for Node ' + node.ln_node, error: err});
} else {
logger.log({level: 'ERROR', fileName: 'Connect', msg: 'Channel Backup Failed: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Connect', msg: 'Channel Backup Error', error: err});
}
} else {
if (node.ln_node) {
logger.log({level: 'DEBUG', fileName: 'Connect', msg: 'Channel Backup Successful for Node: ' + node.ln_node});
logger.log({level: 'DEBUG', fileName: 'Connect', msg: 'Channel Backup Successful for Node', data: node.ln_node});
} else {
logger.log({level: 'DEBUG', fileName: 'Connect', msg: 'Channel Backup Successful'});
}
}
});
}, (err) => {
logger.log({level: 'ERROR', fileName: 'Connect', msg: 'Channel Backup Response Failed: ' + JSON.stringify(err)});
logger.log({level: 'ERROR', fileName: 'Connect', msg: 'Channel Backup Response Error', error: err});
})
};

@ -78,10 +78,12 @@ export class CLForwardingHistoryComponent implements OnInit, OnChanges, AfterVie
}
ngOnChanges(changes: SimpleChanges) {
if (changes.eventsData && !changes.eventsData.firstChange) {
if (changes.eventsData) {
this.eventsData = changes.eventsData.currentValue;
this.successfulEvents = this.eventsData;
this.loadForwardingEventsTable(this.successfulEvents);
if (!changes.eventsData.firstChange) {
this.loadForwardingEventsTable(this.successfulEvents);
}
}
if (changes.filterValue && !changes.filterValue.firstChange) {
this.applyFilter();

@ -82,9 +82,11 @@ export class ECLForwardingHistoryComponent implements OnInit, OnChanges, AfterVi
}
ngOnChanges(changes: SimpleChanges) {
if (changes.eventsData && !changes.eventsData.firstChange) {
if (changes.eventsData) {
this.eventsData = changes.eventsData.currentValue;
this.loadForwardingEventsTable(this.eventsData);
if (!changes.eventsData.firstChange) {
this.loadForwardingEventsTable(this.eventsData);
}
}
if (changes.filterValue && !changes.filterValue.firstChange) {
this.applyFilter();

@ -78,10 +78,12 @@ export class ForwardingHistoryComponent implements OnInit, AfterViewInit, OnChan
}
ngOnChanges(changes: SimpleChanges) {
if (changes.eventsData && !changes.eventsData.firstChange) {
if (changes.eventsData) {
this.eventsData = changes.eventsData.currentValue;
this.forwardingHistoryData = this.eventsData;
this.loadForwardingEventsTable(this.forwardingHistoryData);
if (!changes.eventsData.firstChange) {
this.loadForwardingEventsTable(this.forwardingHistoryData);
}
}
if (changes.filterValue && !changes.filterValue.firstChange) {
this.applyFilter();

Loading…
Cancel
Save