forked from LBRYCommunity/lbry-sdk
fix bug in how reserved balance is calculated
This commit is contained in:
parent
66c0537251
commit
e54c31d2d5
2 changed files with 11 additions and 2 deletions
|
@ -1146,7 +1146,10 @@ class Database(SQLiteMixin):
|
||||||
constraints['accounts'] = accounts
|
constraints['accounts'] = accounts
|
||||||
result = (await self.select_txos(
|
result = (await self.select_txos(
|
||||||
f"COALESCE(SUM(amount), 0) AS total,"
|
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"COALESCE(SUM("
|
||||||
f" CASE WHEN"
|
f" CASE WHEN"
|
||||||
f" txo_type IN ({','.join(map(str, CLAIM_TYPES))})"
|
f" txo_type IN ({','.join(map(str, CLAIM_TYPES))})"
|
||||||
|
|
|
@ -184,7 +184,13 @@ class PurchaseCommandTests(CommandTestCase):
|
||||||
await self.generate(1)
|
await self.generate(1)
|
||||||
await self.ledger.wait(purchase)
|
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)
|
self.assertItemCount(await self.daemon.jsonrpc_utxo_list(), 2)
|
||||||
|
|
||||||
spend = await self.daemon.jsonrpc_wallet_send('10.5', address2)
|
spend = await self.daemon.jsonrpc_wallet_send('10.5', address2)
|
||||||
|
|
Loading…
Reference in a new issue