mirror of
https://github.com/ACINQ/eclair.git
synced 2025-02-24 14:50:46 +01:00
Fix bug in enforceMinimumFeerate (#1629)
Using the `copy` method is risky because it's easy to forget newly added fields. Also the test didn't make much sense.
This commit is contained in:
parent
c13ae5e15f
commit
0e5ec4dce9
2 changed files with 9 additions and 7 deletions
|
@ -43,14 +43,16 @@ class FallbackFeeProvider(providers: Seq[FeeProvider], minFeeratePerByte: Feerat
|
|||
|
||||
object FallbackFeeProvider {
|
||||
|
||||
private def enforceMinimumFeerate(feeratesPerKB: FeeratesPerKB, minFeeratePerKB: FeeratePerKB): FeeratesPerKB = feeratesPerKB.copy(
|
||||
private def enforceMinimumFeerate(feeratesPerKB: FeeratesPerKB, minFeeratePerKB: FeeratePerKB): FeeratesPerKB = FeeratesPerKB(
|
||||
mempoolMinFee = feeratesPerKB.mempoolMinFee.max(minFeeratePerKB),
|
||||
block_1 = feeratesPerKB.block_1.max(minFeeratePerKB),
|
||||
blocks_2 = feeratesPerKB.blocks_2.max(minFeeratePerKB),
|
||||
blocks_6 = feeratesPerKB.blocks_6.max(minFeeratePerKB),
|
||||
blocks_12 = feeratesPerKB.blocks_12.max(minFeeratePerKB),
|
||||
blocks_36 = feeratesPerKB.blocks_36.max(minFeeratePerKB),
|
||||
blocks_72 = feeratesPerKB.blocks_72.max(minFeeratePerKB)
|
||||
blocks_72 = feeratesPerKB.blocks_72.max(minFeeratePerKB),
|
||||
blocks_144 = feeratesPerKB.blocks_144.max(minFeeratePerKB),
|
||||
blocks_1008 = feeratesPerKB.blocks_1008.max(minFeeratePerKB)
|
||||
)
|
||||
|
||||
}
|
||||
|
|
|
@ -71,11 +71,11 @@ class FallbackFeeProviderSpec extends AnyFunSuite {
|
|||
}
|
||||
|
||||
test("ensure minimum feerate") {
|
||||
val feeratePerKB = FeeratePerKB(1000 sat)
|
||||
val constantFeeProvider = new ConstantFeeProvider(FeeratesPerKB(feeratePerKB, feeratePerKB, feeratePerKB, feeratePerKB, feeratePerKB, feeratePerKB, feeratePerKB, feeratePerKB, feeratePerKB))
|
||||
val fallbackFeeProvider = new FallbackFeeProvider(constantFeeProvider :: Nil, FeeratePerByte(2 sat))
|
||||
val expectedFeeratePerKB = FeeratePerKB(2000 sat)
|
||||
assert(await(fallbackFeeProvider.getFeerates) === FeeratesPerKB(expectedFeeratePerKB, expectedFeeratePerKB, expectedFeeratePerKB, expectedFeeratePerKB, expectedFeeratePerKB, expectedFeeratePerKB, expectedFeeratePerKB, feeratePerKB, feeratePerKB))
|
||||
val constantFeeProvider = new ConstantFeeProvider(FeeratesPerKB(FeeratePerKB(64000 sat), FeeratePerKB(32000 sat), FeeratePerKB(16000 sat), FeeratePerKB(8000 sat), FeeratePerKB(4000 sat), FeeratePerKB(2000 sat), FeeratePerKB(1500 sat), FeeratePerKB(1000 sat), FeeratePerKB(1000 sat)))
|
||||
val minFeeratePerByte = FeeratePerByte(2 sat)
|
||||
val minFeeratePerKB = FeeratePerKB(minFeeratePerByte)
|
||||
val fallbackFeeProvider = new FallbackFeeProvider(constantFeeProvider :: Nil, minFeeratePerByte)
|
||||
assert(await(fallbackFeeProvider.getFeerates) === FeeratesPerKB(FeeratePerKB(64000 sat), FeeratePerKB(32000 sat), FeeratePerKB(16000 sat), FeeratePerKB(8000 sat), FeeratePerKB(4000 sat), minFeeratePerKB, minFeeratePerKB, minFeeratePerKB, minFeeratePerKB))
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue