1
0
Commit Graph

16152 Commits

Author SHA1 Message Date
Sander van Grieken
4d5be450d9 qml: default to system locale on android 2023-04-11 15:19:29 +02:00
Sander van Grieken
9bbc354e0e qml: refactor txaccepted/txcancelled signals to standard accepted/rejected. 2023-04-11 12:13:41 +02:00
Sander van Grieken
a0939aad75 qml: add doAccept and doReject functions to ElDialog.
These functions make sure no duplicate accepted/rejected signals are emitted.
2023-04-11 12:01:10 +02:00
Sander van Grieken
75f63a4666 qml: remove yesClicked signal, use accept()/accepted signal in MessageDialog. 2023-04-11 10:22:48 +02:00
ThomasV
697bf2b1c8 Revert commit ddd778f7f7.
This fixes #8298. The initial commit was good.
2023-04-10 21:23:50 +02:00
ThomasV
ddd778f7f7 follow-up previous commit 2023-04-09 11:32:01 +02:00
ThomasV
750a9b3613 network: remove network.notify() method; not really useful.
Not worth the added complexity.
2023-04-09 11:29:21 +02:00
SomberNight
e77b0560bf android: fix notifications by fixing "plyer" dependency
upstreamed patch at https://github.com/kivy/plyer/pull/756
2023-04-06 18:00:45 +00:00
SomberNight
40cfa62c2d android readme: update "access datadir on Android from desktop"
Added a section re pushing wallet to device.
It is surprisingly tricky, but using specifically the "/data/local/tmp"
folder as an intermediary, it works.
2023-04-06 16:56:14 +00:00
SomberNight
c0f8986188 qml: QEChannelOpener: accept any connection strings other GUIs accept
trying to paste a bare nodeid errored silently, logging:
174.76 | D | gui.qml.qechannelopener | AttributeError("'NoneType' object has no attribute '__contains__'")
2023-04-06 14:30:36 +00:00
SomberNight
36d800063f lnutil: add docstring and more tests for extract_nodeid 2023-04-06 14:30:32 +00:00
SomberNight
72da9c1a6a sanitise untrusted error bytes before logging it
full-blown paranoia kicking in
2023-04-06 14:28:31 +00:00
Sander van Grieken
2dd9b0796a qml: right-align balance labels 2023-04-06 16:17:38 +02:00
Sander van Grieken
6cd1f553e4 qml: BalanceSummary remove height hint for fiat amount 2023-04-06 16:15:57 +02:00
Sander van Grieken
2e15899fda followup prev 2023-04-06 16:13:37 +02:00
Sander van Grieken
f0d7983a46 qml: piechart from wallet.get_balances_for_piechart 2023-04-06 16:05:41 +02:00
Sander van Grieken
a45d2ce831 qml: highlight selected invoice, styling Invoices buttons 2023-04-06 15:21:16 +02:00
SomberNight
24cc80b724 kivy: fix ln chan open
follow-up e1dc7d1e6f
2023-04-06 11:45:23 +00:00
Sander van Grieken
b40794014d android: exclude more unneeded files in qml resource bundle generation 2023-04-06 11:42:06 +02:00
Sander van Grieken
42cb3a1377 qml: use same main-server icon as in desktop client 2023-04-06 10:36:09 +02:00
Sander van Grieken
5d350184a4 qml: add busy property and guards around swaphelper 2023-04-06 10:11:31 +02:00
Sander van Grieken
e02ca6b2d8 qml: add logging of instance around SwapDialog create/destroy and swap trigger 2023-04-06 09:26:52 +02:00
Sander van Grieken
bcbcf18c4d qml: arrows consistency.
replace with unicode arrows once we can assure these glyphs are included on device
2023-04-06 09:16:56 +02:00
SomberNight
2de9ca24a2 qml history: update mempool depth for unconf txs on new histogram 2023-04-05 14:32:11 +00:00
SomberNight
fcff4b7274 qml: begone, you C-style for loops
how am I going to continue in the middle of the loop body if the i+=1 is at the end? :P
2023-04-05 14:13:40 +00:00
SomberNight
e47059c96b qml: addresses list should not depend on wallet.use_change
wallet.use_change is a weird preference using which a user can disable
sending new change to change addresses.
However the setting can be toggled at ~any time; and the user might
have pre-existing balance on change addresses, which we should not hide.
2023-04-05 14:01:45 +00:00
SomberNight
b81508cfc0 qml: fix refresh bug in history, for local->unconfirmed tx transition
Previously if a local tx got broadcast, it was still displayed as local
in the history until it got mined (or some other action forced a full refresh).
2023-04-05 13:09:51 +00:00
SomberNight
e748345be0 addr_sync: change return type of get_address_history to dict from list 2023-04-05 13:09:47 +00:00
ThomasV
b9c81b0fcb qml rbf dialogs: use 'new fee', 'new fee rate' instead of 'mining fee' 2023-04-05 15:08:01 +02:00
ThomasV
03f0d632af wallet.sign_transaction: return tx if signed by swap manager
This fixes bumping swap fee in the qml GUI, because it expects
the value returned by this method to be None if the transaction
could not be signed.
2023-04-05 14:57:58 +02:00
Sander van Grieken
88209617b4 qml: in auth wrapper, use own logger and log func name 2023-04-05 14:12:47 +02:00
SomberNight
8ea63f9bde qml network overview: show server height, if lagging
to see how many blocks it is behind
2023-04-05 11:21:31 +00:00
Sander van Grieken
dd1a83e1c0 qml: fixes 2023-04-05 13:18:50 +02:00
Sander van Grieken
7ac3afdcda qml: fixes 2023-04-05 13:13:50 +02:00
ThomasV
ca386181a0 fix typo (follow-up prev) 2023-04-05 12:35:49 +02:00
ThomasV
d4c386a62c qml: use daemon threads everywhere the network is involved
The app hangs indefinitely if we try to quit it while one of
these threads is active, because once asyncio has shut down,
futures never return. This was already fixed for lightning
payments in c5dc133, but there are many other cases.
2023-04-05 12:31:20 +02:00
Sander van Grieken
0c83f363eb qml: haptic use constant compatible with older android 2023-04-05 12:28:56 +02:00
Sander van Grieken
8f3f282b62 Revert "qml: haptic override global setting"
This reverts commit 3e4737d6e9.
2023-04-05 12:08:54 +02:00
ThomasV
80a16e1377 fix typo (the error was silent) 2023-04-05 11:50:54 +02:00
Sander van Grieken
3e4737d6e9 qml: haptic override global setting 2023-04-05 11:38:38 +02:00
SomberNight
db4943ff86 wallet.get_full_history: more consistent sort order
before:
```
>>> [print(wallet.get_tx_status(txid, wallet.adb.get_tx_height(txid))) for txid in list(wallet.get_full_history())[-10:]]
(7, '2023-04-04 16:13')
(7, '2023-04-04 16:13')
(7, '2023-04-04 16:13')
(7, '2023-04-04 16:13')
(0, 'Unconfirmed [20. sat/b, 0.00 MB]')
(2, 'in 2 blocks')
(3, 'Local [180.4 sat/b]')
(3, 'Local [180.2 sat/b]')
(2, 'in 2016 blocks')
(0, 'Unconfirmed [180. sat/b, 0.00 MB]')
```

after:
```
>>> [print(wallet.get_tx_status(txid, wallet.adb.get_tx_height(txid))) for txid in list(wallet.get_full_history())[-10:]]
(7, '2023-04-04 16:13')
(7, '2023-04-04 16:13')
(7, '2023-04-04 16:13')
(7, '2023-04-04 16:13')
(0, 'Unconfirmed [20. sat/b, 0.00 MB]')
(0, 'Unconfirmed [180. sat/b, 0.00 MB]')
(2, 'in 2016 blocks')
(2, 'in 2 blocks')
(3, 'Local [180.4 sat/b]')
(3, 'Local [180.2 sat/b]')
```
2023-04-04 18:32:53 +00:00
SomberNight
f0e89b3ef6 addr_sync: migrate usages of get_txpos to get_tx_height
the return value of get_txpos is fine-tuned for sorting... other uses are highly questionable.
2023-04-04 17:49:46 +00:00
SomberNight
f8f0af4a2f qml: history: add some support for future txs
- they are now distinguished from local by the status text "in %d blocks"
- this status text needs updating occasionally: on new blocks,
  and some lnwatcher interactions, hence new event: "adb_set_future_tx"
2023-04-04 17:39:58 +00:00
SomberNight
76f795bc9a kivy: history screen: fix "future" txs
```
  3.96 | E | gui.kivy.uix.dialogs.crash_reporter.ExceptionHook | exception caught by crash reporter
Traceback (most recent call last):
  File "kivy/_clock.pyx", line 649, in kivy._clock.CyClockBase._process_events
  File "kivy/_clock.pyx", line 218, in kivy._clock.ClockEvent.tick
  File "/home/user/wspace/electrum/electrum/gui/kivy/main_window.py", line 1045, in update_wallet
    self.update_tabs()
  File "/home/user/wspace/electrum/electrum/util.py", line 462, in <lambda>
    return lambda *args, **kw_args: do_profile(args, kw_args)
  File "/home/user/wspace/electrum/electrum/util.py", line 458, in do_profile
    o = func(*args, **kw_args)
  File "/home/user/wspace/electrum/electrum/gui/kivy/main_window.py", line 506, in update_tabs
    self.update_tab(name)
  File "/home/user/wspace/electrum/electrum/gui/kivy/main_window.py", line 501, in update_tab
    s.update()
  File "/home/user/wspace/electrum/electrum/gui/kivy/uix/screens.py", line 161, in update
    history_card.data = [self.get_card(item) for item in history]
  File "/home/user/wspace/electrum/electrum/gui/kivy/uix/screens.py", line 161, in <listcomp>
    history_card.data = [self.get_card(item) for item in history]
  File "/home/user/wspace/electrum/electrum/gui/kivy/uix/screens.py", line 132, in get_card
    status, status_str = self.app.wallet.get_tx_status(tx_hash, tx_mined_info)
  File "/home/user/wspace/electrum/electrum/wallet.py", line 1491, in get_tx_status
    num_blocks_remainining = tx_mined_info.wanted_height - self.adb.get_local_height()
TypeError: unsupported operand type(s) for -: 'NoneType' and 'int'
```
2023-04-04 17:39:55 +00:00
ThomasV
f04e2e2e6f Add an extra state for invoices where our tx has been broadcast
successfully, but it is not in our history yet.

(follow-up 159646fe54)
2023-04-04 19:31:25 +02:00
ThomasV
159646fe54 Set status of onchain invoices to PR_INFLIGHT while tx is being broadcast 2023-04-04 18:22:30 +02:00
Sander van Grieken
cf3613b7d5 qml: handle max too 2023-04-04 17:59:40 +02:00
Sander van Grieken
793cbd1c6e qml: save with user entered amount 2023-04-04 17:47:37 +02:00
Sander van Grieken
6c65161d27 qml: refactor qeinvoice.py
QEInvoice/QEInvoiceParser now properly split for mapping to Invoice type (QEInvoice)
and parsing/resolving of payment identifiers (QEInvoiceParser).
additionally, old, unused QEUserEnteredPayment was removed.

invoices are now never saved with user-entered amount if the original invoice
did not specify an amount (e.g. address-only, no-amount bip21 uri, or no-amount
lightning invoice). Furthermore, QEInvoice now adds an isSaved property so the
UI doesn't need to infer that from the existence of the invoice key.

Payments of lightning invoices are now triggered through QEInvoice.pay_lightning_invoice(),
using the internally kept Invoice instance. This replaces the old call path of
QEWallet.pay_lightning_invoice(invoice_key) which required the invoice to be saved
in the backend wallet before payment.

The LNURLpay flow arriving on InvoiceDialog implicitly triggered payment, this is
now indicated by InvoiceDialog.payImmediately property instead of inferrred from the
QEInvoiceParser isLnurlPay property.
2023-04-04 16:13:00 +02:00
SomberNight
5d0d07c2b3 qml: QEWallet.broadcast: bring error msgs in line with qt 2023-04-04 14:02:54 +00:00