SomberNight
3534f62b0b
crash_reporter: detect more altcoin-forks, don't send reports
...
A new crash report [0] looks to be from a fork where the altcoin has the same genesis block [1] as Bitcoin.
But ofc "branding" is important, so they updated the URLs to point to their fork -- so we could also test against that.
[0]: https://github.com/spesmilo/electrum/issues/10610
[1]: https://github.com/palladium-coin/pallectrum/blob/0df81c6af8d36f3549739576681d3df9969e32fd/electrum/constants.py#L194
2026-04-27 14:16:29 +00:00
ghost43
9b26c1812d
Merge pull request #10485 from accumulator/ndk28_qt610_rebase_p4a
...
p4a rebase, use ndk28 and qt6.10
2026-04-24 17:06:25 +00:00
ghost43
cc1874c9c9
Merge pull request #10575 from f321x/lnurlw_prefix
...
pi: handle lud-17 lnurl URIs
2026-04-24 15:00:07 +00:00
ghost43
8be4f8c8cf
Merge pull request #10606 from f321x/trampoline_route_fees
...
trampoline: handle edges with known fees during route edge fee allocation
2026-04-24 14:46:40 +00:00
SomberNight
b483e0d163
trampoline: _allocate_fee_budget_among_route: followup comment
2026-04-24 14:41:48 +00:00
f321x
6933faee32
trampoline: handle edges with known fees in allocation
...
Handle `TrampolineEdge` with known fees when allocating fees to
`TrampolineEdge` with `PLACEHOLDER_FEE` during trampoline route
construction.
This allows to create a mixed route from edges where we know the exact
feerates (e.g. provided through lazy trampoline) and evenly spread the
remaining budget between the edges where the fees are unknown (`PLACEHOLDER_FEE`).
Co-Authored-By: SomberNight <somber.night@protonmail.com >
2026-04-24 16:34:46 +02:00
ghost43
ca212da72a
Merge pull request #10605 from f321x/crash_reporter_start_new_window
...
qt: send start_new_window exc to reporter
2026-04-24 14:05:36 +00:00
SomberNight
5af40f435a
Merge branch '202604_pr10603_ledger'
...
adapt Ledger_Client_Legacy to work with newer ledger bitcoin app
manual merge of https://github.com/spesmilo/electrum/pull/10603
2026-04-24 13:57:23 +00:00
f321x
c8c44e354c
qt: send start_new_window exc to reporter
...
Send more types of exceptions happening during daemon.load_wallet
in `ElectrumGui.start_new_window()` to the crash reporter to catch
e.g. assertion failures instead of showing them to the user as a warning
dialog.
2026-04-24 15:54:56 +02:00
ghost43
b9dc6aa34c
Merge pull request #10591 from SomberNight/202604_fix_wallet_mktx_base_tx
...
wallet: make_unsigned_tx: fix base_tx for GUI simple-send batching
2026-04-24 13:01:24 +00:00
ghost43
e96b833fe7
Merge pull request #10592 from SomberNight/202604_testnet_mainnet_mixup2
...
wallet_db: put 'genesis_blockhash' in DB, detect mainnet/testnet mixup. (db upgrade)
2026-04-24 12:59:31 +00:00
f321x
5a0c052384
onion_message: move round-robin logic in Request method
2026-04-24 14:00:16 +02:00
f321x
3ff3205b19
onion_message: use util.random_shuffled_copy instead rand sort
2026-04-24 14:00:16 +02:00
f321x
d31d1cf75e
onion_message: simplify send_onion_message_to
...
Remove the hops data encryption from the blinded path branch of
send_onion_message_to. Our hops data is already encrypted before
and the blinded paths hops data is already encrypted by the recipient,
so this is a no-op.
Also use encrypt_hops_recipient_data in create_route_to_introduction_point,
it does the same as the existing encryption step.
2026-04-24 14:00:16 +02:00
Ilya Artemov
44570bfa3b
Bump minimum required version of ledger_bitcoin (build-time and runtime)
2026-04-24 09:09:00 +02:00
ghost43
294fdd1267
Merge pull request #10604 from f321x/dedup_valid_wallet_name
...
qml: deduplicate wallet name validation
2026-04-23 14:30:13 +00:00
f321x
d34129ef5c
qml: deduplicate wallet name validation
...
Deduplicates the wallet name validation between wizard and daemon.
2026-04-23 16:11:36 +02:00
ThomasV
7c433c5645
rm 'received orphan channnel' log line (too verbose)
2026-04-23 09:29:08 +02:00
ghost43
230e627559
Merge pull request #10600 from SomberNight/202604_lnpeer_chan_reest
...
lnpeer: channel_reestablish: split "they_are_ahead" into ctn vs revnum
2026-04-22 16:27:10 +00:00
SomberNight
46eadbf442
lnpeer: channel_reestablish: further restrict states for msg handler
...
re REQUESTED_FCLOSE and WE_ARE_TOXIC (as per f321x):
> There is no reason for the peer to send channel_reestablish after we
> have sent the force close request (error) and I assume we don't
> want to give surface to the peer to attempt finding out if we really lost state?
re FORCE_CLOSING:
the peer might not have realised we started force-closing but we probably don't want to run the message-handler even in that case
2026-04-22 15:57:18 +00:00
Sander van Grieken
f2e8b466cd
qml: add type hints for QVariant pyqtProperty workarounds
2026-04-22 10:15:30 +02:00
Sander van Grieken
3f34e6bee0
qml: additional styling InfoTextArea in dialogs
2026-04-22 10:15:30 +02:00
Sander van Grieken
31b1974089
qml: FlatButton: show indicator for press-and-hold functionality
2026-04-22 10:15:30 +02:00
Sander van Grieken
8e78d74723
qml: remove unused components
2026-04-22 10:15:30 +02:00
Sander van Grieken
3c5dc66068
qml: various styling updates
2026-04-22 10:15:30 +02:00
Sander van Grieken
7c83e749ef
icons: square closebutton.png and copy_bw.png so they don't resize on highlight (qml)
...
and upscale qrcode-[_white].png for the same reason and so we don't need to apply scaling
2026-04-22 10:15:30 +02:00
Sander van Grieken
895679a6be
qml: styling History, ProxyConfig and NostrConfigDialog
2026-04-22 10:15:30 +02:00
Sander van Grieken
87bb63e442
qml: use standard Button for buttons outside of buttoncontainer
2026-04-22 10:15:30 +02:00
Sander van Grieken
3a740256c5
qml: add missing button containers
2026-04-22 10:15:30 +02:00
Sander van Grieken
1c0851c6eb
styling OpenChannelDialog
2026-04-22 10:15:30 +02:00
Sander van Grieken
738992ac9e
qml: don't add navigationbar padding when on-screen keyboard is visible,
...
also allow stackview pages to override navigationbar background color to
allow correct color runoff below buttons
2026-04-22 10:15:30 +02:00
Sander van Grieken
28f744f778
qml: additional styling updates
2026-04-22 10:15:30 +02:00
Sander van Grieken
e99b3023e9
qml: wizard styling, password dialog styling
2026-04-22 10:15:30 +02:00
Sander van Grieken
cdb5c0b86d
qml: styling updates qt6.10
2026-04-22 10:15:30 +02:00
Sander van Grieken
fd5b867689
qml: don't import QtMultimedia when running on android (android 8 compat)
2026-04-22 10:15:30 +02:00
Sander van Grieken
9772a6d5b6
qml: add workarounds for issue assigning custom types to QObject properties
...
- on the python side, for pyqtProperty's with a setter, the pyqtProperty should be declared as QVariant type
- on the qml side, properties should be declared 'var', not the custom type.
2026-04-22 10:15:30 +02:00
ThomasV
bca41d941d
Merge pull request #10573 from f321x/qml_wallet_rename
...
qml: allow renaming wallets
2026-04-22 10:03:14 +02:00
ThomasV
294d21407a
Merge pull request #10568 from SomberNight/202604_verifier_left_sibling_duplicates
...
verifier.py: fix CVE-2012-2459: reject left-sibling duplicates
2026-04-21 16:22:07 +02:00
ghost43
b45d89e120
Merge pull request #10546 from f321x/bolt12_preparation_1
...
bolt12: preparation 1
2026-04-20 15:09:41 +00:00
SomberNight
68e6995a3c
bitcoin.py: add helper func: neuter_bitcoin_address
2026-04-20 13:27:21 +00:00
SomberNight
45458c2f89
wallet_db: put 'genesis_blockhash' in DB, detect mainnet/testnet mixup
...
If the user tries to open a wallet for a different chain (mainnet vs testnet), try to show a reasonable error message.
See previous attempt at this: https://github.com/spesmilo/electrum/commit/c13e05770150c5210783c3d42d3d2b1a683f18b4 , which added `wallet.test_addresses_sanity()`. However there are many codepaths where "random" exceptions might get raised before the Wallet object is even instantiated.
See [discussion there](https://github.com/spesmilo/electrum/commit/c13e05770150c5210783c3d42d3d2b1a683f18b4#commitcomment-28017341 ):
> should we actually fix that?
> if yes, it would be better to write the network type in storage
Indeed now I think we should do that. At the time I was concerned it would not help against altcoin forks if we put "mainnet" or "testnet" in the DB. Now I realise we should just put the genesis block hash in the DB instead.
Many of the reports in https://github.com/spesmilo/electrum/issues/6526 are likely due to users trying to open a mainnet wallet in testnet mode or vice-versa.
fixes https://github.com/spesmilo/electrum/issues/9134
same issue in wizard 2fa two-step wallet-creation flow
2026-04-20 01:39:35 +00:00
SomberNight
febe95e642
wallet: make_unsigned_tx: fix base_tx for GUI simple-send batching
...
fixes regression from https://github.com/spesmilo/electrum/commit/a9f20e4d3de9848247a9079b5b164d8006cf80db :
For the GUI / manual new tx constructions usecase, the flow relies on `base_tx.add_info_from_wallet(self)` being called before `base_tx_fee = base_tx.get_fee()`.
fixes https://github.com/spesmilo/electrum/issues/10587
maybe fixes https://github.com/spesmilo/electrum/issues/8876
probably not a full fix: base_tx could have inputs for which add_info_from_wallet is not sufficient
2026-04-19 22:22:39 +00:00
SomberNight
21946e1e87
lnpeer: channel_reestablish: split "they_are_ahead" into ctn vs revnum
2026-04-18 17:23:35 +00:00
SomberNight
16c8cb50e3
lnchannel: (trivial) fix type hint of receive_fail_reasons
2026-04-18 17:16:57 +00:00
Ilya Artemov
b3808b7920
Using GET_MASTER_FINGERPRINT for Legacy Client to get the root public key fingerprint
2026-04-16 15:02:07 +02:00
accumulator
3fbf597485
Merge pull request #10579 from f321x/qml_relay_list_padding
...
qml: add top padding to nostr relay url list
2026-04-14 18:18:05 +02:00
SomberNight
4a14feffd4
lnpeer: chan_reest: clarify my_current_per_commitment_point is ignored
...
`my_current_per_commitment_point` was only used prior to option_static_remotekey
2026-04-14 14:18:14 +00:00
f321x
24d93420fb
qml: add top padding to nostr relay url list
...
The first relay url was close to the top of the ElTextArea and looked a
bit sliced. Adding some padding makes it look better.
2026-04-14 08:34:18 +02:00
f321x
a5f1a299e7
pi: don't match literal | char in regexes
...
The RE_EMAIL and RE_DOMAIN regexes matched the '|' character
which is probably not what they should do.
2026-04-13 09:30:37 +02:00
f321x
ef702d74cd
pi: handle lud-17 URI payment identifier
...
LNURL-W/P can also be encoded in lud-17 form instead of bech32.
https://github.com/lnurl/luds/blob/luds/17.md
e.g.
lnurlw://example.com/api/test123
lnurlp://example.com/api/test123
2026-04-13 09:30:28 +02:00