lnd.xprv/lnwallet
Olaoluwa Osuntokun 98cba87fb1
lnwallet: decouple closeObserver from main quit channel in LightningChannel
In this commit, we fix an existing bug that had ramifications within
the operation of the lnd daemon. Before this commit, if the Stop()
method was called, then the closeObserver would exit as well. This
means that would no longer be watching for channel breaches on-chain,
and could miss either a cooperative channel closure or an actual
contract breach.

To fix this, we now introduce a new method to stop for closeObserver:
CancelObserver(). This should ONLY be called once either: the contract
has been fully settled on-chain, or whom ever is watching the relevant
signals has a newer version of the channel that it will watch instead.
2017-11-23 23:10:07 -06:00
..
btcwallet lnwallet/btcwallet: update SendOutputs implementation due to recent API changes 2017-11-23 23:10:05 -06:00
channel_test.go lnwallet: verify new optional ChannelReestablish fields in ProcessChanSyncMsg 2017-11-16 20:00:05 -08:00
channel.go lnwallet: decouple closeObserver from main quit channel in LightningChannel 2017-11-23 23:10:07 -06: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: add BtcdFeeEstimator implementation of FeeEstimator interface 2017-11-23 23:10:02 -06:00
interface_test.go lnwallet: update interface level tests to adhere to recent API changes 2017-11-23 23:10:04 -06:00
interface.go lnwallet: update SendOutputs method on WalletController to accept fee 2017-11-23 23:10:04 -06: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: allow callers to specify fee for funding transaction in funding flow 2017-11-23 23:10:06 -06:00
script_utils_test.go lnwallet: update commitmentKeyRing to account for distinct HTLC keys 2017-11-16 20:00:03 -08:00
script_utils.go lnwallet: update sender/receiver HTLC scripts to use distinct HTLC keys 2017-11-16 20:00:02 -08:00
signdescriptor_test.go lnwallet: move latest SignDescriptor + serialization 2017-08-25 17:56:50 -07:00
signdescriptor.go lnwallet/signdesc: increases max witness parsing length 2017-09-19 19:18:21 -07: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/size: adds htlc success and timeout witness sizes 2017-11-15 18:04:44 -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: allow callers to specify fee for funding transaction in funding flow 2017-11-23 23:10:06 -06:00
witnessgen.go lnwallet/witnessgen: add HtlcOfferedTimeLock witness type 2017-11-15 18:04:44 -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