Commit Graph

17515 Commits

Author SHA1 Message Date
ThomasV 2a4c5d94f1 Merge pull request #9020 from SomberNight/202404_bitstring2
dependencies: remove bitstring
2024-04-24 17:39:27 +02:00
SomberNight 7a820f7561 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-04-24 14:49:23 +00:00
SomberNight cf2ed509b4 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]: https://github.com/scott-griffiths/bitstring/blob/95ee533ee4040b4480da1ead548eab2459e8e573/release_notes.txt#L108
[1]: https://github.com/spesmilo/electrum/commit/d7597d96d0c336838adb32e3e175d3ea6f9763e8
2024-04-24 14:14:31 +00:00
Sander van Grieken 3b0cdef871 qml: lightning invoice status can be one of onchain invoice states when using fallback address. (fixes #9018) 2024-04-24 13:37:33 +02:00
Sander van Grieken 41bb849f8a qt: normalize wallet path before lookup in window list 2024-04-24 13:16:12 +02:00
SomberNight 20d7543b53 win build: remove deprecated apt-key for winehq key
```
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
```

from https://github.com/Electron-Cash/Electron-Cash/commit/5b40744831f367d800f7832d89375991374af142
2024-04-19 14:52:29 +00:00
SomberNight a4cb69d1b5 win build: update debian base (11->12), and wine 2024-04-19 14:52:25 +00:00
ghost43 a80bb851ac Merge pull request #9003 from robertmin2/master
AppArmor Profiles for Electrum Tarball and AppImage
2024-04-19 14:29:56 +00:00
robertmin2 dd72b5976b AppArmor Profiles for Electrum
AppArmor Profiles for Electrum
2024-04-19 17:25:09 +03:00
ghost43 a389bbc6d0 Merge pull request #9013 from SomberNight/202404_build
build: update bundled python version
2024-04-19 13:09:27 +00:00
SomberNight d46e724816 win/mac build: bump pyinstaller (5.13.2->6.6.0) 2024-04-19 13:07:39 +00:00
SomberNight 85af0b8030 win/mac build: bump pyinstaller (5.11.0->5.13.2)
- needed for bumping python version, as 3.11+ is borked without https://github.com/pyinstaller/pyinstaller/issues/7692
- plugin.py: adapt to pyinstaller 5.12+
    loader was renamed in https://github.com/pyinstaller/pyinstaller/commit/b9111db8a869dd19dd7e8b3c952abea3238d02a6
2024-04-18 18:16:10 +00:00
SomberNight 41d6f08de9 win/mac build: bump python version (3.10.11->3.11.9) 2024-04-18 18:15:26 +00:00
SomberNight 9508f76b7f appimage build: bump python version (3.10.13->3.11.9) 2024-04-18 17:18:44 +00:00
SomberNight cfb53e4880 android build: bump python version (3.8.18->3.10.14)
cffi also had to be updated for this, and corresponding commit backported from upstream p4a
2024-04-18 17:17:49 +00:00
SomberNight 96bb1611c5 follow-up plugins changes: fix qml gui
follow-up https://github.com/spesmilo/electrum/pull/8713

```
  1.35 | E | __main__ | daemon.run_gui errored
Traceback (most recent call last):
  File "/home/user/wspace/electrum/./run_electrum", line 458, in handle_cmd
    d.run_gui()
  File "/home/user/wspace/electrum/electrum/daemon.py", line 623, in run_gui
    self.gui_object = gui.ElectrumGui(config=self.config, daemon=self, plugins=self._plugins)
  File "/home/user/wspace/electrum/electrum/util.py", line 482, in do_profile
    o = func(*args, **kw_args)
  File "/home/user/wspace/electrum/electrum/gui/qml/__init__.py", line 82, in __init__
    self.app = ElectrumQmlApplication(sys.argv, config=config, daemon=daemon, plugins=plugins)
  File "/home/user/wspace/electrum/electrum/gui/qml/qeapp.py", line 428, in __init__
    self.plugins.load_plugin('trustedcoin')
  File "/home/user/wspace/electrum/electrum/plugin.py", line 269, in load_plugin
    raise Exception(f"could not find plugin {name!r}")
Exception: could not find plugin 'trustedcoin'
```
2024-04-18 17:01:08 +00:00
SomberNight 8d07672345 plugin: load_plugin: better exception msg if not found 2024-04-18 16:53:48 +00:00
fuyangpengqi 91de8e70e5 chore: fix some typos in comments (#9014)
Signed-off-by: fuyangpengqi <995764973@qq.com>
2024-04-18 13:59:39 +00:00
ThomasV 9a7195d5ab test_lnpeer: fix node_id in storage of created peers 2024-04-18 10:34:48 +02:00
ThomasV caa86e7b45 Merge pull request #9011 from momantech/master
Fix some comments
2024-04-18 08:51:43 +02:00
SomberNight 407f3fcb04 follow-up prev 2024-04-17 14:36:21 +00:00
SomberNight cda65a6a80 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-04-17 14:30:09 +00:00
momantech 2b6090429c Fix some comments
Signed-off-by: momantech <cuimoman@qq.com>
2024-04-17 18:46:05 +08:00
ThomasV 18dfd4a004 Merge pull request #9010 from accumulator/dont_dns_resolve_tor
lnworker: don't query DNS for .onion hosts (fixes #9002)
2024-04-17 10:46:40 +02:00
Sander van Grieken e0e00da004 lnworker: don't query DNS for .onion hosts (fixes #9002) 2024-04-16 13:57:00 +02:00
ThomasV 9c94eb99f8 Merge pull request #9008 from CoolCu/master
chore: fix some typos in comments
2024-04-16 10:07:13 +02:00
CoolCu 3f95ceab60 chore: fix some typos in comments
Signed-off-by: CoolCu <coolcui@qq.com>
2024-04-16 15:54:25 +08:00
ghost43 137f280690 Merge pull request #9007 from JamieDriver/update_jade_api
jade: update Jade api to 1.0.29
2024-04-15 17:35:44 +00:00
Jamie C. Driver 17508086aa jade: update Jade api to 1.0.29
Updates cbor dependency to cbor2, required for modern linux/python
versions.
2024-04-15 12:10:06 +01:00
ThomasV 8759928ec0 Merge pull request #9000 from SomberNight/202404_ecc_schnorr
ecc: add bindings for schnorr sign/verify, and refactor
2024-04-15 11:57:29 +02:00
ThomasV 06c8a39fc1 Merge pull request #8713 from spesmilo/userspace_plugins
Allow users to downoad external plugins
2024-04-13 11:55:05 +02:00
ThomasV ff07a77cfc move virtualkeyboard plugin to other repo
add plugin metadata to electrum/plugins.json
2024-04-13 11:35:49 +02:00
ThomasV c9820aeca0 Qt: add download_plugin_dialog 2024-04-13 11:35:49 +02:00
ThomasV f959b53222 add contrib/make_plugin 2024-04-13 11:35:49 +02:00
ThomasV ad774a49be external plugins: add methods to read image files 2024-04-13 11:35:49 +02:00
ThomasV 858d999d31 Allow external plugins
- borrows code brom ElectronCash
 - external plugins are imported as zip files
 - check hash from plugins.json file
2024-04-13 11:35:49 +02:00
ThomasV 3e7d4749cf turn classmethod 'find_all_plugins' into an instance method.
change 'use_' prefix to 'enable_plugin_'
2024-04-13 11:35:49 +02:00
SomberNight fae672c60c ecc: make libsecp256k1 "schnorrsig" module only required when used
It would be simple to hard fail at import time if any of the interesting
libsecp modules are missing, as it was done before this commit. However,
some Linux distros (atm current ubuntu lts, 22.04) lack new enough libsecp.
Also, for now, we don't use the schnorr APIs yet anyway. Until we start
to rely on them more, it is feasible to only require them when they are
used.

I am hoping we will be able to revert this commit later though, to keep
things simple.
2024-04-12 16:57:51 +00:00
SomberNight 52f1a2ce25 ecc: add method "bip340_tagged_hash"
I decided to use the stdlib (hashlib) instead of libsecp for this,
as it is simple enough, and the former is faster on my PC.

Added a unit test that compares the two.
2024-04-12 14:20:45 +00:00
SomberNight 6bf7542b25 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-04-11 16:52:42 +00:00
SomberNight bd9d0ccc33 ecc: refactor/clean-up sign/verify APIs 2024-04-11 15:25:45 +00:00
SomberNight e72210b5d2 ecc: clean-up return value checks 2024-04-11 15:25:41 +00:00
SomberNight 8677a91dce android: update p4a ref
to have https://github.com/SomberNight/python-for-android/commit/04e80084ebbb9bcfdbb32e814d4a1f5826ffe4eb
> recipe: libsecp256k1: enable modules for schnorr sigs
2024-04-11 15:25:37 +00:00
SomberNight 44e27ac8b5 ecc: add bindings for schnorr sign/verify
and require "schnorrsig" and "extrakeys" modules of libsecp256k1
2024-04-11 13:09:57 +00:00
SomberNight 5f95d919df requirements: bump pinned (and max) aiorpcx versions to 0.23.1
related https://github.com/spesmilo/electrum/issues/8954
2024-04-08 16:44:59 +00:00
accumulator 1c673884bf Merge pull request #8971 from nkuttler/8970_bitbox02_pairing
Call pairing dialog when necessary, fixes #8970
2024-04-08 16:12:30 +02:00
SomberNight f495511886 safer os.chmod for wallet files and config: set perms before write
Set unix file permissions first, before writing data.
2024-04-08 14:09:00 +00:00
Sander van Grieken 6d37e464f3 payment_identifier: don't assume bip70_data exists in has_expired() 2024-04-08 13:58:55 +02:00
Sander van Grieken 79f9b499ff qt: focus reason can't be None (fixes #8962) 2024-04-08 13:48:03 +02:00
ThomasV e4eb9ce4be Merge pull request #8982 from xiaoxianBoy/fix-typos
chore: fix typos
2024-03-29 09:31:29 +01:00