public void CallWithDependencies() { string dir = CreateTestDir(this); IFullNode fullNode = this.BuildServicedNode(dir); var controller = fullNode.NodeController <FullNodeController>(); Assert.NotNull(fullNode.NodeService <INetworkDifficulty>(true)); GetInfoModel info = controller.GetInfo(); NodeSettings nodeSettings = NodeSettings.Default(fullNode.Network); uint expectedProtocolVersion = fullNode.Network.Consensus.ConsensusFactory.Protocol.ProtocolVersion; decimal expectedRelayFee = nodeSettings.MinRelayTxFeeRate.FeePerK.ToUnit(NBitcoin.MoneyUnit.BTC); Assert.NotNull(info); Assert.Equal(0, info.Blocks); Assert.NotEqual <uint>(0, info.Version); Assert.Equal(expectedProtocolVersion, info.ProtocolVersion); Assert.Equal(0, info.TimeOffset); Assert.Equal(0, info.Connections); Assert.NotNull(info.Proxy); Assert.Equal(0, info.Difficulty); Assert.True(info.Testnet); Assert.Equal(expectedRelayFee, info.RelayFee); Assert.Empty(info.Errors); }
public async Task CanCall_GetRawMempoolAsync() { string dir = CreateTestDir(this); IFullNode fullNode = this.BuildServicedNode(dir); var controller = fullNode.NodeController <MempoolController>(); List <uint256> result = await controller.GetRawMempool(); Assert.NotNull(result); }
public void CanCall_GetBlockHash() { string dir = CreateTestDir(this); IFullNode fullNode = this.BuildServicedNode(dir); var controller = fullNode.NodeController <ConsensusController>(); uint256 result = controller.GetBlockHashRPC(0); Assert.Null(result); }
public void CanCall_AddNode_AddsNodeToCollection() { string testDirectory = CreateTestDir(this); IFullNode fullNode = this.BuildServicedNode(testDirectory); var controller = fullNode.NodeController <ConnectionManagerController>(); var connectionManager = fullNode.NodeService <IConnectionManager>(); controller.AddNodeRPC("0.0.0.0", "add"); Assert.Single(connectionManager.ConnectionSettings.RetrieveAddNodes()); }
public void CanCall_AddNode() { string testDirectory = CreateTestDir(this); IFullNode fullNode = this.BuildServicedNode(testDirectory); fullNode.Start(); var controller = fullNode.NodeController <ConnectionManagerController>(); Assert.True(controller.AddNodeRPC("0.0.0.0", "add")); Assert.Throws <ArgumentException>(() => { controller.AddNodeRPC("0.0.0.0", "notarealcommand"); }); Assert.ThrowsAny <SocketException>(() => { controller.AddNodeRPC("a.b.c.d", "onetry"); }); Assert.True(controller.AddNodeRPC("0.0.0.0", "remove")); }
public void GetStakingInfo_StartStaking() { IFullNode fullNode = StratisBitcoinPosRunner.BuildStakingNode(TestBase.CreateTestDir(this), false); var node = fullNode as FullNode; Task fullNodeRunTask = fullNode.RunAsync(); var nodeLifetime = fullNode.NodeService <INodeLifetime>(); nodeLifetime.ApplicationStarted.WaitHandle.WaitOne(); var controller = fullNode.NodeController <StakingRpcController>(); var walletManager = node.NodeService <IWalletManager>() as WalletManager; string password = "******"; string passphrase = "passphrase"; // create the wallet walletManager.CreateWallet(password, "test", passphrase); Assert.NotNull(fullNode.NodeService <IPosMinting>(true)); GetStakingInfoModel info = controller.GetStakingInfo(); Assert.NotNull(info); Assert.False(info.Enabled); Assert.False(info.Staking); controller.StartStaking("test", "test"); info = controller.GetStakingInfo(); Assert.NotNull(info); Assert.True(info.Enabled); Assert.False(info.Staking); nodeLifetime.StopApplication(); nodeLifetime.ApplicationStopped.WaitHandle.WaitOne(); fullNode.Dispose(); Assert.False(fullNodeRunTask.IsFaulted); }
public void GetStakingInfo_StakingEnabled() { IFullNode fullNode = StratisBitcoinPosRunner.BuildStakingNode(TestBase.CreateTestDir(this)); Task fullNodeRunTask = fullNode.RunAsync(); var nodeLifetime = fullNode.NodeService <INodeLifetime>(); nodeLifetime.ApplicationStarted.WaitHandle.WaitOne(); var controller = fullNode.NodeController <StakingRpcController>(); Assert.NotNull(fullNode.NodeService <IPosMinting>(true)); GetStakingInfoModel info = controller.GetStakingInfo(); Assert.NotNull(info); Assert.True(info.Enabled); Assert.False(info.Staking); nodeLifetime.StopApplication(); nodeLifetime.ApplicationStopped.WaitHandle.WaitOne(); fullNode.Dispose(); Assert.False(fullNodeRunTask.IsFaulted); }