1
0

wizard: move pasphrase flow from Qt into Abstract Wizard

moves the separate passphrase flow logic from Qt into the Abstract
Wizard base class so the same flow can be shared between Qt and QML
This commit is contained in:
f321x
2025-07-08 09:52:17 +02:00
parent 250fdaefce
commit bb5b1b3932
2 changed files with 24 additions and 42 deletions

View File

@@ -94,8 +94,11 @@ class QENewWalletWizard(NewWalletWizard, QEAbstractWizard, MessageBoxMixin):
'wallet_type': {'gui': WCWalletType},
'keystore_type': {'gui': WCKeystoreType},
'create_seed': {'gui': WCCreateSeed},
'create_ext': {'gui': WCEnterExt},
'confirm_seed': {'gui': WCConfirmSeed},
'confirm_ext': {'gui': WCConfirmExt},
'have_seed': {'gui': WCHaveSeed},
'have_ext': {'gui': WCEnterExt},
'choose_hardware_device': {'gui': WCChooseHWDevice},
'script_and_derivation': {'gui': WCScriptAndDerivation},
'have_master_key': {'gui': WCHaveMasterKey},
@@ -103,6 +106,7 @@ class QENewWalletWizard(NewWalletWizard, QEAbstractWizard, MessageBoxMixin):
'multisig_cosigner_keystore': {'gui': WCCosignerKeystore},
'multisig_cosigner_key': {'gui': WCHaveMasterKey},
'multisig_cosigner_seed': {'gui': WCHaveSeed},
'multisig_cosigner_have_ext': {'gui': WCEnterExt},
'multisig_cosigner_hardware': {'gui': WCChooseHWDevice},
'multisig_cosigner_script_and_derivation': {'gui': WCScriptAndDerivation},
'imported': {'gui': WCImport},
@@ -122,47 +126,6 @@ class QENewWalletWizard(NewWalletWizard, QEAbstractWizard, MessageBoxMixin):
}
})
# insert seed extension entry/confirm as separate views
self.navmap_merge({
'create_seed': {
'next': lambda d: 'create_ext' if self.wants_ext(d) else 'confirm_seed'
},
'create_ext': {
'next': 'confirm_seed',
'gui': WCEnterExt
},
'confirm_seed': {
'next': lambda d: 'confirm_ext' if self.wants_ext(d) else self.on_have_or_confirm_seed(d),
'accept': lambda d: None if self.wants_ext(d) else self.maybe_master_pubkey(d)
},
'confirm_ext': {
'next': self.on_have_or_confirm_seed,
'accept': self.maybe_master_pubkey,
'gui': WCConfirmExt
},
'have_seed': {
'next': lambda d: 'have_ext' if self.wants_ext(d) else self.on_have_or_confirm_seed(d),
'accept': lambda d: None if self.wants_ext(d) else self.maybe_master_pubkey(d),
'last': lambda d: self.is_single_password() and not
(self.needs_derivation_path(d) or self.is_multisig(d) or self.wants_ext(d))
},
'have_ext': {
'next': self.on_have_or_confirm_seed,
'accept': self.maybe_master_pubkey,
'gui': WCEnterExt
},
'multisig_cosigner_seed': {
'next': lambda d: 'multisig_cosigner_have_ext' if self.wants_ext(d) else self.on_have_cosigner_seed(d),
'last': lambda d: self.is_single_password() and self.last_cosigner(d) and not
(self.needs_derivation_path(d) or self.wants_ext(d))
},
'multisig_cosigner_have_ext': {
'next': self.on_have_cosigner_seed,
'last': lambda d: self.is_single_password() and self.last_cosigner(d) and not self.needs_derivation_path(d),
'gui': WCEnterExt
},
})
run_hook('init_wallet_wizard', self)
@property

View File

@@ -391,14 +391,28 @@ class NewWalletWizard(KeystoreWizard):
'next': self.on_keystore_type
},
'create_seed': {
'next': 'confirm_seed'
'next': lambda d: 'create_ext' if self.wants_ext(d) else 'confirm_seed',
},
'create_ext': {
'next': 'confirm_seed',
},
'confirm_seed': {
'next': lambda d: 'confirm_ext' if self.wants_ext(d) else self.on_have_or_confirm_seed(d),
'accept': lambda d: None if self.wants_ext(d) else self.maybe_master_pubkey(d),
'last': lambda d: self.is_single_password() and not self.is_multisig(d) and not self.wants_ext(d),
},
'confirm_ext': {
'next': self.on_have_or_confirm_seed,
'accept': self.maybe_master_pubkey,
'last': lambda d: self.is_single_password() and not self.is_multisig(d)
},
'have_seed': {
'next': lambda d: 'have_ext' if self.wants_ext(d) else self.on_have_or_confirm_seed(d),
'accept': lambda d: None if self.wants_ext(d) else self.maybe_master_pubkey(d),
'last': lambda d: self.is_single_password() and not
(self.needs_derivation_path(d) or self.is_multisig(d) or self.wants_ext(d)),
},
'have_ext': {
'next': self.on_have_or_confirm_seed,
'accept': self.maybe_master_pubkey,
'last': lambda d: self.is_single_password() and not
@@ -428,6 +442,11 @@ class NewWalletWizard(KeystoreWizard):
'last': lambda d: self.is_single_password() and self.last_cosigner(d)
},
'multisig_cosigner_seed': {
'next': lambda d: 'multisig_cosigner_have_ext' if self.wants_ext(d) else self.on_have_cosigner_seed(d),
'last': lambda d: self.is_single_password() and self.last_cosigner(d) and not
(self.needs_derivation_path(d) or self.wants_ext(d)),
},
'multisig_cosigner_have_ext': {
'next': self.on_have_cosigner_seed,
'last': lambda d: self.is_single_password() and self.last_cosigner(d) and not self.needs_derivation_path(d)
},