lnd.xprv/lnwallet
Johan T. Halseth 2a7a34ae10
contractcourt+lnwallet: use state num instead of commit height when
outdated local state

This commit fixes a bug that would cause us to not sweep our local
output in case we force closed, then lost state or attempted recovery.
The reason being that we would use or local commit height when deriving
our scripts, which would be incorrect. Instead we use the extracted
state number to derive the correct scripts, allowing us to sweep the
output.

Allthough being an unlikely scenario, we would leave money on chain in
this case without any warning (since we would just end up with an empty
delay script) and forget about the spend.
2020-12-03 08:01:08 +01:00
..
btcwallet multi: move several wait group done calls to defer statements 2020-11-23 14:48:44 +01:00
chainfee lnwallet: add no cache option to web api estimator 2020-09-14 11:51:03 +02:00
chancloser mutli: move parse upfront shutdown out of rpcserver 2020-11-10 11:40:52 +02:00
chanfunding chanfunding: match error string when testing CoinSelectSubtractFees 2020-11-04 18:54:57 +01:00
chanvalidate input: pass input.Signature to multisig spend 2020-04-10 14:27:35 -07:00
channel_test.go lnwallet/channel: correct dust calculation on incoming HTLC 2020-11-13 12:02:03 +01:00
channel.go contractcourt+lnwallet: use state num instead of commit height when 2020-12-03 08:01:08 +01:00
commit_sort_test.go lnwallet/commit_sort: add commit sorting with htlc tie breaker 2019-06-05 08:34:45 +02:00
commit_sort.go lnwallet/commit_sort: add commit sorting with htlc tie breaker 2019-06-05 08:34:45 +02:00
commitment.go lnwallet: check coop close fee negative balance 2020-09-11 11:10:58 +02:00
config.go chainfee: create new chainfee package extracting fees from lnwallet 2019-10-31 16:41:57 -07:00
errors.go add new max channel size config option 2020-09-14 21:16:32 -05:00
interface_test.go multi: add max local csv config option 2020-11-04 13:55:37 +02:00
interface.go lnwallet+mock: add new PSBT methods 2020-10-03 10:34:39 +02:00
log.go chainfee: create new chainfee package extracting fees from lnwallet 2019-10-31 16:41:57 -07:00
parameters.go multi: move Input interface and related code 2019-01-31 13:25:33 +01:00
README.md multi: fix typos in comments 2018-04-17 19:03:27 -07:00
reservation.go multi: add max local csv config option 2020-11-04 13:55:37 +02:00
sigpool.go multi: return input.Signature from SignOutputRaw 2020-04-10 14:27:35 -07:00
test_utils.go lnwallet/test_utils: set up asymmetric commits 2020-12-03 08:00:01 +01:00
test_vectors_anchors.json lnwallet/test: add anchor vector for no local anchor 2020-08-19 08:44:04 +02:00
test_vectors_legacy.json lnwallet/test: make use of test htlcs explicit 2020-08-19 08:44:00 +02:00
transactions_test.go lnwallet/test: make use of test htlcs explicit 2020-08-19 08:44:00 +02:00
transactions.go lnwallet: set 2nd level sequence according to channel type 2020-03-09 12:59:33 +01:00
wallet.go multi: move several wait group done calls to defer statements 2020-11-23 14:48:44 +01:00

lnwallet

Build Status MIT licensed GoDoc

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