cc4daa04ad
In this commit, we address an edge case that can happen a user rescans w/ their seed, while retaining their existing `channel.db`. Once they rescan, if they go to sign for a channel sweep for example, the commitment key family (actually an account) may not yet have been created, causing the signing attempt to fail. We remedy this always creating the account if we go to sign, and the account isn't found. The change has been structured to make this the exception, so we'll avoid always needing to do 2 DB hits (check if account exists, sign), each time we sign. A new test has been added to exercise this behavior. If the diff from the `signer.go` file is removed, then the test will fail. |
||
---|---|---|
.. | ||
btcwallet | ||
channel_test.go | ||
channel.go | ||
commit_sort_test.go | ||
commit_sort.go | ||
config.go | ||
errors.go | ||
fee_estimator_test.go | ||
fee_estimator.go | ||
interface_test.go | ||
interface.go | ||
log.go | ||
parameters.go | ||
README.md | ||
reservation.go | ||
sigpool.go | ||
size_test.go | ||
test_utils.go | ||
transactions_test.go | ||
transactions.go | ||
wallet_test.go | ||
wallet.go |
lnwallet
The lnwallet package implements an abstracted wallet controller that is able to drive channel funding workflows, a number of script utilities, witness generation functions for the various Lightning scripts, revocation key derivation, and the commitment update state machine.
The package is used within lnd
as the core wallet of the daemon. The wallet
itself is composed of several distinct interfaces that decouple the
implementation of things like signing and blockchain access. This separation
allows new WalletController
implementations to be easily dropped into
lnd
without disrupting the code base. A series of integration tests at the
interface level are also in place to ensure conformance of the implementation
with the interface.
Installation and Updating
$ go get -u github.com/lightningnetwork/lnd/lnwallet