From 994356be513ee19432e346054cbb826b678c34a3 Mon Sep 17 00:00:00 2001 From: adorda <angdmz@gmail.com> Date: Thu, 10 Oct 2019 15:45:08 -0300 Subject: [PATCH] nueva funcionalidad --- gateway/gateway.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gateway/gateway.py b/gateway/gateway.py index fe43567..1ba879c 100644 --- a/gateway/gateway.py +++ b/gateway/gateway.py @@ -48,6 +48,10 @@ class NoConnectionException(Exception): pass +class UnlockAccountException(Exception): + pass + + class Gateway: is_poa = False @@ -122,6 +126,20 @@ class Gateway: logger.debug("Transaction hash: {}".format(tx_hash.hex())) return tx_hash + def execute_transaction_with_unlock(self, function, passphrase, timeout, transaction_data): + logger.debug("Executing transaction for function {} / tx data {}".format(str(function), str(transaction_data))) + try: + self.w3.personal.unlockAccount(transaction_data['from'], passphrase, timeout) + except Exception as uae: + raise UnlockAccountException("Passphrase is incorrect") + try: + function.call(transaction_data) + except ValueError as ve: + raise InvalidTransactionException(ve.args[0]['message']) + tx_hash = function.transact(transaction_data) + logger.debug("Transaction hash: {}".format(tx_hash.hex())) + return tx_hash + def call_transaction(self, function, transaction_data=None, exception_message=""): if transaction_data is None: transaction_data = {} -- GitLab