public void GetMiningTimestamp() { var tool = new KeyTool(new DataFolder(string.Empty)); Key key = tool.GeneratePrivateKey(); this.network = new TestPoANetwork(new List <PubKey>() { tool.GeneratePrivateKey().PubKey, key.PubKey, tool.GeneratePrivateKey().PubKey }); FederationManager fedManager = PoATestsBase.CreateFederationManager(this, this.network, new ExtendedLoggerFactory()); this.slotsManager = new SlotsManager(this.network, fedManager, new LoggerFactory()); List <PubKey> fedKeys = this.federationManager.GetFederationMembers(); uint roundStart = this.consensusOptions.TargetSpacingSeconds * (uint)fedKeys.Count * 5; fedManager.SetPrivatePropertyValue(nameof(FederationManager.IsFederationMember), true); fedManager.SetPrivatePropertyValue(nameof(FederationManager.FederationMemberKey), key); Assert.Equal(roundStart + this.consensusOptions.TargetSpacingSeconds, this.slotsManager.GetMiningTimestamp(roundStart)); Assert.Equal(roundStart + this.consensusOptions.TargetSpacingSeconds, this.slotsManager.GetMiningTimestamp(roundStart + 4)); roundStart += this.consensusOptions.TargetSpacingSeconds * (uint)fedKeys.Count; Assert.Equal(roundStart + this.consensusOptions.TargetSpacingSeconds, this.slotsManager.GetMiningTimestamp(roundStart - 5)); Assert.Equal(roundStart + this.consensusOptions.TargetSpacingSeconds, this.slotsManager.GetMiningTimestamp(roundStart - this.consensusOptions.TargetSpacingSeconds + 1)); Assert.True(this.slotsManager.IsValidTimestamp(this.slotsManager.GetMiningTimestamp(roundStart - 5))); }
public void GetMiningTimestamp() { var tool = new KeyTool(null); Key key = tool.GeneratePrivateKey(); this.network = new TestPoANetwork(new List <PubKey>() { tool.GeneratePrivateKey().PubKey, key.PubKey, tool.GeneratePrivateKey().PubKey }); var fedManager = new FederationManager(NodeSettings.Default(this.network), this.network, new LoggerFactory()); this.slotsManager = new SlotsManager(this.network, fedManager, new LoggerFactory()); List <PubKey> fedKeys = this.consensusOptions.FederationPublicKeys; uint roundStart = this.consensusOptions.TargetSpacingSeconds * (uint)fedKeys.Count * 5; fedManager.SetPrivatePropertyValue(nameof(FederationManager.IsFederationMember), true); fedManager.SetPrivatePropertyValue(nameof(FederationManager.FederationMemberKey), key); Assert.Equal(roundStart + this.consensusOptions.TargetSpacingSeconds, this.slotsManager.GetMiningTimestamp(roundStart)); Assert.Equal(roundStart + this.consensusOptions.TargetSpacingSeconds, this.slotsManager.GetMiningTimestamp(roundStart + 4)); roundStart += this.consensusOptions.TargetSpacingSeconds * (uint)fedKeys.Count; Assert.Equal(roundStart + this.consensusOptions.TargetSpacingSeconds, this.slotsManager.GetMiningTimestamp(roundStart - 5)); Assert.Equal(roundStart + this.consensusOptions.TargetSpacingSeconds, this.slotsManager.GetMiningTimestamp(roundStart - this.consensusOptions.TargetSpacingSeconds + 1)); Assert.True(this.slotsManager.IsValidTimestamp(this.slotsManager.GetMiningTimestamp(roundStart - 5))); }