Пример #1
0
    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()
Пример #2
0
 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()
Пример #3
0
 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
Пример #4
0
 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
Пример #5
0
 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()
Пример #6
0
 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
Пример #7
0
    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()