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 */
|
/** 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)
|
||||||
|
|
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue