mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-03-04 17:55:36 +01:00
Because the original dcrec secp256k1 library that is used for the Schnorr signature primitives uses different hash algorithms than the btcd secp256k1 library. Therefore pulling in the wrong library can lead to weird and unexpected errors. We try to make it harder to make the mistake by not using the library directly in lnd in the first place. Note that it is still indirectly needed by the btcd secp256k1 library, therefore the module dependency is still expected to be there, just moved to the indirect section. |
||
---|---|---|
.. | ||
btcwallet | ||
chainfee | ||
chancloser | ||
chanfunding | ||
chanvalidate | ||
rpcwallet | ||
test | ||
channel.go | ||
channel_test.go | ||
commit_sort.go | ||
commit_sort_test.go | ||
commitment.go | ||
config.go | ||
errors.go | ||
interface.go | ||
log.go | ||
parameters.go | ||
parameters_test.go | ||
README.md | ||
reservation.go | ||
revocation_producer.go | ||
revocation_producer_itest.go | ||
sigpool.go | ||
test_utils.go | ||
test_vectors_anchors.json | ||
test_vectors_legacy.json | ||
transactions.go | ||
transactions_test.go | ||
wallet.go |
lnwallet
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