2222 TRUE_STR_LOWER ,
2323)
2424from multiversx_sdk_cli .cosign_transaction import cosign_transaction
25- from multiversx_sdk_cli .errors import BadUserInput
25+ from multiversx_sdk_cli .errors import BadUserInput , TransactionSigningError
2626from multiversx_sdk_cli .guardian_relayer_data import GuardianRelayerData
2727from multiversx_sdk_cli .interfaces import IAccount
2828
@@ -47,7 +47,10 @@ def sign_transaction(
4747 self ._set_options_for_hash_signing_if_needed (transaction , sender , guardian , relayer )
4848
4949 if sender :
50- transaction .signature = sender .sign_transaction (transaction )
50+ try :
51+ transaction .signature = sender .sign_transaction (transaction )
52+ except Exception as e :
53+ raise TransactionSigningError (f"Could not sign transaction: { str (e )} " )
5154
5255 self ._sign_guarded_transaction_if_guardian (
5356 transaction ,
@@ -94,15 +97,21 @@ def _sign_guarded_transaction_if_guardian(
9497 ) -> Transaction :
9598 # If the guardian account is provided, we sign locally. Otherwise, we reach for the trusted cosign service.
9699 if guardian :
97- transaction .guardian_signature = guardian .sign_transaction (transaction )
100+ try :
101+ transaction .guardian_signature = guardian .sign_transaction (transaction )
102+ except Exception as e :
103+ raise TransactionSigningError (f"Could not sign transaction: { str (e )} " )
98104 elif transaction .guardian and guardian_service_url and guardian_2fa_code :
99105 cosign_transaction (transaction , guardian_service_url , guardian_2fa_code )
100106
101107 return transaction
102108
103109 def _sign_relayed_transaction_if_relayer (self , transaction : Transaction , relayer : Union [IAccount , None ]):
104110 if relayer and transaction .relayer :
105- transaction .relayer_signature = relayer .sign_transaction (transaction )
111+ try :
112+ transaction .relayer_signature = relayer .sign_transaction (transaction )
113+ except Exception as e :
114+ raise TransactionSigningError (f"Could not sign transaction: { str (e )} " )
106115
107116 def _convert_args_to_typed_values (self , arguments : list [str ]) -> list [Any ]:
108117 args : list [Any ] = []
0 commit comments