lnwallet + funding: move funding tx publish to fundingmgr
This commit moves the responsibility for publishing the funding tx to the network from the wallet to the funding manager. This is done to distinguish the failure of completing the reservation within the wallet and failure of publishing the transaction. Earlier we could fail to broadcast the transaction, which would cause us to fail the funding flow. This is not something we can do directly, since the CompeteReservation call will mark the channel IsPending in the databas.e
This commit is contained in:
3 files changed
+35
-26
No files matched your search
@@ -4,12 +4,12 @@ import (
|
||||
"net"
|
||||
"sync"
|
||||
|
||||
"github.com/lightningnetwork/lnd/channeldb"
|
||||
"github.com/lightningnetwork/lnd/lnwire"
|
||||
"github.com/btcsuite/btcd/btcec"
|
||||
"github.com/btcsuite/btcd/chaincfg/chainhash"
|
||||
"github.com/btcsuite/btcd/wire"
|
||||
"github.com/btcsuite/btcutil"
|
||||
"github.com/lightningnetwork/lnd/channeldb"
|
||||
"github.com/lightningnetwork/lnd/lnwire"
|
||||
)
|
||||
|
||||
// ChannelContribution is the primary constituent of the funding workflow
|
||||
@@ -434,11 +434,11 @@ func (r *ChannelReservation) OurSignatures() ([]*InputScript, []byte) {
|
||||
// https://github.com/bitcoin/bips/blob/master/bip-0069.mediawiki.
|
||||
// Additionally, verification is performed in order to ensure that the
|
||||
// counterparty supplied a valid signature to our version of the commitment
|
||||
// transaction. Once this method returns, caller's should then call
|
||||
// .WaitForChannelOpen() which will block until the funding transaction obtains
|
||||
// the configured number of confirmations. Once the method unblocks, a
|
||||
// LightningChannel instance is returned, marking the channel available for
|
||||
// updates.
|
||||
// transaction. Once this method returns, caller's should broadcast the
|
||||
// created funding transaction, then call .WaitForChannelOpen() which will
|
||||
// block until the funding transaction obtains the configured number of
|
||||
// confirmations. Once the method unblocks, a LightningChannel instance is
|
||||
// returned, marking the channel available for updates.
|
||||
func (r *ChannelReservation) CompleteReservation(fundingInputScripts []*InputScript,
|
||||
commitmentSig []byte) (*channeldb.OpenChannel, error) {
|
||||
|
||||
|
||||
Reference in new issue
Block a user