lnd/lnwallet
Olaoluwa Osuntokun 671098325d
lnwallet: refactor all wallet/channel interaction to use the WalletController.
This commit performs a major refactor of the current wallet,
reservation, and channel code in order to call into a WalletController
implementation rather than directly into btcwallet.

The current set of wallets tests have been modified in order to test
against *all* registered WalletController implementations rather than
only btcwallet. As a result, all future WalletControllers primary need
to ensure that their implementation passes the current set of tests
(which will be expanded into the future), providing an easy path of
integration assurance.

Rather than directly holding the private keys throughout funding and
channel creation, the burden of securing keys has been shifted to the
specified WalletController and Signer interfaces. All signing is done
via the Signer interface rather than directly, increasing flexibility
dramatically.

During channel funding, rather than creating a txscript.Engine to
verify commitment signatures, regular ECDSA sig verification is now
used instead. This is faster and more efficient.

Finally certain fields/methods within ChannelReservation and
LightningChannel have been exposed publicly in order to restrict the
amount of modifications the prior tests needed to undergo in order to
support testing directly agains the WalletController interface.
2016-09-08 12:25:54 -07:00
..
btcwallet lnwallet: add a BtcWallet implementation of WalletController 2016-09-08 12:25:32 -07:00
channel.go lnwallet: refactor all wallet/channel interaction to use the WalletController. 2016-09-08 12:25:54 -07:00
channel_test.go lnwallet: refactor all wallet/channel interaction to use the WalletController. 2016-09-08 12:25:54 -07:00
config.go lnwallet: add a BtcWallet implementation of WalletController 2016-09-08 12:25:32 -07:00
interface.go lnwallet: revamp interfaces, add BlockChainIO and Singer 2016-09-08 12:25:28 -07:00
interface_test.go lnwallet: refactor all wallet/channel interaction to use the WalletController. 2016-09-08 12:25:54 -07:00
log.go lnwallet: switch name of package logger to avoid module collision 2016-07-27 11:29:07 -07:00
reservation.go lnwallet: refactor all wallet/channel interaction to use the WalletController. 2016-09-08 12:25:54 -07:00
script_utils.go lnwallet: modify elkrem root derivation, derive from root HD seed 2016-09-08 12:25:49 -07:00
script_utils_test.go lnwallet: publicly export several functions within script_utils.go 2016-09-08 12:25:44 -07:00
wallet.go lnwallet: refactor all wallet/channel interaction to use the WalletController. 2016-09-08 12:25:54 -07:00