mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-01-19 05:45:21 +01:00
contractcourt: set proper height hint for zero-conf channels
The contractcourt's chain watcher is now zero-conf aware and will use an appropriate heightHint when scanning the chain.
This commit is contained in:
parent
0ba67015da
commit
3fc53c673b
@ -266,12 +266,27 @@ func (c *chainWatcher) Start() error {
|
|||||||
|
|
||||||
// As a height hint, we'll try to use the opening height, but if the
|
// As a height hint, we'll try to use the opening height, but if the
|
||||||
// channel isn't yet open, then we'll use the height it was broadcast
|
// channel isn't yet open, then we'll use the height it was broadcast
|
||||||
// at.
|
// at. This may be an unconfirmed zero-conf channel.
|
||||||
heightHint := c.cfg.chanState.ShortChanID().BlockHeight
|
heightHint := c.cfg.chanState.ShortChanID().BlockHeight
|
||||||
if heightHint == 0 {
|
if heightHint == 0 {
|
||||||
heightHint = chanState.BroadcastHeight()
|
heightHint = chanState.BroadcastHeight()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Since no zero-conf state is stored in a channel backup, the below
|
||||||
|
// logic will not be triggered for restored, zero-conf channels. Set
|
||||||
|
// the height hint for zero-conf channels.
|
||||||
|
if chanState.IsZeroConf() {
|
||||||
|
if chanState.ZeroConfConfirmed() {
|
||||||
|
// If the zero-conf channel is confirmed, we'll use the
|
||||||
|
// confirmed SCID's block height.
|
||||||
|
heightHint = chanState.ZeroConfRealScid().BlockHeight
|
||||||
|
} else {
|
||||||
|
// The zero-conf channel is unconfirmed. We'll need to
|
||||||
|
// use the FundingBroadcastHeight.
|
||||||
|
heightHint = chanState.BroadcastHeight()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
localKey := chanState.LocalChanCfg.MultiSigKey.PubKey.SerializeCompressed()
|
localKey := chanState.LocalChanCfg.MultiSigKey.PubKey.SerializeCompressed()
|
||||||
remoteKey := chanState.RemoteChanCfg.MultiSigKey.PubKey.SerializeCompressed()
|
remoteKey := chanState.RemoteChanCfg.MultiSigKey.PubKey.SerializeCompressed()
|
||||||
multiSigScript, err := input.GenMultiSigScript(
|
multiSigScript, err := input.GenMultiSigScript(
|
||||||
|
Loading…
Reference in New Issue
Block a user