diff --git a/src/Blockcore.sln b/src/Blockcore.sln
index 19ba8cfe1..554640006 100644
--- a/src/Blockcore.sln
+++ b/src/Blockcore.sln
@@ -154,6 +154,16 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blockcore.Networks.SeniorBl
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blockcore.Networks.RoyalSportsCity", "Networks\Blockcore.Networks.RoyalSportsCity\Blockcore.Networks.RoyalSportsCity.csproj", "{D176C98F-E2EF-49C6-B073-32F08889BD27}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blockcore.Features.Consensus.Host", "Features\Blockcore.Features.Consensus.Host\Blockcore.Features.Consensus.Host.csproj", "{83A17E7D-FC7F-4F7D-A22F-C94E9A70DAEF}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blockcore.Features.MemoryPool.Host", "Features\Blockcore.Features.MemoryPool.Host\Blockcore.Features.MemoryPool.Host.csproj", "{A54A4DB3-C1D9-4C5F-A636-FE448AA36174}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Blockcore.Features.Wallet.Host", "Features\Blockcore.Features.Wallet.Host\Blockcore.Features.Wallet.Host.csproj", "{77E48C55-353E-4E51-A904-A021C961FA81}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Blockcore.Features.BlockStore.Host", "Features\Blockcore.Features.BlockStore.Host\Blockcore.Features.BlockStore.Host.csproj", "{2D445BEF-2578-4A5A-99AA-7EB9E90A37A2}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Blockcore.Features.Miner.Host", "Features\Blockcore.Features.Miner.Host\Blockcore.Features.Miner.Host.csproj", "{C887B83D-815C-4CFF-BA8E-4EB148C7F488}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -404,6 +414,26 @@ Global
{D176C98F-E2EF-49C6-B073-32F08889BD27}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D176C98F-E2EF-49C6-B073-32F08889BD27}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D176C98F-E2EF-49C6-B073-32F08889BD27}.Release|Any CPU.Build.0 = Release|Any CPU
+ {83A17E7D-FC7F-4F7D-A22F-C94E9A70DAEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {83A17E7D-FC7F-4F7D-A22F-C94E9A70DAEF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {83A17E7D-FC7F-4F7D-A22F-C94E9A70DAEF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {83A17E7D-FC7F-4F7D-A22F-C94E9A70DAEF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A54A4DB3-C1D9-4C5F-A636-FE448AA36174}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A54A4DB3-C1D9-4C5F-A636-FE448AA36174}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A54A4DB3-C1D9-4C5F-A636-FE448AA36174}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A54A4DB3-C1D9-4C5F-A636-FE448AA36174}.Release|Any CPU.Build.0 = Release|Any CPU
+ {77E48C55-353E-4E51-A904-A021C961FA81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {77E48C55-353E-4E51-A904-A021C961FA81}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {77E48C55-353E-4E51-A904-A021C961FA81}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {77E48C55-353E-4E51-A904-A021C961FA81}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2D445BEF-2578-4A5A-99AA-7EB9E90A37A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2D445BEF-2578-4A5A-99AA-7EB9E90A37A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2D445BEF-2578-4A5A-99AA-7EB9E90A37A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2D445BEF-2578-4A5A-99AA-7EB9E90A37A2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C887B83D-815C-4CFF-BA8E-4EB148C7F488}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C887B83D-815C-4CFF-BA8E-4EB148C7F488}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C887B83D-815C-4CFF-BA8E-4EB148C7F488}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C887B83D-815C-4CFF-BA8E-4EB148C7F488}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -472,6 +502,11 @@ Global
{2834DEF2-0CF7-4012-A73D-07F06256CC75} = {3B56C02B-4468-4268-B797-851562789FCC}
{9C962CB5-A11B-47F1-A5D3-2AD2215CF100} = {3B56C02B-4468-4268-B797-851562789FCC}
{D176C98F-E2EF-49C6-B073-32F08889BD27} = {3B56C02B-4468-4268-B797-851562789FCC}
+ {83A17E7D-FC7F-4F7D-A22F-C94E9A70DAEF} = {15D29FFD-6142-4DC5-AFFD-10BA0CA55C45}
+ {A54A4DB3-C1D9-4C5F-A636-FE448AA36174} = {15D29FFD-6142-4DC5-AFFD-10BA0CA55C45}
+ {77E48C55-353E-4E51-A904-A021C961FA81} = {15D29FFD-6142-4DC5-AFFD-10BA0CA55C45}
+ {2D445BEF-2578-4A5A-99AA-7EB9E90A37A2} = {15D29FFD-6142-4DC5-AFFD-10BA0CA55C45}
+ {C887B83D-815C-4CFF-BA8E-4EB148C7F488} = {15D29FFD-6142-4DC5-AFFD-10BA0CA55C45}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {6C780ABA-5872-4B83-AD3F-A5BD423AD907}
diff --git a/src/Features/Blockcore.Features.BlockStore/Api/BlockStoreClient.cs b/src/Features/Blockcore.Features.BlockStore.Host/Api/BlockStoreClient.cs
similarity index 100%
rename from src/Features/Blockcore.Features.BlockStore/Api/BlockStoreClient.cs
rename to src/Features/Blockcore.Features.BlockStore.Host/Api/BlockStoreClient.cs
diff --git a/src/Features/Blockcore.Features.BlockStore/Api/Controllers/BlockStoreController.cs b/src/Features/Blockcore.Features.BlockStore.Host/Api/Controllers/BlockStoreController.cs
similarity index 97%
rename from src/Features/Blockcore.Features.BlockStore/Api/Controllers/BlockStoreController.cs
rename to src/Features/Blockcore.Features.BlockStore.Host/Api/Controllers/BlockStoreController.cs
index 2be18d2b0..7f490667e 100644
--- a/src/Features/Blockcore.Features.BlockStore/Api/Controllers/BlockStoreController.cs
+++ b/src/Features/Blockcore.Features.BlockStore.Host/Api/Controllers/BlockStoreController.cs
@@ -195,7 +195,7 @@ public IActionResult GetAddressesBalances(string addresses, int minConfirmations
this.logger.LogDebug("Asking data for {0} addresses.", addressesArray.Length);
- AddressBalancesResult result = this.addressIndexer.GetAddressBalances(addressesArray, minConfirmations);
+ AddressIndexing.AddressBalancesResult result = this.addressIndexer.GetAddressBalances(addressesArray, minConfirmations);
this.logger.LogDebug("Sending data for {0} addresses.", result.Balances.Count);
@@ -221,7 +221,7 @@ public IActionResult GetVerboseAddressesBalancesData(string addresses)
this.logger.LogDebug("Asking data for {0} addresses.", addressesArray.Length);
- VerboseAddressBalancesResult result = this.addressIndexer.GetAddressIndexerState(addressesArray);
+ AddressIndexing.VerboseAddressBalancesResult result = this.addressIndexer.GetAddressIndexerState(addressesArray);
return this.Json(result);
}
diff --git a/src/Features/Blockcore.Features.BlockStore/Api/Controllers/BlockStoreRPCController.cs b/src/Features/Blockcore.Features.BlockStore.Host/Api/Controllers/BlockStoreRPCController.cs
similarity index 100%
rename from src/Features/Blockcore.Features.BlockStore/Api/Controllers/BlockStoreRPCController.cs
rename to src/Features/Blockcore.Features.BlockStore.Host/Api/Controllers/BlockStoreRPCController.cs
diff --git a/src/Features/Blockcore.Features.BlockStore/Api/Models/BlockStoreRouteEndPoint.cs b/src/Features/Blockcore.Features.BlockStore.Host/Api/Models/BlockStoreRouteEndPoint.cs
similarity index 100%
rename from src/Features/Blockcore.Features.BlockStore/Api/Models/BlockStoreRouteEndPoint.cs
rename to src/Features/Blockcore.Features.BlockStore.Host/Api/Models/BlockStoreRouteEndPoint.cs
diff --git a/src/Features/Blockcore.Features.BlockStore/Api/Models/UtxoModel.cs b/src/Features/Blockcore.Features.BlockStore.Host/Api/Models/UtxoModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.BlockStore/Api/Models/UtxoModel.cs
rename to src/Features/Blockcore.Features.BlockStore.Host/Api/Models/UtxoModel.cs
diff --git a/src/Features/Blockcore.Features.BlockStore/Models/BlockTransactionDetailsModel.cs b/src/Features/Blockcore.Features.BlockStore.Host/BlockTransactionDetailsModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.BlockStore/Models/BlockTransactionDetailsModel.cs
rename to src/Features/Blockcore.Features.BlockStore.Host/BlockTransactionDetailsModel.cs
diff --git a/src/Features/Blockcore.Features.BlockStore.Host/Blockcore.Features.BlockStore.Host.csproj b/src/Features/Blockcore.Features.BlockStore.Host/Blockcore.Features.BlockStore.Host.csproj
new file mode 100644
index 000000000..02ef38107
--- /dev/null
+++ b/src/Features/Blockcore.Features.BlockStore.Host/Blockcore.Features.BlockStore.Host.csproj
@@ -0,0 +1,29 @@
+
+
+ Blockcore Features BlockStore Host
+ Blockcore.Features.BlockStore.Host
+ Blockcore.Features.BlockStore.Host
+ Blockcore.Features.BlockStore.Host
+ False
+ Blockcore
+ true
+
+
+
+ all
+
+
+
+
+
+
+
+
+
+
+
+ 1701;1702;1705;IDE0008;
+
+
+
+
\ No newline at end of file
diff --git a/src/Features/Blockcore.Features.BlockStore/AddressIndexing/AddressBalancesResult.cs b/src/Features/Blockcore.Features.BlockStore/AddressIndexing/AddressBalancesResult.cs
new file mode 100644
index 000000000..2d700777d
--- /dev/null
+++ b/src/Features/Blockcore.Features.BlockStore/AddressIndexing/AddressBalancesResult.cs
@@ -0,0 +1,125 @@
+using System.Collections.Generic;
+using Blockcore.Utilities.JsonConverters;
+using LiteDB;
+using NBitcoin;
+using Newtonsoft.Json;
+
+namespace Blockcore.Features.BlockStore.AddressIndexing
+{
+ ///
+ /// A class that contains a list of balances per address as requested.
+ ///
+ /// Should the request fail the will be populated.
+ ///
+ ///
+ public sealed class AddressBalancesResult
+ {
+ public AddressBalancesResult()
+ {
+ this.Balances = new List();
+ }
+
+ public List Balances { get; set; }
+
+ [JsonProperty("reason")]
+ public string Reason { get; private set; }
+
+ public static AddressBalancesResult RequestFailed(string reason)
+ {
+ return new AddressBalancesResult() { Reason = reason };
+ }
+ }
+
+ ///
+ /// A class that contains the balance for a given address.
+ ///
+ public sealed class AddressBalanceResult
+ {
+ public AddressBalanceResult() { }
+
+ public AddressBalanceResult(string address, Money balance)
+ {
+ this.Address = address;
+ this.Balance = balance;
+ }
+
+ [JsonProperty("address")]
+ public string Address { get; set; }
+
+ [JsonProperty("balance")]
+ [JsonConverter(typeof(MoneyJsonConverter))]
+ public Money Balance { get; set; }
+ }
+
+ ///
+ /// A class that contains a list of balances data per address as requested.
+ /// Should the request fail the will be populated.
+ ///
+ public sealed class VerboseAddressBalancesResult
+ {
+ private VerboseAddressBalancesResult()
+ {
+ this.BalancesData = new List();
+ }
+
+ public VerboseAddressBalancesResult(int consensusTipHeight) : this()
+ {
+ this.ConsensusTipHeight = consensusTipHeight;
+ }
+
+ public List BalancesData { get; set; }
+
+ public int ConsensusTipHeight { get; set; }
+
+ [JsonProperty("reason")]
+ public string Reason { get; private set; }
+
+ public static VerboseAddressBalancesResult RequestFailed(string reason)
+ {
+ return new VerboseAddressBalancesResult() { Reason = reason };
+ }
+ }
+
+ public class AddressIndexerData
+ {
+ [BsonId]
+ public string Address { get; set; }
+
+ public List BalanceChanges { get; set; }
+ }
+
+ public class AddressBalanceChange
+ {
+ /// true if there was a deposit to an address, false if it was a withdrawal.
+ public bool Deposited { get; set; }
+
+ public long Satoshi { get; set; }
+
+ /// Height of a block in which operation was confirmed.
+ public int BalanceChangedHeight { get; set; }
+
+ ///
+ public override string ToString()
+ {
+ return $"{nameof(this.Deposited)}:{this.Deposited}, {nameof(this.Satoshi)}:{this.Satoshi}, {nameof(this.BalanceChangedHeight)}:{this.BalanceChangedHeight}";
+ }
+ }
+
+ public static class AddressBalanceChangeExtensions
+ {
+ public static long CalculateBalance(this IEnumerable balanceChanges)
+ {
+ long balance = 0;
+
+ foreach (AddressBalanceChange change in balanceChanges)
+ {
+ if (change.Deposited)
+ balance += change.Satoshi;
+ else
+ balance -= change.Satoshi;
+ }
+
+ return balance;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Features/Blockcore.Features.BlockStore/AddressIndexing/AddressIndexRepository.cs b/src/Features/Blockcore.Features.BlockStore/AddressIndexing/AddressIndexRepository.cs
index 9b56ad8b7..c29d0bc14 100644
--- a/src/Features/Blockcore.Features.BlockStore/AddressIndexing/AddressIndexRepository.cs
+++ b/src/Features/Blockcore.Features.BlockStore/AddressIndexing/AddressIndexRepository.cs
@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using Blockcore.Controllers.Models;
using Blockcore.Utilities;
using LiteDB;
using Microsoft.Extensions.Logging;
diff --git a/src/Features/Blockcore.Features.BlockStore/AddressIndexing/AddressIndexer.cs b/src/Features/Blockcore.Features.BlockStore/AddressIndexing/AddressIndexer.cs
index 96ac79df3..22239b5fd 100644
--- a/src/Features/Blockcore.Features.BlockStore/AddressIndexing/AddressIndexer.cs
+++ b/src/Features/Blockcore.Features.BlockStore/AddressIndexing/AddressIndexer.cs
@@ -14,7 +14,6 @@
using Blockcore.Consensus.BlockInfo;
using Blockcore.Consensus.Chain;
using Blockcore.Consensus.TransactionInfo;
-using Blockcore.Controllers.Models;
using Blockcore.Interfaces;
using Blockcore.Networks;
using Blockcore.Utilities;
diff --git a/src/Features/Blockcore.Features.BlockStore/Blockcore.Features.BlockStore.csproj b/src/Features/Blockcore.Features.BlockStore/Blockcore.Features.BlockStore.csproj
index f80e8a0c9..54cdc9f5f 100644
--- a/src/Features/Blockcore.Features.BlockStore/Blockcore.Features.BlockStore.csproj
+++ b/src/Features/Blockcore.Features.BlockStore/Blockcore.Features.BlockStore.csproj
@@ -15,7 +15,6 @@
-
diff --git a/src/Features/Blockcore.Features.ColdStaking/Blockcore.Features.ColdStaking.csproj b/src/Features/Blockcore.Features.ColdStaking/Blockcore.Features.ColdStaking.csproj
index 29f99559f..217253388 100644
--- a/src/Features/Blockcore.Features.ColdStaking/Blockcore.Features.ColdStaking.csproj
+++ b/src/Features/Blockcore.Features.ColdStaking/Blockcore.Features.ColdStaking.csproj
@@ -8,6 +8,7 @@
+
diff --git a/src/Features/Blockcore.Features.Consensus.Host/Blockcore.Features.Consensus.Host.csproj b/src/Features/Blockcore.Features.Consensus.Host/Blockcore.Features.Consensus.Host.csproj
new file mode 100644
index 000000000..e88a4eb0d
--- /dev/null
+++ b/src/Features/Blockcore.Features.Consensus.Host/Blockcore.Features.Consensus.Host.csproj
@@ -0,0 +1,27 @@
+
+
+
+ Blockcore Features Consensus Host
+ Blockcore.Features.Consensus.Host
+ Blockcore.Features.Consensus.Host
+ Blockcore.Features.Consensus.Host
+ False
+ Blockcore
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1701;1702;1705;IDE0008;
+
+
+
\ No newline at end of file
diff --git a/src/Features/Blockcore.Features.Consensus/ConsensusController.cs b/src/Features/Blockcore.Features.Consensus.Host/ConsensusController.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Consensus/ConsensusController.cs
rename to src/Features/Blockcore.Features.Consensus.Host/ConsensusController.cs
diff --git a/src/Features/Blockcore.Features.Consensus/ConsensusRPCController.cs b/src/Features/Blockcore.Features.Consensus.Host/ConsensusRPCController.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Consensus/ConsensusRPCController.cs
rename to src/Features/Blockcore.Features.Consensus.Host/ConsensusRPCController.cs
diff --git a/src/Features/Blockcore.Features.MemoryPool.Host/Blockcore.Features.MemoryPool.Host.csproj b/src/Features/Blockcore.Features.MemoryPool.Host/Blockcore.Features.MemoryPool.Host.csproj
new file mode 100644
index 000000000..e79633f01
--- /dev/null
+++ b/src/Features/Blockcore.Features.MemoryPool.Host/Blockcore.Features.MemoryPool.Host.csproj
@@ -0,0 +1,34 @@
+
+
+
+ Blockcore Features MemoryPool Host
+ Blockcore.Features.MemoryPool.Host
+ Blockcore.Features.MemoryPool.Host
+ Blockcore.Features.MemoryPool.Host
+ False
+
+ library
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Library
+
+
+
+ 1701;1702;1705;IDE0008;
+
+
+
\ No newline at end of file
diff --git a/src/Features/Blockcore.Features.MemoryPool/MempoolController.cs b/src/Features/Blockcore.Features.MemoryPool.Host/MempoolController.cs
similarity index 100%
rename from src/Features/Blockcore.Features.MemoryPool/MempoolController.cs
rename to src/Features/Blockcore.Features.MemoryPool.Host/MempoolController.cs
diff --git a/src/Features/Blockcore.Features.Miner/Api/Controllers/MiningController.cs b/src/Features/Blockcore.Features.Miner.Host/Api/Controllers/MiningController.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Miner/Api/Controllers/MiningController.cs
rename to src/Features/Blockcore.Features.Miner.Host/Api/Controllers/MiningController.cs
diff --git a/src/Features/Blockcore.Features.Miner/Api/Controllers/MiningRPCController.cs b/src/Features/Blockcore.Features.Miner.Host/Api/Controllers/MiningRPCController.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Miner/Api/Controllers/MiningRPCController.cs
rename to src/Features/Blockcore.Features.Miner.Host/Api/Controllers/MiningRPCController.cs
diff --git a/src/Features/Blockcore.Features.Miner/Api/Controllers/StakingController.cs b/src/Features/Blockcore.Features.Miner.Host/Api/Controllers/StakingController.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Miner/Api/Controllers/StakingController.cs
rename to src/Features/Blockcore.Features.Miner.Host/Api/Controllers/StakingController.cs
diff --git a/src/Features/Blockcore.Features.Miner/Api/Controllers/StakingRPCController.cs b/src/Features/Blockcore.Features.Miner.Host/Api/Controllers/StakingRPCController.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Miner/Api/Controllers/StakingRPCController.cs
rename to src/Features/Blockcore.Features.Miner.Host/Api/Controllers/StakingRPCController.cs
diff --git a/src/Features/Blockcore.Features.Miner/Api/Models/GenerateBlocksModel.cs b/src/Features/Blockcore.Features.Miner.Host/Api/Models/GenerateBlocksModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Miner/Api/Models/GenerateBlocksModel.cs
rename to src/Features/Blockcore.Features.Miner.Host/Api/Models/GenerateBlocksModel.cs
diff --git a/src/Features/Blockcore.Features.Miner/Api/Models/GetNetworkStakingInfoModel.cs b/src/Features/Blockcore.Features.Miner.Host/Api/Models/GetNetworkStakingInfoModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Miner/Api/Models/GetNetworkStakingInfoModel.cs
rename to src/Features/Blockcore.Features.Miner.Host/Api/Models/GetNetworkStakingInfoModel.cs
diff --git a/src/Features/Blockcore.Features.Miner/Api/Models/GetStakingAddressesModel.cs b/src/Features/Blockcore.Features.Miner.Host/Api/Models/GetStakingAddressesModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Miner/Api/Models/GetStakingAddressesModel.cs
rename to src/Features/Blockcore.Features.Miner.Host/Api/Models/GetStakingAddressesModel.cs
diff --git a/src/Features/Blockcore.Features.Miner/Api/Models/RequestModels.cs b/src/Features/Blockcore.Features.Miner.Host/Api/Models/RequestModels.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Miner/Api/Models/RequestModels.cs
rename to src/Features/Blockcore.Features.Miner.Host/Api/Models/RequestModels.cs
diff --git a/src/Features/Blockcore.Features.Miner.Host/Blockcore.Features.Miner.Host.csproj b/src/Features/Blockcore.Features.Miner.Host/Blockcore.Features.Miner.Host.csproj
new file mode 100644
index 000000000..04be5fbc7
--- /dev/null
+++ b/src/Features/Blockcore.Features.Miner.Host/Blockcore.Features.Miner.Host.csproj
@@ -0,0 +1,36 @@
+
+
+ Blockcore Features Miner Host
+ Blockcore.Features.Miner.Host
+ Blockcore.Features.Miner.Host
+ Blockcore.Features.Miner.Host
+ False
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1701;1702;1705;IDE0008;
+
+
+
+
+
+ all
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Features/Blockcore.Features.Miner/Broadcasters/StakingBroadcaster.cs b/src/Features/Blockcore.Features.Miner.Host/Broadcasters/StakingBroadcaster.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Miner/Broadcasters/StakingBroadcaster.cs
rename to src/Features/Blockcore.Features.Miner.Host/Broadcasters/StakingBroadcaster.cs
diff --git a/src/Features/Blockcore.Features.Miner/Broadcasters/StakingInfoClientEvent.cs b/src/Features/Blockcore.Features.Miner.Host/Broadcasters/StakingInfoClientEvent.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Miner/Broadcasters/StakingInfoClientEvent.cs
rename to src/Features/Blockcore.Features.Miner.Host/Broadcasters/StakingInfoClientEvent.cs
diff --git a/src/Features/Blockcore.Features.Miner.Host/MiningHostFeature.cs b/src/Features/Blockcore.Features.Miner.Host/MiningHostFeature.cs
new file mode 100644
index 000000000..bc19b81b5
--- /dev/null
+++ b/src/Features/Blockcore.Features.Miner.Host/MiningHostFeature.cs
@@ -0,0 +1,81 @@
+using System.Runtime.CompilerServices;
+using System.Threading.Tasks;
+using Blockcore.Broadcasters;
+using Blockcore.Builder;
+using Blockcore.Builder.Feature;
+using Blockcore.Configuration.Logging;
+using Blockcore.Features.Miner.Broadcasters;
+using Blockcore.Features.Miner.Interfaces;
+using Blockcore.Features.Miner.UI;
+using Blockcore.Interfaces.UI;
+using Blockcore.Mining;
+using Microsoft.Extensions.DependencyInjection;
+
+[assembly: InternalsVisibleTo("Blockcore.Features.Miner.Tests")]
+
+namespace Blockcore.Features.Miner
+{
+ public class MiningHostFeature : FullNodeFeature
+ {
+
+ public MiningHostFeature()
+ {
+ }
+
+ ///
+ public override Task InitializeAsync()
+ {
+ return Task.CompletedTask;
+ }
+
+ ///
+ public override void Dispose()
+ {
+ }
+ }
+
+ public static class FullNodeBuilderMiningExtension
+ {
+ public static IFullNodeBuilder AddMiningHost(this IFullNodeBuilder fullNodeBuilder)
+ {
+ LoggingConfiguration.RegisterFeatureNamespace("mining");
+
+ fullNodeBuilder.ConfigureFeature(features =>
+ {
+ features
+ .AddFeature()
+ .DependOn()
+ .FeatureServices(services =>
+ {
+ services.AddSingleton();
+ services.AddSingleton();
+ services.AddSingleton();
+ services.AddSingleton();
+ });
+ });
+
+ return fullNodeBuilder;
+ }
+
+ public static IFullNodeBuilder AddPowPosMiningHost(this IFullNodeBuilder fullNodeBuilder)
+ {
+ LoggingConfiguration.RegisterFeatureNamespace("mining");
+
+ fullNodeBuilder.ConfigureFeature(features =>
+ {
+ features
+ .AddFeature()
+ .DependOn()
+ .FeatureServices(services =>
+ {
+
+ services.AddSingleton();
+ services.AddSingleton();
+ services.AddSingleton();
+ });
+ });
+
+ return fullNodeBuilder;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Features/Blockcore.Features.Miner/UI/MiningNotification.cs b/src/Features/Blockcore.Features.Miner.Host/UI/MiningNotification.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Miner/UI/MiningNotification.cs
rename to src/Features/Blockcore.Features.Miner.Host/UI/MiningNotification.cs
diff --git a/src/Features/Blockcore.Features.Miner/UI/NavItem.cs b/src/Features/Blockcore.Features.Miner.Host/UI/NavItem.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Miner/UI/NavItem.cs
rename to src/Features/Blockcore.Features.Miner.Host/UI/NavItem.cs
diff --git a/src/Features/Blockcore.Features.Miner/UI/Pages/Mine.razor b/src/Features/Blockcore.Features.Miner.Host/UI/Pages/Mine.razor
similarity index 99%
rename from src/Features/Blockcore.Features.Miner/UI/Pages/Mine.razor
rename to src/Features/Blockcore.Features.Miner.Host/UI/Pages/Mine.razor
index 19221ddf8..d1e200921 100644
--- a/src/Features/Blockcore.Features.Miner/UI/Pages/Mine.razor
+++ b/src/Features/Blockcore.Features.Miner.Host/UI/Pages/Mine.razor
@@ -17,7 +17,7 @@
@inject IWalletManager walletManager
@inject NavigationManager navigationManager
-@inject MiningFeature miningFeature
+@inject MiningHostFeature miningFeature
@inject IPowMining powMining
@inject Network network
@inject IInitialBlockDownloadState initialBlockDownloadState
diff --git a/src/Features/Blockcore.Features.Miner/UI/Pages/Stake.razor b/src/Features/Blockcore.Features.Miner.Host/UI/Pages/Stake.razor
similarity index 100%
rename from src/Features/Blockcore.Features.Miner/UI/Pages/Stake.razor
rename to src/Features/Blockcore.Features.Miner.Host/UI/Pages/Stake.razor
diff --git a/src/Features/Blockcore.Features.Miner/UI/_Imports.razor b/src/Features/Blockcore.Features.Miner.Host/UI/_Imports.razor
similarity index 100%
rename from src/Features/Blockcore.Features.Miner/UI/_Imports.razor
rename to src/Features/Blockcore.Features.Miner.Host/UI/_Imports.razor
diff --git a/src/Features/Blockcore.Features.Miner/Blockcore.Features.Miner.csproj b/src/Features/Blockcore.Features.Miner/Blockcore.Features.Miner.csproj
index 195bc87e5..e2644643c 100644
--- a/src/Features/Blockcore.Features.Miner/Blockcore.Features.Miner.csproj
+++ b/src/Features/Blockcore.Features.Miner/Blockcore.Features.Miner.csproj
@@ -14,7 +14,6 @@
-
diff --git a/src/Features/Blockcore.Features.Miner/Api/Models/GetStakingInfoModel.cs b/src/Features/Blockcore.Features.Miner/GetStakingInfoModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Miner/Api/Models/GetStakingInfoModel.cs
rename to src/Features/Blockcore.Features.Miner/GetStakingInfoModel.cs
diff --git a/src/Features/Blockcore.Features.Miner/MiningFeature.cs b/src/Features/Blockcore.Features.Miner/MiningFeature.cs
index f6645a23b..f8834ba99 100644
--- a/src/Features/Blockcore.Features.Miner/MiningFeature.cs
+++ b/src/Features/Blockcore.Features.Miner/MiningFeature.cs
@@ -3,7 +3,6 @@
using System.Text;
using System.Threading.Tasks;
using Blockcore.Base;
-using Blockcore.Broadcasters;
using Blockcore.Builder;
using Blockcore.Builder.Feature;
using Blockcore.Configuration;
@@ -11,14 +10,10 @@
using Blockcore.Configuration.Settings;
using Blockcore.Features.BlockStore;
using Blockcore.Features.MemoryPool;
-using Blockcore.Features.Miner.Broadcasters;
using Blockcore.Features.Miner.Interfaces;
using Blockcore.Features.Miner.Staking;
-using Blockcore.Features.Miner.UI;
-using Blockcore.Features.RPC;
using Blockcore.Features.Wallet;
using Blockcore.Interfaces;
-using Blockcore.Interfaces.UI;
using Blockcore.Mining;
using Blockcore.Networks;
using Microsoft.Extensions.DependencyInjection;
@@ -222,7 +217,6 @@ public static IFullNodeBuilder AddMining(this IFullNodeBuilder fullNodeBuilder)
features
.AddFeature()
.DependOn()
- .DependOn()
.DependOn()
.FeatureServices(services =>
{
@@ -250,7 +244,6 @@ public static IFullNodeBuilder AddPowPosMining(this IFullNodeBuilder fullNodeBui
features
.AddFeature()
.DependOn()
- .DependOn()
// TODO: Need a better way to check dependencies. This is really just dependent on IWalletManager...
// Alternatively "DependsOn" should take a list of features that will satisfy the dependency.
//.DependOn()
@@ -264,9 +257,6 @@ public static IFullNodeBuilder AddPowPosMining(this IFullNodeBuilder fullNodeBui
services.AddSingleton();
services.AddSingleton();
services.AddSingleton();
- services.AddSingleton();
- services.AddSingleton();
- services.AddSingleton();
});
});
diff --git a/src/Features/Blockcore.Features.PoA/Blockcore.Features.PoA.csproj b/src/Features/Blockcore.Features.PoA/Blockcore.Features.PoA.csproj
index c852d3a4b..b10433df9 100644
--- a/src/Features/Blockcore.Features.PoA/Blockcore.Features.PoA.csproj
+++ b/src/Features/Blockcore.Features.PoA/Blockcore.Features.PoA.csproj
@@ -13,6 +13,7 @@
+
diff --git a/src/Features/Blockcore.Features.RPC/Blockcore.Features.RPC.csproj b/src/Features/Blockcore.Features.RPC/Blockcore.Features.RPC.csproj
index 20f125270..acb6d02a6 100644
--- a/src/Features/Blockcore.Features.RPC/Blockcore.Features.RPC.csproj
+++ b/src/Features/Blockcore.Features.RPC/Blockcore.Features.RPC.csproj
@@ -20,6 +20,7 @@
+
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Controllers/AddressBookController.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Controllers/AddressBookController.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Controllers/AddressBookController.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Controllers/AddressBookController.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Controllers/LegacyExtPubKeyConverter.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Controllers/LegacyExtPubKeyConverter.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Controllers/LegacyExtPubKeyConverter.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Controllers/LegacyExtPubKeyConverter.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Controllers/WalletController.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Controllers/WalletController.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Controllers/WalletController.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Controllers/WalletController.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Controllers/WalletModelBuilder.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Controllers/WalletModelBuilder.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Controllers/WalletModelBuilder.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Controllers/WalletModelBuilder.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Controllers/WalletRPCController.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Controllers/WalletRPCController.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Controllers/WalletRPCController.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Controllers/WalletRPCController.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/AddressBalanceModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/AddressBalanceModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/AddressBalanceModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/AddressBalanceModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/AddressBookModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/AddressBookModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/AddressBookModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/AddressBookModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/AddressGroupingModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/AddressGroupingModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/AddressGroupingModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/AddressGroupingModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/AddressesModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/AddressesModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/AddressesModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/AddressesModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/DistributeUtxoModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/DistributeUtxoModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/DistributeUtxoModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/DistributeUtxoModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/GetTransactionModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/GetTransactionModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/GetTransactionModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/GetTransactionModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/GetWalletInfoModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/GetWalletInfoModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/GetWalletInfoModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/GetWalletInfoModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/ListSinceBlockModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/ListSinceBlockModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/ListSinceBlockModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/ListSinceBlockModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/ListSinceBlockTransactionModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/ListSinceBlockTransactionModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/ListSinceBlockTransactionModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/ListSinceBlockTransactionModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/MaxSpendableAmountModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/MaxSpendableAmountModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/MaxSpendableAmountModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/MaxSpendableAmountModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/NewAddressModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/NewAddressModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/NewAddressModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/NewAddressModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/RemovedTransactionModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/RemovedTransactionModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/RemovedTransactionModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/RemovedTransactionModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/RequestModels.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/RequestModels.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/RequestModels.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/RequestModels.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/SpendableTransactionsModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/SpendableTransactionsModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/SpendableTransactionsModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/SpendableTransactionsModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/UnspentCoinModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/UnspentCoinModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/UnspentCoinModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/UnspentCoinModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/WalletBalanceModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/WalletBalanceModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/WalletBalanceModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/WalletBalanceModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/WalletBuildTransactionModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/WalletBuildTransactionModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/WalletBuildTransactionModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/WalletBuildTransactionModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/WalletFileModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/WalletFileModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/WalletFileModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/WalletFileModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/WalletGeneralInfoModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/WalletGeneralInfoModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/WalletGeneralInfoModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/WalletGeneralInfoModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/WalletHistoryModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/WalletHistoryModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/WalletHistoryModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/WalletHistoryModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/WalletModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/WalletModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/WalletModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/WalletModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/WalletSendTransactionModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/WalletSendTransactionModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/WalletSendTransactionModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/WalletSendTransactionModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Api/Models/WalletStatsModel.cs b/src/Features/Blockcore.Features.Wallet.Host/Api/Models/WalletStatsModel.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Api/Models/WalletStatsModel.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Api/Models/WalletStatsModel.cs
diff --git a/src/Features/Blockcore.Features.Wallet.Host/Blockcore.Features.Wallet.Host.csproj b/src/Features/Blockcore.Features.Wallet.Host/Blockcore.Features.Wallet.Host.csproj
new file mode 100644
index 000000000..7373b2206
--- /dev/null
+++ b/src/Features/Blockcore.Features.Wallet.Host/Blockcore.Features.Wallet.Host.csproj
@@ -0,0 +1,27 @@
+
+
+ Blockcore Features Wallet Host
+ Blockcore.Features.Wallet.Host
+ Blockcore.Features.Wallet.Host
+ Blockcore.Features.Wallet.Host
+ False
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1701;1702;1705;IDE0008;
+
+
+
+
\ No newline at end of file
diff --git a/src/Features/Blockcore.Features.Wallet/Broadcasters/WalletGeneralInfoClientEvent.cs b/src/Features/Blockcore.Features.Wallet.Host/Broadcasters/WalletGeneralInfoClientEvent.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Broadcasters/WalletGeneralInfoClientEvent.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Broadcasters/WalletGeneralInfoClientEvent.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Broadcasters/WalletInfoBroadcaster.cs b/src/Features/Blockcore.Features.Wallet.Host/Broadcasters/WalletInfoBroadcaster.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Broadcasters/WalletInfoBroadcaster.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Broadcasters/WalletInfoBroadcaster.cs
diff --git a/src/Features/Blockcore.Features.Wallet/Helpers/SentTransactionItemModelComparer.cs b/src/Features/Blockcore.Features.Wallet.Host/Helpers/SentTransactionItemModelComparer.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/Helpers/SentTransactionItemModelComparer.cs
rename to src/Features/Blockcore.Features.Wallet.Host/Helpers/SentTransactionItemModelComparer.cs
diff --git a/src/Features/Blockcore.Features.Wallet/UI/AddressBookNotification.cs b/src/Features/Blockcore.Features.Wallet.Host/UI/AddressBookNotification.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/UI/AddressBookNotification.cs
rename to src/Features/Blockcore.Features.Wallet.Host/UI/AddressBookNotification.cs
diff --git a/src/Features/Blockcore.Features.Wallet/UI/CopyToClipboard.razor b/src/Features/Blockcore.Features.Wallet.Host/UI/CopyToClipboard.razor
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/UI/CopyToClipboard.razor
rename to src/Features/Blockcore.Features.Wallet.Host/UI/CopyToClipboard.razor
diff --git a/src/Features/Blockcore.Features.Wallet/UI/Dropdown.razor b/src/Features/Blockcore.Features.Wallet.Host/UI/Dropdown.razor
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/UI/Dropdown.razor
rename to src/Features/Blockcore.Features.Wallet.Host/UI/Dropdown.razor
diff --git a/src/Features/Blockcore.Features.Wallet/UI/DropdownListItem.razor b/src/Features/Blockcore.Features.Wallet.Host/UI/DropdownListItem.razor
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/UI/DropdownListItem.razor
rename to src/Features/Blockcore.Features.Wallet.Host/UI/DropdownListItem.razor
diff --git a/src/Features/Blockcore.Features.Wallet/UI/NavItem.cs b/src/Features/Blockcore.Features.Wallet.Host/UI/NavItem.cs
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/UI/NavItem.cs
rename to src/Features/Blockcore.Features.Wallet.Host/UI/NavItem.cs
diff --git a/src/Features/Blockcore.Features.Wallet/UI/Pages/Accounts.razor b/src/Features/Blockcore.Features.Wallet.Host/UI/Pages/Accounts.razor
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/UI/Pages/Accounts.razor
rename to src/Features/Blockcore.Features.Wallet.Host/UI/Pages/Accounts.razor
diff --git a/src/Features/Blockcore.Features.Wallet/UI/Pages/Modal/ModalAddressBookCreate.razor b/src/Features/Blockcore.Features.Wallet.Host/UI/Pages/Modal/ModalAddressBookCreate.razor
similarity index 97%
rename from src/Features/Blockcore.Features.Wallet/UI/Pages/Modal/ModalAddressBookCreate.razor
rename to src/Features/Blockcore.Features.Wallet.Host/UI/Pages/Modal/ModalAddressBookCreate.razor
index d7311eec7..6c4035734 100644
--- a/src/Features/Blockcore.Features.Wallet/UI/Pages/Modal/ModalAddressBookCreate.razor
+++ b/src/Features/Blockcore.Features.Wallet.Host/UI/Pages/Modal/ModalAddressBookCreate.razor
@@ -120,7 +120,7 @@ else
ModalService.Close();
NavigationManager.NavigateTo("walletsend/" + ModalService.Parameter.ToString().Split(Convert.ToChar("|"))[0] + "/" + ModalService.Parameter.ToString().Split(Convert.ToChar("|"))[1]);
- AddressBookNotification.AddressBookChanged(this, true);
+ Blockcore.Features.Wallet.UI.AddressBookNotification.AddressBookChanged(this, true);
// NavigationManager.NavigateTo("walletsend/MyWallet/account 0");
}
}
\ No newline at end of file
diff --git a/src/Features/Blockcore.Features.Wallet/UI/Pages/Modal/ModalAddressBookDelete.razor b/src/Features/Blockcore.Features.Wallet.Host/UI/Pages/Modal/ModalAddressBookDelete.razor
similarity index 97%
rename from src/Features/Blockcore.Features.Wallet/UI/Pages/Modal/ModalAddressBookDelete.razor
rename to src/Features/Blockcore.Features.Wallet.Host/UI/Pages/Modal/ModalAddressBookDelete.razor
index 238fb169c..703eae30e 100644
--- a/src/Features/Blockcore.Features.Wallet/UI/Pages/Modal/ModalAddressBookDelete.razor
+++ b/src/Features/Blockcore.Features.Wallet.Host/UI/Pages/Modal/ModalAddressBookDelete.razor
@@ -115,7 +115,7 @@ else
ModalService.Close();
NavigationManager.NavigateTo("walletsend/" + ModalService.Parameter.ToString().Split(Convert.ToChar("|"))[0] + "/" + ModalService.Parameter.ToString().Split(Convert.ToChar("|"))[1]);
- AddressBookNotification.AddressBookChanged(this, true);
+ Blockcore.Features.Wallet.UI.AddressBookNotification.AddressBookChanged(this, true);
}
private void CloseModalCanselRemove()
diff --git a/src/Features/Blockcore.Features.Wallet/UI/Pages/Modal/ModalViewSpendableTransactions.razor b/src/Features/Blockcore.Features.Wallet.Host/UI/Pages/Modal/ModalViewSpendableTransactions.razor
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/UI/Pages/Modal/ModalViewSpendableTransactions.razor
rename to src/Features/Blockcore.Features.Wallet.Host/UI/Pages/Modal/ModalViewSpendableTransactions.razor
diff --git a/src/Features/Blockcore.Features.Wallet/UI/Pages/Modal/ModalViewTransaction.razor b/src/Features/Blockcore.Features.Wallet.Host/UI/Pages/Modal/ModalViewTransaction.razor
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/UI/Pages/Modal/ModalViewTransaction.razor
rename to src/Features/Blockcore.Features.Wallet.Host/UI/Pages/Modal/ModalViewTransaction.razor
diff --git a/src/Features/Blockcore.Features.Wallet/UI/Pages/Modal/ModalWalletCreate.razor b/src/Features/Blockcore.Features.Wallet.Host/UI/Pages/Modal/ModalWalletCreate.razor
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/UI/Pages/Modal/ModalWalletCreate.razor
rename to src/Features/Blockcore.Features.Wallet.Host/UI/Pages/Modal/ModalWalletCreate.razor
diff --git a/src/Features/Blockcore.Features.Wallet/UI/Pages/Modal/ModalWalletRecover.razor b/src/Features/Blockcore.Features.Wallet.Host/UI/Pages/Modal/ModalWalletRecover.razor
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/UI/Pages/Modal/ModalWalletRecover.razor
rename to src/Features/Blockcore.Features.Wallet.Host/UI/Pages/Modal/ModalWalletRecover.razor
diff --git a/src/Features/Blockcore.Features.Wallet/UI/Pages/UTXOList.razor b/src/Features/Blockcore.Features.Wallet.Host/UI/Pages/UTXOList.razor
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/UI/Pages/UTXOList.razor
rename to src/Features/Blockcore.Features.Wallet.Host/UI/Pages/UTXOList.razor
diff --git a/src/Features/Blockcore.Features.Wallet/UI/Pages/WalletBroadcastTx.razor b/src/Features/Blockcore.Features.Wallet.Host/UI/Pages/WalletBroadcastTx.razor
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/UI/Pages/WalletBroadcastTx.razor
rename to src/Features/Blockcore.Features.Wallet.Host/UI/Pages/WalletBroadcastTx.razor
diff --git a/src/Features/Blockcore.Features.Wallet/UI/Pages/WalletReceive.razor b/src/Features/Blockcore.Features.Wallet.Host/UI/Pages/WalletReceive.razor
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/UI/Pages/WalletReceive.razor
rename to src/Features/Blockcore.Features.Wallet.Host/UI/Pages/WalletReceive.razor
diff --git a/src/Features/Blockcore.Features.Wallet/UI/Pages/WalletSend.razor b/src/Features/Blockcore.Features.Wallet.Host/UI/Pages/WalletSend.razor
similarity index 99%
rename from src/Features/Blockcore.Features.Wallet/UI/Pages/WalletSend.razor
rename to src/Features/Blockcore.Features.Wallet.Host/UI/Pages/WalletSend.razor
index 00d119227..8bf4e063c 100644
--- a/src/Features/Blockcore.Features.Wallet/UI/Pages/WalletSend.razor
+++ b/src/Features/Blockcore.Features.Wallet.Host/UI/Pages/WalletSend.razor
@@ -228,7 +228,7 @@
{
this.Fee = new Money(this.Network.MinTxFee).ToDecimal(MoneyUnit.BTC);
- AddressBookNotification.AddressBookChanged += AddressBookChanged;
+ Blockcore.Features.Wallet.UI.AddressBookNotification.AddressBookChanged += AddressBookChanged;
}
private async void AddressBookChanged(object sender, bool e)
{
diff --git a/src/Features/Blockcore.Features.Wallet/UI/Pages/WalletView.razor b/src/Features/Blockcore.Features.Wallet.Host/UI/Pages/WalletView.razor
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/UI/Pages/WalletView.razor
rename to src/Features/Blockcore.Features.Wallet.Host/UI/Pages/WalletView.razor
diff --git a/src/Features/Blockcore.Features.Wallet/UI/Pages/Wallets.razor b/src/Features/Blockcore.Features.Wallet.Host/UI/Pages/Wallets.razor
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/UI/Pages/Wallets.razor
rename to src/Features/Blockcore.Features.Wallet.Host/UI/Pages/Wallets.razor
diff --git a/src/Features/Blockcore.Features.Wallet/UI/_Imports.razor b/src/Features/Blockcore.Features.Wallet.Host/UI/_Imports.razor
similarity index 100%
rename from src/Features/Blockcore.Features.Wallet/UI/_Imports.razor
rename to src/Features/Blockcore.Features.Wallet.Host/UI/_Imports.razor
diff --git a/src/Features/Blockcore.Features.Wallet.Host/WalletHostFeature.cs b/src/Features/Blockcore.Features.Wallet.Host/WalletHostFeature.cs
new file mode 100644
index 000000000..ccfa952fb
--- /dev/null
+++ b/src/Features/Blockcore.Features.Wallet.Host/WalletHostFeature.cs
@@ -0,0 +1,49 @@
+using System.Threading.Tasks;
+using Blockcore.Broadcasters;
+using Blockcore.Builder;
+using Blockcore.Builder.Feature;
+using Blockcore.Features.Wallet.Broadcasters;
+using Blockcore.Features.Wallet.UI;
+using Blockcore.Interfaces.UI;
+using Microsoft.Extensions.DependencyInjection;
+
+namespace Blockcore.Features.Wallet
+{
+ public class WalletHostFeature : FullNodeFeature
+ {
+ public WalletHostFeature()
+ {
+ }
+
+ ///
+ public override Task InitializeAsync()
+ {
+ return Task.CompletedTask;
+ }
+
+ ///
+ public override void Dispose()
+ {
+ }
+ }
+
+ public static class FullNodeBuilderWalletHostExtension
+ {
+ public static IFullNodeBuilder UseWalletHost(this IFullNodeBuilder fullNodeBuilder)
+ {
+ fullNodeBuilder.ConfigureFeature(features =>
+ {
+ features
+ .AddFeature()
+ .DependOn()
+ .FeatureServices(services =>
+ {
+ services.AddSingleton();
+ services.AddSingleton();
+ });
+ });
+
+ return fullNodeBuilder;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Features/Blockcore.Features.Wallet/Blockcore.Features.Wallet.csproj b/src/Features/Blockcore.Features.Wallet/Blockcore.Features.Wallet.csproj
index 509c6bc4c..a6dddd4d0 100644
--- a/src/Features/Blockcore.Features.Wallet/Blockcore.Features.Wallet.csproj
+++ b/src/Features/Blockcore.Features.Wallet/Blockcore.Features.Wallet.csproj
@@ -19,15 +19,14 @@
all
+
-
-
diff --git a/src/Features/Blockcore.Features.Wallet/WalletFeature.cs b/src/Features/Blockcore.Features.Wallet/WalletFeature.cs
index 2f103337f..ae2ca6204 100644
--- a/src/Features/Blockcore.Features.Wallet/WalletFeature.cs
+++ b/src/Features/Blockcore.Features.Wallet/WalletFeature.cs
@@ -2,29 +2,20 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
-using Blockcore.Broadcasters;
using Blockcore.Builder;
using Blockcore.Builder.Feature;
using Blockcore.Configuration.Logging;
-using Blockcore.Connection;
-using Blockcore.Connection.Broadcasting;
using Blockcore.Consensus;
using Blockcore.Features.BlockStore;
using Blockcore.Features.MemoryPool;
-using Blockcore.Features.MemoryPool.Broadcasting;
-using Blockcore.Features.RPC;
using Blockcore.Features.Wallet.AddressBook;
-using Blockcore.Features.Wallet.Broadcasters;
using Blockcore.Features.Wallet.Interfaces;
using Blockcore.Features.Wallet.Types;
-using Blockcore.Features.Wallet.UI;
using Blockcore.Interfaces;
using Blockcore.Interfaces.UI;
using Blockcore.Networks;
-using Blockcore.Signals;
using Blockcore.Utilities;
using Microsoft.Extensions.DependencyInjection;
-using NBitcoin;
using NBitcoin.Policy;
namespace Blockcore.Features.Wallet
@@ -159,7 +150,6 @@ public static IFullNodeBuilder UseWallet(this IFullNodeBuilder fullNodeBuilder)
.AddFeature()
.DependOn()
.DependOn()
- .DependOn()
.FeatureServices(services =>
{
services.AddSingleton();
@@ -170,8 +160,6 @@ public static IFullNodeBuilder UseWallet(this IFullNodeBuilder fullNodeBuilder)
services.AddSingleton(new ScriptAddressReader());
services.AddSingleton();
services.AddSingleton();
- services.AddSingleton();
- services.AddSingleton();
});
});
diff --git a/src/Features/Blockcore.Features.WalletWatchOnly/Blockcore.Features.WalletWatchOnly.csproj b/src/Features/Blockcore.Features.WalletWatchOnly/Blockcore.Features.WalletWatchOnly.csproj
index 205d13795..d50856943 100644
--- a/src/Features/Blockcore.Features.WalletWatchOnly/Blockcore.Features.WalletWatchOnly.csproj
+++ b/src/Features/Blockcore.Features.WalletWatchOnly/Blockcore.Features.WalletWatchOnly.csproj
@@ -13,6 +13,7 @@
+
diff --git a/src/Networks/Blockcore.Networks.X1/Components/ComponentRegistration.cs b/src/Networks/Blockcore.Networks.X1/Components/ComponentRegistration.cs
index 3f49c358a..1a967db92 100644
--- a/src/Networks/Blockcore.Networks.X1/Components/ComponentRegistration.cs
+++ b/src/Networks/Blockcore.Networks.X1/Components/ComponentRegistration.cs
@@ -1,5 +1,4 @@
using Blockcore.Base;
-using Blockcore.Broadcasters;
using Blockcore.Builder;
using Blockcore.Configuration.Logging;
using Blockcore.Consensus;
@@ -11,12 +10,8 @@
using Blockcore.Features.Consensus.Rules;
using Blockcore.Features.MemoryPool;
using Blockcore.Features.Miner;
-using Blockcore.Features.Miner.Broadcasters;
using Blockcore.Features.Miner.Interfaces;
-using Blockcore.Features.Miner.UI;
-using Blockcore.Features.RPC;
using Blockcore.Interfaces;
-using Blockcore.Interfaces.UI;
using Blockcore.Mining;
using Microsoft.Extensions.DependencyInjection;
@@ -73,7 +68,6 @@ static IFullNodeBuilder AddX1PowPosMining(this IFullNodeBuilder fullNodeBuilder)
features
.AddFeature()
.DependOn()
- .DependOn()
// TODO: Need a better way to check dependencies. This is really just dependent on IWalletManager...
// Alternatively "DependsOn" should take a list of features that will satisfy the dependency.
//.DependOn()
@@ -87,8 +81,8 @@ static IFullNodeBuilder AddX1PowPosMining(this IFullNodeBuilder fullNodeBuilder)
services.AddSingleton();
services.AddSingleton();
services.AddSingleton();
- services.AddSingleton();
- services.AddSingleton();
+ //services.AddSingleton();
+ //services.AddSingleton();
});
});
diff --git a/src/Networks/Blockcore.Networks.X1/Components/X1MiningFeature.cs b/src/Networks/Blockcore.Networks.X1/Components/X1MiningFeature.cs
index 6ac1fff74..2b12d62d9 100644
--- a/src/Networks/Blockcore.Networks.X1/Components/X1MiningFeature.cs
+++ b/src/Networks/Blockcore.Networks.X1/Components/X1MiningFeature.cs
@@ -3,28 +3,19 @@
using System.Text;
using System.Threading.Tasks;
using Blockcore.Base;
-using Blockcore.Broadcasters;
using Blockcore.Builder;
using Blockcore.Builder.Feature;
using Blockcore.Configuration;
-using Blockcore.Configuration.Logging;
using Blockcore.Configuration.Settings;
using Blockcore.Consensus.ScriptInfo;
using Blockcore.Features.BlockStore;
-using Blockcore.Features.MemoryPool;
using Blockcore.Features.Miner;
-using Blockcore.Features.Miner.Broadcasters;
using Blockcore.Features.Miner.Interfaces;
using Blockcore.Features.Miner.Staking;
-using Blockcore.Features.RPC;
using Blockcore.Features.Wallet;
-using Blockcore.Features.Wallet.UI;
-using Blockcore.Interfaces.UI;
-using Blockcore.Mining;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using NBitcoin;
-using NBitcoin.DataEncoders;
namespace Blockcore.Networks.X1.Components
{
diff --git a/src/Tests/Blockcore.Features.BlockStore.Tests/AddressIndexerTests.cs b/src/Tests/Blockcore.Features.BlockStore.Tests/AddressIndexerTests.cs
index 9147fc2ad..86b76f00c 100644
--- a/src/Tests/Blockcore.Features.BlockStore.Tests/AddressIndexerTests.cs
+++ b/src/Tests/Blockcore.Features.BlockStore.Tests/AddressIndexerTests.cs
@@ -10,7 +10,7 @@
using Blockcore.Consensus.Chain;
using Blockcore.Consensus.ScriptInfo;
using Blockcore.Consensus.TransactionInfo;
-using Blockcore.Controllers.Models;
+//using Blockcore.Controllers.Models;
using Blockcore.Features.BlockStore.AddressIndexing;
using Blockcore.Networks;
using Blockcore.Networks.Bitcoin;
diff --git a/src/Tests/Blockcore.Features.BlockStore.Tests/Blockcore.Features.BlockStore.Tests.csproj b/src/Tests/Blockcore.Features.BlockStore.Tests/Blockcore.Features.BlockStore.Tests.csproj
index bbc878368..5ea1d4c07 100644
--- a/src/Tests/Blockcore.Features.BlockStore.Tests/Blockcore.Features.BlockStore.Tests.csproj
+++ b/src/Tests/Blockcore.Features.BlockStore.Tests/Blockcore.Features.BlockStore.Tests.csproj
@@ -25,6 +25,7 @@
+
diff --git a/src/Tests/Blockcore.Features.Miner.Tests/Blockcore.Features.Miner.Tests.csproj b/src/Tests/Blockcore.Features.Miner.Tests/Blockcore.Features.Miner.Tests.csproj
index 0bda35f08..07f1431d5 100644
--- a/src/Tests/Blockcore.Features.Miner.Tests/Blockcore.Features.Miner.Tests.csproj
+++ b/src/Tests/Blockcore.Features.Miner.Tests/Blockcore.Features.Miner.Tests.csproj
@@ -26,6 +26,7 @@
+
diff --git a/src/Tests/Blockcore.Features.RPC.Tests/Blockcore.Features.RPC.Tests.csproj b/src/Tests/Blockcore.Features.RPC.Tests/Blockcore.Features.RPC.Tests.csproj
index 8e6ecbc89..a15a6281a 100644
--- a/src/Tests/Blockcore.Features.RPC.Tests/Blockcore.Features.RPC.Tests.csproj
+++ b/src/Tests/Blockcore.Features.RPC.Tests/Blockcore.Features.RPC.Tests.csproj
@@ -28,6 +28,7 @@
+
diff --git a/src/Tests/Blockcore.Features.Wallet.Tests/Blockcore.Features.Wallet.Tests.csproj b/src/Tests/Blockcore.Features.Wallet.Tests/Blockcore.Features.Wallet.Tests.csproj
index 52df95844..c14301d95 100644
--- a/src/Tests/Blockcore.Features.Wallet.Tests/Blockcore.Features.Wallet.Tests.csproj
+++ b/src/Tests/Blockcore.Features.Wallet.Tests/Blockcore.Features.Wallet.Tests.csproj
@@ -27,6 +27,7 @@
+
diff --git a/src/Tests/Blockcore.IntegrationTests.Common/Blockcore.IntegrationTests.Common.csproj b/src/Tests/Blockcore.IntegrationTests.Common/Blockcore.IntegrationTests.Common.csproj
index d1f0448a5..ebf9b07b0 100644
--- a/src/Tests/Blockcore.IntegrationTests.Common/Blockcore.IntegrationTests.Common.csproj
+++ b/src/Tests/Blockcore.IntegrationTests.Common/Blockcore.IntegrationTests.Common.csproj
@@ -8,6 +8,7 @@
+
diff --git a/src/Tests/Blockcore.IntegrationTests/Blockcore.IntegrationTests.csproj b/src/Tests/Blockcore.IntegrationTests/Blockcore.IntegrationTests.csproj
index 045c3ebf6..db9361a57 100644
--- a/src/Tests/Blockcore.IntegrationTests/Blockcore.IntegrationTests.csproj
+++ b/src/Tests/Blockcore.IntegrationTests/Blockcore.IntegrationTests.csproj
@@ -30,6 +30,11 @@
+
+
+
+
+
diff --git a/src/Tests/Blockcore.Tests/Blockcore.Tests.csproj b/src/Tests/Blockcore.Tests/Blockcore.Tests.csproj
index a8c283e55..2134f5bd1 100644
--- a/src/Tests/Blockcore.Tests/Blockcore.Tests.csproj
+++ b/src/Tests/Blockcore.Tests/Blockcore.Tests.csproj
@@ -26,6 +26,7 @@
+