Commit Graph

1641 Commits

Author SHA1 Message Date
Sander van Grieken
42f2eb3818 qt: network_dialog: remove now unnecessary proxy host contains colon check 2023-11-30 14:27:31 +01:00
Sander van Grieken
7b96a83350 wallet: add sighash check to class Abstract_Wallet
qml: use backend sighash check and add user confirmation path
qt: use backend sighash check and add user confirmation path
qml: include get_warning_for_risk_of_burning_coins_as_fees test in txdetails
qt: add warning icon to sighash warning
add sighash and fee checks to wallet.sign_transaction, making all warnings fatal unless ignore_warnings is set to True
tests: test sign_transaction on both code paths with ignore_warnings True and False,
raise specific exceptions TransactionPotentiallyDangerousException and TransactionDangerousException
2023-11-30 12:53:46 +01:00
SomberNight
ff53925811 qt console: fix tracebacks in windows binaries
fixes https://github.com/spesmilo/electrum/issues/3315

The cause was that tracebacks look different whether stack items have source text available.
When using the pyinstaller windows binary, there is no source text available.

Example when running from source:
```
>>> a
Traceback (most recent call last):
  File "...\electrum\gui\qt\console.py", line 256, in exec_command
    result = eval(command, self.namespace, self.namespace)
  File "<string>", line 1, in <module>
NameError: name 'a' is not defined

```

Example for pyinstaller windows binary:
```
>>> a
Traceback (most recent call last):
  File "electrum\gui\qt\console.py", line 256, in exec_command
  File "<string>", line 1, in <module>
NameError: name 'a' is not defined

```
2023-11-24 22:36:37 +00:00
SomberNight
affe3630b0 qt: addr/coins tab: show tooltip for "freeze address"
related https://github.com/spesmilo/electrum/issues/8698
2023-11-24 19:31:36 +00:00
Sander van Grieken
ab9c3bb9b4 qt: avoid potential proxy settings deserialization problems (fixes #8652) 2023-11-24 15:06:23 +01:00
SomberNight
9f1b8613d0 swaps: code style clean-up, add type hints, force kwargs
no intended functional changes
2023-11-22 17:50:29 +00:00
SomberNight
7f64ecc4bd wallet.bump_fee: the glorious return of BumpFeeStrategy :D
gui/qt/rbf_dialog.py (old) lines 57-64 were implementing logic that should not be part of GUI code.
Case in point, gui/qml/qetxfinalizer.py (old) lines 511-513 duplicated half of that logic but not the other half.
That logic is now moved to wallet.get_bumpfee_strategies_for_tx().

More context: a user on irc got confused when using the qml gui. They were sending "max" and wanted to bump_fee.
The qml gui selected the "preserve_payment" strategy by default, using which there was no solution, and the user
did not notice that the strategy can be altered (via the "method" dropdown). The qt gui had logic to select
"decrease_payment" by default in such a case (which does find a solution to bump) but this logic was not
duplicated in the qml gui.
Instead of duplicating the logic, this commit moves it to shared lib code.
2023-11-20 18:55:43 +00:00
Sander van Grieken
86a45c668c few small fixes 2023-11-14 14:36:54 +01:00
Sander van Grieken
621a397b70 i18n: translate a few untranslated strings and avoid early translate for pr_tooltips and pr_expiration_values
fixes #8689
2023-11-14 12:07:49 +01:00
SomberNight
5ba156fcad Merge remote-tracking branch 'remotes/accumulator/qt6'
For the "qml" gui (used on Android), this upgrades the qt version from 5.15 to 6.4.

PR https://github.com/spesmilo/electrum/pull/8545
2023-11-09 16:18:56 +00:00
Sander van Grieken
f708e7f03e wizard/wallet: clean up imports, code style warnings. 2023-11-07 11:05:30 +01:00
Sander van Grieken
be801f30e8 gui: make common_qt compatible with both Qt5 and Qt6 2023-11-07 10:17:10 +01:00
Sander van Grieken
4671c002c9 qt: fix detected account select (#8673) 2023-11-02 12:49:31 +01:00
Sander van Grieken
6ce8a583fd qt: add missing case for on-chain fallback for BIP21 payment identfier containing lightning invoice 2023-11-02 10:24:37 +01:00
SomberNight
711a325085 main_window: split out "walet info" dlg into separate file
- no semantic changes, only moving code
- the change in qt/util.py is to avoid GC issues
  - due to moving code, the group was moving out of scope and getting GC-ed,
    as we only keep a reference to the vbox

(idea from 263fb2ba33 )
2023-10-31 17:41:11 +00: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
ThomasV
120faa480e If trampoline is enabled, do not add non-trampoline nodes to invoices
Rationale: The sender should not assume that they share the same list of
hardcoded trampolines as the receiver.
2023-10-29 16:21:25 +01:00
SomberNight
097a10f84d qt: window.how_lightning_invoice: routing_e should be read-only 2023-10-27 14:24:16 +00:00
SomberNight
abe700167f qt send tab: HelpLabel for "pay to" field: update text
- maybe make it more readable
- mention new syntax for raw scripts
  - see 3ff588049e
2023-10-24 16:47:05 +00:00
SomberNight
66e2c779ea Merge remote-tracking branch 'remotes/sombernight/202310_merge_duplicate_outputs'
see https://github.com/spesmilo/electrum/pull/8474
2023-10-24 14:51:51 +00:00
SomberNight
227e257444 (follow-up) wallet: add option to merge duplicate tx outputs 2023-10-24 14:41:39 +00:00
SomberNight
22a8348303 renames: use consistent naming of cltv delta vs cltv abs
to avoid confusing relative vs absolute cltvs
(see b0401a6386)
2023-10-19 16:40:05 +00:00
ThomasV
8d5f9185a4 follow-up #8646 2023-10-14 10:13:27 +02:00
ThomasV
e882856d4f Merge pull request #8646 from accumulator/load_wallet_refactor
daemon: refactor load_wallet
2023-10-10 19:33:20 +02:00
SomberNight
65394c37d5 wallet.make_unsigned_transaction: add batch_rbf/send_change params
Don't side-effect config just to modify the next call of make_unsigned_transaction >.<
Cleaner to pass parameters.
2023-10-10 17:13:18 +00: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
SomberNight
63143307f1 config: follow-up rename of FEE_EST_STATIC_FEERATE
follow-up 455167136d
2023-10-10 12:11:45 +00:00
Sander van Grieken
e4f9cfb1cc qt: clipboard might have been changed after show menu. add check. fixes #6526 2023-10-06 11:13:16 +02:00
Sander van Grieken
f7bf4e146d payment_identifier: move adding openalias to contacts out of _do_resolve.
This fixes "cannot pickle '_thread.RLock' object" when paying from Contacts tab
2023-10-03 11:42:12 +02:00
ThomasV
35a86ec5aa qt console history: ensure partial writes 2023-09-24 12:24:21 +02:00
SomberNight
4978d40956 qt gui __init__: restore import order - raise pyqt5 missing early
follow-up https://github.com/spesmilo/electrum/pull/8560
2023-09-24 02:31:25 +00:00
ThomasV
56e80c20d7 wallet_db upgrade: do not use '/' in StoredDict keys 2023-09-23 11:05:36 +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
68159b3ef6 walletDB: replace 'manual_upgrades' parameter with 'upgrade', with opposite semantics 2023-09-22 15:02:07 +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