Commit Graph

3744 Commits

Author SHA1 Message Date
f321x
86183797db fix: update do_export_history to use wallet.get_full_history
`do_export_history()` which is used by the qt history export function was
broken as it used a method that did not exist anymore.
this updates `do_export_history()` to use `get_full_history()` and also
adds support for payment grouping and lightning transactions to the
generated CSV file.
2025-06-11 11:03:57 +02:00
ghost43
e30392cd16 Merge pull request #9934 from f321x/matplotlib_warning
qt: provide more detailed warning for plot feature, change matplotlib backend
2025-06-10 18:41:42 +00:00
SomberNight
47e76b25b1 swaps: add some type hints, and force kwargs 2025-06-10 16:20:43 +00:00
f321x
229219da9c qt: provide clearer warning for plot feature
this warning is more detailed and explains the user why the plotting
feature is not available to prevent confusion.
2025-06-10 16:03:30 +02:00
ThomasV
660b97c906 follow-up prev: show the plugin dialog 2025-06-10 11:32:39 +02:00
f321x
df66126389 disable "Enable" button of unavailable plugins
this changes PluginsDialog to disable the "Enable" button of plugins
that are missing dependencies (e.g. amodem) instead of not showing them
at all. A tooltip is shown explaining the user why the plugin is
disabled.
2025-06-10 11:19:55 +02:00
ThomasV
630124136e plugins dialog: fix is_available, do not show plugins that are not available 2025-06-10 11:02:18 +02:00
ThomasV
15e77d2d80 Merge pull request #9929 from f321x/swapserver_icon
qt: show deterministic colors for swapservers
2025-06-10 09:57:36 +02:00
ThomasV
e6ba90f219 Merge pull request #9928 from f321x/swap_fee_slider
swaps: use eta:2 instead of config fee policy in qml, disable qt fee slider on reverse swaps
2025-06-10 09:51:00 +02:00
f321x
6af54866c9 qt: show deterministic colors for swapservers
shows a little color icon which generated deterministically from
the server pubkey for easier differentiation.
2025-06-10 09:49:03 +02:00
f321x
37181cd3a8 disable qt swap fee slider on reverse swaps, change eta
disables the fee slider in the swap dialog for reverse swaps as the tx
fee for claiming is not configurable by the user. Also replaces calls to
`sm.get_swap_tx_fee()` with `sm.get_fee_for_txbatcher()` as this is the
correct fee estimate for claim transactions, instead of the config fee
eta used by `get_swap_tx_fee()`.
2025-06-09 17:36:38 +02:00
f321x
4849d4d770 fix: use eta:2 as funding tx fee policy in qml swap
qml used the user config fee policy for the forward swap onchain funding
tx which can be too high or low, depending on what transactions the user
did previously with the wallet. Setting it to eta:2 ensures that the
funding tx is paying a sane fee.
2025-06-09 17:15:09 +02:00
SomberNight
becb912397 gui: "Choose Swap Provider" screen: show hex pubkey, and longer prefix
- makes it consistent between the qml and qt guis that now both show the hex pubkey
  - previously qml was showing npub
- don't truncate to first 10 chars, as that's still easy to bruteforce
  - the qt gui has space to display the full pubkey (64 hex chars)
    and can use the TreeWidget's columns to truncate as needed
  - qml has less space, truncate to 32 hex chars there (128 bits should be enough against bruteforce)
2025-06-09 15:12:32 +00:00
ghost43
d1c5cafcdd Merge pull request #9898 from f321x/windows_disable_screenshot
qt: windows: protect against screenshots and screen recordings
2025-06-06 13:42:29 +00:00
accumulator
6b928c5032 Merge pull request #9916 from f321x/fix_flaky_swapserver_list_qml
fix: use single long lived swap transport in qeswaphelper
2025-06-06 14:50:09 +02:00
Sander van Grieken
89cab31b81 qml: swaphelper: update offer model properly 2025-06-06 14:38:24 +02:00
f321x
3a39abc415 fix: use single long lived transport in qeswaphelper
changes qeswaphelper to shate a single, long lived transport instance
instead of opening new transports to do swaps and fetch offers.
This allows to continuosly fetch offers, so events which get returned
later by slow relays don't get missed and the fee values stay updated.
Also fixes a race causing the list to miss some swapservers, as the
current implementation fetches only until
`swap_manager.is_initialized()` is set, which will get set as soon as an
event of the configured swapserver is received. So if the event of the
configured swapserver is received as first, all server events coming in
after it would get ignored.
2025-06-06 14:38:11 +02:00
Sander van Grieken
0a6f6ab006 qml: use color for accounting addresses 2025-06-06 13:38:48 +02:00
ThomasV
5610a94537 fix #9856 2025-06-06 12:17:21 +02:00
f321x
ca9c4777d8 windows: protect against screenshots and screen recordings 2025-06-06 09:29:01 +02:00
ThomasV
6711b65b8c Qt: use color for accounting addresses 2025-06-06 09:18:12 +02:00
SomberNight
7fa204f16b qml: fix setting config.GUI_QML_SET_MAX_BRIGHTNESS_ON_QR_DISPLAY
follow-up https://github.com/spesmilo/electrum/pull/9321
2025-06-05 16:37:59 +00:00
Sander van Grieken
e3ccee6d63 qt: channel closed dialog is not an error 2025-06-05 12:37:23 +02:00
ThomasV
e8113d684c Merge pull request #9852 from accumulator/qml_fix_forceclose_exception
qml: fix assumption history item is onchain when history item has no timestamp
2025-06-05 09:58:48 +02:00
f321x
5ad1b4b5dd fix: exceptions with send change to lightning 2025-06-04 17:40:04 +02:00
ThomasV
2024fa4507 Merge pull request #9902 from SomberNight/202506_base64_trailing_garbage
base64.b64decode: always set validate=True
2025-06-04 14:59:20 +02:00
f321x
6c7d8e8f86 fix: prevent opening new window if ToU haven't been accepted
prevents the creation of new Qt windows if the terms of use have not
been accepted yet. This is to prevent bypassing the terms of use by
starting the wallet a second time which would then skip the ToU.
2025-06-04 09:48:00 +02:00
SomberNight
3e4601c61d base64.b64decode: always set validate=True
Notably verifymessage and decrypt(message) were silently ignoring trailing garbage
or inserted non-base64 characters present in signatures/ciphertext.
(both the CLI commands and in the GUI)
I think it is much cleaner and preferable to treat such signatures/ciphertext as invalid.

In fact I find it surprising that base64.b64decode(validate=False) is the default.
Perhaps we should create a helper function for it that set validate=True and use that.
2025-06-03 18:58:05 +00:00
SomberNight
902ec09791 daemon: re config.CURRENT_WALLET: wallet_key MUST NOT be used as path 2025-06-03 15:08:03 +00:00
ThomasV
6373269b42 Merge pull request #9895 from accumulator/qml_network_settings_update_fix
qml: fix updating network settings
2025-06-03 14:43:43 +02:00
Sander van Grieken
7df2a1159b qml: fix updating network settings
Previously the server parameters were each handled differently, e.g. auto-connect was only applied when updating Network.server
and not when Config.autoConnect was updated. Similarly, updating Network.server did not restart the network, leading to >1 connection
when Network.oneServer was set to True before updating Network.server.

Consolidate server parameter updates into a single call, remove the individual setters, and move Config.autoConnect and Config.autoConnectDefined to Network.
2025-06-03 13:22:45 +02:00
ThomasV
69527df9d6 Merge pull request #9894 from f321x/remove_sending_balance_warning
qml: rm small available sending balance warning
2025-06-03 12:59:58 +02:00
ThomasV
e26160234c network_dialog: widget reordering 2025-06-03 12:56:01 +02:00
f321x
88a77f387d qml: rm small available sending balance warning 2025-06-03 12:30:52 +02:00
ThomasV
8f2c5f60e4 Merge pull request #9888 from accumulator/qml_fixes
Qml fixes
2025-06-03 11:11:29 +02:00
Sander van Grieken
cb78b07fe4 qml: reset nostr relays list to default if empty 2025-06-03 10:57:43 +02:00
ThomasV
1dc9ffcdaf Merge pull request #9892 from accumulator/fix_9884
qml: also update userinfo text on channel events. fixes #9884
2025-06-03 10:57:03 +02:00
ThomasV
0ce03a1939 Merge pull request #9889 from f321x/fix_suggest_peer_block
fix: prevent lnrater from blocking if no good peers
2025-06-03 10:54:13 +02:00
Sander van Grieken
d87b0f8e81 qml: improve nostr dialog helptext 2025-06-03 10:50:28 +02:00
Sander van Grieken
7ba335a409 qml: also update userinfo text on channel events. fixes #9884 2025-06-03 10:41:55 +02:00
f321x
b4e93e7e38 fix: prevent lnrater from blocking if no good peers
the while loop in `suggest_node_channel_open()` of lnrater would not
break if there are no "good" peers available available. As a result the gui
blocks and electrum has to be killed. This can happen for example on
signet.
This removes the tested pk from the list of candidates so each candidate
gets tested only once.
2025-06-03 10:06:39 +02:00
SomberNight
60ef0340bb messages.py: fix typo 2025-06-02 16:07:08 +00:00
Sander van Grieken
c6fb55d416 qml: lightningpaymentdetails show Paid banner instead of just Status:settled 2025-06-02 17:21:42 +02:00
Sander van Grieken
df2c1d6ae1 qml: no feebump hint if only option is CPFP 2025-06-02 17:14:31 +02:00
Sander van Grieken
938af7b2ee qml: remove green check-mark on request paid, open lightning payment details (LN) or Tx details (on-chain) instead 2025-06-02 17:11:08 +02:00
f321x
58b0fdf199 followup 9e225d1: rm save_last_wallet call 2025-06-02 15:07:22 +02:00
ThomasV
9e225d1269 Replace config GUI_LAST_WALLET with CURRENT_WALLET
- CURRENT_WALLET is set when a single wallet is loaded in memory, and it
   remains set after Electrum stops running.
 - If several wallets are loaded at the same time, CURRENT_WALLET is unset,
   and RPCs must specify the wallet explicitly (using --wallet for the CLI)
 - The fallback to 'default_wallet' essentially only applies when
   creating a new wallet file
2025-06-02 14:05:53 +02:00
Sander van Grieken
5775fd790e qml: remove request from list once paid 2025-06-02 13:47:49 +02:00
Sander van Grieken
5fe6ff3a1f qml: nostr relay dialog, remove help button, move text into dialog. 2025-06-02 13:42:12 +02:00
Sander van Grieken
b5170a3fa6 qml: oneserver, auto-connect combobox 2025-06-02 13:31:05 +02:00