mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-02-24 06:47:44 +01:00
Before this commit, we we were trying to sweep an anchor output, and that output was spent by someone else (not the sweeper), then we would report this back to the original resolver (allowing it to be cleaned up), and also remove the set of inputs spent by that transaction from the set we need to sweep. However, it's possible that if a user is spending unconfirmed outputs, then the wallet is holding onto an invalid transaction, as the outputs that were used as inputs have been double spent elsewhere. In this commit, we fix this issue by recursively removing all descendant transactions of our past sweeps that have an intersecting input set as the spending transaction. In cases where a user spent an unconfirmed output to funding a channel, and that output was a descendant of the now swept anchor output, the funds will now properly be marked as available. Fixes #6241 |
||
---|---|---|
.. | ||
btcwallet | ||
chainfee | ||
chancloser | ||
chanfunding | ||
chanvalidate | ||
rpcwallet | ||
test | ||
channel.go | ||
channel_test.go | ||
commit_sort.go | ||
commit_sort_test.go | ||
commitment.go | ||
config.go | ||
errors.go | ||
interface.go | ||
log.go | ||
parameters.go | ||
parameters_test.go | ||
README.md | ||
reservation.go | ||
revocation_producer.go | ||
revocation_producer_itest.go | ||
sigpool.go | ||
test_utils.go | ||
test_vectors_anchors.json | ||
test_vectors_legacy.json | ||
transactions.go | ||
transactions_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