The [previously used U2F library](https://github.com/fido-alliance/google-u2f-ref-code/) has been deprecated. The new one does not override the browsers `window.u2f` functionality if it is natively supported. It also displays the appropriate errors and falls back nicely in case the browser does not support U2F.
This allows plugins to create custom dbcontexts, which would be namespaced in the scheme with a prefix. Migrations are supported too and the table would be prefixed too
* Plugins: Load plugins by order, aesthetic plugin dependency system
Introduces plugins loading in order of installation, BTCPay itself shows up as a system plugin, and that plugins can define other plugins as dependencies.
* use a proper type for plugin dependencies
* rebase fixes
* message when cannot install
This allows external integrations ( btcpay docker fragments) to highlight specific plugins as recommended to be installed. Also moved the remote option to a config option instead of a url query param to avoid messy situations where users could get deceived with a generated url. The dockerfiles also have an additional csproj to build and the plugin dir was renamed correctly from extensions to plugins
Adds a warning to configure the e-mail server before "Requires a confirmation mail for registering" checkbox can be checked if e-mail server is not configured.
close#1889
* Remove QuadrigaCX references
Quadriga has been dead for years. I've removed the references to them and replaced them with a different Canadian exchange (ndax) for example.
The whole set of instructions could probably use an overhaul, but for now, at least let's get rid of Gerry's presence.
* Remove Quadriga from tests too
Co-authored-by: Kukks <evilkukka@gmail.com>
* Improve payment print styles
Allows for export as invoice PDF to be used in accounting. Closes#1957.
* Change Transaction ID wording
* Minor payment request UI improvements
* Add amount paid, rate and colorize payment status
* Display rate at invoice level
* Inherit text color in print
* Show full date in print view
* Rearrange payment details
* Add received date for payments
* Fix amount calculation
* Fix validInvoice assignment
* Add PSBT QR code scan/show
This PR introduces support to show and read PSBTs in BC-UR format via animated QR codes. This allows you to use BTCPay with HW devices such as Cobo Vault and Blue wallet to sign transactions without ever exposing the keys outside of that device.
Spec: https://github.com/BlockchainCommons/Research/blob/master/papers/bcr-2020-005-ur.md
I've also bumped the QR code library we sue as it had a bug with large datasets.
* Reuse same code for all and allow wallet import via QR code scan
* remove unecessary js vendor files
* Allow export wallet from settings via QR
* formatting
* bundle
* fix wallet receive bundle
* BTCPay Extensions Part 2
This PR cleans up the extension system a bit in that:
* It renames the test extension to a more uniform name
* Allows yo uto have system extensions, which are extensions but bundled by default with the release (and cannot be removed)
* Adds a tool to help you generate an extension package from a csproj
* Refactors the UI extension points to a view component
* Moves some more interfaces to the Abstractions csproj
* Rename to plugins
* Allow disabling notifications per user and disabling specific notifications per use
closes#1974
* Add disable notifs for all users
* fix term generator for notifications
* sow checkboxes instead of multiselect when js is enabled
* remove js dependency
* fix notif conditions
In case JS is enabled the post redirect page showed an empty box. This box contains the explanation text for the non-JS text.
This changes it to only show the modal box in casee JS is disabled, because the page – even though only visible briefly – looks weird for users with JS enabled.
* Fix LN invoices
This commit adds more to the previous LN fix in the case of a partial payment to an invoice. While it generated a new LN invoice after 1 partial payment was made, there were some new issues uncovered:
* Any other subsequent partial payments was not listened to and did not generate an invoice ( fixed by listeneing to received payment event and makng sure that the status was already set `to partialPaid`)
* Any other subsequent partial payments caused a DbConcurrency error and did not generate an invoice ( Fixed in `MarkUnassigned`)