mirror of
https://github.com/bitcoin-s/bitcoin-s.git
synced 2025-02-24 06:57:51 +01:00
Refactor pending receives/spent states into one spot (#4026)
This commit is contained in:
parent
d7f12be1d4
commit
a3dba47970
2 changed files with 12 additions and 13 deletions
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue