From c548cf156941d31fc2907a305cd3ccf416a4a83f Mon Sep 17 00:00:00 2001 From: "marek.galvanek" Date: Mon, 2 Mar 2026 20:27:04 +0100 Subject: [PATCH] fix: refine SUI balance parsing to handle primary coin separately --- blockapi/v2/api/sui.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/blockapi/v2/api/sui.py b/blockapi/v2/api/sui.py index ae8f8b4a..e8663ec7 100644 --- a/blockapi/v2/api/sui.py +++ b/blockapi/v2/api/sui.py @@ -32,12 +32,17 @@ def _yield_available_balance(self, address: str) -> Iterable[BalanceItem]: response = self._get('get_balances', address=address) for response_coin in response: - coin = Coin.from_api( - blockchain=Blockchain.SUI, - decimals=response_coin.get('decimals'), - symbol=response_coin.get('coinSymbol'), - name=response_coin.get('coinName'), - address=self._format_address(response_coin.get('coinType')), + address = self._format_address(response_coin.get('coinType')) + coin = ( + self.coin + if address == self.coin.address + else Coin.from_api( + blockchain=Blockchain.SUI, + decimals=response_coin.get('decimals'), + symbol=response_coin.get('coinSymbol'), + name=response_coin.get('coinName'), + address=address, + ) ) yield BalanceItem.from_api(