1
0
Commit Graph

18801 Commits

Author SHA1 Message Date
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
ghost43
fc13001bb9 Merge pull request #9875 from SomberNight/202505_pad_protocol_3
interface: add padding and some noise to protocol messages
2025-05-30 15:37:12 +00:00
ThomasV
43ca469774 Merge pull request #9555 from tianzedavid/master
chore: fix some typos
2025-05-30 14:36:12 +02:00
ThomasV
f0930ffc1d Merge pull request #9839 from SomberNight/202505_transaction_verify_sig_2
transaction: add method verify_sig_for_txin
2025-05-30 14:32:27 +02:00
ThomasV
0dafb5cd83 Merge pull request #9880 from SomberNight/202505_refactor_chains2
constants.py: add datadir_subdir, cli_flag, config_key methods
2025-05-30 09:50:36 +02:00
SomberNight
6257d9e266 constants.py: add datadir_subdir, cli_flag, config_key methods
- use these to generalise recurring "switch-like" ifs
- this effectively also adds a `--mainnet` CLI option
    - closes https://github.com/spesmilo/electrum/issues/9790
2025-05-29 18:41:28 +00: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
d0c429e87f txbatcher: fix max() over empty list 2025-05-29 19:53:49 +02:00
ghost43
389817a63f Merge pull request #9878 from SomberNight/202505_refactor_chains
constants.py: reorganise file hierarchy in `chains/`
2025-05-29 17:30:55 +00:00
SomberNight
c9ed8779fc interface: address feedback for PaddedRSTransport 2025-05-29 17:29:33 +00:00
SomberNight
447052b4ff interface: add padding and some noise to protocol messages
basic countermeasures against traffic analysis
2025-05-29 17:29:30 +00:00
SomberNight
5fd6603ea6 ci: regtests: bump e-x 2025-05-29 17:29:27 +00:00
ThomasV
e580373c82 test_redeem_offered_htlcs: reduce bob's target because they might send anchor output sweeping tx 2025-05-29 19:27:06 +02:00
SomberNight
1355f849c3 constants.py: reorganise file hierarchy in chains/ 2025-05-29 15:31:27 +00:00
SomberNight
400934b771 network: hardcoded servers: add a few more 2025-05-29 15:02:04 +00:00
SomberNight
5e2c52081d update block header checkpoints 2025-05-29 15:02:01 +00:00
SomberNight
807832a769 logging: follow-up "rm verbosity_shortcuts option"
follow-up 853b793bef
2025-05-29 14:57:58 +00:00
ThomasV
11fc3ccf33 CLI: cosmetic changes and cleanup 2025-05-29 16:44:01 +02:00
ThomasV
853b793bef rm verbosity_shortcuts option (unused, redundant) 2025-05-29 16:20:41 +02:00
ThomasV
743f5c8311 CLI: remove -W shortcut 2025-05-29 15:44:53 +02:00
SomberNight
bf168ce6f8 interface: log block height of main interface on new block
follow-up 7a7c0f1606
- before ref commit, we logged new headers for every interface
- after ref commit, we logged new header only for fastest interface
- now, we log new header for fastest interface and for main interface
  - useful to see if main interface is very slow
2025-05-28 17:05:13 +00:00
ghost43
b10b93f130 Merge pull request #9797 from SomberNight/202505_ci_bump_ex
ci: regtests: bump e-x
2025-05-28 15:03:47 +00:00
SomberNight
8198209149 ci: regtests: bump e-x 2025-05-28 14:45:47 +00:00
ThomasV
c61e0f5cf9 CLI: show the list of commands if run_electrum -h is invoked
This fixes a regression likely introduced with the docstring parameter parser.
The short description is the first period-separated sentence of the docstring.

Also remove the 'commands' command.
2025-05-28 15:36:15 +02:00
ThomasV
fb9e300165 Merge pull request #9824 from accumulator/qml_bip21_request_if_label_or_amount
invoices: only skip generating BIP21 URI for payment request if both …
2025-05-28 11:05:34 +02:00
ThomasV
04da854291 follow-up 49d2f87dcf 2025-05-28 10:46:00 +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
ThomasV
5ed020f924 Merge pull request #9873 from SomberNight/202505_network_oneserver_text
gui: oneserver option: make text more verbose
2025-05-28 09:20:36 +02:00
ThomasV
4567150ecb Merge pull request #9874 from SomberNight/202505_adb_get_tx_height_test
adb.get_tx_height: allow future txs to be partially signed
2025-05-28 09:07:54 +02:00
SomberNight
db759765d6 adb.get_tx_height: allow future txs to be partially signed
If the full tx is missing, we should force mempool/confirmed txs to be LOCAL height,
however future txs should not be forced to LOCAL, they should remain FUTURE.

follow-up 197933debf
2025-05-27 18:19:01 +00:00
SomberNight
329ba13093 gui: oneserver option: make text more verbose 2025-05-27 17:17:17 +00:00
ThomasV
eb05210a00 simple_config: handle unexpected non-dict in recursive get/set_key methods 2025-05-27 11:43:28 +02:00
ThomasV
f842ce0737 submarine_swaps: consider is_redeemed as sufficient for swap not
to be pending
2025-05-27 10:15:27 +02:00
ghost43
0689a7274f Merge pull request #9871 from SomberNight/202505_adb_get_tx_height
adb.get_tx_height: return "LOCAL" height if missing full signed tx
2025-05-26 16:58:34 +00:00
SomberNight
197933debf adb.get_tx_height: return "LOCAL" height if missing full signed tx
get_tx_height previously did not consider whether the walletDB has the full tx for
the corresponding txid, and could consider a tx even "mined" and spv-ed, even if
we were missing the raw tx.
Now if the full tx is missing or the tx in the db is partial,
get_tx_height considers it to be LOCAL.

In particular the txbatcher, in `run_iteration`,
- first saves a tx as local *unsigned* (to reserve UTXOs),
- then signs it and tries to broadcast it.

The history tx will later transition to local and signed,
after we get back the broadcasted tx via the Synchronizer dance.
In the meantime there is a race where we have an unsigned tx in the history,
but the txid could already transition to mempool or even to mined,
before we download the full raw tx from the server.
During that time window, it makes the adb state more consistent
to just consider the history tx to be local, as done here.
2025-05-26 16:57:51 +00:00
SomberNight
36d46ea2c1 tests: regtest.extract_preimage: nicer error msg in some failure cases
also rm an incorrect comment from overly-eager copy-paste
2025-05-26 16:53:17 +00:00
SomberNight
df6057bc9f i18n: forbid "English" translations
This adds an additional layer of defense.
Potential attack:
- "English" gets added as a language on the crowdin project
  - (this can only be done by a moderator or the crowdin devs)
- malicious strings get added on crowdin as English translations
- we don't notice and pull the updates into the locale git submodule
- users with the "default" lang option selected who have their OS lang set to English
  - and users with "English" explicitly selected in Electrum
  - would see the malicious strings
2025-05-26 15:31:08 +00:00
SomberNight
7b531a7378 i18n: make "language" field private 2025-05-26 15:30:12 +00:00
ThomasV
df4bbf1d72 KeystoreWizard: fix regression (follow-up e1ac476bcf) 2025-05-26 17:11:37 +02:00
ThomasV
b0131c96f0 wallet.bump_fee: do not change nsequence of already existing inputs
Fixes tx rejection by network if the original tx has a csv:
> non-mandatory-script-verify-flag (Locktime requirement not satisfied)

Also add unit test
2025-05-26 14:52:37 +02:00
ThomasV
58480a69db TxBatcher: store fee policy names instead of fee descriptors
This allows to change the fee policy of batches dynamically.
Config.fee_policy is a mapping between policy names and descriptors.
2025-05-26 13:30:25 +02:00
ThomasV
b91c5d18cb call lnwatcher.trigger_callbacks in offline mode 2025-05-26 11:48:00 +02:00
ThomasV
e1ac476bcf KeystoreWizard: support seed extension 2025-05-26 10:35:41 +02:00
ThomasV
ce8242c29c txbatcher: remove fixme 2025-05-25 09:47:36 +02:00
ThomasV
bd20d6e0af follow-up 51ced92f44 2025-05-24 17:34:00 +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
SomberNight
f95d4ce287 util.profiler: add support for async functions 2025-05-23 16:18:59 +00:00