lnd/lnwallet
Olaoluwa Osuntokun f79af461d3
lnwallet: in NewBreachRetribution create the htlcRetributions slice to capacity, not length
In this commit, we fix an existing bug in the NewBreachRetribution
method. Rather than creating the slice to the proper length, we instead
now create it to the proper _capacity_. As we'll now properly filter out
any dust HTLCs, before this commit, even if no HTLCs were added, then
the slice would still have a full length, meaning callers could actually
interact with _blank_ HtlcRetribution structs.

The fix is simple: create the slice with the proper capacity, and append
to the end of it.
2018-04-05 16:19:49 -07:00
..
btcwallet lnwallet: use btcutil.NewAmount for BTC -> SAT conversions 2018-03-25 19:15:18 -07:00
channel_test.go lnwallet: use btcutil.NewAmount for BTC -> SAT conversions 2018-03-25 19:15:18 -07:00
channel.go lnwallet: in NewBreachRetribution create the htlcRetributions slice to capacity, not length 2018-04-05 16:19:49 -07:00
common_test.go lnwallet: update tests due to recent API changes 2018-03-06 16:04:03 -05:00
config.go lnwallet: add an instance of keychain.SecretKeyRing to the Config struct 2018-03-06 16:04:02 -05:00
errors.go lnwallet+funding+lnd: add new config option for min accepted channel size 2018-04-02 16:17:58 -07:00
fee_estimator_test.go lnwallet test: add TestFeeRateTypes and TestStaticFeeEstimator 2018-02-26 22:42:27 +01:00
fee_estimator.go lnwallet: add feerate types, make estimator return sat/vbyte 2018-02-26 22:42:24 +01:00
interface_test.go lnwallet: use btcutil.NewAmount for BTC -> SAT conversions 2018-03-25 19:15:18 -07:00
interface.go lnwallet: remove p2pkh as an address type, wallet is now pure segwit 2018-03-06 16:04:03 -05:00
log.go lnwallet: don't attach the rpcclient to the lnwallet logging instance 2017-08-30 20:32:37 -07:00
parameters.go fundingmanager+lnwallet: add HTLC dust limit logic 2016-12-13 11:01:57 -08:00
README.md multi: fix formatting issues in packge README's 2017-03-27 16:25:25 -07:00
reservation.go lnwallet: update comments 2018-03-12 19:37:18 -04:00
script_utils_test.go lnwallet: update script_utils and tests due to SignDescriptor API change 2018-03-06 16:04:01 -05:00
script_utils.go lnwallet: modify the way we derive revocation roots to be deterministic 2018-03-06 16:04:02 -05:00
signdescriptor_test.go lnwallet: update signdescriptor_test.go due to latest API changes 2018-03-06 16:04:00 -05:00
signdescriptor.go lnwallet: update the SignDescriptor struct to use keychain.KeyDescriptor 2018-03-06 16:04:00 -05:00
sigpool.go lnwallet: update state machine to use new lnwire.Sig everywhere 2018-02-06 20:14:31 -08:00
size_test.go lnwallet: Add TxWeightEstimator support for nested pay-to-witness. 2017-10-19 17:37:53 -07:00
size.go lnwallet: add VSize method for returning size from TxWeightEstimator 2018-02-26 22:42:24 +01:00
transactions_test.go lnwallet: update interface tests to account for recent lnwire.MilliSatoshi change 2018-03-08 12:50:48 -05:00
txout_test.go lnwallet: move txout serialization out of lnwire 2017-09-14 13:56:25 +02:00
txout.go lnwallet: move txout serialization out of lnwire 2017-09-14 13:56:25 +02:00
wallet.go lnwallet: update comments 2018-03-12 19:37:18 -04:00
witnessgen.go multi: comprehensive typo fixes across all packages 2018-02-06 19:11:11 -08: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 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