Merge pull request #10410 from ellemouton/bypassBuilderForMissingEdges
localchans: populate FundingScript for missing edges
This commit is contained in:
4 files changed
+30
-5
No files matched your search
@@ -51,6 +51,11 @@
|
||||
the EstimateRouteFee API can probe Eclair and LDK nodes which enforce the
|
||||
payment address/secret.
|
||||
|
||||
* Fix a bug where [missing edges for own channels could not be added to the
|
||||
graph DB](https://github.com/lightningnetwork/lnd/pull/10410)
|
||||
due to validation checks in the graph Builder that were resurfaced after the
|
||||
graph refactor work.
|
||||
|
||||
# New Features
|
||||
|
||||
## Functional Enhancements
|
||||
|
||||
+5
-5
@@ -1365,7 +1365,7 @@ func (f *Manager) advancePendingChannelState(channel *channeldb.OpenChannel,
|
||||
}
|
||||
|
||||
txid := &channel.FundingOutpoint.Hash
|
||||
fundingScript, err := makeFundingScript(channel)
|
||||
fundingScript, err := MakeFundingScript(channel)
|
||||
if err != nil {
|
||||
log.Errorf("unable to create funding script for "+
|
||||
"ChannelPoint(%v): %v",
|
||||
@@ -3053,9 +3053,9 @@ func (f *Manager) waitForFundingWithTimeout(
|
||||
}
|
||||
}
|
||||
|
||||
// makeFundingScript re-creates the funding script for the funding transaction
|
||||
// MakeFundingScript re-creates the funding script for the funding transaction
|
||||
// of the target channel.
|
||||
func makeFundingScript(channel *channeldb.OpenChannel) ([]byte, error) {
|
||||
func MakeFundingScript(channel *channeldb.OpenChannel) ([]byte, error) {
|
||||
localKey := channel.LocalChanCfg.MultiSigKey.PubKey
|
||||
remoteKey := channel.RemoteChanCfg.MultiSigKey.PubKey
|
||||
|
||||
@@ -3102,7 +3102,7 @@ func (f *Manager) waitForFundingConfirmation(
|
||||
// Register with the ChainNotifier for a notification once the funding
|
||||
// transaction reaches `numConfs` confirmations.
|
||||
txid := completeChan.FundingOutpoint.Hash
|
||||
fundingScript, err := makeFundingScript(completeChan)
|
||||
fundingScript, err := MakeFundingScript(completeChan)
|
||||
if err != nil {
|
||||
log.Errorf("unable to create funding script for "+
|
||||
"ChannelPoint(%v): %v", completeChan.FundingOutpoint,
|
||||
@@ -3818,7 +3818,7 @@ func (f *Manager) annAfterSixConfs(completeChan *channeldb.OpenChannel,
|
||||
shortChanID.ToUint64(), completeChan.FundingOutpoint,
|
||||
numConfs)
|
||||
|
||||
fundingScript, err := makeFundingScript(completeChan)
|
||||
fundingScript, err := MakeFundingScript(completeChan)
|
||||
if err != nil {
|
||||
return fmt.Errorf("unable to create funding script "+
|
||||
"for ChannelPoint(%v): %v",
|
||||
|
||||
@@ -13,6 +13,7 @@ import (
|
||||
"github.com/lightningnetwork/lnd/channeldb"
|
||||
"github.com/lightningnetwork/lnd/discovery"
|
||||
"github.com/lightningnetwork/lnd/fn/v2"
|
||||
"github.com/lightningnetwork/lnd/funding"
|
||||
"github.com/lightningnetwork/lnd/graph/db/models"
|
||||
"github.com/lightningnetwork/lnd/lnrpc"
|
||||
"github.com/lightningnetwork/lnd/lnwire"
|
||||
@@ -321,12 +322,19 @@ func (r *Manager) createEdge(channel *channeldb.OpenChannel,
|
||||
shortChanID = channel.ZeroConfRealScid()
|
||||
}
|
||||
|
||||
fundingScript, err := funding.MakeFundingScript(channel)
|
||||
if err != nil {
|
||||
return nil, nil, fmt.Errorf("unable to create funding "+
|
||||
"script: %v", err)
|
||||
}
|
||||
|
||||
info := &models.ChannelEdgeInfo{
|
||||
ChannelID: shortChanID.ToUint64(),
|
||||
ChainHash: channel.ChainHash,
|
||||
Features: lnwire.EmptyFeatureVector(),
|
||||
Capacity: channel.Capacity,
|
||||
ChannelPoint: channel.FundingOutpoint,
|
||||
FundingScript: fn.Some(fundingScript),
|
||||
}
|
||||
|
||||
copy(info.NodeKey1Bytes[:], nodeKey1Bytes)
|
||||
|
||||
@@ -13,6 +13,8 @@ import (
|
||||
"github.com/btcsuite/btcd/wire"
|
||||
"github.com/lightningnetwork/lnd/channeldb"
|
||||
"github.com/lightningnetwork/lnd/discovery"
|
||||
"github.com/lightningnetwork/lnd/fn/v2"
|
||||
"github.com/lightningnetwork/lnd/funding"
|
||||
"github.com/lightningnetwork/lnd/graph/db/models"
|
||||
"github.com/lightningnetwork/lnd/keychain"
|
||||
"github.com/lightningnetwork/lnd/lnrpc"
|
||||
@@ -385,6 +387,10 @@ func TestCreateEdgeLower(t *testing.T) {
|
||||
Index: 0,
|
||||
},
|
||||
}
|
||||
|
||||
fundingScript, err := funding.MakeFundingScript(channel)
|
||||
require.NoError(t, err)
|
||||
|
||||
expectedInfo := &models.ChannelEdgeInfo{
|
||||
ChannelID: 8,
|
||||
ChainHash: channel.ChainHash,
|
||||
@@ -399,6 +405,7 @@ func TestCreateEdgeLower(t *testing.T) {
|
||||
remoteMultisigKey.SerializeCompressed()),
|
||||
AuthProof: nil,
|
||||
ExtraOpaqueData: nil,
|
||||
FundingScript: fn.Some(fundingScript),
|
||||
}
|
||||
expectedEdge := &models.ChannelEdgePolicy{
|
||||
ChannelID: 8,
|
||||
@@ -473,6 +480,10 @@ func TestCreateEdgeHigher(t *testing.T) {
|
||||
Index: 0,
|
||||
},
|
||||
}
|
||||
|
||||
fundingScript, err := funding.MakeFundingScript(channel)
|
||||
require.NoError(t, err)
|
||||
|
||||
expectedInfo := &models.ChannelEdgeInfo{
|
||||
ChannelID: 8,
|
||||
ChainHash: channel.ChainHash,
|
||||
@@ -487,6 +498,7 @@ func TestCreateEdgeHigher(t *testing.T) {
|
||||
localMultisigKey.SerializeCompressed()),
|
||||
AuthProof: nil,
|
||||
ExtraOpaqueData: nil,
|
||||
FundingScript: fn.Some(fundingScript),
|
||||
}
|
||||
expectedEdge := &models.ChannelEdgePolicy{
|
||||
ChannelID: 8,
|
||||
|
||||
Reference in new issue
Block a user