* Refactor fee provider
The fee provider ended up glued with a hardcoded factory. This PR:
* removes this glue and uses the DI to register fee provider for a network. (allows plugins to add their own fee providers, for any network
* Add a 10 second timeout to mempoolspace fee fetching as they are slow at times
* use linear interpolation for mempool space fee estimation
* fix upper bound
* Add tests, rollback pluginify FeeProvider
---------
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
* Refactor Wallet import code
The code for wallet import was incredibly messy as it evolved over time from various requests.
This PR:
* splits up each supported format into its own file
* Supports taproot descriptors (through a hack until NBitcoin supports it internally) fixes#5518
* Reduces different paths for handling electrum/non-electrum xpubs
* Allows plugins to add their own import support formats for onchain wallets.
* Update NBitcoin to parse tr descriptors
* Fix warnings
* Use dedicated type OnChainWalletParsers
---------
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
* Make tips and discount properties disabled in POS setting
* Update discount and tips boolean properties in model and swagger json
* update pos tests to cater for default tip and discount state
* Remove custom IDs and unify tests
---------
Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
There are apps, which do not have a template and hence no inventory. Accessing it via `settings[templatePath]!.Value` causes exceptions in those cases.
Cam across this while browsing the API docs: The checkout type setting isn't used for the POS, so we should simply remove it as this is configured on the store-level.
* Use Mempoolspace fees
Since bitcoind's fee estiomates are horrible, I would use an altenrative, but that adds a third party to the mix. We can either:
* Accept the risk (it is only for fee estimation anyway)
* Offer a toggle in the server settings
* Move this code to a plugin
* refactor
* Refactor
---------
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
* Support the new LN lib
* fix test
* do not cache factories
* try without useless userinfo in lnd
* Remove monero wallet files
* support simpler DI too
---------
Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
* Apps: Filter list lookups by available app types
Uniunstalling a plugin might lead to then unavailable app types, as the entries remain in the database. The list lookups need to account for that, otherwise unavailable apps cause crashes and misbehaviour.
Fixes#5480.
* Make a hashset
---------
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
* Invoice: Unify status display and functionality
Consolidates the invoice status display and functionality (mark setted or invalid) across the dashboard, list and details pages.
* Test fix
---------
Co-authored-by: Nicolas Dorier <nicolas.dorier@gmail.com>
* Improve receipt info display
Displays the info in correct order and adds optional info if tip was given with a percentage.
* Test fix
---------
Co-authored-by: Nicolas Dorier <nicolas.dorier@gmail.com>
Adjust the prior number of transactions metric as discussed with @pavlenex. We now show the number of paid invoices instead of transactions, as this metric is more meaningful.
Closes#5300.