diff options
| author | Adam Soltys <[email protected]> | 2021-08-04 07:00:20 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2021-08-04 08:16:43 -0700 |
| commit | ea2c9ed23c2b80f4a6200ee19fb4a6c77c3ccb95 (patch) | |
| tree | 1bb8ebcdf7b5bdbdc92ee536ef5517e711e9388c /lib/lnd.js | |
| parent | cfa93d65f113b4eed50cc88be76eeefa04a900eb (diff) | |
| download | coinos-server-ea2c9ed23c2b80f4a6200ee19fb4a6c77c3ccb95.tar.gz coinos-server-ea2c9ed23c2b80f4a6200ee19fb4a6c77c3ccb95.zip | |
config update, lnd support
Diffstat (limited to 'lib/lnd.js')
| -rw-r--r-- | lib/lnd.js | 44 |
1 files changed, 10 insertions, 34 deletions
@@ -1,36 +1,12 @@ -const fs = require('fs'); -const path = require('path'); -const grpc = require('@grpc/grpc-js'); -const protoLoader = require('@grpc/proto-loader'); -const { promisify } = require('util'); +const { promisify } = require("util"); +const { authenticatedLndGrpc } = require("lightning"); +const { cert, macaroon, socket } = config.lna; -module.exports = ({ tls, macaroon, server }) => { - const packageDefinition = protoLoader.loadSync('config/rpc.proto', { - keepCase: true, - longs: String, - enums: String, - defaults: true, - oneofs: true - }); - const lnrpc = grpc.loadPackageDefinition(packageDefinition).lnrpc; - process.env.GRPC_SSL_CIPHER_SUITES = 'HIGH+ECDSA' - const lndCert = fs.readFileSync(tls); - const sslCreds = grpc.credentials.createSsl(lndCert); - const macaroonCreds = grpc.credentials.createFromMetadataGenerator(function(args, callback) { - const macaroonFile = fs.readFileSync(macaroon).toString('hex'); - const metadata = new grpc.Metadata() - metadata.add('macaroon', macaroonFile); - callback(null, metadata); - }); - const creds = grpc.credentials.combineChannelCredentials(sslCreds, macaroonCreds); - const lnd = new lnrpc.Lightning(server, creds); - - return new Proxy(lnd, { - get(target, key) { - const method = target[key]; - if (typeof method === 'function' && !key.startsWith('sub')) return promisify(method); - return target[key]; - }, - }); -} +const { lnd } = authenticatedLndGrpc({ + cert, + macaroon, + socket +}); + +module.exports = lnd |
