Commit graph

174 commits

Author SHA1 Message Date
jackstar12
e7b9688602
refactor: make BitcoinCheckoutModelExtension support other payment handlers (#6311)
* refactor: make `BitcoinCheckoutModelExtension` support other payment handlers

The bitcoin checkout extension doesn't have to be tied to the native
bitcoin handler since it only really needs the payment details to be in
a specific format, which can be provided by other handlers aswell,
allowing for better code reuse.

* refactor: initialize payment methods in constructor
2024-10-25 22:50:46 +09:00
nicolas.dorier
c7a05c3f09
Fix elements payments 2024-10-16 22:34:17 +09:00
nicolas.dorier
be429c527c
Cleanup useless code 2024-10-16 16:25:16 +09:00
nicolas.dorier
c43721d489
Pretty names of payment methods isn't provided by CheckoutExtensions 2024-10-14 21:53:14 +09:00
nicolas.dorier
c35af2dc69
Add translations to the Dashboard 2024-10-14 19:19:56 +09:00
nicolas.dorier
b91f3048ef
Fix: An unactivated payment method failing to activate would crash the checkout 2024-10-08 15:07:32 +09:00
nicolas.dorier
968223a953
Rename PaymentModel to CheckoutModel 2024-10-07 19:58:08 +09:00
nicolas.dorier
2f287874e3
Rename legacy fields 2024-10-07 19:51:50 +09:00
nicolas.dorier
c35e7406cd
Cleanup AvailableCrypto from the model 2024-10-07 19:15:40 +09:00
nicolas.dorier
e1bfc04451
Move checkout registration to the UI Extension 2024-10-07 17:38:02 +09:00
nicolas.dorier
ef0ba7b0c4
Remove useless properties 2024-10-07 16:18:09 +09:00
nicolas.dorier
0a2d8880ba
Remove CheckoutBodyVueComponentName 2024-10-07 15:20:26 +09:00
nicolas.dorier
b744fd6167
Allow payment methods to modify all the payment model 2024-10-07 14:53:21 +09:00
Nicolas Dorier
01e12329e9
Remove additional cryptoCode from events (#6277) 2024-10-07 09:37:56 +09:00
Nicolas Dorier
9ba4b030ed
Fix: Do not expose xpub without modify store permission (#6212) 2024-09-27 15:27:04 +09:00
Nicolas Dorier
f5e5174045
Refactor: Add GetMonitoredInvoices to fetch pending invoices or those with pending payments (#6235) 2024-09-20 18:54:36 +09:00
Nicolas Dorier
ba2301ebfe
Refactor the InvoiceAddresses table (#6232) 2024-09-19 22:15:02 +09:00
Nicolas Dorier
0f93581ff5
Refactor confirmation count tracking (#6215) 2024-09-17 17:28:58 +09:00
Nicolas Dorier
b4946f4db1
Fix divisibility in invoice details of lightning amounts (#6202)
* Fix divisibility in invoice details of lightning amounts

This PR will show 11 decimal in the invoice details for BTC amount
of lightning payment methods.

It also hacks around the fact that some
lightning clients don't create the requested amount of sats, which
resulted in over or under payments. (Blink not supporting msats, and
strike)

Now, In that case, a payment method fee (which can be negative) called tweak fee
will be added to the prompt.

We are also hiding this tweak fee from the user in the checkout page in
order to not disturb the UI with inconsequential fee of 0.000000001 sats.

* Only show 8 digits in checkout, even if amount is 11 digits
2024-09-12 12:43:08 +09:00
Dennis Reimann
d2e9ec9494
Cleanup v2 leftovers 2024-04-05 18:05:51 +02:00
Nicolas Dorier
6cc1751924
The Big Cleanup: Refactor BTCPay internals (#5809) 2024-04-04 16:31:04 +09:00
Nicolas Dorier
376067324b
Remove unused variables (#5669) 2024-01-18 09:47:39 +09:00
Nicolas Dorier
1d6d146fb2
Revert "Remove unused variables" (#5667)
This reverts commit f070b22355.
2024-01-18 00:05:50 +09:00
nicolas.dorier
f070b22355
Remove unused variables 2024-01-17 18:46:28 +09:00
Nicolas Dorier
616883648f
Move bitcoin payment data specific stuff in NBXplorerListener (#5294) 2023-09-19 10:32:41 +09:00
Nicolas Dorier
22435a2bf5
Refactor logic for calculating due amount of invoices (#5174)
* Refactor logic for calculating due amount of invoices

* Remove Money type from the accounting

* Fix tests

* Fix a corner case

* fix bug

* Rename PaymentCurrency to Currency

* Fix bug

* Rename PaymentCurrency -> Currency

* Payment objects should have access to the InvoiceEntity

* Set Currency USD in tests

* Simplify some code

* Remove useless code

* Simplify code, kukks comment
2023-07-19 18:47:32 +09:00
Nicolas Dorier
acf003b1b4
Do not generate new address when a new payment is detected (#4984)
* Do not generate new address when a new payment is detected

* Update BTCPayServer.Tests/UnitTest1.cs

Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>

---------

Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
2023-05-18 16:53:01 +09:00
Nicolas Dorier
516efe56f4
Refactor: Dot not make LNURLPaymentMethodDetails depends on BTCPayInvoiceId (#4864)
* Refactor: Dot not make LNURLPaymentMethodDetails depends on BTCPayInvoiceId

* Abstract PaymentProof

* fix bug

* Make the selenium container resolves the btcpay host name
2023-04-10 16:38:49 +09:00
nicolas.dorier
7546ef7a8e
Dotnet reformat 2023-04-10 11:07:03 +09:00
d11n
ded0c8a3bc
Update price display (#4736)
* Update price display

As proposed by @dstrukt in #4364.

* Update format

* Unify price display across the app

* Add DisplayFormatter

* Replace DisplayFormatCurrency method

* Use symbol currency format for invoice

* Unify currency formats on backend pages

* Revert recent changes

* Do not show exchange rate and fiat order amount for crypto denominations

* Fix test and add test cases
2023-03-13 10:12:58 +09:00
d11n
abe29f21f0
Checkout v2: Option to display amount in Sats in BIP21 case (#4730) 2023-03-09 21:36:11 +01:00
d11n
753ffd401b
BIP21 + LNURL fix (#4616)
In case of the unified invoice, the LNURL wasn't correct — with this change we are simply reusing th one that was issued on invoice creation instead of generating it anew on the fly.

Also fixes missing uppercasing for the QR code in case of non-unified QR.
And removes the `lightning:` scheme from the LNURL that's displayed to the user (unifies it with what we do for Onchain and Lightning)
2023-02-10 11:23:48 +09:00
Andrew Camilleri
85513aa5c3
Make NFC built in (#4541)
* Make NFC built int

* support checkout v2

* uninstall old plugin

* fix lnurl in unified checkout

* fix tests

* fix tests

* fix old checkout unified qr

* clean up and make nfc submission more sturdy

* support topup invoices for lnurlw

* fix test

* Payment URI fixes

* Fix LNURL exclusion cases

* UI updates

* Adapt test

---------

Co-authored-by: Dennis Reimann <mail@dennisreimann.de>
2023-02-08 15:47:38 +09:00
d11n
9f3a3c5f51
BIP21: Uppercase addresses only in QR, not in payment URL (#4553)
* BIP21: Uppercase addresses only in QR, not in payment URL

The uppercased address/BOLT11 should only be used for the QR code, the payment URI for the link should stay as it is.

References:

- #2110
- https://bitcoinqr.dev/

* Improve comments

* Add comments step by step

* Ensure correct delimiter

Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
2023-01-24 09:44:39 +09:00
d11n
d5d0be5824
Code formatting updates (#4502)
* Editorconfig: Add space_before_self_closing setting

This was a difference between the way dotnet-format and Rider format code. See https://www.jetbrains.com/help/rider/EditorConfig_Index.html

* Editorconfig: Keep 4 spaces indentation for Swagger JSON files

They are all formatted that way, let's keep it like that.

* Apply dotnet-format, mostly white-space related changes
2023-01-06 22:18:07 +09:00
Nicolas Dorier
9a4dec57d1
Generate a wallet object for all scripts, save source in generatedBy rather than receive label (#4413) 2022-12-08 13:16:18 +09:00
Andrew Camilleri
1d7dee8314
Fix NRE and do nto activate onchain if node unavailable even when lazy payments (#4291)
fixes #4289
2022-11-16 09:04:51 +09:00
Andrew Camilleri
bec888da19
Payjoin label fixes (#3986)
* Payjoin label fixes

* When a payjoin label was applied, coin selection filter would not work
* When a payjoin happened with a receive address wallet, the payjoin label was not applied
* Coin selection shows when a utxo is currently reserved for a payjoin. Applies both to UI and to GF API

* remove reserved label

* Update BTCPayServer/Payments/PayJoin/PayJoinEndpointController.cs
2022-07-23 20:26:13 +09:00
Andrew Camilleri
612a0397a7
Make LNURL enabled when only method (#3930)
* Make LNURL enabled when only method

This fixes the scenario where LNURL for standard invoices are disabled, but the POS Print view only shows LNURL, so the QR code would always error out. The fix is to bypass the setting when lnurl is the only enabled payment method on the invoice

* Make sure not to affect other flows

* fix
2022-07-06 22:09:05 +09:00
nicolas.dorier
f6b157167d
Improve performance when lot's of pending invoices 2022-05-23 19:17:33 +09:00
Nicolas Dorier
13952a4b79
Bump NBX (#3607) 2022-04-05 14:46:42 +09:00
nicolas.dorier
a42323a527
Make sure the SubscribeAsync handlers are executed in order 2022-01-17 13:36:33 +09:00
Nicolas Dorier
04b8eafacb
Run dotnet format (#3244) 2021-12-31 16:59:02 +09:00
nicolas.dorier
35aad4ebf9
Remove Logs static singletons 2021-11-23 13:55:34 +09:00
Samuel Adams
cbcd59c996
Prevent creation of on-chain invoices below the dust limit (#3082)
* Prevent creation of on-chain invoices below the dust limit

Fixes #3071.

* Apply suggestions from code review

Co-authored-by: Nicolas Dorier <nicolas.dorier@gmail.com>

* small fix

* Fix selenium test

0.000000012 BTC (whether rounded or not) is below the dust threshold, causing this test to fail.

* fix CanCreateTopupInvoices test

Don't apply dust threshold conditional for topup invoices.

* Fix test, and minor changes

Co-authored-by: Nicolas Dorier <nicolas.dorier@gmail.com>
2021-11-15 13:48:07 +09:00
Nicolas Dorier
86e528e5df
Use NBitcoin's Network.UriScheme rather than our own (#3005) 2021-10-23 14:47:15 +09:00
nicolas.dorier
150e4b842c
Make sure the process doesn't crash if exception raised in Subscribe 2021-10-06 13:22:55 +09:00
nicolas.dorier
b970f64639
Remove build warnings 2021-10-06 12:53:41 +09:00
Andrew Camilleri
6e3d6125c2
Payment Settled Webhook event (#2944)
* Payment Settled Webhook event

resolves #2691

* Move payment methods to payment services
2021-10-05 18:10:41 +09:00
Kukks
e93562b1db Do not publish NewTransactionEvent if GetValidOutputs did not match with the network's. 2021-09-15 07:28:17 +02:00