lnrpc+sweep: make FeeEstimateInfo an optional param

This is needed as we soon will remove the usage of the fee preference
when sweeping inputs.
This commit is contained in:
yyforyongyu 2024-03-19 01:14:37 +08:00
parent 658ba445ea
commit 0b30d4ba3e
No known key found for this signature in database
GPG Key ID: 9BCD95C4FF296868
2 changed files with 34 additions and 21 deletions

View File

@ -883,25 +883,34 @@ func (w *WalletKit) PendingSweeps(ctx context.Context,
satPerVbyte := uint64(sweeperInput.LastFeeRate.FeePerVByte())
broadcastAttempts := uint32(sweeperInput.BroadcastAttempts)
feePref := sweeperInput.Params.Fee
requestedFee, ok := feePref.(sweep.FeeEstimateInfo)
if !ok {
return nil, fmt.Errorf("unknown fee preference type: "+
"%v", feePref)
ps := &PendingSweep{
Outpoint: op,
WitnessType: witnessType,
AmountSat: amountSat,
SatPerVbyte: satPerVbyte,
BroadcastAttempts: broadcastAttempts,
Force: sweeperInput.Params.Force,
}
feePref := sweeperInput.Params.Fee
// If there's no fee preference specified, we can move to the
// next record.
if feePref == nil {
rpcPendingSweeps = append(rpcPendingSweeps, ps)
continue
}
requestedFee, ok := feePref.(sweep.FeeEstimateInfo)
if !ok {
return nil, fmt.Errorf("unknown fee "+
"preference type: "+"%v", feePref)
}
requestedFeeRate := uint64(requestedFee.FeeRate.FeePerVByte())
rpcPendingSweeps = append(rpcPendingSweeps, &PendingSweep{
Outpoint: op,
WitnessType: witnessType,
AmountSat: amountSat,
SatPerVbyte: satPerVbyte,
BroadcastAttempts: broadcastAttempts,
RequestedSatPerVbyte: requestedFeeRate,
RequestedConfTarget: requestedFee.ConfTarget,
Force: sweeperInput.Params.Force,
})
ps.RequestedSatPerVbyte = requestedFeeRate
ps.RequestedConfTarget = requestedFee.ConfTarget
rpcPendingSweeps = append(rpcPendingSweeps, ps)
}
return &PendingSweepsResponse{

View File

@ -514,11 +514,15 @@ func (s *UtxoSweeper) SweepInput(input input.Input,
}
// Ensure the client provided a sane fee preference.
_, err := params.Fee.Estimate(
s.cfg.FeeEstimator, s.cfg.MaxFeeRate.FeePerKWeight(),
)
if err != nil {
return nil, err
//
// TODO(yy): remove this check?
if params.Fee != nil {
_, err := params.Fee.Estimate(
s.cfg.FeeEstimator, s.cfg.MaxFeeRate.FeePerKWeight(),
)
if err != nil {
return nil, err
}
}
absoluteTimeLock, _ := input.RequiredLockTime()
@ -1580,7 +1584,7 @@ func (s *UtxoSweeper) sweepPendingInputs(inputs InputsMap) {
}
if err != nil {
log.Errorf("Sweep new inputs: %v", err)
log.Errorf("Failed to sweep %v: %v", set, err)
}
}
}