Exemplo n.º 1
0
 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")}");
     }
 }
Exemplo n.º 2
0
 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}");
     }
 }
Exemplo n.º 3
0
        public WalletStatus(uint walletHeight, BlockchainStatus blockchainStatus, NetworkStatus networkStatus)
        {
            this.WalletHeight = walletHeight;

            this.BlockchainStatus = blockchainStatus;

            this.NetworkStatus = networkStatus;
        }
Exemplo n.º 4
0
        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();
        }
Exemplo n.º 5
0
 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);
     }
 }
Exemplo n.º 6
0
        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));
        }
Exemplo n.º 7
0
        private async Task Init()
        {
            await _nxtConnector.Init();

            _blockchainStatus = await _repository.GetBlockchainStatus();
        }
Exemplo n.º 8
0
 private async Task UpdateBlockchainStatus(BlockchainStatus newBlockchainStatus)
 {
     _blockchainStatus = newBlockchainStatus;
     await _repository.UpdateBlockchainStatus(_blockchainStatus);
 }