Skip to main content

AddTower

AddTower adds a new watchtower reachable at the given address and considers it for new sessions. If the watchtower already exists, then any new addresses included will be considered when dialing it for session negotiations and backups.

Source: wtclientrpc/wtclient.proto

gRPC​

rpc AddTower (AddTowerRequest) returns (AddTowerResponse);

REST​

HTTP MethodPath
POST /v2/watchtower/client

Code Samples​

const fs = require('fs');
const grpc = require('@grpc/grpc-js');
const protoLoader = require('@grpc/proto-loader');

const GRPC_HOST = 'localhost:10009'
const MACAROON_PATH = 'LND_DIR/data/chain/bitcoin/regtest/admin.macaroon'
const TLS_PATH = 'LND_DIR/tls.cert'

const loaderOptions = {
keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true,
};
const packageDefinition = protoLoader.loadSync(['lightning.proto', 'wtclientrpc/wtclient.proto'], loaderOptions);
const wtclientrpc = grpc.loadPackageDefinition(packageDefinition).wtclientrpc;
process.env.GRPC_SSL_CIPHER_SUITES = 'HIGH+ECDSA';
const tlsCert = fs.readFileSync(TLS_PATH);
const sslCreds = grpc.credentials.createSsl(tlsCert);
const macaroon = fs.readFileSync(MACAROON_PATH).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);
let client = new wtclientrpc.WatchtowerClient(GRPC_HOST, creds);
let request = {
pubkey: <bytes>,
address: <string>,
};
client.addTower(request, function(err, response) {
console.log(response);
});
// Console output:
// {
// }

Messages​

wtclientrpc.AddTowerRequest​

Source: wtclientrpc/wtclient.proto

FieldgRPC TypeREST TypeREST Placement
pubkey
bytesstringbody
address
stringstringbody

wtclientrpc.AddTowerResponse​

Source: wtclientrpc/wtclient.proto

note

This response has no parameters.