From 4fea9edd11f66536c5f6c56f8b0fabaaa18ca612 Mon Sep 17 00:00:00 2001 From: SomberNight Date: Fri, 8 Jun 2018 13:42:41 +0200 Subject: [PATCH] distinguish invalid otp from server failure when sending tx --- plugins/trustedcoin/kivy.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/plugins/trustedcoin/kivy.py b/plugins/trustedcoin/kivy.py index b183d0963..4c74fcdfe 100644 --- a/plugins/trustedcoin/kivy.py +++ b/plugins/trustedcoin/kivy.py @@ -32,7 +32,7 @@ from kivy.clock import Clock from electrum.i18n import _ from electrum.plugins import hook -from .trustedcoin import TrustedCoinPlugin, server, KIVY_DISCLAIMER +from .trustedcoin import TrustedCoinPlugin, server, KIVY_DISCLAIMER, TrustedCoinException @@ -62,10 +62,15 @@ class Plugin(TrustedCoinPlugin): def on_otp(self, wallet, tx, otp, on_success, on_failure): try: wallet.on_otp(tx, otp) - except: - Clock.schedule_once(lambda dt: on_failure(_("Invalid OTP"))) - return - on_success(tx) + except TrustedCoinException as e: + if e.status_code == 400: # invalid OTP + Clock.schedule_once(lambda dt: on_failure(_('Invalid one-time password.'))) + else: + Clock.schedule_once(lambda dt, bound_e=e: on_failure(_('Error') + ':' + str(bound_e))) + except Exception as e: + Clock.schedule_once(lambda dt, bound_e=e: on_failure(_('Error') + ':' + str(bound_e))) + else: + on_success(tx) def accept_terms_of_use(self, wizard): tos = server.get_terms_of_service()