def seed_input_bip39(self, title, message, is_seed): slayout = SeedInputLayout(self, message, is_seed) vbox = QVBoxLayout() vbox.addLayout(slayout.layout()) if self.opt_ext or self.opt_bip39: vbox.addStretch(1) # vbox.addWidget(QLabel(_('Options') + ':')) if self.opt_ext: cb_pass = QCheckBox(_('Add a passphrase to this seed')) # vbox.addWidget(cb_pass) if self.opt_bip39: def f(b): if b: msg = ' '.join([ '<b>' + _('Warning') + '</b>' + ': ', _('BIP39 seeds may not be supported in the future.'), '<br/><br/>', _('As technology matures, Ulord address generation may change.'), _('However, BIP39 seeds do not include a version number.'), _('As a result, it is not possible to infer your wallet type from a BIP39 seed.'), '<br/><br/>', _('We do not guarantee that BIP39 seeds will be supported in future versions of UWalletLite.'), _('We recommend to use seeds generated by UWalletLite or compatible wallets.'), ]) # self.show_warning(msg) slayout.seed_type_label.setVisible(not b) slayout.is_seed = (lambda x: bool(x)) if b else is_seed slayout.on_edit() cb_bip39 = QCheckBox(_('BIP39 seed')) cb_bip39.toggled.connect(f) f(True) # vbox.addWidget(cb_bip39) self.set_main_layout(vbox, title, next_enabled=False) seed = slayout.get_seed()
def request_seed(self, title, is_valid=None): is_valid = is_valid or Wallet.is_any slayout = SeedInputLayout() def sanitized_seed(): return clean_text(slayout.seed_edit()) def set_enabled(): self.next_button.setEnabled(is_valid(sanitized_seed())) slayout.seed_edit().textChanged.connect(set_enabled) self.set_main_layout(slayout.layout(), title, next_enabled=False) return sanitized_seed()
def text_input(self, title, message, is_valid): slayout = SeedInputLayout(title=message) def sanitized_seed(): return clean_text(slayout.seed_edit()) def set_enabled(): self.next_button.setEnabled(is_valid(sanitized_seed())) slayout.seed_edit().textChanged.connect(set_enabled) self.set_main_layout(slayout.layout(), title, next_enabled=False) seed = sanitized_seed() return seed
def seed_input(self, title, message, is_seed): slayout = SeedInputLayout(self, message, is_seed) vbox = QVBoxLayout() vbox.addLayout(slayout.layout()) if self.opt_bip39: vbox.addStretch(1) vbox.addWidget(QLabel(_('Options') + ':')) def f(b): slayout.is_seed = (lambda x: bool(x)) if b else is_valid slayout.on_edit() cb_bip39 = QCheckBox(_('BIP39/BIP44 seed')) cb_bip39.toggled.connect(f) vbox.addWidget(cb_bip39) self.set_main_layout(vbox, title, next_enabled=False) seed = slayout.get_seed() is_bip39 = cb_bip39.isChecked() if self.opt_bip39 else False return seed, is_bip39
def request_many(self, n, xpub_hot=None): vbox = QVBoxLayout() scroll = QScrollArea() scroll.setWidgetResizable(True) scroll.setFrameShape(QFrame.NoFrame) vbox.addWidget(scroll) w = QWidget() innerVbox = QVBoxLayout(w) scroll.setWidget(w) entries = [] if xpub_hot: layout = SeedDisplayLayout(xpub_hot, title=MSG_SHOW_MPK, sid='hot') else: layout = SeedInputLayout(title=MSG_ENTER_SEED_OR_MPK, sid='hot') entries.append(layout.seed_edit()) innerVbox.addLayout(layout.layout()) for i in range(n): msg = MSG_COSIGNER % (i + 1) if xpub_hot else MSG_ENTER_SEED_OR_MPK layout = SeedInputLayout(title=msg, sid='cold') innerVbox.addLayout(layout.layout()) entries.append(layout.seed_edit()) def get_texts(): return [clean_text(entry) for entry in entries] def set_enabled(): texts = get_texts() is_valid = Wallet.is_xpub if xpub_hot else Wallet.is_any all_valid = all(is_valid(text) for text in texts) if xpub_hot: texts.append(xpub_hot) has_dups = len(set(texts)) < len(texts) self.next_button.setEnabled(all_valid and not has_dups) for e in entries: e.textChanged.connect(set_enabled) self.set_main_layout(vbox, next_enabled=False) return get_texts()