diff --git a/gui/qt/transaction_dialog.py b/gui/qt/transaction_dialog.py index a3ededf59..6a7a1eb52 100644 --- a/gui/qt/transaction_dialog.py +++ b/gui/qt/transaction_dialog.py @@ -180,6 +180,9 @@ class TxDialog(QDialog): def add_io(self, vbox): + if self.tx.locktime > 0: + vbox.addWidget(QLabel("LockTime: %d\n" % self.tx.locktime)) + vbox.addWidget(QLabel(_("Inputs"))) lines = map(lambda x: x.get('prevout_hash') + ":%d"%x.get('prevout_n') + u'\t' + "%s"%x.get('address') , self.tx.inputs ) i_text = QTextEdit() diff --git a/lib/transaction.py b/lib/transaction.py index 136303b55..c9a1561de 100644 --- a/lib/transaction.py +++ b/lib/transaction.py @@ -376,6 +376,7 @@ class Transaction: self.inputs = self.d['inputs'] self.outputs = self.d['outputs'] self.outputs = map(lambda x: (x['address'],x['value']), self.outputs) + self.locktime = self.d['lockTime'] self.is_complete = is_complete def __str__(self): diff --git a/lib/wallet.py b/lib/wallet.py index 382a76207..894f0a50e 100644 --- a/lib/wallet.py +++ b/lib/wallet.py @@ -1847,7 +1847,7 @@ class Wallet(object): is_hex = False if is_hex or (uses_electrum_words and len(words) != 13): - print "old style wallet", len(words), words + #print "old style wallet", len(words), words w = OldWallet(storage) w.init_seed(seed) #hex else: diff --git a/plugins/exchange_rate.py b/plugins/exchange_rate.py index 4e57d17b1..b8e006298 100644 --- a/plugins/exchange_rate.py +++ b/plugins/exchange_rate.py @@ -14,6 +14,7 @@ from electrum_gui.qt.util import * EXCHANGES = ["BitcoinAverage", + "BitcoinVenezuela", "BitPay", "Blockchain", "BTCChina", @@ -78,6 +79,7 @@ class Exchanger(threading.Thread): self.use_exchange = self.parent.config.get('use_exchange', "Blockchain") update_rates = { "BitcoinAverage": self.update_ba, + "BitcoinVenezuela": self.update_bv, "BitPay": self.update_bp, "Blockchain": self.update_bc, "BTCChina": self.update_CNY, @@ -226,6 +228,22 @@ class Exchanger(threading.Thread): self.parent.set_currencies(quote_currencies) + def update_bv(self): + try: + jsonresp = self.get_json('api.bitcoinvenezuela.com', "/") + except Exception: + return + quote_currencies = {} + try: + for r in jsonresp["BTC"]: + quote_currencies[r] = Decimal(jsonresp["BTC"][r]) + with self.lock: + self.quote_currencies = quote_currencies + except KeyError: + pass + self.parent.set_currencies(quote_currencies) + + def update_ba(self): try: jsonresp = self.get_json('api.bitcoinaverage.com', "/ticker/global/all") @@ -273,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() @@ -290,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 @@ -348,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: