public TipsManagerTests() : base(KnownNetworks.StratisMain) { this.loggerFactory = new LoggerFactory(); string dir = CreateTestDir(this); this.keyValueRepo = new LevelDbKeyValueRepository(dir, new DataStoreSerializer(this.Network.Consensus.ConsensusFactory)); this.tipsManager = new TipsManager(this.keyValueRepo, this.loggerFactory); this.mainChainHeaders = ChainedHeadersHelper.CreateConsecutiveHeaders(20, ChainedHeadersHelper.CreateGenesisChainedHeader(this.Network), true); }
public static IFederationManager CreateFederationManager(object caller, Network network, LoggerFactory loggerFactory, ISignals signals) { string dir = TestBase.CreateTestDir(caller); var keyValueRepo = new LevelDbKeyValueRepository(dir, new DataStoreSerializer(network.Consensus.ConsensusFactory)); var settings = new NodeSettings(network, args: new string[] { $"-datadir={dir}" }); var federationManager = new FederationManager(settings, network, loggerFactory, keyValueRepo, signals); federationManager.Initialize(); return(federationManager); }
public async Task FinalizedHeightSavedOnDiskAsync() { string dir = CreateTestDir(this); var kvRepo = new LevelDbKeyValueRepository(dir, new DataStoreSerializer(this.Network.Consensus.ConsensusFactory)); var asyncMock = new Mock <IAsyncProvider>(); asyncMock.Setup(a => a.RegisterTask(It.IsAny <string>(), It.IsAny <Task>())); using (var repo = new FinalizedBlockInfoRepository(kvRepo, this.loggerFactory, asyncMock.Object)) { repo.SaveFinalizedBlockHashAndHeight(uint256.One, 777); } using (var repo = new FinalizedBlockInfoRepository(kvRepo, this.loggerFactory, asyncMock.Object)) { await repo.LoadFinalizedBlockInfoAsync(this.Network); Assert.Equal(777, repo.GetFinalizedBlockInfo().Height); } }
public void RewardClaimer_RetrieveSingleDeposits() { DataFolder dataFolder = TestBase.CreateDataFolder(this); var keyValueRepository = new LevelDbKeyValueRepository(dataFolder, this.dbreezeSerializer); // Create a "chain" of 30 blocks. this.blocks = ChainedHeadersHelper.CreateConsecutiveHeadersAndBlocks(30, true, network: this.network, chainIndexer: this.chainIndexer, withCoinbaseAndCoinStake: true, createCirrusReward: true); using (var rewardClaimer = new RewardClaimer(this.broadCasterManager, this.chainIndexer, this.consensusManager, this.initialBlockDownloadState, keyValueRepository, this.network, this.signals)) { var depositExtractor = new DepositExtractor(this.federatedPegSettings, this.network, this.opReturnDataReader); // Add 5 distribution deposits from block 11 through to 15. for (int i = 11; i <= 15; i++) { Transaction rewardTransaction = rewardClaimer.BuildRewardTransaction(false); IDeposit deposit = depositExtractor.ExtractDepositFromTransaction(rewardTransaction, i, this.blocks[i].Block.GetHash()); Assert.NotNull(deposit); } } }
public void RewardClaimer_RetrieveBatchedDeposits() { DataFolder dataFolder = TestBase.CreateDataFolder(this); var keyValueRepository = new LevelDbKeyValueRepository(dataFolder, this.dbreezeSerializer); // Create a "chain" of 30 blocks. this.blocks = ChainedHeadersHelper.CreateConsecutiveHeadersAndBlocks(30, true, network: this.network, chainIndexer: this.chainIndexer, withCoinbaseAndCoinStake: true, createCirrusReward: true); // The reward claimer should look at block 10 to 20. using (var rewardClaimer = new RewardClaimer(this.broadCasterManager, this.chainIndexer, this.consensusManager, this.initialBlockDownloadState, keyValueRepository, this.network, this.signals)) { Transaction rewardTransaction = rewardClaimer.BuildRewardTransaction(true); Assert.Equal(10, rewardTransaction.Inputs.Count); Assert.Equal(2, rewardTransaction.Outputs.Count); Assert.Equal(Money.Coins(90), rewardTransaction.TotalOut); var depositExtractor = new DepositExtractor(this.federatedPegSettings, this.network, this.opReturnDataReader); IDeposit deposit = depositExtractor.ExtractDepositFromTransaction(rewardTransaction, 30, this.blocks[30].Block.GetHash()); Assert.Equal(Money.Coins(90), deposit.Amount); } }
public async Task FinalizedHeightCantBeDecreasedAsync() { string dir = CreateTestDir(this); var kvRepo = new LevelDbKeyValueRepository(dir, new DBreezeSerializer(this.Network.Consensus.ConsensusFactory)); var asyncMock = new Mock <IAsyncProvider>(); asyncMock.Setup(a => a.RegisterTask(It.IsAny <string>(), It.IsAny <Task>())); using (var repo = new FinalizedBlockInfoRepository(kvRepo, asyncMock.Object)) { repo.Initialize(new ChainedHeader(this.Network.GetGenesis().Header, this.Network.GetGenesis().GetHash(), 0)); repo.SaveFinalizedBlockHashAndHeight(uint256.One, 777); repo.SaveFinalizedBlockHashAndHeight(uint256.One, 555); Assert.Equal(777, repo.GetFinalizedBlockInfo().Height); } using (var repo = new FinalizedBlockInfoRepository(kvRepo, asyncMock.Object)) { await repo.LoadFinalizedBlockInfoAsync(this.Network); Assert.Equal(777, repo.GetFinalizedBlockInfo().Height); } }