Refactor pending receives/spent states into one spot (#4026)

This commit is contained in:
Chris Stewart 2022-03-19 13:25:26 -05:00 committed by GitHub
parent d7f12be1d4
commit a3dba47970
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 13 deletions

View file

@ -41,12 +41,16 @@ object TxoState extends StringFactory[TxoState] {
/** Means we have spent this utxo, and it is fully confirmed */
final case object ConfirmedSpent extends SpentState
val pendingReceivedStates: Set[TxoState] = {
Set(PendingConfirmationsReceived, BroadcastReceived, ImmatureCoinbase)
}
val pendingSpentStates = {
Set(BroadcastSpent, PendingConfirmationsSpent)
}
val pendingConfStates: Set[TxoState] =
Set(BroadcastSpent,
BroadcastReceived,
ImmatureCoinbase,
PendingConfirmationsReceived,
PendingConfirmationsSpent)
pendingReceivedStates ++ pendingSpentStates
val confirmedStates: Set[TxoState] =
Set(TxoState.ConfirmedReceived, TxoState.ConfirmedSpent)

View file

@ -346,12 +346,7 @@ abstract class Wallet
}
override def getUnconfirmedBalance(): Future[CurrencyUnit] = {
filterThenSum(utxo =>
utxo.state == PendingConfirmationsReceived || utxo.state == BroadcastReceived)
.map { balance =>
logger.trace(s"Unconfirmed balance=${balance.satoshis}")
balance
}
filterThenSum(utxo => TxoState.pendingReceivedStates.contains(utxo.state))
}
override def getUnconfirmedBalance(
@ -361,7 +356,7 @@ abstract class Wallet
} yield {
val unconfirmed = allUnspent.filter { utxo =>
HDAccount.isSameAccount(utxo.privKeyPath.path, account) &&
(utxo.state == PendingConfirmationsReceived || utxo.state == BroadcastReceived)
TxoState.pendingReceivedStates.contains(utxo.state)
}
unconfirmed.foldLeft(CurrencyUnits.zero)(_ + _.output.value)
}
@ -370,7 +365,7 @@ abstract class Wallet
override def getUnconfirmedBalance(tag: AddressTag): Future[CurrencyUnit] = {
spendingInfoDAO.findAllUnspentForTag(tag).map { allUnspent =>
val confirmed = allUnspent.filter(utxo =>
utxo.state == PendingConfirmationsReceived || utxo.state == BroadcastReceived)
TxoState.pendingReceivedStates.contains(utxo.state))
confirmed.foldLeft(CurrencyUnits.zero)(_ + _.output.value)
}
}