walletrpc: add p2tr to NextAddr and BumpFee RPCs
This commit is contained in:
1 file changed
+19
-12
@@ -542,6 +542,9 @@ func (w *WalletKit) NextAddr(ctx context.Context,
|
|||||||
case AddressType_HYBRID_NESTED_WITNESS_PUBKEY_HASH:
|
case AddressType_HYBRID_NESTED_WITNESS_PUBKEY_HASH:
|
||||||
return nil, fmt.Errorf("invalid address type for next "+
|
return nil, fmt.Errorf("invalid address type for next "+
|
||||||
"address: %v", req.Type)
|
"address: %v", req.Type)
|
||||||
|
|
||||||
|
case AddressType_TAPROOT_PUBKEY:
|
||||||
|
addrType = lnwallet.TaprootPubkey
|
||||||
}
|
}
|
||||||
|
|
||||||
addr, err := w.cfg.Wallet.NewAddress(addrType, req.Change, account)
|
addr, err := w.cfg.Wallet.NewAddress(addrType, req.Change, account)
|
||||||
@@ -858,16 +861,6 @@ func (w *WalletKit) BumpFee(ctx context.Context,
|
|||||||
"transaction")
|
"transaction")
|
||||||
}
|
}
|
||||||
|
|
||||||
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 input witness %v", op)
|
|
||||||
}
|
|
||||||
|
|
||||||
signDesc := &input.SignDescriptor{
|
signDesc := &input.SignDescriptor{
|
||||||
Output: &wire.TxOut{
|
Output: &wire.TxOut{
|
||||||
PkScript: utxo.PkScript,
|
PkScript: utxo.PkScript,
|
||||||
@@ -876,6 +869,19 @@ func (w *WalletKit) BumpFee(ctx context.Context,
|
|||||||
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 input witness %v", op)
|
||||||
|
}
|
||||||
|
|
||||||
// We'll use the current height as the height hint since we're dealing
|
// We'll use the current height as the height hint since we're dealing
|
||||||
// with an unconfirmed transaction.
|
// with an unconfirmed transaction.
|
||||||
_, currentHeight, err := w.cfg.Chain.GetBestBlock()
|
_, currentHeight, err := w.cfg.Chain.GetBestBlock()
|
||||||
@@ -884,8 +890,9 @@ func (w *WalletKit) BumpFee(ctx context.Context,
|
|||||||
err)
|
err)
|
||||||
}
|
}
|
||||||
|
|
||||||
input := input.NewBaseInput(op, witnessType, signDesc, uint32(currentHeight))
|
inp := input.NewBaseInput(op, witnessType, signDesc, uint32(currentHeight))
|
||||||
if _, err = w.cfg.Sweeper.SweepInput(input, sweep.Params{Fee: feePreference}); err != nil {
|
sweepParams := sweep.Params{Fee: feePreference}
|
||||||
|
if _, err = w.cfg.Sweeper.SweepInput(inp, sweepParams); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user