URI: 
       tmore robust tx_from_text() (fixes issue #281) - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit e5cbf5cb0a6dfb81f4f3f3e9525fcfb01eba9304
   DIR parent b75f8d795aaaae46435efb824b36a2d3886d4519
  HTML Author: thomasv <thomasv@gitorious>
       Date:   Sun, 15 Sep 2013 11:37:22 +0200
       
       more robust tx_from_text() (fixes issue #281)
       
       Diffstat:
         M gui/gui_classic/main_window.py      |      39 +++++++++++++++++--------------
       
       1 file changed, 22 insertions(+), 17 deletions(-)
       ---
   DIR diff --git a/gui/gui_classic/main_window.py b/gui/gui_classic/main_window.py
       t@@ -1637,17 +1637,28 @@ class ElectrumWindow(QMainWindow):
        
        
        
       -    def tx_dict_from_text(self, txt):
       +    def tx_from_text(self, txt):
       +        "json or raw hexadecimal"
       +        try:
       +            txt.decode('hex')
       +            tx = Transaction(txt)
       +            return tx
       +        except:
       +            pass
       +
                try:
                    tx_dict = json.loads(str(txt))
                    assert "hex" in tx_dict.keys()
                    assert "complete" in tx_dict.keys()
                    if not tx_dict["complete"]:
                        assert "input_info" in tx_dict.keys()
       +            tx = Transaction(tx_dict["hex"])
       +            return tx
                except:
       -            QMessageBox.critical(None, "Unable to parse transaction", _("Electrum was unable to parse your transaction"))
       -            return None
       -        return tx_dict
       +            pass
       +        
       +        QMessageBox.critical(None, "Unable to parse transaction", _("Electrum was unable to parse your transaction"))
       +
        
        
            def read_tx_from_file(self):
       t@@ -1660,7 +1671,7 @@ class ElectrumWindow(QMainWindow):
                except (ValueError, IOError, os.error), reason:
                    QMessageBox.critical(None,"Unable to read file or no transaction found", _("Electrum was unable to open your transaction file") + "\n" + str(reason))
        
       -        return self.tx_dict_from_text(file_content)
       +        return self.tx_from_text(file_content)
        
        
            @protected
       t@@ -1671,14 +1682,14 @@ class ElectrumWindow(QMainWindow):
                text = text_dialog(self, _('Input raw transaction'), _("Transaction:"), _("Load transaction"))
                if not text:
                    return
       -        tx_dict = self.tx_dict_from_text(text)
       -        if tx_dict:
       -            self.create_process_transaction_window(tx_dict)
       +        tx = self.tx_from_text(text)
       +        if tx:
       +            self.show_transaction(tx)
        
            def do_process_from_file(self):
       -        tx_dict = self.read_tx_from_file()
       -        if tx_dict: 
       -            self.create_process_transaction_window(tx_dict)
       +        tx = self.read_tx_from_file()
       +        if tx:
       +            self.show_transaction(tx)
        
            def do_process_from_csvReader(self, csvReader):
                outputs = []
       t@@ -1699,8 +1710,6 @@ class ElectrumWindow(QMainWindow):
                    return
        
                self.show_transaction(tx)
       -        #tx_dict = tx.as_dict()
       -        #self.create_process_transaction_window(tx_dict)
        
            def do_process_from_csv_file(self):
                fileName = self.getOpenFileName(_("Select your transaction CSV"), "*.csv")
       t@@ -1723,10 +1732,6 @@ class ElectrumWindow(QMainWindow):
                self.do_process_from_csvReader(csvReader)
        
        
       -    def create_process_transaction_window(self, tx_dict):
       -        tx = Transaction(tx_dict["hex"])
       -        self.show_transaction(tx)
       -
        
            @protected
            def do_export_privkeys(self, password):