private static void CheckTimeShouldBeAroundNow(BlockchainStatus blockchainStatus) { if (Math.Abs(blockchainStatus.Time.Subtract(DateTime.UtcNow).TotalSeconds) > 10) { Logger.Fail($"Unexpected Time, expected to be within 10 seconds ({DateTime.UtcNow.ToString("T")}), actual: {blockchainStatus.Time.ToString("T")}"); } }
private static void CheckVersionFormat(BlockchainStatus blockchainStatus) { if (!Regex.Match(blockchainStatus.Version, "([0-9]+)\\.([0-9]+)\\.([0-9]+)(\\.([0-9]+))?(e?)").Success) { Logger.Fail($"Unexpected version format, expected: x.x.x(.x)(e), actual: {blockchainStatus.Version}"); } }
public WalletStatus(uint walletHeight, BlockchainStatus blockchainStatus, NetworkStatus networkStatus) { this.WalletHeight = walletHeight; this.BlockchainStatus = blockchainStatus; this.NetworkStatus = networkStatus; }
private async Task GetDataFromNxtServer() { _lastBalanceMatchBlock = await _nxtServer.GetBlockAsync(_walletRepository.LastBalanceMatchBlockId); _blockchainStatus = await _nxtServer.GetBlockchainStatusAsync(); _nxtTransactions = (await _nxtServer.GetTransactionsAsync(_lastBalanceMatchBlock.Timestamp)).ToList(); UnconfirmedBalanceNqt = await _nxtServer.GetUnconfirmedNqtBalanceAsync(); }
public void Test(BlockchainStatus blockchainStatus) { using (Logger = new TestsessionLogger(_logger)) { AssertEquals("NRS", blockchainStatus.Application, "Application"); AssertIsLargerThanZero(blockchainStatus.CumulativeDifficulty, "CumulativeDifficulty"); AssertIsLargerThanZero(blockchainStatus.CurrentMinRollbackHeight, "CurrentMinRollbackHeight"); // blockchainStatus.IncludeExpiredPrunable // blockchainStatus.IsDownloading // blockchainStatus.IsScanning // blockchainStatus.IsTestnet AssertIsLargerThanZero(blockchainStatus.LastBlockId, "LastBlockId"); //AssertIsNullOrEmpty(blockchainStatus.LastBlockchainFeeder, "LastBlockchainFeeder"); AssertIsLargerThanZero(blockchainStatus.LastBlockchainFeederHeight, "LastBlockchainFeederHeight"); //AssertEquals(86400, blockchainStatus.MaxPrunableLifetime, "MaxPrunableLifetime", true); AssertEquals(800, blockchainStatus.MaxRollback, "MaxRollback"); AssertIsLargerThanZero(blockchainStatus.NumberOfBlocks, "NumberOfBlocks"); CheckTimeShouldBeAroundNow(blockchainStatus); CheckVersionFormat(blockchainStatus); } }
private async Task <Tuple <BlockchainStatus, Block <ulong> > > SyncToLastCommonBlock() { Block <ulong> lastKnownBlock = null; BlockchainStatus blockchainStatus = null; while (lastKnownBlock == null) { try { blockchainStatus = await _nxtServer.GetBlockchainStatusAsync(); lastKnownBlock = await _nxtServer.GetBlockAsync(_walletRepository.LastLedgerEntryBlockId); } catch (NxtException e) { if (e.Message != "Unknown block") { throw; } await RollbackToPreviousHeight(); } } return(new Tuple <BlockchainStatus, Block <ulong> >(blockchainStatus, lastKnownBlock)); }
private async Task Init() { await _nxtConnector.Init(); _blockchainStatus = await _repository.GetBlockchainStatus(); }
private async Task UpdateBlockchainStatus(BlockchainStatus newBlockchainStatus) { _blockchainStatus = newBlockchainStatus; await _repository.UpdateBlockchainStatus(_blockchainStatus); }