diff --git a/app/src/main/java/to/bitkit/viewmodels/TransferViewModel.kt b/app/src/main/java/to/bitkit/viewmodels/TransferViewModel.kt index e66ccaf7e..e48d5ef40 100644 --- a/app/src/main/java/to/bitkit/viewmodels/TransferViewModel.kt +++ b/app/src/main/java/to/bitkit/viewmodels/TransferViewModel.kt @@ -892,10 +892,8 @@ class TransferViewModel @Inject constructor( private suspend fun hwFundingSatsPerVByte(): ULong = fetchHwFundingSatsPerVByte().getOrDefault(HW_FUNDING_FALLBACK_SATS_PER_VBYTE) - private suspend fun fetchHwFundingSatsPerVByte(): Result { - val speed = settingsStore.data.first().defaultTransactionSpeed - return lightningRepo.getFeeRateForSpeed(speed) - } + private suspend fun fetchHwFundingSatsPerVByte(): Result = + lightningRepo.getFeeRateForSpeed(TransactionSpeed.Fast) // endregion @@ -1108,7 +1106,7 @@ class TransferViewModel @Inject constructor( private const val HW_FUNDING_TX_VBYTES = 1_200uL /** Minimum fallback fee rate when fee estimates are temporarily unavailable. */ - private const val HW_FUNDING_FALLBACK_SATS_PER_VBYTE = 1uL + private const val HW_FUNDING_FALLBACK_SATS_PER_VBYTE = 3uL /** Upper bound for reconnecting a known device before the UI asks for reconnect. */ private val HW_RECONNECT_TIMEOUT = 30.seconds diff --git a/app/src/test/java/to/bitkit/viewmodels/TransferViewModelTest.kt b/app/src/test/java/to/bitkit/viewmodels/TransferViewModelTest.kt index ccd100f41..1173efe39 100644 --- a/app/src/test/java/to/bitkit/viewmodels/TransferViewModelTest.kt +++ b/app/src/test/java/to/bitkit/viewmodels/TransferViewModelTest.kt @@ -51,6 +51,7 @@ import to.bitkit.models.HwFundingSignedTx import to.bitkit.models.HwFundingTransaction import to.bitkit.models.HwWallet import to.bitkit.models.Toast +import to.bitkit.models.TransactionSpeed import to.bitkit.models.TransferType import to.bitkit.models.TransportType import to.bitkit.models.safe @@ -388,6 +389,7 @@ class TransferViewModelTest : BaseUnitTest() { sut.onTransferToSpendingHwConfirm(order, DEVICE_ID) advanceUntilIdle() + verify(lightningRepo).getFeeRateForSpeed(eq(TransactionSpeed.Fast), anyOrNull()) verify(hwWalletRepo).composeFundingTransaction( eq(DEVICE_ID), eq(order.payment?.onchain?.address.orEmpty()), @@ -1023,7 +1025,7 @@ class TransferViewModelTest : BaseUnitTest() { const val XPUB = "zpub-test" const val TXID = "tx-abc" const val FEE_RATE = 2uL - const val FALLBACK_FEE_RATE = 1uL + const val FALLBACK_FEE_RATE = 3uL const val MINING_FEE = 1_250uL } } diff --git a/changelog.d/next/1089.fixed.md b/changelog.d/next/1089.fixed.md new file mode 100644 index 000000000..31b1d3e18 --- /dev/null +++ b/changelog.d/next/1089.fixed.md @@ -0,0 +1 @@ +Hardware wallet transfers to spending now use a faster on-chain fee rate so funding confirms more reliably.