core: Fix bug in RescanStarted.entireRescanDoneF (#5654)

This commit is contained in:
Chris Stewart 2024-09-05 08:48:33 -05:00 committed by GitHub
parent feeb2618d6
commit 1939e9fd2e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 5 additions and 24 deletions

View file

@ -76,7 +76,7 @@ object RescanState {
b0 <- blocksMatchedF
recursive <- recursiveRescanP.future
b1 <- recursive match {
case r: RescanStarted => r.blocksMatchedF
case r: RescanStarted => r.entireRescanDoneF
case RescanDone | RescanAlreadyStarted | RescanNotNeeded =>
Future.successful(Vector.empty)
}
@ -170,5 +170,4 @@ object RescanState {
}
}
}
}

View file

@ -11,8 +11,6 @@ import org.bitcoins.testkit.wallet.{
BitcoinSWalletTestCachedBitcoindNewest,
WalletWithBitcoindRpc
}
import scala.concurrent.Future
import scala.concurrent.duration.DurationInt
class RescanHandlingTest extends BitcoinSWalletTestCachedBitcoindNewest {
@ -83,7 +81,7 @@ class RescanHandlingTest extends BitcoinSWalletTestCachedBitcoindNewest {
)
rescanState <- wallet.fullRescanNeutrinoWallet(DEFAULT_ADDR_BATCH_SIZE)
_ = assert(rescanState.isInstanceOf[RescanState.RescanStarted])
_ <- rescanState.asInstanceOf[RescanState.RescanStarted].blocksMatchedF
_ <- RescanState.awaitRescanDone(rescanState)
balanceAfterRescan <- wallet.getBalance()
} yield {
assert(balanceAfterRescan == initBalance)
@ -142,13 +140,7 @@ class RescanHandlingTest extends BitcoinSWalletTestCachedBitcoindNewest {
useCreationTime = false,
force = false
)
_ <- {
rescanState match {
case started: RescanState.RescanStarted =>
started.entireRescanDoneF
case _: RescanState => Future.unit
}
}
_ <- RescanState.awaitRescanDone(rescanState)
balance <- wallet.getBalance()
unconfirmedBalance <- wallet.getUnconfirmedBalance()
} yield {
@ -262,12 +254,7 @@ class RescanHandlingTest extends BitcoinSWalletTestCachedBitcoindNewest {
useCreationTime = true,
force = false
)
_ <- {
rescanState match {
case started: RescanState.RescanStarted => started.blocksMatchedF
case _: RescanState => Future.unit
}
}
_ <- RescanState.awaitRescanDone(rescanState)
balance <- wallet.getBalance()
unconfirmedBalance <- wallet.getUnconfirmedBalance()
} yield {
@ -311,12 +298,7 @@ class RescanHandlingTest extends BitcoinSWalletTestCachedBitcoindNewest {
useCreationTime = false,
force = false
)
_ <- {
rescanState match {
case started: RescanState.RescanStarted => started.blocksMatchedF
case _: RescanState => Future.unit
}
}
_ <- RescanState.awaitRescanDone(rescanState)
balanceAfterRescan <- wallet.getBalance()
} yield {
assert(balanceAfterRescan == CurrencyUnits.zero)