aboutsummaryrefslogtreecommitdiffstats
path: root/queryRoutes.js
blob: 43079819e520b9f3a021f77b60164eeb842f1234 (plain) (blame)
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);
  })
};