lnd/lnwallet
Olaoluwa Osuntokun 43fa9fe467
lnwallet: avoid creating dust change outputs in funding txns
Before this commit, if the remaining change was small enough, then it
was possible for us to generate a non-std funding transaction. This is
an issue as the txn would fail to propagate, meaning funds could
potentially be stuck in limbo if users didn't manually drop their
transaction history.

To avoid this scenario, we won't create a change output that is dusty.
Instead, we'll add these as miner fees.

Fixes #690.
2018-01-31 14:10:45 -08:00
..
btcwallet multi: add bitcoind drivers and tests 2018-01-15 13:59:34 -08:00
channel_test.go lnwallet: modify CreateCloseProposal to also return the close txid and local balance 2018-01-22 19:19:53 -08:00
channel.go lnwallet: add the second level witness script to the HtlcRetribution 2018-01-22 19:19:58 -08:00
common_test.go lnwallet: remove the closeObserver from the channel state machine 2018-01-22 19:19:47 -08:00
config.go lnwallet: flesh out the Config struct, wallet constructor now takes 2017-07-30 17:49:41 -07:00
fee_estimator.go lnwallet: properly use in KB, not KiB to convert to sat/byte for bitcoind estimator 2018-01-28 14:53:58 -08:00
interface_test.go lnwallet: increase size of test reservation due to high funding limit 2018-01-28 16:55:11 -08:00
interface.go lnwallet: add new PreimageCache interface 2018-01-22 19:19:29 -08: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: disallow creation of channels < 2x dust limit 2018-01-28 15:11:13 -08:00
script_utils_test.go lnwallet: remove the closeObserver from the channel state machine 2018-01-22 19:19:47 -08:00
script_utils.go lnwallet: add new HtlcSecondLevelRevoke witness type 2018-01-22 19:19:57 -08:00
signdescriptor_test.go lnwallet: move latest SignDescriptor + serialization 2017-08-25 17:56:50 -07:00
signdescriptor.go lnwallet: update WitnessType names to be more descriptive 2018-01-22 19:19:27 -08:00
sigpool.go lnwallet: ensure sigPool goroutines can always exit 2017-11-11 14:59:56 -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: update OfferedHtlcSuccessWitnessSize to factor in preimage size 2018-01-22 19:19:57 -08: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: avoid creating dust change outputs in funding txns 2018-01-31 14:10:45 -08:00
witnessgen.go lnwallet: add new HtlcSecondLevelRevoke witness type 2018-01-22 19:19:57 -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