mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-01-19 05:45:21 +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 HtlcRetribution{
|
||||
SignDesc: input.SignDescriptor{
|
||||
KeyDesc: chanState.LocalChanCfg.
|
||||
RevocationBasePoint,
|
||||
DoubleTweak: commitmentSecret,
|
||||
WitnessScript: scriptInfo.WitnessScript,
|
||||
Output: &wire.TxOut{
|
||||
PkScript: scriptInfo.PkScript,
|
||||
Value: int64(htlc.Amt),
|
||||
},
|
||||
HashType: txscript.SigHashAll,
|
||||
signDesc := input.SignDescriptor{
|
||||
KeyDesc: chanState.LocalChanCfg.
|
||||
RevocationBasePoint,
|
||||
DoubleTweak: commitmentSecret,
|
||||
WitnessScript: scriptInfo.WitnessScript,
|
||||
Output: &wire.TxOut{
|
||||
PkScript: scriptInfo.PkScript,
|
||||
Value: int64(htlc.Amt),
|
||||
},
|
||||
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{
|
||||
Hash: commitHash,
|
||||
Index: uint32(htlc.OutputIndex),
|
||||
|
Loading…
Reference in New Issue
Block a user