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 */ /** Means we have spent this utxo, and it is fully confirmed */
final case object ConfirmedSpent extends SpentState final case object ConfirmedSpent extends SpentState
val pendingReceivedStates: Set[TxoState] = {
Set(PendingConfirmationsReceived, BroadcastReceived, ImmatureCoinbase)
}
val pendingSpentStates = {
Set(BroadcastSpent, PendingConfirmationsSpent)
}
val pendingConfStates: Set[TxoState] = val pendingConfStates: Set[TxoState] =
Set(BroadcastSpent, pendingReceivedStates ++ pendingSpentStates
BroadcastReceived,
ImmatureCoinbase,
PendingConfirmationsReceived,
PendingConfirmationsSpent)
val confirmedStates: Set[TxoState] = val confirmedStates: Set[TxoState] =
Set(TxoState.ConfirmedReceived, TxoState.ConfirmedSpent) Set(TxoState.ConfirmedReceived, TxoState.ConfirmedSpent)

View file

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