Commit Graph

1833 Commits

Author SHA1 Message Date
Sander van Grieken
9b520d31ab qt: fix defer eval of maybe_master_pubkey in case of electrum seed with seed extension 2025-02-10 11:28:41 +01:00
Sander van Grieken
0debe6675a qt: whitespace, imports 2025-02-04 11:13:37 +01:00
Sander van Grieken
605b511b43 qt,qml: move get_text_not_enough_funds_mentioning_frozen and get_frozen_balance_str to backend wallet
Note: the qt gui used to include FX in get_frozen_balance_str, but that is not replicated now.
2025-01-31 18:03:21 +01:00
Sander van Grieken
19cd408f98 organize import, whitespace 2025-01-23 12:58:28 +01:00
f321x
18d3d26b8d handle swap exception more gracefully
remove redundant Nne

handle reverse swap exception more gracefully

change reverse swap error

handle reverse swap exception more gracefully
2025-01-20 17:49:53 +01:00
SomberNight
f949c04cd2 gui/qt/history_list: (trivial) follow-up qt6 migration
ref https://github.com/spesmilo/electrum/pull/9189

```
Traceback (most recent call last):
  File "/home/user/wspace/electrum/electrum/gui/qt/my_treeview.py", line 166, in on_commitData
    self.tv.on_edited(idx, edit_key=edit_key, text=new_text)
  File "/home/user/wspace/electrum/electrum/gui/qt/history_list.py", line 699, in on_edited
    self.hm.update_fiat(index)
  File "/home/user/wspace/electrum/electrum/gui/qt/history_list.py", line 371, in update_fiat
    self.dataChanged.emit(idx, idx, [Qt.ItemDataRole.DisplayRole, Qt.ForegroundRole])
AttributeError: type object 'Qt' has no attribute 'ForegroundRole'
```
2025-01-17 15:25:19 +00:00
ThomasV
0efe7e9bc8 swaps: make the zeroconf option non-persisted
Since we allow swaps with random servers, we should not persist that setting.
2025-01-10 16:19:01 +01:00
SomberNight
c43a691eee qt gui: qrreader: lower strong_count in qtmultimedia based reader
The qtmultimedia-based qrreader has the concept of "strong_count":
before the scanner returns a decoded qr code result, it waits until
it has seen at least "strong_count" (e.g. 10) frames in which the qr code was seen and successfully decoded.
I think the idea might have been to reduce false positives, mis-decoding qr codes from bad frames.
However in practice it makes scanning even moderately sized qr codes really difficult for the user:
it takes several seconds (at least on my laptop cam) to obtain enough "clear" frames that count into the strong_count.

So I am lowering the strong_count to 2, down from CAMERA_FPS/3,
which makes it easier to scan, and I still haven't seen false positives even with this value.
2025-01-10 12:59:56 +00:00
f321x
ea10c7cfc1 add filehash of external plugins to PluginDialog
remove hashlib import

add filehash of external plugins to PluginDialog

add emptyline

add filehash of external plugins to PluginDialog
2025-01-09 18:15:12 +01:00
SomberNight
264a5fe421 qt gui: add command for console use: "scan_qr()"
try
```
>>> scan_qr().data
```
to read a qr code from the screen
2025-01-09 12:18:10 +00:00
ThomasV
c4443b841f Merge pull request #9410 from f321x/fix_user_cancelled_swap
Catch UserCancelled exception in main window on user swap cancellation
2025-01-09 11:15:08 +01:00
f321x
c4fe8433c0 catch UserCancelled exception in main window 2025-01-09 11:12:30 +01:00
ThomasV
d2fa65b9aa fix qt wizard (follow-up 693210edbe) 2025-01-06 11:46:20 +01:00
ThomasV
4d9c33c33f Qt: disable swapserver dialog if we are using http 2025-01-03 10:39:24 +01:00
ThomasV
29a8c41025 move watchtower to a plugin.
remove watchtower dialog in qt
2024-12-20 15:34:26 +01:00
ThomasV
693210edbe Qt: stop support for password-protected wallets without
storage encryption.

The password will be needed on startup with anchor channels.

Note that it remains possible to use non-encrypted storage
and keystore encryption with the command line.
2024-12-20 09:24:45 +01:00
ThomasV
692a777da8 coins tab: if we do not know whether we can swap a utxo, assume we can 2024-12-17 17:43:43 +01:00
bitromortac
f746e2cc6b qt: add anchor channel icon
source: https://tabler-icons.io/anchor
2024-11-21 11:59:06 +01:00
ThomasV
a04844b451 fix #9282 2024-11-18 08:43:47 +01:00
Sander van Grieken
7ee863f225 wizard: hint for primary signer xpub instead of xprv 2024-11-13 14:51:14 +01:00
ThomasV
efb2bc1133 Merge pull request #9285 from accumulator/qt_wizard_validate_master_key
qt: additional validation for master keys in WCHaveMasterKey in wallet wizard
2024-11-13 10:27:12 +01:00
ThomasV
60f13a977e Swaps over Nostr
- Separation between SwapManager and its transport:
   Legacy transpport uses http, Nostr uses websockets
 - The transport uses a context to open/close connections.
   This context is not async, because it needs to be called
   from the GUI
 - Swapserver fees values are initialized to None instead
   of 0, so that any attempt to use them before the swap
   manager is initialized will raise an exception.
 - Remove swapserver fees disk caching (swap_pairs file)
 - Regtests use http transport
 - Android uses http transport (until QML is ready)
2024-11-12 09:32:25 +01:00
ThomasV
7fdf1e0669 add nostr, and nostr_relays in config 2024-11-12 08:52:42 +01:00
accumulator
499e02fdcc Merge pull request #9290 from accumulator/qt_wizard_initial_focus
qt: add WizardComponent.initialFocus()
2024-11-05 20:24:37 +01:00
accumulator
3fbceacca2 Merge pull request #9284 from accumulator/update_recently_opened_sync
qt: keep list of recently used wallets in sync across windows
2024-11-05 15:02:38 +01:00
ThomasV
02e6c49fa6 Qt: fix tx grouping issue arising if onchain tx of a swap does not get mined. 2024-11-05 08:46:53 +01:00
Sander van Grieken
f2e590ae81 qt: add WizardComponent.initialFocus() which specifies the control to focus. If undefined, the Next button is focused by default 2024-10-29 12:03:57 +01:00
Sander van Grieken
fd12668da4 qt: additional validation for master keys in WCHaveMasterKey in wallet wizard 2024-10-28 14:30:56 +01:00
accumulator
3f3c776124 Merge pull request #9279 from accumulator/qt_wizard_musig_user_feedback
qt: wizard: implement user feedback TODOs, consistently use wizard.check_multisig_constraints
2024-10-28 14:15:36 +01:00
Sander van Grieken
2113cd4f2e qt: keep list of recently used wallets in sync across windows
this also removes alpha-sort of the wallet list in favor of
placing most recently opened on top
2024-10-28 10:59:57 +01:00
Sander van Grieken
a1a28afee6 qt: simplify df2a6f5 2024-10-24 16:41:47 +02:00
Sander van Grieken
df2a6f54d3 qt: don't remove seed_warning for new seeds when ext option gets enabled 2024-10-24 16:37:03 +02:00
Sander van Grieken
4a37668b01 wizard: don't require seed extension to be set early.
this also fixes deferring multisig constraint validation when seed is same as another cosigner,
but still can have different seed extension
2024-10-24 16:07:00 +02:00
Sander van Grieken
adb567b20f qt: wizard: implement user feedback TODOs, consistently use wizard.check_multisig_constraints 2024-10-24 14:48:39 +02:00
Sander van Grieken
06efe25ae7 qt: wizard: focus Next by default, focus Back/Cancel last 2024-10-24 14:26:52 +02:00
Sander van Grieken
6bbc5f8553 qt: wizard: keep wizard stack in a consistent state if load_next_component raises 2024-10-24 12:33:12 +02:00
SomberNight
ca86c7eb44 qt tx_dialog: also show high-fee warnings for self-payments
e.g. if you consolidate own utxos, the "amount sent" in the dialog is zero,
but for high fee warnings that's not the amount we should be comparing against
2024-10-22 15:06:26 +00:00
SomberNight
ffb8f42259 qt rbf_dialog: set output_value properly
to also show high fee warnings for bump_fee/dscancel flows

fixes https://github.com/spesmilo/electrum/issues/9273
2024-10-22 15:04:06 +00:00
ThomasV
c58c4d7451 Make lntransport not require lnutil.
This will be useful if we decide to ship lntransport as a separate
package. It is also a conceptual cleanup.

Notes:
 - lntransport still requires crypto.py
 - parsing node id from a bolt11 invoice is not supported.
2024-10-22 09:26:36 +02:00
SomberNight
8db2489739 qt gui: faster clean-up of hung UpdateCheckThread during exit
If you closed a main_window soon after opening it, and the UpdateCheckThread network request was slow
and still in progress, the gui would freeze until the network request finished.
2024-10-21 18:28:32 +00:00
Sander van Grieken
fd21a3bec2 qt: wizard: fix type hint, avoid shadowing builtin 'next' 2024-10-21 16:14:58 +02:00
ThomasV
6635e40a2c confirm_tx dialog: provide feedback to the user when tx is not ready 2024-10-18 16:04:10 +02:00
ThomasV
2fd70d5d94 qt: replace BlockingWaitingDialog with RunCoroutineDialog
RunCoroutineDialog has a run() method that blocks the thread
without blocking the GUI (using exec), and a Cancel button
that cancels the coroutine.

main_window.run_coroutine_dialog() is a wrapper that returns
the coroutine result and may raise exceptions.

BlockingWaitingDialog was removed is transaction_dialog,
where it was not particularly useful.
2024-10-18 12:37:54 +02:00
ThomasV
eccc5900e0 move plugin icons to plugins 2024-10-17 13:32:30 +02:00
SomberNight
e84679982e qt tx dlg: fix showing fee warnings
In qt, only the confirm_tx_dialog was showing the fee warnings, the transaction_dialog was not...

regression from bc3946d2f4
2024-10-16 12:42:58 +00:00
ThomasV
267df91c0b send tab: catch exception raised if swap server is unreachable,
show error to the user.
(similar to main_window.run_swap_dialog)
2024-10-14 18:40:15 +02:00
Sander van Grieken
b22fb329cc coldcard: small fixes 2024-10-14 12:04:37 +02:00
accumulator
f7d3a850ba Merge pull request #9237 from accumulator/fix_2fa_keystore_only_encryption
trustedcoin: fix continuation of 2fa wallet file with keystore-only encryption
2024-10-14 11:50:18 +02:00
accumulator
5aa0d52121 Merge pull request #9248 from accumulator/issue7682_and_cc_bugs
coldcard: rebase #7682 and fix CC bugs
2024-10-14 11:43:30 +02:00
accumulator
d19f1f4790 Merge pull request #9245 from accumulator/qt_refactor_layouts_to_widgets
qt: refactor SeedLayout/KeysLayout to SeedWidget/KeysWidget, remove t…
2024-10-14 11:42:27 +02:00