Commit Graph

2206 Commits

Author SHA1 Message Date
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
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
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
Sander van Grieken e3ccee6d63 qt: channel closed dialog is not an error 2025-06-05 12:37:23 +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 e26160234c network_dialog: widget reordering 2025-06-03 12:56:01 +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
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
ThomasV c8ea5b6173 Third-party plugins: expand warning message
Remove lightning is experimental warning
2025-06-02 12:58:40 +02:00
ThomasV cea4b99668 qt: on_event_payment_failed: remove onchain fallback dialog
We no longer create LN invoices with onchain fallbacks. Even if
other implementation might create such invoices, there is little
point suporting them.
2025-05-31 14:12:28 +02:00
ThomasV b78935521b network dialog: replace checkboxes with tri-state connect_mode ComboBox
If oneserver is enabled, display 'Fork detection disabled' in the split_label
2025-05-29 20:14:03 +02:00
ThomasV b110179409 fix #9870 2025-05-28 10:42:59 +02:00
ThomasV 49d2f87dcf wizard: make NewWalletWizard inherit from KeystoreWizard 2025-05-28 10:20:15 +02:00
SomberNight 329ba13093 gui: oneserver option: make text more verbose 2025-05-27 17:17:17 +00:00
ThomasV e1ac476bcf KeystoreWizard: support seed extension 2025-05-26 10:35:41 +02:00
ThomasV 51ced92f44 Qt: let user enable/disable keystores with seed or hw wallet 2025-05-24 11:18:07 +02:00
ThomasV 553aef519b Qt wizard: clean up first page a bit 2025-05-24 11:00:18 +02:00
ThomasV 45c35c0b00 allow password encryption in hardware wallets 2025-05-23 18:42:54 +02:00
ThomasV 8d5d330b07 Merge pull request #9243 from accumulator/qml_oneserver
qt,qml: show option for single server in ServerConfig
2025-05-21 12:04:56 +02:00
accumulator 705f927899 qt: show option for single server in network dialog 2025-05-21 10:32:18 +02:00
ThomasV bae7f2490d Merge pull request #9846 from accumulator/qt_paytoedit_completer
qt: implement completer for PayToEdit
2025-05-21 09:52:57 +02:00
Sander van Grieken b0c6674319 qt: implement completer for PayToEdit 2025-05-20 15:28:55 +02:00
ThomasV 713a20e309 Merge pull request #9833 from f321x/use_asyncio_dnspython_methods
dns: use async dnspython interface
2025-05-20 08:56:47 +02:00
Sander van Grieken 1dfe2ccec0 qml: show option for single server in ServerConfig 2025-05-19 18:07:29 +02:00
f321x 3693c38e37 swaps: replace offers dict with class, fix incorrect naming
introduces a class SwapOffer which is used instead of passing around
offers in dicts.

Also fixes incorrect variable naming of swapserver npubs / public keys
by assigning the npub instead of the hex pubkey to
config.SWAPSERVER_NPUB
2025-05-19 14:22:23 +02:00
ThomasV cc25048e29 swap providers dialog with liquidity info 2025-05-19 13:22:50 +02:00
ThomasV b949eb5bf9 paytoedit: do not stip whitespaces in payto field while user is typing (fix regression) 2025-05-19 11:52:30 +02:00
SomberNight d0be5fcfc8 lnchannel: persist error sent by remote peer into db
If a force-close happens due to e.g. a feerate disagreement or an invalid signature, etc,
and the remote peer sends us an error, it can be useful if users can provide us with this error.
If the user does not have logging enabled when the error is sent, without this persistence it will likely get lost.
2025-05-18 16:54:56 +00:00
ThomasV a213dfca85 Qt: move nostr_relays to network dialog 2025-05-18 13:42:25 +02:00
ThomasV 79941529d2 simplify plugin logic: remove install/uninstall buttons
external plugins are enabled iff authorized
2025-05-18 12:24:38 +02:00
ThomasV 0a69a3d658 Merge pull request #9765 from f321x/plugin_pubk_user_prompt
plugins: add functionality to allow setting plugin pubkey from gui
2025-05-18 12:08:12 +02:00
f321x 61492d361e Use async dnspython methods for openalias/dnssec 2025-05-16 17:09:41 +02:00
ThomasV f147058664 Merge pull request #9834 from f321x/fix_terms_wizard_windows
fix: make ToU scrollbar detection more reliable
2025-05-16 13:32:01 +02:00
f321x 12ff5b2728 fix: make ToU scrollbar detection more reliable
adds some delay before detecting the scrollbar in the terms of use
dialog. This prevents it from falsely detecting a scrollbar and
disabling the "I Agree" button even if there is no scrollbar. I noticed this
issue on windows, the order in which the window is created seems to be
slightliy different from linux/wayland there.
2025-05-16 13:13:00 +02:00
ThomasV 626264d24f Merge pull request #9784 from f321x/allow_lnaddress_contacts
qt: allow lightning addresses in contacts
2025-05-15 19:09:48 +02:00
f321x b6e1e527c2 contacts: support lightning addressses as contact address
lightning addresses are useful and widely adopted, so it should be
possible to save them as payment identifier for a contact.
2025-05-15 17:55:23 +02:00
ThomasV 6500788328 Merge pull request #9710 from f321x/dont_delete_config_on_syntax_error
config: Raise instead of overwriting the config file on syntax error
2025-05-15 17:24:35 +02:00
f321x 8870838834 raise instead of overwriting the config file on syntax error 2025-05-15 17:21:16 +02:00
ThomasV 33ea89c94b Merge pull request #9793 from accumulator/psbt_nostr_send_description
PSBT nostr, send invoice/tx description along with PSBT
2025-05-15 09:44:55 +02:00
Sander van Grieken 4c88836389 qt: don't show request details when multiple requests are selected in request_list 2025-05-14 14:45:14 +02:00
Sander van Grieken 6566f2f0a4 qt: pass Invoice object to transaction dialog when appropriate.
This is purely informational and optional, with the main immediate use to provide the
invoice description/message/label to the transaction dialog, so it can be stored
when saving the tx in history, or passed along with PSBTs sent to cosigners.

Before, the tx description was not saved in history when an invoice was not saved before
signing and saving the tx for sending later.
2025-05-14 12:49:33 +02:00
SomberNight 1b031d432e qt tx dialog: allow clicking into the future. wheeee
- "outpoints" for inputs were already clickable to open the funding tx
- now "outpoints" for outputs are also clickable to open the spending tx
2025-05-13 18:30:20 +00:00
ThomasV aff7243f06 qt wizard server_connect tweaks 2025-05-13 13:05:17 +02:00
f321x e9a1357a99 followup: qt terms of use, move label in network tab
moves 2nd sentence in network tab below the checkboxes and adds a bit of
spacing below the electrum logo in the Terms of Use tab.
2025-05-13 12:12:15 +02:00