• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

lightningnetwork / lnd / 14000719599

21 Mar 2025 08:54PM UTC coverage: 58.717% (-10.3%) from 68.989%
14000719599

Pull #8754

github

web-flow
Merge 29f363f18 into 5235f3b24
Pull Request #8754: Add `Outbound` Remote Signer implementation

1562 of 2088 new or added lines in 41 files covered. (74.81%)

28126 existing lines in 464 files now uncovered.

97953 of 166822 relevant lines covered (58.72%)

1.82 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

86.11
/lnwallet/rpcwallet/remote_signer_client_builder.go
1
package rpcwallet
2

3
import (
4
        "github.com/lightningnetwork/lnd/lncfg"
5
        "github.com/lightningnetwork/lnd/lnrpc"
6
        "github.com/lightningnetwork/lnd/lnrpc/signrpc"
7
        "github.com/lightningnetwork/lnd/lnrpc/walletrpc"
8
)
9

10
type rscBuilder = RemoteSignerClientBuilder
11

12
// RemoteSignerClientBuilder creates instances of the RemoteSignerClient
13
// interface, based on the provided configuration.
14
type RemoteSignerClientBuilder struct {
15
        cfg *lncfg.WatchOnlyNode
16
}
17

18
// NewRemoteSignerClientBuilder creates a new instance of the
19
// RemoteSignerClientBuilder.
20
func NewRemoteSignerClientBuilder(cfg *lncfg.WatchOnlyNode) *rscBuilder {
3✔
21
        return &rscBuilder{cfg}
3✔
22
}
3✔
23

24
// Build creates a new RemoteSignerClient instance. If the configuration enables
25
// an outbound remote signer, a new OutboundRemoteSignerClient will be returned.
26
// Else, a NoOpClient will be returned.
27
func (b *rscBuilder) Build(subServers []lnrpc.SubServer) (
28
        RemoteSignerClient, error) {
3✔
29

3✔
30
        var (
3✔
31
                walletServer walletrpc.WalletKitServer
3✔
32
                signerServer signrpc.SignerServer
3✔
33
        )
3✔
34

3✔
35
        for _, subServer := range subServers {
6✔
36
                if server, ok := subServer.(walletrpc.WalletKitServer); ok {
6✔
37
                        walletServer = server
3✔
38
                }
3✔
39

40
                if server, ok := subServer.(signrpc.SignerServer); ok {
6✔
41
                        signerServer = server
3✔
42
                }
3✔
43
        }
44

45
        // Check if we have all servers and if the configuration enables an
46
        // outbound remote signer. If not, return a NoOpClient.
47
        if walletServer == nil || signerServer == nil {
3✔
NEW
48
                log.Debugf("Using a No Op remote signer client due to " +
×
NEW
49
                        "current sub-server support")
×
NEW
50

×
NEW
51
                return &NoOpClient{}, nil
×
NEW
52
        }
×
53

54
        if !b.cfg.Enable {
6✔
55
                log.Debugf("Using a No Op remote signer client due to the " +
3✔
56
                        "current watchonly config")
3✔
57

3✔
58
                return &NoOpClient{}, nil
3✔
59
        }
3✔
60

61
        // An outbound remote signer client is enabled, therefore we create one.
62
        log.Debugf("Using an outbound remote signer client")
3✔
63

3✔
64
        streamFeeder := NewStreamFeeder(b.cfg.ConnectionCfg)
3✔
65

3✔
66
        return NewOutboundClient(
3✔
67
                walletServer, signerServer, streamFeeder, b.cfg.RequestTimeout,
3✔
68
        )
3✔
69
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc