-
-
-
@Alert
-
+}
+else
+{
+
-
}
@code {
-
- bool ShowForm { get; set; } = true;
+
+ bool ShowForm { get; set; } = true;
private void CloseModal()
{
- ModalService.Close();
+ ModalService.Close();
NavigationManager.NavigateTo("walletview/" + WalletName + "/account 0");
StateHasChanged();
}
-
+
public string WalletName { get; set; }
public string Mnemonic { get; set; }
private string Password { get; set; }
@@ -115,6 +117,6 @@
var wallet = this.WalletManager.RecoverWallet(this.Password, this.WalletName, this.Mnemonic, this.DateTimeProvider.GetUtcNow(), passphrase: this.Passphrase);
this.Alert = "Your wallet has now been recovered.";
ShowForm = false;
+ await Task.CompletedTask;
}
-
}
\ No newline at end of file
diff --git a/src/Features/Blockcore.Features.Wallet/UI/Pages/Wallets.razor b/src/Features/Blockcore.Features.Wallet/UI/Pages/Wallets.razor
index 23c2c5004..9d57d27ad 100644
--- a/src/Features/Blockcore.Features.Wallet/UI/Pages/Wallets.razor
+++ b/src/Features/Blockcore.Features.Wallet/UI/Pages/Wallets.razor
@@ -81,10 +81,10 @@
-
diff --git a/src/Features/Blockcore.Features.WalletWatchOnly/API/Controllers/WatchOnlyWalleRPCController.cs b/src/Features/Blockcore.Features.WalletWatchOnly/API/Controllers/WatchOnlyWalleRPCController.cs
index 0013e5477..f0f5f3413 100644
--- a/src/Features/Blockcore.Features.WalletWatchOnly/API/Controllers/WatchOnlyWalleRPCController.cs
+++ b/src/Features/Blockcore.Features.WalletWatchOnly/API/Controllers/WatchOnlyWalleRPCController.cs
@@ -55,7 +55,9 @@ public class WatchOnlyWalleRPCController : FeatureController
///
/// The wallet name set by selectwallet method. This is static since the controller is a stateless type. This value should probably be cached by an injected service in the future.
///
+#pragma warning disable 649
private static readonly string CurrentWalletName;
+#pragma warning restore 649
///
public WatchOnlyWalleRPCController(
diff --git a/src/Features/Persistence/Blockcore.Features.Consensus.Persistence.LevelDb/PersistenceProvider.cs b/src/Features/Persistence/Blockcore.Features.Consensus.Persistence.LevelDb/PersistenceProvider.cs
index bec452b5c..969c45902 100644
--- a/src/Features/Persistence/Blockcore.Features.Consensus.Persistence.LevelDb/PersistenceProvider.cs
+++ b/src/Features/Persistence/Blockcore.Features.Consensus.Persistence.LevelDb/PersistenceProvider.cs
@@ -6,7 +6,17 @@
namespace Blockcore.Features.Consensus.Persistence.LevelDb
{
- public class PersistenceProvider : PersistenceProviderBase
+ public class PowPersistenceProvider : PersistenceProviderBase
+ {
+ public override string Tag => LevelDbPersistence.Name;
+
+ public override void AddRequiredServices(IServiceCollection services)
+ {
+ services.AddSingleton();
+ }
+ }
+
+ public class PosPersistenceProvider : PersistenceProviderBase
{
public override string Tag => LevelDbPersistence.Name;
diff --git a/src/Features/Persistence/Blockcore.Features.Consensus.Persistence.RocksDb/PersistenceProvider.cs b/src/Features/Persistence/Blockcore.Features.Consensus.Persistence.RocksDb/PersistenceProvider.cs
index 9118c0481..de96a6d03 100644
--- a/src/Features/Persistence/Blockcore.Features.Consensus.Persistence.RocksDb/PersistenceProvider.cs
+++ b/src/Features/Persistence/Blockcore.Features.Consensus.Persistence.RocksDb/PersistenceProvider.cs
@@ -6,7 +6,17 @@
namespace Blockcore.Features.Consensus.Persistence.RocksDb
{
- public class PersistenceProvider : PersistenceProviderBase
+ public class PowPersistenceProvider : PersistenceProviderBase
+ {
+ public override string Tag => RocksDbPersistence.Name;
+
+ public override void AddRequiredServices(IServiceCollection services)
+ {
+ services.AddSingleton();
+ }
+ }
+
+ public class PosPersistenceProvider : PersistenceProviderBase
{
public override string Tag => RocksDbPersistence.Name;
diff --git a/src/None.ruleset b/src/None.ruleset
deleted file mode 100644
index b9ef06d4b..000000000
--- a/src/None.ruleset
+++ /dev/null
@@ -1,767 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Tests/Blockcore.Features.NodeHost.Tests/ApiSettingsTest.cs b/src/Tests/Blockcore.Features.NodeHost.Tests/ApiSettingsTest.cs
index 46b6a13c1..46b0632e5 100644
--- a/src/Tests/Blockcore.Features.NodeHost.Tests/ApiSettingsTest.cs
+++ b/src/Tests/Blockcore.Features.NodeHost.Tests/ApiSettingsTest.cs
@@ -66,7 +66,7 @@ public void GivenApiPortIsProvided_ThenPortIsUsedWithDefaultApiUri()
{
// Arrange.
int customPort = 55555;
- var nodeSettings = new NodeSettings(this.Network, args:new[] { $"-apiport={customPort}" });
+ var nodeSettings = new NodeSettings(this.Network, args: new[] { $"-apiport={customPort}" });
// Act.
NodeHostSettings settings = FullNodeSetup(nodeSettings);
@@ -85,12 +85,11 @@ public void GivenApiUriIsProvided_AndGivenBitcoinNetwork_ThenApiUriIsUsedWithDef
// Arrange.
string customApiUri = "http://0.0.0.0";
Network network = KnownNetworks.Main;
- var nodeSettings = new NodeSettings(network, args:new[] { $"-apiuri={customApiUri}" });
+ var nodeSettings = new NodeSettings(network, args: new[] { $"-apiuri={customApiUri}" });
// Act.
NodeHostSettings settings = FullNodeSetup(nodeSettings);
-
// Assert.
Assert.Equal(network.DefaultAPIPort, settings.ApiPort);
Assert.Equal(new Uri($"{customApiUri}:{network.DefaultAPIPort}"), settings.ApiUri);
@@ -105,7 +104,7 @@ public void GivenApiUriIsProvided_AndGivenStratisNetwork_ThenApiUriIsUsedWithDef
// Arrange.
string customApiUri = "http://0.0.0.0";
Network network = KnownNetworks.StratisMain;
- var nodeSettings = new NodeSettings(network, args:new[] { $"-apiuri={customApiUri}" });
+ var nodeSettings = new NodeSettings(network, args: new[] { $"-apiuri={customApiUri}" });
// Act.
NodeHostSettings settings = FullNodeSetup(nodeSettings);
@@ -125,7 +124,7 @@ public void GivenApiUri_AndApiPortIsProvided_AndGivenBitcoinNetwork_ThenApiUriIs
string customApiUri = "http://0.0.0.0";
int customPort = 55555;
Network network = KnownNetworks.Main;
- var nodeSettings = new NodeSettings(network, args:new[] { $"-apiuri={customApiUri}", $"-apiport={customPort}" });
+ var nodeSettings = new NodeSettings(network, args: new[] { $"-apiuri={customApiUri}", $"-apiport={customPort}" });
// Act.
NodeHostSettings settings = FullNodeSetup(nodeSettings);
@@ -145,7 +144,7 @@ public void GivenApiUriIncludingPortIsProvided_ThenUseThePassedApiUri()
int customPort = 5522;
string customApiUri = $"http://0.0.0.0:{customPort}";
Network network = KnownNetworks.Main;
- var nodeSettings = new NodeSettings(network, args:new[] { $"-apiuri={customApiUri}" });
+ var nodeSettings = new NodeSettings(network, args: new[] { $"-apiuri={customApiUri}" });
// Act.
NodeHostSettings settings = FullNodeSetup(nodeSettings);
@@ -267,13 +266,22 @@ public void GivenUseHttpsAndNoCertificateFilePath_ThenShouldThrowConfigurationEx
private static NodeHostSettings FullNodeSetup(NodeSettings nodeSettings)
{
- return new FullNodeBuilder()
+ IFullNodeBuilder node = new FullNodeBuilder()
.UsePersistenceProviderMananger(new TestPersistenceProviderManager(nodeSettings))
.UseNodeSettings(nodeSettings)
- .UseNodeHost()
- .UsePowConsensus()
- .Build()
- .NodeService();
+ .UseNodeHost();
+
+ if (nodeSettings.Network.Consensus.IsProofOfStake)
+ {
+ node.UsePosConsensus();
+ }
+ else
+ {
+ node.UsePowConsensus();
+ }
+
+ return node.Build()
+ .NodeService();
}
}
-}
+}
\ No newline at end of file
diff --git a/src/Tests/Blockcore.IntegrationTests/ColdStakingTests.cs b/src/Tests/Blockcore.IntegrationTests/ColdStakingTests.cs
index a9465d111..d56620645 100644
--- a/src/Tests/Blockcore.IntegrationTests/ColdStakingTests.cs
+++ b/src/Tests/Blockcore.IntegrationTests/ColdStakingTests.cs
@@ -21,9 +21,9 @@ namespace Blockcore.IntegrationTests
///
public class StratisOverrideRegTest : StratisRegTest
{
- public StratisOverrideRegTest() : base()
+ public StratisOverrideRegTest(string name = null) : base()
{
- this.Name = Guid.NewGuid().ToString();
+ this.Name = name ?? Guid.NewGuid().ToString();
}
}
diff --git a/src/Tests/Blockcore.IntegrationTests/ConsensusManagerTests.cs b/src/Tests/Blockcore.IntegrationTests/ConsensusManagerTests.cs
index ed67ed945..6e7e68e8d 100644
--- a/src/Tests/Blockcore.IntegrationTests/ConsensusManagerTests.cs
+++ b/src/Tests/Blockcore.IntegrationTests/ConsensusManagerTests.cs
@@ -523,7 +523,7 @@ public void ConsensusManager_Fork_Occurs_When_Stake_Coins_Are_Spent_And_Found_In
{
using (NodeBuilder builder = NodeBuilder.Create(this))
{
- var network = new StratisOverrideRegTest();
+ var network = new StratisOverrideRegTest("stake_coins");
var sharedMnemonic = new Mnemonic(Wordlist.English, WordCount.Twelve).ToString();
@@ -588,7 +588,7 @@ public void ConsensusManager_Fork_Occurs_When_Stake_Coins_Are_Mined_And_Found_In
{
using (NodeBuilder builder = NodeBuilder.Create(this))
{
- var network = new StratisOverrideRegTest();
+ var network = new StratisOverrideRegTest("mined_coins");
var sharedMnemonic = new Mnemonic(Wordlist.English, WordCount.Twelve).ToString();
diff --git a/src/Tests/Blockcore.Tests.Common/TestPersistenceProviderManager.cs b/src/Tests/Blockcore.Tests.Common/TestPersistenceProviderManager.cs
index 83531cded..074fde398 100644
--- a/src/Tests/Blockcore.Tests.Common/TestPersistenceProviderManager.cs
+++ b/src/Tests/Blockcore.Tests.Common/TestPersistenceProviderManager.cs
@@ -16,13 +16,26 @@ public TestPersistenceProviderManager(NodeSettings nodeSettings) : base(nodeSett
public override void Initialize()
{
- // manually register LevelDb implementation
- this.persistenceProviders["LevelDb".ToLowerInvariant()] = new System.Collections.Generic.List
+ if (this.nodeSettings != null && this.nodeSettings.Network.Consensus.IsProofOfStake)
{
- new Features.Base.Persistence.LevelDb.PersistenceProvider(),
- new Features.Consensus.Persistence.LevelDb.PersistenceProvider(),
- new Features.BlockStore.Persistence.LevelDb.PersistenceProvider(),
- };
+ // manually register LevelDb implementation
+ this.persistenceProviders["LevelDb".ToLowerInvariant()] = new System.Collections.Generic.List
+ {
+ new Features.Base.Persistence.LevelDb.PersistenceProvider(),
+ new Features.Consensus.Persistence.LevelDb.PosPersistenceProvider(),
+ new Features.BlockStore.Persistence.LevelDb.PersistenceProvider(),
+ };
+ }
+ else
+ {
+ // manually register LevelDb implementation
+ this.persistenceProviders["LevelDb".ToLowerInvariant()] = new System.Collections.Generic.List
+ {
+ new Features.Base.Persistence.LevelDb.PersistenceProvider(),
+ new Features.Consensus.Persistence.LevelDb.PowPersistenceProvider(),
+ new Features.BlockStore.Persistence.LevelDb.PersistenceProvider(),
+ };
+ }
}
}
-}
+}
\ No newline at end of file