1
0
Commit Graph

19143 Commits

Author SHA1 Message Date
ghost43
784a517a4b Merge pull request #10146 from f321x/fix_10144
qt: invoice_list: only show invoice if it is not None
2025-08-18 14:26:18 +00:00
f321x
9fcf5f1581 qt: invoice_list: only show invoice if it is not None
Check if the invoice is not None when the user tries to open the
invoice details to prevent an Exception, update the list instead if the
invoice hasn't been found.
It can happen that the user deletes the invoice through the CLI
and then tries to open the details in the gui, which hasn't been
updated, at the same time.
Fixes #10144
2025-08-18 11:02:22 +02:00
f321x
a68bfab596 swaps: improve preimage extraction logic 2025-08-18 10:03:24 +02:00
ghost43
4c6d8166a4 Merge pull request #10143 from SomberNight/202508_fix_old_keystore_check_password
keystore: Old_KeyStore: fix check_password(None) if ks has password
2025-08-17 00:22:30 +00:00
SomberNight
2318cf7369 keystore: Old_KeyStore: fix check_password(None) if ks has password
check_password(None) should raise InvalidPassword when called on a keystore that has a password.

regression from f86bdc86a2

fixes https://github.com/spesmilo/electrum/issues/10142
2025-08-16 18:08:10 +00:00
SomberNight
392400295e wallet.get_tx_fee_warning: fix rounding error for sub-1 sat/vbyte fees
```
>>> Decimal("0.1") < 100/1000
True
```

ref https://bitcointalk.org/index.php?topic=5554840.msg65694417#msg65694417
2025-08-15 18:26:19 +00:00
ghost43
8a8ab26d44 Merge pull request #10140 from SomberNight/202508_test_keystore_wizard
wallet: enable/disable_keystore: some more fixes and tests
2025-08-15 18:16:38 +00:00
SomberNight
5997494c46 tests: wizard: add test "adding unrelated seed to xpub-only ks raises" 2025-08-15 17:39:57 +00:00
SomberNight
cd63be233b wallet: disable_keystore() not to destroy get_key_origin_info() 2025-08-15 17:29:55 +00:00
SomberNight
f025a75356 tests: wizard: use real bip39 seeds 2025-08-15 17:19:22 +00:00
SomberNight
0ceb54b61f wallet: enable/disable_keystore: rm functionality from 2fa wallets
was already not working, but does not even really make sense without larger changes
2025-08-15 16:18:13 +00:00
ghost43
1ae3d0a0bf Merge pull request #10131 from SomberNight/202508_commands_onchain_history
commands: add back from_height/to_height params to onchain_history
2025-08-15 13:36:25 +00:00
Sander van Grieken
bd6dfc53a2 qml: avoid hue wrap-around for fees < 1sat/vbyte, limit precision. 2025-08-15 11:35:33 +02:00
Sander van Grieken
b4ffd3eeeb qt: contacts: stretch address, not name 2025-08-15 10:44:31 +02:00
ghost43
5a9f54fba0 Merge pull request #10133 from f321x/qml_timestamp_precision
qml: reduce tx history timestamp precision
2025-08-14 17:26:08 +00:00
SomberNight
0fea61ac3a tests: wizard: KeystoreWizard: also test disable_keystore() 2025-08-14 17:06:52 +00:00
SomberNight
6554ec674e tests: wizard: KeystoreWizard: add test case for old seed 2025-08-14 16:44:57 +00:00
SomberNight
e3d1c6aefd wallet: enable/disable_keystore: trivial clean-up 2025-08-14 16:16:31 +00:00
ghost43
5bfd5a858f Merge pull request #10123 from accumulator/keystorewizard_scriptandderivation
wizard: add script and derivation to keystorewizard flow. fixes #10063
2025-08-14 16:10:47 +00:00
SomberNight
34f0450798 tests: commands: onchain_history: add test for "show_fiat" param 2025-08-14 15:26:59 +00:00
ghost43
094ca92518 Merge pull request #10134 from f321x/mutinynet
contants: add support for mutinynet signet
2025-08-14 15:13:57 +00:00
ghost43
33dd45a2d9 Merge pull request #10096 from SomberNight/202508_lower_minrelayfee
change minrelayfee clamps from `[1, 50]` to `[0.1, 50]` sat/vbyte
2025-08-14 14:53:28 +00:00
f321x
348ca667ca contants: add support for mutinynet signet
Adds the mutinynet signet (https://github.com/MutinyWallet/mutiny-net/)
to the supported networks so it's possible to
use it with Electrum. Mutinynet is similar to signet, except for a
shorter block interval (30 sec), a nice faucet
(faucet.mutinynet.com) and some extra features in its core fork.
It also has some lightning network nodes, see
the mempool instance on mutinynet.com.
2025-08-14 15:59:11 +02:00
Sander van Grieken
2ca9e1b686 plugin: fix translatable string, and organize whitespace/imports/type hints while weŕe at it. 2025-08-14 11:37:16 +02:00
f321x
292ade8953 tests: unittest QETransactionListModel date format
adds unittests for the date formatting and categorization in
QETransactionListModel
2025-08-14 10:10:42 +02:00
f321x
0c7d8646d4 qml: stop showing seconds in tx history timestamps
Reduces the precision of the date field in the qml transaction history
list to minutes. Seconds don't seem very useful in practice and add
clutter to the UI. This adapts the behaviour to the Qt GUI.
2025-08-14 09:57:48 +02:00
SomberNight
d7c76b991b commands: add back from_height/to_height params to onchain_history
closes https://github.com/spesmilo/electrum/issues/10119

also:
- wallet.get_onchain_history was broken with from_height/to_height args
- "show_fees" param is and was non-existent. fees are always added to output
- MyEncoder(json.JSONEncoder) changed a bit:
  - I am pretty sure cutting the last 3 chars was intended to cut off the seconds
  - however that was making incorrect assumptions about what datetime.isoformat() returns
    - which depends on whether microsecond precision is available or whether an explicit timezone is set
  - this now makes it clear that we want minutes-resolution, but still leaves the timezone-ambiguity
2025-08-13 15:09:04 +00:00
Sander van Grieken
e1d5d803e9 wizard: fix missing 'wallet_password' and 'wallet_password_hardware' views on abstract KeystoreWizard
(these were implicitly defined by the Qt subclass) and test wallet keystore enable.
2025-08-13 16:25:01 +02:00
Sander van Grieken
0a2cd5fdad hww: fix crash when disabling keystore for hww (was unimplemented for Hardware_Keystore)
also preserve derivation path and root fingerprint for watch-only keystore.
2025-08-13 15:57:07 +02:00
Sander van Grieken
0c5403b91e wizard: add initial tests for KeystoreWizard for electrum and bip39 seeds, hww 2025-08-13 14:40:18 +02:00
Sander van Grieken
66c0fec1ea qt: wizard: pass wallet_type to Keystore wizard via initial viewstate 2025-08-13 11:40:08 +02:00
Sander van Grieken
4eccfdaa99 wizard: add script and derivation to keystorewizard flow. fixes #10063 2025-08-13 11:37:57 +02:00
accumulator
48aa454786 Merge pull request #10126 from SomberNight/202508_tests_wizard
tests: more WalletWizardTestCases
2025-08-13 10:08:21 +02:00
SomberNight
acc52e392c tests: wizard: imported addrs: validate each addr with "is_address()"
This was already done *in the GUIs*, but the backend should definitely
do at least sanity-check-level validation like this.
2025-08-12 18:42:35 +00:00
SomberNight
19b2567da8 tests: bitcoin: merge testnet/mainnet address_to_script tests
and add an extra explicit mixed-case bech32 test case
2025-08-12 18:28:09 +00:00
SomberNight
dad18c030c tests: wizard: add test cases for imported wallets 2025-08-12 17:47:03 +00:00
SomberNight
d78782c6ae tests: wizard: add test cases for multisig 2025-08-12 15:44:28 +00:00
SomberNight
fe3ebb31ec tests: wizard: add test case for "restore from slip39" 2025-08-12 15:43:17 +00:00
SomberNight
30a646f80a tests: wizard: add test case for "restore from xpub" 2025-08-12 15:41:31 +00:00
ghost43
7346e9a37b Merge pull request #10124 from accumulator/qml_txdetails_update_on_feehistogram
qml: qetxdetails: update mempool depth on fee histogram
2025-08-12 13:27:09 +00:00
Sander van Grieken
9a7ca74992 qml: qetxdetails: update mempool depth on fee histogram 2025-08-12 12:35:16 +02:00
SomberNight
db43e0c7da contrib/make_download: invert GPG name trickery
if I ran the script with the *.sombernight_releasekey.asc sigs present in dist/,
"SomberNight" and "sombernight_releasekey" were both included as signers
2025-08-12 00:04:12 +00:00
ghost43
a8118be4d5 Merge pull request #10120 from f321x/fix_10117
fix: wizard: qml: call checkIfLast in WCHaveSeed
2025-08-11 15:45:57 +00:00
f321x
e6f73522cb fix: wizard: qml: call checkIfLast in WCHaveSeed
When the user has already loaded a wallet in QML and tries to restore a
new wallet `WCHaveSeed.qml` incorrectly shows a `Finish` button instead
of a `Next` button and raises a KeyError if the user clicks on Finish
instead of resolving the passphrase input view (regression from
https://github.com/spesmilo/electrum/pull/10016).

This happens because `last` of `have_seed` depends on
`NewWalletWizard.is_single_password()` and NewWalletWizard.wants_ext(wizard_data).
`is_single_password()` is true if a wallet is already loaded,
while `wants_ext(wizard_data)` is false as `wants_ext()` depends on `seed_extend: True` in
`wizard_data` which only gets set after `apply()` of `WCHaveSeed` gets
called, however the evaluation of `WCHaveSeed` being the last view
happens before the view is shown.
By calling `checkIsLast()` in the validation timer of `WCHaveSeed` the
`last` property gets set again after `apply()` has been called, so
the view is guaranteed to correctly show either the `Finish` or `Next` button
after a seed has been entered.
2025-08-11 15:05:17 +02:00
ghost43
186b8ec2ab Merge pull request #10111 from SomberNight/202508_iface_cache_broadcast_tx
interface: don't request same tx from server that we just broadcast to it
2025-08-08 17:28:34 +00:00
ghost43
9ae716ae6d Merge pull request #10114 from SomberNight/202508_change_gap_limit_for_change
wallet: add internal support for changing gap_limit_for_change, and use it in tests
2025-08-08 17:22:17 +00:00
SomberNight
4f1cc8b9cb tests: set low wallet.gap_limit_for_change to speed up tests 2025-08-08 16:36:39 +00:00
SomberNight
4800a2d9c6 wallet: follow-up prev: always set wallet.gap_limit_for_change
even for Imported_Wallet
2025-08-08 16:36:32 +00:00
Filiprogrammer
3e8af98145 wallet: make gap limit for change configurable
Add the ability to configure the gap limit for change addresses while
retaining that value in the wallet database.

----

extracted from https://github.com/spesmilo/electrum/pull/8726

Co-authored-by: SomberNight <somber.night@protonmail.com>
2025-08-08 16:36:27 +00:00
SomberNight
302ee2444b wallet: refactor get_change_addresses_for_new_transaction 2025-08-08 15:30:33 +00:00