Commit graph

13 commits

Author SHA1 Message Date
k9ert
0b027f49fd
fix: dev-server crash in the specter-desktop repo after the project-rename (#2686)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-08 14:12:46 +02:00
al-munazzim
485bbbf5be
fix: skip missing extensions gracefully instead of crashing (#2536)
Co-authored-by: Nazim <al-munazzim@users.noreply.github.com>
Co-authored-by: Nazim <nazim@openclaw.ai>
2026-03-21 12:21:04 +01:00
k9ert
816726b935
Feature: Extension Framework upgrade incl. middleware, extensionsdependencies and -callbacks (#2186)
This PR brings the ability of having your own callbacks for extensions, depending on other extensions and callbacks now have a return_style either collect (default) or middleware
2023-02-11 11:21:31 +01:00
k9ert
99f5404705
Feature: Notification system (#1766) (#2103)
A feature for a notification system has been added, including websockets and SSL support, improved error handling, and better logging. There have been various bug fixes, refactoring, and documentation updates throughout the process. The feature is now complete and includes new functionality for managing and displaying notifications, as well as testing and debugging tools.m>

Co-authored-by: relativisticelectron <60378539+relativisticelectron@users.noreply.github.com>
2023-02-07 19:00:44 +01:00
k9ert
d367e93df6
Chore: Refactor device_types and disable change to hotwallet for Spectrum_Node (#2048)
* adding fullpath fixes spectrum issue 13

* Add Spectrum node delte capability

* refactor and enable get_subclass_for_clazz for all classes

* get rid of DeviceTypes references part 1

* get rid of DeviceTypes references part 2

* add check for device-type when changing device_type

* added return type hint

* remove fatal logging

* Change flash message

* Disable setting unsupported device typ in UI

Co-authored-by: Manolis Mandrapilias <70536101+moneymanolis@users.noreply.github.com>
Co-authored-by: moneymanolis <moneymanolis@protonmail.com>
2023-01-26 15:05:45 +01:00
k9ert
ef4012d4b1
Chore: Moving the Spectrum extension to a core extension (#2011)
* Adding spectrum without tests
* added spectrum ext specific tests
* fix reflection test
2022-12-08 16:01:12 +01:00
k9ert
65bb7d2309
Chore: Refactor Swan Extension to cryptoadvance.specterext (#1955)
* Refactor Swan service, delete bitcoinreserve

fix tests for services move to specterext and complete

* complete refactoring of swan extension

* added a test

* feedback manolis

Co-authored-by: Manolis Mandrapilias <70536101+moneymanolis@users.noreply.github.com>
2022-11-03 10:01:43 +01:00
k9ert
de8f5af619
Feature: several things for Spectrum preparation (#1913)
* change Node persistence format

* Removing the Singleton

* mainly refactoring

* intermediate commit

* fix test

* Updated diagram

* fix tests

* removing simplejsons references

* fix tests

* remove update, tests working

* abstract Node

* refining Migration framework: run migrations until they suceed

* BrokenCoreConnectionException added to handle lost RPC + some minor error handling fixes

* clicking redirects to node config if there is no node connection

* AbstractNode

* BrokenCoreConnectionException added to handle lost RPC + some minor error handling fixes

* clicking redirects to node config if there is no node connection

* handling broken connection when there is no other error superseding (i.e. no wallets)

* Abstract Node improvements and issue fixing

* improving node_info handling

* fix test results, property device_manager in user, bcce in get_rpc in node, improved rpc property in node

* typos

* provide data_folders for extensions

* parametrizing include for node_info

* Remove initial_node_contribution refactoring welcome

* adding convenience methods

* extension data-storage

* Tests green

* Better failure resistence

* Enabling Node settings

* error handling

* adjust_view_model callback

* exception Handling

* Shielding core from extension flaws

* More consistent logging

* Refactoring wallets endpoints

* Make wallet_overview extendable

* butgifex and cleanup

* feedback by Manolis

* rename BusinessObject to PersistentObject

* fix Error-management and rollback information

* Nodes.md corrections

* frontend-aspects.md (small) corrections

* fix tests and address feedback and errormanagement

* fix tests, proper error-handling

* Fix test_util_reflection

* just some little addons to test_util_reflection

* fix cleanup_on_exit

* migration fix

* remove check, add redirect after saving node

* fix test (not that cool but what to do?)

* upgrade Flask as Flask-SQLAlchemy needs higher Flask version

* Revert "upgrade Flask as Flask-SQLAlchemy needs higher Flask version"

This reverts commit bf24120f89.

* update bug fixed + node manager added to node test

* cleanup external_node

Co-authored-by: moneymanolis <moneymanolis@protonmail.com>
2022-10-29 15:54:34 +02:00
k9ert
30508936d3
Feature: Extensions can add new devices (#1887) 2022-10-19 14:46:29 +02:00
Kim Neunert
b73e398c36
Feature: CLI and a publishing model for extensions (#1566)
* introduction of url-prefixes and defaults

* starting a cli for extensions

* more verbose

* extension-test-data

* logger improvements

* bugfixes and testing

* adding  clasification

* rename spext -> specterext

* distinguish isolated_client and refactoring

* improved error-message

* better error_management

* fix tests

* ext gen completion

* fix endpoint issue

* added .gitignore  and txs

* formatting

* very basic callback-infra

* beauty

* fix tests, tidy up, follow-links

* proper mocking for extgen

* adding a test for plugins

* fix tests + docs

* error-handling for non existing extensions

* extensiongen config and making config work for new style

* avoid pollition

* ups

* kick

* kick

* proper renaming of spext

* fix tests

* ToDo remark

* fix test finally

* fix the fixing fixing test

* documentation

* revert mounting for all config see #1595

* fix tests

* fix cypress-test

* prevent pollution

* revert address-data to fix test

* added ID

* bugfix for test-cypress
2022-02-25 16:38:41 +01:00
Kim Neunert
e2ad1eaea1
Bugfix: Very last fixes for Service swan (#1537)
* Feature: Voltoro trading first commit

* fix create_order issue

* fix url and better error-handling

* basic balances tab

* Add deposit vaultoro page

* activating services

* Service management

* Improve settings page and default to it if token unset

* Fix history tab

* Fix trade error handling

* Add withdraw

* calling specter-cloud for creating vaultoro orders

* Improve trade screen and fixes

* sidebar fix

* black

* refactor Service integration

* refactor to have Service Classes like manifests

* maturity

* dynamic initialisation of service-classes and blueprints

* fix sidebar_services

* migrated templates and static into vaultoro folder

* refactor config to manifest

* some minor things

* swan initial

* rename and fix test

* adding ServiceApiKeyStorageUserAware

* fix

* store the access token

* directory indirection to shield templates from each others blueprint

* first attempts with automatic withdrawals

* proper tab highlighting

* Interim commit

* Update service_apikey_storage.py

* Update oauth2_success.jinja

* Awaiting refresh_token support

* Service logo display on Addresses

* Associate addr with a Service

* address-data component reorg

Separates the presentation html from the data as much as possible.

* Services data/icon added to tx History

* Now hitting the updated Swan endpoint to save deposit addrs

* Simplified injecting Services data into JS

* Reducing js calls back to server in tx-data; templatizing utxo in/outs

* renaming "reserving" to "associating" an Address with a Service.
* rename `manifest.py` files to `service.py`.
* rename "api_data" to "service_data" to make the storage a bit more generalized. `ServiceApiKeyStorage` is now `ServiceEncryptedStorage` to match.
* Beginning of factoring out Swan api to its own `api.py` file; need to rectify with `swan_client.py`.

* interim commit

* Removed tx-table/row/data changes and address-table/row/data

Kept only the bare minimum changes required to display the Services icon, plus optimizations.

* interim commit

* Interim commit

* Cleanup commit

* Update controller.py

* Update services.md

* Update services.md

* deleted no longer used CustomElement

* Adding services docs to mkdocs

* Configuration for Services

* more clever configuration

* fix test

* deleted swan_client

* Changing the address abbreviation format to 7...7 and little big fix for not vertically aligned addresses in Firefox.

* Better state management if Auth method changes

* Cleanup, better user messaging; pulling Service methods out of controller and User

* Redirect to services endpoint after setting up authentication.

* PR cleanup, bug fixes, test suite updates

* Fixed test case problem

* First fix for delete API key button.

* Service hooks; Option to fully remove Swan Integration; Logout clears plaintext_user_secret

* Restoring bugfix from @moneymanolis

* black

* cleanup and black

* Make service-decovery in AppImage work

* import hashlib, maybe fix cypress

* Update service_encrypted_storage.py

* further bugfix on update

* TODO: remove debugging in client.py before first release

* testing env setup markdown

* make service-list more resilient

* tiny bit more logging in case of issues.

* Swan api firewall fix

* Restoring lost services-related code in wallets_api.py; bugfix on service_data mismatch

* Bugfix on updated completed autowithdrawal addr labels

* publish markdown on doc-page

* Still awaiting final Swan prod tests

* move ServiceManager outside Specter.__init__()

* Update config.py

* Applying Kim's prop patch

* Disabling extension loading from cwd in prod

* build-script adjustments for clarity and right order

* More comprehensive input validation for the rate limit in the auth settings.

* monkey patch rthooks for a successfull MacOS-build

* fix build-ci.sh

* Refactor service_manager and templates where they belong to

* Swan - different fronend-links links for dev/prod

* include templates and services in sdist

* implement dynamic loading but from list in config

* No dynamic cwd services in appimages

* tidy up

Co-authored-by: benk10 <ben.kaufman10@gmail.com>
Co-authored-by: kdmukai <kdmukai@gmail.com>
Co-authored-by: moneymanolis <moneymanolis@protonmail.com>
2022-01-26 22:11:26 +01:00
kdmukai
901b330d21
Bugfix: Final Swan service updates (#1533)
* Feature: Voltoro trading first commit

* fix create_order issue

* fix url and better error-handling

* basic balances tab

* Add deposit vaultoro page

* activating services

* Service management

* Improve settings page and default to it if token unset

* Fix history tab

* Fix trade error handling

* Add withdraw

* calling specter-cloud for creating vaultoro orders

* Improve trade screen and fixes

* sidebar fix

* black

* refactor Service integration

* refactor to have Service Classes like manifests

* maturity

* dynamic initialisation of service-classes and blueprints

* fix sidebar_services

* migrated templates and static into vaultoro folder

* refactor config to manifest

* some minor things

* swan initial

* rename and fix test

* adding ServiceApiKeyStorageUserAware

* fix

* store the access token

* directory indirection to shield templates from each others blueprint

* first attempts with automatic withdrawals

* proper tab highlighting

* Interim commit

* Update service_apikey_storage.py

* Update oauth2_success.jinja

* Awaiting refresh_token support

* Service logo display on Addresses

* Associate addr with a Service

* address-data component reorg

Separates the presentation html from the data as much as possible.

* Services data/icon added to tx History

* Now hitting the updated Swan endpoint to save deposit addrs

* Simplified injecting Services data into JS

* Reducing js calls back to server in tx-data; templatizing utxo in/outs

* renaming "reserving" to "associating" an Address with a Service.
* rename `manifest.py` files to `service.py`.
* rename "api_data" to "service_data" to make the storage a bit more generalized. `ServiceApiKeyStorage` is now `ServiceEncryptedStorage` to match.
* Beginning of factoring out Swan api to its own `api.py` file; need to rectify with `swan_client.py`.

* interim commit

* Removed tx-table/row/data changes and address-table/row/data

Kept only the bare minimum changes required to display the Services icon, plus optimizations.

* interim commit

* Interim commit

* Cleanup commit

* Update controller.py

* Update services.md

* Update services.md

* deleted no longer used CustomElement

* Adding services docs to mkdocs

* Configuration for Services

* more clever configuration

* fix test

* deleted swan_client

* Changing the address abbreviation format to 7...7 and little big fix for not vertically aligned addresses in Firefox.

* Better state management if Auth method changes

* Cleanup, better user messaging; pulling Service methods out of controller and User

* Redirect to services endpoint after setting up authentication.

* PR cleanup, bug fixes, test suite updates

* Fixed test case problem

* First fix for delete API key button.

* Service hooks; Option to fully remove Swan Integration; Logout clears plaintext_user_secret

* Restoring bugfix from @moneymanolis

* black

* cleanup and black

* Make service-decovery in AppImage work

* import hashlib, maybe fix cypress

* Update service_encrypted_storage.py

* further bugfix on update

* TODO: remove debugging in client.py before first release

* testing env setup markdown

* make service-list more resilient

* tiny bit more logging in case of issues.

* Swan api firewall fix

* Restoring lost services-related code in wallets_api.py; bugfix on service_data mismatch

* Bugfix on updated completed autowithdrawal addr labels

* publish markdown on doc-page

* Still awaiting final Swan prod tests

* move ServiceManager outside Specter.__init__()

* Update config.py

* Applying Kim's prop patch

* Disabling extension loading from cwd in prod

* build-script adjustments for clarity and right order

* More comprehensive input validation for the rate limit in the auth settings.

* monkey patch rthooks for a successfull MacOS-build

* fix build-ci.sh

Co-authored-by: Kim Neunert <k9ert@gmx.de>
Co-authored-by: benk10 <ben.kaufman10@gmail.com>
Co-authored-by: Kim Neunert <kneunert@gmail.com>
Co-authored-by: moneymanolis <moneymanolis@protonmail.com>
2022-01-24 14:47:26 +01:00
kdmukai
7b27c79907
Feature: Service integration - Swan (#1517)
* fix create_order issue
* fix url and better error-handling
* basic balances tab
* activating services
* Service management
* Improve settings page and default to it if token unset
* Fix history tab
* Fix trade error handling
* Add withdraw
* calling specter-cloud for creating vaultoro orders
* Improve trade screen and fixes
* sidebar fix
* black
* refactor Service integration
* refactor to have Service Classes like manifests
* maturity
* dynamic initialisation of service-classes and blueprints
* fix sidebar_services
* migrated templates and static into vaultoro folder
* refactor config to manifest
* some minor things
* swan initial
* rename and fix test
* adding ServiceApiKeyStorageUserAware
* fix
* store the access token
* directory indirection to shield templates from each others blueprint
* first attempts with automatic withdrawals
* proper tab highlighting
* Update service_apikey_storage.py
* Update oauth2_success.jinja
* Awaiting refresh_token support
* Service logo display on Addresses
* Associate addr with a Service
* address-data component reorg
Separates the presentation html from the data as much as possible.
* Services data/icon added to tx History
* Now hitting the updated Swan endpoint to save deposit addrs
* Simplified injecting Services data into JS
* Reducing js calls back to server in tx-data; templatizing utxo in/outs
* renaming "reserving" to "associating" an Address with a Service.
* rename `manifest.py` files to `service.py`.
* rename "api_data" to "service_data" to make the storage a bit more generalized. `ServiceApiKeyStorage` is now `ServiceEncryptedStorage` to match.
* Beginning of factoring out Swan api to its own `api.py` file; need to rectify with `swan_client.py`.
* Removed tx-table/row/data changes and address-table/row/data
Kept only the bare minimum changes required to display the Services icon, plus optimizations.
* deleted no longer used CustomElement
* Adding services docs to mkdocs
* Configuration for Services
* more clever configuration
* fix test
* deleted swan_client
* Changing the address abbreviation format to 7...7 and little big fix for not vertically aligned addresses in Firefox.
* Better state management if Auth method changes
* Cleanup, better user messaging; pulling Service methods out of controller and User
* Redirect to services endpoint after setting up authentication.
* PR cleanup, bug fixes, test suite updates
* Fixed test case problem
* First fix for delete API key button.
* Service hooks; Option to fully remove Swan Integration; Logout clears plaintext_user_secret
* Restoring bugfix from @moneymanolis
* cleanup and black
* Make service-decovery in AppImage work
* import hashlib, maybe fix cypress
* Update service_encrypted_storage.py
* further bugfix on update
* TODO: remove debugging in client.py before first release
* fix controller-test
* fix singleton testing issues

Co-authored-by: Kim Neunert <k9ert@gmx.de>
Co-authored-by: benk10 <ben.kaufman10@gmail.com>
Co-authored-by: Kim Neunert <kneunert@gmail.com>
Co-authored-by: moneymanolis <moneymanolis@protonmail.com>
2022-01-13 11:47:28 +01:00