Commit graph

2376 commits

Author SHA1 Message Date
nicolas.dorier
2911771f19
Feature: RBF and UX improvement to fee bumping 2025-03-11 17:44:18 +09:00
rockstardev
9dcf8d3251
Display fiat amount previews in Transaction Details page (#6610)
* 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>
2025-03-08 21:33:19 +09:00
ThiagoOyo
9bff84f90f
Fix: Archived invoices shouldn't be browsable by non authenticated users (#6588)
* fix: return 403 when unauthenticated user accesses an archived invoice receipt

* refactor: simplify archived invoice access check with pattern matching

* Return 404 for unauthorized users accessing archived invoice

Co-authored-by: d11n <mail@dennisreimann.de>

* feat: add archived invoice validation for unauthenticated access in Checkout and GetStatus

* test: add test case for unauthorized access to archived invoice returning not found

* test: add unauthorized checkout test for archived invoice

* Commenting code and adding test case for GetStatus

---------

Co-authored-by: d11n <mail@dennisreimann.de>
Co-authored-by: rockstardev <5191402+rockstardev@users.noreply.github.com>
2025-03-06 17:45:53 +09:00
rockstardev
1da2cedffd
Reverting changes, validate email only if it was provided 2025-03-05 22:49:07 -06:00
rockstardev
18852af241
Refactoring and commenting 2025-03-05 22:49:06 -06:00
rockstardev
8094800cfc
IsMailboxAddress already checks for null, simplifying code 2025-03-05 22:49:06 -06:00
nicolas.dorier
be8ecb823e
Refactor email endpoints 2025-03-05 22:49:06 -06:00
rockstardev
a7e3cbb105
Adding endpoint to set server email settings (#6601)
* Adding endpoint in Greenfield to allow server email settings

* Adding related swagger file

* Refactoring EmailSettingsData to be more readable

* Adding server email masking

* Adding tests

* Update BTCPayServer/wwwroot/swagger/v1/swagger.template.serveremail.json

Co-authored-by: d11n <mail@dennisreimann.de>

* Masking smtp server email returned over greenfield api and test

* Retaining password if password mask is used

* Remove magic string *****

* Flatten request for server's settings. Fix bug on shared setting instances

* Remove useless doc

* Simplify code

* Fix Store Email settings page

---------

Co-authored-by: d11n <mail@dennisreimann.de>
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
2025-02-27 15:59:17 +09:00
rockstardev
8b5c5895f0
Selenium tests for Multisig on server (#6487)
* 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>
2025-02-25 14:39:57 +09:00
René Aaron
039e613524 fix: remove lnurl description hash check 2025-01-28 14:57:44 +01:00
Nicolas Dorier
81cd51cc66
Merge pull request #6570 from btcpayserver/fix-get-store-payment
Fix: Incorrect enabled value for v1/stores/{storeId}/payment-methods/{paymentMethod}
2025-01-21 23:52:18 +09:00
d11n
20e8db7307
App: Allow receipt to be shown in iframe (#6574)
Also detects if the checkout page is shown within an iframe and hides the back to store link in that case.
2025-01-21 23:50:27 +09:00
nicolas.dorier
8e927eee73
Better validation of inputs when setting on-chain payment method by API 2025-01-21 23:37:56 +09:00
nicolas.dorier
bbe95d780f
Fix: Incorrect enabled value for v1/stores/{storeId}/payment-methods/{paymentMethod} 2025-01-21 17:48:37 +09:00
Nicolas Dorier
01250f6aee
Add ability to move a payout from InProgress to AwaitingPayment (#6564) 2025-01-21 15:37:45 +09:00
nicolas.dorier
d3d6b2d15c
Make HtmlTags safer, properly sanitize in the view as well 2025-01-19 11:00:09 +09:00
d11n
1c25d793c7
Store: Allow resetting custom email server (#6547)
* Store: Allow resetting custom email server

Fixes #6546.

* Do not show fallback settings in form
2025-01-16 14:32:53 +09:00
Nicolas Dorier
92a92a7fff
Rename and add to greenfield HtmlTags and HtmlMetaTags for apps (#6557) 2025-01-15 23:48:10 +09:00
Nicolas Dorier
5536935ff8
Make Checkout Cheat Mode extensible by plugins (#6543) 2025-01-10 16:17:55 +09:00
d11n
08835895e9
Invoices: Allow admin to see invoices of users (#6517)
* Invoices: Allow admin to see invoices of users

Fixes #6489. As discussed with @TChukwuleta, this succeeds and closes #6497.

* Invoices: Allow admin to see invoices of users

Fixes #6489. As discussed with @TChukwuleta, this succeeds and closes #6497.

* Update controller to allow admin access for basic invoice actions
2024-12-23 17:50:44 +09:00
d11n
637c06fc01
Greenfield: Improve invoice receipt (#6483)
Assembles and provides the same data as the UIInvoiceController. Merging the invoice's receipt options with the store ones was missing in Greenfield.
2024-12-23 09:25:05 +09:00
Nicolas Dorier
8acf1c2d62
Refactoring: Introduce IUrlHelper.ActionAbsolute (#6513) 2024-12-21 00:16:04 +09:00
d11n
44dc6499cd
POS: Fix form redirect in conjunction with root path setting (#6506)
* 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
2024-12-20 22:59:07 +09:00
d11n
d24e0cd1a2
Greenfield: Remove authorization requirement for app data (#6499)
As discussed with @NicolasDorier on Mattermost: Right now only store owners can access the app data, which doesn't contain sensitive info or something beyond what one would see as a regular customer. The app would need a way to access the data for roles other than `Owner` as well, e.g. `Employee`.
2024-12-19 09:54:28 +09:00
Dennis Reimann
fe3bccf3ce
Greenfield: Resolve store user's image URL
Amendment to #6427.
2024-12-15 10:02:13 +01:00
d11n
00cc16455c
App: Add events which the app subscribes to (#6435)
* App: Add events which the app subscribes to

Various events, which are relevant for the app to react to changes made on the server.

* Refactor events

* Do not extend NewBlockEvent

* Refactoring events

* Add store role events

* Refactoring: Rename StoreUserEvent

* Fix: Subscribe to UserEvent.Invited

---------

Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
2024-12-11 20:11:51 +09:00
Andrew Camilleri
b797cc9af8
Multisig/watchonly wallet transaction creation flow proof of concept (#5743) 2024-12-10 21:56:52 +09:00
nicolas.dorier
4f63f08aeb
Plugin: Add IGlobalCheckoutModelExtension 2024-12-09 21:29:04 +09:00
nicolas.dorier
4d01e3a16a
Access email settings through the factory 2024-12-06 16:19:17 +09:00
Nicolas Dorier
e7b98fbae3
Merge pull request #6442 from dennisreimann/mwb-integration-signin
Account: Sign in user after accepting invitation or resetting password
2024-12-04 19:16:59 +09:00
nicolas.dorier
694b8e111c
Update FIDO library 2024-12-03 21:13:23 +09:00
d11n
898f0f4481
Greenfield: Improve store users API (#6427)
* Greenfield: Improve store users API

- Adds an endpoint to update store users (before they had to be removed ad re-added)
- Checks for the existance of a user and responds with 404 in that case (fixes #6423)
- Allows retrieval of user by user id or email for add and update (consistent with the other endpoints)
- Improves the API docs for the store users endpoints

* Swagger: Reuse UserIdOrEmail parameter component

* Add details to store user data
2024-12-02 15:35:33 +01:00
Dennis Reimann
fbf707cde2
Account: Sign in user after accepting invitation or resetting password
UX improvements, which we are porting from the app to unify the experience.
2024-11-26 11:42:13 +01:00
d11n
d3315c2fa6
Integrate mobile-working-branch part 1 (#6428) 2024-11-26 14:17:40 +09:00
d11n
d6211327db
Greenfield: Users API fixes (#6425)
* Do not crash when creatuing users without password

* More precise error message for user approval toggling
2024-11-25 09:38:44 +09:00
nicolas.dorier
8e688b7f28
Fix: Getting notifications via API would crash 2024-11-14 21:53:37 +09:00
Nicolas Dorier
31b73f0d82
Fix: Boltcard would get bricked during reset from the balance view with wrong card (#6400) 2024-11-14 13:14:36 +09:00
Nicolas Dorier
fdbee350b8
Greenfield: Create Pull Request payoutMethods is now optional (#6396) 2024-11-13 18:31:55 +09:00
Nicolas Dorier
894f68f2ae
Improve error messages for on-chain related greenfield operations (#6393)
* Improve error messages for on-chain related greenfield operations

* Fix test
2024-11-13 10:11:04 +09:00
Nicolas Dorier
0f7c0341c5
Fix: Do not allow retry of payouts if they are non interactive (Boltcard) (#6382) 2024-11-12 09:58:10 +09:00
d11n
f5d26a1555
Store: Fix missing invitation email when adding new user (#6372)
Fixes #6369, a regression introduced with#6188: Sending invite emails required a flag to be set, which defaulted to false. This fixes the code to explicitely set the flag and also defaults it to true (sending an invite email unless declared otherwise).
2024-11-09 13:55:34 +01:00
d11n
a129114603
Greenfield: Add image upload for app items (#6226)
Upload endpoints for app item images. Follow-up to #6075.
Tested to work with the app item editor.

Uses UploadImage consistently in API and UI.
2024-11-07 10:43:22 +09:00
d11n
392ec623c0
Refactoring: Remove StoreData object from view models (#6363) 2024-11-07 08:58:47 +09:00
d11n
641bdcff31
Histograms: Add Lightning data and API endpoints (#6217)
* 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
2024-11-05 21:40:37 +09:00
d11n
ff79a31066
Refactoring: Move AppItem to Client lib and use the class for item list (#6258)
* Refactoring: Move AppItem to Client lib and use the class for item list

This makes it available for the app, which would otherwise have to replicate the model. Also uses the proper class for the item/perk list of the app models.

* Remove unused app item payment methods property

* Do not ignore nullable values in JSON

* Revert to use Newtonsoft types
2024-11-05 11:49:30 +09:00
Andrew Camilleri
373b90e3b5
Liquid fixes (#6340)
make sure link provider is per payment method of liquid assets. Also remove ETB as it has been unused. Also hide the send button as it is not supported thrrough BTCPay
2024-10-29 23:43:37 +09:00
jackstar12
41a2241ae1
feat: log download button (#6330)
* feat: add download button to logs view

* fix: add using block for `fileStream` if it isnt downloaded
2024-10-27 21:43:47 +09:00
d11n
a962e60de9
More Translations (#6318)
* Store selector

* Footer

* Notifications

* Checkout Appearance

* Users list

* Forms

* Emails

* Pay Button

* Edit Dictionary

* Remove newlines, fix typos

* Forms

* Pull payments and payouts

* Various pages

* Use local docs link

* Fix

* Even more translations

* Fixes #6325

* Account pages

* Notifications

* Placeholders

* Various pages and components

* Add more
2024-10-25 22:48:53 +09:00
nicolas.dorier
74011e50e3
Do not translate checkout with the backend language 2024-10-20 11:49:36 +09:00
Nicolas Dorier
cc0ea0b3f8
Refactor payouts processing (#6314) 2024-10-19 21:33:34 +09:00