ThomasV
34a8ec64f8
move audio_modem icons to plugin dir, so that the plugin is self-contained.
...
This requires changing the API of OverlayControlMixin.addButton
2025-04-15 15:34:01 +02:00
ThomasV
1162f45bd5
plugins: minor tweaks
...
- add icon to PluginDialog
- add icon to psbt_nosr
- rename 'PSBT Nostr' as 'Nostr Multisig'
2025-04-15 12:23:03 +02:00
ThomasV
a92e65c561
plugins: add plugin icon to menu in init_menubar
2025-04-15 10:33:14 +02:00
ThomasV
dcf632ed1e
add icons for nwc and labels plugins
2025-04-15 10:23:05 +02:00
ThomasV
0831fc3b80
plugins: move wallet-related settings to the wallet menu
...
Plugins should use the init_menubar hook.
References are kept to the various menu objects.
2025-04-15 10:01:00 +02:00
ThomasV
8c028f7528
Add/remove plugins from GUI
...
- both internal and external plugins require GUI install
(except internal HW plugins, which are 'auto-loaded' and hidden)
- remove init_qt hook
- in Qt, reload wallet windows if plugin enabled/disabled
- add 'uninstall' button to PluginDialog
- add 'add plugins' button to wizard hw screen
- add icons to the plugin list
2025-04-15 08:35:10 +02:00
ThomasV
c93b13f6d9
Make it possible to create zip plugins from internal plugins
...
specifically:
- add 'name' field to manifest.json
- make 'version' optional in contrib/make_plugin
- fix import in jade plugin
2025-04-14 11:54:04 +02:00
ThomasV
eff8b65355
Plugins: pass wallet to settings_dialog
...
Also, remove settings_widget method.
The widget should always be a button.
nwc: is_initialized -> initialized
2025-04-12 11:09:15 +02:00
ThomasV
3a18000f7a
nwc plugin: settings_dialog is wallet agnostic.
...
instead, test wallet in start_plugin.
prevent plugin from using several wallets.
2025-04-11 20:16:59 +02:00
ThomasV
13024be4da
nwc plugin: fix config key
2025-04-11 20:06:42 +02:00
ThomasV
8f3490c87e
recursive config file
...
move plugin variables into sub dictionaries of user config
2025-04-11 19:06:48 +02:00
ThomasV
f2692b7f2d
Merge pull request #9721 from spesmilo/move_hw_wallet
...
move hw_wallet module from plugins to electrum library
2025-04-10 12:13:42 +02:00
ThomasV
c5e9ef558f
Merge pull request #9675 from f321x/nwc
...
plugin: implement Nostr Wallet Connect (NIP47) plugin
2025-04-10 10:58:16 +02:00
f321x
253ab6849a
implement NIP47 plugin
2025-04-10 10:22:29 +02:00
ThomasV
6e087950cf
move hw_wallet.py from plugins to electrum library
2025-04-10 10:19:15 +02:00
Sander van Grieken
eb29b7c95c
qml: simplify QEConfig and QEDaemon use.
...
force QEDaemon singleton, and refer to QEDaemon.instance where possible
In cases where we would run into circular dependencies, pass the instance
also refer to singleton QEConfig instead of passing instance in qeapp.py
2025-04-09 13:44:26 +02:00
f321x
17a9a91e1f
announce actual available liquidity as swap provider
2025-04-04 15:06:50 +02:00
f321x
b8d10df2dc
add expiration tag to psbt nostr event and pass ssl context to relay manager
2025-04-03 13:56:29 +02:00
ThomasV
ff3e70d743
psbt_nostr: fix for watch-only wallets
2025-04-02 11:31:08 +02:00
ThomasV
6e92a00ec4
Remove zeroconf option for submarine swaps
...
Since we now accept random swap providers, it is unreasonable
to keep that option.
2025-03-21 18:18:27 +01:00
ThomasV
4c14711dc7
Merge pull request #9656 from SomberNight/202503_configvar_plugins
...
plugin ConfigVars: define vars less dynamically
2025-03-20 08:45:40 +01:00
SomberNight
245853ff4f
plugins: ledger: bump max supported ledger_bitcoin version
...
ledger-bitcoin 0.4 was just released (seemingly without breaking changes)
the changelog claims they want to uphold semver
2025-03-19 17:29:40 +00:00
SomberNight
a99c454c00
plugin ConfigVars: enforce "key" starts with name of plugin
2025-03-19 16:49:56 +00:00
SomberNight
b132e357a3
plugin ConfigVars: define vars less dynamically
...
and restore ability to have different internal ConfigVar name and user-visible "key"
(Keys are hard to change as that breaks compat, but it is nice to be able to change
the internal var name, to reorganise stuff sometimes. After new ConfigVars are added,
sometimes we get better insight into how the older ones should have been named.)
follow-up https://github.com/spesmilo/electrum/pull/9648
2025-03-19 16:42:51 +00:00
ThomasV
e67cb560f6
Commands: add option documentation in docstring.
...
This allows plugins to document the commands they add.
The docstring is parsed as a regular expression:
arg:<type>:<name>:<description>\n
Types are defined in commands.arg_types.
Note that this commit removes support for single letter
shortcuts in command options.
If a command is not properly documented, a warning is issued
with print(), because no logger is available at this point.
2025-03-19 13:03:38 +01:00
ThomasV
d8964a00e7
config vars for plugins
2025-03-19 11:59:05 +01:00
ThomasV
647ae49451
Merge pull request #9651 from f321x/plugin_manifest_json
...
Use manifest.json instead of loading init file for plugin registration
2025-03-19 10:52:02 +01:00
f321x
a9f8048251
use manifest.json instead of loading init file for plugin registration
2025-03-19 10:38:20 +01:00
SomberNight
4c970fd8fa
plugins: ledger: better error msg for hw.1
2025-03-18 17:26:12 +00:00
SomberNight
154adf0081
plugins: ledger: rm support for hw.1
...
This removes support for Ledger HW.1 and "Nano" (non-S) devices.
These were manufactured/sold around 2015-2016, and are long unsupported by the upstream vendor.
We previously added a deprecation warning to the GUI [0] released in 4.3.3 (2023-01-02), to warn owners of these devices.
This PR now fully removes support.
As a consequence, the unmaintained btchip-python dependency can now be removed, which solves [1].
[0]: https://github.com/spesmilo/electrum/commit/9b82eb6d06f8534652849f3370ab8af7d7ca9c7f
[1]: https://github.com/spesmilo/electrum/issues/9370#issuecomment-2593675364
2025-03-18 16:18:49 +00:00
SomberNight
7737dbf795
plugins: ledger: fix Ledger_Client_Legacy.sign_transaction
...
regression from https://github.com/spesmilo/electrum/commit/2f1095510c2f50bfe2c2ebc0c7159e9b8f945aca
2025-03-18 15:34:17 +00:00
ThomasV
38f9cac48c
Merge pull request #9649 from f321x/move_commands_to_init
...
Move plugin commands to init file of plugin
2025-03-18 11:14:30 +01:00
f321x
e74029c880
move plugin commands to init file of plugin
2025-03-18 09:37:07 +01:00
SomberNight
c8143957a6
plugins: keepkey: rm dependence on external keepkeylib
...
we will instead bundle our own fork, as a git submodule,
https://github.com/spesmilo/electrum-keepkeylib
related https://github.com/spesmilo/electrum/issues/7922
and https://github.com/keepkey/python-keepkey/issues/146
(i.e. upstream keepkeylib is unmaintained)
2025-03-17 17:53:48 +00:00
ThomasV
9d1ffe0c37
support for arguments to plugin commands:
...
- add a simple parser that only figures out where the config is,
and does not complain if args are unknown
2025-03-16 15:01:22 +01:00
ThomasV
d2fa404e06
plugin commands: load the plugin in func_wrapper
2025-03-16 12:26:31 +01:00
ThomasV
a474b8674d
plugin commands:
...
- make plugin commands start with plugin name + underscore
- plugin_name must be passed to the plugin_command decorator
- fixes:
- remove plugin_commands (unneeded)
- func_wrapper must await func()
- setattr(Commands, name, func_wrapper)
- add push/pull commands to labels plugin
2025-03-16 11:53:34 +01:00
ThomasV
8e6be0a36a
Remove inheritance between LNWatcher and Watchtower
...
As LNWatcher is no longer async, there is not enough overlap
between these classes to deserve inheritance
2025-03-14 11:59:56 +01:00
ThomasV
fbebe7de1a
Make lnwatcher not async
...
This fixes offline history not having the proper labels
2025-03-14 11:09:11 +01:00
ThomasV
9d0cc6c4a3
follow-up c7dcfab
2025-03-11 18:16:41 +01:00
ThomasV
5ce80332ec
Qt: do not expose watchtower in settings
...
running a watchtower requires to be able to run a daemon with the
watchtower plugin enabled. If users succeed at doing that, we
can expect them to be able to configure theclient using the
command line.
(that would not work with QML, though. maybe QML could use an
advanced config editor)
2025-02-26 12:32:38 +01:00
ThomasV
2038c0df0c
follow-up 376d881154
...
please run 'git submodule update'
2025-02-26 11:27:42 +01:00
Sander van Grieken
376d881154
qml: always initialize BtcField.textAsSats
2025-02-26 11:02:12 +01:00
ThomasV
811a1b3332
update payserver plugin
2025-02-25 11:28:07 +01:00
f321x
6f97b7b5f9
simplify submarine swap onchain fee model to single base fee
2025-02-20 16:51:48 +01:00
scgbckbone
4f5a732fef
fix Coldcard msg signing for segwit v0 address types
2025-02-06 16:41:17 +01:00
ThomasV
29a8c41025
move watchtower to a plugin.
...
remove watchtower dialog in qt
2024-12-20 15:34:26 +01:00
ThomasV
86c9eb4858
psbt_nostr: minor fix
2024-11-28 11:16:49 +01:00
Sander van Grieken
49de400c27
2fa: fix #9312
...
(regression of 4a37668b01 )
2024-11-19 09:13:27 +01:00
ThomasV
11558adb28
New plugin: psbt over Nostr
...
Replacement for cosignerpool
Encryption uses xpubs
2024-11-12 10:40:49 +01:00