mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-03-28 10:41:57 +01:00
lnwallet: add support for taproot chans to createHtlcRetribution
As these are revoked HTLCs, we need to set the taptweak since the revocation case is just a keyspend.
This commit is contained in:
parent
52b122a8bb
commit
1f887a1b14
@ -2583,18 +2583,30 @@ func createHtlcRetribution(chanState *channeldb.OpenChannel,
|
|||||||
return emptyRetribution, err
|
return emptyRetribution, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return HtlcRetribution{
|
signDesc := input.SignDescriptor{
|
||||||
SignDesc: input.SignDescriptor{
|
KeyDesc: chanState.LocalChanCfg.
|
||||||
KeyDesc: chanState.LocalChanCfg.
|
RevocationBasePoint,
|
||||||
RevocationBasePoint,
|
DoubleTweak: commitmentSecret,
|
||||||
DoubleTweak: commitmentSecret,
|
WitnessScript: scriptInfo.WitnessScript,
|
||||||
WitnessScript: scriptInfo.WitnessScript,
|
Output: &wire.TxOut{
|
||||||
Output: &wire.TxOut{
|
PkScript: scriptInfo.PkScript,
|
||||||
PkScript: scriptInfo.PkScript,
|
Value: int64(htlc.Amt),
|
||||||
Value: int64(htlc.Amt),
|
|
||||||
},
|
|
||||||
HashType: txscript.SigHashAll,
|
|
||||||
},
|
},
|
||||||
|
HashType: txscript.SigHashAll,
|
||||||
|
}
|
||||||
|
|
||||||
|
// For taproot HTLC outputs, we need to set the sign method to key
|
||||||
|
// spend, and also set the tap tweak root needed to derive the proper
|
||||||
|
// private key.
|
||||||
|
if chanState.ChanType.IsTaproot() {
|
||||||
|
signDesc.SignMethod = input.TaprootKeySpendSignMethod
|
||||||
|
|
||||||
|
tapscriptRoot := scriptInfo.ScriptTree.RootNode.TapHash()
|
||||||
|
signDesc.TapTweak = tapscriptRoot[:]
|
||||||
|
}
|
||||||
|
|
||||||
|
return HtlcRetribution{
|
||||||
|
SignDesc: signDesc,
|
||||||
OutPoint: wire.OutPoint{
|
OutPoint: wire.OutPoint{
|
||||||
Hash: commitHash,
|
Hash: commitHash,
|
||||||
Index: uint32(htlc.OutputIndex),
|
Index: uint32(htlc.OutputIndex),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user