diff --git a/lbry/wallet/ledger.py b/lbry/wallet/ledger.py index 529f3243f..0376cb5a0 100644 --- a/lbry/wallet/ledger.py +++ b/lbry/wallet/ledger.py @@ -710,6 +710,10 @@ class Ledger(metaclass=LedgerRegistry): accounts=accounts ) txo.received_tips = tips + if not include_purchase_receipt: + # txo's are cached across wallets, this prevents + # leaking receipts between wallets + txo.purchase_receipt = None return txos, blocked, outputs.offset, outputs.total async def resolve(self, accounts, urls, **kwargs): diff --git a/tests/integration/blockchain/test_resolve_command.py b/tests/integration/blockchain/test_resolve_command.py index 1874f5f89..7b9b56196 100644 --- a/tests/integration/blockchain/test_resolve_command.py +++ b/tests/integration/blockchain/test_resolve_command.py @@ -317,8 +317,11 @@ class ResolveCommand(BaseResolveTestCase): 'priced', include_sent_supports=True, include_sent_tips=True, include_received_tips=True, wallet_id=wallet2.id ) + self.assertEqual('0.0', resolve['sent_supports']) self.assertEqual('0.0', resolve['sent_tips']) self.assertEqual('0.9', resolve['received_tips']) + self.assertEqual('1.4', resolve['meta']['support_amount']) + self.assertNotIn('purchase_receipt', resolve) # prevent leaking cached receipts class ResolveAfterReorg(BaseResolveTestCase): diff --git a/tests/unit/stream/test_stream_manager.py b/tests/unit/stream/test_stream_manager.py index a3967a844..4dfb76b35 100644 --- a/tests/unit/stream/test_stream_manager.py +++ b/tests/unit/stream/test_stream_manager.py @@ -105,7 +105,7 @@ async def get_mock_wallet(sd_hash, storage, balance=10.0, fee=None): network=manager.ledger.network, server=('fakespv.lbry.com', 50001) ) - async def mock_resolve(*args): + async def mock_resolve(*args, **kwargs): result = {txo.meta['permanent_url']: txo} claims = [ StreamManager._convert_to_old_resolve_output(manager, result)[txo.meta['permanent_url']]