From 6122e62bd27c3f322782c2a4b40c500273506d59 Mon Sep 17 00:00:00 2001 From: hanjano Date: Mon, 3 Feb 2025 11:45:07 +0100 Subject: [PATCH] fix: Don't import negative balances --- blockapi/test/v2/api/debank/data/bio_pools.json | 2 +- blockapi/test/v2/api/debank/test_debank_portfolio_parser.py | 4 ++++ blockapi/v2/api/debank.py | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/blockapi/test/v2/api/debank/data/bio_pools.json b/blockapi/test/v2/api/debank/data/bio_pools.json index 71a58375..c294beba 100644 --- a/blockapi/test/v2/api/debank/data/bio_pools.json +++ b/blockapi/test/v2/api/debank/data/bio_pools.json @@ -218,7 +218,7 @@ }, "asset_token_list":[ { - "amount":988622.9649515124, + "amount":-988622.9649515124, "chain":"eth", "claimable_amount":4902.29790749049, "decimals":18, diff --git a/blockapi/test/v2/api/debank/test_debank_portfolio_parser.py b/blockapi/test/v2/api/debank/test_debank_portfolio_parser.py index 54472066..2e9db9ce 100644 --- a/blockapi/test/v2/api/debank/test_debank_portfolio_parser.py +++ b/blockapi/test/v2/api/debank/test_debank_portfolio_parser.py @@ -163,3 +163,7 @@ def test_parse_pools(debank_api, bio_polls): assert parsed for data_item in parsed.data: assert data_item.items + + for data_item in parsed.data: + for item in data_item.items: + assert item.balance > Decimal('0') diff --git a/blockapi/v2/api/debank.py b/blockapi/v2/api/debank.py index f4189637..cf5e702b 100644 --- a/blockapi/v2/api/debank.py +++ b/blockapi/v2/api/debank.py @@ -323,6 +323,10 @@ def parse_item( asset_type = AssetType.DEBT amount = -amount + if amount < 0: + logger.info(f'Fixing negative item asset_type={asset_type}') + amount = -amount + if raw_amount == 0 and amount != 0: raw_amount = decimals_to_raw(amount, coin.decimals)