electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit f352832879434ad61cf8e337ae1488aa4dd1f2dd
parent 6ecb9774619f871e41ecc1183a4528bcafc1f0a1
Author: ThomasV <thomasv@gitorious>
Date:   Mon, 10 Mar 2014 16:05:57 +0100

Merge branch 'master' of git://github.com/spesmilo/electrum

Diffstat:
Mgui/qt/transaction_dialog.py | 3+++
Mlib/transaction.py | 1+
Mlib/wallet.py | 2+-
Mplugins/exchange_rate.py | 30+++++++++++++++++++++++++++---
4 files changed, 32 insertions(+), 4 deletions(-)

diff --git 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 @@ -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 @@ -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 @@ -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: