sweep: allow sweeper to sweep P2TR inputs

This commit is contained in:
Oliver Gugger 2022-06-10 14:04:15 +02:00
parent 36d6656d0d
commit a3e4db60cd
No known key found for this signature in database
GPG Key ID: 8E4256593F177720

View File

@ -355,17 +355,6 @@ func (t *txInputSet) tryAddWalletInputsIfNeeded() error {
// createWalletTxInput converts a wallet utxo into an object that can be added // createWalletTxInput converts a wallet utxo into an object that can be added
// to the other inputs to sweep. // to the other inputs to sweep.
func createWalletTxInput(utxo *lnwallet.Utxo) (input.Input, error) { func createWalletTxInput(utxo *lnwallet.Utxo) (input.Input, error) {
var witnessType input.WitnessType
switch utxo.AddressType {
case lnwallet.WitnessPubKey:
witnessType = input.WitnessKeyHash
case lnwallet.NestedWitnessPubKey:
witnessType = input.NestedWitnessKeyHash
default:
return nil, fmt.Errorf("unknown address type %v",
utxo.AddressType)
}
signDesc := &input.SignDescriptor{ signDesc := &input.SignDescriptor{
Output: &wire.TxOut{ Output: &wire.TxOut{
PkScript: utxo.PkScript, PkScript: utxo.PkScript,
@ -374,6 +363,20 @@ func createWalletTxInput(utxo *lnwallet.Utxo) (input.Input, error) {
HashType: txscript.SigHashAll, HashType: txscript.SigHashAll,
} }
var witnessType input.WitnessType
switch utxo.AddressType {
case lnwallet.WitnessPubKey:
witnessType = input.WitnessKeyHash
case lnwallet.NestedWitnessPubKey:
witnessType = input.NestedWitnessKeyHash
case lnwallet.TaprootPubkey:
witnessType = input.TaprootPubKeySpend
signDesc.HashType = txscript.SigHashDefault
default:
return nil, fmt.Errorf("unknown address type %v",
utxo.AddressType)
}
// A height hint doesn't need to be set, because we don't monitor these // A height hint doesn't need to be set, because we don't monitor these
// inputs for spend. // inputs for spend.
heightHint := uint32(0) heightHint := uint32(0)