{
host: '127.0.0.1:11010',
certFilePath: '/Users/wjl/Documents/gamichi/2024/loop/regtest/lndclient/loop/regtest/tls.cert',
macaroonFilePath: '/Users/wjl/Documents/gamichi/2024/loop/regtest/lndclient/loop/regtest/loop.macaroon'
}
const loaderOptions = {
keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true,
};
process.env.GRPC_SSL_CIPHER_SUITES = 'HIGH+ECDSA';
const tlsCert = certFilePath ? fs.readFileSync(certFilePath) : '';
const sslCreds = grpc.credentials.createSsl(tlsCert);
if (!macaroonFilePath) {
throw new Error('macaroonFilePath is required')
}
const macaroon = fs.readFileSync(macaroonFilePath).toString('hex');
const 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);
const packageDefinition = protoLoader.loadSync(protoClient, loaderOptions);
const looprpc = grpc.loadPackageDefinition(packageDefinition).looprpc;
let client = new looprpc.SwapClient(host, creds);
return client
const getInfo = () => {
return new Promise((resolve, reject) => {
client.getInfo({}, function (err, response) {
if (err) {
reject(err)
}
resolve(response)
});
})
}
❌ ~ getRepayByMessage ~ e.message: 14 UNAVAILABLE: No connection established. Last error: Client network socket disconnected before secure TLS connection was established (2024-05-20T12:11:41.245Z)