URI: 
       tdistinction between unconfirmed and unverified transactions - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit c95c80163da9dfa8d6f2dae86e973d87a689e47f
   DIR parent 827e29c1dce4574770e9e3ccd9707c7ab393eb5d
  HTML Author: ecdsa <ecdsa@github>
       Date:   Sat, 27 Apr 2013 17:48:27 +0200
       
       distinction between unconfirmed and unverified transactions
       
       Diffstat:
         M gui/gui_classic.py                  |      20 ++++++++++----------
         M gui/gui_gtk.py                      |       5 ++++-
         M lib/verifier.py                     |      22 ++++++++++++++++++++--
         M lib/wallet.py                       |       2 +-
       
       4 files changed, 35 insertions(+), 14 deletions(-)
       ---
   DIR diff --git a/gui/gui_classic.py b/gui/gui_classic.py
       t@@ -606,22 +606,22 @@ class ElectrumWindow(QMainWindow):
                self.history_list.clear()
                for item in self.wallet.get_tx_history(self.current_account):
                    tx_hash, conf, is_mine, value, fee, balance, timestamp = item
       -            if conf:
       +            if conf > 0:
                        try:
                            time_str = datetime.datetime.fromtimestamp( timestamp).isoformat(' ')[:-3]
                        except:
                            time_str = "unknown"
       -                if conf == -1:
       -                    icon = None
       -                if conf == 0:
       -                    icon = QIcon(":icons/unconfirmed.png")
       -                elif conf < 6:
       -                    icon = QIcon(":icons/clock%d.png"%conf)
       -                else:
       -                    icon = QIcon(":icons/confirmed.png")
       -            else:
       +
       +            if conf == -1:
       +                time_str = 'unverified'
       +                icon = None
       +            elif conf == 0:
                        time_str = 'pending'
                        icon = QIcon(":icons/unconfirmed.png")
       +            elif conf < 6:
       +                icon = QIcon(":icons/clock%d.png"%conf)
       +            else:
       +                icon = QIcon(":icons/confirmed.png")
        
                    if value is not None:
                        v_str = self.format_amount(value, True)
   DIR diff --git a/gui/gui_gtk.py b/gui/gui_gtk.py
       t@@ -1167,12 +1167,15 @@ class ElectrumWindow:
        
                for item in self.wallet.get_tx_history():
                    tx_hash, conf, is_mine, value, fee, balance, timestamp = item
       -            if conf:
       +            if conf > 0:
                        try:
                            time_str = datetime.datetime.fromtimestamp( timestamp).isoformat(' ')[:-3]
                        except:
                            time_str = "------"
                        conf_icon = gtk.STOCK_APPLY
       +            elif conf == -1:
       +                time_str = 'unverified'
       +                conf_icon = None
                    else:
                        time_str = 'pending'
                        conf_icon = gtk.STOCK_EXECUTE
   DIR diff --git a/lib/verifier.py b/lib/verifier.py
       t@@ -52,15 +52,33 @@ class WalletVerifier(threading.Thread):
                    if tx in self.verified_tx:
                        height, timestamp, pos = self.verified_tx[tx]
                        conf = (self.local_height - height + 1)
       +                if conf <= 0: timestamp = None
       +
       +            elif tx in self.transactions:
       +                conf = -1
       +                timestamp = None
       +
                    else:
                        conf = 0
       -
       -            if conf <= 0:
                        timestamp = None
        
                return conf, timestamp
        
        
       +    def get_txpos(self, tx_hash):
       +        "return position, even if the tx is unverified"
       +        with self.lock:
       +            x = self.verified_tx.get(tx_hash)
       +            y = self.transactions.get(tx_hash)
       +        if x:
       +            height, timestamp, pos = x
       +            return height, pos
       +        elif y:
       +            return y, 0
       +        else:
       +            return 1e12, 0
       +
       +
            def get_height(self, tx_hash):
                with self.lock:
                    v = self.verified_tx.get(tx_hash)
   DIR diff --git a/lib/wallet.py b/lib/wallet.py
       t@@ -670,7 +670,7 @@ class Wallet:
            def get_tx_history(self, account=None):
                with self.transaction_lock:
                    history = self.transactions.items()
       -            history.sort(key = lambda x: self.verifier.verified_tx.get(x[0]) if self.verifier.verified_tx.get(x[0]) else (1e12,0,0))
       +            history.sort(key = lambda x: self.verifier.get_txpos(x[0]))
                    result = []
            
                    balance = 0