Skip to content

Commit

Permalink
fix bug in how reserved balance is calculated
Browse files Browse the repository at this point in the history
  • Loading branch information
eukreign committed Apr 16, 2021
1 parent 66c0537 commit e54c31d
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
5 changes: 4 additions & 1 deletion lbry/wallet/database.py
Original file line number Diff line number Diff line change
Expand Up @@ -1146,7 +1146,10 @@ async def get_detailed_balance(self, accounts, read_only=False, **constraints):
constraints['accounts'] = accounts
result = (await self.select_txos(
f"COALESCE(SUM(amount), 0) AS total,"
f"COALESCE(SUM(CASE WHEN txo_type != {TXO_TYPES['other']} THEN amount ELSE 0 END), 0) AS reserved,"
f"COALESCE(SUM("
f" CASE WHEN"
f" txo_type NOT IN ({TXO_TYPES['other']}, {TXO_TYPES['purchase']})"
f" THEN amount ELSE 0 END), 0) AS reserved,"
f"COALESCE(SUM("
f" CASE WHEN"
f" txo_type IN ({','.join(map(str, CLAIM_TYPES))})"
Expand Down
8 changes: 7 additions & 1 deletion tests/integration/blockchain/test_purchase_command.py
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,13 @@ async def test_seller_can_spend_received_purchase_funds(self):
await self.generate(1)
await self.ledger.wait(purchase)

await self.assertBalance(self.account, '10.987893')
# confirm that available and reserved take into account purchase received
self.assertEqual(await self.account.get_detailed_balance(), {
'total': 1099789300,
'available': 1098789300,
'reserved': 1000000,
'reserved_subtotals': {'claims': 1000000, 'supports': 0, 'tips': 0}
})
self.assertItemCount(await self.daemon.jsonrpc_utxo_list(), 2)

spend = await self.daemon.jsonrpc_wallet_send('10.5', address2)
Expand Down

0 comments on commit e54c31d

Please sign in to comment.