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.