def seed_dialog(self, is_restore=True): d = QDialog() d.setModal(1) 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)." + ' ') else: msg = _("Your seed is important! To make sure that you have properly saved your seed, please type it here." + ' ') 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 = 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(ok_cancel_buttons(d, _('Next'))) d.setLayout(vbox) if not d.exec_(): return try: seed = str(seed_e.toPlainText()) seed.decode('hex') except: try: seed = mnemonic.mn_decode( seed.split() ) except: QMessageBox.warning(None, _('Error'), _('I cannot decode this'), _('OK')) return if not seed: QMessageBox.warning(None, _('Error'), _('No seed'), _('OK')) return 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 seed_dialog(self, is_restore=True): if self.layout(): QWidget().setLayout(self.layout()) vbox = QVBoxLayout(self) if is_restore: msg = _("Please enter your wallet seed." + " ") msg += _("Your seed can be entered as a sequence of words, or as a hexadecimal string." + " \n") else: msg = ( _("Your seed is important!") + "\n" + _("To make sure that you have properly saved your seed, please retype it here." + " ") ) logo = QLabel() logo.setPixmap(QPixmap(":icons/seed.png").scaledToWidth(56)) logo.setMaximumWidth(60) label = QLabel(msg) label.setWordWrap(True) seed_e = QTextEdit() seed_e.setMaximumHeight(100) vbox.addWidget(label) grid = QGridLayout() grid.addWidget(logo, 0, 0) grid.addWidget(seed_e, 0, 1) vbox.addLayout(grid) vbox.addStretch(1) vbox.addLayout(ok_cancel_buttons(self, _("Next"))) if not self.exec_(): return try: seed = str(seed_e.toPlainText()) seed.decode("hex") except: try: seed = mnemonic.mn_decode(seed.split()) except: QMessageBox.warning(None, _("Error"), _("I cannot decode this"), _("OK")) return if not seed: QMessageBox.warning(None, _("Error"), _("No seed"), _("OK")) return return seed
def run_recovery_dialog(): message = "Please enter your wallet seed or the corresponding mnemonic list of words, and the gap limit of your wallet." dialog = gtk.MessageDialog( parent = None, flags = gtk.DIALOG_MODAL, buttons = gtk.BUTTONS_OK_CANCEL, message_format = message) vbox = dialog.vbox dialog.set_default_response(gtk.RESPONSE_OK) # ask seed, server and gap in the same dialog seed_box = gtk.HBox() seed_label = gtk.Label('Seed or mnemonic:') seed_label.set_size_request(150,-1) seed_box.pack_start(seed_label, False, False, 10) seed_label.show() seed_entry = gtk.Entry() seed_entry.show() seed_entry.set_size_request(450,-1) seed_box.pack_start(seed_entry, False, False, 10) add_help_button(seed_box, '.') seed_box.show() vbox.pack_start(seed_box, False, False, 5) dialog.show() r = dialog.run() seed = seed_entry.get_text() dialog.destroy() if r==gtk.RESPONSE_CANCEL: return False try: seed.decode('hex') except Exception: print_error("Warning: Not hex, trying decode") seed = mnemonic.mn_decode( seed.split(' ') ) if not seed: show_message("no seed") return False return seed
def run_recovery_dialog(): message = "Please enter your wallet seed or the corresponding mnemonic list of words, and the gap limit of your wallet." dialog = gtk.MessageDialog( parent = None, flags = gtk.DIALOG_MODAL, buttons = gtk.BUTTONS_OK_CANCEL, message_format = message) vbox = dialog.vbox dialog.set_default_response(gtk.RESPONSE_OK) # ask seed, server and gap in the same dialog seed_box = gtk.HBox() seed_label = gtk.Label('Seed or mnemonic:') seed_label.set_size_request(150,-1) seed_box.pack_start(seed_label, False, False, 10) seed_label.show() seed_entry = gtk.Entry() seed_entry.show() seed_entry.set_size_request(450,-1) seed_box.pack_start(seed_entry, False, False, 10) add_help_button(seed_box, '.') seed_box.show() vbox.pack_start(seed_box, False, False, 5) dialog.show() r = dialog.run() seed = seed_entry.get_text() dialog.destroy() if r==gtk.RESPONSE_CANCEL: return False try: seed.decode('hex') except: print_error("Warning: Not hex, trying decode") seed = mnemonic.mn_decode( seed.split(' ') ) if not seed: show_message("no seed") return False return seed
def seed_dialog(self, is_restore=True): d = QDialog() d.setModal(1) 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)." + ' ') else: msg = _( "Your seed is important! To make sure that you have properly saved your seed, please type it here." + ' ') 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 = 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(ok_cancel_buttons(d, _('Next'))) d.setLayout(vbox) if not d.exec_(): return try: seed = str(seed_e.toPlainText()) seed.decode('hex') except: try: seed = mnemonic.mn_decode(seed.split()) except: QMessageBox.warning(None, _('Error'), _('I cannot decode this'), _('OK')) return if not seed: QMessageBox.warning(None, _('Error'), _('No seed'), _('OK')) return 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 run_recovery_dialog(wallet): message = "Please enter your wallet seed or the corresponding mnemonic list of words, and the gap limit of your wallet." dialog = gtk.MessageDialog( parent = None, flags = gtk.DIALOG_MODAL, buttons = gtk.BUTTONS_OK_CANCEL, message_format = message) vbox = dialog.vbox dialog.set_default_response(gtk.RESPONSE_OK) # ask seed, server and gap in the same dialog seed_box = gtk.HBox() seed_label = gtk.Label('Seed or mnemonic:') seed_label.set_size_request(150,-1) seed_box.pack_start(seed_label, False, False, 10) seed_label.show() seed_entry = gtk.Entry() seed_entry.show() seed_entry.set_size_request(450,-1) seed_box.pack_start(seed_entry, False, False, 10) add_help_button(seed_box, '.') seed_box.show() vbox.pack_start(seed_box, False, False, 5) gap = gtk.HBox() gap_label = gtk.Label('Gap limit:') gap_label.set_size_request(150,10) gap_label.show() gap.pack_start(gap_label,False, False, 10) gap_entry = gtk.Entry() gap_entry.set_text("%d"%wallet.gap_limit) gap_entry.connect('changed', numbify, True) gap_entry.show() gap.pack_start(gap_entry,False,False, 10) add_help_button(gap, 'The maximum gap that is allowed between unused addresses in your wallet. During wallet recovery, this parameter is used to decide when to stop the recovery process. If you increase this value, you will need to remember it in order to be able to recover your wallet from seed.') gap.show() vbox.pack_start(gap, False,False, 5) dialog.show() r = dialog.run() gap = gap_entry.get_text() seed = seed_entry.get_text() dialog.destroy() if r==gtk.RESPONSE_CANCEL: return False try: gap = int(gap) except: show_message("error") return False try: seed.decode('hex') except: print_error("Warning: Not hex, trying decode") seed = mnemonic.mn_decode( seed.split(' ') ) if not seed: show_message("no seed") return False return seed, gap
def run_recovery_dialog(wallet): message = "Please enter your wallet seed or the corresponding mnemonic list of words, and the gap limit of your wallet." dialog = gtk.MessageDialog(parent=None, flags=gtk.DIALOG_MODAL, buttons=gtk.BUTTONS_OK_CANCEL, message_format=message) vbox = dialog.vbox dialog.set_default_response(gtk.RESPONSE_OK) # ask seed, server and gap in the same dialog seed_box = gtk.HBox() seed_label = gtk.Label('Seed or mnemonic:') seed_label.set_size_request(150, -1) seed_box.pack_start(seed_label, False, False, 10) seed_label.show() seed_entry = gtk.Entry() seed_entry.show() seed_entry.set_size_request(450, -1) seed_box.pack_start(seed_entry, False, False, 10) add_help_button(seed_box, '.') seed_box.show() vbox.pack_start(seed_box, False, False, 5) gap = gtk.HBox() gap_label = gtk.Label('Gap limit:') gap_label.set_size_request(150, 10) gap_label.show() gap.pack_start(gap_label, False, False, 10) gap_entry = gtk.Entry() gap_entry.set_text("%d" % wallet.gap_limit) gap_entry.connect('changed', numbify, True) gap_entry.show() gap.pack_start(gap_entry, False, False, 10) add_help_button( gap, 'The maximum gap that is allowed between unused addresses in your wallet. During wallet recovery, this parameter is used to decide when to stop the recovery process. If you increase this value, you will need to remember it in order to be able to recover your wallet from seed.' ) gap.show() vbox.pack_start(gap, False, False, 5) dialog.show() r = dialog.run() gap = gap_entry.get_text() seed = seed_entry.get_text() dialog.destroy() if r == gtk.RESPONSE_CANCEL: return False try: gap = int(gap) except: show_message("error") return False try: seed.decode('hex') except: print_error("Warning: Not hex, trying decode") seed = mnemonic.mn_decode(seed.split(' ')) if not seed: show_message("no seed") return False return seed, gap