mirror of
https://github.com/Ride-The-Lightning/RTL.git
synced 2024-11-19 01:40:29 +01:00
Updated to ng 14
This commit is contained in:
parent
baa284b0b9
commit
b4e65e2098
@ -123,8 +123,9 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"defaultProject": "RTLApp",
|
||||
"cli": {
|
||||
"defaultCollection": "@angular-eslint/schematics"
|
||||
"schematicCollections": [
|
||||
"@angular-eslint/schematics"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ export const listChannels = (req, res, next) => {
|
||||
}
|
||||
options.url = req.session.selectedNode.ln_server_url + '/v1/channel/listChannels';
|
||||
request(options).then((body) => {
|
||||
body === null || body === void 0 ? void 0 : body.map((channel) => {
|
||||
body?.map((channel) => {
|
||||
if (!channel.alias || channel.alias === '') {
|
||||
channel.alias = channel.id.substring(0, 20);
|
||||
}
|
||||
@ -129,10 +129,9 @@ export const funderUpdatePolicy = (req, res, next) => {
|
||||
}
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Funder Update Body', data: options.body });
|
||||
request.post(options).then((body) => {
|
||||
var _a, _b;
|
||||
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')) ? +((_a = body.channel_fee_max_base_msat) === null || _a === void 0 ? void 0 : _a.replace('msat', '')) : body.channel_fee_max_base_msat;
|
||||
body.lease_fee_base_msat = (body.lease_fee_base_msat && typeof body.lease_fee_base_msat === 'string' && body.lease_fee_base_msat.includes('msat')) ? +((_b = body.lease_fee_base_msat) === null || _b === void 0 ? void 0 : _b.replace('msat', '')) : body.channel_fee_max_base_msat;
|
||||
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;
|
||||
body.lease_fee_base_msat = (body.lease_fee_base_msat && typeof body.lease_fee_base_msat === 'string' && body.lease_fee_base_msat.includes('msat')) ? +body.lease_fee_base_msat?.replace('msat', '') : body.channel_fee_max_base_msat;
|
||||
res.status(200).json(body);
|
||||
}).catch((errRes) => {
|
||||
const err = common.handleError(errRes, 'Channels', 'Funder Policy Error', req.session.selectedNode);
|
||||
|
@ -76,12 +76,11 @@ export const listNodes = (req, res, next) => {
|
||||
request(options).then((body) => {
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Network', msg: 'List Nodes Finished', data: body });
|
||||
body.forEach((node) => {
|
||||
var _a, _b;
|
||||
if (node.option_will_fund) {
|
||||
node.option_will_fund.lease_fee_base_msat = (node.option_will_fund.lease_fee_base_msat && typeof node.option_will_fund.lease_fee_base_msat === 'string' &&
|
||||
node.option_will_fund.lease_fee_base_msat.includes('msat')) ? (_a = node.option_will_fund.lease_fee_base_msat) === null || _a === void 0 ? void 0 : _a.replace('msat', '') : node.option_will_fund.lease_fee_base_msat;
|
||||
node.option_will_fund.lease_fee_base_msat.includes('msat')) ? node.option_will_fund.lease_fee_base_msat?.replace('msat', '') : node.option_will_fund.lease_fee_base_msat;
|
||||
node.option_will_fund.channel_fee_max_base_msat = (node.option_will_fund.channel_fee_max_base_msat && typeof node.option_will_fund.channel_fee_max_base_msat === 'string' &&
|
||||
node.option_will_fund.channel_fee_max_base_msat.includes('msat')) ? (_b = node.option_will_fund.channel_fee_max_base_msat) === null || _b === void 0 ? void 0 : _b.replace('msat', '') : node.option_will_fund.channel_fee_max_base_msat;
|
||||
node.option_will_fund.channel_fee_max_base_msat.includes('msat')) ? node.option_will_fund.channel_fee_max_base_msat?.replace('msat', '') : node.option_will_fund.channel_fee_max_base_msat;
|
||||
}
|
||||
return node;
|
||||
});
|
||||
|
@ -35,10 +35,9 @@ function summaryReducer(accumulator, mpp) {
|
||||
return accumulator;
|
||||
}
|
||||
function groupBy(payments) {
|
||||
var _a;
|
||||
const paymentsInGroups = payments === null || payments === void 0 ? void 0 : payments.reduce(paymentReducer, {});
|
||||
const paymentsGrpArray = (_a = Object.keys(paymentsInGroups)) === null || _a === void 0 ? void 0 : _a.map((key) => ((paymentsInGroups[key].length && paymentsInGroups[key].length > 1) ? common.sortDescByKey(paymentsInGroups[key], 'partid') : paymentsInGroups[key]));
|
||||
return paymentsGrpArray === null || paymentsGrpArray === void 0 ? void 0 : paymentsGrpArray.reduce((acc, curr) => {
|
||||
const paymentsInGroups = payments?.reduce(paymentReducer, {});
|
||||
const paymentsGrpArray = Object.keys(paymentsInGroups)?.map((key) => ((paymentsInGroups[key].length && paymentsInGroups[key].length > 1) ? common.sortDescByKey(paymentsInGroups[key], 'partid') : paymentsInGroups[key]));
|
||||
return paymentsGrpArray?.reduce((acc, curr) => {
|
||||
let temp = {};
|
||||
if (curr.length && curr.length === 1) {
|
||||
temp = JSON.parse(JSON.stringify(curr[0]));
|
||||
@ -48,7 +47,7 @@ function groupBy(payments) {
|
||||
delete temp.partid;
|
||||
}
|
||||
else {
|
||||
const paySummary = curr === null || curr === void 0 ? void 0 : curr.reduce(summaryReducer, { msatoshi: 0, msatoshi_sent: 0, status: (curr[0] && curr[0].status) ? curr[0].status : 'failed' });
|
||||
const paySummary = curr?.reduce(summaryReducer, { msatoshi: 0, msatoshi_sent: 0, status: (curr[0] && curr[0].status) ? curr[0].status : 'failed' });
|
||||
temp = {
|
||||
is_group: true, is_expanded: false, total_parts: (curr.length ? curr.length : 0), status: paySummary.status, payment_hash: curr[0].payment_hash,
|
||||
destination: curr[0].destination, msatoshi: paySummary.msatoshi, msatoshi_sent: paySummary.msatoshi_sent, created_at: curr[0].created_at,
|
||||
|
@ -19,7 +19,7 @@ export const decodePayments = (req, res, next) => {
|
||||
}
|
||||
if (req.body.payments) {
|
||||
const paymentsArr = req.body.payments.split(',');
|
||||
return Promise.all(paymentsArr === null || paymentsArr === void 0 ? void 0 : paymentsArr.map((payment) => decodePaymentFromPaymentRequest(req.session.selectedNode, payment))).
|
||||
return Promise.all(paymentsArr?.map((payment) => decodePaymentFromPaymentRequest(req.session.selectedNode, payment))).
|
||||
then((values) => {
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Payment List Decoded', data: values });
|
||||
res.status(200).json(values);
|
||||
|
@ -47,9 +47,8 @@ export class CLWebSocketClient {
|
||||
}
|
||||
};
|
||||
this.connectWithClient = (clWsClt) => {
|
||||
var _a;
|
||||
this.logger.log({ selectedNode: clWsClt.selectedNode, level: 'INFO', fileName: 'CLWebSocket', msg: 'Connecting to the Core Lightning\'s Websocket Server..' });
|
||||
const WS_LINK = ((_a = (clWsClt.selectedNode.ln_server_url)) === null || _a === void 0 ? void 0 : _a.replace(/^http/, 'ws')) + '/v1/ws';
|
||||
const WS_LINK = (clWsClt.selectedNode.ln_server_url)?.replace(/^http/, 'ws') + '/v1/ws';
|
||||
const mcrnHexEncoded = Buffer.from(fs.readFileSync(join(clWsClt.selectedNode.macaroon_path, 'access.macaroon'))).toString('hex');
|
||||
clWsClt.webSocketClient = new WebSocket(WS_LINK, [mcrnHexEncoded, 'hex'], { rejectUnauthorized: false });
|
||||
clWsClt.webSocketClient.onopen = () => {
|
||||
|
@ -32,7 +32,7 @@ export const simplifyAllChannels = (selNode, channels) => {
|
||||
return request.post(options).then((nodes) => {
|
||||
logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Channels', msg: 'Filtered Nodes Received', data: nodes });
|
||||
let foundPeer = null;
|
||||
simplifiedChannels === null || simplifiedChannels === void 0 ? void 0 : simplifiedChannels.map((channel) => {
|
||||
simplifiedChannels?.map((channel) => {
|
||||
foundPeer = nodes.find((channelWithAlias) => channel.nodeId === channelWithAlias.nodeId);
|
||||
channel.alias = foundPeer ? foundPeer.alias : channel.nodeId.substring(0, 20);
|
||||
return channel;
|
||||
|
@ -70,7 +70,7 @@ export const listInvoices = (req, res, next) => {
|
||||
return common.getDummyData('Invoices', req.session.selectedNode.ln_implementation).then((body) => {
|
||||
const invoices = (!body[0] || body[0].length <= 0) ? [] : body[0];
|
||||
pendingInvoices = (!body[1] || body[1].length <= 0) ? [] : body[1];
|
||||
return Promise.all(invoices === null || invoices === void 0 ? void 0 : invoices.map((invoice) => getReceivedPaymentInfo(req.session.selectedNode.ln_server_url, invoice))).
|
||||
return Promise.all(invoices?.map((invoice) => getReceivedPaymentInfo(req.session.selectedNode.ln_server_url, invoice))).
|
||||
then((values) => res.status(200).json(invoices));
|
||||
});
|
||||
}
|
||||
@ -81,7 +81,7 @@ export const listInvoices = (req, res, next) => {
|
||||
const 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 === null || invoices === void 0 ? void 0 : invoices.map((invoice) => getReceivedPaymentInfo(req.session.selectedNode.ln_server_url, invoice))).
|
||||
return Promise.all(invoices?.map((invoice) => getReceivedPaymentInfo(req.session.selectedNode.ln_server_url, invoice))).
|
||||
then((values) => {
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Invoices', msg: 'Sorted Invoices List Received', data: invoices });
|
||||
return res.status(200).json(invoices);
|
||||
|
@ -22,7 +22,7 @@ export const getSentInfoFromPaymentRequest = (selNode, payment) => {
|
||||
};
|
||||
export const getQueryNodes = (selNode, nodeIds) => {
|
||||
options.url = selNode.ln_server_url + '/nodes';
|
||||
options.form = { nodeIds: nodeIds === null || nodeIds === void 0 ? void 0 : nodeIds.reduce((acc, curr) => acc + ',' + curr) };
|
||||
options.form = { nodeIds: nodeIds?.reduce((acc, curr) => acc + ',' + curr) };
|
||||
return request.post(options).then((nodes) => {
|
||||
logger.log({ selectedNode: selNode, level: 'DEBUG', fileName: 'Payments', msg: 'Query Nodes Received', data: nodes });
|
||||
return nodes;
|
||||
@ -77,16 +77,14 @@ export const queryPaymentRoute = (req, res, next) => {
|
||||
};
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Query Payment Route Options', data: options.form });
|
||||
request.post(options).then((body) => {
|
||||
var _a;
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Payments', msg: 'Query Payment Route Received', data: body });
|
||||
if (body && body.routes && body.routes.length) {
|
||||
let allRoutesNodeIds = [];
|
||||
allRoutesNodeIds = (_a = body.routes) === null || _a === void 0 ? void 0 : _a.reduce((accRoutes, currRoute) => [...new Set([...accRoutes, ...currRoute.nodeIds])], []);
|
||||
allRoutesNodeIds = body.routes?.reduce((accRoutes, currRoute) => [...new Set([...accRoutes, ...currRoute.nodeIds])], []);
|
||||
return getQueryNodes(req.session.selectedNode, allRoutesNodeIds).then((nodesWithAlias) => {
|
||||
let foundPeer = null;
|
||||
body.routes.forEach((route, i) => {
|
||||
var _a;
|
||||
(_a = route.nodeIds) === null || _a === void 0 ? void 0 : _a.map((node, j) => {
|
||||
route.nodeIds?.map((node, j) => {
|
||||
foundPeer = nodesWithAlias.find((nodeWithAlias) => node === nodeWithAlias.nodeId);
|
||||
body.routes[i].nodeIds[j] = { nodeId: node, alias: foundPeer ? foundPeer.alias : '' };
|
||||
return node;
|
||||
@ -113,7 +111,7 @@ export const getSentPaymentsInformation = (req, res, next) => {
|
||||
}
|
||||
if (req.body.payments) {
|
||||
const paymentsArr = req.body.payments.split(',');
|
||||
return Promise.all(paymentsArr === null || paymentsArr === void 0 ? void 0 : paymentsArr.map((payment) => getSentInfoFromPaymentRequest(req.session.selectedNode, payment))).
|
||||
return Promise.all(paymentsArr?.map((payment) => getSentInfoFromPaymentRequest(req.session.selectedNode, payment))).
|
||||
then((values) => {
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Payments', msg: 'Payment Sent Information Received', data: values });
|
||||
return res.status(200).json(values);
|
||||
|
@ -32,7 +32,7 @@ export const getPeers = (req, res, next) => {
|
||||
peersNodeIds = peersNodeIds.substring(1);
|
||||
return getFilteredNodes(req.session.selectedNode, peersNodeIds).then((peersWithAlias) => {
|
||||
let foundPeer = null;
|
||||
body === null || body === void 0 ? void 0 : body.map((peer) => {
|
||||
body?.map((peer) => {
|
||||
foundPeer = peersWithAlias.find((peerWithAlias) => peer.nodeId === peerWithAlias.nodeId);
|
||||
peer.alias = foundPeer ? foundPeer.alias : peer.nodeId.substring(0, 20);
|
||||
return peer;
|
||||
@ -84,7 +84,7 @@ export const connectPeer = (req, res, next) => {
|
||||
peersNodeIds = peersNodeIds.substring(1);
|
||||
return getFilteredNodes(req.session.selectedNode, peersNodeIds).then((peersWithAlias) => {
|
||||
let foundPeer = null;
|
||||
body === null || body === void 0 ? void 0 : body.map((peer) => {
|
||||
body?.map((peer) => {
|
||||
foundPeer = peersWithAlias.find((peerWithAlias) => peer.nodeId === peerWithAlias.nodeId);
|
||||
peer.alias = foundPeer ? foundPeer.alias : peer.nodeId.substring(0, 20);
|
||||
return peer;
|
||||
|
@ -45,9 +45,8 @@ export class ECLWebSocketClient {
|
||||
}
|
||||
};
|
||||
this.connectWithClient = (eclWsClt) => {
|
||||
var _a;
|
||||
this.logger.log({ selectedNode: eclWsClt.selectedNode, level: 'INFO', fileName: 'ECLWebSocket', msg: 'Connecting to the Eclair\'s Websocket Server..' });
|
||||
const UpdatedLNServerURL = (_a = (eclWsClt.selectedNode.ln_server_url)) === null || _a === void 0 ? void 0 : _a.replace(/^http/, 'ws');
|
||||
const UpdatedLNServerURL = (eclWsClt.selectedNode.ln_server_url)?.replace(/^http/, 'ws');
|
||||
const firstSubStrIndex = (UpdatedLNServerURL.indexOf('//') + 2);
|
||||
const WS_LINK = UpdatedLNServerURL.slice(0, firstSubStrIndex) + ':' + eclWsClt.selectedNode.ln_api_password + '@' + UpdatedLNServerURL.slice(firstSubStrIndex) + '/ws';
|
||||
eclWsClt.webSocketClient = new WebSocket(WS_LINK);
|
||||
|
@ -28,10 +28,9 @@ export const getAllChannels = (req, res, next) => {
|
||||
let remote = 0;
|
||||
let total = 0;
|
||||
request(options).then((body) => {
|
||||
var _a;
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Channels', msg: 'Channels List Received', data: body });
|
||||
if (body.channels) {
|
||||
return Promise.all((_a = body.channels) === null || _a === void 0 ? void 0 : _a.map((channel) => {
|
||||
return Promise.all(body.channels?.map((channel) => {
|
||||
local = (channel.local_balance) ? +channel.local_balance : 0;
|
||||
remote = (channel.remote_balance) ? +channel.remote_balance : 0;
|
||||
total = local + remote;
|
||||
@ -64,22 +63,21 @@ export const getPendingChannels = (req, res, next) => {
|
||||
options.url = req.session.selectedNode.ln_server_url + '/v1/channels/pending';
|
||||
options.qs = req.query;
|
||||
request(options).then((body) => {
|
||||
var _a, _b, _c, _d;
|
||||
if (!body.total_limbo_balance) {
|
||||
body.total_limbo_balance = 0;
|
||||
}
|
||||
const promises = [];
|
||||
if (body.pending_open_channels && body.pending_open_channels.length > 0) {
|
||||
(_a = body.pending_open_channels) === null || _a === void 0 ? void 0 : _a.map((channel) => promises.push(getAliasForChannel(req.session.selectedNode, channel.channel)));
|
||||
body.pending_open_channels?.map((channel) => promises.push(getAliasForChannel(req.session.selectedNode, channel.channel)));
|
||||
}
|
||||
if (body.pending_force_closing_channels && body.pending_force_closing_channels.length > 0) {
|
||||
(_b = body.pending_force_closing_channels) === null || _b === void 0 ? void 0 : _b.map((channel) => promises.push(getAliasForChannel(req.session.selectedNode, channel.channel)));
|
||||
body.pending_force_closing_channels?.map((channel) => promises.push(getAliasForChannel(req.session.selectedNode, channel.channel)));
|
||||
}
|
||||
if (body.pending_closing_channels && body.pending_closing_channels.length > 0) {
|
||||
(_c = body.pending_closing_channels) === null || _c === void 0 ? void 0 : _c.map((channel) => promises.push(getAliasForChannel(req.session.selectedNode, channel.channel)));
|
||||
body.pending_closing_channels?.map((channel) => promises.push(getAliasForChannel(req.session.selectedNode, channel.channel)));
|
||||
}
|
||||
if (body.waiting_close_channels && body.waiting_close_channels.length > 0) {
|
||||
(_d = body.waiting_close_channels) === null || _d === void 0 ? void 0 : _d.map((channel) => promises.push(getAliasForChannel(req.session.selectedNode, channel.channel)));
|
||||
body.waiting_close_channels?.map((channel) => promises.push(getAliasForChannel(req.session.selectedNode, channel.channel)));
|
||||
}
|
||||
return Promise.all(promises).then((values) => {
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Pending Channels List Received', data: body });
|
||||
@ -103,9 +101,8 @@ export const getClosedChannels = (req, res, next) => {
|
||||
options.url = req.session.selectedNode.ln_server_url + '/v1/channels/closed';
|
||||
options.qs = req.query;
|
||||
request(options).then((body) => {
|
||||
var _a;
|
||||
if (body.channels && body.channels.length > 0) {
|
||||
return Promise.all((_a = body.channels) === null || _a === void 0 ? void 0 : _a.map((channel) => {
|
||||
return Promise.all(body.channels?.map((channel) => {
|
||||
channel.close_type = (!channel.close_type) ? 'COOPERATIVE_CLOSE' : channel.close_type;
|
||||
return getAliasForChannel(req.session.selectedNode, channel);
|
||||
})).then((values) => {
|
||||
@ -193,7 +190,6 @@ export const postTransactions = (req, res, next) => {
|
||||
});
|
||||
};
|
||||
export const closeChannel = (req, res, next) => {
|
||||
var _a;
|
||||
try {
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Channels', msg: 'Closing Channel..' });
|
||||
if (!req.session.selectedNode) {
|
||||
@ -204,7 +200,7 @@ export const closeChannel = (req, res, next) => {
|
||||
if (options.error) {
|
||||
return res.status(options.statusCode).json({ message: options.message, error: options.error });
|
||||
}
|
||||
const channelpoint = (_a = req.params.channelPoint) === null || _a === void 0 ? void 0 : _a.replace(':', '/');
|
||||
const channelpoint = req.params.channelPoint?.replace(':', '/');
|
||||
options.url = req.session.selectedNode.ln_server_url + '/v1/channels/' + channelpoint + '?force=' + req.query.force;
|
||||
if (req.query.target_conf) {
|
||||
options.url = options.url + '&target_conf=' + req.query.target_conf;
|
||||
|
@ -16,13 +16,12 @@ function getFilesList(channelBackupPath, callback) {
|
||||
}
|
||||
if (files && files.length > 0) {
|
||||
files.forEach((file) => {
|
||||
var _a;
|
||||
if (!file.includes('.restored')) {
|
||||
if (file.toLowerCase() === 'channel-all.bak' || file.toLowerCase() === 'backup-channel-all.bak') {
|
||||
all_restore_exists = true;
|
||||
}
|
||||
else {
|
||||
files_list.push({ channel_point: (_a = file.substring(8, file.length - 4)) === null || _a === void 0 ? void 0 : _a.replace('-', ':') });
|
||||
files_list.push({ channel_point: file.substring(8, file.length - 4)?.replace('-', ':') });
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -32,7 +31,6 @@ function getFilesList(channelBackupPath, callback) {
|
||||
});
|
||||
}
|
||||
export const getBackup = (req, res, next) => {
|
||||
var _a, _b;
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'ChannelBackup', msg: 'Getting Channel Backup..' });
|
||||
options = common.getOptions(req);
|
||||
if (options.error) {
|
||||
@ -46,9 +44,9 @@ export const getBackup = (req, res, next) => {
|
||||
options.url = req.session.selectedNode.ln_server_url + '/v1/channels/backup';
|
||||
}
|
||||
else {
|
||||
channel_backup_file = req.session.selectedNode.channel_backup_path + sep + 'channel-' + ((_a = req.params.channelPoint) === null || _a === void 0 ? void 0 : _a.replace(':', '-')) + '.bak';
|
||||
channel_backup_file = req.session.selectedNode.channel_backup_path + sep + 'channel-' + req.params.channelPoint?.replace(':', '-') + '.bak';
|
||||
message = 'Channel Backup Successful.';
|
||||
const channelpoint = (_b = req.params.channelPoint) === null || _b === void 0 ? void 0 : _b.replace(':', '/');
|
||||
const channelpoint = req.params.channelPoint?.replace(':', '/');
|
||||
options.url = req.session.selectedNode.ln_server_url + '/v1/channels/backup/' + channelpoint;
|
||||
const exists = fs.existsSync(channel_backup_file);
|
||||
if (exists) {
|
||||
@ -83,7 +81,6 @@ export const getBackup = (req, res, next) => {
|
||||
});
|
||||
};
|
||||
export const postBackupVerify = (req, res, next) => {
|
||||
var _a;
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'ChannelBackup', msg: 'Verifying Channel Backup..' });
|
||||
options = common.getOptions(req);
|
||||
if (options.error) {
|
||||
@ -119,7 +116,7 @@ export const postBackupVerify = (req, res, next) => {
|
||||
}
|
||||
else {
|
||||
message = 'Channel Verify Successful.';
|
||||
channel_verify_file = req.session.selectedNode.channel_backup_path + sep + 'channel-' + ((_a = req.params.channelPoint) === null || _a === void 0 ? void 0 : _a.replace(':', '-')) + '.bak';
|
||||
channel_verify_file = req.session.selectedNode.channel_backup_path + sep + 'channel-' + req.params.channelPoint?.replace(':', '-') + '.bak';
|
||||
const exists = fs.existsSync(channel_verify_file);
|
||||
if (exists) {
|
||||
verify_backup = fs.readFileSync(channel_verify_file, 'utf-8');
|
||||
@ -144,7 +141,6 @@ export const postBackupVerify = (req, res, next) => {
|
||||
}
|
||||
};
|
||||
export const postRestore = (req, res, next) => {
|
||||
var _a;
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'ChannelBackup', msg: 'Restoring Channel Backup..' });
|
||||
options = common.getOptions(req);
|
||||
if (options.error) {
|
||||
@ -192,7 +188,7 @@ export const postRestore = (req, res, next) => {
|
||||
}
|
||||
else {
|
||||
message = 'Channel Restore Successful.';
|
||||
channel_restore_file = req.session.selectedNode.channel_backup_path + sep + 'restore' + sep + 'channel-' + ((_a = req.params.channelPoint) === null || _a === void 0 ? void 0 : _a.replace(':', '-')) + '.bak';
|
||||
channel_restore_file = req.session.selectedNode.channel_backup_path + sep + 'restore' + sep + 'channel-' + req.params.channelPoint?.replace(':', '-') + '.bak';
|
||||
const exists = fs.existsSync(channel_restore_file);
|
||||
if (exists) {
|
||||
restore_backup = fs.readFileSync(channel_restore_file, 'utf-8');
|
||||
|
@ -21,11 +21,10 @@ export const getFees = (req, res, next) => {
|
||||
const week_start_time = current_time - 604800;
|
||||
const day_start_time = current_time - 86400;
|
||||
return getAllForwardingEvents(req, month_start_time, current_time, 0, 'fees', (history) => {
|
||||
var _a, _b, _c;
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Forwarding History Received', data: history });
|
||||
const daily_sum = (_a = history.forwarding_events) === null || _a === void 0 ? void 0 : _a.reduce((acc, curr) => ((curr.timestamp >= day_start_time) ? [(acc[0] + 1), (acc[1] + +curr.fee_msat)] : acc), [0, 0]);
|
||||
const weekly_sum = (_b = history.forwarding_events) === null || _b === void 0 ? void 0 : _b.reduce((acc, curr) => ((curr.timestamp >= week_start_time) ? [(acc[0] + 1), (acc[1] + +curr.fee_msat)] : acc), [0, 0]);
|
||||
const monthly_sum = (_c = history.forwarding_events) === null || _c === void 0 ? void 0 : _c.reduce((acc, curr) => [(acc[0] + 1), (acc[1] + +curr.fee_msat)], [0, 0]);
|
||||
const daily_sum = history.forwarding_events?.reduce((acc, curr) => ((curr.timestamp >= day_start_time) ? [(acc[0] + 1), (acc[1] + +curr.fee_msat)] : acc), [0, 0]);
|
||||
const weekly_sum = history.forwarding_events?.reduce((acc, curr) => ((curr.timestamp >= week_start_time) ? [(acc[0] + 1), (acc[1] + +curr.fee_msat)] : acc), [0, 0]);
|
||||
const monthly_sum = history.forwarding_events?.reduce((acc, curr) => [(acc[0] + 1), (acc[1] + +curr.fee_msat)], [0, 0]);
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Daily Sum (Transactions, Fee)', data: daily_sum });
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Weekly Sum (Transactions, Fee)', data: weekly_sum });
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Fees', msg: 'Monthly Sum (Transactions, Fee)', data: monthly_sum });
|
||||
|
@ -9,7 +9,6 @@ const common = Common;
|
||||
const lndWsClient = LNDWSClient;
|
||||
const databaseService = Database;
|
||||
export const getInfo = (req, res, next) => {
|
||||
var _a;
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'GetInfo', msg: 'Getting LND Node Information..' });
|
||||
common.logEnvVariables(req);
|
||||
common.setOptions(req);
|
||||
@ -26,7 +25,7 @@ export const getInfo = (req, res, next) => {
|
||||
return res.status(err.statusCode).json({ message: err.message, error: err.error });
|
||||
}
|
||||
else {
|
||||
(_a = common.nodes) === null || _a === void 0 ? void 0 : _a.map((node) => {
|
||||
common.nodes?.map((node) => {
|
||||
if (node.ln_implementation === 'LND') {
|
||||
common.getAllNodeAllChannelBackup(node);
|
||||
}
|
||||
|
@ -84,13 +84,11 @@ export const getQueryRoutes = (req, res, next) => {
|
||||
}
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Query Routes URL', data: options.url });
|
||||
request(options).then((body) => {
|
||||
var _a;
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Graph', msg: 'Query Routes Received', data: body });
|
||||
if (body.routes && body.routes.length && body.routes.length > 0 && body.routes[0].hops && body.routes[0].hops.length && body.routes[0].hops.length > 0) {
|
||||
return Promise.all((_a = body.routes[0].hops) === null || _a === void 0 ? void 0 : _a.map((hop) => getAliasFromPubkey(req.session.selectedNode, hop.pub_key))).
|
||||
return Promise.all(body.routes[0].hops?.map((hop) => getAliasFromPubkey(req.session.selectedNode, hop.pub_key))).
|
||||
then((values) => {
|
||||
var _a;
|
||||
(_a = body.routes[0].hops) === null || _a === void 0 ? void 0 : _a.map((hop, i) => {
|
||||
body.routes[0].hops?.map((hop, i) => {
|
||||
hop.hop_sequence = i + 1;
|
||||
hop.pubkey_alias = values[i];
|
||||
return hop;
|
||||
@ -150,7 +148,7 @@ export const getAliasesForPubkeys = (req, res, next) => {
|
||||
}
|
||||
if (req.query.pubkeys) {
|
||||
const pubkeyArr = req.query.pubkeys.split(',');
|
||||
return Promise.all(pubkeyArr === null || pubkeyArr === void 0 ? void 0 : pubkeyArr.map((pubkey) => getAliasFromPubkey(req.session.selectedNode, pubkey))).
|
||||
return Promise.all(pubkeyArr?.map((pubkey) => getAliasFromPubkey(req.session.selectedNode, pubkey))).
|
||||
then((values) => {
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Graph', msg: 'Node Alias', data: values });
|
||||
res.status(200).json(values);
|
||||
|
@ -34,7 +34,7 @@ export const decodePayments = (req, res, next) => {
|
||||
}
|
||||
if (req.body.payments) {
|
||||
const paymentsArr = req.body.payments.split(',');
|
||||
return Promise.all(paymentsArr === null || paymentsArr === void 0 ? void 0 : paymentsArr.map((payment) => decodePaymentFromPaymentRequest(req.session.selectedNode, payment))).
|
||||
return Promise.all(paymentsArr?.map((payment) => decodePaymentFromPaymentRequest(req.session.selectedNode, payment))).
|
||||
then((values) => {
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'PayRequest', msg: 'Payment List Decoded', data: values });
|
||||
res.status(200).json(values);
|
||||
|
@ -25,7 +25,7 @@ export const getPeers = (req, res, next) => {
|
||||
request(options).then((body) => {
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'Peers', msg: 'Peers List Received', data: body });
|
||||
const peers = !body.peers ? [] : body.peers;
|
||||
return Promise.all(peers === null || peers === void 0 ? void 0 : peers.map((peer) => getAliasForPeers(req.session.selectedNode, peer))).then((values) => {
|
||||
return Promise.all(peers?.map((peer) => getAliasForPeers(req.session.selectedNode, peer))).then((values) => {
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Sorted Peers List Received', data: body.peers });
|
||||
res.status(200).json(body.peers);
|
||||
});
|
||||
@ -50,7 +50,7 @@ export const postPeer = (req, res, next) => {
|
||||
options.url = req.session.selectedNode.ln_server_url + '/v1/peers';
|
||||
request(options).then((body) => {
|
||||
const peers = (!body.peers) ? [] : body.peers;
|
||||
return Promise.all(peers === null || peers === void 0 ? void 0 : peers.map((peer) => getAliasForPeers(req.session.selectedNode, peer))).then((values) => {
|
||||
return Promise.all(peers?.map((peer) => getAliasForPeers(req.session.selectedNode, peer))).then((values) => {
|
||||
if (body.peers) {
|
||||
body.peers = common.newestOnTop(body.peers, 'pub_key', req.body.pubkey);
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'Peers', msg: 'Peers List after Connect Received', data: body });
|
||||
|
@ -42,8 +42,7 @@ export class LNDWebSocketClient {
|
||||
});
|
||||
};
|
||||
this.subscribeToInvoice = (options, selectedNode, rHash) => {
|
||||
var _a;
|
||||
rHash = (_a = rHash === null || rHash === void 0 ? void 0 : rHash.replace(/\+/g, '-')) === null || _a === void 0 ? void 0 : _a.replace(/[/]/g, '_');
|
||||
rHash = rHash?.replace(/\+/g, '-')?.replace(/[/]/g, '_');
|
||||
this.logger.log({ selectedNode: selectedNode, level: 'INFO', fileName: 'WebSocketClient', msg: 'Subscribing to Invoice ' + rHash + ' ..' });
|
||||
options.url = selectedNode.ln_server_url + '/v2/invoices/subscribe/' + rHash;
|
||||
request(options).then((msg) => {
|
||||
|
@ -231,7 +231,6 @@ export const getConfig = (req, res, next) => {
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'RTLConf', msg: 'Node Type', data: req.params.nodeType });
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'RTLConf', msg: 'File Path', data: confFile });
|
||||
fs.readFile(confFile, 'utf8', (errRes, data) => {
|
||||
var _a;
|
||||
if (errRes) {
|
||||
const errMsg = 'Reading Config Error';
|
||||
const err = common.handleError({ statusCode: 500, message: errMsg, error: errRes }, 'RTLConf', errMsg, req.session.selectedNode);
|
||||
@ -244,7 +243,7 @@ export const getConfig = (req, res, next) => {
|
||||
}
|
||||
else {
|
||||
fileFormat = 'INI';
|
||||
data = data === null || data === void 0 ? void 0 : data.replace('color=#', 'color=');
|
||||
data = data?.replace('color=#', 'color=');
|
||||
jsonConfig = ini.parse(data);
|
||||
if (jsonConfig['Application Options'] && jsonConfig['Application Options'].color) {
|
||||
jsonConfig['Application Options'].color = '#' + jsonConfig['Application Options'].color;
|
||||
@ -255,16 +254,15 @@ export const getConfig = (req, res, next) => {
|
||||
}
|
||||
}
|
||||
jsonConfig = maskPasswords(jsonConfig);
|
||||
const responseJSON = (fileFormat === 'JSON') ? jsonConfig : (_a = ini.stringify(jsonConfig)) === null || _a === void 0 ? void 0 : _a.replace('color=\\#', 'color=#');
|
||||
const responseJSON = (fileFormat === 'JSON') ? jsonConfig : ini.stringify(jsonConfig)?.replace('color=\\#', 'color=#');
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Configuration File Data Received', data: responseJSON });
|
||||
res.status(200).json({ format: fileFormat, data: responseJSON });
|
||||
}
|
||||
});
|
||||
};
|
||||
export const getFile = (req, res, next) => {
|
||||
var _a;
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'INFO', fileName: 'RTLConf', msg: 'Getting File..' });
|
||||
const file = req.query.path ? req.query.path : (req.session.selectedNode.channel_backup_path + sep + 'channel-' + ((_a = req.query.channel) === null || _a === void 0 ? void 0 : _a.replace(':', '-')) + '.bak');
|
||||
const file = req.query.path ? req.query.path : (req.session.selectedNode.channel_backup_path + sep + 'channel-' + req.query.channel?.replace(':', '-') + '.bak');
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'RTLConf', msg: 'Channel Point', data: req.query.channel });
|
||||
logger.log({ selectedNode: req.session.selectedNode, level: 'DEBUG', fileName: 'RTLConf', msg: 'File Path', data: file });
|
||||
fs.readFile(file, 'utf8', (errRes, data) => {
|
||||
|
@ -133,7 +133,7 @@ export var CollectionsEnum;
|
||||
CollectionsEnum["OFFERS"] = "Offers";
|
||||
CollectionsEnum["PAGE_SETTINGS"] = "PageSettings";
|
||||
})(CollectionsEnum || (CollectionsEnum = {}));
|
||||
export const CollectionFieldsEnum = Object.assign(Object.assign(Object.assign({}, OfferFieldsEnum), PageSettingsFieldsEnum), TableSettingsFieldsEnum);
|
||||
export const CollectionFieldsEnum = { ...OfferFieldsEnum, ...PageSettingsFieldsEnum, ...TableSettingsFieldsEnum };
|
||||
export const LNDCollection = [CollectionsEnum.PAGE_SETTINGS];
|
||||
export const ECLCollection = [CollectionsEnum.PAGE_SETTINGS];
|
||||
export const CLNCollection = [CollectionsEnum.PAGE_SETTINGS, CollectionsEnum.OFFERS];
|
||||
|
@ -18,16 +18,14 @@ export const isAuthenticated = (req, res, next) => {
|
||||
}
|
||||
};
|
||||
export const verifyWSUser = (info, next) => {
|
||||
var _a;
|
||||
const headers = JSON.parse(JSON.stringify(info.req.headers));
|
||||
const protocols = !info.req.headers['sec-websocket-protocol'] ? [] : (_a = info.req.headers['sec-websocket-protocol'].split(',')) === null || _a === void 0 ? void 0 : _a.map((s) => s.trim());
|
||||
const protocols = !info.req.headers['sec-websocket-protocol'] ? [] : info.req.headers['sec-websocket-protocol'].split(',')?.map((s) => s.trim());
|
||||
const jwToken = (protocols && protocols.length > 0) ? protocols[0] : '';
|
||||
if (!jwToken || jwToken === '') {
|
||||
next(false, 401, 'Authentication Failed! Please Login First!');
|
||||
}
|
||||
else {
|
||||
jwt.verify(jwToken, common.secret_key, (verificationErr) => {
|
||||
var _a, _b, _c;
|
||||
if (verificationErr) {
|
||||
next(false, 401, 'Authentication Failed! Please Login First!');
|
||||
}
|
||||
@ -42,7 +40,7 @@ export const verifyWSUser = (info, next) => {
|
||||
}
|
||||
let cookies = null;
|
||||
try {
|
||||
cookies = '{"' + ((_c = (_b = (_a = headers.cookie) === null || _a === void 0 ? void 0 : _a.replace(/ /g, '')) === null || _b === void 0 ? void 0 : _b.replace(/;/g, '","').trim()) === null || _c === void 0 ? void 0 : _c.replace(/[=]/g, '":"')) + '"}';
|
||||
cookies = '{"' + headers.cookie?.replace(/ /g, '')?.replace(/;/g, '","').trim()?.replace(/[=]/g, '":"') + '"}';
|
||||
updatedReq['cookies'] = JSON.parse(cookies);
|
||||
}
|
||||
catch (err) {
|
||||
|
@ -201,18 +201,17 @@ export class CommonService {
|
||||
};
|
||||
this.newestOnTop = (array, key, value) => {
|
||||
const newlyAddedRecord = array.splice(array.findIndex((item) => item[key] === value), 1);
|
||||
array === null || array === void 0 ? void 0 : array.unshift(newlyAddedRecord[0]);
|
||||
array?.unshift(newlyAddedRecord[0]);
|
||||
return array;
|
||||
};
|
||||
this.camelCase = (str) => { var _a, _b; return (_b = (_a = str === null || str === void 0 ? void 0 : str.replace(/(?:^\w|[A-Z]|\b\w)/g, (word, index) => (word.toUpperCase()))) === null || _a === void 0 ? void 0 : _a.replace(/\s+/g, '')) === null || _b === void 0 ? void 0 : _b.replace(/-/g, ' '); };
|
||||
this.camelCase = (str) => str?.replace(/(?:^\w|[A-Z]|\b\w)/g, (word, index) => (word.toUpperCase()))?.replace(/\s+/g, '')?.replace(/-/g, ' ');
|
||||
this.titleCase = (str) => {
|
||||
var _a, _b;
|
||||
if (str.indexOf('!\n') > 0 || str.indexOf('.\n') > 0) {
|
||||
return (_a = str.split('\n')) === null || _a === void 0 ? void 0 : _a.reduce((accumulator, currentStr) => accumulator + currentStr.charAt(0).toUpperCase() + currentStr.substring(1).toLowerCase() + '\n', '');
|
||||
return str.split('\n')?.reduce((accumulator, currentStr) => accumulator + currentStr.charAt(0).toUpperCase() + currentStr.substring(1).toLowerCase() + '\n', '');
|
||||
}
|
||||
else {
|
||||
if (str.indexOf(' ') > 0) {
|
||||
return (_b = str.split(' ')) === null || _b === void 0 ? void 0 : _b.reduce((accumulator, currentStr) => accumulator + currentStr.charAt(0).toUpperCase() + currentStr.substring(1).toLowerCase() + ' ', '');
|
||||
return str.split(' ')?.reduce((accumulator, currentStr) => accumulator + currentStr.charAt(0).toUpperCase() + currentStr.substring(1).toLowerCase() + ' ', '');
|
||||
}
|
||||
else {
|
||||
return str.charAt(0).toUpperCase() + str.substring(1).toLowerCase();
|
||||
@ -345,9 +344,8 @@ export class CommonService {
|
||||
}
|
||||
};
|
||||
this.createDirectory = (directoryName) => {
|
||||
var _a;
|
||||
const initDir = isAbsolute(directoryName) ? sep : '';
|
||||
(_a = directoryName.split(sep)) === null || _a === void 0 ? void 0 : _a.reduce((parentDir, childDir) => {
|
||||
directoryName.split(sep)?.reduce((parentDir, childDir) => {
|
||||
const curDir = resolve(parentDir, childDir);
|
||||
try {
|
||||
if (!fs.existsSync(curDir)) {
|
||||
@ -416,9 +414,8 @@ export class CommonService {
|
||||
});
|
||||
};
|
||||
this.isVersionCompatible = (currentVersion, checkVersion) => {
|
||||
var _a;
|
||||
if (currentVersion) {
|
||||
const versionsArr = ((_a = currentVersion.trim()) === null || _a === void 0 ? void 0 : _a.replace('v', '').split('-')[0].split('.')) || [];
|
||||
const versionsArr = currentVersion.trim()?.replace('v', '').split('-')[0].split('.') || [];
|
||||
const checkVersionsArr = checkVersion.split('.');
|
||||
return (+versionsArr[0] > +checkVersionsArr[0]) ||
|
||||
(+versionsArr[0] === +checkVersionsArr[0] && +versionsArr[1] > +checkVersionsArr[1]) ||
|
||||
|
@ -31,7 +31,6 @@ export class RTLWebSocketServer {
|
||||
this.logger.log({ selectedNode: this.common.initSelectedNode, level: 'INFO', fileName: 'WebSocketServer', msg: 'Connecting Websocket Server..' });
|
||||
this.webSocketServer = new WebSocketServer({ noServer: true, path: this.common.baseHref + '/api/ws', verifyClient: (process.env.NODE_ENV === 'development') ? null : verifyWSUser });
|
||||
httpServer.on('upgrade', (request, socket, head) => {
|
||||
var _a;
|
||||
if (request.headers['upgrade'] !== 'websocket') {
|
||||
socket.end('HTTP/1.1 400 Bad Request');
|
||||
return;
|
||||
@ -39,7 +38,7 @@ export class RTLWebSocketServer {
|
||||
const acceptKey = request.headers['sec-websocket-key'];
|
||||
const hash = this.generateAcceptValue(acceptKey);
|
||||
const responseHeaders = ['HTTP/1.1 101 Web Socket Protocol Handshake', 'Upgrade: WebSocket', 'Connection: Upgrade', 'Sec-WebSocket-Accept: ' + hash];
|
||||
const protocols = !request.headers['sec-websocket-protocol'] ? [] : (_a = request.headers['sec-websocket-protocol'].split(',')) === null || _a === void 0 ? void 0 : _a.map((s) => s.trim());
|
||||
const protocols = !request.headers['sec-websocket-protocol'] ? [] : request.headers['sec-websocket-protocol'].split(',')?.map((s) => s.trim());
|
||||
if (protocols.includes('json')) {
|
||||
responseHeaders.push('Sec-WebSocket-Protocol: json');
|
||||
}
|
||||
@ -53,8 +52,7 @@ export class RTLWebSocketServer {
|
||||
this.webSocketServer.emit('connection', websocket, request);
|
||||
};
|
||||
this.mountEventsOnConnection = (websocket, request) => {
|
||||
var _a;
|
||||
const protocols = !request.headers['sec-websocket-protocol'] ? [] : (_a = request.headers['sec-websocket-protocol'].split(',')) === null || _a === void 0 ? void 0 : _a.map((s) => s.trim());
|
||||
const protocols = !request.headers['sec-websocket-protocol'] ? [] : request.headers['sec-websocket-protocol'].split(',')?.map((s) => s.trim());
|
||||
const cookies = request.headers.cookie ? parse(request.headers.cookie) : null;
|
||||
websocket.clientId = Date.now();
|
||||
websocket.isAlive = true;
|
||||
|
5477
package-lock.json
generated
5477
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
24
package.json
24
package.json
@ -45,25 +45,25 @@
|
||||
"zone.js": "~0.11.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@angular-devkit/build-angular": "~13.3.5",
|
||||
"@angular-devkit/build-angular": "^14.2.10",
|
||||
"@angular-eslint/builder": "^12.2.1",
|
||||
"@angular-eslint/eslint-plugin": "13.0.1",
|
||||
"@angular-eslint/eslint-plugin-template": "13.0.1",
|
||||
"@angular-eslint/schematics": "13.0.1",
|
||||
"@angular-eslint/template-parser": "13.0.1",
|
||||
"@angular/animations": "~13.3.0",
|
||||
"@angular/animations": "^14.2.12",
|
||||
"@angular/cdk": "^13.3.9",
|
||||
"@angular/cli": "~13.3.5",
|
||||
"@angular/common": "~13.3.0",
|
||||
"@angular/compiler": "~13.3.0",
|
||||
"@angular/compiler-cli": "~13.3.0",
|
||||
"@angular/core": "~13.3.0",
|
||||
"@angular/cli": "^14.2.10",
|
||||
"@angular/common": "^14.2.12",
|
||||
"@angular/compiler": "^14.2.12",
|
||||
"@angular/compiler-cli": "^14.2.12",
|
||||
"@angular/core": "^14.2.12",
|
||||
"@angular/flex-layout": "^13.0.0-beta.38",
|
||||
"@angular/forms": "~13.3.0",
|
||||
"@angular/forms": "^14.2.12",
|
||||
"@angular/material": "^13.3.9",
|
||||
"@angular/platform-browser": "~13.3.0",
|
||||
"@angular/platform-browser-dynamic": "~13.3.0",
|
||||
"@angular/router": "~13.3.0",
|
||||
"@angular/platform-browser": "^14.2.12",
|
||||
"@angular/platform-browser-dynamic": "^14.2.12",
|
||||
"@angular/router": "^14.2.12",
|
||||
"@fortawesome/angular-fontawesome": "^0.10.2",
|
||||
"@fortawesome/fontawesome-svg-core": "^6.1.2",
|
||||
"@fortawesome/free-regular-svg-icons": "^6.1.2",
|
||||
@ -92,4 +92,4 @@
|
||||
"ts-node": "~10.9.1",
|
||||
"typescript": "~4.6.2"
|
||||
}
|
||||
}
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
import { Component, OnInit, OnDestroy, ViewChild, Inject } from '@angular/core';
|
||||
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
||||
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
|
||||
import { DecimalPipe } from '@angular/common';
|
||||
import { Subject, combineLatest } from 'rxjs';
|
||||
import { takeUntil, filter, take } from 'rxjs/operators';
|
||||
@ -70,9 +70,9 @@ export class CLNOnChainSendModalComponent implements OnInit, OnDestroy {
|
||||
public sendFundFormLabel = 'Sweep funds';
|
||||
public confirmFormLabel = 'Confirm sweep';
|
||||
public amountError = 'Amount is Required.';
|
||||
passwordFormGroup: FormGroup;
|
||||
sendFundFormGroup: FormGroup;
|
||||
confirmFormGroup: FormGroup;
|
||||
passwordFormGroup: UntypedFormGroup;
|
||||
sendFundFormGroup: UntypedFormGroup;
|
||||
confirmFormGroup: UntypedFormGroup;
|
||||
public screenSize = '';
|
||||
public screenSizeEnum = ScreenSizeEnum;
|
||||
private unSubs: Array<Subject<void>> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()];
|
||||
@ -85,7 +85,7 @@ export class CLNOnChainSendModalComponent implements OnInit, OnDestroy {
|
||||
private commonService: CommonService,
|
||||
private decimalPipe: DecimalPipe,
|
||||
private actions: Actions,
|
||||
private formBuilder: FormBuilder,
|
||||
private formBuilder: UntypedFormBuilder,
|
||||
private rtlEffects: RTLEffects,
|
||||
private snackBar: MatSnackBar) {
|
||||
this.screenSize = this.commonService.getScreenSize();
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Component, OnInit, Inject, OnDestroy, ViewChild } from '@angular/core';
|
||||
import { FormControl } from '@angular/forms';
|
||||
import { UntypedFormControl } from '@angular/forms';
|
||||
import { DecimalPipe } from '@angular/common';
|
||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
||||
import { Subject, Observable } from 'rxjs';
|
||||
@ -26,7 +26,7 @@ import { SelNodeChild } from '../../../../shared/models/RTLconfig';
|
||||
export class CLNOpenChannelComponent implements OnInit, OnDestroy {
|
||||
|
||||
@ViewChild('form', { static: true }) form: any;
|
||||
public selectedPeer = new FormControl();
|
||||
public selectedPeer = new UntypedFormControl();
|
||||
public faExclamationTriangle = faExclamationTriangle;
|
||||
public alertTitle: string;
|
||||
public isCompatibleVersion = false;
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Component, OnInit, OnDestroy, ViewChild, Inject } from '@angular/core';
|
||||
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
|
||||
import { UntypedFormGroup, UntypedFormBuilder, Validators } from '@angular/forms';
|
||||
import { Subject } from 'rxjs';
|
||||
import { takeUntil, filter } from 'rxjs/operators';
|
||||
import { Store } from '@ngrx/store';
|
||||
@ -43,12 +43,12 @@ export class CLNConnectPeerComponent implements OnInit, OnDestroy {
|
||||
public channelFormLabel = 'Open Channel (Optional)';
|
||||
public screenSize = '';
|
||||
public screenSizeEnum = ScreenSizeEnum;
|
||||
peerFormGroup: FormGroup;
|
||||
channelFormGroup: FormGroup;
|
||||
statusFormGroup: FormGroup;
|
||||
peerFormGroup: UntypedFormGroup;
|
||||
channelFormGroup: UntypedFormGroup;
|
||||
statusFormGroup: UntypedFormGroup;
|
||||
private unSubs: Array<Subject<void>> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject()];
|
||||
|
||||
constructor(public dialogRef: MatDialogRef<CLNConnectPeerComponent>, @Inject(MAT_DIALOG_DATA) public data: CLNOpenChannelAlert, private store: Store<RTLState>, private formBuilder: FormBuilder, private actions: Actions, private logger: LoggerService, private commonService: CommonService) {
|
||||
constructor(public dialogRef: MatDialogRef<CLNConnectPeerComponent>, @Inject(MAT_DIALOG_DATA) public data: CLNOpenChannelAlert, private store: Store<RTLState>, private formBuilder: UntypedFormBuilder, private actions: Actions, private logger: LoggerService, private commonService: CommonService) {
|
||||
this.screenSize = this.commonService.getScreenSize();
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';
|
||||
import { FormControl } from '@angular/forms';
|
||||
import { UntypedFormControl } from '@angular/forms';
|
||||
import { Subject } from 'rxjs';
|
||||
import { takeUntil, filter } from 'rxjs/operators';
|
||||
import { Store } from '@ngrx/store';
|
||||
@ -22,7 +22,7 @@ import { peerLookup } from '../../store/ecl.actions';
|
||||
export class ECLLookupsComponent implements OnInit, OnDestroy {
|
||||
|
||||
@ViewChild('form', { static: true }) form: any;
|
||||
public lookupKeyCtrl = new FormControl();
|
||||
public lookupKeyCtrl = new UntypedFormControl();
|
||||
// Public lookupKey = '';
|
||||
public nodeLookupValue: LookupNode = {};
|
||||
public channelLookupValue = [];
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Component, OnInit, Inject, OnDestroy, ViewChild } from '@angular/core';
|
||||
import { FormControl } from '@angular/forms';
|
||||
import { UntypedFormControl } from '@angular/forms';
|
||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
||||
import { Subject, Observable } from 'rxjs';
|
||||
import { takeUntil, filter, startWith, map } from 'rxjs/operators';
|
||||
@ -25,7 +25,7 @@ export class ECLOpenChannelComponent implements OnInit, OnDestroy {
|
||||
|
||||
@ViewChild('form', { static: true }) form: any;
|
||||
public selNode: SelNodeChild | null = {};
|
||||
public selectedPeer = new FormControl();
|
||||
public selectedPeer = new UntypedFormControl();
|
||||
public faExclamationTriangle = faExclamationTriangle;
|
||||
public alertTitle: string;
|
||||
public peer: Peer | null;
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Component, OnInit, OnDestroy, ViewChild, Inject } from '@angular/core';
|
||||
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
|
||||
import { UntypedFormGroup, UntypedFormBuilder, Validators } from '@angular/forms';
|
||||
import { Subject } from 'rxjs';
|
||||
import { takeUntil, filter } from 'rxjs/operators';
|
||||
import { Store } from '@ngrx/store';
|
||||
@ -39,12 +39,12 @@ export class ECLConnectPeerComponent implements OnInit, OnDestroy {
|
||||
public channelConnectionError = '';
|
||||
public peerFormLabel = 'Peer Details';
|
||||
public channelFormLabel = 'Open Channel (Optional)';
|
||||
peerFormGroup: FormGroup;
|
||||
channelFormGroup: FormGroup;
|
||||
statusFormGroup: FormGroup;
|
||||
peerFormGroup: UntypedFormGroup;
|
||||
channelFormGroup: UntypedFormGroup;
|
||||
statusFormGroup: UntypedFormGroup;
|
||||
private unSubs: Array<Subject<void>> = [new Subject(), new Subject()];
|
||||
|
||||
constructor(public dialogRef: MatDialogRef<ECLConnectPeerComponent>, @Inject(MAT_DIALOG_DATA) public data: ECLOpenChannelAlert, private store: Store<RTLState>, private formBuilder: FormBuilder, private actions: Actions, private logger: LoggerService) { }
|
||||
constructor(public dialogRef: MatDialogRef<ECLConnectPeerComponent>, @Inject(MAT_DIALOG_DATA) public data: ECLOpenChannelAlert, private store: Store<RTLState>, private formBuilder: UntypedFormBuilder, private actions: Actions, private logger: LoggerService) { }
|
||||
|
||||
ngOnInit() {
|
||||
if (this.data.message) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Component, OnInit, OnDestroy, ViewChild, Inject } from '@angular/core';
|
||||
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
||||
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
|
||||
import { DecimalPipe } from '@angular/common';
|
||||
import { Subject } from 'rxjs';
|
||||
import { filter, takeUntil, take } from 'rxjs/operators';
|
||||
@ -62,9 +62,9 @@ export class OnChainSendModalComponent implements OnInit, OnDestroy {
|
||||
public sendFundFormLabel = 'Sweep funds';
|
||||
public confirmFormLabel = 'Confirm sweep';
|
||||
public amountError = 'Amount is Required.';
|
||||
passwordFormGroup: FormGroup;
|
||||
sendFundFormGroup: FormGroup;
|
||||
confirmFormGroup: FormGroup;
|
||||
passwordFormGroup: UntypedFormGroup;
|
||||
sendFundFormGroup: UntypedFormGroup;
|
||||
confirmFormGroup: UntypedFormGroup;
|
||||
private unSubs: Array<Subject<void>> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()];
|
||||
|
||||
constructor(
|
||||
@ -77,7 +77,7 @@ export class OnChainSendModalComponent implements OnInit, OnDestroy {
|
||||
private decimalPipe: DecimalPipe,
|
||||
private snackBar: MatSnackBar,
|
||||
private actions: Actions,
|
||||
private formBuilder: FormBuilder) { }
|
||||
private formBuilder: UntypedFormBuilder) { }
|
||||
|
||||
ngOnInit() {
|
||||
this.sweepAll = this.data.sweepAll;
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Component, OnInit, Inject, OnDestroy, ViewChild } from '@angular/core';
|
||||
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
||||
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
|
||||
import { DecimalPipe } from '@angular/common';
|
||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
||||
import { MatStepper } from '@angular/material/stepper';
|
||||
@ -50,9 +50,9 @@ export class ChannelRebalanceComponent implements OnInit, OnDestroy {
|
||||
public screenSize = '';
|
||||
public screenSizeEnum = ScreenSizeEnum;
|
||||
public animationDirection = 'forward';
|
||||
inputFormGroup: FormGroup;
|
||||
feeFormGroup: FormGroup;
|
||||
statusFormGroup: FormGroup;
|
||||
inputFormGroup: UntypedFormGroup;
|
||||
feeFormGroup: UntypedFormGroup;
|
||||
statusFormGroup: UntypedFormGroup;
|
||||
private unSubs: Array<Subject<void>> = [new Subject(), new Subject(), new Subject(), new Subject()];
|
||||
|
||||
constructor(
|
||||
@ -61,7 +61,7 @@ export class ChannelRebalanceComponent implements OnInit, OnDestroy {
|
||||
private logger: LoggerService,
|
||||
private store: Store<RTLState>,
|
||||
private actions: Actions,
|
||||
private formBuilder: FormBuilder,
|
||||
private formBuilder: UntypedFormBuilder,
|
||||
private decimalPipe: DecimalPipe,
|
||||
private commonService: CommonService) { }
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Component, OnInit, OnDestroy, Inject, ViewChild } from '@angular/core';
|
||||
import { FormControl } from '@angular/forms';
|
||||
import { UntypedFormControl } from '@angular/forms';
|
||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
||||
import { Subject, Observable } from 'rxjs';
|
||||
import { takeUntil, filter, startWith, map } from 'rxjs/operators';
|
||||
@ -24,9 +24,9 @@ import { lndNodeSettings } from '../../../store/lnd.selector';
|
||||
export class OpenChannelComponent implements OnInit, OnDestroy {
|
||||
|
||||
@ViewChild('form', { static: true }) form: any;
|
||||
public selectedPeer = new FormControl();
|
||||
public selectedPeer = new UntypedFormControl();
|
||||
public selNode: SelNodeChild | null = {};
|
||||
public amount = new FormControl();
|
||||
public amount = new UntypedFormControl();
|
||||
public faExclamationTriangle = faExclamationTriangle;
|
||||
public alertTitle: string;
|
||||
public peer: Peer | null;
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Component, OnInit, OnDestroy, ViewChild, Inject } from '@angular/core';
|
||||
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
|
||||
import { UntypedFormGroup, UntypedFormBuilder, Validators } from '@angular/forms';
|
||||
import { Subject } from 'rxjs';
|
||||
import { take, takeUntil, filter } from 'rxjs/operators';
|
||||
import { Store } from '@ngrx/store';
|
||||
@ -41,12 +41,12 @@ export class ConnectPeerComponent implements OnInit, OnDestroy {
|
||||
public channelConnectionError = '';
|
||||
public peerFormLabel = 'Peer Details';
|
||||
public channelFormLabel = 'Open Channel (Optional)';
|
||||
peerFormGroup: FormGroup;
|
||||
channelFormGroup: FormGroup;
|
||||
statusFormGroup: FormGroup;
|
||||
peerFormGroup: UntypedFormGroup;
|
||||
channelFormGroup: UntypedFormGroup;
|
||||
statusFormGroup: UntypedFormGroup;
|
||||
private unSubs: Array<Subject<void>> = [new Subject(), new Subject(), new Subject(), new Subject()];
|
||||
|
||||
constructor(public dialogRef: MatDialogRef<ConnectPeerComponent>, @Inject(MAT_DIALOG_DATA) public data: OpenChannelAlert, private store: Store<RTLState>, private lndEffects: LNDEffects, private formBuilder: FormBuilder, private actions: Actions, private logger: LoggerService) { }
|
||||
constructor(public dialogRef: MatDialogRef<ConnectPeerComponent>, @Inject(MAT_DIALOG_DATA) public data: OpenChannelAlert, private store: Store<RTLState>, private lndEffects: LNDEffects, private formBuilder: UntypedFormBuilder, private actions: Actions, private logger: LoggerService) { }
|
||||
|
||||
ngOnInit() {
|
||||
this.totalBalance = this.data.message?.balance || 0;
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';
|
||||
import { FormControl, NgModel } from '@angular/forms';
|
||||
import { UntypedFormControl, NgModel } from '@angular/forms';
|
||||
import { DecimalPipe } from '@angular/common';
|
||||
import { Subject } from 'rxjs';
|
||||
import { take, takeUntil, filter } from 'rxjs/operators';
|
||||
@ -38,7 +38,7 @@ export class LightningSendPaymentsComponent implements OnInit, OnDestroy {
|
||||
public showAdvanced = false;
|
||||
public activeChannels: Channel[] = [];
|
||||
public filteredMinAmtActvChannels: Channel[] = [];
|
||||
public selectedChannelCtrl = new FormControl();
|
||||
public selectedChannelCtrl = new UntypedFormControl();
|
||||
public feeLimit: number | null = null;
|
||||
public selFeeLimitType = FEE_LIMIT_TYPES[0];
|
||||
public feeLimitTypes = FEE_LIMIT_TYPES;
|
||||
|
@ -3,7 +3,7 @@ import { Router } from '@angular/router';
|
||||
import { Subject } from 'rxjs';
|
||||
import { takeUntil } from 'rxjs/operators';
|
||||
import { Store } from '@ngrx/store';
|
||||
import { FormBuilder, FormGroup, Validators, ValidatorFn, ValidationErrors } from '@angular/forms';
|
||||
import { UntypedFormBuilder, UntypedFormGroup, Validators, ValidatorFn, ValidationErrors } from '@angular/forms';
|
||||
import { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';
|
||||
import { MatStepper } from '@angular/material/stepper';
|
||||
|
||||
@ -12,13 +12,13 @@ import { RTLState } from '../../../store/rtl.state';
|
||||
import { updateSelectedNodeOptions } from '../../../store/rtl.actions';
|
||||
import { fetchInfoLND, genSeed, initWallet } from '../../store/lnd.actions';
|
||||
|
||||
export function matchedPasswords(control: FormGroup): ValidationErrors | null {
|
||||
export function matchedPasswords(control: UntypedFormGroup): ValidationErrors | null {
|
||||
const initWalletPassword = control.get('initWalletPassword');
|
||||
const initWalletConfirmPassword = control.get('initWalletConfirmPassword');
|
||||
return initWalletPassword && initWalletConfirmPassword && initWalletPassword.value !== initWalletConfirmPassword.value ? { unmatchedPasswords: true } : null;
|
||||
}
|
||||
|
||||
export function cipherSeedLength(control: FormGroup): ValidationErrors | null {
|
||||
export function cipherSeedLength(control: UntypedFormGroup): ValidationErrors | null {
|
||||
const cipherArr = control.value.toString().trim().split(',') || [];
|
||||
return cipherArr && cipherArr.length !== 24 ? { invalidCipher: true } : null;
|
||||
}
|
||||
@ -37,14 +37,14 @@ export class InitializeWalletComponent implements OnInit, OnDestroy {
|
||||
public insecureLND = false;
|
||||
public genSeedResponse: string[] = [];
|
||||
public initWalletResponse = '';
|
||||
passwordFormGroup: FormGroup;
|
||||
cipherFormGroup: FormGroup;
|
||||
passphraseFormGroup: FormGroup;
|
||||
passwordFormGroup: UntypedFormGroup;
|
||||
cipherFormGroup: UntypedFormGroup;
|
||||
passphraseFormGroup: UntypedFormGroup;
|
||||
proceed = true;
|
||||
warnRes = false;
|
||||
private unsubs = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject()];
|
||||
|
||||
constructor(private store: Store<RTLState>, private formBuilder: FormBuilder, private lndEffects: LNDEffects) { }
|
||||
constructor(private store: Store<RTLState>, private formBuilder: UntypedFormBuilder, private lndEffects: LNDEffects) { }
|
||||
|
||||
ngOnInit() {
|
||||
this.passwordFormGroup = this.formBuilder.group({
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Component, OnInit, OnDestroy, Inject, ViewChild } from '@angular/core';
|
||||
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
|
||||
import { UntypedFormGroup, UntypedFormBuilder, Validators } from '@angular/forms';
|
||||
import { Subject } from 'rxjs';
|
||||
import { take } from 'rxjs/operators';
|
||||
import { Store } from '@ngrx/store';
|
||||
@ -38,20 +38,20 @@ export class TwoFactorAuthComponent implements OnInit, OnDestroy {
|
||||
public secretFormLabel = 'Scan or copy the secret';
|
||||
public tokenFormLabel = 'Verify your authentication is working';
|
||||
public disableFormLabel = 'Disable two factor authentication';
|
||||
passwordFormGroup: FormGroup = this.formBuilder.group({
|
||||
passwordFormGroup: UntypedFormGroup = this.formBuilder.group({
|
||||
hiddenPassword: ['', [Validators.required]],
|
||||
password: ['', [Validators.required]]
|
||||
});
|
||||
secretFormGroup: FormGroup = this.formBuilder.group({
|
||||
secretFormGroup: UntypedFormGroup = this.formBuilder.group({
|
||||
secret: [{ value: '', disabled: true }, Validators.required]
|
||||
});
|
||||
tokenFormGroup: FormGroup = this.formBuilder.group({
|
||||
tokenFormGroup: UntypedFormGroup = this.formBuilder.group({
|
||||
token: ['', Validators.required]
|
||||
});
|
||||
disableFormGroup: FormGroup = this.formBuilder.group({});
|
||||
disableFormGroup: UntypedFormGroup = this.formBuilder.group({});
|
||||
unSubs: Array<Subject<void>> = [new Subject(), new Subject()];
|
||||
|
||||
constructor(public dialogRef: MatDialogRef<TwoFactorAuthComponent>, @Inject(MAT_DIALOG_DATA) public data: AuthConfig, private store: Store<RTLState>, private formBuilder: FormBuilder, private rtlEffects: RTLEffects, private snackBar: MatSnackBar) { }
|
||||
constructor(public dialogRef: MatDialogRef<TwoFactorAuthComponent>, @Inject(MAT_DIALOG_DATA) public data: AuthConfig, private store: Store<RTLState>, private formBuilder: UntypedFormBuilder, private rtlEffects: RTLEffects, private snackBar: MatSnackBar) { }
|
||||
|
||||
ngOnInit() {
|
||||
this.appConfig = this.data.appConfig || null;
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Component, OnInit, Inject, OnDestroy, ViewChild, AfterViewInit } from '@angular/core';
|
||||
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
||||
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
|
||||
import { Router } from '@angular/router';
|
||||
import { DecimalPipe } from '@angular/common';
|
||||
import { Subject } from 'rxjs';
|
||||
@ -42,12 +42,12 @@ export class SwapModalComponent implements OnInit, AfterViewInit, OnDestroy {
|
||||
public screenSizeEnum = ScreenSizeEnum;
|
||||
public animationDirection = 'forward';
|
||||
public flgEditable = true;
|
||||
inputFormGroup: FormGroup;
|
||||
addressFormGroup: FormGroup;
|
||||
statusFormGroup: FormGroup;
|
||||
inputFormGroup: UntypedFormGroup;
|
||||
addressFormGroup: UntypedFormGroup;
|
||||
statusFormGroup: UntypedFormGroup;
|
||||
private unSubs: Array<Subject<void>> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()];
|
||||
|
||||
constructor(public dialogRef: MatDialogRef<SwapModalComponent>, @Inject(MAT_DIALOG_DATA) public data: SwapAlert, private boltzService: BoltzService, private formBuilder: FormBuilder, private decimalPipe: DecimalPipe, private logger: LoggerService, private commonService: CommonService) { }
|
||||
constructor(public dialogRef: MatDialogRef<SwapModalComponent>, @Inject(MAT_DIALOG_DATA) public data: SwapAlert, private boltzService: BoltzService, private formBuilder: UntypedFormBuilder, private decimalPipe: DecimalPipe, private logger: LoggerService, private commonService: CommonService) { }
|
||||
|
||||
ngOnInit() {
|
||||
this.screenSize = this.commonService.getScreenSize();
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Component, OnInit, Inject, OnDestroy, ViewChild, AfterViewInit } from '@angular/core';
|
||||
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
||||
import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
|
||||
import { Router } from '@angular/router';
|
||||
import { DecimalPipe } from '@angular/common';
|
||||
import { Subject } from 'rxjs';
|
||||
@ -51,10 +51,10 @@ export class LoopModalComponent implements OnInit, AfterViewInit, OnDestroy {
|
||||
public animationDirection = 'forward';
|
||||
public flgEditable = true;
|
||||
public localBalanceToCompare: number | null = null;
|
||||
inputFormGroup: FormGroup;
|
||||
quoteFormGroup: FormGroup;
|
||||
addressFormGroup: FormGroup;
|
||||
statusFormGroup: FormGroup;
|
||||
inputFormGroup: UntypedFormGroup;
|
||||
quoteFormGroup: UntypedFormGroup;
|
||||
addressFormGroup: UntypedFormGroup;
|
||||
statusFormGroup: UntypedFormGroup;
|
||||
private unSubs: Array<Subject<void>> = [new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject(), new Subject()];
|
||||
|
||||
constructor(
|
||||
@ -62,7 +62,7 @@ export class LoopModalComponent implements OnInit, AfterViewInit, OnDestroy {
|
||||
@Inject(MAT_DIALOG_DATA) public data: LoopAlert,
|
||||
private store: Store<RTLState>,
|
||||
private loopService: LoopService,
|
||||
private formBuilder: FormBuilder,
|
||||
private formBuilder: UntypedFormBuilder,
|
||||
private decimalPipe: DecimalPipe,
|
||||
private logger: LoggerService,
|
||||
private router: Router,
|
||||
|
@ -16,7 +16,7 @@
|
||||
"experimentalDecorators": true,
|
||||
"moduleResolution": "node",
|
||||
"importHelpers": true,
|
||||
"target": "es6",
|
||||
"target": "es2020",
|
||||
"module": "es2020",
|
||||
"typeRoots": [
|
||||
"node_modules/@types"
|
||||
|
Loading…
Reference in New Issue
Block a user