mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-09-08 14:57:38 +02:00
wtclient+lnrpc: move LookupTower to Manager
This commit is contained in:
@@ -43,6 +43,10 @@ type TowerClientManager interface {
|
||||
// type.
|
||||
RegisteredTowers(opts ...wtdb.ClientSessionListOption) (
|
||||
map[blob.Type][]*RegisteredTower, error)
|
||||
|
||||
// LookupTower retrieves a registered watchtower through its public key.
|
||||
LookupTower(*btcec.PublicKey, ...wtdb.ClientSessionListOption) (
|
||||
map[blob.Type]*RegisteredTower, error)
|
||||
}
|
||||
|
||||
// Config provides the TowerClient with access to the resources it requires to
|
||||
@@ -354,3 +358,29 @@ func (m *Manager) RegisteredTowers(opts ...wtdb.ClientSessionListOption) (
|
||||
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
// LookupTower retrieves a registered watchtower through its public key.
|
||||
func (m *Manager) LookupTower(key *btcec.PublicKey,
|
||||
opts ...wtdb.ClientSessionListOption) (map[blob.Type]*RegisteredTower,
|
||||
error) {
|
||||
|
||||
tower, err := m.cfg.DB.LoadTower(key)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
m.clientsMu.Lock()
|
||||
defer m.clientsMu.Unlock()
|
||||
|
||||
resp := make(map[blob.Type]*RegisteredTower)
|
||||
for _, client := range m.clients {
|
||||
tower, err := client.lookupTower(tower, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
resp[client.Policy().BlobType] = tower
|
||||
}
|
||||
|
||||
return resp, nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user