Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }