Commit Graph

366 Commits

Author SHA1 Message Date
nicolas.dorier
59afc05661
Log hosted services exiting 2019-10-19 14:12:43 +09:00
nicolas.dorier
fee106abef
Remove possible NRE when app start 2019-10-19 13:50:52 +09:00
nicolas.dorier
536f98b566
Fix entity framework queries to work in netcoreapp3.0 2019-10-06 15:48:12 +09:00
Kukks
59839a3332 make sure networks are abstracted properly 2019-09-21 16:39:44 +02:00
nicolas.dorier
3dada3c464
Remove SSH warning if no SSH settings set 2019-09-20 15:26:09 +09:00
nicolas.dorier
42dda56eea
Retry SSH connection later if it fails 2019-09-19 16:54:07 +09:00
nicolas.dorier
c247e275f6
Make sure NotificationUrl and RedirectUrl are of type Uri 2019-09-04 18:20:36 +09:00
nicolas.dorier
f17a359893
Fix NotificationUrl and RedirectUrl templating 2019-09-04 18:01:26 +09:00
Andrew Camilleri
d99beb9811 New feature: Apps limited inventory (#961) 2019-09-02 22:37:52 +09:00
nicolas.dorier
cb8c077c1e
better error message for bad ssh config 2019-08-27 23:39:17 +09:00
nicolas.dorier
9688798a4a
Asyncify SSH access, do not show SSH service if ssh is not well configured 2019-08-27 23:30:25 +09:00
Andrew Camilleri
b29b46bbc7 Add policy to allow internal lightning node for non-admins (#975)
Partially related to #204 (but no actual management and accounting of funds in different stores occurs)
2019-08-20 17:38:15 +09:00
nicolas.dorier
3dac7ef3f3
Fix dynamic dns 2019-07-25 23:26:56 +09:00
nicolas.dorier
63472d54d7
Can configure multiple dynamic dns 2019-07-25 18:29:18 +09:00
nicolas.dorier
db57b5ae80
Fix DynDNS renewal 2019-07-25 16:37:39 +09:00
nicolas.dorier
8896d89908
Add Dynamic DNS support 2019-07-24 17:59:30 +09:00
nicolas.dorier
36046f08f7
Use Migration startup task when starting BTCPay instead of hosted service. 2019-07-08 12:12:39 +09:00
Kukks
6cab02cd99 Multiple domains for apps in BTCPay
closes #887
2019-06-25 20:41:32 +02:00
nicolas.dorier
13c03cc0c2
Removing dependency on NetworkProvider from InvoiceWatcher 2019-06-07 13:34:38 +09:00
nicolas.dorier
281280d3ec
Fix crash which can happen during export if someone remove support for a network, inject Network inside paymentdata 2019-06-07 13:31:11 +09:00
nicolas.dorier
bea08e5cfd
Refactor: Remove uneeded dependencies to PaymentMethodHandlerDictionary 2019-06-04 10:17:26 +09:00
nicolas.dorier
ae4b2ab1fd
Fix #875 2019-06-03 16:46:35 +09:00
Andrew Camilleri
81dae7d350 BTCPay Abstractions: Move PaymentMethod specific logic to their handlers (#850) 2019-05-29 23:33:31 +09:00
Andrew Camilleri
d3e3c31b0c Btcpay abstract BTCPayNetwork -- Alternative PR to #865 (#868)
* BitcoinSpecificBtcPayNetwork - abstract BTCPayNetwork

* some type fixes

* fix tests

* simplify fetching handler in invoice controller

* rename network base and bitcoin classes

* abstract serializer to network level

* fix serializer when network not provided

* fix serializer when network not provided

* fix serializer when network not provided

* try fixes for isolating pull request
2019-05-29 18:43:50 +09:00
rockstardev
b300404bc7 Extending invoice monitoring if max confirmation count not reached 2019-05-25 17:20:17 -05:00
Nicolas Dorier
512ee16620
Refactor invoice entity to not have to inject the NetworkProvider (#858) 2019-05-24 22:22:38 +09:00
rockstardev
e6c794d68f Moving update of confirmation count to InvoiceWatcher 2019-05-12 14:56:13 +09:00
nicolas.dorier
e5704abfb3
Fix migration from old version to new version of WalletKeyPathRoots 2019-05-09 00:55:48 +09:00
nicolas.dorier
914eaaaa51
Refactor DerivationStrategy to DerivationSchemeSettings 2019-05-09 00:55:44 +09:00
nicolas.dorier
f93d1173e2
Show tor exposed bitcoin node 2019-05-07 13:58:55 +09:00
rockstardev
13e330fa65 Better UI for selection of app to be displayed on root 2019-04-12 00:13:14 -05:00
rockstardev
827b133534 Allowing for displaying of app directly on website root 2019-04-11 16:30:23 -05:00
nicolas.dorier
5190639b77 Simplify InvoiceWatcher logic and remove unused code 2019-04-08 13:28:13 +09:00
nicolas.dorier
c767a49f2d Increase notitifcation timeout to 1 minute, make sure that BackgroundJobScheduler is correctly cancelling tasks 2019-04-05 14:58:25 +09:00
nicolas.dorier
ea8196b532 Do not use HttpClient singleton for the InvoiceNotifcationManager 2019-04-05 14:31:09 +09:00
nicolas.dorier
767eca97cb Fix tests 2019-03-31 13:31:50 +09:00
nicolas.dorier
e5a26cfca8 Update dependencies 2019-03-31 12:08:08 +09:00
nicolas.dorier
978b7d930e Catch operation cancelled exception on the BackgroundJobScheduler 2019-03-29 18:09:54 +09:00
nicolas.dorier
5d9da82d8e fix build 2019-03-27 18:58:56 +09:00
nicolas.dorier
0bd02a9272 Fix some exceptions raised if port is already used 2019-03-27 18:56:43 +09:00
nicolas.dorier
abbdbda03a Add Bitbank provider 2019-03-20 00:49:44 +09:00
nicolas.dorier
e3a8892d24 Check tor services in the background 2019-03-17 21:07:24 +09:00
Kukks
053c2da9f1 use thememanager instead of view component 2019-03-09 16:29:04 +01:00
nicolas.dorier
051248f2fc Add CancellationToken to GetRatesAsync and propagate it from the controllers to the rate fetcher 2019-03-05 17:09:17 +09:00
nicolas.dorier
1d3f144d21 Support relative path for external services, simplify the code in Services 2019-03-01 13:20:21 +09:00
Kukks
ad25a2ed08 Add payment requests 2019-02-25 17:56:28 +09:00
nicolas.dorier
010c653995 Create EventHostedServiceBase and make AppHubStreamer use this 2019-02-20 12:27:10 +09:00
nicolas.dorier
50c8525012 Moving CrowdfundSettings in its own file 2019-02-19 13:07:10 +09:00
nicolas.dorier
dc46fd225a Migrate old crowdfund deployment to the new tagging system 2019-02-19 12:53:24 +09:00
nicolas.dorier
c071c81403 Pass the whole Entity object to internal InvoiceEvent 2019-02-19 12:08:07 +09:00
nicolas.dorier
b1584c352b Free some memory 2019-02-17 16:13:16 +09:00
nicolas.dorier
38dca425da Fix repetitive IPN for lightning network payments (https://github.com/btcpayserver/btcpayserver/issues/564) 2019-01-30 13:40:08 +09:00
Kukks
cfb4b080d3 Emails on store level 2019-01-22 21:38:39 +09:00
nicolas.dorier
1c2a6bb8a1 Delete unused code 2019-01-16 19:35:29 +09:00
nicolas.dorier
7bcf1cbdd5 Remove references to hangfire 2019-01-16 19:30:03 +09:00
nicolas.dorier
2aaa2544bd Do not send mail synchronously in InvoiceNotificationManager 2019-01-16 19:21:02 +09:00
nicolas.dorier
d85f03ba20 Remove HangFire dependency 2019-01-16 19:15:09 +09:00
Kukks
5076d73695 Enhance Invoice Events 2019-01-06 10:12:45 +01:00
nicolas.dorier
a05cd5678b Add support for removing network fee on first payment 2019-01-05 17:45:49 +09:00
nicolas.dorier
0d06cf63b7 Use enum for invoice status and invoice exception 2018-12-10 21:48:28 +09:00
nicolas.dorier
b5c9a03052 Can mark invoice as complete 2018-12-10 15:34:48 +09:00
nicolas.dorier
9209984a2f Remove useless argument from GetInvoice 2018-12-06 17:05:27 +09:00
nicolas.dorier
2896a9b26f Add ScanUTXOSet support 2018-10-26 23:07:39 +09:00
Rockstar Developer
c2bbc04c4c Various bugfixes (#308)
* NotifyEmail field on Invoice, sending email when triggered

* Styling invoices page

* Exporting Invoices in JSON

* Recoding based on feedback

* Fixing image breaking responsive layout on mobile

* Reducing amount of data sent in email notification

* Turning bundling on by default
2018-10-12 10:09:13 +09:00
nicolas.dorier
f12114f9aa Poll and cache rates in parallel 2018-08-23 00:24:33 +09:00
nicolas.dorier
87d384dba5 Decouple RateProviderFactory with RateFetcher 2018-08-22 16:53:40 +09:00
nicolas.dorier
214b2d1c1c Fix SSH fingerprint checking 2018-08-13 09:43:59 +09:00
nicolas.dorier
322518e9dc Ensure the ssh connection is trusted 2018-08-12 23:23:26 +09:00
nicolas.dorier
6a1eca760a Can configure BTCPay SSH connection at startup 2018-08-12 21:38:45 +09:00
nicolas.dorier
1e582625f3 fix migration bug 2018-08-01 18:50:33 +09:00
nicolas.dorier
83304de1c6 Remove the concept of "Rate multiplier" and replace it with the concept of "Spread" 2018-08-01 18:38:46 +09:00
Andrew Camilleri
f3edaf5160 Merge remote-tracking branch 'btcpayserver/master' into feature/bitpayrates 2018-07-27 05:57:25 +02:00
nicolas.dorier
b0d6216ffc Better timestamp for invoice logs, fix bugs which can happen if invoice get deleted 2018-07-24 12:19:43 +09:00
nicolas.dorier
96721e95a2 Clean unreachable store if user is deleted 2018-07-20 15:24:19 +09:00
nicolas.dorier
8d3b45bdec Delete store if no owner 2018-07-19 21:38:55 +09:00
nicolas.dorier
bbd19a96ec Make sure we don't delete store on Sqlite 2018-07-19 21:32:33 +09:00
nicolas.dorier
ce17e3212a Can delete stores 2018-07-19 19:31:17 +09:00
nicolas.dorier
976d9d0cda Add CSP (Disable it if custom theming) 2018-07-12 17:38:21 +09:00
nicolas.dorier
17e914778d Make sure that lightning payments events are using the state of the invoice when they got issued (#205) 2018-06-21 14:15:36 +09:00
Andrew Camilleri
1879ea55e8 init bitpay rates api 2018-05-21 16:49:37 +02:00
Andrew Camilleri
ee4f83ddba small fixes 2018-05-11 12:21:25 +02:00
Andrew Camilleri
239a011e60 add new properties and change types to decimal 2018-05-11 11:31:21 +02:00
nicolas.dorier
66a68d6180 Rename LockSubscription, remove the link if not available 2018-05-10 16:02:49 +09:00
nicolas.dorier
d41a5a65a2 Update posgres and clightning in tests 2018-05-10 11:56:46 +09:00
nicolas.dorier
cdc0b0d628 Fix crash when creating a token 2018-05-06 19:03:30 +09:00
nicolas.dorier
272ac49872 try to better respect event ordering 2018-05-06 02:06:07 +09:00
nicolas.dorier
7872b3ec55 Add a new invoice event: expiredPaidPartial and fix some corner case for tolerance 2018-05-06 00:40:44 +09:00
Andrew Camilleri
9a92646d4d add test and refactor for PR 2018-05-05 16:07:22 +02:00
Andrew Camilleri
01069ed583 Remove unnecessary branching 2018-05-04 17:50:05 +02:00
Andrew Camilleri
0fc770bbb1 extract logic of accounting to accounting and remove bitpay breaking changes 2018-05-04 17:47:33 +02:00
Andrew Camilleri
c3d73236e0 start work on payment tolerance feature 2018-05-04 16:15:34 +02:00
nicolas.dorier
e57a488371 Refactor the RateProvider 2018-05-03 03:32:42 +09:00
nicolas.dorier
21bbf49640 Rewrite authorization enforcement and simplify the code 2018-04-30 22:00:43 +09:00
nicolas.dorier
9339c7dff2 Make sure btcpay does not wait all the invoces to be cleaned to start 2018-04-30 15:39:47 +09:00
lepipele
042142396d Refactoring code to adhere to naming guidelines 2018-04-26 21:52:04 -05:00
lepipele
fbc4ca89aa Enapsulating Token per code review discussions 2018-04-26 21:44:21 -05:00
lepipele
2e5d29064b Removing CssThemeManager dependency on ServerController
Using newly created BaseAsyncService to listen for database changes of theme setting
2018-04-26 21:39:43 -05:00
lepipele
ef0b8376d3 Abstracting hosted service that has listen loop tasks 2018-04-26 21:39:43 -05:00
nicolas.dorier
a7ad71d492 CoinAverage credentials are now correctly passed 2018-04-23 17:21:50 +09:00
nicolas.dorier
c9e5fe42ba Set default AvailableExchanges inside CoinAverageSettings 2018-04-23 16:12:11 +09:00
nicolas.dorier
56dffbf514 Set default exchange list 2018-04-23 16:09:18 +09:00
nicolas.dorier
e7c06880a8 Use API keys of bitcoinaverage for getting the exchange list 2018-04-23 15:48:18 +09:00
lepipele
0934bebf7b Merge remote-tracking branch 'source/master' into dev-bootstrap 2018-04-19 11:45:30 -05:00
lepipele
97b59be9bf Adding page for Theme settings 2018-04-19 11:39:51 -05:00
lepipele
b87ec4f3d9 Primitive versioning of css files to ensure update on change 2018-04-19 11:15:45 -05:00
nicolas.dorier
10c981b2a0 Update NBXplorer 2018-04-19 16:54:25 +09:00
lepipele
3f85918a0c Merge remote-tracking branch 'source/master' into dev-bootstrap
# Conflicts:
#	BTCPayServer/Controllers/ServerController.cs
#	BTCPayServer/Views/Invoice/Invoice.cshtml
2018-04-18 23:38:10 -05:00
nicolas.dorier
73ed4003a3 Use a drop down for preferred exchange list 2018-04-18 16:38:56 +09:00
nicolas.dorier
5cb8cdd511 Refactoring: Do not query database when asking for Coinaverage rates, periodically get exchange list 2018-04-18 16:38:56 +09:00
lepipele
195b5fdd1a Adding overriding of CreativeStartUri, refactoring PoliciesSettings 2018-04-17 17:24:00 -05:00
nicolas.dorier
0723eec508 Fix rate handling 2018-04-15 21:21:57 +09:00
lepipele
18986faca8 Merge remote-tracking branch 'source/master' into dev-bootstrap
# Conflicts:
#	BTCPayServer/Controllers/ServerController.cs
2018-04-14 11:11:38 -05:00
nicolas.dorier
85efc3b00c fix tests 2018-04-14 23:32:39 +09:00
nicolas.dorier
04c6107196 Can configure rate caching and bitcoinaverage API keys 2018-04-14 22:52:57 +09:00
lepipele
81afe397be CssThemeManager that injects Bootstrap css uri from settings 2018-04-13 16:15:03 -05:00
nicolas.dorier
21215dc537 Make sure a too high expiration do not trigger "The value needs to translate in milliseconds to -1 (signifying an infinite timeout)" 2018-04-07 11:53:33 +09:00
nicolas.dorier
3a0a5dbd7f Accept all success HTTP code for invoice callbacks 2018-03-07 14:22:02 -05:00
nicolas.dorier
339cedadf7 Save a call to nbxplorer.GetStatus, update NBXplorer 2018-03-02 14:03:47 -05:00
nicolas.dorier
2e45c8b190 Isolate PaymentMethodId in its own class, generalise DerivationStrategy 2018-02-19 23:13:23 +09:00
nicolas.dorier
b4f4401cdc remove unused code, remove derivationscheme specific logic from InvoiceEntity 2018-02-19 22:41:47 +09:00
nicolas.dorier
2f3238c65e Use decimal for calculations instead of Money, and round due amount at ceil satoshi 2018-02-19 18:54:21 +09:00
nicolas.dorier
a634593903 Big refactoring renaming cryptoData => PaymentMethod 2018-02-19 15:09:05 +09:00
nicolas.dorier
35f669aa15 Isolating code of on chain specific payment in its own folder 2018-02-19 11:06:08 +09:00
nicolas.dorier
4795bd8108 Add some sanity check, make sure to use CrytpoDataId everywhere 2018-02-19 03:35:19 +09:00
nicolas.dorier
aa4519ac30 Big refactoring for supporting new type of payment 2018-02-19 02:38:03 +09:00
nicolas.dorier
752133b01c fix bug 2018-02-18 20:37:42 +09:00
nicolas.dorier
fe0c21ba08 Make sure that IPN sent for the send invoice are sent one at a time 2018-02-18 16:09:09 +09:00
nicolas.dorier
8e3f7ea68d do not block next invoices if one invoice fail processing 2018-02-18 02:40:53 +09:00
nicolas.dorier
a239104a28 fix uppercase 2018-02-18 02:36:11 +09:00
nicolas.dorier
3bc232e1da Further isolate bitcoin related stuff inside BitcoinLikePaymentData 2018-02-18 02:35:02 +09:00
nicolas.dorier
a1ee09cd85 Further abstract payment data by encapsulating bitcoin related logic into BitcoinLikePaymentData 2018-02-18 02:19:35 +09:00
nicolas.dorier
b898cc030c general code cleanup + add analyzers 2018-02-17 13:18:16 +09:00
nicolas.dorier
9d406923ae make sure the waitingInvoices tasks are done 2018-02-17 01:43:43 +09:00
nicolas.dorier
5de330b1f9 Refactoring to keep coin logic out of InvoiceWatcher 2018-02-17 01:34:40 +09:00
nicolas.dorier
01d898b618 Caching GetCoins 2018-02-15 13:02:12 +09:00
nicolas.dorier
17069c311b Remove transaction cache 2018-02-15 12:42:48 +09:00
nicolas.dorier
ac70a77361 Fix #38 with paidOver + paidLate 2018-01-24 10:37:23 +01:00
nicolas.dorier
59a2432af9 Better invoice loop, fix javascript 2018-01-20 14:09:57 +09:00
nicolas.dorier
7b9541b8e9 Do not crash if some of the altcoins are unavailable 2018-01-19 17:39:15 +09:00
nicolas.dorier
fe25e00c94 Fix https://github.com/btcpayserver/btcpayserver/issues/38 2018-01-19 10:52:44 +09:00
nicolas.dorier
b0e9e10f7e Add extended notifications 2018-01-18 20:56:55 +09:00
nicolas.dorier
39d47e33f6 Fix https://github.com/btcpayserver/btcpayserver/issues/31 2018-01-18 18:53:11 +09:00
nicolas.dorier
4b7b6c6327 debug 2018-01-18 18:33:26 +09:00
nicolas.dorier
5ba322ea6a Add debug messages 2018-01-18 18:12:01 +09:00
nicolas.dorier
b47b4b10cb should fix https://github.com/btcpayserver/btcpayserver/issues/31 2018-01-18 17:21:29 +09:00
nicolas.dorier
26d3178e93 Fix expiration transitioning with a delay 2018-01-18 12:45:39 +09:00
nicolas.dorier
ecb82f2cc9 do not send IPN if not set 2018-01-15 00:22:40 +09:00
nicolas.dorier
f340c6eb7f Add more events to invoice 2018-01-14 22:06:06 +09:00
nicolas.dorier
ba0e080816 Invoices has events recorded 2018-01-14 21:48:23 +09:00
nicolas.dorier
df7bb9e2f8 Add info about nbxplorer synching 2018-01-13 01:05:38 +09:00
nicolas.dorier
b59021a0be Cleanup the design for multi currencies support, use a single nbxplorer instead of two 2018-01-12 11:54:57 +09:00
nicolas.dorier
223558c01d Adding transaction caching 2018-01-11 21:01:00 +09:00
nicolas.dorier
3a91965187 Some refactoring improving performance, and better tests for multiple currencies 2018-01-11 17:29:48 +09:00
nicolas.dorier
55d50af39d BTCWallet is single currency, introduce BTCWalletProvider 2018-01-11 14:36:12 +09:00
nicolas.dorier
cb4468d3b3 Fixing payment in different crypto 2018-01-10 18:30:45 +09:00
nicolas.dorier
7618eacef1 Fix: altcoin payment not detected after another coin payment 2018-01-10 15:43:07 +09:00
nicolas.dorier
c80ffe396e forgot passing cancellation 2018-01-10 02:13:49 +09:00
nicolas.dorier
401a31e5c2 Cleanup code 2018-01-10 02:07:42 +09:00
nicolas.dorier
729555b96f Fix NBxplorerListener disconnecting itself every minute 2018-01-09 16:10:16 +09:00
nicolas.dorier
76d50b018b Calculate rate properly per crypto 2018-01-09 02:57:06 +09:00
nicolas.dorier
31672a2587 Add litecoin to docker-compose fix bugs when two networks generate same address 2018-01-09 01:56:37 +09:00
nicolas.dorier
e3a0122eb3 make sure to not crash whole process if nbxplorer unavailable 2018-01-08 18:18:34 +09:00
nicolas.dorier
6003aa4236 Add polling for connection through websocket 2018-01-08 16:50:56 +09:00
nicolas.dorier
8753dd15de Remove BOM from IPN 2018-01-08 04:18:15 +09:00
nicolas.dorier
6ae6335c6d Fix layout_cshtml 2018-01-08 04:14:35 +09:00
nicolas.dorier
e3a1eed8b3 Use Websocket for blockchain notifications 2018-01-08 02:36:41 +09:00