* feat: add timestamp on InputSelectionOption to enable date filtering
* feat(coin-selection): add page size options for 100, 250, and 500
* feat(coin-selection): add toggle all option
* feat(coin-selection): add filtering by amount and timestamp
* feat(coin-selection): add filter help section for advanced search options
* test: add tests for Coin Selection filters and select all
* refactor: remove unnecessary variable
* feat(coin-selection): enable copy-to-clipboard for filter examples
* refactor(coin-selection): separate sort and select-all controls into distinct layout blocks
* refactor(coin-selection): align selection logic with existing DOM-based approach
* test: refactor CanUseCoinSelection and CanUseCoinSelectionFilters
* test(coin-selection): replace magic numbers and delays with constants and Eventually
* refactor(coin-selection): improve select all performance with specific jQuery selector
* test(coin-selection): improve select all test with eventually and Equal
* Monoscaped font and right aligning for easier amounts view
* fix: coin selection toggling no longer unchecks unrelated inputs
* refactor(coin-selection): ensure UTXO date filters use proper Date comparison
* feat: add text-translate attributes for available filters section
* test: make Select All checkbox interaction more resilient to race conditions
---------
Co-authored-by: rockstardev <5191402+rockstardev@users.noreply.github.com>
* Code cleanup
* Preparing model to include data needed for fiat display
* Displaying fiat amount and allowing switching between it and BTC
* Restoring parts removed by vibe coding
* Making ToFiatAmount method work for in wider variety of cases
* Tweaks for display and negative values
* Calculating amounts on serverside and simplifying
* Fix warnings
---------
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
* Adding MultisigTests
* Adding fetching of receive address and creating pending transaction
* Completing multisig test flow
* Reverting Selenium ChromeDriver version
* Adding generation of PSBTs
* Removing unnecessary lines
* PSBT test signing now working with multisig dervation scheme
* Updating SignTestPSBT test
* Reducing number of iterations for test funding, to speed up tests
* Bugfixing PSBT problem
* Ensuring that PSBT signing also works for pending transactions
* Ensuring we don't collect count duplicate signatures for same PSBTs
* Resolving bug in PendingTransactionService where Combine was modifying object
* Fixing bug where pending transaction was not broadcased if there was ReturnUrl
* Finally finishing Multisig Selenium test flow with signing PSBTs, broadcasting and cancelling them
* Small nit, waiting loaded element
* Nit: Use AssetElementNotFound
* Fix warning
* Remove code dups
---------
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
* POS: Fix form redirect in conjunction with root path setting
Fixes#6493 and also adds missing status messages on the forms pages.
* Fix other occurrences
* Histograms: Add Lightning data and API endpoints
Ported over from the mobile-working-branch.
Adds histogram data for Lightning and exposes the wallet/lightning histogram data via the API. It also add a dashboard graph for the Lightning balance.
Caveat: The Lightning histogram is calculated by using the current channel balance and going backwards through as much invoices and transactions as we have. The "start" of the LN graph data might not be accurate though. That's because we don't track (and not even have) the LN onchain data. It is calculated by using the current channel balance and going backwards through as much invoices and transactions as we have. So the historic graph data for LN is basically a best effort of trying to reconstruct it with what we have: The LN channel transactions.
* More timeframes
* Refactoring: Remove redundant WalletHistogram types
* Remove store property from dashboard tile view models
* JS error fixes
* Wallet: Generate receive address automatically
This circumvents landing on a blank page with only the "generate address" button and automatically generates a new address, unless the Unreserve action was used.
* Fix close button leading to same page
* Fix tests
* Remove unreserve feature
---------
Co-authored-by: Nicolas Dorier <nicolas.dorier@gmail.com>
* Support pluginable rate providers
This PR allows plugins to provide custom rate providers, that can be contextual to a store. For example, if you use the upcoming fiat offramp plugin, or the Blink plugin, you'll probably want to configure the fetch the rates from them since they are determining the actual fiat rrate to you. However, they require API keys. This PR enables these scenarios, even much more advanced ones, but for example:
* Install fiat offramp plugin
* Configure it
* You can now use the fiat offramp rate provider (no additional config steps beyond selecting the rate source from the select, or maybe the plugin would automatically set it for you once configured)
* Apply suggestions from code review
* Simplify
* Do not use BackgroundFetcherRateProvider for contextual rate prov
---------
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
* Providing additional parameter for info message
* Refactoring code to remove parameter and only set status message in LoadFromBIP21 if not present
* Update BTCPayServer/Controllers/UIWalletsController.cs
---------
Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
There's an [ongoing discussion](https://github.com/wardi/jsonlines/issues/19) about what the MIME type for [JSONL](https://jsonlines.org/) files should be. Making it `application/jsonl` leads to the file being downloaded according to my testing, which prevents browsers from opening them in a new window and parsing them as JSON, which fixes#5488.
* Ajaxify the wallet transaction list to avoid timeout (Fix#4987)
* Add cancellation to request to wallet transactions
* Fix tests
* Improve empty state
* Cleanups
---------
Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
* If loading addresses into the send wallet page using bip21 or address, (or clicking on "Send selected payouts" from the payotus page), existing labels will be pre-populated.
* Add the payout label to the address when the payoutis created instead of to the transaction when it is paid.
* Add the label attachments when adding labels from an address to the transaction.