Commit Graph

511 Commits

Author SHA1 Message Date
Andrew Camilleri
0554565b30
FIDO2/WebAuthN Support (#2356)
* FIDO2/WebAuthN Support

This adds initial support for WebAuthN/FIDO2 as another MFA mode. U2F is still intact and runs alongside it for now. Once this is merged, I will start work on migrating U2F support to happen over the FIDO2 protocol instead.

* Refactor and future proof system (prep work of seamless u2f migration)

* attempt js fix for mobile devices

* Apply suggestions from code review

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

* fix fido name saving

* do not spam logs and hide loader when failed

* PR Changes

* Apply suggestions from code review

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

* attempt fido2 bump

* add name if not named for credentials

Co-authored-by: d11n <mail@dennisreimann.de>
2021-04-20 14:06:32 +09:00
Jonathan Underwood
ee0fa71605
Refactor TorService (#2388)
* TorServices Refactor to make value passing easier

* Allow specifying Tor services through config

Format:

BTCPAY_TORSERVICES: "BTCPAYSERVER:URL.ONION:VIRTUALPORT;BTC-P2P:URL.ONION:VIRTUALPORT;BTC-RPC:URL.ONION:VIRTUALPORT;SOMEOTHERONIONSERVICE:URL.ONION:VIRTUALPORT"

* add tests

* Optimize Tor Services loader and ensure it is loaded as a hosted service

* Remove Task from Tor service loader

* Use options to parse Tor services

* Fix booboo

* Fix test after fixing booboo

* Adding timeout on long running CanEnumeratetorServices test

(cherry picked from commit 274b77e3175960158b803410037e2c7ff31984be)

* Renaming timeout variable to better name

* Only allow one of torrcfile or torservices

Co-authored-by: Kukks <evilkukka@gmail.com>
Co-authored-by: rockstardev <rockstardev@users.noreply.github.com>
2021-04-18 11:26: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
5de93f8cc4
Abstract Store integrations (#2384)
* Decouple Shopify from Store

* Decouple shopify from store blob

* Update BTCPayServer.Tests.csproj

* Make sure shopify obj is set

* make shopify a system plugin
2021-04-08 13:37:05 +09:00
Nicolas Dorier
14e6e492dd
Refactor domain mapping (#2407) 2021-03-30 11:47:03 +09:00
nicolas.dorier
b7b6cef880
Fix ratelimiter for forgotpassword 2021-03-28 20:56:46 +09:00
nicolas.dorier
85ba9e96a0
Rate limit password forgot 2021-03-26 18:01:59 +09:00
nicolas.dorier
1fc114fec7
Check the authentication cookie every 5 min rather than 30min 2021-03-23 17:43:13 +09:00
nicolas.dorier
923a567822
Make cookies secure 2021-03-19 20:54:30 +09:00
nicolas.dorier
779f21a1ca
Make sure cookie are HttpOnly 2021-03-19 20:09:55 +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 2e0d256325.

* 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
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
49ae62b02e
Use library for Payjoin Sender (#2158)
* Use library for Payjoin Sender

* update payjoin sender to use new package and reduce code

* fix using statements
2021-03-01 22:44:53 +09:00
Nicolas Dorier
db0854f203
Update NBitcoin, NetworkType => ChainName, signet support (#2224) 2021-01-27 14:39:38 +09:00
nicolas.dorier
7147dadb2a
Remove dependency to DBriize 2021-01-19 17:19:32 +09:00
Kukks
71a192d0ba Fix SQLite COnnection string setter 2021-01-17 10:02:59 +01:00
Andrew Camilleri
b8da6847b9
Plugins flexibility PR (#2129)
* Plugins flexibility PR

* Makes the BTCPayServerOptions.LoadArgs async to support Plugin hooks and actions
* relax the private set modifiers in the BTCPayNetwork
* Separate IPluginHookService from PluginService to reduce dependencies on DI
* fix some small bugs around image path
* Fix bug with new dbreeze migration where data dir was incorrect

* Update BTCPayServer/Plugins/PluginHookService.cs

Co-authored-by: rockstardev <5191402+rockstardev@users.noreply.github.com>

* Update BTCPayServer/Plugins/PluginHookService.cs

Co-authored-by: rockstardev <5191402+rockstardev@users.noreply.github.com>

Co-authored-by: rockstardev <5191402+rockstardev@users.noreply.github.com>
2021-01-07 14:49:53 +01:00
Andrew Camilleri
58d01738ab
More Options refactoring (#2179)
* More Options refactoring

Continues refactoring config classes to use the propert Options pattern where possible.
DataDirectories and DatabaseOptions are now configured the Options pattern and the BTCPayOptions is now moved alongside the other config setup

* Move COnfigure logic for Options to the Startup
2021-01-06 23:51:13 +09:00
nicolas.dorier
0a6ea59254
Rewrite the condition to show Onion-Location in a more readable way 2021-01-05 13:44:08 +09:00
Kukks
7d21b39534 Do not tell browser to redirect if invoice is loaded as a modal
fixes #2089
2021-01-03 14:29:19 +01:00
Andrew Camilleri
aaf85216eb
Split Options in BTCPayOptions (#2175)
* Split Options in BTCPayOptions

* fix spacing
2021-01-02 13:44:28 +01:00
rockstardev
2c87100ffb Restoring tracking of selected objects so updates work as expected 2021-01-01 02:01:33 -06:00
Andrew Camilleri
ae32fdeea7
Introduce Additional Data to Store Blob and move obsolete props to migration (#2065)
* Introduce Additional Data to Store Blob and move obsolete props to migration

* Fixes and tests

* Small adjustements to prevent tracking too many objects

Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
2020-12-29 17:58:35 +09:00
Nicolas Dorier
623347bc48
Add Label and accountKeyPath to the on chain payment methods (#2166) 2020-12-28 13:59:01 +01:00
Andrew Camilleri
39b5462809
Remove only dependency on Dbriize (TextSearch in new invoice column) (#2029)
* Remove only dependency on Dbriize (TextSearch in new invoice column)

* Switch to table for invoice text search

* Adding missing using after rebase

* Removing database migration in preparation for refresh

* Database Migration: Adding InvoiceSearchData

* Refactoring InvoicesRepository to make AddToTextSearch static and non-async

Operation as async is too expensive for simple filtering and AddRange

* Renaming InvoiceQuery property to Take

More inline with what property does by convention, Take is used in conjuction with Skip

* Refactoring SettingsRepository so update of settings can happen in another context

* Adding DbMigrationsHostedService that performs long running data migrations

* Commenting special placing of MigrationStartupTask

* Simplifying code and leaving comment on expected flow

* Resolving problems after merge

* Database Migration: Refreshing database migration, ensuring no unintended changes on ModelSnapshot

Co-authored-by: rockstardev <rockstardev@users.noreply.github.com>
Co-authored-by: Nicolas Dorier <nicolas.dorier@gmail.com>
2020-12-28 19:10:53 +09:00
Nicolas Dorier
a6ee64ea63
Remove DB and Directory settings out of the BTCPayServerOptions (#2168) 2020-12-27 22:06:00 +09:00
Kukks
f1d6f0b2a6 Fix sync not showing
fixes #2092
2020-12-02 07:19:48 +01:00
Nicolas Dorier
d8f145c4dc
Merge branch 'master' into plugins-db 2020-11-19 12:19:17 +09:00
Nicolas Dorier
9c5fd1b478
Merge pull request #2058 from NicolasDorier/webhook2
Add Webhooks in store's settings
2020-11-19 12:17:34 +09:00
Kukks
179520a211 Plugins: Allow creation of independent DbContexts
This allows plugins to create custom dbcontexts, which would be namespaced in the scheme with a prefix. Migrations are supported too and the table would be prefixed too
2020-11-18 12:27:26 +01:00
Kukks
931505d135 Plugins: Hook System
Almost an exact replica of https://developer.wordpress.org/plugins/hooks/
This will allow plugins to extend specific points in business logic, such as validation, invoice payload changes, etc
2020-11-15 14:39:21 +01:00
nicolas.dorier
f3611ac693
Add Webhooks in store's settings 2020-11-08 15:57:24 +09:00
nicolas.dorier
c967f91abb
Move some code out of InvoiceNotificationManager into InvoiceEventSaverService 2020-11-06 22:24:02 +09:00
Andrew Camilleri
5979fe5eef
BTCPay Extensions Part 2 (#2001)
* BTCPay Extensions Part 2

This PR cleans up the extension system a bit in that:
 * It renames the test extension to a more uniform name
 * Allows yo uto have system extensions, which are extensions but bundled by default with the release (and cannot be removed)
 * Adds a tool to help you generate an extension package from a csproj
 * Refactors the UI extension points to a view component
 * Moves some more interfaces to the Abstractions csproj

* Rename to plugins
2020-10-21 14:02:20 +02:00
Andrew Camilleri
71894ba245
Override Block Explorer Links (#2000)
* Override Block Explorer Links

closes #1953

* load overrides after save as well

* fix js
2020-10-21 09:53:05 +02:00
Andrew Camilleri
2b19e0fbc6
Remove SQLite as default option (#1987)
* Remove SQLite as default option

IF MERGED, STORES WITH NO DB CONFIG WILL NOT START UNTIL CONFIG IS UPDATED WITH `sqlitefile=sqlite.db`

* remove sqlite conn string option

* toggle between abs path or relative for sqlite db

* Update DefaultConfiguration.cs
2020-10-20 13:12:10 +02:00
Andrew Camilleri
1440e8c55d
BTCPay Server Extensions (#1925)
* BTCPay Server Extensions

![demo](https://i.imgur.com/2S00aL2.gif)

* cleanup

* fix

* Polish UI a bit,detect when docker deployment
2020-10-15 21:28:09 +09:00
Kukks
be3f248a5a Do not log the database connection string
fixes #1980
2020-10-14 09:06:50 +02:00
Andrew Camilleri
5131d8d328
Fix onion location not always working (#1947)
closes #1881
2020-10-07 10:21:18 +02:00
Kukks
42df6d58b1 Simplify Shopify integration
Added dedicated endpoint that generates an invoice or returns an existing one as needed for a shopify order
Added rate limiter to shopify endpoint to prevent abuse
Reduce shopify js to a small file
Use events from btcpay modal to reduce constant pinging to btcpay server
Register invoice payment failures on the shopify backend.
2020-09-24 16:25:35 +02:00
Kukks
0cf9b20328 Kukks Shopify Enhancement Suite Commit 2020-09-24 16:25:35 +02:00
rockstardev
7a04be0f30 Registering ShopifyOrderMarkerHostedService 2020-09-24 16:25:33 +02:00
Nicolas Dorier
25dd38af5c
Merge pull request #1730 from xpayserver/feat/eth
Add Ethereum & ERC20 Support
2020-09-15 19:51:55 +09:00
Kukks
50a9772388 Remove Changelly 2020-09-10 10:30:53 +02:00
XPayServer
de755ac0bb Add Ethereum & ERC20 Support
Add Tests
Add Index, XPub to payment data
Add Note on local ETH node
Fix Sync Summary and Race Condition
2020-09-09 08:19:10 +02:00
Kukks
d96bd15b3b
add status and refactor 2020-08-26 21:36:30 +09:00
Kukks
68686cd249 Add debug notifications
This adds a test notif only available in debug mode + endpoint `/Notifications/GenerateJunk` that generates x amount of notifications.
2020-08-19 13:31:28 +02:00
nicolas.dorier
5c9d0fd40a
Use razor component to encapsulate UI logic 2020-08-12 16:48:14 +09:00
rockstardev
1b3e40fd70 Fixing typo 2020-08-03 03:17:04 -05:00
rockstardev
ea7231ff26 Adding hosted service that will optionally check for new version once a day 2020-08-03 03:17:04 -05:00
nicolas.dorier
7974633bba
Fix EmbeddedCSS being ignored, stripped by sanitizer 2020-07-30 11:36:33 +09:00
nicolas.dorier
02998fff49
Add Altcoins-Release and Altcoins-Debug configurations 2020-07-29 18:55:28 +09:00
XPayServer
92ae1109d0 Add Bitcoin Only Build 2020-07-28 22:48:51 +02:00
rockstardev
f88c02cccd Removing unused usings, readonly fields where possible 2020-06-28 22:07:48 -05:00
rockstardev
b6c7af32de Cleaning up bom from cs files 2020-06-28 21:44:35 -05:00
nicolas.dorier
d3325f17c5
Add missing file 2020-06-28 18:00:51 +09:00
nicolas.dorier
51514252b6
Run dotnet format 2020-06-28 17:55:27 +09:00
nicolas.dorier
376b5fc160
Fix warning message when using SQLite (Fix #1695) 2020-06-27 15:35:32 +09:00
Nicolas Dorier
8230a408ac
Add pull payment feature (#1639) 2020-06-24 10:34:09 +09:00
Andrew Camilleri
12e2b93ac9
Add invoice notifications (#1674)
* Add invoice notifications

* fixeth le order

* comment-to-code auto commit

* reduce notifications
2020-06-22 16:32:51 +09:00
nicolas.dorier
cff5b82b06
Introduce INotificationHandler 2020-06-16 23:29:25 +09:00
rockstardev
741b93dc04 Removing obsolete NotificationDbSaver hosted service 2020-06-15 01:22:09 -05:00
rockstardev
0dab96f0a6 Moving Notification to dedicated Service namespace 2020-06-14 23:49:08 -05:00
rockstardev
0c170fc399 Caching of notifications, refactoring NotificationManager into singleton 2020-06-14 23:49:08 -05:00
rockstardev
d1383d78c5 Disconnecting NotificationBase from Event, introducing NotificationSender 2020-06-14 23:49:08 -05:00
rockstardev
654bb0c8ca Displaying number of unread messages in _Layout.cshtml 2020-06-14 23:49:08 -05:00
rockstardev
6ddb20d022 Foundation for events to propagate notifications 2020-06-14 23:49:08 -05:00
Dennis Reimann
67758609a7
Add Onion-Location HTTP header
Closes #1626.
2020-06-04 08:53:55 +02:00
Kukks
587f244f1d Remove dependency on Common from Rating
replaces #1591 and #1592 , closes #1571 Replaces the Currencies.txt to a json format which includes the networks too ( there is also a test to check now) Also makes CurrencyPair not depend on network and instead use CurrencyNameTable
2020-05-31 20:54:50 +02:00
Andrew Camilleri
5b3b96b372
GreenField: Payment Requests CRUD (#1430)
* GreenField: Payment Requests CRUD

* fixes

* fix swagger

* fix swag

* rebase fixes

* Add new permissions for payment requests

* Adapt PR to archive

* fix tst

* add to contains policxy

* make decimals returned as string due to avoid shitty language parsing issues

* do not register decimal json converter as global

* fix cultureinfo for json covnerter

* pr changes

* add json convertet test

* fix json test

* fix rebase
2020-05-20 02:59:23 +09:00
Andrew Camilleri
3a2970a495
Label Factory (#1516)
* Label Factory

* fix typo and format
2020-04-28 16:53:34 +09:00
Andrew Camilleri
b31fb1a269
Auto label utxos based on invoice and payjoin (#1499)
* Auto label utxos based on invoice and payjoin

This PR introduces automatic labelling to transactions.
* If it is an incoming tx to an invoice, it will tag it as such.
* If it was a payjoin tx , it will tag it as such.
* If a transaction's inputs were exposed to a payjoin sender, we tag it as such.

* wip

* wip

* support in coinselection

* remove ugly hack

* support wallet transactions page

* remove messy loop

* better label template helpers

* add tests and susbcribe to event

* simplify data

* fix test

* fix label  + color

* fix remove label

* renove useless call

* add toString

* fix potential crash by txid

* trim json keyword in manual label

* format file
2020-04-28 15:06:28 +09:00
Dennis Reimann
8420c74b31
Improve static asset caching
Cache static assets for one year and set the correct cache control header. Adds the cache busting version based on file content to asset references to invalidate the cache on change. ([further details on the approach](https://andrewlock.net/adding-cache-control-headers-to-static-files-in-asp-net-core/) and [why one year](https://ashton.codes/set-cache-control-max-age-1-year/))

Most of the changes are the additions of the `asp-append-version="true"` attribute, the main configuration change is in `Startup.cs`.
2020-04-18 17:56:05 +02:00
Nicolas Dorier
cc80e4636f
Remove runtime compile on tests (#1453) 2020-04-09 23:19:45 +09:00
nicolas.dorier
6927d81175
Implement Http Tor proxy as a internal http proxy 2020-04-09 17:38:55 +09:00
Andrew Camilleri
e183714475
Add Tor Http Client Factory (#1445)
* WIP: Add Tor Http Client Factory

This PR adds a Tor Http Client Factory so that we can do HTTP requests over socks5( which we usually use tor's socks5).
Using it for payjoin when possible.

Currently have an issue where a 503 is always returned.  Must be something wrong with my tor config or the socks proxy lib Im using

* fix

* remove external dependency

* make payjoin client use tor client if available

* fix docker test

* use tor client only if available and necessary

* remove bip 79 mention
2020-04-08 22:40:41 +09:00
Kukks
e4cb1a875b Remove tor client factory 2020-03-27 10:45:13 +01:00
Kukks
1a62ee9260 try fix tor socks5 connection 2020-03-27 10:45:12 +01:00
Kukks
56d5e6f99f fixes 2020-03-27 10:45:12 +01:00
Kukks
89da4184ff BIP79 Support 2020-03-27 10:45:12 +01:00
nicolas.dorier
ac14f199e4
Renaming GreenField classes 2020-03-27 12:55:21 +09:00
nicolas.dorier
e50e3f662d
Can create user without authentication if there is no admin 2020-03-18 23:10:15 +09:00
nicolas.dorier
e351e0c9ea
Remove dependency on NSwag 2020-03-18 20:08:09 +09:00
Kukks
e99767c7e2 Greenfield API: Create User
Slightly big PR because I started refactoring to reduce code duplication between the UI based business logic and the api one.
2020-03-17 08:21:27 +01:00
Kukks
70b172addc Make api docs only available after login 2020-03-11 18:05:40 +01:00
Kukks
023e64704d Add Swagger and Redoc
Blocked by #1262
2020-02-24 19:04:04 +01:00
Andrew Camilleri
276a9a95f9
Remove OpenIddict (#1244) 2020-02-25 00:40:04 +09:00
Andrew Camilleri
fa51180dfa
Api keys with openiddict (#1262)
* Remove OpenIddict

* Add API Key system

* Revert removing OpenIddict

* fix rebase

* fix tests

* pr changes

* fix tests

* fix apikey test

* pr change

* fix db

* add migration attrs

* fix migration error

* PR Changes

* Fix sqlite migration

* change api key to use Authorization Header

* add supportAddForeignKey

* use tempdata status message

* fix add api key css

* remove redirect url + app identifier feature :(
2020-02-24 22:36:15 +09:00
Andrew Camilleri
d31bff7070
BPU Prep Work Part2 (#1340)
* BPU Prep Work Part2

* Adjust tests to use the hot wallet when registering deriv scheme
* Add amount to payment data view for onchain payments
* Make zone limits higher when in dev mode (for tests in next PR)
* Make IPaymentMethodDetails serialize/deserialize through payment type using the network
* Allow named settings through settings repo
* Refactor some extensions for next PR

* pr changes

* use json convert for now
2020-02-19 17:35:23 +09:00
rockstardev
82393eb8bb Fixing api exception handling in the pipeline 2020-02-03 02:18:36 -06:00
rockstardev
fe2eca4fda Adding prettier error handling page in the pipeline 2020-02-01 01:40:50 -06:00
nicolas.dorier
e00136de93
Fix spurious DefaultAntiforgery errors 2020-01-26 15:02:40 +09:00
Andrew Camilleri
025da0261d new feature: Wallet Receive Page (#1065)
* new feature: Wallet Receive Page

closes #965

* Conserve addresses by waiting till address is spent before generating each run

* fix tests

* Filter by cryptocode before matching outpoint

* fix build

* fix edge case issue

* use address in keypathinfo directly

* rebase fixes

* rebase fixes

* remove duplicate code

* fix messy condition

* fixes

* fix e2e

* fix
2020-01-18 14:12:27 +09:00
nicolas.dorier
7a0991d6b1
Remove CoinAverage integration (2) 2020-01-17 14:30:51 +09:00
nicolas.dorier
5aefb585e9
Fix Serilog logging too much 2020-01-16 14:00:31 +09:00
nicolas.dorier
60e0f775ed
Remove useless dependencies 2020-01-12 16:05:01 +09:00
nicolas.dorier
629dfcf152
Cleanup netcore21 specific code 2020-01-12 13:30:54 +09:00
nicolas.dorier
21f715bfc6
Add runtime razor compilation during debug 2020-01-11 13:12:41 +09:00
nicolas.dorier
a816e37621
Update libs 2020-01-11 13:12:24 +09:00
nicolas.dorier
84fe14a1ed
Test LND Seed Backup service and Logs. Use the Confirm View instead of poppup 2019-11-16 14:06:37 +09:00
Umar Bolatov
0a9290a980
Make recommended fee confirmation target configurable
Address #1110
2019-11-06 16:21:33 -08:00
nicolas.dorier
eac4c91820
Move Bitpay authentication class in BTCPayServer.Security 2019-10-19 00:54:20 +09:00
nicolas.dorier
da2e8665a1
Remove unused scope, assert policy on store listing 2019-10-18 23:42:06 +09:00
nicolas.dorier
c5ba063edf
Move OpenId folder 2019-10-18 21:36:32 +09:00
nicolas.dorier
3c9b58916b
Update to OpenIddict3.0 2019-10-18 19:02:23 +09:00
nicolas.dorier
281a2461ad
Refactor authorizations 2019-10-14 00:24:41 +09:00
nicolas.dorier
fda6a1a77b
Use ClaimTransformer instead of Authentication's JWT 2019-10-10 19:46:29 +09:00
nicolas.dorier
40b191ef49
Skip HeadersOverrideMiddleware if on onion 2019-10-10 14:10:01 +09:00
nicolas.dorier
ca17efbc29
Add missing file 2019-10-10 09:49:03 +09:00
nicolas.dorier
5025e0dd4d
Allow xforwardedproto to be override via configuration 2019-10-09 22:26:54 +09:00
nicolas.dorier
0cc2fa962d
Prepare Startup.cs for netcoreapp30 2019-10-07 13:03:50 +09:00
nicolas.dorier
8ba1303968
Move BitpayMiddleware up the stack 2019-10-07 12:43:17 +09:00
nicolas.dorier
3bdc7c102a
Fix Startup in netcoreapp3.0 2019-10-06 16:00:38 +09:00
nicolas.dorier
f9714f0be0
Fix build 2019-10-06 15:54:19 +09:00
nicolas.dorier
536f98b566
Fix entity framework queries to work in netcoreapp3.0 2019-10-06 15:48:12 +09:00
nicolas.dorier
724a5b5460
Prepare code to move to netcoreapp3.0 2019-10-04 17:17:11 +09:00
nicolas.dorier
c9ec0f9d3c
Prepare startup.cs for netcoreapp3.0 2019-10-03 18:46:09 +09:00
nicolas.dorier
e75edac3c1
Make .netcoreapp 3.0 build happy 2019-10-03 18:00:07 +09:00
nicolas.dorier
aaa05eb5ec
Fix build 2019-10-03 17:37:10 +09:00
nicolas.dorier
8d0d80e086
Fix build 2019-10-03 17:14:07 +09:00
nicolas.dorier
4d84343a80
Prepare BTCPayServer for .netcore 3.0 2019-10-03 17:06:49 +09:00
rockstardev
56e85b68d9 Csproj cleanup, reorganizing namespaces, fixing tests 2019-10-02 22:41:53 -05:00
rockstardev
7282199c31 Cleanup U2F namespace to correspond to folder path 2019-10-02 12:32:41 -05:00
nicolas.dorier
639f5d2fc4
Make sure calling monero related controllers can't be done if the shitcoin is not supported 2019-10-01 15:30:27 +09:00
nicolas.dorier
8c8ef9d3ca
Rename shitcoins to altcoins 2019-09-30 20:43:15 +09:00
nicolas.dorier
3a0328d0be
Moving shitcoin code in shitcoin folder 2019-09-30 17:51:47 +09:00
Andrew Camilleri
d66b111121 xmr (#1044) 2019-09-30 17:32:43 +09:00
Andrew Camilleri
3366c86b16 Authorize granular permissions (#1057)
* granular scope permissions for api

* final fixes and styling

* prettify code

* fix missing policy
2019-09-29 16:23:31 +09:00
nicolas.dorier
91b1a5e3e5
Remove MySQL from tests (never run) 2019-09-06 15:16:24 +09:00
Andrew Camilleri
d99beb9811 New feature: Apps limited inventory (#961) 2019-09-02 22:37:52 +09:00
nicolas.dorier
f257f9f91d
[Refactor] Move SQL classes in their own assembly 2019-08-30 18:22:13 +09:00
Andrew Camilleri
c5227d9996 Request consent from user before giving application access to the user's data & services. 2019-08-29 16:25:16 +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
Nicolas Dorier
be5597085b
Use Safe.Raw and Safe.Json instead of Html.Raw and the JsonHelper, move sanitization at the View level (#960) 2019-08-10 14:05:11 +09:00
nicolas.dorier
d79fda166f
Can attach labels and comment to transaction in the wallet 2019-08-03 00:43:19 +09:00
nicolas.dorier
8896d89908
Add Dynamic DNS support 2019-07-24 17:59:30 +09:00
nicolas.dorier
56976898bd
Fix error 414 2019-07-12 12:23:13 +09:00
nicolas.dorier
8f719d3e33
Solve error 414 when PSBT are too big 2019-07-12 11:47:13 +09:00
nicolas.dorier
36046f08f7
Use Migration startup task when starting BTCPay instead of hosted service. 2019-07-08 12:12:39 +09:00
Andrew Camilleri
4055eda757 Part3: OpenIddict: Add Flows Event Handlers (#568)
* Part 1 & Part 2 squashed commits

pr changes


pr fixes


remove config for openid -- no need for it for now


Part 1: OpenIddict - Minor Changes & Config prep


Part2: Openiddict: Init OpenIddict & Database Migration & Auth Policies


pr changes


fix merge 


fix compile


fix compile #2


Part 1: OpenIddict - Minor Changes & Config prep


add missing nuget


Part2: Openiddict: Init OpenIddict & Database Migration & Auth Policies

* Part3: OpenIddict: Add Flows Event Handlers

* pr changes

* fix merge

* fix rebase

* fix imports

* cleanup

* do not allow u2f enabled accounts to log in

* start better tests for flows

* add tests

* fixes

* reintroduce dynamic policy as policies on jwt do not work without it

* reduce logs

* fix incorrect endpoint definitions

* Add implicit flow e2e test

* add code flow and refresh flow

* do not allow jwt bearer auth for all requests( only those under /api)

* remove commentedt code

* make sure authorize attr is marked with scheme

* remove dynamic policy and set claims in jwt handler

* cleanup

* change serversettings policy to not need a claim

* Add test to checkadmin verification

* revert server setting claim removal

* fix test

* switch back to claim

* unit test fixes

* try fix build with weird references to csprojes

* start fixing rebase

* remove https requirement to handle tor

* reformat tests correctly

* fix csproj

* fix ut formatting

* PR Changes

* do not show selenium browser
2019-07-01 12:39:25 +09:00
nicolas.dorier
ecae976993
Make sure we don't timeout on NBX 2019-06-18 13:37:24 +09:00
nicolas.dorier
bea08e5cfd
Refactor: Remove uneeded dependencies to PaymentMethodHandlerDictionary 2019-06-04 10:17:26 +09:00
Andrew Camilleri
916323bb3b [WIP] Further abstractions to Payment Handlers (#867)
* mark items to abstract


wip


wip


wip


wip


wip


wip


wip


cleanup


parse other types


compile and fix tests


fix bug 


fix warnings


fix rebase error


reduce payment method handler passings


more cleanup


switch tests to Fast mode 


fix obsolete warning


remove argument requirement 


rebase fixes


remove overcomplicated code


better parsing


remove dependency on environement


remove async

* fixes and simplification

* simplify

* clean up even more

* replace nuglify dependency

* remove extra space

* Fix tests

* fix booboo

* missing setter

* change url resolver

* reduce payment method handlers

* wrap payment method handlers in a custom type

* fix tests

* make invoice controller UI selectlist population cleaner

* make store controller use payment handler dictionary

* fix ln flag

* fix store controller test

* remove null checks on payment handlers

* remove unused imports

* 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

* Abstract more payment type specific logic to handlers

* fix merge issue

* small fixes

* make use of repository instead of direct context usage

* reduce redundant code

* sanity check

* test fixes
2019-05-30 16:02:52 +09:00
Andrew Camilleri
81dae7d350 BTCPay Abstractions: Move PaymentMethod specific logic to their handlers (#850) 2019-05-29 23:33:31 +09:00
Nicolas Dorier
512ee16620
Refactor invoice entity to not have to inject the NetworkProvider (#858) 2019-05-24 22:22:38 +09:00
Andrew Camilleri
ef9c2e8af1 Part2: Openiddict: Init OpenIddict & Database Migration & Auth Policies (#567)
* Part 1: OpenIddict - Minor Changes & Config prep

* Part 1: OpenIddict - Minor Changes & Config prep

* Part2: Openiddict: Init OpenIddict & Database Migration & Auth Policies

* pr changes

* pr changes

* fix merge

* pr fixes

* remove config for openid -- no need for it for now

* fix compile

* fix compile #2

* remove extra ns using

* Update Startup.cs

* compile

* adjust settings a bit

* remove duplicate

* remove external login provider placeholder html

* remove unused directives

* regenerate db snapshot model

* Remove dynamic policy
2019-05-24 15:17:02 +09:00
Andrew Camilleri
9bee48c601 small cleanup (#851) 2019-05-24 15:11:38 +09:00
Andrew Camilleri
cf436e11ae Part 1: OpenIddict - Minor Changes & Config prep (#566)
* Part 1: OpenIddict - Minor Changes & Config prep

* add missing nuget

* pr changes

* pr fixes

* remove config for openid -- no need for it for now

* remove unused extension

* Add tests

* use pay tester http client

* check redirecturl in tests
2019-05-15 00:46:43 +09:00
nicolas.dorier
914eaaaa51
Refactor DerivationStrategy to DerivationSchemeSettings 2019-05-09 00:55:44 +09:00
nicolas.dorier
7fadb4c5ad Remove some annoying warnings 2019-05-02 21:38:39 +09:00
Andrew Camilleri
19a990b095 Add U2f Login Support (#787)
* init u2f

* ux fixes

* Cleanup Manage Controller

* final changes

* remove logs

* remove console log

* fix text for u2f

* Use Is Secure instead of IsHttps

* add some basic u2f tests

* move loaders to before title

* missing commit

* refactor after nicolas wtf moment
2019-05-02 21:01:08 +09:00
Andrew Camilleri
b184360eb7 Abstracted cloud storage - Amazon/Google/Azure/Local (#708)
* wip

* add in storage system

* ui fixes

* fix settings ui

* Add Files Crud UI

* add titles

* link files to users

* add migration

* set blob to public

* remove base 64 read code

* fix file query model init

* move view model to own file

* fix local root path

* use datadir for local storage

* move to services

* add direct file url

* try fix tests

* remove magic string

* remove other magic strings

* show error message on unsupported provider

* fix asp net version

* redirect to storage settings if provider is not supported

* start writing tests

* fix tests

* fix test again

* add some more to the tests

* more tests

* try making local provider work on tests

* fix formfile

* fix small issue with returning deleted file

* check if returned data is null for deleted file

* validate azure Container name

* more state fixes

* change azure test trait

* add tmp file url generator

* fix tests

* small clean

* disable amazon and  google


comment out unused code for now


comment out google/amazon
2019-04-22 16:41:20 +09:00
Kukks
96d28f00cc Make invoice list search term persistent for session 2019-04-13 14:00:48 +02:00
rockstardev
827b133534 Allowing for displaying of app directly on website root 2019-04-11 16:30:23 -05:00
nicolas.dorier
60cd864226 Inject HttpClient inside lightning client instances 2019-04-11 01:10:46 +09:00
nicolas.dorier
e79334a6f6 Fix: if anyone can create invoice and /invoices has storeId parameters, then it should be allowed 2019-03-25 12:59:42 +09:00
rockstardev
0578a692db Updating bundler to new version that will also support .NET Core 2.2 2019-03-23 19:10:16 -05:00
nicolas.dorier
f74f06338a Update bundle minifier, trying to fix (#710 with bundle on) 2019-03-23 23:24:29 +09:00
nicolas.dorier
014d08f38a Add socks support on BTCPay Server to query onion endpoints 2019-03-18 00:03:02 +09:00
nicolas.dorier
e3a8892d24 Check tor services in the background 2019-03-17 21:07:24 +09:00
nicolas.dorier
4769b1d452 Show tor services inside hidden directories in Server Settings/Services 2019-03-17 13:01:47 +09:00
Kukks
6746a5cbd5 add meta for noindex,nofollow if policy set 2019-03-09 14:55:37 +01:00
Kukks
8b6c4a9383 simplifed robots generator 2019-03-09 14:23:55 +01:00
Kukks
344755cbd0 Add policy to discourage search engines + build robots.txt dynamcally
closes #390
2019-03-09 14:13:10 +01:00
nicolas.dorier
75974037bc Fix SignalR paths if RootPath is used 2019-03-09 16:08:31 +09:00
nicolas.dorier
5399ff2751 Fix forwarding options 2019-03-04 22:34:14 +09:00
nicolas.dorier
bcea6027e9 Replace Forwarded Headers via ASP.NET Core middleware 2019-03-04 20:48:19 +09:00
nicolas.dorier
2317e3d50c Make sure we rewrite the request scheme 2019-02-27 18:52:11 +09:00
nicolas.dorier
7f592639c5 Remove URI rewritting and ExternalUri stuff 2019-02-27 18:38:11 +09:00
Kukks
f5d366cf7f Fix final bugs 2019-02-25 17:56:29 +09:00
Kukks
ad25a2ed08 Add payment requests 2019-02-25 17:56:28 +09:00
nicolas.dorier
cc444811db Rename CrowdfundHubStream to AppHubSteamer 2019-02-19 13:18:30 +09:00
nicolas.dorier
aedad497e8 Rename AppsHelper to AppService 2019-02-19 13:04:58 +09:00
nicolas.dorier
6226de7cff Refactor Crowdfund to use the tagging system 2019-02-19 12:48:48 +09:00
nicolas.dorier
7e0f9f6e0d Inject HtmlSanitizer in AddBTCPayServer, remove AppHelpers deps when possible 2019-02-17 18:47:25 +09:00
nicolas.dorier
0eee8e7464 Returns Access-Control-Allow-Origin * on all Bitpay GET and post requests. 2019-02-02 16:12:51 +09:00
nicolas.dorier
3725a5b644 Correctly set Access-Control-Allow-Headers 2019-02-02 15:51:38 +09:00
nicolas.dorier
c84c0ac64d set CORS headers 2019-02-02 15:22:00 +09:00
nicolas.dorier
098e07988c Bypass MVC for replying to CORS requests if Bitpay API 2019-02-02 15:19:22 +09:00
nicolas.dorier
66bb702aca Fix CORS for bitpay API again 2019-02-02 13:58:32 +09:00
nicolas.dorier
264914588f fix bitpay API not having CORS 2019-01-30 14:57:10 +09:00
nicolas.dorier
05df43b426 fix bitpay API not having CORS 2019-01-30 14:36:26 +09:00
nicolas.dorier
4f4d05b8cd Make sure CORS is enabled on Bitpay's API 2019-01-29 18:20:53 +09:00
Kukks
cfb4b080d3 Emails on store level 2019-01-22 21:38:39 +09:00
nicolas.dorier
d85f03ba20 Remove HangFire dependency 2019-01-16 19:15:09 +09:00
nicolas.dorier
c9d778c94b Bump nbitcoin and nbxplorer 2019-01-16 15:16:41 +09:00
Kukks
f2630df387 dispose streamer properly 2019-01-14 08:21:27 +01:00
Kukks
a7a11a4f13 Merge remote-tracking branch 'btcpayserver/master' into feature/crowdfund 2019-01-09 12:22:42 +01:00
britttttk
c93f217033 Fix minimum registration password length 2019-01-08 18:32:07 -07:00
Kukks
3e48a54ab5 Merge remote-tracking branch 'btcpayserver/master' into feature/crowdfund 2019-01-07 14:25:41 +01:00
Kukks
12c418d84d Add Node Info Page 2019-01-07 09:52:27 +01:00
Kukks
8bcf7109a3 integrate invoice popup 2018-12-28 12:07:15 +01:00
Kukks
ef9a633aa4 fixes for hub 2018-12-27 20:55:46 +01:00
Kukks
d1ff34d16d add minimal crowdfund system and UI 2018-12-22 15:02:16 +01:00
nicolas.dorier
0d51c99717 Properly configure the logger to log what happen in ConfigureServices, add https profile adapted for debugging ledger wallet. 2018-11-01 12:52:32 +09:00
Aaron Clauson
24623c59d7 Adjusted mechanism for setting https binding configuration option (#372)
* Adjusted mechanism for setting https binding configuration option.

* Modified the https binding logic to use default bind and port options.

* Removed dedicated https certification config properties and instead used direct access via setting name.
2018-11-01 12:07:28 +09:00
nicolas.dorier
63014231ab Revert "Added configuration options for BtcPayServer https binding. (#360)"
This reverts commit 3ac37497ab.
2018-10-30 00:25:05 +09:00
Aaron Clauson
3ac37497ab Added configuration options for BtcPayServer https binding. (#360) 2018-10-30 00:11:02 +09:00
nicolas.dorier
0cbe36c048 Run reliable tests, remove the docker build 2018-10-28 21:19:18 +09:00
Aaron Clauson
ce94c05fd3 MySQL Support (#345)
* MySQL EF support added using Pomelo MySQL provider.

* MySQL EF support added using Pomelo MySQL provider.
2018-10-27 23:15:21 +09:00
Andrew Camilleri
4b976c13c1 Changelly v2 (#343)
* Disable shapeshift and use changelly

* UI to manage changelly payment method

* wip on changelly api

* Add in Vue component for changelly and remove target currency from payment method

* add changelly merhcant id

* Small fixes to get Conversion to load

* wip fixing the component

* fix merge conflict

* fixes to UI

* remove debug, fix fee calc and move changelly to own partials

* Update ChangellyController.cs

* move original vue setup back to checkout

* Update core.js

* Extracting Changelly component to js file

* Proposal for loading spinner

* remove zone

* imrpove changelly ui

* add in changelly config checks

* try new method to calculate amount + remove to currency from list

* abstract changelly lofgic to provider and reduce dependency on js component

* Add UTs for Changelly

* refactor changelly backend

* fix failing UT

* add shitcoin tax

* pr changes

* pr changes

* WIP: getting rid of changelly dependency

* client caching, compiling code, cleaner code

* Cleaner changelly

* fiat!

* updat i18n, css and error styler

* default keys

* pr changes part 1

* part2

* fix tests

* fix loader alignment and retry button responsiveness

* final pr change
2018-10-24 14:52:19 +09:00
nicolas.dorier
f419c56a3c Revert "Changelly Support (#267)"
This reverts commit a5fca7a1c4.
2018-10-18 12:27:46 +09:00
Andrew Camilleri
a5fca7a1c4 Changelly Support (#267)
* Disable shapeshift and use changelly

* UI to manage changelly payment method

* wip on changelly api

* Add in Vue component for changelly and remove target currency from payment method

* add changelly merhcant id

* Small fixes to get Conversion to load

* wip fixing the component

* fix merge conflict

* fixes to UI

* remove debug, fix fee calc and move changelly to own partials

* Update ChangellyController.cs

* move original vue setup back to checkout

* Update core.js

* Extracting Changelly component to js file

* Proposal for loading spinner

* remove zone

* imrpove changelly ui

* add in changelly config checks

* try new method to calculate amount + remove to currency from list

* abstract changelly lofgic to provider and reduce dependency on js component

* Add UTs for Changelly

* refactor changelly backend

* fix failing UT

* add shitcoin tax

* pr changes

* pr changes
2018-10-18 12:13:39 +09:00
GameXG
db40c7bc32 Solving the new version of btcpayserver caused btcpay-python not to create an order problem (#327) 2018-10-11 23:50:28 +09:00
nicolas.dorier
f4eaa0f01f Make sure X-Forwarded-Port does not override ExternalUrl 2018-10-06 23:20:32 +09:00
Andrew Camilleri
e05c88370f enable account lockout 2018-09-12 13:36:44 +02:00
rockstardev
7341be76bb Extracting public portion of app controller 2018-09-08 14:53:41 +09:00
nicolas.dorier
f5d81334f8 Remove Lightning Specific logic from BTCPay, and use BTCPayServer.Lightning packages instead 2018-08-30 12:24:00 +09:00
nicolas.dorier
38d810cef7 Fix bundling 2018-08-25 23:08:46 +09:00
nicolas.dorier
023913a852 Rate limit per IP the number of login attempt 2018-08-25 20:28:46 +09:00
nicolas.dorier
87d384dba5 Decouple RateProviderFactory with RateFetcher 2018-08-22 16:53:40 +09:00
nicolas.dorier
8728356698 Use HttpClientFactory for coinaverage 2018-08-21 14:33:13 +09:00
nicolas.dorier
6a1eca760a Can configure BTCPay SSH connection at startup 2018-08-12 21:38:45 +09:00
nicolas.dorier
7a566c477d Allow CORS for creating a new invoice via AJAX through the PoS app (fix #238) 2018-08-06 12:04:36 +09:00
Andrew Camilleri
4276994265 fix bitpayconstraint for rates 2018-07-27 07:55:42 +02:00
nicolas.dorier
638b58ab48 remove debug u2f 2018-07-26 23:26:06 +09:00
nicolas.dorier
ad1307746c Add a "Wallet" menu 2018-07-26 22:32:50 +09:00
nicolas.dorier
022b4f115d Expose LND gRPC settings 2018-07-22 18:38:14 +09:00
nicolas.dorier
ce17e3212a Can delete stores 2018-07-19 19:31:17 +09:00
nicolas.dorier
b291a6d25a removing csp 2018-07-12 18:19:43 +09:00
nicolas.dorier
976d9d0cda Add CSP (Disable it if custom theming) 2018-07-12 17:38:21 +09:00
nicolas.dorier
10ceddc709 ReferrerPolicy 2018-07-12 02:38:08 +09:00
nicolas.dorier
5dd57c8064 X-XSS-Protection 2018-07-12 02:23:54 +09:00
nicolas.dorier
a256dd3277 x-content-type-options=nosniff 2018-07-12 01:43:16 +09:00
nicolas.dorier
01cf579530 Use proper custom authentication handler for bitpay 2018-06-04 12:00:03 +09:00
nicolas.dorier
9afc143801 Use decimals and fix invoices 2018-05-11 22:38:31 +09:00
nicolas.dorier
199db01eaf No need of authentication for GetInvoice API (#166) 2018-05-11 17:05:08 +09:00
nicolas.dorier
bba268b5e2 Upgrade to .NET Core 2.1 2018-05-08 17:57:53 +09:00
nicolas.dorier
e57a488371 Refactor the RateProvider 2018-05-03 03:32:42 +09:00
nicolas.dorier
eb975bf8fc Isolate Bitpay's code outside of middleware inside BitpayClaimsFilter 2018-04-30 22:28:00 +09:00
nicolas.dorier
1fc9a1a54b Move to a Claim based security 2018-04-30 02:33:42 +09:00
nicolas.dorier
f0145142a4 Make sure that we don't authenticate call with bitpay auth methods on non bitpay calls 2018-04-29 20:32:43 +09:00
nicolas.dorier
2848caff2e Support Legacy API Key authentication to Bitpay Invoice API 2018-04-29 18:28:04 +09:00
nicolas.dorier
07c2f6b810 Remove TokenRepository dependency from InvoiceControllerAPI 2018-04-28 02:51:20 +09:00
nicolas.dorier
8ff81f1648 Use claim based authentication 2018-04-28 02:09:24 +09: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
nicolas.dorier
a7ad71d492 CoinAverage credentials are now correctly passed 2018-04-23 17:21:50 +09:00
nicolas.dorier
e75e691404 Merge branch 'dev-bootstrap' of https://github.com/lepipele/btcpayserver into lepipele-dev-bootstrap 2018-04-19 18:03:04 +09: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
5cb8cdd511 Refactoring: Do not query database when asking for Coinaverage rates, periodically get exchange list 2018-04-18 16:38:56 +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
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
8fdfb2c4f6 Fix Back to Website path for Hangfire 2018-04-09 14:41:52 +09:00
nicolas.dorier
b1da136f77 Update packages and remove hangfire hack 2018-04-09 14:31:39 +09:00
nicolas.dorier
992d359e79 Add a --rootpath option 2018-04-05 15:50:23 +09:00
nicolas.dorier
7d17bf7f2a Can set store default language 2018-03-23 17:27:48 +09:00
nicolas.dorier
39b34ff4ed Can invite user to manage your store 2018-03-23 16:24:57 +09:00
nicolas.dorier
718a36ddd0 Remove dev time stuff 2018-03-22 01:10:14 +09:00