From d2b84bd6438f55628b662108205fb1d73f6b335f Mon Sep 17 00:00:00 2001 From: medvedev1088 Date: Wed, 4 Aug 2021 22:48:30 +0700 Subject: [PATCH] Fix UnicodeDecodeError thrown when token returns undecodeable symbol or name --- ethereumetl/service/eth_token_service.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/ethereumetl/service/eth_token_service.py b/ethereumetl/service/eth_token_service.py index afce8d8..b9f0338 100644 --- a/ethereumetl/service/eth_token_service.py +++ b/ethereumetl/service/eth_token_service.py @@ -90,10 +90,19 @@ class EthTokenService(object): else: return result - def _bytes_to_string(self, b): + def _bytes_to_string(self, b, ignore_errors=True): if b is None: return b - b = b.decode('utf-8') + + try: + b = b.decode('utf-8') + except UnicodeDecodeError as e: + if ignore_errors: + logger.exception('A UnicodeDecodeError exception occurred while trying to decode bytes to string') + b = None + else: + raise e + if self._function_call_result_transformer is not None: b = self._function_call_result_transformer(b) return b