forked from BlueWallet/LndHub
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlightning.js
28 lines (28 loc) · 986 Bytes
/
lightning.js
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
// setup lnd rpc
const config = require('./config');
var fs = require('fs');
var grpc = require('grpc');
var lnrpc = grpc.load('rpc.proto').lnrpc;
process.env.GRPC_SSL_CIPHER_SUITES = 'HIGH+ECDSA';
var lndCert;
if (process.env.TLSCERT) {
lndCert = Buffer.from(process.env.TLSCERT, 'hex');
} else {
lndCert = fs.readFileSync('tls.cert');
}
console.log('using tls.cert', lndCert.toString('hex'));
let sslCreds = grpc.credentials.createSsl(lndCert);
let macaroon;
if (process.env.MACAROON) {
macaroon = process.env.MACAROON;
} else {
macaroon = fs.readFileSync('admin.macaroon').toString('hex');
}
console.log('using macaroon', macaroon);
let macaroonCreds = grpc.credentials.createFromMetadataGenerator(function(args, callback) {
let metadata = new grpc.Metadata();
metadata.add('macaroon', macaroon);
callback(null, metadata);
});
let creds = grpc.credentials.combineChannelCredentials(sslCreds, macaroonCreds);
module.exports = new lnrpc.Lightning(config.lnd.url, creds);