1
0
Commit Graph

17490 Commits

Author SHA1 Message Date
SomberNight
36d49f4ad3 interface: also trigger 'blockchain_updated' during initial sync
In fact, semantically it might be more correct to only trigger 'blockchain_updated' and not 'network_updated' here...
Anyway, 'blockchain_updated' should be triggered whenever the Blockchain object gets longer (or changes otherwise).

In particular, in qml, the NetworkOverview only updates the displayed height on 'blockchain_updated'.
2024-05-27 14:40:33 +00:00
SomberNight
fb64c5b6c6 crypto: add some notes re considerations 2024-05-27 14:40:01 +00:00
Ondřej Vejpustek
a1f7241490 slip39: implement extendable backups 2024-05-27 14:39:30 +00:00
SomberNight
a4bdc90a6b ecc: "public key could not be parsed" exception to contain pubkey bytes
also consolidate naming of variables somewhat

related: https://github.com/spesmilo/electrum/issues/9052
2024-05-27 14:39:01 +00:00
Robert
b9cd61bcde fix apparmor issue (#9047)
fix apparmor issue

Co-authored-by: ghost43 <somber.night@protonmail.com>
2024-05-27 14:36:06 +00:00
Sander van Grieken
ba59a03b8d qml: log error if not able to retrieve private key for address 2024-05-27 14:34:54 +00:00
Sander van Grieken
1047200a94 wizard: fix wrong icon and icon disappearing when resuming unfinished wallet 2024-05-27 14:34:36 +00:00
Sander van Grieken
b80630df9c qml: expose LIGHTNING_PAYMENT_BUDGET_FEE_MAX_MILLIONTHS in preferences 2024-05-27 14:33:32 +00:00
SomberNight
2152347ba8 qt settings: expose LIGHTNING_PAYMENT_BUDGET_FEE_MAX_MILLIONTHS
Expose as a slider; perhaps it is less footgunny this way?
2024-05-27 14:32:44 +00:00
SomberNight
c82918a456 lnworker: move around some logging re PaySession, also log budget 2024-05-27 14:32:29 +00:00
SomberNight
24426fd54a lnworker: make PaymentFeeBudget defaults configurable
- make PaymentFeeBudget proportional fee and flat cutoff fee configurable
  - closes https://github.com/spesmilo/electrum/issues/7622
- increase flat cutoff fee default to 10 sat
  - closes https://github.com/spesmilo/electrum/issues/7669
- rm RouteEdge.is_sane_to_use() (per edge limit) and just rely on budgets (per route limit)
2024-05-27 14:32:10 +00:00
SomberNight
d2a0252b28 trampoline: rm hardcoded TRAMPOLINE_FEES. just use exponential search
Values for exponential search are based on available fee budget:
we try with budget/64, budget/32, ..., budget/1  (spread uniformly among the selected Trampoline Forwarders).
Hence, if we make the fee budget configurable, that will usefully affect the trampoline fees as well.

related https://github.com/spesmilo/electrum/issues/9033
2024-05-27 14:31:54 +00:00
ThomasV
14311318db submarine_swaps: move http calls to method 2024-05-27 14:28:24 +00:00
SomberNight
6793efd0af scripts: rm bip70.py
this script has been broken for 5+ years
2024-05-27 14:27:27 +00:00
SomberNight
ffc761be47 constants: add some more type hints 2024-05-27 14:26:56 +00:00
SomberNight
e783206ec7 network: re-detect is_proxy_tor every time we connect to a server
This avoids some false negatives for is_proxy_tor.
(previously we only set is_proxy_tor when the proxy settings were changed)
In particular, consider scenario:
- Tor browser not running
- user sets "localhost:9150" as proxy
- detection sets network.is_proxy_tor to False
- user starts Tor browser
- network, due to retries, finds proxy working and connects to some servers
- network.is_proxy_tor remains False
2024-05-27 14:26:32 +00:00
SomberNight
c9ed717bea dependencies: remove bitstring
- `bitstring` started depending on `bitarray` in version 4.1 [0]
  - that would mean one additional dependency for us (from yet another maintainer), which is not even pure python
- we only use bitstring for bolt11-parsing
- hence this PR rewrites the bolt11-parsing and removes `bitstring` as dependency
- note: I benchmarked lndecode using [1], and the new code performs better,
  taking around 80% time needed for old code (when using bitstring 3.1.9, pure python).
  Though the variance is quite large in both cases.

[0]: 95ee533ee4/release_notes.txt (L108)
[1]: d7597d96d0
2024-05-27 14:24:45 +00:00
SomberNight
e35b715ed8 qml: qeinvoice: fix regression in update_userinfo
follow-up 3b0cdef871

```
 29.60 | E | lnworker.LNWallet.[test_segwit_2] | Exception in pay_invoice: TypeError("unhashable type: 'list'")
Traceback (most recent call last):
  File "/home/user/wspace/electrum/electrum/util.py", line 1153, in wrapper
    return await func(*args, **kwargs)
  File "/home/user/wspace/electrum/electrum/lnworker.py", line 1518, in pay_invoice
    self.set_invoice_status(key, PR_INFLIGHT)
  File "/home/user/wspace/electrum/electrum/lnworker.py", line 2404, in set_invoice_status
    util.trigger_callback('invoice_status', self.wallet, key, status)
  File "/home/user/wspace/electrum/electrum/util.py", line 1796, in trigger_callback
    callback(*args)
  File "/home/user/wspace/electrum/electrum/gui/qml/qeinvoice.py", line 90, in on_event_invoice_status
    self.update_userinfo()
  File "/home/user/wspace/electrum/electrum/gui/qml/qeinvoice.py", line 327, in update_userinfo
    self.userinfo = userinfo_for_invoice_status([self.status])
  File "/home/user/wspace/electrum/electrum/gui/qml/qeinvoice.py", line 305, in userinfo_for_invoice_status
    return {
TypeError: unhashable type: 'list'
```
2024-05-27 14:21:50 +00:00
Sander van Grieken
05cdc4d6f8 qml: lightning invoice status can be one of onchain invoice states when using fallback address. (fixes #9018) 2024-05-27 14:21:19 +00:00
Sander van Grieken
06a52d8acf qt: normalize wallet path before lookup in window list 2024-05-27 14:20:43 +00:00
robertmin2
815a5272f0 AppArmor Profiles for Electrum
AppArmor Profiles for Electrum
2024-05-27 14:20:00 +00:00
ThomasV
bd32ebecb2 test_lnpeer: fix node_id in storage of created peers 2024-05-27 14:19:21 +00:00
SomberNight
622bc801bb follow-up prev 2024-05-27 14:18:53 +00:00
SomberNight
a2fb70d602 exchange_rate: historical rates: merge old+new data, don't overwrite
- CoinGecko restricted its historical API to last 365 days
  - we used to ask for, and get, the whole history, but now we can only ask for the last year
  - so change HTTP request to only ask for 365 days
- we cache historical rates to disk
  - previously we used to overwrite what is already stored, with the newly obtained data
  - now this is changed so that we merge the new data into the already stored data
2024-05-27 14:18:43 +00:00
SomberNight
d09131e916 lnworker: add_peer: no DNS lookup if a proxy is set, to avoid a DNS-leak
closes https://github.com/spesmilo/electrum/issues/9002
2024-05-27 14:17:52 +00:00
Sander van Grieken
70177e4b26 lnworker: don't query DNS for .onion hosts (fixes #9002) 2024-05-27 14:17:44 +00:00
Jamie C. Driver
a8620bd3c0 jade: update Jade api to 1.0.29
Updates cbor dependency to cbor2, required for modern linux/python
versions.
2024-05-27 14:16:33 +00:00
SomberNight
493becfffe ci: regtests: build own libsecp256k1 instead of using apt
- version in apt is too old (cirrus is using ubuntu 22.04 LTS atm) for schnorr module
- this way we have better control of exact version to use
2024-05-27 14:15:43 +00:00
SomberNight
3d588fada6 requirements: bump pinned (and max) aiorpcx versions to 0.23.1
related https://github.com/spesmilo/electrum/issues/8954
2024-05-27 14:14:14 +00:00
Sander van Grieken
7d707bb5c9 payment_identifier: don't assume bip70_data exists in has_expired() 2024-05-27 14:11:36 +00:00
Sander van Grieken
8bd4909162 qt: focus reason can't be None (fixes #8962) 2024-05-27 14:11:23 +00:00
ThomasV
70acb89042 save notes whenever modified, using 10s rate limiter. fixes #8951 2024-05-27 14:10:52 +00:00
Nicolas Kuttler
f755b690d8 Call pairing dialog when necessary, fixes #8970 2024-05-27 14:10:07 +00:00
Soren Stoutner
8ca1bdedc4 Change copyright email address to soren@debian.org. 2024-05-27 14:09:29 +00:00
sorenstoutner
70106b6f2c Add license information to AppStream metainfo.xml. 2024-05-27 14:09:18 +00:00
Soren Stoutner
dcc1da0494 Update AppStream metainfo.xml. 2024-05-27 14:09:08 +00:00
SomberNight
0d525679f9 qml: QETxDetails: defer to wallet.get_tx_info() for rbf/cpfp
It might make sense to allow bump_fee on a local tx, and so wallet.get_tx_info() allows it.
For dscancel/cpfp, it does not allow it either. Still, I think this logic should be encapsulated in the wallet.
2024-05-27 14:07:12 +00:00
ThomasV
1b3b6c7f7e contrib/osx:
- rename make_osx2.sh -> sign_osx.sh
- add command to unlock keychain
- chmod +x
2024-05-27 14:06:32 +00:00
SomberNight
0a94ea0bc2 build: split make_osx.sh script into two: "build" and "sign" parts 2024-05-27 14:06:23 +00:00
Sander van Grieken
39afa2c3e2 qml: add tx options to ConfirmTxDialog, RbfBumpFeeDialog 2024-05-27 14:05:02 +00:00
SomberNight
357ac6be92 interface: also log cancellations in send_request 2024-05-27 14:02:12 +00:00
ThomasV
99f6dd5d5d Merge pull request #8943 from SomberNight/202403_release_notes_454
prepare release 4.5.4
4.5.4
2024-03-13 15:09:52 +01:00
ThomasV
80586d2ced Merge pull request #8944 from SomberNight/202403_swap_messages
swaps: homogenise gui messages
2024-03-13 15:07:37 +01:00
ghost43
745f9184e4 Merge pull request #8942 from SomberNight/202403_get_swap_by_funding_tx
swaps: fix get_swap_by_funding_tx, and types/type-hints
2024-03-13 13:55:18 +00:00
SomberNight
01155ac6f5 swaps: homogenise gui messages
see https://github.com/spesmilo/electrum/issues/8940
2024-03-13 13:52:40 +00:00
SomberNight
85ffbfc83f prepare release 4.5.4 2024-03-13 12:53:44 +00:00
SomberNight
4a71032318 swaps: expand docstring for reverse_swap 2024-03-13 12:27:10 +00:00
SomberNight
05599eeda5 swaps: fix get_swap_by_funding_tx, and types/type-hints
- funding txs having only one output is not true...
- batch_rbf can combine funding txs
2024-03-13 11:37:01 +00:00
SomberNight
58a1bdfec7 lnworker.check_mpp_status: add docstring
This explains why stopping_soon behaves sanely with hold-invoice-htlcs.
2024-03-12 15:28:31 +00:00
SomberNight
af6a1f3d01 swaps: use longer final_cltv_delta for client-normal-swap
This gives more time for the client to come back online.

see https://github.com/spesmilo/electrum/issues/8940

- re note on submarine_swaps.py#L53:
  lnpeer.Peer.maybe_fulfill_htlc only checks against MIN_FINAL_CLTV_DELTA_ACCEPTED(=144),
  so this increased cltv_delta is not enforced when receiving the htlc on ln.
  It is put in the invoice, so the sender is supposed to honour it ofc.
  It would be nice to enforce it (make the check in maybe_fulfill_htlc dependent on
  what was in the invoice).
2024-03-12 14:20:52 +00:00