From ddeb43d29301aa33ca7c5229d8e22d46b461b93b Mon Sep 17 00:00:00 2001 From: Boris Nagaev Date: Tue, 18 Mar 2025 10:58:23 -0300 Subject: [PATCH] loopout: fix fee estimate failure if conf_target=1 The fee estimator fails if conf_target=1. Use conf_target=2 instead. Fix https://github.com/lightninglabs/loop/issues/898 --- loopout_feerate.go | 10 +++++----- loopout_feerate_test.go | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/loopout_feerate.go b/loopout_feerate.go index 91f62fcfb..4cebd1e32 100644 --- a/loopout_feerate.go +++ b/loopout_feerate.go @@ -136,14 +136,14 @@ func (p *loopOutSweepFeerateProvider) GetConfTargetAndFeeRate( // opens for the client to sweep. blocksUntilExpiry := contract.CltvExpiry - height - // Find confTarget. If the sweep has expired, use confTarget=1, because - // confTarget must be positive. + // Find confTarget. If the sweep has expired, use confTarget=2, because + // fee estimator fails if confTarget < 2. confTarget := blocksUntilExpiry - if confTarget <= 0 { + if confTarget < 2 { log.Infof("Swap %x has expired (blocksUntilExpiry=%d), using "+ - "confTarget=1 for it.", swapHash[:6], blocksUntilExpiry) + "confTarget=2 for it.", swapHash[:6], blocksUntilExpiry) - confTarget = 1 + confTarget = 2 } feeFactor := float64(1.0) diff --git a/loopout_feerate_test.go b/loopout_feerate_test.go index 358097f04..33efae2ac 100644 --- a/loopout_feerate_test.go +++ b/loopout_feerate_test.go @@ -35,7 +35,7 @@ func (s testSweeper) GetSweepFeeDetails(ctx context.Context, return 0, 0, 0, fmt.Errorf("zero sweepConfTarget") case sweepConfTarget == 1: - feeRate = 30000 + return 0, 0, 0, fmt.Errorf("sweepConfTarget is 1") case sweepConfTarget == 2: feeRate = 25000 @@ -213,8 +213,8 @@ func TestLoopOutSweepFeerateProvider(t *testing.T) { height: 800_999, amount: 1_000_000, protocolVersion: loopdb.ProtocolVersionMuSig2, - wantConfTarget: 1, - wantFeeRate: 33000, + wantConfTarget: 2, + wantFeeRate: 27500, }, { name: "expired", @@ -222,8 +222,8 @@ func TestLoopOutSweepFeerateProvider(t *testing.T) { height: 801_000, amount: 1_000_000, protocolVersion: loopdb.ProtocolVersionMuSig2, - wantConfTarget: 1, - wantFeeRate: 33000, + wantConfTarget: 2, + wantFeeRate: 27500, }, }