Merge pull request #609 from wozz/bitven
[electrum-nvc.git] / plugins / exchange_rate.py
index 6be1610..b8e0062 100644 (file)
@@ -291,6 +291,7 @@ class Plugin(BasePlugin):
     def init(self):
         self.win = self.gui.main_window
         self.win.connect(self.win, SIGNAL("refresh_currencies()"), self.win.update_status)
+        self.btc_rate = Decimal(0.0)
         # Do price discovery
         self.exchanger = Exchanger(self)
         self.exchanger.start()
@@ -308,10 +309,12 @@ class Plugin(BasePlugin):
     def create_quote_text(self, btc_balance):
         quote_currency = self.config.get("currency", "EUR")
         self.exchanger.use_exchange = self.config.get("use_exchange", "Blockchain")
-        quote_balance = self.exchanger.exchange(btc_balance, quote_currency)
-        if quote_balance is None:
+        cur_rate = self.exchanger.exchange(Decimal(1.0), quote_currency)
+        if cur_rate is None:
             quote_text = ""
         else:
+            quote_balance = btc_balance * Decimal(cur_rate)
+            self.btc_rate = cur_rate
             quote_text = "%.2f %s" % (quote_balance, quote_currency)
         return quote_text
 
@@ -366,7 +369,10 @@ class Plugin(BasePlugin):
                     pass
                 tx_time = int(tx_info['timestamp'])
                 tx_time_str = datetime.datetime.fromtimestamp(tx_time).strftime('%Y-%m-%d')
-                tx_USD_val = "%.2f %s" % (Decimal(tx_info['value']) / 100000000 * Decimal(resp_hist['bpi'][tx_time_str]), "USD")
+                try:
+                    tx_USD_val = "%.2f %s" % (Decimal(tx_info['value']) / 100000000 * Decimal(resp_hist['bpi'][tx_time_str]), "USD")
+                except KeyError:
+                    tx_USD_val = "%.2f %s" % (self.btc_rate * Decimal(tx_info['value'])/100000000 , "USD")
 
                 item.setText(5, tx_USD_val)
                 if Decimal(tx_info['value']) < 0: