Commit Graph

53 Commits

Author SHA1 Message Date
Sander van Grieken f708e7f03e wizard/wallet: clean up imports, code style warnings. 2023-11-07 11:05:30 +01:00
Sander van Grieken 4671c002c9 qt: fix detected account select (#8673) 2023-11-02 12:49:31 +01:00
SomberNight 3060372894 qt wizard: WCHaveMasterKey: use check_multisig_constraints
These checks were missing from validation. e.g. duplicate master keys were allowed.
2023-10-31 17:43:15 +01:00
SomberNight 4b2d8f062c qt wizard: fix WCHaveMasterKey for first multisig cosigner
fixes https://github.com/spesmilo/electrum/issues/8665
2023-10-31 17:43:15 +01:00
SomberNight 7df057aaf9 qt wizard: simplify WCHaveSeed 2023-10-31 17:43:15 +01:00
Sander van Grieken 7ca9b735d5 daemon: refactor load_wallet to not just return None, but raise specific exceptions.
The following exceptions should be expected:
FileNotFoundError: given wallet path does not exist
StorageReadWriteError: given file is not readable/writable or containing folder is not writable
InvalidPassword: wallet requires a password but no password or an invalid password was given
WalletFileException: any internal wallet data issue. specific subclasses can be caught separately:
-  WalletRequiresSplit: wallet needs splitting (split_data passed in Exception)
-  WalletRequiresUpgrade: wallet needs upgrade, and no upgrade=True was passed to load_wallet
-  WalletUnfinished: wallet file contains an action and needs additional information to finalize. (WalletDB passed in exception)

Removed qml/qewalletdb.py

This patch also fixes load_wallet calls in electrum/scripts and adds a qml workaround for dialogs opening and closing so
fast that the dialog opened==true property change is missed (which we need to manage the dialog/page stack)
2023-10-10 17:42:07 +02:00
ThomasV 44dddee4d2 qt wizard: restore previous window size 2023-09-22 17:51:41 +02:00
Sander van Grieken 190c19d48c whitespace, imports, code style 2023-09-22 16:38:37 +02:00
ThomasV 4acf1ac1df new wizard: set default values for proxy and autoconnect 2023-09-22 16:34:28 +02:00
ThomasV b5bc5ff9ed Separate WalletDB from storage upgrades.
Make sure that WalletDB.data is always a StoredDict.
Perform db upgrades in a separate class, since they
operate on a dict object.
2023-09-22 15:02:06 +02:00
Sander van Grieken 44a1595157 wizard: don't use hww encryption of wallet files for anything besides standard wallets,
check hw wallet file decrypt in WCHWUnlock,
fix assumption 'wallet_type' exists in wallet open scenario.
2023-09-21 14:20:01 +02:00
Sander van Grieken 2caa8f13cf wizard: make wizard.keystore_from_data more robust;
- always store 'keystore_type' in cosigner data and use same types as main
- dont share 'hardware_device' in root of dict, but store for each cosigner
- properly return hardware keystore for hardware cosigners
2023-09-20 14:34:31 +02:00
Sander van Grieken 5080c224d0 qt: fix device list after rescan 2023-09-20 14:34:31 +02:00
SomberNight d2c7df3180 wizard: fix hww scan debug_msg not working correctly 2023-09-20 14:34:31 +02:00
Sander van Grieken 4101946ff5 wizard: add non-hardened derivation path check for digital bitbox, re-add rescan button in choose hw device,
clear clipboard before confirming seed.
2023-09-20 14:34:31 +02:00
Sander van Grieken 60d1d1e599 wizard: add missing keepkey porting, fix password focus for default and picked wallets,
add abstract method decl HW_PluginBase.wizard_entry_for_device
2023-09-20 14:34:31 +02:00
Sander van Grieken 7fd3b6c91d wizard: remove finished call, it's unused
qt: call is_finalized before closing the wizard dialog and add a check if wallet can be
    decrypted with the supplied secret (user pw, hw device)
2023-09-20 14:34:31 +02:00
Sander van Grieken dd64b5c628 wizard: add bitbox02 new wallet init and checks to new wizard 2023-09-20 14:34:31 +02:00
Sander van Grieken 50d2cdb1b5 wizard: improve hww uninitialized default msg. attempt fix flake issue w.r.t ABC 2023-09-20 14:34:31 +02:00
Sander van Grieken b7612605c5 wizard: add Digital Bitbox initialization to new wizard, remove rescan button
Note: the option to load a backup from SD card when the device already has a seed
has been removed. The device always returns an error when attempting this.
2023-09-20 14:34:31 +02:00
Sander van Grieken f3d843a855 qt: hww scan, focus rescan button only if no devices found 2023-09-20 14:34:31 +02:00
Sander van Grieken d4d57c3aef qt: automatically proceed wizard when unlocking existing wallet or succesful retrieve of xpub
for new wallet
2023-09-20 14:34:31 +02:00
Sander van Grieken d68e6a69c1 qt: wizardcomponents all use Logger mixin. Fix missing self.plugins init in WCTrezorInitMethod 2023-09-20 14:34:31 +02:00
Sander van Grieken bb8b82cc7e qt: wizard back button disabled while busy. Wrap error texts 2023-09-20 14:34:31 +02:00
Sander van Grieken 53b12cb086 qt: check HWW supported script types 2023-09-20 14:34:31 +02:00
Sander van Grieken faf35366b8 qt: single_password doesn't seem to be supported on desktop, disable also on new wizard 2023-09-20 14:34:31 +02:00
Sander van Grieken 97c9fd20b2 flake 2023-09-20 14:34:31 +02:00
Sander van Grieken 7080a7d8e2 qt: new wizard 2fa wallet online continuation from offline initial setup 2023-09-20 14:34:31 +02:00
Sander van Grieken 5ff945e9d6 qt: wizard run_upgrades 2023-09-20 14:34:31 +02:00
Sander van Grieken 66e9f502b0 qt: generalize wizard HWW xpub 2023-09-20 14:34:31 +02:00
Sander van Grieken 8663d89f77 qt: add HWW unlock wizardcomponent 2023-09-20 14:34:31 +02:00
Sander van Grieken 83c2eb46bb qt: initial open existing wallet from wizard,
set window title for wizard dialogs,
catch RuntimeError for WizardComponent.updated signal, widget might be gone
2023-09-20 14:34:31 +02:00
Sander van Grieken 2a2459c649 qt: implement server picker in server connect wizard 2023-09-20 14:34:31 +02:00
Sander van Grieken 902290ee8c qt: multisig checks with hardware cosigners 2023-09-20 14:34:31 +02:00
Sander van Grieken d3a1cef9ba create ChoiceWidget, refactor ChoicesLayout to ChoiceWidget 2023-09-20 14:34:31 +02:00
Sander van Grieken b7ed4c569b wip. trezor works for standard wallet, also for cosigners 2023-09-20 14:34:31 +02:00
Sander van Grieken 571d16314f qt: introduce electrum/gui/qt_common, implement remaining trustedcoin views,
unify most qml and qt wizard code for trustedcoin,
separate non-GUI trustedcoin wizard definition to trustedcoin.py
2023-09-20 14:34:31 +02:00
Sander van Grieken 0de6216560 qt: have_seed and create_seed support 2fa 2023-09-20 14:34:30 +02:00
Sander van Grieken ac5ebb9204 qt: refactor please_wait layout to widget to better control UI, add in-page error view 2023-09-20 14:34:30 +02:00
Sander van Grieken 15773086e5 qt: initial trustedcoin wizard pages 2023-09-20 14:34:30 +02:00
Sander van Grieken c99f71aefc wizard: imports, flake 2023-09-20 14:34:30 +02:00
Sander van Grieken a6caa3ffe9 wizard: fix wizard_data instance not isolated between pages,
combine is_bip39_seed and is_slip39_seed into cosigner aware needs_derivation_path
add instance id logging to wizard.log_stack()
qt: add updated signal to SeedLayout
2023-09-20 14:34:30 +02:00
Sander van Grieken c485753ffd wizard: rename bip39_refine to script_and_derivation 2023-09-20 14:34:30 +02:00
Sander van Grieken 0222c93228 wizard: add support for slip39 2023-09-20 14:34:30 +02:00
Sander van Grieken d395b97e83 qt: add have_master_key gui, implement cosigners in have_seed and bip39_refine guis
fix adding data from accept handler
2023-09-20 14:34:30 +02:00
Sander van Grieken e43b005047 qt: implement initial bip39 refine and account detect, restore from seed pages 2023-09-20 14:34:30 +02:00
Sander van Grieken 41cf7f920e qt: implement multisig and import addresses/keys pages 2023-09-20 14:34:30 +02:00
Sander van Grieken 4a12b285e4 qt: submit final state to wizard and return proper dialog result when finished 2023-09-20 14:34:30 +02:00
Sander van Grieken ffbddb9208 wizard: implement confirm seed and wallet password pages
some styling improvements
2023-09-20 14:34:30 +02:00
Sander van Grieken 113d698e42 wizard: avoid importing from installwizard.py 2023-09-20 14:34:30 +02:00