lnd.xprv/lnwallet
Olaoluwa Osuntokun a52d405998
lnwallet: ensure HTLC values are properly converted to SAT in commit tx
This commit fixes a bug within the HTLC construction and commitment
transaction construction that would result in HTLC _values_ within the
commitment transaction being off by a factor of 1000. This was due to
the fact that we failed to convert the amount of an HTLC, in mSAT, to
SAT before placing it as an output within the commitment transaction.
When attempt to locate the output index of a particular half, we use
the unconverted amount, meaning it was unnoticed.

This commit adds a new assertion within the TestSimpleAddSettleWorkflow
test to ensure that the HTLC is found within the commitment transaction
with the proper value in satoshi.
2017-08-30 15:34:18 -07:00
..
btcwallet multi: txscript.WitnessScript -> txscript.WitnessSignature 2017-08-24 18:55:32 -07:00
channel_test.go lnwallet: ensure HTLC values are properly converted to SAT in commit tx 2017-08-30 15:34:18 -07:00
channel.go lnwallet: ensure HTLC values are properly converted to SAT in commit tx 2017-08-30 15:34:18 -07:00
config.go lnwallet: flesh out the Config struct, wallet constructor now takes 2017-07-30 17:49:41 -07:00
interface_test.go multi: switch from btcrpcclient to rpcclient 2017-08-24 18:54:24 -07:00
interface.go lnwallet: move latest SignDescriptor + serialization 2017-08-25 17:56:50 -07:00
log.go multi: switch from btcrpcclient to rpcclient 2017-08-24 18:54:24 -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 channel reservation flow to use milli-satoshis 2017-08-22 00:52:53 -07:00
script_utils_test.go lnwallet: update TestCommitmentSpendValidation due to new commitment scripts 2017-07-30 17:49:25 -07:00
script_utils.go lnwallet: update commitScriptToSelf to match BOLT-0003 2017-08-22 00:52:09 -07:00
signdescriptor_test.go lnwallet: move latest SignDescriptor + serialization 2017-08-25 17:56:50 -07:00
signdescriptor.go lnwallet: move latest SignDescriptor + serialization 2017-08-25 17:56:50 -07:00
sigpool.go lnwallet: introduce the sigPool struct to optimize state creation+verification 2017-07-30 17:50:06 -07:00
size.go lnwallet: update MaxHTLCNumber to precisely match the spec 2017-07-30 17:49:03 -07:00
wallet.go channeldb: update the OutgoingPayment struct to use lnwire.MilliSatoshi 2017-08-22 00:52:12 -07:00
witnessgen.go lint: fix linter complaints 2017-08-25 17:56:50 -07: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