diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/JsonRpcClient.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/JsonRpcClient.cs
index f4b8911db..8c4a73f66 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/JsonRpcClient.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/JsonRpcClient.cs
@@ -7,7 +7,7 @@ using System.Threading.Tasks;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
-namespace BTCPayServer.Altcoins.Monero.RPC
+namespace BTCPayServer.Services.Altcoins.Monero.RPC
{
public class JsonRpcClient
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/CreateAccountRequest.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/CreateAccountRequest.cs
index 22ef4b457..10ab914b8 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/CreateAccountRequest.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/CreateAccountRequest.cs
@@ -1,6 +1,6 @@
using Newtonsoft.Json;
-namespace BTCPayServer.Altcoins.Monero.RPC.Models
+namespace BTCPayServer.Services.Altcoins.Monero.RPC.Models
{
public partial class CreateAccountRequest
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/CreateAccountResponse.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/CreateAccountResponse.cs
index 296d38dfb..ed60cb677 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/CreateAccountResponse.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/CreateAccountResponse.cs
@@ -1,6 +1,6 @@
using Newtonsoft.Json;
-namespace BTCPayServer.Altcoins.Monero.RPC.Models
+namespace BTCPayServer.Services.Altcoins.Monero.RPC.Models
{
public partial class CreateAccountResponse
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/CreateAddressRequest.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/CreateAddressRequest.cs
index 9cfbdd1a7..057f4f101 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/CreateAddressRequest.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/CreateAddressRequest.cs
@@ -1,6 +1,6 @@
using Newtonsoft.Json;
-namespace BTCPayServer.Altcoins.Monero.RPC.Models
+namespace BTCPayServer.Services.Altcoins.Monero.RPC.Models
{
public partial class CreateAddressRequest
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/CreateAddressResponse.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/CreateAddressResponse.cs
index 6c4e3dcb5..657b3d0c9 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/CreateAddressResponse.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/CreateAddressResponse.cs
@@ -1,6 +1,6 @@
using Newtonsoft.Json;
-namespace BTCPayServer.Altcoins.Monero.RPC.Models
+namespace BTCPayServer.Services.Altcoins.Monero.RPC.Models
{
public partial class CreateAddressResponse
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetAccountsRequest.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetAccountsRequest.cs
index a76ed86ce..86dd55ee7 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetAccountsRequest.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetAccountsRequest.cs
@@ -1,6 +1,6 @@
using Newtonsoft.Json;
-namespace BTCPayServer.Altcoins.Monero.RPC.Models
+namespace BTCPayServer.Services.Altcoins.Monero.RPC.Models
{
public partial class GetAccountsRequest
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetAccountsResponse.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetAccountsResponse.cs
index 084666e46..6d6da2987 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetAccountsResponse.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetAccountsResponse.cs
@@ -1,7 +1,7 @@
using System.Collections.Generic;
using Newtonsoft.Json;
-namespace BTCPayServer.Altcoins.Monero.RPC.Models
+namespace BTCPayServer.Services.Altcoins.Monero.RPC.Models
{
public partial class GetAccountsResponse
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetFeeEstimateRequest.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetFeeEstimateRequest.cs
index 9274c2656..936af70c9 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetFeeEstimateRequest.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetFeeEstimateRequest.cs
@@ -1,6 +1,6 @@
using Newtonsoft.Json;
-namespace BTCPayServer.Altcoins.Monero.RPC.Models
+namespace BTCPayServer.Services.Altcoins.Monero.RPC.Models
{
public class GetFeeEstimateRequest
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetFeeEstimateResponse.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetFeeEstimateResponse.cs
index 7b5d33bd6..6e383bc34 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetFeeEstimateResponse.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetFeeEstimateResponse.cs
@@ -1,6 +1,6 @@
using Newtonsoft.Json;
-namespace BTCPayServer.Altcoins.Monero.RPC.Models
+namespace BTCPayServer.Services.Altcoins.Monero.RPC.Models
{
public class GetFeeEstimateResponse
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetHeightResponse.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetHeightResponse.cs
index 4f3f70180..1040b51a1 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetHeightResponse.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetHeightResponse.cs
@@ -1,6 +1,6 @@
using Newtonsoft.Json;
-namespace BTCPayServer.Altcoins.Monero.RPC.Models
+namespace BTCPayServer.Services.Altcoins.Monero.RPC.Models
{
public partial class GetHeightResponse
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetTransferByTransactionIdRequest.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetTransferByTransactionIdRequest.cs
index 1e3e842d4..f7426a1a4 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetTransferByTransactionIdRequest.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetTransferByTransactionIdRequest.cs
@@ -1,6 +1,6 @@
using Newtonsoft.Json;
-namespace BTCPayServer.Altcoins.Monero.RPC.Models
+namespace BTCPayServer.Services.Altcoins.Monero.RPC.Models
{
public class GetTransferByTransactionIdRequest
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetTransferByTransactionIdResponse.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetTransferByTransactionIdResponse.cs
index d2368e4af..b620e1028 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetTransferByTransactionIdResponse.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetTransferByTransactionIdResponse.cs
@@ -1,7 +1,7 @@
using System.Collections.Generic;
using Newtonsoft.Json;
-namespace BTCPayServer.Altcoins.Monero.RPC.Models
+namespace BTCPayServer.Services.Altcoins.Monero.RPC.Models
{
public partial class GetTransferByTransactionIdResponse
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetTransfersRequest.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetTransfersRequest.cs
index c44d5b19d..506a96483 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetTransfersRequest.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetTransfersRequest.cs
@@ -1,7 +1,7 @@
using System.Collections.Generic;
using Newtonsoft.Json;
-namespace BTCPayServer.Altcoins.Monero.RPC.Models
+namespace BTCPayServer.Services.Altcoins.Monero.RPC.Models
{
public partial class GetTransfersRequest
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetTransfersResponse.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetTransfersResponse.cs
index 6d87d8117..ffc7997a3 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetTransfersResponse.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/GetTransfersResponse.cs
@@ -1,7 +1,7 @@
using System.Collections.Generic;
using Newtonsoft.Json;
-namespace BTCPayServer.Altcoins.Monero.RPC.Models
+namespace BTCPayServer.Services.Altcoins.Monero.RPC.Models
{
public partial class GetTransfersResponse
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/Info.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/Info.cs
index c7bbfda32..ca9f55741 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/Info.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/Info.cs
@@ -1,6 +1,6 @@
using Newtonsoft.Json;
-namespace BTCPayServer.Altcoins.Monero.RPC.Models
+namespace BTCPayServer.Services.Altcoins.Monero.RPC.Models
{
public partial class Info
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/MakeUriRequest.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/MakeUriRequest.cs
index c2a2074a2..ba1a503b3 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/MakeUriRequest.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/MakeUriRequest.cs
@@ -1,6 +1,6 @@
using Newtonsoft.Json;
-namespace BTCPayServer.Altcoins.Monero.RPC.Models
+namespace BTCPayServer.Services.Altcoins.Monero.RPC.Models
{
public partial class MakeUriRequest
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/MakeUriResponse.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/MakeUriResponse.cs
index e221fd4b7..160297139 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/MakeUriResponse.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/MakeUriResponse.cs
@@ -1,6 +1,6 @@
using Newtonsoft.Json;
-namespace BTCPayServer.Altcoins.Monero.RPC.Models
+namespace BTCPayServer.Services.Altcoins.Monero.RPC.Models
{
public partial class MakeUriResponse
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/ParseStringConverter.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/ParseStringConverter.cs
index 9720d9a29..22e34fbeb 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/ParseStringConverter.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/ParseStringConverter.cs
@@ -2,7 +2,7 @@ using System;
using System.Globalization;
using Newtonsoft.Json;
-namespace BTCPayServer.Altcoins.Monero.RPC.Models
+namespace BTCPayServer.Services.Altcoins.Monero.RPC.Models
{
internal class ParseStringConverter : JsonConverter
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/Peer.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/Peer.cs
index 4054f085d..48f5a2d82 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/Peer.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/Peer.cs
@@ -1,6 +1,6 @@
using Newtonsoft.Json;
-namespace BTCPayServer.Altcoins.Monero.RPC.Models
+namespace BTCPayServer.Services.Altcoins.Monero.RPC.Models
{
public partial class Peer
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/SubaddrIndex.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/SubaddrIndex.cs
index f38d24bc7..dab5c3c56 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/SubaddrIndex.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/SubaddrIndex.cs
@@ -1,6 +1,6 @@
using Newtonsoft.Json;
-namespace BTCPayServer.Altcoins.Monero.RPC.Models
+namespace BTCPayServer.Services.Altcoins.Monero.RPC.Models
{
public partial class SubaddrIndex
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/SubaddressAccount.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/SubaddressAccount.cs
index f53e86c3d..2f6a7913b 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/SubaddressAccount.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/SubaddressAccount.cs
@@ -1,6 +1,6 @@
using Newtonsoft.Json;
-namespace BTCPayServer.Altcoins.Monero.RPC.Models
+namespace BTCPayServer.Services.Altcoins.Monero.RPC.Models
{
public partial class SubaddressAccount
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/SyncInfoResponse.cs b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/SyncInfoResponse.cs
index 60b83af31..6459f0772 100644
--- a/BTCPayServer.Common/Altcoins/Monero/RPC/Models/SyncInfoResponse.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/RPC/Models/SyncInfoResponse.cs
@@ -1,7 +1,7 @@
using System.Collections.Generic;
using Newtonsoft.Json;
-namespace BTCPayServer.Altcoins.Monero.RPC.Models
+namespace BTCPayServer.Services.Altcoins.Monero.RPC.Models
{
public partial class SyncInfoResponse
{
diff --git a/BTCPayServer.Common/Altcoins/Monero/Utils/MoneroMoney.cs b/BTCPayServer.Common/Altcoins/Monero/Utils/MoneroMoney.cs
index 75f87d899..3959d0951 100644
--- a/BTCPayServer.Common/Altcoins/Monero/Utils/MoneroMoney.cs
+++ b/BTCPayServer.Common/Altcoins/Monero/Utils/MoneroMoney.cs
@@ -1,6 +1,6 @@
using System.Globalization;
-namespace BTCPayServer.Altcoins.Monero.Utils
+namespace BTCPayServer.Services.Altcoins.Monero.Utils
{
public class MoneroMoney
{
diff --git a/BTCPayServer.Tests/UnitTest1.cs b/BTCPayServer.Tests/UnitTest1.cs
index 91104618d..aa7cb5110 100644
--- a/BTCPayServer.Tests/UnitTest1.cs
+++ b/BTCPayServer.Tests/UnitTest1.cs
@@ -57,11 +57,11 @@ using System.Security;
using System.Runtime.CompilerServices;
using System.Net;
using BTCPayServer.Models.AccountViewModels;
-using BTCPayServer.Services.U2F.Models;
using Microsoft.AspNetCore.Http.Internal;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using NBXplorer.DerivationStrategy;
+using BTCPayServer.U2F.Models;
namespace BTCPayServer.Tests
{
diff --git a/BTCPayServer/Authentication/OpenId/PasswordGrantTypeEventHandler.cs b/BTCPayServer/Authentication/OpenId/PasswordGrantTypeEventHandler.cs
index 0930f97a7..6a157261c 100644
--- a/BTCPayServer/Authentication/OpenId/PasswordGrantTypeEventHandler.cs
+++ b/BTCPayServer/Authentication/OpenId/PasswordGrantTypeEventHandler.cs
@@ -2,7 +2,7 @@ using System.Threading.Tasks;
using AspNet.Security.OpenIdConnect.Primitives;
using BTCPayServer.Data;
using BTCPayServer.Models;
-using BTCPayServer.Services.U2F;
+using BTCPayServer.U2F;
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.Options;
using OpenIddict.Abstractions;
diff --git a/BTCPayServer/BTCPayServer.csproj b/BTCPayServer/BTCPayServer.csproj
index 8802283da..dccf78fd1 100644
--- a/BTCPayServer/BTCPayServer.csproj
+++ b/BTCPayServer/BTCPayServer.csproj
@@ -5,19 +5,19 @@
Exe
-
+
-
+
-
+
-
+
@@ -121,8 +121,6 @@
-
-
diff --git a/BTCPayServer/Controllers/AccountController.cs b/BTCPayServer/Controllers/AccountController.cs
index 2e83b528d..62111fe67 100644
--- a/BTCPayServer/Controllers/AccountController.cs
+++ b/BTCPayServer/Controllers/AccountController.cs
@@ -18,8 +18,8 @@ using BTCPayServer.Services.Stores;
using BTCPayServer.Logging;
using BTCPayServer.Security;
using System.Globalization;
-using BTCPayServer.Services.U2F;
-using BTCPayServer.Services.U2F.Models;
+using BTCPayServer.U2F;
+using BTCPayServer.U2F.Models;
using Newtonsoft.Json;
using NicolasDorier.RateLimits;
using BTCPayServer.Data;
diff --git a/BTCPayServer/Controllers/ManageController.U2F.cs b/BTCPayServer/Controllers/ManageController.U2F.cs
index be4e9bcb1..eefbb5e55 100644
--- a/BTCPayServer/Controllers/ManageController.U2F.cs
+++ b/BTCPayServer/Controllers/ManageController.U2F.cs
@@ -1,7 +1,7 @@
using System;
using System.Threading.Tasks;
using BTCPayServer.Models;
-using BTCPayServer.Services.U2F.Models;
+using BTCPayServer.U2F.Models;
using Microsoft.AspNetCore.Mvc;
namespace BTCPayServer.Controllers
diff --git a/BTCPayServer/Controllers/ManageController.cs b/BTCPayServer/Controllers/ManageController.cs
index 4bc9186bd..16940ea91 100644
--- a/BTCPayServer/Controllers/ManageController.cs
+++ b/BTCPayServer/Controllers/ManageController.cs
@@ -18,7 +18,7 @@ using BTCPayServer.Services.Wallets;
using BTCPayServer.Services.Mails;
using System.Globalization;
using BTCPayServer.Security;
-using BTCPayServer.Services.U2F;
+using BTCPayServer.U2F;
using BTCPayServer.Data;
namespace BTCPayServer.Controllers
diff --git a/BTCPayServer/Hosting/BTCPayServerServices.cs b/BTCPayServer/Hosting/BTCPayServerServices.cs
index 4c49952ae..78a11ff80 100644
--- a/BTCPayServer/Hosting/BTCPayServerServices.cs
+++ b/BTCPayServer/Hosting/BTCPayServerServices.cs
@@ -1,5 +1,5 @@
using BTCPayServer.Configuration;
-using BTCPayServer.Altcoins.Monero;
+using BTCPayServer.Services.Altcoins.Monero;
using Microsoft.Extensions.Logging;
using System;
using System.IdentityModel.Tokens.Jwt;
@@ -40,7 +40,7 @@ using NBXplorer.DerivationStrategy;
using NicolasDorier.RateLimits;
using Npgsql;
using BTCPayServer.Services.Apps;
-using BTCPayServer.Services.U2F;
+using BTCPayServer.U2F;
using BundlerMinifier.TagHelpers;
using OpenIddict.EntityFrameworkCore.Models;
diff --git a/BTCPayServer/Models/AccountViewModels/SecondaryLoginViewModel.cs b/BTCPayServer/Models/AccountViewModels/SecondaryLoginViewModel.cs
index 5ffaeecc3..37964893a 100644
--- a/BTCPayServer/Models/AccountViewModels/SecondaryLoginViewModel.cs
+++ b/BTCPayServer/Models/AccountViewModels/SecondaryLoginViewModel.cs
@@ -1,4 +1,4 @@
-using BTCPayServer.Services.U2F.Models;
+using BTCPayServer.U2F.Models;
namespace BTCPayServer.Models.AccountViewModels
{
diff --git a/BTCPayServer/Payments/PaymentTypes.cs b/BTCPayServer/Payments/PaymentTypes.cs
index 302a9851d..d3a232591 100644
--- a/BTCPayServer/Payments/PaymentTypes.cs
+++ b/BTCPayServer/Payments/PaymentTypes.cs
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
-using BTCPayServer.Altcoins.Monero.Payments;
+using BTCPayServer.Services.Altcoins.Monero.Payments;
using BTCPayServer.Services.Invoices;
using Newtonsoft.Json.Linq;
diff --git a/BTCPayServer/Security/BTCPayClaimsFilter.cs b/BTCPayServer/Security/BTCPayClaimsFilter.cs
index c8f7938a8..bfb30d681 100644
--- a/BTCPayServer/Security/BTCPayClaimsFilter.cs
+++ b/BTCPayServer/Security/BTCPayClaimsFilter.cs
@@ -10,7 +10,6 @@ using Microsoft.Extensions.Options;
namespace BTCPayServer.Security
{
-
public class BTCPayClaimsFilter : IAsyncAuthorizationFilter, IConfigureOptions
{
UserManager _userManager;
diff --git a/BTCPayServer/Altcoins/Monero/Configuration/MoneroLikeConfiguration.cs b/BTCPayServer/Services/Altcoins/Monero/Configuration/MoneroLikeConfiguration.cs
similarity index 88%
rename from BTCPayServer/Altcoins/Monero/Configuration/MoneroLikeConfiguration.cs
rename to BTCPayServer/Services/Altcoins/Monero/Configuration/MoneroLikeConfiguration.cs
index 6410c6c3a..3a8b96a9e 100644
--- a/BTCPayServer/Altcoins/Monero/Configuration/MoneroLikeConfiguration.cs
+++ b/BTCPayServer/Services/Altcoins/Monero/Configuration/MoneroLikeConfiguration.cs
@@ -1,7 +1,7 @@
using System;
using System.Collections.Generic;
-namespace BTCPayServer.Altcoins.Monero.Configuration
+namespace BTCPayServer.Services.Altcoins.Monero.Configuration
{
public class MoneroLikeConfiguration
{
diff --git a/BTCPayServer/Altcoins/Monero/MoneroLikeExtensions.cs b/BTCPayServer/Services/Altcoins/Monero/MoneroLikeExtensions.cs
similarity index 93%
rename from BTCPayServer/Altcoins/Monero/MoneroLikeExtensions.cs
rename to BTCPayServer/Services/Altcoins/Monero/MoneroLikeExtensions.cs
index 4676c47fb..f1b9e3320 100644
--- a/BTCPayServer/Altcoins/Monero/MoneroLikeExtensions.cs
+++ b/BTCPayServer/Services/Altcoins/Monero/MoneroLikeExtensions.cs
@@ -2,14 +2,14 @@ using System;
using System.Linq;
using BTCPayServer.Configuration;
using BTCPayServer.Contracts;
-using BTCPayServer.Altcoins.Monero.Configuration;
-using BTCPayServer.Altcoins.Monero.Payments;
-using BTCPayServer.Altcoins.Monero.Services;
+using BTCPayServer.Services.Altcoins.Monero.Configuration;
+using BTCPayServer.Services.Altcoins.Monero.Payments;
+using BTCPayServer.Services.Altcoins.Monero.Services;
using BTCPayServer.Payments;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
-namespace BTCPayServer.Altcoins.Monero
+namespace BTCPayServer.Services.Altcoins.Monero
{
public static class MoneroLikeExtensions
{
diff --git a/BTCPayServer/Altcoins/Monero/MoneroStoreNavExtension.cs b/BTCPayServer/Services/Altcoins/Monero/MoneroStoreNavExtension.cs
similarity index 79%
rename from BTCPayServer/Altcoins/Monero/MoneroStoreNavExtension.cs
rename to BTCPayServer/Services/Altcoins/Monero/MoneroStoreNavExtension.cs
index de9dec735..d67cee9e8 100644
--- a/BTCPayServer/Altcoins/Monero/MoneroStoreNavExtension.cs
+++ b/BTCPayServer/Services/Altcoins/Monero/MoneroStoreNavExtension.cs
@@ -1,6 +1,6 @@
using BTCPayServer.Contracts;
-namespace BTCPayServer.Altcoins.Monero
+namespace BTCPayServer.Services.Altcoins.Monero
{
public class MoneroStoreNavExtension: IStoreNavExtension
{
diff --git a/BTCPayServer/Altcoins/Monero/Payments/MoneroLikeOnChainPaymentMethodDetails.cs b/BTCPayServer/Services/Altcoins/Monero/Payments/MoneroLikeOnChainPaymentMethodDetails.cs
similarity index 93%
rename from BTCPayServer/Altcoins/Monero/Payments/MoneroLikeOnChainPaymentMethodDetails.cs
rename to BTCPayServer/Services/Altcoins/Monero/Payments/MoneroLikeOnChainPaymentMethodDetails.cs
index 01a475674..a20200211 100644
--- a/BTCPayServer/Altcoins/Monero/Payments/MoneroLikeOnChainPaymentMethodDetails.cs
+++ b/BTCPayServer/Services/Altcoins/Monero/Payments/MoneroLikeOnChainPaymentMethodDetails.cs
@@ -1,6 +1,6 @@
using BTCPayServer.Payments;
-namespace BTCPayServer.Altcoins.Monero.Payments
+namespace BTCPayServer.Services.Altcoins.Monero.Payments
{
public class MoneroLikeOnChainPaymentMethodDetails : IPaymentMethodDetails
{
diff --git a/BTCPayServer/Altcoins/Monero/Payments/MoneroLikePaymentData.cs b/BTCPayServer/Services/Altcoins/Monero/Payments/MoneroLikePaymentData.cs
similarity index 94%
rename from BTCPayServer/Altcoins/Monero/Payments/MoneroLikePaymentData.cs
rename to BTCPayServer/Services/Altcoins/Monero/Payments/MoneroLikePaymentData.cs
index 6c4f3ede7..0c2df80a1 100644
--- a/BTCPayServer/Altcoins/Monero/Payments/MoneroLikePaymentData.cs
+++ b/BTCPayServer/Services/Altcoins/Monero/Payments/MoneroLikePaymentData.cs
@@ -1,9 +1,9 @@
using BTCPayServer.Data;
-using BTCPayServer.Altcoins.Monero.Utils;
+using BTCPayServer.Services.Altcoins.Monero.Utils;
using BTCPayServer.Payments;
using BTCPayServer.Services.Invoices;
-namespace BTCPayServer.Altcoins.Monero.Payments
+namespace BTCPayServer.Services.Altcoins.Monero.Payments
{
public class MoneroLikePaymentData : CryptoPaymentData
{
diff --git a/BTCPayServer/Altcoins/Monero/Payments/MoneroLikePaymentMethodHandler.cs b/BTCPayServer/Services/Altcoins/Monero/Payments/MoneroLikePaymentMethodHandler.cs
similarity index 96%
rename from BTCPayServer/Altcoins/Monero/Payments/MoneroLikePaymentMethodHandler.cs
rename to BTCPayServer/Services/Altcoins/Monero/Payments/MoneroLikePaymentMethodHandler.cs
index c76eae5ee..a8bf854bb 100644
--- a/BTCPayServer/Altcoins/Monero/Payments/MoneroLikePaymentMethodHandler.cs
+++ b/BTCPayServer/Services/Altcoins/Monero/Payments/MoneroLikePaymentMethodHandler.cs
@@ -6,16 +6,16 @@ using BTCPayServer.Data;
using BTCPayServer.Lightning;
using BTCPayServer.Models;
using BTCPayServer.Models.InvoicingModels;
-using BTCPayServer.Altcoins.Monero.RPC.Models;
-using BTCPayServer.Altcoins.Monero.Services;
-using BTCPayServer.Altcoins.Monero.Utils;
+using BTCPayServer.Services.Altcoins.Monero.RPC.Models;
+using BTCPayServer.Services.Altcoins.Monero.Services;
+using BTCPayServer.Services.Altcoins.Monero.Utils;
using BTCPayServer.Payments;
using BTCPayServer.Rating;
using BTCPayServer.Services.Invoices;
using BTCPayServer.Services.Rates;
using NBitcoin;
-namespace BTCPayServer.Altcoins.Monero.Payments
+namespace BTCPayServer.Services.Altcoins.Monero.Payments
{
public class MoneroLikePaymentMethodHandler : PaymentMethodHandlerBase
{
diff --git a/BTCPayServer/Altcoins/Monero/Payments/MoneroPaymentType.cs b/BTCPayServer/Services/Altcoins/Monero/Payments/MoneroPaymentType.cs
similarity index 96%
rename from BTCPayServer/Altcoins/Monero/Payments/MoneroPaymentType.cs
rename to BTCPayServer/Services/Altcoins/Monero/Payments/MoneroPaymentType.cs
index eee4079f4..dd10b2530 100644
--- a/BTCPayServer/Altcoins/Monero/Payments/MoneroPaymentType.cs
+++ b/BTCPayServer/Services/Altcoins/Monero/Payments/MoneroPaymentType.cs
@@ -4,7 +4,7 @@ using BTCPayServer.Services.Invoices;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
-namespace BTCPayServer.Altcoins.Monero.Payments
+namespace BTCPayServer.Services.Altcoins.Monero.Payments
{
public class MoneroPaymentType: PaymentType
{
diff --git a/BTCPayServer/Altcoins/Monero/Payments/MoneroSupportedPaymentMethod.cs b/BTCPayServer/Services/Altcoins/Monero/Payments/MoneroSupportedPaymentMethod.cs
similarity index 84%
rename from BTCPayServer/Altcoins/Monero/Payments/MoneroSupportedPaymentMethod.cs
rename to BTCPayServer/Services/Altcoins/Monero/Payments/MoneroSupportedPaymentMethod.cs
index 6a3b764ec..8790ec0d4 100644
--- a/BTCPayServer/Altcoins/Monero/Payments/MoneroSupportedPaymentMethod.cs
+++ b/BTCPayServer/Services/Altcoins/Monero/Payments/MoneroSupportedPaymentMethod.cs
@@ -1,6 +1,6 @@
using BTCPayServer.Payments;
-namespace BTCPayServer.Altcoins.Monero.Payments
+namespace BTCPayServer.Services.Altcoins.Monero.Payments
{
public class MoneroSupportedPaymentMethod : ISupportedPaymentMethod
{
diff --git a/BTCPayServer/Altcoins/Monero/RPC/MoneroDaemonCallbackController.cs b/BTCPayServer/Services/Altcoins/Monero/RPC/MoneroDaemonCallbackController.cs
similarity index 95%
rename from BTCPayServer/Altcoins/Monero/RPC/MoneroDaemonCallbackController.cs
rename to BTCPayServer/Services/Altcoins/Monero/RPC/MoneroDaemonCallbackController.cs
index 84d0e8fdc..9db2d24e3 100644
--- a/BTCPayServer/Altcoins/Monero/RPC/MoneroDaemonCallbackController.cs
+++ b/BTCPayServer/Services/Altcoins/Monero/RPC/MoneroDaemonCallbackController.cs
@@ -1,7 +1,7 @@
using BTCPayServer.Filters;
using Microsoft.AspNetCore.Mvc;
-namespace BTCPayServer.Altcoins.Monero.RPC
+namespace BTCPayServer.Services.Altcoins.Monero.RPC
{
[Route("[controller]")]
[OnlyIfSupportAttribute("XMR")]
diff --git a/BTCPayServer/Altcoins/Monero/RPC/MoneroEvent.cs b/BTCPayServer/Services/Altcoins/Monero/RPC/MoneroEvent.cs
similarity index 90%
rename from BTCPayServer/Altcoins/Monero/RPC/MoneroEvent.cs
rename to BTCPayServer/Services/Altcoins/Monero/RPC/MoneroEvent.cs
index e45c4e874..4821730ec 100644
--- a/BTCPayServer/Altcoins/Monero/RPC/MoneroEvent.cs
+++ b/BTCPayServer/Services/Altcoins/Monero/RPC/MoneroEvent.cs
@@ -1,4 +1,4 @@
-namespace BTCPayServer.Altcoins.Monero.RPC
+namespace BTCPayServer.Services.Altcoins.Monero.RPC
{
public class MoneroEvent
{
diff --git a/BTCPayServer/Altcoins/Monero/Services/MoneroLikeSummaryUpdaterHostedService.cs b/BTCPayServer/Services/Altcoins/Monero/Services/MoneroLikeSummaryUpdaterHostedService.cs
similarity index 95%
rename from BTCPayServer/Altcoins/Monero/Services/MoneroLikeSummaryUpdaterHostedService.cs
rename to BTCPayServer/Services/Altcoins/Monero/Services/MoneroLikeSummaryUpdaterHostedService.cs
index 7037bd52c..6cfa0f0c3 100644
--- a/BTCPayServer/Altcoins/Monero/Services/MoneroLikeSummaryUpdaterHostedService.cs
+++ b/BTCPayServer/Services/Altcoins/Monero/Services/MoneroLikeSummaryUpdaterHostedService.cs
@@ -2,11 +2,11 @@ using System;
using System.Threading;
using System.Threading.Tasks;
using BTCPayServer.Logging;
-using BTCPayServer.Altcoins.Monero.Configuration;
+using BTCPayServer.Services.Altcoins.Monero.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
-namespace BTCPayServer.Altcoins.Monero.Services
+namespace BTCPayServer.Services.Altcoins.Monero.Services
{
public class MoneroLikeSummaryUpdaterHostedService: IHostedService
{
diff --git a/BTCPayServer/Altcoins/Monero/Services/MoneroListener.cs b/BTCPayServer/Services/Altcoins/Monero/Services/MoneroListener.cs
similarity index 98%
rename from BTCPayServer/Altcoins/Monero/Services/MoneroListener.cs
rename to BTCPayServer/Services/Altcoins/Monero/Services/MoneroListener.cs
index a0a02ce18..d2b5ad6bc 100644
--- a/BTCPayServer/Altcoins/Monero/Services/MoneroListener.cs
+++ b/BTCPayServer/Services/Altcoins/Monero/Services/MoneroListener.cs
@@ -6,10 +6,10 @@ using System.Threading;
using System.Threading.Tasks;
using BTCPayServer.Data;
using BTCPayServer.Events;
-using BTCPayServer.Altcoins.Monero.Configuration;
-using BTCPayServer.Altcoins.Monero.Payments;
-using BTCPayServer.Altcoins.Monero.RPC;
-using BTCPayServer.Altcoins.Monero.RPC.Models;
+using BTCPayServer.Services.Altcoins.Monero.Configuration;
+using BTCPayServer.Services.Altcoins.Monero.Payments;
+using BTCPayServer.Services.Altcoins.Monero.RPC;
+using BTCPayServer.Services.Altcoins.Monero.RPC.Models;
using BTCPayServer.Payments;
using BTCPayServer.Services.Invoices;
using Microsoft.Extensions.Hosting;
@@ -17,7 +17,7 @@ using Microsoft.Extensions.Logging;
using NBitcoin;
using NBXplorer;
-namespace BTCPayServer.Altcoins.Monero.Services
+namespace BTCPayServer.Services.Altcoins.Monero.Services
{
public class MoneroListener : IHostedService
{
@@ -231,7 +231,7 @@ namespace BTCPayServer.Altcoins.Monero.Services
public Task StopAsync(CancellationToken cancellationToken)
{
leases.Dispose();
- _Cts.Cancel();
+ _Cts?.Cancel();
return Task.CompletedTask;
}
diff --git a/BTCPayServer/Altcoins/Monero/Services/MoneroRPCProvider.cs b/BTCPayServer/Services/Altcoins/Monero/Services/MoneroRPCProvider.cs
similarity index 95%
rename from BTCPayServer/Altcoins/Monero/Services/MoneroRPCProvider.cs
rename to BTCPayServer/Services/Altcoins/Monero/Services/MoneroRPCProvider.cs
index 95b978a46..6573e0c38 100644
--- a/BTCPayServer/Altcoins/Monero/Services/MoneroRPCProvider.cs
+++ b/BTCPayServer/Services/Altcoins/Monero/Services/MoneroRPCProvider.cs
@@ -3,12 +3,12 @@ using System.Collections.Concurrent;
using System.Collections.Immutable;
using System.Net.Http;
using System.Threading.Tasks;
-using BTCPayServer.Altcoins.Monero.Configuration;
-using BTCPayServer.Altcoins.Monero.RPC;
-using BTCPayServer.Altcoins.Monero.RPC.Models;
+using BTCPayServer.Services.Altcoins.Monero.Configuration;
+using BTCPayServer.Services.Altcoins.Monero.RPC;
+using BTCPayServer.Services.Altcoins.Monero.RPC.Models;
using NBitcoin;
-namespace BTCPayServer.Altcoins.Monero.Services
+namespace BTCPayServer.Services.Altcoins.Monero.Services
{
public class MoneroRPCProvider
{
diff --git a/BTCPayServer/Altcoins/Monero/UI/MoneroLikeStoreController.cs b/BTCPayServer/Services/Altcoins/Monero/UI/MoneroLikeStoreController.cs
similarity index 97%
rename from BTCPayServer/Altcoins/Monero/UI/MoneroLikeStoreController.cs
rename to BTCPayServer/Services/Altcoins/Monero/UI/MoneroLikeStoreController.cs
index b4a0ad306..c727aeef3 100644
--- a/BTCPayServer/Altcoins/Monero/UI/MoneroLikeStoreController.cs
+++ b/BTCPayServer/Services/Altcoins/Monero/UI/MoneroLikeStoreController.cs
@@ -8,10 +8,10 @@ using System.Linq;
using System.Threading.Tasks;
using BTCPayServer.Data;
using BTCPayServer.Models;
-using BTCPayServer.Altcoins.Monero.Configuration;
-using BTCPayServer.Altcoins.Monero.Payments;
-using BTCPayServer.Altcoins.Monero.RPC.Models;
-using BTCPayServer.Altcoins.Monero.Services;
+using BTCPayServer.Services.Altcoins.Monero.Configuration;
+using BTCPayServer.Services.Altcoins.Monero.Payments;
+using BTCPayServer.Services.Altcoins.Monero.RPC.Models;
+using BTCPayServer.Services.Altcoins.Monero.Services;
using BTCPayServer.Payments;
using BTCPayServer.Security;
using BTCPayServer.Services.Stores;
@@ -21,7 +21,7 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using BTCPayServer.Filters;
-namespace BTCPayServer.Altcoins.Monero.UI
+namespace BTCPayServer.Services.Altcoins.Monero.UI
{
[Route("stores/{storeId}/monerolike")]
[OnlyIfSupportAttribute("XMR")]
diff --git a/BTCPayServer/Altcoins/Monero/UI/MoneroPaymentViewModel.cs b/BTCPayServer/Services/Altcoins/Monero/UI/MoneroPaymentViewModel.cs
similarity index 89%
rename from BTCPayServer/Altcoins/Monero/UI/MoneroPaymentViewModel.cs
rename to BTCPayServer/Services/Altcoins/Monero/UI/MoneroPaymentViewModel.cs
index a5b05fc6c..5b1f0ac82 100644
--- a/BTCPayServer/Altcoins/Monero/UI/MoneroPaymentViewModel.cs
+++ b/BTCPayServer/Services/Altcoins/Monero/UI/MoneroPaymentViewModel.cs
@@ -1,6 +1,6 @@
using System;
-namespace BTCPayServer.Altcoins.Monero.UI
+namespace BTCPayServer.Services.Altcoins.Monero.UI
{
public class MoneroPaymentViewModel
{
diff --git a/BTCPayServer/U2F/Models/AddU2FDeviceViewModel.cs b/BTCPayServer/U2F/Models/AddU2FDeviceViewModel.cs
index 193507512..747350829 100644
--- a/BTCPayServer/U2F/Models/AddU2FDeviceViewModel.cs
+++ b/BTCPayServer/U2F/Models/AddU2FDeviceViewModel.cs
@@ -1,4 +1,4 @@
-namespace BTCPayServer.Services.U2F.Models
+namespace BTCPayServer.U2F.Models
{
public class AddU2FDeviceViewModel
{
@@ -9,4 +9,4 @@ namespace BTCPayServer.Services.U2F.Models
public string Name { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/BTCPayServer/U2F/Models/LoginWithU2FViewModel.cs b/BTCPayServer/U2F/Models/LoginWithU2FViewModel.cs
index 41dd915b3..d627da7ea 100644
--- a/BTCPayServer/U2F/Models/LoginWithU2FViewModel.cs
+++ b/BTCPayServer/U2F/Models/LoginWithU2FViewModel.cs
@@ -1,7 +1,7 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
-namespace BTCPayServer.Services.U2F.Models
+namespace BTCPayServer.U2F.Models
{
public class LoginWithU2FViewModel
{
diff --git a/BTCPayServer/U2F/Models/ServerChallenge.cs b/BTCPayServer/U2F/Models/ServerChallenge.cs
index 6c72324e1..fb25421c5 100644
--- a/BTCPayServer/U2F/Models/ServerChallenge.cs
+++ b/BTCPayServer/U2F/Models/ServerChallenge.cs
@@ -1,4 +1,4 @@
-namespace BTCPayServer.Services.U2F.Models
+namespace BTCPayServer.U2F.Models
{
public class ServerChallenge
{
@@ -7,4 +7,4 @@ namespace BTCPayServer.Services.U2F.Models
public string appId { get; set; }
public string keyHandle { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/BTCPayServer/U2F/Models/ServerRegisterResponse.cs b/BTCPayServer/U2F/Models/ServerRegisterResponse.cs
index aaf7716b9..9b9f3b914 100644
--- a/BTCPayServer/U2F/Models/ServerRegisterResponse.cs
+++ b/BTCPayServer/U2F/Models/ServerRegisterResponse.cs
@@ -1,4 +1,4 @@
-namespace BTCPayServer.Services.U2F.Models
+namespace BTCPayServer.U2F.Models
{
public class ServerRegisterResponse
{
@@ -6,4 +6,4 @@ namespace BTCPayServer.Services.U2F.Models
public string Challenge { get; set; }
public string Version { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/BTCPayServer/U2F/Models/U2FAuthenticationViewModel.cs b/BTCPayServer/U2F/Models/U2FAuthenticationViewModel.cs
index 1fd591221..00f6cf3f9 100644
--- a/BTCPayServer/U2F/Models/U2FAuthenticationViewModel.cs
+++ b/BTCPayServer/U2F/Models/U2FAuthenticationViewModel.cs
@@ -1,7 +1,7 @@
using System.Collections.Generic;
using BTCPayServer.Data;
-namespace BTCPayServer.Services.U2F.Models
+namespace BTCPayServer.U2F.Models
{
public class U2FAuthenticationViewModel
{
diff --git a/BTCPayServer/U2F/Models/U2FDeviceAuthenticationRequest.cs b/BTCPayServer/U2F/Models/U2FDeviceAuthenticationRequest.cs
index d4679f403..02b73ca39 100644
--- a/BTCPayServer/U2F/Models/U2FDeviceAuthenticationRequest.cs
+++ b/BTCPayServer/U2F/Models/U2FDeviceAuthenticationRequest.cs
@@ -1,6 +1,6 @@
using System.ComponentModel.DataAnnotations;
-namespace BTCPayServer.Services.U2F.Models
+namespace BTCPayServer.U2F.Models
{
public class U2FDeviceAuthenticationRequest
{
@@ -12,4 +12,4 @@ namespace BTCPayServer.Services.U2F.Models
[Required] [StringLength(50)] public string Version { get; set; }
}
-}
\ No newline at end of file
+}
diff --git a/BTCPayServer/U2F/U2FService.cs b/BTCPayServer/U2F/U2FService.cs
index e64cd70e6..9e1074131 100644
--- a/BTCPayServer/U2F/U2FService.cs
+++ b/BTCPayServer/U2F/U2FService.cs
@@ -5,14 +5,14 @@ using System.Linq;
using System.Threading.Tasks;
using BTCPayServer.Data;
using BTCPayServer.Models;
-using BTCPayServer.Services.U2F.Models;
+using BTCPayServer.U2F.Models;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using NBitcoin;
using U2F.Core.Models;
using U2F.Core.Utils;
-namespace BTCPayServer.Services.U2F
+namespace BTCPayServer.U2F
{
public class U2FService
{
diff --git a/BTCPayServer/Views/Account/LoginWithU2F.cshtml b/BTCPayServer/Views/Account/LoginWithU2F.cshtml
index c8202525c..47925f321 100644
--- a/BTCPayServer/Views/Account/LoginWithU2F.cshtml
+++ b/BTCPayServer/Views/Account/LoginWithU2F.cshtml
@@ -1,4 +1,4 @@
-@model BTCPayServer.Services.U2F.Models.LoginWithU2FViewModel
+@model BTCPayServer.U2F.Models.LoginWithU2FViewModel