Commit Graph

1507 Commits

Author SHA1 Message Date
701f5ba1b1 Fix(QML): Resolve text overlap in transaction input display
Split transaction input display into two rows to prevent overlap
between short_id and value fields on Android QML interface.

- First row: input index and short_id (with text eliding)
- Second row: value amount and unit (indented)

Fixes readability issues on small screens and long identifiers.
2025-12-10 10:36:36 +01:00
8448b2d697 Fix(qml): Real-time balance updates for confirmations and coinbase maturity
This commit fixes two critical balance update issues in the Android app:

1. Added balanceChanged.emit() on blockchain_updated event
   - Fixes coinbase outputs not showing when they mature (120 blocks)
   - Ensures balance updates when new blocks arrive
   - Resolves issue where only partial mining rewards were displayed

2. Fixed typo: satInt → satsInt in BalanceDetails.qml
   - Lightning swap button now works correctly

Related to previous fix on tx_height_changed event handler.
2025-12-07 10:47:38 +01:00
a3b58cc631 Fix(qml): emit balanceChanged on tx height change for real-time updates 2025-12-06 19:05:21 +01:00
544872a8f1 Update presplash image layout in Terms of Use wizard 2025-11-26 12:45:59 +01:00
516ef1cf56 Update R package import path in SimpleScannerActivity
The import path for R package was incorrect after build configuration changes. Updated to use the correct package path from build.gradle.
2025-11-24 11:23:30 +01:00
cbd255e673 Rename bitcoin to palladium in android components
Update package names, intent filters and references from org.electrum to org.palladium
2025-11-24 11:06:49 +01:00
64b88fbded Rename Bitcoin to Palladium in UI and codebase
Update all references to "Bitcoin" and "Electrum" in the UI and codebase to "Palladium" and "Pallectrum" respectively. This includes network names, wallet types, error messages, and other user-facing text. Also updates the BIP21 URI scheme from 'bitcoin' to 'palladium'.
2025-11-23 22:09:21 +01:00
d9dc3fe30c Update currency references from BTC to PLM
Update plot labels and configuration calculations to use PLM instead of BTC to reflect the current currency being used.
2025-11-23 21:25:27 +01:00
6a39a1401a Replace BTC references with PLM in codebase
Update all instances of BTC currency references to PLM across multiple files including UI components, utility functions, and command descriptions to reflect the new currency denomination
2025-11-20 16:43:48 +01:00
Sander van Grieken
81c83f8318 qeinvoice: query self.status once in update_userinfo() and determine_can_pay() 2025-11-13 12:40:37 +01:00
SomberNight
cd3173a289 interface: extend client to be able to support a range of protocols 2025-11-03 16:50:38 +00:00
f321x
c816987164 android: qr scanner: add emoji to clipboard string
The string is not translated and might not be accessible for non-english
speakers, even though its relatively self-explanatory i think adding
this emoji makes it more accessible.
2025-10-28 14:32:04 +01:00
SomberNight
af6715040c lnurlw: follow-up: adapt to recent lnworker.get_bolt11_invoice refactor 2025-10-03 02:12:04 +00:00
SomberNight
ef8d53c46a lnurlw: follow-up: fix android edge-to-edge layout padding
as per https://github.com/spesmilo/electrum/pull/9993#issuecomment-3228252596
2025-10-03 02:11:43 +00:00
SomberNight
7d0ac64d06 Merge remote-tracking branch 'spesmilo/pr/9993': lnurl-withdraw
ref https://github.com/spesmilo/electrum/pull/9993
2025-10-02 23:34:40 +00:00
ghost43
de7612b3b1 Merge pull request #10216 from SomberNight/202509_adb_spv
adb: change API of util.TxMinedInfo: height() is now always SPV-ed
2025-09-24 13:50:14 +00:00
SomberNight
b944371ffd adb: change API of util.TxMinedInfo: height() is now always SPV-ed 2025-09-24 13:46:24 +00:00
Sander van Grieken
0fcd8f76fc qml: small gridlayout fix in BalanceDetails 2025-09-19 15:36:07 +02:00
SomberNight
47f1a2d7a2 wallet.get_full_history: rm "include_fiat" arg, infer it from fx
ref https://github.com/spesmilo/electrum/pull/10209#discussion_r2334228490
2025-09-09 17:24:59 +00:00
SomberNight
c68deb25ff daemon: get_wallet: handle OSError for weiiird paths
I think _wallet_key_from_path should not raise.
This is probably the sane way to deal with this.
Though all this is assuming that os.path.realpath can be treated as consistent/stateless.

closes https://github.com/spesmilo/electrum/issues/10182
2025-09-03 14:14:22 +00:00
f321x
debb4da90d qml: android: add padding to report dialog in ExcDialog
Adds padding to the report content dialog in the QML ExceptionDialog if
required on android.
Followup https://github.com/spesmilo/electrum/pull/10178
2025-09-02 10:32:10 +02:00
SomberNight
c8a14cc2cc qml: add some type hints to qetxfinalizer 2025-09-01 17:09:38 +00:00
f321x
0263b5ecc1 qml: adapt exception dialog to edge-to-edge layout
Even though the exception dialog inherits from ElDialog the padding
didn't work as it overwrites the properties of the ElDialog. So the
padding has to be applied separately to the ExceptionDialog.
2025-08-28 10:17:32 +02:00
Sander van Grieken
313c8a136a qml: use declarative form for invoiceResolved and requestResolved in WalletMainView
(cherry picked from commit 78b2e3df6c47ad5d5d119cbc2372e62807f372fd)
2025-08-27 16:46:41 +02:00
f321x
c2f5b3ba6b qml: lnurlw: bind walletCanReceive to in-liquidity
binds the walletCanReceive variable to the available inbound liquidity
so the withdraw button gets enabled when the channels reconnect if the
user opens a lnurlw request dialog before the channels have connected.
2025-08-27 15:35:14 +02:00
f321x
b90090e2dd qml: separate PI resolving from QEInvoiceParser
separates the resolving step from the QEInvoiceParser so the 'recipient'
can be resolved first and then either an QEInvoiceParser can be used if
it is a sending request that has been resolved (invoice, address,
lnurlp, ...), or RequestDetails can be used if the resolved 'recipient'
turns out to be a voucher/LNURLW string.

# Conflicts:
#	electrum/gui/qml/qeinvoice.py
2025-08-27 15:35:03 +02:00
f321x
fdeada3f51 lnurl: implement LNURL-withdraw
adds handling of lnurl-withdraw payment identifiers which allow users to
withdraw bitcoin from a service by scanning a qr code or pasting the
lnurl-w code as "sending" address.
2025-08-27 15:31:43 +02:00
f321x
f1dfe5e248 qml: LoadingWalletDialog: add some padding
add some padding at the bottom of the LoadingWalletDialog so the
spinning circle is not directly at the bottom of the dialog, looks a bit
nicer this way.
2025-08-27 15:17:19 +02:00
f321x
9871931bf3 android: make QR code scanner e2e compatible
Makes the Java QR code scanner edge-to-edge compatible by padding the
hintTextView and the pasteButton.
2025-08-27 15:17:17 +02:00
f321x
5f0180910c qml: add padding to ElDialog for android e2e 2025-08-27 15:17:16 +02:00
f321x
53595e1be7 qml: pad main view if e2e enforcement is active 2025-08-27 15:17:13 +02:00
f321x
4b30b097a9 qml: qeapp: add methods to retrive system bar heights 2025-08-27 15:17:04 +02:00
SomberNight
92bdc4d4ca daemon: load_wallet: add force_check_password arg, and use it in qml
- fix: qml gui errors when trying to open a wallets with only keystore-encryption
  - fixes https://github.com/spesmilo/electrum/issues/10171
- qml gui to prompt for password on wallet open even if wallet is not storage-encrypted
2025-08-23 16:54:48 +00:00
SomberNight
23a82f328f util: fix DebugMem helper
```
 28.99 | I | util.DebugMem | Start memscan
 29.10 | E | plugin.Plugins |
Traceback (most recent call last):
  File "...\electrum\util.py", line 405, in run_jobs
    job.run()
  File "...\electrum\util.py", line 376, in run
    self.mem_stats()
  File "...\electrum\util.py", line 368, in mem_stats
    if isinstance(obj, class_):
  File "...\Python310\lib\abc.py", line 119, in __instancecheck__
    return _abc_instancecheck(cls, instance)
  File "...\electrum\simple_config.py", line 609, in __getattribute__
    raise AttributeError()
AttributeError
```
2025-08-23 14:51:01 +00:00
ThomasV
864932c79a reverse swaps: in the CLI, replace 'server_mining_fee' with
'prepayment', which corresponds to the trusted part of the
lightning payment.

We use 2*sm.mining_fee, where 'mining_fee' is the flat part of
the server fee. However, future protocol should probably allow
to set a value that does not depend on 'mining_fee'.
(note that LND uses a hardcoded amount).
2025-08-21 19:47:00 +02:00
f321x
71c71a96f3 swaps: add sanity check to reverse swap mining fee 2025-08-20 17:57:36 +02:00
SomberNight
74d2c6386a wallet: sweep_preparations to raise UserFacingException on p2sh/etc
closes https://github.com/spesmilo/electrum/issues/10145
2025-08-18 17:02:34 +00:00
ghost43
0c6ff6ab62 Merge pull request #10122 from accumulator/qml_invoice_validation_error
qml: handle invoice validation errors on save
2025-08-18 14:32:57 +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
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
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
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
Sander van Grieken
43c6f45040 qml: handle invoice validation errors on save 2025-08-12 20:27:58 +02:00
Sander van Grieken
9a7ca74992 qml: qetxdetails: update mempool depth on fee histogram 2025-08-12 12:35:16 +02: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
Sander van Grieken
f79172c04f qml: sweep: handle network errors gracefully
fixes #10108
2025-08-06 11:02:58 +02:00
Sander van Grieken
9b1566705d qml: swap: disable choose provider button during active swap. 2025-08-04 12:56:46 +02:00
SomberNight
db52ec7798 gui: cpfp: use wallet.relayfee() instead of hardcoded 1 sat/byte 2025-08-01 18:28:44 +00:00
SomberNight
5432228d17 fee calculation should round up satoshis
so that with a feerate of 0.1 sat/vbyte, for a tx of size 141 vbytes, the fee is 15 sat (instead of 14 sat)
(assuming a min relay fee of 0.1 s/b, the tx needs to pay a minimum of 15 sats to propagate)
2025-08-01 18:28:41 +00:00
accumulator
8e5f29e890 Merge pull request #10078 from accumulator/android_qml_qrscan_signals
simplify QR scanner QML interface, remove properties, add results to signals
2025-08-01 13:16:26 +02:00