Commit Graph

147 Commits

Author SHA1 Message Date
Andrew Camilleri
ba165ddd4f Local Greenfield Client for Plugins (#2410)
* wip

* Local GreenField Client for Plugins

* support notification handlers being missing

* Initial support for scoped btcpay client

* test out scoped local client

* wip

* small fix

* Throw exception if using local greenfield client and it has not been implemented yet

* adapt based on new changes in BTCPay

* update

* fix tests

* Allow Local client to bypass authorization handler

* Add Misc endpoints to Local API Client

* Add new endpoints

* Apply code review changes
2021-07-27 21:11:47 +09:00
Andrew Camilleri
14e4d2d675 Make CSSThemeManager really only focus on theme (#2457)
* Make Settings Repository cache in memory

* Make use of SettingsRepo directly instead of CssThemeManager

* Completely remove CssThemeManager
2021-07-27 21:08:54 +09:00
Wouter Samaey
d8c1c51a21 Auto-detect language on payment page (#2552)
* Auto-detect language on payment page

based on the requst Accept-Language header, which is the language you configured in your browser/OS and this 99.99% accurate

* Update BTCPayServer/Services/LanguageService.cs

Co-authored-by: britttttk <39231115+britttttk@users.noreply.github.com>

* Update BTCPayServer/Services/LanguageService.cs

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

* Update BTCPayServer/Services/LanguageService.cs

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

* Update BTCPayServer/Services/LanguageService.cs

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

* Added loop for all locales in Accept-Language sorted by weight + check if know this language

* New public method so a unit test can be created for it

* Unit test for language detection

* Fix language service when not in browser context

* fall back to default lang

* Auto-detect setting + ?lang=auto support

* Added invoice param "?lang=auto" info to docs

* Using null-coalescing assignment operator

* Reduce complexity and http dependency in language service

Co-authored-by: britttttk <39231115+britttttk@users.noreply.github.com>
Co-authored-by: Andrew Camilleri <evilkukka@gmail.com>
2021-07-27 08:17:56 +02:00
Kukks
f4df850d25 Greenfield: Rename enabledOnly to enabled?
Allows the filter to work in both directions instead
2021-07-26 12:03:11 +02:00
Kukks
4d538c61b1 Refactor Get Store Payment Methods
Add tests + docs + new pluggbale format for fetching payment method data + client
2021-07-26 12:03:11 +02:00
Umar Bolatov
17e6179fec Add "stores/{storeId}/payment-methods" endpoint
address #2545
2021-07-26 12:03:11 +02:00
Nicolas Dorier
73b461f8d0 Greenfield: add text search terms to an invoice (#2648) 2021-07-14 23:32:20 +09:00
Andrew Camilleri
72d5c11811 Greenfield: Add CanModifyInvoices Permissions (#2595) 2021-07-11 00:30:01 +09:00
Umar Bolatov
aefb81b7f0 Add "skip" and "limit" params for onchain txs API endpoint (#2688)
Discussed here: https://github.com/btcpayserver/btcpayserver/discussions/2667
2021-07-10 13:04:01 +09:00
Andrew Camilleri
cb2dd464f1 GreenField: Add StoreId to Invoice model (#2592) 2021-06-24 23:15:51 +09:00
Umar Bolatov
3d21d2724e Fix bug with LN payment method API endpoint throwing 500 (#2567)
close #2566
2021-06-14 18:19:52 +09:00
nicolas.dorier
371acc84a8 Do not retrieve all payouts in GetPullPayment every time 2021-06-10 18:54:27 +09:00
Andrew Camilleri
cd9feccf6e Mark Payouts as Paid (#2539)
* Mark Payouts as Paid

This PR allows users to mark payouts as paid manually through the UI  and through the API. It also sets up the payout proof system to be able store a manual proof that will in a later PR allow you to specify a proof of payment (link or text)

* add docs, test and greenfield client

* remove extra docs stuff

* Update BTCPayServer.Tests/GreenfieldAPITests.cs

Co-authored-by: britttttk <39231115+britttttk@users.noreply.github.com>

* clean up pull payment/payouts fetch code

* Ensure payoutis are retrieved with pull payment

Co-authored-by: britttttk <39231115+britttttk@users.noreply.github.com>
2021-06-10 18:43:45 +09:00
Nicolas Dorier
e93b030bfe Update HWI library, warn users to run newer version (#2544)
* Update HWI library, warn users to run newer version

* Update BTCPayServer/wwwroot/js/vaultbridge.ui.js

Co-authored-by: Zaxounette <51208677+Zaxounette@users.noreply.github.com>

* Update BTCPayServer/wwwroot/js/vaultbridge.ui.js

Co-authored-by: Pavlenex <pavle@pavle.org>

Co-authored-by: Zaxounette <51208677+Zaxounette@users.noreply.github.com>
Co-authored-by: Pavlenex <pavle@pavle.org>
2021-06-06 21:02:15 +09:00
Kukks
28da78fc78 Improve tests and small refactoring 2021-06-04 12:20:45 +02:00
Umar Bolatov
8731055786 Use UserNotFound instead of NotFound 2021-06-02 20:02:31 -07:00
Umar Bolatov
be05b6aa90 Specify correct return type on delete user methods 2021-06-02 20:02:31 -07:00
Umar Bolatov
0b4d94faf2 Remove unnecessary null check 2021-06-02 20:02:30 -07:00
Umar Bolatov
9f8f677125 Remove unused IsAdmin method 2021-06-02 20:02:30 -07:00
Umar Bolatov
949d6bf584 Replace admin check with CanModifyServerSettings authorization policy 2021-06-02 20:02:30 -07:00
Umar Bolatov
9fc2d2b76b Remove CanDeleteUser constraint from "/api/v1/users/{userId}" endpoint 2021-06-02 20:02:29 -07:00
Umar Bolatov
d9935ada9d Add "/api/v1/users/me" endpoint 2021-06-02 20:02:29 -07:00
Umar Bolatov
b4076b53e8 Add IsAdminUser method to UserService 2021-06-02 20:02:28 -07:00
Umar Bolatov
53c81918a5 Enable nullable reference checking in UsersController 2021-06-02 20:02:28 -07:00
Umar Bolatov
104092702a Simplify DeleteUser method 2021-06-02 20:02:27 -07:00
Umar Bolatov
2ed8341403 Add IsRoleAdmin to user service 2021-06-02 20:02:26 -07:00
Umar Bolatov
e5a196918f Add user service 2021-06-02 20:02:26 -07:00
Umar Bolatov
907ae760e0 Add CanDeleteUser policy 2021-06-02 20:02:25 -07:00
Umar Bolatov
fe107cd23f Add DELETE action for api/v1/users endpoint 2021-06-02 20:02:22 -07:00
Andrew Camilleri
3b375929c1 Support wider server sync info in greenfield server info (#2511)
fixes #2498
2021-05-19 13:07:28 +09:00
Nicolas Dorier
c551e5cd0a Make sure to only select accounted payments where we should (#2523) 2021-05-14 16:16:19 +09:00
nicolas.dorier
5f9ef0ff62 Greenfield: Human friendly error if webhook or delivery not found 2021-04-27 15:38:42 +09:00
nicolas.dorier
dcc4214dcb Make sure model binder error are returning error 422, use DateTimeOffsetModelBinder 2021-04-26 12:37:56 +09:00
Saker Omera
ded55a1440 customized api/v1/invoices query parameters to filter results (#2461)
* customized api/v1/invoices query parameters to filter results

* customized api/v1/invoices query parameters to filter results

* update swagger and make parameters as arrays

* change startDate and endDate types to UnixTimestamp

* update invoice status type in swagger and better handle dateTimeoffset

* change status type to array of InvoiceStatus to match controller

* change status type to array of InvoiceStatus to match controller

Co-authored-by: somera <somera@tesla.com>
2021-04-26 11:32:44 +09:00
nicolas.dorier
a7cbb3941a Give better error for greenfield API 2021-04-20 18:21:26 +09:00
Andrew Camilleri
7d1761de4f Coin Selection: Confirmed filter (#2467)
Allows provides confirmation count to Greenfield UTXO GET api
2021-04-20 11:02:06 +09:00
Andrew Camilleri
2e12befb8b Refactor and decouple Payout logic (#2046)
* Refactor and decouple Payout logic

So that we can support lightning and more complex flows like allowing external payments to payouts.

* fix dropdown align

* switch to simpler buttons

* rebase fixes

add some comments

* rebase fixes

add some comments

* simplify enum caveman logic

* reduce code duplication and db round trips

* Fix pull payment date format

* fix issue with payouts to send page not working correctly

* try fix some style issue

* fix bip21parse
2021-04-13 17:36:49 +09:00
Andrew Camilleri
8fd4a816a6 Allow Payjoin for wallet receive addresses (#2425)
* Allow Payjoin for wallet receive addresses

* wip

* show bip21 and additional work

* style better

* add to docs

* pr changes

* remove from state when unreserved
2021-04-13 12:26:36 +09:00
Andrew Camilleri
ad1b708da5 Provide more data through OnChain Wallet API (#2420)
Provides unconf/conf balanaces, keypath + address + timestamp of utxos
2021-04-08 12:43:51 +09:00
Andrew Camilleri
f367480857 GreenField: Add FeeRate To Wallets API (#2375)
* GreenField: Add FeeRate To Wallets API

closes #1846

* make dedicated endpoint for fee rate

* remove unused call
2021-04-07 15:16:17 +09:00
xpayserver
475809b1a0 Make Invoice Create Faster And Fix Gap Limit Issue (#1843)
* Make Invoice Create Faster And Fix Gap Limit Issue

This make address reserve only when user "activate" paymet method in ui. optional setting in store checkout ui.

* Fix swagger documentation around Lazy payment methods

* fix changed code signature

* Add missing GreenField API for activate feature

* Fix checkout experience styling for activate feature

* Fix issue with Checkout activate button

* Make lightning also work with activation

* Make sure PreparePaymentModel is still called on payment handlers even when unactivated

* Make payment  link return empty if not activated

* Add activate payment method method to client and add test

* remove debugger

* add e2e test

* Rearranging lazy payments position in UI to be near dependent Unified QR code

* fix rebase conflicts

* Make lazy payment method mode activate on UI load.

Co-authored-by: Kukks <evilkukka@gmail.com>
Co-authored-by: rockstardev <rockstardev@users.noreply.github.com>
Co-authored-by: Andrew Camilleri <kukks@btcpayserver.org>
2021-04-07 13:08:42 +09:00
Nicolas Dorier
fd53f7476e Fix flaky test (#2392) 2021-03-24 21:33:49 +09:00
nicolas.dorier
c2b85779c3 Rewrite the CanUseHotWallet, check if the derivationscheme is actually a hotwallet, before retrieving the seed 2021-03-11 21:46:32 +09:00
Andrew Camilleri
cdfdad3e3d GreenField API: Wallet API (#2246)
* GreenField: Wallet API

* more work

* wip

* rough fiunish of transaction sending api

* Allow to create tx without broadcasting and small fixes

* Refactor Wallet Receive feature ad add greenfield api for address reserve for wallet

* add wallet api client

* add docs

* fix json converter tags

* fixes and add wallet tests

* fix tests

* fix rebase

* fixes

* just pass the tests already

* ugggh

* small cleanup

* revert int support in numeric string converter and make block id as native number in json

* fix LN endpoint

* try fix flaky test

* Revert "try fix flaky test"

This reverts commit 2e0d256325b892f7741325dcbab01196f74d182a.

* try fix other flaky test

* return proepr error if fee rate could not be fetched

* try fix test again

* reduce fee related logic for wallet api

* try reduce code changes for pr scope

* change auth logic for initial release of wallet api
2021-03-11 21:34:52 +09:00
nicolas.dorier
cc4e46d212 Fix NRE if invoice not found 2021-03-06 13:25:40 +09:00
nicolas.dorier
bd447b6c79 Fix test 2021-03-02 11:50:01 +09:00
Nicolas Dorier
7e714f1ef8 Refactor how we handle and validate LN ConnectionStrings (#2314)
* Refactor how we handle and validate LN ConnectionStrings

* Migrate existing connection string to Internal Node if they are the same. Cleanup some obsolete fields

* Fix typos, remove duplicated method

* Add a InternalNodeRef to LightningSupportedPaymentMethod
2021-03-02 11:11:58 +09:00
Andrew Camilleri
e8df010449 Add redirectAutomatically to GreenField Invoice API (#2321) 2021-03-01 22:34:07 +09:00
Andrew Camilleri
949136b161 GreenField API: Configure Store Lightning Payment Method v2 (#2208)
* GreenField API: Configure Store Lightning Payment Method

* Remove internal ln node endpoint and use Auth service to check internal node usage

* fix test
2021-02-26 11:58:51 +09:00
Kukks
e3e65878aa Allow invoice to be marked even when new
fixes #2019
2021-02-26 11:17:03 +09:00