Commit Graph

5249 Commits

Author SHA1 Message Date
SomberNight
d37b5e7d75 Qt ReceiveTabWidget: change cursor to hint QR code can be clicked 2022-08-29 13:30:59 +00:00
SomberNight
20997cf60b wallet: follow-up removal of get_request_status
follow-up d9f77a50e8
2022-08-29 12:27:05 +00:00
ThomasV
6a9e8da218 remove sign_payment_request: broken and not used 2022-08-29 12:50:02 +02:00
ThomasV
2df45faeae follow-up previous commit 2022-08-29 10:27:56 +02:00
ThomasV
cf94ebc106 If an invoice cannot be parsed in import_invoices or import_requests,
raise FileImportFailed. Fixes #7950
2022-08-29 10:21:14 +02:00
ThomasV
d9f77a50e8 wallet API: remove get_request_status, it is redundant with get_invoice_status 2022-08-29 09:48:08 +02:00
Sander van Grieken
291ca40c9e qml: fix missing param in userNotify 2022-08-27 13:41:59 +02:00
SomberNight
12e628e2e6 aiorpcx: fix bug in timeout_after monkeypatch
fixes https://github.com/spesmilo/electrum/issues/7952

see in particular https://github.com/spesmilo/electrum/issues/7952#issuecomment-1227225602
> So the issue is with the aiorpcx monkey patch in util.py, as it
> relies on side-effecting the asyncio.Task, and it patches Task.cancel.
> However, aiohttp also uses Task.cancel for its own timeouting of the
> http request, with the same Task object, and this confuses timeout_after.
> Ultimately FxThread.run exits.

related https://github.com/kyuupichan/aiorpcX/pull/47

---

note: I am not content at all with this monkey-patching approach,
but at the same time I don't see how to properly fix this handling all
edge-cases in aiorpcx.

python 3.11 is finally adding an implementation of TaskGroup [0] and
an async timeout context manager [1] in the asyncio module of the stdlib.
Looking at the implementations, they look unfeasible to backport:
much of the implementation of asyncio.Task had to be changed for them
to work, and TaskGroup in particular relies on the new ExceptionGroups.
Some of these edge cases we are battling with aiorpcx.curio look
difficult to fix without those stdlib changes...
Anyway, when we bump the min python to 3.11, I look forward to switching
to that code instead, and ripping this stuff out.

[0]: https://docs.python.org/3.11/library/asyncio-task.html#task-groups
[1]: https://docs.python.org/3.11/library/asyncio-task.html#asyncio.timeout
2022-08-26 15:27:53 +00:00
Sander van Grieken
629b0c56f3 qml: fix missing import 2022-08-26 15:15:40 +02:00
Sander van Grieken
34c901b1a6 qml: add Save Backup dialog when no onchain backup, some initial work on incomplete funding TX 2022-08-26 15:06:10 +02:00
ghost43
b6d744df04 Merge pull request #7955 from SomberNight/202208_fxrate_more_robust
exchange_rate: more robust spot price against temporary network issues
2022-08-26 11:54:05 +00:00
SomberNight
03b514863e exchange_rate: more robust spot price against temporary network issues
We poll the fx rate provider every 2.5 minutes (unchanged).
Previously if there was any error during a tick, there was no fx rate
available in the client until the next tick.
Now, instead, we keep the last rates received with a 10 minute expiry.

One potential drawback is that previously there was instant feedback
to the user when e.g. changing proxy settings, and this is no longer
the case. E.g. consider a provider that bans Tor exit nodes. If a user
enables using a Tor proxy in the network settings, the fxrate used to
disappear immediately - but now the cached rate would still be
available.
2022-08-26 11:48:51 +00:00
Sander van Grieken
b9f381a133 qml: fix channel double add to list on open, better display errors 2022-08-26 13:21:49 +02:00
Sander van Grieken
e582ae0486 qml: add QEAmount.copyFrom(QEAmount) so we can take a new amount object without changing the instance.
This avoids crashes when a QEAmount is already referenced in QML, and then replaced with another instance (e.g. in qetxfinalizer.py)
2022-08-26 11:57:00 +02:00
Sander van Grieken
f398404e04 qml: add server and proxy config dialogs, forgot new files 2022-08-25 11:13:42 +02:00
ThomasV
dd95369685 qml: fix undefined name (flake8 mandatory test) 2022-08-25 09:51:32 +02:00
Sander van Grieken
7b17626c4c qml: PIN error message also when setting new pin and second entry doesn't match 2022-08-24 16:21:14 +02:00
Sander van Grieken
3295671e5b qml: show when PIN is wrong 2022-08-24 16:16:50 +02:00
SomberNight
8cbf49fec9 Qt balance dialog: use monospace font for btc amounts 2022-08-24 14:05:35 +00:00
Sander van Grieken
9a72f98855 qml: add server and proxy config dialogs 2022-08-24 16:01:50 +02:00
SomberNight
757ec53ea2 AddressSynchronizer: set diagnostic_name for better logs
fixes regression from 121d8732f1

in particular, this is needed for Synchronizer.diagnostic_name and SPV.diagnostic_name
2022-08-24 11:05:01 +00:00
Sander van Grieken
dea30f96a1 qml: small fixes, cleanup 2022-08-24 12:38:25 +02:00
Sander van Grieken
c37e202e44 qml: implement scrollbar drag in history listview 2022-08-24 12:25:51 +02:00
Sander van Grieken
b0cfc2ab14 qml: add channel backup option to channel details page 2022-08-24 10:15:44 +02:00
Sander van Grieken
bb8af0cd08 qml: add help_text to GenericShareDialog 2022-08-24 10:15:03 +02:00
Sander van Grieken
1e375ae9e1 qml: allow separate data for clipboard/share and QR code in GenericShareDialog 2022-08-23 20:21:18 +02:00
Sander van Grieken
65b3c1abb3 qml: fix derivation prefix not available for watch-ony wallets 2022-08-23 22:04:08 +02:00
Sander van Grieken
f05ff0c9b8 qml: add QERequestDetails component.
Auto binds to wallet request status update signal so qml doesn't have to.
implements timer to update status string when near expiry.
2022-08-23 17:13:22 +02:00
SomberNight
f13a257805 prepare release 4.3.1 2022-08-17 12:53:16 +00:00
SomberNight
4f1969dc6c update block header checkpoints 2022-08-17 11:29:04 +00:00
Sander van Grieken
c278d5befc qml: OpenWalletDialog rework 2022-08-17 11:49:57 +02:00
Sander van Grieken
d76726836d qml: fixes 2022-08-17 11:49:41 +02:00
ThomasV
60c493dc15 adb: trigger adb_added_tx event only if the transaction is new 2022-08-17 10:40:43 +02:00
SomberNight
d0de44a794 build: also build a "source-only" linux-packager-friendly tarball
We now distribute two tarballs, a "normal" one (the default, recommended for users),
and a new strictly source-only one (for Linux distro packagers).
The normal tarball, in addition to including everything from
the source-only one, also includes:
- compiled (`.mo`) locale files (in addition to source `.po` locale files)
- compiled (`_pb2.py`) protobuf files (in addition to source `.proto` files)
- the `packages/` folder containing source-only pure-python runtime dependencies

merges https://github.com/spesmilo/electrum/pull/7594
with follow-ups
2022-08-16 17:28:41 +00:00
ThomasV
4dee6e53b9 Merge pull request #7942 from SomberNight/202208_wallet_nosetlabel
wallet: rm `maybe_set_tx_label_based_on_invoices`, just use `get_default_label`
2022-08-16 18:23:34 +02:00
SomberNight
abef454237 qt: better handle unparseable URIs
fixes https://github.com/spesmilo/electrum/issues/7941
2022-08-16 15:27:13 +00:00
Sander van Grieken
d52cd2f2e6 qml: don't auto-pop Scan
TODO: handle cancel by signal too
2022-08-16 16:35:46 +02:00
Sander van Grieken
742012aee3 qml: add initial sign and broadcast feature to TxDetails/qetxdetails 2022-08-16 16:09:09 +02:00
Sander van Grieken
1c29ef12b5 qml: cosmetic changes 2022-08-16 16:09:05 +02:00
Sander van Grieken
fad9f87303 qml: accept raw tx from send page paste/qrscan and show TxDetails 2022-08-16 16:09:00 +02:00
SomberNight
d1c15fe5e9 wallet: (perf) avoid iterating over all invoices in add_transaction 2022-08-16 12:14:44 +00:00
ThomasV
24145f1f52 detect paid invoices in on_event_adb_added_tx 2022-08-16 10:14:47 +02:00
Sander van Grieken
0f227b177c qml: use QEAmount setters also in qetxdetails 2022-08-16 10:04:50 +02:00
Sander van Grieken
153a9f3a53 qml: use only genericsharedialog component defined in main 2022-08-16 10:04:44 +02:00
Sander van Grieken
46641e7874 qml: handle unsigned, local tx in history 2022-08-16 10:04:39 +02:00
Sander van Grieken
3dffd3e0b5 qml: don't implicitly send_onchain from ConfirmTxDialog, externalize 2022-08-16 10:04:33 +02:00
Sander van Grieken
46d3aa4515 qml: enable send for watch-only wallets, show raw tx dialog after finalizing
also use QEAMount setters in qetxfinalizer instead of re-instantiating
2022-08-16 10:04:28 +02:00
Sander van Grieken
6190498dfc qml: add setters to QEAmount to allow updating values, as replacing QEAmount instances
makes Qt unhappy in a few cases when it still holds references to the old instance, which
happened occasionally in e.g. qetxfinalizer
2022-08-16 10:04:22 +02:00
Sander van Grieken
2ee6683dd0 qml: qetxdetails was missing this in 9eb7ee74e1 2022-08-16 10:03:51 +02:00
ThomasV
ff3c999fcb rm method is_static_remotekey_enabled for channel backups 2022-08-16 08:58:34 +02:00