Peer testing fixes

This commit is contained in:
ShahanaFarooqui 2023-10-25 20:47:08 -07:00
parent c3e6fb5b88
commit 91cf05cee6
52 changed files with 127 additions and 115 deletions

View file

@ -58,8 +58,8 @@ export const openChannel = (req, res, next) => {
return res.status(options.statusCode).json({ message: options.message, error: options.error });
}
options.url = req.session.selectedNode.ln_server_url + '/v1/fundchannel';
options.form = req.body;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Options', data: options.form });
options.body = req.body;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Options', data: options.body });
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel Opened', data: body });
res.status(201).json(body);
@ -75,8 +75,8 @@ export const setChannelFee = (req, res, next) => {
return res.status(options.statusCode).json({ message: options.message, error: options.error });
}
options.url = req.session.selectedNode.ln_server_url + '/v1/setchannel';
options.form = req.body;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy Options', data: options.form });
options.body = req.body;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy Options', data: options.body });
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Updated Channel Policy', data: body });
res.status(201).json(body);
@ -93,7 +93,7 @@ export const closeChannel = (req, res, next) => {
return res.status(options.statusCode).json({ message: options.message, error: options.error });
}
options.url = req.session.selectedNode.ln_server_url + '/v1/close';
options.form = { channelId: req.params.channelId, unilaterlaltimeout: req.query.force ? 1 : null };
options.body = { channelId: req.params.channelId, unilaterlaltimeout: req.query.force ? 1 : null };
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Closing Channel', data: options.url });
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel Closed', data: body });
@ -148,7 +148,7 @@ export const listForwards = (req, res, next) => {
return res.status(options.statusCode).json({ message: options.message, error: options.error });
}
options.url = req.session.selectedNode.ln_server_url + '/v1/listforwards';
options.form = { status: req.query.status || 'settled' };
options.body = { status: req.query.status || 'settled' };
request.get(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Forwarding History Received For Status ' + req.query.status, data: body });
res.status(200).json(!body.forwards ? [] : (req.query.status === 'failed' || req.query.status === 'local_failed') ? body.forwards.slice(Math.max(0, body.forwards.length - 1000), Math.max(1000, body.forwards.length)).reverse() : body.forwards.reverse());
@ -164,8 +164,8 @@ export const funderUpdatePolicy = (req, res, next) => {
return res.status(options.statusCode).json({ message: options.message, error: options.error });
}
options.url = req.session.selectedNode.ln_server_url + '/v1/funderupdate';
options.form = req.body;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Funder Update Body', data: options.form });
options.body = req.body;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Funder Update Body', data: options.body });
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Funder Policy Received', data: body });
body.channel_fee_max_base_msat = (body.channel_fee_max_base_msat && typeof body.channel_fee_max_base_msat === 'string' && body.channel_fee_max_base_msat.includes('msat')) ? +body.channel_fee_max_base_msat?.replace('msat', '') : body.channel_fee_max_base_msat;

View file

@ -11,7 +11,7 @@ export const deleteExpiredInvoice = (req, res, next) => {
return res.status(options.statusCode).json({ message: options.message, error: options.error });
}
options.url = req.session.selectedNode.ln_server_url + '/v1/delexpiredinvoice';
options.form = req.query.maxexpiry ? { maxexpiry: req.query.maxexpiry } : null;
options.body = req.query.maxexpiry ? { maxexpiry: req.query.maxexpiry } : null;
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoice', msg: 'Invoices Deleted', data: body });
res.status(204).json({ status: 'Invoice Deleted Successfully' });
@ -26,7 +26,7 @@ export const listInvoices = (req, res, next) => {
if (options.error) {
return res.status(options.statusCode).json({ message: options.message, error: options.error });
}
options.form = req.query.label ? { label: req.query.label } : null;
options.body = req.query.label ? { label: req.query.label } : null;
options.url = req.session.selectedNode.ln_server_url + '/v1/listinvoices';
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List URL', data: options.url });
request.post(options).then((body) => {
@ -44,7 +44,7 @@ export const addInvoice = (req, res, next) => {
return res.status(options.statusCode).json({ message: options.message, error: options.error });
}
options.url = req.session.selectedNode.ln_server_url + '/v1/invoice';
options.form = req.body;
options.body = req.body;
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoice', msg: 'Invoice Created', data: body });
res.status(201).json(body);

View file

@ -11,7 +11,7 @@ export const getRoute = (req, res, next) => {
return res.status(options.statusCode).json({ message: options.message, error: options.error });
}
options.url = req.session.selectedNode.ln_server_url + '/v1/getroute';
options.form = { id: req.params.destPubkey, amount_msat: req.params.amount, riskfactor: (req.query.riskFactor || 0) };
options.body = { id: req.params.destPubkey, amount_msat: req.params.amount, riskfactor: (req.query.riskFactor || 0) };
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Network Routes Received', data: body });
res.status(200).json({ routes: body });
@ -27,7 +27,7 @@ export const listChannels = (req, res, next) => {
return res.status(options.statusCode).json({ message: options.message, error: options.error });
}
options.url = req.session.selectedNode.ln_server_url + '/v1/listchannels';
options.form = req.params.channelShortId ? { short_channel_id: req.params.channelShortId } : null;
options.body = req.params.channelShortId ? { short_channel_id: req.params.channelShortId } : null;
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Channel Lookup Finished', data: body });
res.status(200).json(body);
@ -43,7 +43,7 @@ export const feeRates = (req, res, next) => {
return res.status(options.statusCode).json({ message: options.message, error: options.error });
}
options.url = req.session.selectedNode.ln_server_url + '/v1/feerates';
options.form = req.params.feeRateStyle ? { style: req.params.feeRateStyle } : null;
options.body = req.params.feeRateStyle ? { style: req.params.feeRateStyle } : null;
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Network Fee Rates Received for ' + req.params.feeRateStyle, data: body });
res.status(200).json(body);
@ -60,7 +60,7 @@ export const listNodes = (req, res, next) => {
}
const queryStr = req.query.liquidity_ads ? '?liquidity_ads=' + req.query.liquidity_ads : '';
options.url = req.session.selectedNode.ln_server_url + '/v1/listnodes';
options.form = req.params.id ? { id: req.params.id } : null;
options.body = req.params.id ? { id: req.params.id } : null;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Network', msg: 'List Nodes URL' + options.url });
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'List Nodes Finished', data: body });

View file

@ -34,7 +34,7 @@ export const listOffers = (req, res, next) => {
return res.status(options.statusCode).json({ message: options.message, error: options.error });
}
options.url = req.session.selectedNode.ln_server_url + '/v1/listoffers';
options.form = { offer_id: (req.query.offer_id) ? req.query.offer_id : null, active_only: !(req.query.active_only === '0' || req.query.active_only === 'false' || !req.query.active_only) };
options.body = { offer_id: (req.query.offer_id) ? req.query.offer_id : null, active_only: !(req.query.active_only === '0' || req.query.active_only === 'false' || !req.query.active_only) };
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offers', msg: 'Offers List URL', data: options.url });
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Offers List Received', data: body });
@ -61,7 +61,7 @@ export const createOffer = (req, res, next) => {
req.body.recurrence_limit = (req.body.recurrence_limit) ? req.body.recurrence_limit : null;
req.body.single_use = !(req.body.single_use === '0' || req.body.single_use === 'false' || !req.body.single_use);
req.body.quantity_min = (req.body.quantity_min) ? req.body.quantity_min : null;
options.form = req.body;
options.body = req.body;
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Offer Created', data: body });
res.status(201).json(body);
@ -83,8 +83,8 @@ export const fetchOfferInvoice = (req, res, next) => {
req.body.recurrence_start = (req.body.recurrence_start) ? req.body.recurrence_start : null;
req.body.recurrence_label = (req.body.recurrence_label) ? req.body.recurrence_label : null;
req.body.timeout = (req.body.timeout) ? req.body.timeout : null;
options.form = req.body;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offers', msg: 'Offer Invoice Body', data: options.form });
options.body = req.body;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offers', msg: 'Offer Invoice Body', data: options.body });
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Offer Invoice Received', data: body });
res.status(201).json(body);
@ -100,7 +100,7 @@ export const disableOffer = (req, res, next) => {
return res.status(options.statusCode).json({ message: options.message, error: options.error });
}
options.url = req.session.selectedNode.ln_server_url + '/v1/disableOffer';
options.form = { offer_id: req.params.offerID };
options.body = { offer_id: req.params.offerID };
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Offer Disabled', data: body });
res.status(202).json(body);

View file

@ -11,7 +11,7 @@ export const getNewAddress = (req, res, next) => {
return res.status(options.statusCode).json({ message: options.message, error: options.error });
}
options.url = req.session.selectedNode.ln_server_url + '/v1/newaddr';
options.form = { addresstype: req.query.type };
options.body = { addresstype: req.query.type };
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'New Address Generated', data: body });
res.status(200).json(body);
@ -31,8 +31,8 @@ export const onChainWithdraw = (req, res, next) => {
req.body.feeRate = (req.body.feeRate) ? req.body.feeRate : null;
req.body.minConf = (req.body.minConf) ? req.body.minConf : null;
req.body.utxos = (req.body.utxos) ? req.body.utxos : null;
options.form = req.body;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'OnChain', msg: 'OnChain Withdraw Options', data: options.form });
options.body = req.body;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'OnChain', msg: 'OnChain Withdraw Options', data: options.body });
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'Withdraw Finished', data: body });
res.status(201).json(body);

View file

@ -71,7 +71,7 @@ export const listPayments = (req, res, next) => {
}
options.url = req.session.selectedNode.ln_server_url + '/v1/listsendpays';
const { invoice, payment_hash, status } = req.query;
options.form = {
options.body = {
...(invoice && { bolt11: invoice }),
...(payment_hash && { payment_hash }),
...(status && { status })
@ -99,7 +99,7 @@ export const postPayment = (req, res, next) => {
req.body.retry_for = (req.body.retry_for) ? req.body.retry_for : null;
req.body.maxdelay = (req.body.maxdelay) ? req.body.maxdelay : null;
req.body.exemptfee = (req.body.exemptfee) ? req.body.exemptfee : null;
options.form = req.body;
options.body = req.body;
}
else {
if (req.body.paymentType === 'OFFER') {
@ -120,7 +120,7 @@ export const postPayment = (req, res, next) => {
req.body.exclude = (req.body.exclude) ? req.body.exclude : null;
req.body.maxfee = (req.body.maxfee) ? req.body.maxfee : null;
req.body.description = (req.body.description) ? req.body.description : null;
options.form = req.body;
options.body = req.body;
options.url = req.session.selectedNode.ln_server_url + '/v1/pay';
}
request.post(options).then((body) => {

View file

@ -13,7 +13,7 @@ export const getPeers = (req, res, next) => {
options.url = req.session.selectedNode.ln_server_url + '/v1/listpeers';
request.post(options).then((body) => {
body.peers.forEach((peer) => {
peer.alias = peer.peer_id.substring(0, 20);
peer.alias = peer.id.substring(0, 20);
return peer;
});
res.status(200).json(body.peers || []);
@ -36,12 +36,13 @@ export const postPeer = (req, res, next) => {
return res.status(options.statusCode).json({ message: options.message, error: options.error });
}
options.url = req.session.selectedNode.ln_server_url + '/v1/connect';
options.form = req.body;
options.body = req.body;
request.post(options).then((connectRes) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer Connected', data: connectRes });
options.url = req.session.selectedNode.ln_server_url + '/v1/listpeers';
request.post(options).then((listPeersRes) => {
const peers = listPeersRes ? common.newestOnTop(listPeersRes, 'id', req.body.id) : [];
const listOptions = common.getOptions(req);
listOptions.url = req.session.selectedNode.ln_server_url + '/v1/listpeers';
request.post(listOptions).then((listPeersRes) => {
const peers = listPeersRes && listPeersRes.peers ? common.newestOnTop(listPeersRes.peers, 'id', connectRes.id) : [];
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peers List after Connect Received', data: peers });
res.status(201).json(peers);
}).catch((errRes) => {
@ -60,7 +61,12 @@ export const deletePeer = (req, res, next) => {
return res.status(options.statusCode).json({ message: options.message, error: options.error });
}
options.url = req.session.selectedNode.ln_server_url + '/v1/disconnect';
options.form = { id: req.params.peerId, force: !!req.query.force };
const id = req.params.peerId;
const force = !!req.query.force;
options.body = {
...(id && { id }),
...(force && { force })
};
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peer Disconnected', data: body });
res.status(204).json({});

View file

@ -6,7 +6,7 @@ const logger = Logger;
const common = Common;
export const decodePaymentFromPaymentRequest = (selNode, payment) => {
options.url = selNode.ln_server_url + '/v1/decode';
options.form = { string: payment };
options.body = { string: payment };
return request.post(options).then((res) => {
logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Payments', msg: 'Payment Decode Received', data: res });
return res;
@ -42,7 +42,7 @@ export const decodePayment = (req, res, next) => {
return res.status(options.statusCode).json({ message: options.message, error: options.error });
}
options.url = req.session.selectedNode.ln_server_url + '/v1/decode';
options.form = { string: req.params.payReq };
options.body = { string: req.params.payReq };
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Payment Decoded', data: body });
res.status(200).json(body);
@ -58,7 +58,7 @@ export const signMessage = (req, res, next) => {
return res.status(options.statusCode).json({ message: options.message, error: options.error });
}
options.url = req.session.selectedNode.ln_server_url + '/v1/signmessage';
options.form = { message: req.body.message };
options.body = { message: req.body.message };
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Message', msg: 'Message Signed', data: body });
res.status(201).json(body);
@ -74,7 +74,7 @@ export const verifyMessage = (req, res, next) => {
return res.status(options.statusCode).json({ message: options.message, error: options.error });
}
options.url = req.session.selectedNode.ln_server_url + '/v1/checkmessage';
options.form = { message: req.body.message, zbase: req.body.signature };
options.body = { message: req.body.message, zbase: req.body.signature };
request.post(options, (error, response, body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Message', msg: 'Message Verified', data: body });
res.status(201).json(body);

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

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

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

View file

@ -1 +1 @@
(()=>{"use strict";var e,v={},m={};function r(e){var f=m[e];if(void 0!==f)return f.exports;var t=m[e]={id:e,loaded:!1,exports:{}};return v[e].call(t.exports,t,t.exports,r),t.loaded=!0,t.exports}r.m=v,e=[],r.O=(f,t,i,o)=>{if(!t){var a=1/0;for(n=0;n<e.length;n++){for(var[t,i,o]=e[n],s=!0,d=0;d<t.length;d++)(!1&o||a>=o)&&Object.keys(r.O).every(b=>r.O[b](t[d]))?t.splice(d--,1):(s=!1,o<a&&(a=o));if(s){e.splice(n--,1);var u=i();void 0!==u&&(f=u)}}return f}o=o||0;for(var n=e.length;n>0&&e[n-1][2]>o;n--)e[n]=e[n-1];e[n]=[t,i,o]},r.d=(e,f)=>{for(var t in f)r.o(f,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:f[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((f,t)=>(r.f[t](e,f),f),[])),r.u=e=>e+"."+{125:"020bb8ec6698fd7e",456:"a54c45d211d6d10c",570:"28ed94d292ccd982",758:"2801e2da6f8bba94"}[e]+".js",r.miniCssF=e=>{},r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),(()=>{var e={},f="RTLApp:";r.l=(t,i,o,n)=>{if(e[t])e[t].push(i);else{var a,s;if(void 0!==o)for(var d=document.getElementsByTagName("script"),u=0;u<d.length;u++){var l=d[u];if(l.getAttribute("src")==t||l.getAttribute("data-webpack")==f+o){a=l;break}}a||(s=!0,(a=document.createElement("script")).type="module",a.charset="utf-8",a.timeout=120,r.nc&&a.setAttribute("nonce",r.nc),a.setAttribute("data-webpack",f+o),a.src=r.tu(t)),e[t]=[i];var c=(g,b)=>{a.onerror=a.onload=null,clearTimeout(p);var h=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),h&&h.forEach(y=>y(b)),g)return g(b)},p=setTimeout(c.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=c.bind(null,a.onerror),a.onload=c.bind(null,a.onload),s&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:f=>f},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{var e={666:0};r.f.j=(i,o)=>{var n=r.o(e,i)?e[i]:void 0;if(0!==n)if(n)o.push(n[2]);else if(666!=i){var a=new Promise((l,c)=>n=e[i]=[l,c]);o.push(n[2]=a);var s=r.p+r.u(i),d=new Error;r.l(s,l=>{if(r.o(e,i)&&(0!==(n=e[i])&&(e[i]=void 0),n)){var c=l&&("load"===l.type?"missing":l.type),p=l&&l.target&&l.target.src;d.message="Loading chunk "+i+" failed.\n("+c+": "+p+")",d.name="ChunkLoadError",d.type=c,d.request=p,n[1](d)}},"chunk-"+i,i)}else e[i]=0},r.O.j=i=>0===e[i];var f=(i,o)=>{var d,u,[n,a,s]=o,l=0;if(n.some(p=>0!==e[p])){for(d in a)r.o(a,d)&&(r.m[d]=a[d]);if(s)var c=s(r)}for(i&&i(o);l<n.length;l++)r.o(e,u=n[l])&&e[u]&&e[u][0](),e[u]=0;return r.O(c)},t=self.webpackChunkRTLApp=self.webpackChunkRTLApp||[];t.forEach(f.bind(null,0)),t.push=f.bind(null,t.push.bind(t))})()})();
(()=>{"use strict";var e,v={},m={};function r(e){var f=m[e];if(void 0!==f)return f.exports;var t=m[e]={id:e,loaded:!1,exports:{}};return v[e].call(t.exports,t,t.exports,r),t.loaded=!0,t.exports}r.m=v,e=[],r.O=(f,t,i,o)=>{if(!t){var a=1/0;for(n=0;n<e.length;n++){for(var[t,i,o]=e[n],s=!0,l=0;l<t.length;l++)(!1&o||a>=o)&&Object.keys(r.O).every(b=>r.O[b](t[l]))?t.splice(l--,1):(s=!1,o<a&&(a=o));if(s){e.splice(n--,1);var d=i();void 0!==d&&(f=d)}}return f}o=o||0;for(var n=e.length;n>0&&e[n-1][2]>o;n--)e[n]=e[n-1];e[n]=[t,i,o]},r.d=(e,f)=>{for(var t in f)r.o(f,t)&&!r.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:f[t]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((f,t)=>(r.f[t](e,f),f),[])),r.u=e=>e+"."+{125:"294a420aeb50ae88",456:"16212571f65d0b5f",570:"a719a189ca60c55b",758:"2801e2da6f8bba94"}[e]+".js",r.miniCssF=e=>{},r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),(()=>{var e={},f="RTLApp:";r.l=(t,i,o,n)=>{if(e[t])e[t].push(i);else{var a,s;if(void 0!==o)for(var l=document.getElementsByTagName("script"),d=0;d<l.length;d++){var u=l[d];if(u.getAttribute("src")==t||u.getAttribute("data-webpack")==f+o){a=u;break}}a||(s=!0,(a=document.createElement("script")).type="module",a.charset="utf-8",a.timeout=120,r.nc&&a.setAttribute("nonce",r.nc),a.setAttribute("data-webpack",f+o),a.src=r.tu(t)),e[t]=[i];var c=(g,b)=>{a.onerror=a.onload=null,clearTimeout(p);var h=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),h&&h.forEach(y=>y(b)),g)return g(b)},p=setTimeout(c.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=c.bind(null,a.onerror),a.onload=c.bind(null,a.onload),s&&document.head.appendChild(a)}}})(),r.r=e=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:f=>f},typeof trustedTypes<"u"&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("angular#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="",(()=>{var e={666:0};r.f.j=(i,o)=>{var n=r.o(e,i)?e[i]:void 0;if(0!==n)if(n)o.push(n[2]);else if(666!=i){var a=new Promise((u,c)=>n=e[i]=[u,c]);o.push(n[2]=a);var s=r.p+r.u(i),l=new Error;r.l(s,u=>{if(r.o(e,i)&&(0!==(n=e[i])&&(e[i]=void 0),n)){var c=u&&("load"===u.type?"missing":u.type),p=u&&u.target&&u.target.src;l.message="Loading chunk "+i+" failed.\n("+c+": "+p+")",l.name="ChunkLoadError",l.type=c,l.request=p,n[1](l)}},"chunk-"+i,i)}else e[i]=0},r.O.j=i=>0===e[i];var f=(i,o)=>{var l,d,[n,a,s]=o,u=0;if(n.some(p=>0!==e[p])){for(l in a)r.o(a,l)&&(r.m[l]=a[l]);if(s)var c=s(r)}for(i&&i(o);u<n.length;u++)r.o(e,d=n[u])&&e[d]&&e[d][0](),e[d]=0;return r.O(c)},t=self.webpackChunkRTLApp=self.webpackChunkRTLApp||[];t.forEach(f.bind(null,0)),t.push=f.bind(null,t.push.bind(t))})()})();

View file

@ -56,8 +56,8 @@ export const openChannel = (req, res, next) => {
options = common.getOptions(req);
if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); }
options.url = req.session.selectedNode.ln_server_url + '/v1/fundchannel';
options.form = req.body;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Options', data: options.form });
options.body = req.body;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Open Channel Options', data: options.body });
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel Opened', data: body });
res.status(201).json(body);
@ -72,8 +72,8 @@ export const setChannelFee = (req, res, next) => {
options = common.getOptions(req);
if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); }
options.url = req.session.selectedNode.ln_server_url + '/v1/setchannel';
options.form = req.body;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy Options', data: options.form });
options.body = req.body;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Update Channel Policy Options', data: options.body });
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Updated Channel Policy', data: body });
res.status(201).json(body);
@ -89,7 +89,7 @@ export const closeChannel = (req, res, next) => {
options = common.getOptions(req);
if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); }
options.url = req.session.selectedNode.ln_server_url + '/v1/close';
options.form = { channelId: req.params.channelId, unilaterlaltimeout: req.query.force ? 1 : null };
options.body = { channelId: req.params.channelId, unilaterlaltimeout: req.query.force ? 1 : null };
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Closing Channel', data: options.url });
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Channel Closed', data: body });
@ -140,7 +140,7 @@ export const listForwards = (req, res, next) => {
options = common.getOptions(req);
if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); }
options.url = req.session.selectedNode.ln_server_url + '/v1/listforwards';
options.form = { status: req.query.status || 'settled' };
options.body = { status: req.query.status || 'settled' };
request.get(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Forwarding History Received For Status ' + req.query.status, data: body });
res.status(200).json(!body.forwards ? [] : (req.query.status === 'failed' || req.query.status === 'local_failed') ? body.forwards.slice(Math.max(0, body.forwards.length - 1000), Math.max(1000, body.forwards.length)).reverse() : body.forwards.reverse());
@ -155,8 +155,8 @@ export const funderUpdatePolicy = (req, res, next) => {
options = common.getOptions(req);
if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); }
options.url = req.session.selectedNode.ln_server_url + '/v1/funderupdate';
options.form = req.body;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Funder Update Body', data: options.form });
options.body = req.body;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Funder Update Body', data: options.body });
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Funder Policy Received', data: body });
body.channel_fee_max_base_msat = (body.channel_fee_max_base_msat && typeof body.channel_fee_max_base_msat === 'string' && body.channel_fee_max_base_msat.includes('msat')) ? +body.channel_fee_max_base_msat?.replace('msat', '') : body.channel_fee_max_base_msat;

View file

@ -10,7 +10,7 @@ export const deleteExpiredInvoice = (req, res, next) => {
options = common.getOptions(req);
if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); }
options.url = req.session.selectedNode.ln_server_url + '/v1/delexpiredinvoice';
options.form = req.query.maxexpiry ? { maxexpiry: req.query.maxexpiry } : null;
options.body = req.query.maxexpiry ? { maxexpiry: req.query.maxexpiry } : null;
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoice', msg: 'Invoices Deleted', data: body });
res.status(204).json({ status: 'Invoice Deleted Successfully' });
@ -24,7 +24,7 @@ export const listInvoices = (req, res, next) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Getting Invoices..' });
options = common.getOptions(req);
if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); }
options.form = req.query.label ? { label: req.query.label } : null;
options.body = req.query.label ? { label: req.query.label } : null;
options.url = req.session.selectedNode.ln_server_url + '/v1/listinvoices';
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Invoice', msg: 'Invoices List URL', data: options.url });
request.post(options).then((body) => {
@ -41,7 +41,7 @@ export const addInvoice = (req, res, next) => {
options = common.getOptions(req);
if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); }
options.url = req.session.selectedNode.ln_server_url + '/v1/invoice';
options.form = req.body;
options.body = req.body;
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoice', msg: 'Invoice Created', data: body });
res.status(201).json(body);

View file

@ -10,7 +10,7 @@ export const getRoute = (req, res, next) => {
options = common.getOptions(req);
if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); }
options.url = req.session.selectedNode.ln_server_url + '/v1/getroute';
options.form = { id: req.params.destPubkey, amount_msat: req.params.amount, riskfactor: (req.query.riskFactor || 0) };
options.body = { id: req.params.destPubkey, amount_msat: req.params.amount, riskfactor: (req.query.riskFactor || 0) };
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Network Routes Received', data: body });
res.status(200).json({ routes: body });
@ -25,7 +25,7 @@ export const listChannels = (req, res, next) => {
options = common.getOptions(req);
if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); }
options.url = req.session.selectedNode.ln_server_url + '/v1/listchannels';
options.form = req.params.channelShortId ? { short_channel_id: req.params.channelShortId } : null;
options.body = req.params.channelShortId ? { short_channel_id: req.params.channelShortId } : null;
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Channel Lookup Finished', data: body });
res.status(200).json(body);
@ -40,7 +40,7 @@ export const feeRates = (req, res, next) => {
options = common.getOptions(req);
if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); }
options.url = req.session.selectedNode.ln_server_url + '/v1/feerates';
options.form = req.params.feeRateStyle ? { style : req.params.feeRateStyle } : null;
options.body = req.params.feeRateStyle ? { style : req.params.feeRateStyle } : null;
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'Network Fee Rates Received for ' + req.params.feeRateStyle, data: body });
res.status(200).json(body);
@ -56,7 +56,7 @@ export const listNodes = (req, res, next) => {
if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); }
const queryStr = req.query.liquidity_ads ? '?liquidity_ads=' + req.query.liquidity_ads : '';
options.url = req.session.selectedNode.ln_server_url + '/v1/listnodes';
options.form = req.params.id ? { id: req.params.id } : null;
options.body = req.params.id ? { id: req.params.id } : null;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Network', msg: 'List Nodes URL' + options.url });
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'List Nodes Finished', data: body });

View file

@ -36,7 +36,7 @@ export const listOffers = (req, res, next) => {
options = common.getOptions(req);
if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); }
options.url = req.session.selectedNode.ln_server_url + '/v1/listoffers';
options.form = { offer_id: (req.query.offer_id) ? req.query.offer_id : null, active_only: !(req.query.active_only === '0' || req.query.active_only === 'false' || !req.query.active_only) };
options.body = { offer_id: (req.query.offer_id) ? req.query.offer_id : null, active_only: !(req.query.active_only === '0' || req.query.active_only === 'false' || !req.query.active_only) };
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offers', msg: 'Offers List URL', data: options.url });
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Offers List Received', data: body });
@ -62,7 +62,7 @@ export const createOffer = (req, res, next) => {
req.body.recurrence_limit = (req.body.recurrence_limit) ? req.body.recurrence_limit : null;
req.body.single_use = !(req.body.single_use === '0' || req.body.single_use === 'false' || !req.body.single_use);
req.body.quantity_min = (req.body.quantity_min) ? req.body.quantity_min : null;
options.form = req.body;
options.body = req.body;
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Offer Created', data: body });
res.status(201).json(body);
@ -83,8 +83,8 @@ export const fetchOfferInvoice = (req, res, next) => {
req.body.recurrence_start = (req.body.recurrence_start) ? req.body.recurrence_start : null;
req.body.recurrence_label = (req.body.recurrence_label) ? req.body.recurrence_label : null;
req.body.timeout = (req.body.timeout) ? req.body.timeout : null;
options.form = req.body;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offers', msg: 'Offer Invoice Body', data: options.form });
options.body = req.body;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Offers', msg: 'Offer Invoice Body', data: options.body });
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Offer Invoice Received', data: body });
res.status(201).json(body);
@ -99,7 +99,7 @@ export const disableOffer = (req, res, next) => {
options = common.getOptions(req);
if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); }
options.url = req.session.selectedNode.ln_server_url + '/v1/disableOffer';
options.form = { offer_id: req.params.offerID };
options.body = { offer_id: req.params.offerID };
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Offers', msg: 'Offer Disabled', data: body });
res.status(202).json(body);

View file

@ -10,7 +10,7 @@ export const getNewAddress = (req, res, next) => {
options = common.getOptions(req);
if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); }
options.url = req.session.selectedNode.ln_server_url + '/v1/newaddr';
options.form = { addresstype: req.query.type };
options.body = { addresstype: req.query.type };
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'New Address Generated', data: body });
res.status(200).json(body);
@ -29,8 +29,8 @@ export const onChainWithdraw = (req, res, next) => {
req.body.feeRate = (req.body.feeRate) ? req.body.feeRate : null;
req.body.minConf = (req.body.minConf) ? req.body.minConf : null;
req.body.utxos = (req.body.utxos) ? req.body.utxos : null;
options.form = req.body;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'OnChain', msg: 'OnChain Withdraw Options', data: options.form });
options.body = req.body;
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'OnChain', msg: 'OnChain Withdraw Options', data: options.body });
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'OnChain', msg: 'Withdraw Finished', data: body });
res.status(201).json(body);

View file

@ -62,7 +62,7 @@ export const listPayments = (req, res, next) => {
if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); }
options.url = req.session.selectedNode.ln_server_url + '/v1/listsendpays';
const { invoice, payment_hash, status } = req.query;
options.form = {
options.body = {
...(invoice && { bolt11: invoice }),
...(payment_hash && { payment_hash }),
...(status && { status })
@ -89,7 +89,7 @@ export const postPayment = (req, res, next) => {
req.body.retry_for = (req.body.retry_for) ? req.body.retry_for : null;
req.body.maxdelay = (req.body.maxdelay) ? req.body.maxdelay : null;
req.body.exemptfee = (req.body.exemptfee) ? req.body.exemptfee : null;
options.form = req.body;
options.body = req.body;
} else {
if (req.body.paymentType === 'OFFER') {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Sending Offer Payment..' });
@ -108,7 +108,7 @@ export const postPayment = (req, res, next) => {
req.body.exclude = (req.body.exclude) ? req.body.exclude : null;
req.body.maxfee = (req.body.maxfee) ? req.body.maxfee : null;
req.body.description = (req.body.description) ? req.body.description : null;
options.form = req.body;
options.body = req.body;
options.url = req.session.selectedNode.ln_server_url + '/v1/pay';
}
request.post(options).then((body) => {

View file

@ -12,7 +12,7 @@ export const getPeers = (req, res, next) => {
options.url = req.session.selectedNode.ln_server_url + '/v1/listpeers';
request.post(options).then((body) => {
body.peers.forEach((peer) => {
peer.alias = peer.peer_id.substring(0, 20);
peer.alias = peer.id.substring(0, 20);
return peer;
});
res.status(200).json(body.peers || []);
@ -34,12 +34,13 @@ export const postPeer = (req, res, next) => {
options = common.getOptions(req);
if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); }
options.url = req.session.selectedNode.ln_server_url + '/v1/connect';
options.form = req.body;
options.body = req.body;
request.post(options).then((connectRes) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peer Connected', data: connectRes });
options.url = req.session.selectedNode.ln_server_url + '/v1/listpeers';
request.post(options).then((listPeersRes) => {
const peers = listPeersRes ? common.newestOnTop(listPeersRes, 'id', req.body.id) : [];
const listOptions = common.getOptions(req);
listOptions.url = req.session.selectedNode.ln_server_url + '/v1/listpeers';
request.post(listOptions).then((listPeersRes) => {
const peers = listPeersRes && listPeersRes.peers ? common.newestOnTop(listPeersRes.peers, 'id', connectRes.id) : [];
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peers List after Connect Received', data: peers });
res.status(201).json(peers);
}).catch((errRes) => {
@ -57,7 +58,12 @@ export const deletePeer = (req, res, next) => {
options = common.getOptions(req);
if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); }
options.url = req.session.selectedNode.ln_server_url + '/v1/disconnect';
options.form = { id: req.params.peerId, force: !!req.query.force };
const id = req.params.peerId;
const force = !!req.query.force;
options.body = {
...(id && { id }),
...(force && { force })
};
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peer Disconnected', data: body });
res.status(204).json({});

View file

@ -9,7 +9,7 @@ const common: CommonService = Common;
export const decodePaymentFromPaymentRequest = (selNode: CommonSelectedNode, payment) => {
options.url = selNode.ln_server_url + '/v1/decode';
options.form = { string: payment };
options.body = { string: payment };
return request.post(options).then((res) => {
logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Payments', msg: 'Payment Decode Received', data: res });
return res;
@ -42,7 +42,7 @@ export const decodePayment = (req, res, next) => {
options = common.getOptions(req);
if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); }
options.url = req.session.selectedNode.ln_server_url + '/v1/decode';
options.form = { string: req.params.payReq };
options.body = { string: req.params.payReq };
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Payment Decoded', data: body });
res.status(200).json(body);
@ -57,7 +57,7 @@ export const signMessage = (req, res, next) => {
options = common.getOptions(req);
if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); }
options.url = req.session.selectedNode.ln_server_url + '/v1/signmessage';
options.form = { message: req.body.message };
options.body = { message: req.body.message };
request.post(options).then((body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Message', msg: 'Message Signed', data: body });
res.status(201).json(body);
@ -72,7 +72,7 @@ export const verifyMessage = (req, res, next) => {
options = common.getOptions(req);
if (options.error) { return res.status(options.statusCode).json({ message: options.message, error: options.error }); }
options.url = req.session.selectedNode.ln_server_url + '/v1/checkmessage';
options.form = { message: req.body.message, zbase: req.body.signature };
options.body = { message: req.body.message, zbase: req.body.signature };
request.post(options, (error, response, body) => {
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Message', msg: 'Message Verified', data: body });
res.status(201).json(body);

View file

@ -90,12 +90,12 @@ export class CLNOnChainUtxosComponent implements OnInit, AfterViewInit, OnDestro
this.dustUtxos = utxosSelector.utxos?.filter((utxo) => +(utxo.amount_msat || 0) / 1000 < this.dustAmount);
this.utxos = utxosSelector.utxos;
if (this.isDustUTXO) {
if (this.dustUtxos && this.dustUtxos.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.dustUtxos && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadUTXOsTable(this.dustUtxos);
}
} else {
this.displayedColumns.unshift('is_dust');
if (this.utxos && this.utxos.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.utxos && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadUTXOsTable(this.utxos);
}
}
@ -107,11 +107,11 @@ export class CLNOnChainUtxosComponent implements OnInit, AfterViewInit, OnDestro
ngAfterViewInit() {
setTimeout(() => {
if (this.isDustUTXO) {
if (this.dustUtxos && this.dustUtxos.length > 0) {
if (this.dustUtxos && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadUTXOsTable(this.dustUtxos);
}
} else {
if (this.utxos && this.utxos.length > 0) {
if (this.utxos && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadUTXOsTable(this.utxos);
}
}

View file

@ -83,7 +83,7 @@ export class CLNChannelActiveHTLCsTableComponent implements OnInit, AfterViewIni
}
const allChannels = [...channelsSelector.activeChannels, ...channelsSelector.pendingChannels, ...channelsSelector.inactiveChannels];
this.channelsJSONArr = allChannels?.filter((channel) => channel.htlcs && channel.htlcs.length > 0) || [];
if (this.channelsJSONArr.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.channelsJSONArr && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadHTLCsTable(this.channelsJSONArr);
}
this.logger.info(channelsSelector);

View file

@ -106,7 +106,7 @@ export class CLNChannelOpenTableComponent implements OnInit, AfterViewInit, OnDe
this.errorMessage = !this.apiCallStatus.message ? '' : (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message;
}
this.channelsData = channelsSeletor.activeChannels;
if (this.channelsData.length > 0) {
if (this.channelsData && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadChannelsTable(this.channelsData);
}
this.logger.info(channelsSeletor);

View file

@ -103,7 +103,7 @@ export class CLNChannelPendingTableComponent implements OnInit, AfterViewInit, O
}
this.channelsData = [...channelsSeletor.pendingChannels, ...channelsSeletor.inactiveChannels];
this.channelsData = this.channelsData.sort((a, b) => ((this.CLNChannelPendingState[a.state || ''] >= this.CLNChannelPendingState[b.state || '']) ? 1 : -1));
if (this.channelsData && this.channelsData.length > 0) {
if (this.channelsData && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadChannelsTable(this.channelsData);
}
this.logger.info(channelsSeletor);

View file

@ -99,7 +99,7 @@ export class CLNPeersComponent implements OnInit, AfterViewInit, OnDestroy {
this.errorMessage = !this.apiCallStatus.message ? '' : (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message;
}
this.peersData = peersSeletor.peers || [];
if (this.peersData.length > 0) {
if (this.peersData && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadPeersTable(this.peersData);
}
this.logger.info(peersSeletor);

View file

@ -88,7 +88,7 @@ export class CLNFailedTransactionsComponent implements OnInit, AfterViewInit, On
}
this.totalFailedTransactions = ffhSeletor.failedForwardingHistory.totalForwards || 0;
this.failedEvents = ffhSeletor.failedForwardingHistory.listForwards || [];
if (this.failedEvents.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.failedEvents && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadFailedEventsTable(this.failedEvents);
}
this.logger.info(ffhSeletor);

View file

@ -111,7 +111,7 @@ export class CLNForwardingHistoryComponent implements OnInit, OnChanges, AfterVi
if (this.eventsData.length <= 0 && fhSeletor.forwardingHistory.listForwards) {
this.totalForwardedTransactions = fhSeletor.forwardingHistory.totalForwards || 0;
this.successfulEvents = fhSeletor.forwardingHistory.listForwards || [];
if (this.successfulEvents.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.successfulEvents && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadForwardingEventsTable(this.successfulEvents);
}
this.logger.info(fhSeletor);

View file

@ -89,7 +89,7 @@ export class CLNLocalFailedTransactionsComponent implements OnInit, AfterViewIni
}
this.totalLocalFailedTransactions = lffhSeletor.localFailedForwardingHistory.totalForwards || 0;
this.failedLocalEvents = lffhSeletor.localFailedForwardingHistory.listForwards || [];
if (this.failedLocalEvents.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.failedLocalEvents&& this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadLocalfailedLocalEventsTable(this.failedLocalEvents);
}
this.logger.info(lffhSeletor);

View file

@ -110,7 +110,7 @@ export class CLNLightningInvoicesTableComponent implements OnInit, AfterViewInit
this.errorMessage = !this.apiCallStatus.message ? '' : (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message;
}
this.invoiceJSONArr = invoicesSeletor.listInvoices.invoices || [];
if (this.invoiceJSONArr && this.invoiceJSONArr.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.invoiceJSONArr && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadInvoicesTable(this.invoiceJSONArr);
}
this.logger.info(invoicesSeletor);
@ -118,7 +118,7 @@ export class CLNLightningInvoicesTableComponent implements OnInit, AfterViewInit
this.actions.pipe(takeUntil(this.unSubs[4]), filter((action) => (action.type === CLNActions.SET_LOOKUP_CLN || action.type === CLNActions.UPDATE_API_CALL_STATUS_CLN))).
subscribe((resLookup: any) => {
if (resLookup.type === CLNActions.SET_LOOKUP_CLN) {
if (this.invoiceJSONArr && this.invoiceJSONArr.length > 0 && this.sort && this.paginator && resLookup.payload) {
if (this.invoiceJSONArr && this.sort && this.paginator && resLookup.payload) {
this.updateInvoicesData(JSON.parse(JSON.stringify(resLookup.payload)));
this.loadInvoicesTable(this.invoiceJSONArr);
}
@ -127,7 +127,7 @@ export class CLNLightningInvoicesTableComponent implements OnInit, AfterViewInit
}
ngAfterViewInit() {
if (this.invoiceJSONArr && this.invoiceJSONArr.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.invoiceJSONArr && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadInvoicesTable(this.invoiceJSONArr);
}
}

View file

@ -112,7 +112,7 @@ export class CLNOffersTableComponent implements OnInit, AfterViewInit, OnDestroy
this.errorMessage = !this.apiCallStatus.message ? '' : (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message;
}
this.offerJSONArr = offersSeletor.offers || [];
if (this.offerJSONArr && this.offerJSONArr.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.offerJSONArr && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadOffersTable(this.offerJSONArr);
}
this.logger.info(offersSeletor);
@ -120,7 +120,7 @@ export class CLNOffersTableComponent implements OnInit, AfterViewInit, OnDestroy
}
ngAfterViewInit() {
if (this.offerJSONArr && this.offerJSONArr.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.offerJSONArr && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadOffersTable(this.offerJSONArr);
}
}

View file

@ -119,7 +119,7 @@ export class CLNLightningPaymentsComponent implements OnInit, AfterViewInit, OnD
this.errorMessage = !this.apiCallStatus.message ? '' : (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message;
}
this.paymentJSONArr = paymentsSeletor.payments || [];
if (this.paymentJSONArr.length && this.paymentJSONArr.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.paymentJSONArr.length && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadPaymentsTable(this.paymentJSONArr);
}
this.logger.info(paymentsSeletor);
@ -127,7 +127,7 @@ export class CLNLightningPaymentsComponent implements OnInit, AfterViewInit, OnD
}
ngAfterViewInit() {
if (this.paymentJSONArr.length && this.paymentJSONArr.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.paymentJSONArr.length && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadPaymentsTable(this.paymentJSONArr);
}
}

View file

@ -99,7 +99,7 @@ export class ECLChannelOpenTableComponent implements OnInit, AfterViewInit, OnDe
this.errorMessage = !this.apiCallStatus.message ? '' : (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message;
}
this.activeChannels = allChannelsSelector.activeChannels;
if (this.activeChannels.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.activeChannels && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadChannelsTable();
}
this.logger.info(allChannelsSelector);
@ -119,7 +119,7 @@ export class ECLChannelOpenTableComponent implements OnInit, AfterViewInit, OnDe
}
ngAfterViewInit() {
if (this.activeChannels.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.activeChannels && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadChannelsTable();
}
}

View file

@ -99,7 +99,7 @@ export class ECLForwardingHistoryComponent implements OnInit, OnChanges, AfterVi
this.errorMessage = !this.apiCallStatus.message ? '' : (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message;
}
this.eventsData = paymentsSelector.payments && paymentsSelector.payments.relayed ? paymentsSelector.payments.relayed : [];
if (this.eventsData.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.eventsData && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadForwardingEventsTable(this.eventsData);
}
this.logger.info(this.eventsData);

View file

@ -109,7 +109,7 @@ export class ECLLightningInvoicesComponent implements OnInit, AfterViewInit, OnD
this.errorMessage = !this.apiCallStatus.message ? '' : (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message;
}
this.invoiceJSONArr = (invoicesSelector.invoices && invoicesSelector.invoices.length > 0) ? invoicesSelector.invoices : [];
if (this.invoiceJSONArr && this.invoiceJSONArr.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.invoiceJSONArr && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadInvoicesTable(this.invoiceJSONArr);
}
this.logger.info(invoicesSelector);
@ -117,7 +117,7 @@ export class ECLLightningInvoicesComponent implements OnInit, AfterViewInit, OnD
this.actions.pipe(takeUntil(this.unSubs[4]), filter((action) => (action.type === ECLActions.SET_LOOKUP_ECL || action.type === ECLActions.UPDATE_API_CALL_STATUS_ECL))).
subscribe((resLookup: any) => {
if (resLookup.type === ECLActions.SET_LOOKUP_ECL) {
if (this.invoiceJSONArr.length > 0 && this.sort && this.paginator && resLookup.payload) {
if (this.invoiceJSONArr && this.sort && this.paginator && resLookup.payload) {
this.updateInvoicesData(JSON.parse(JSON.stringify(resLookup.payload)));
this.loadInvoicesTable(this.invoiceJSONArr);
}
@ -126,7 +126,7 @@ export class ECLLightningInvoicesComponent implements OnInit, AfterViewInit, OnD
}
ngAfterViewInit() {
if (this.invoiceJSONArr && this.invoiceJSONArr.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.invoiceJSONArr && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadInvoicesTable(this.invoiceJSONArr);
}
}

View file

@ -110,7 +110,7 @@ export class ECLLightningPaymentsComponent implements OnInit, AfterViewInit, OnD
this.errorMessage = !this.apiCallStatus.message ? '' : (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message;
}
this.paymentJSONArr = (paymentsSeletor.payments && paymentsSeletor.payments.sent && paymentsSeletor.payments.sent.length > 0) ? paymentsSeletor.payments.sent : [];
if (this.paymentJSONArr.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.paymentJSONArr && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadPaymentsTable(this.paymentJSONArr);
}
this.logger.info(paymentsSeletor);

View file

@ -67,7 +67,7 @@ export class ChannelBackupTableComponent implements OnInit, AfterViewInit, OnDes
this.errorMessage = !this.apiCallStatus.message ? '' : (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message;
}
this.channelsData = channelsSeletor.channels;
if (this.channelsData.length > 0) {
if (this.channelsData && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadBackupTable(this.channelsData);
}
this.logger.info(channelsSeletor);

View file

@ -83,7 +83,7 @@ export class ChannelActiveHTLCsTableComponent implements OnInit, AfterViewInit,
this.errorMessage = !this.apiCallStatus.message ? '' : (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message;
}
this.channelsJSONArr = channelsSelector.channels?.filter((channel) => channel.pending_htlcs && channel.pending_htlcs.length > 0) || [];
if (this.channelsJSONArr.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.channelsJSONArr && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadHTLCsTable(this.channelsJSONArr);
}
this.logger.info(channelsSelector);

View file

@ -84,7 +84,7 @@ export class ChannelClosedTableComponent implements OnInit, AfterViewInit, OnDes
this.errorMessage = !this.apiCallStatus.message ? '' : (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message;
}
this.closedChannelsData = closedChannelsSelector.closedChannels;
if (this.closedChannelsData.length > 0) {
if (this.closedChannelsData && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadClosedChannelsTable(this.closedChannelsData);
}
this.logger.info(closedChannelsSelector);

View file

@ -94,7 +94,7 @@ export class PeersComponent implements OnInit, AfterViewInit, OnDestroy {
this.errorMessage = !this.apiCallStatus.message ? '' : (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message;
}
this.peersData = peersSelector.peers;
if (this.peersData.length > 0) {
if (this.peersData && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadPeersTable(this.peersData);
}
this.logger.info(peersSelector);

View file

@ -101,7 +101,7 @@ export class ForwardingHistoryComponent implements OnInit, AfterViewInit, OnChan
this.errorMessage = !this.apiCallStatus.message ? '' : (typeof (this.apiCallStatus.message) === 'object') ? JSON.stringify(this.apiCallStatus.message) : this.apiCallStatus.message;
}
this.forwardingHistoryData = fhSelector.forwardingHistory.forwarding_events || [];
if (this.forwardingHistoryData.length > 0 && this.sort && this.paginator) {
if (this.forwardingHistoryData && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadForwardingEventsTable(this.forwardingHistoryData);
}
this.logger.info(fhSelector.apiCallStatus);

View file

@ -85,7 +85,7 @@ export class NonRoutingPeersComponent implements OnInit, AfterViewInit, OnDestro
} else {
this.routingPeersData = [];
}
if (this.routingPeersData.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.routingPeersData && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadNonRoutingPeersTable(this.routingPeersData);
}
this.logger.info(fhSelector.apiCallStatus);

View file

@ -117,7 +117,7 @@ export class LightningInvoicesComponent implements OnInit, AfterViewInit, OnDest
this.firstOffset = +(invoicesSelector.listInvoices.first_index_offset || -1);
this.lastOffset = +(invoicesSelector.listInvoices.last_index_offset || -1);
this.invoicesData = invoicesSelector.listInvoices.invoices || [];
if (this.invoicesData.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.invoicesData && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadInvoicesTable(this.invoicesData);
}
this.logger.info(invoicesSelector);
@ -125,7 +125,7 @@ export class LightningInvoicesComponent implements OnInit, AfterViewInit, OnDest
this.actions.pipe(takeUntil(this.unSubs[4]), filter((action) => (action.type === LNDActions.SET_LOOKUP_LND || action.type === LNDActions.UPDATE_API_CALL_STATUS_LND))).
subscribe((resLookup: any) => {
if (resLookup.type === LNDActions.SET_LOOKUP_LND) {
if (this.invoicesData.length > 0 && this.sort && this.paginator && resLookup.payload) {
if (this.invoicesData && this.sort && this.paginator && resLookup.payload) {
this.updateInvoicesData(JSON.parse(JSON.stringify(resLookup.payload)));
this.loadInvoicesTable(this.invoicesData);
}

View file

@ -115,7 +115,7 @@ export class LightningPaymentsComponent implements OnInit, AfterViewInit, OnDest
this.totalPayments = this.paymentJSONArr.length;
this.firstOffset = +(paymentsSelector.listPayments.first_index_offset || -1);
this.lastOffset = +(paymentsSelector.listPayments.last_index_offset || -1);
if (this.paymentJSONArr && this.paymentJSONArr.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.paymentJSONArr && this.sort && this.paginator && this.displayedColumns.length > 0) {
// this.loadPaymentsTable(this.paymentJSONArr);
this.loadPaymentsTable(this.paymentJSONArr.slice(0, this.pageSize));
}

View file

@ -77,7 +77,7 @@ export class BoltzSwapsComponent implements OnInit, AfterViewInit, OnChanges, On
this.tableSettingSwapIn = settings.pageSettings.find((page) => page.pageId === this.PAGE_ID)?.tables.find((table) => table.tableId === this.tableSettingSwapIn.tableId) ||
LND_DEFAULT_PAGE_SETTINGS.find((page) => page.pageId === this.PAGE_ID)?.tables.find((table) => table.tableId === this.tableSettingSwapIn.tableId)!;
this.setTableColumns();
if (this.swapsData && this.swapsData.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.swapsData && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadSwapsTable(this.swapsData);
}
this.colWidth = this.displayedColumns.length ? ((this.commonService.getContainerSize().width / this.displayedColumns.length) / 14) + 'rem' : '20rem';

View file

@ -76,7 +76,7 @@ export class SwapsComponent implements OnInit, AfterViewInit, OnChanges, OnDestr
}
this.displayedColumns.push('actions');
this.pageSize = this.tableSetting.recordsPerPage ? +this.tableSetting.recordsPerPage : PAGE_SIZE;
if (this.swapsData && this.swapsData.length > 0 && this.sort && this.paginator && this.displayedColumns.length > 0) {
if (this.swapsData && this.sort && this.paginator && this.displayedColumns.length > 0) {
this.loadSwapsTable(this.swapsData);
}
this.colWidth = this.displayedColumns.length ? ((this.commonService.getContainerSize().width / this.displayedColumns.length) / 14) + 'rem' : '20rem';

View file

@ -12,7 +12,7 @@ export const HOUR_SECONDS = 3600;
export const DEFAULT_INVOICE_EXPIRY = HOUR_SECONDS * 24 * 7;
export const VERSION = '0.14.1-beta';
export const VERSION = '0.15.0-beta';
export const API_URL = isDevMode() ? 'http://localhost:3000/rtl/api' : './api';