You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

130 lines
4.8 KiB

"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const lightning_1 = require("../utils/lightning");
const res_1 = require("../utils/res");
const readLastLines = require("read-last-lines");
const nodeinfo_1 = require("../utils/nodeinfo");
const path = require("path");
const env = process.env.NODE_ENV || 'development';
const config = require(path.join(__dirname, '../../config/app.json'))[env];
const defaultLogFiles = [
'/var/log/supervisor/relay.log',
'/home/lnd/.pm2/logs/app-error.log',
'/var/log/syslog',
];
function getLogsSince(req, res) {
return __awaiter(this, void 0, void 0, function* () {
const logFiles = config.log_file ? [config.log_file] : defaultLogFiles;
let txt;
let err;
yield asyncForEach(logFiles, (filepath) => __awaiter(this, void 0, void 0, function* () {
if (!txt) {
try {
const lines = yield readLastLines.read(filepath, 500);
if (lines) {
var linesArray = lines.split('\n');
linesArray.reverse();
txt = linesArray.join('\n');
}
}
catch (e) {
err = e;
}
}
}));
if (txt)
res_1.success(res, txt);
else
res_1.failure(res, err);
});
}
exports.getLogsSince = getLogsSince;
exports.getInfo = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
const lightning = lightning_1.loadLightning();
var request = {};
lightning.getInfo(request, function (err, response) {
res.status(200);
if (err == null) {
res.json({ success: true, response });
}
else {
res.json({ success: false });
}
res.end();
});
});
exports.getChannels = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
const lightning = lightning_1.loadLightning();
var request = {};
lightning.listChannels(request, function (err, response) {
res.status(200);
if (err == null) {
res.json({ success: true, response });
}
else {
res.json({ success: false });
}
res.end();
});
});
exports.getBalance = (req, res) => {
const lightning = lightning_1.loadLightning();
var request = {};
lightning.channelBalance(request, function (err, response) {
res.status(200);
if (err == null) {
res.json({ success: true, response });
}
else {
res.json({ success: false });
}
res.end();
});
};
exports.getLocalRemoteBalance = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
const lightning = lightning_1.loadLightning();
lightning.listChannels({}, (err, channelList) => {
const { channels } = channelList;
const localBalances = channels.map(c => c.local_balance);
const remoteBalances = channels.map(c => c.remote_balance);
const totalLocalBalance = localBalances.reduce((a, b) => parseInt(a) + parseInt(b), 0);
const totalRemoteBalance = remoteBalances.reduce((a, b) => parseInt(a) + parseInt(b), 0);
res.status(200);
if (err == null) {
res.json({ success: true, response: { local_balance: totalLocalBalance, remote_balance: totalRemoteBalance } });
}
else {
res.json({ success: false });
}
res.end();
});
});
exports.getNodeInfo = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
var ipOfSource = req.connection.remoteAddress;
if (!(ipOfSource.includes('127.0.0.1') || ipOfSource.includes('localhost'))) {
res.status(401);
res.end();
return;
}
const node = yield nodeinfo_1.nodeinfo();
res.status(200);
res.json(node);
res.end();
});
function asyncForEach(array, callback) {
return __awaiter(this, void 0, void 0, function* () {
for (let index = 0; index < array.length; index++) {
yield callback(array[index], index, array);
}
});
}
//# sourceMappingURL=details.js.map