1
0
Commit Graph

14919 Commits

Author SHA1 Message Date
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
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
SomberNight
7b8e257ebb wallet db upgrade: rm support of "legacy" lightning channels
("legacy" as in pre-static-remote-key channels)
2022-08-16 08:49:17 +02:00
ThomasV
1f403d1ca1 remove support for channels without static remote pubkey 2022-08-16 08:48:59 +02:00
ThomasV
21255b33af Merge pull request #7939 from SomberNight/202208_lnwatcher_dont_load_redeemed_chans
lnwatcher: don't add `REDEEMED` channels
2022-08-15 16:15:02 +02:00
SomberNight
3541ecb576 lnwatcher: don't add REDEEMED channels
Previously lnworker called LNWatcher.add_channel() on these, and then LNWatcher itself decided to unwatch them.

-----

note: motivation related to https://github.com/spesmilo/electrum/pull/7932#discussion_r945755584 ,
where I have legacy (pre-staticremotekey) redeemed channels in a wallet.
Tracebacks:
```
E/W | lnwatcher.LNWalletWatcher.[default_wallet-LNW] | Exception in do_breach_remedy: AssertionError()
Traceback (most recent call last):
  File "...\electrum\electrum\util.py", line 1235, in wrapper
    return await func(*args, **kwargs)
  File "...\electrum\electrum\lnwatcher.py", line 443, in do_breach_remedy
    sweep_info_dict = chan.sweep_ctx(closing_tx)
  File "...\electrum\electrum\lnchannel.py", line 264, in sweep_ctx
    our_sweep_info = self.create_sweeptxs_for_our_ctx(ctx)
  File "...\electrum\electrum\lnchannel.py", line 253, in create_sweeptxs_for_our_ctx
    return create_sweeptxs_for_our_ctx(chan=self, ctx=ctx, sweep_address=self.sweep_address)
  File "...\electrum\electrum\lnchannel.py", line 757, in sweep_address
    assert self.is_static_remotekey_enabled()
AssertionError
```
```
E/W | lnwatcher.LNWalletWatcher.[default_wallet-LNW] | Exception in trigger_callbacks: AssertionError()
Traceback (most recent call last):
  File "...\electrum\electrum\util.py", line 1235, in wrapper
    return await func(*args, **kwargs)
  File "...\electrum\electrum\lnwatcher.py", line 208, in trigger_callbacks
    await callback()
  File "...\electrum\electrum\lnwatcher.py", line 225, in check_onchain_situation
    keep_watching = await self.do_breach_remedy(funding_outpoint, closing_tx, spenders)
  File "...\electrum\electrum\util.py", line 1235, in wrapper
    return await func(*args, **kwargs)
  File "...\electrum\electrum\lnwatcher.py", line 443, in do_breach_remedy
    sweep_info_dict = chan.sweep_ctx(closing_tx)
  File "...\electrum\electrum\lnchannel.py", line 264, in sweep_ctx
    our_sweep_info = self.create_sweeptxs_for_our_ctx(ctx)
  File "...\electrum\electrum\lnchannel.py", line 253, in create_sweeptxs_for_our_ctx
    return create_sweeptxs_for_our_ctx(chan=self, ctx=ctx, sweep_address=self.sweep_address)
  File "...\electrum\electrum\lnchannel.py", line 757, in sweep_address
    assert self.is_static_remotekey_enabled()
AssertionError
```
2022-08-15 13:56:44 +00:00
SomberNight
16c84acb98 hw wallets: improve error message when a dependency is missing
e.g.
```
Debug message
  jade: (error getting device infos)
    Missing libraries for jade.
        ModuleNotFoundError("No module named 'cbor'")
    Make sure you install it with python3
```
2022-08-15 10:38:56 +00:00
ThomasV
a11dbb1a76 kivy: save manually entered amount into lightning invoices, as in Qt (related: #7935) 2022-08-15 12:35:22 +02:00
ThomasV
2d6f40c8b8 fix #7935 2022-08-15 12:16:11 +02:00
ThomasV
8486168bbe fix typo 2022-08-13 07:41:48 +02:00
ThomasV
83feec2cb3 fix #7933 2022-08-12 18:07:38 +02:00
Sander van Grieken
9eb7ee74e1 qml: expose more flags and TxMinedInfo in qetxdetails 2022-08-12 16:39:15 +02:00
Sander van Grieken
74e9c848cc qml: QEAmount returns 0 when amount is undefined
an undefined amount triggers a hard to debug crash when None/undefined is passing the
python/QObject boundary, so let's default to 0
2022-08-12 16:38:18 +02:00
SomberNight
13570a465c kivy request dialog: follow-up c95791d7ee
related https://github.com/spesmilo/electrum/pull/7929
2022-08-12 11:10:54 +00:00
ThomasV
fceceaec97 lnwatcher: set future_tx regardless of tx_was_added, because it is not persisted 2022-08-12 12:26:18 +02:00
ThomasV
9058000791 lnwatcher: fix adding of local tx to history 2022-08-12 12:10:09 +02:00
Sander van Grieken
1c852328c0 qml: try-except around data query, history is very unpredictable what's present and what's not 2022-08-12 11:59:59 +02:00
Sander van Grieken
0c3ce4a6b6 qml: add address to bolt11>bip21>address QR caroussel and remove address copy button
(conform qt and kivy)
2022-08-12 11:59:48 +02:00
Sander van Grieken
0d7bcb5dd2 qml: refactor HistoryItemDelegate into separate file 2022-08-12 11:59:40 +02:00
ThomasV
f65368f1d0 kivy request dialog: follow-up c95791d7ee:
- toggle between text and qr code
 - fix minor issues
2022-08-12 11:46:44 +02:00
SomberNight
c95791d7ee qt/kivy: receive tab: add wallet.ReceiveRequestHelp and refactor 2022-08-12 10:06:13 +02:00
SomberNight
0a6265ef58 qt new_channel_dialog: fix None-handling for lnworker.suggest_peer()
fixes https://github.com/spesmilo/electrum/issues/7931
2022-08-12 02:50:52 +00:00
SomberNight
767b058946 qt history tab: fix "View Channel" in context menu
related: https://github.com/spesmilo/electrum/issues/7930
2022-08-12 02:30:29 +00:00
SomberNight
ba72abdbf5 kivy request_dialog: default to LN if there is no URI 2022-08-11 19:39:55 +00:00
SomberNight
bd7a6a8f77 qt/kivy receive tab: show error msg when creating req with amt<dust 2022-08-11 14:55:34 +00:00
SomberNight
5f5e6b3cf3 kivy request_dialog: disable "lightning" btn if no LN part 2022-08-11 13:57:25 +00:00
SomberNight
1b2d46722c kivy request_dialog: rm some magic numbers
note: not sure how to use IntEnum with kivy's NumericProperty
2022-08-11 13:50:53 +00:00
SomberNight
7d481935e2 qt ReceiveTab: handle case with URI=="" 2022-08-11 13:11:54 +00:00
SomberNight
0e15d7a973 qt RequestList: allow copying URI even if there is no bitcoin addr
(when there is LN part but no on-chain part)
2022-08-11 13:09:51 +00:00
SomberNight
659d6890d9 wallet.get_request_URI: rm code duplication 2022-08-11 13:07:56 +00:00
SomberNight
7daeccdf85 qt ReceiveTab: ensure TabWidget has frame in more cases 2022-08-11 12:43:17 +00:00
SomberNight
bd2ca30f95 kivy: fix creating dust amount receive requests
fixes https://github.com/spesmilo/electrum/issues/7928
2022-08-11 12:38:46 +00:00
SomberNight
ea5c49b3ab wallet.delete_request(key): piggyback on get_request(key)
So that the two methods are consistent with each other.

As concrete motivation, see e.g.
- how the `getrequest(key)` command calls `wallet.get_request(key)`, and
- the `delete_request(address)` command calls `wallet.delete_request(address)`
2022-08-10 23:48:44 +02:00
SomberNight
0c81dc13a0 wallet: rm confusing get_request_by_address method
The _receive_requests dict is keyed by either 'address' or 'rhash' (see get_key_for_receive_request):
- 'rhash' is used if `req.lightning_invoice is not None`
- address is used otherwise

The `get_request_by_address` method was quite error-prone: it only worked for requests that had an LN part...
2022-08-10 23:23:00 +02:00
SomberNight
396a68cb58 wallet: delete_{invoice,request}: add "write_to_disk=True" param
to support faster batch-deletion
2022-08-10 22:50:23 +02:00
SomberNight
7e2fab809d appimage build: better parameterise python version 2022-08-10 21:03:55 +02:00
SomberNight
388811296e qt: replace some hardcoded pixel sizes for better high-dpi support 2022-08-10 20:23:56 +02:00
SomberNight
05863a611f tests: test_lnpeer.py: clean-up temp dirs created in /tmp, in tearDown 2022-08-10 18:16:17 +02:00
SomberNight
bc8edd2928 Add .editorconfig file
Default to LF EOL, UTF-8 and space indent. 4 space indent for .py/.sh files.

See https://editorconfig.org/

based on de392bb92c
2022-08-10 17:32:23 +02:00