electrum

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

commit f32f85fb78e0321f705e0f08dd950a43381cfe17
parent 21c0578ca8eff0a3576008253cb45a5ba27d202c
Author: thomasv <thomasv@gitorious>
Date:   Wed, 10 Apr 2013 11:53:13 +0200

better seed dialog + fix bug with restore

Diffstat:
Melectrum | 4+---
Mgui/gui_classic.py | 53+++++++++++++++++++++++++----------------------------
2 files changed, 26 insertions(+), 31 deletions(-)

diff --git a/electrum b/electrum @@ -136,10 +136,7 @@ if __name__ == '__main__': if a =='create': wallet.init_seed(None) - # display seed gui.show_seed() - - # retype seed if not gui.verify_seed(): exit() @@ -155,6 +152,7 @@ if __name__ == '__main__': wallet.init_sequence(str(seed)) else: wallet.init_seed(str(seed)) + wallet.save_seed() # select a server. s = gui.network_dialog() diff --git a/gui/gui_classic.py b/gui/gui_classic.py @@ -2209,7 +2209,6 @@ class ElectrumWindow(QMainWindow): else: server_protocol.model().setData(j, QtCore.QVariant(33), QtCore.Qt.UserRole-1) - if server: host, port, protocol = server.split(':') change_server(host,protocol) @@ -2223,7 +2222,7 @@ class ElectrumWindow(QMainWindow): # auto cycle autocycle_cb = QCheckBox(_('Try random servers if disconnected')) - autocycle_cb.setChecked(wallet.config.get('auto_cycle', False)) + autocycle_cb.setChecked(wallet.config.get('auto_cycle', True)) grid.addWidget(autocycle_cb, 3, 1, 3, 2) if not wallet.config.is_modifiable('auto_cycle'): autocycle_cb.setEnabled(False) @@ -2304,8 +2303,7 @@ class ElectrumGui: def verify_seed(self): r = self.seed_dialog(False) - if not r: return False - if r[0] != self.wallet.seed: + if r != self.wallet.seed: QMessageBox.warning(None, _('Error'), 'incorrect seed', 'OK') return False else: @@ -2320,48 +2318,39 @@ class ElectrumGui: vbox = QVBoxLayout() if is_restore: - msg = _("Please enter your wallet seed (or your master public key if you want to create a watching-only wallet)." + '\n') + msg = _("Please enter your wallet seed (or your master public key if you want to create a watching-only wallet)." + ' ') else: - msg = _("Please type your seed." + '\n') - - vbox.addWidget(QLabel(msg)) + msg = _("Your seed is important! To make sure that you have properly saved your seed, please type it here." + ' ') - grid = QGridLayout() - grid.setSpacing(8) + msg += _("Your seed can be entered as a sequence of words, or as a hexadecimal string."+ '\n') + + label=QLabel(msg) + label.setWordWrap(True) + vbox.addWidget(label) - seed_e = QLineEdit() - seed_e.setMinimumWidth(400) - grid.addWidget(QLabel(_('Seed or master public key') if is_restore else _('Seed')), 1, 0) - grid.addWidget(seed_e, 1, 1) - grid.addWidget(HelpButton(_("Your seed can be entered as a mnemonic (sequence of words), or as a hexadecimal string.")), 1, 3) + seed_e = QTextEdit() + seed_e.setMaximumHeight(100) + vbox.addWidget(seed_e) if is_restore: + grid = QGridLayout() + grid.setSpacing(8) gap_e = AmountEdit(None, True) gap_e.setText("5") grid.addWidget(QLabel(_('Gap limit')), 2, 0) grid.addWidget(gap_e, 2, 1) grid.addWidget(HelpButton(_('Keep the default value unless you modified this parameter in your wallet.')), 2, 3) + vbox.addLayout(grid) - vbox.addLayout(grid) vbox.addLayout(ok_cancel_buttons(d)) d.setLayout(vbox) if not d.exec_(): return - if is_restore: - try: - gap = int(unicode(gap_e.text())) - except: - QMessageBox.warning(None, _('Error'), 'error', 'OK') - return - else: - gap = None - try: - seed = str(seed_e.text()) + seed = str(seed_e.toPlainText()) seed.decode('hex') except: - print_error("Warning: Not hex, trying decode") try: seed = mnemonic.mn_decode( seed.split(' ') ) except: @@ -2372,7 +2361,15 @@ class ElectrumGui: QMessageBox.warning(None, _('Error'), _('No seed'), _('OK')) return - return seed, gap + if not is_restore: + return seed + else: + try: + gap = int(unicode(gap_e.text())) + except: + QMessageBox.warning(None, _('Error'), 'error', 'OK') + return + return seed, gap def network_dialog(self):