1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
const bolt11 = require("bolt11");
const config = require("./config");
var fs = require('fs');
var grpc = require('grpc');
var lnrpc = grpc.load('/root/grpc/rpc.proto').lnrpc;
process.env.GRPC_SSL_CIPHER_SUITES = 'HIGH+ECDSA'
var lndCert = fs.readFileSync('/root/.lnda/tls.cert');
var sslCreds = grpc.credentials.createSsl(lndCert);
var macaroonCreds = grpc.credentials.createFromMetadataGenerator(function(args, callback) {
var macaroon = fs.readFileSync("/root/.lnda/data/chain/bitcoin/mainnet/admin.macaroon").toString('hex');
var metadata = new grpc.Metadata()
metadata.add('macaroon', macaroon);
callback(null, metadata);
});
var creds = grpc.credentials.combineChannelCredentials(sslCreds, macaroonCreds);
var lightning = new lnrpc.Lightning('localhost:10001', creds);
const l = console.log;
module.exports = (app, db, emit, seen, lna, lnb) => async (req, res) => {
let hash = req.body.payreq;
let payreq = bolt11.decode(hash);
const request = { "pub_key": payreq.payeeNodeKey, "amt": payreq.satoshis };
lightning.queryRoutes(request, function(err, response) {
res.send(response);
})
};
|