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