public async Task PublishAsync(BlockDto block)
        {
            if (block == null)
            {
                return;
            }

            var blockLite = new BlockLiteDto(block);

            await _redisCommand.PublishAsync(Settings.Redis.NewBlockPubSub, blockLite);

            if (block.Transactions == null || !block.Transactions.Any())
            {
                return;
            }

            foreach (var tx in block.Transactions)
            {
                await _redisCommand.PublishAsync(Settings.Redis.NewTransactionPubSub, new TransactionLiteDto(tx, block.Height, 1));
            }

            _logger.LogInformation($"Published block {block.Height}");
        }
Beispiel #2
0
 private async Task SendLatestBlockDataAsync(BlockLiteDto block)
 {
     await _homeContext.Clients.All.SendAsync("NewBlockPubSub", Helpers.JsonSerialise(block));
 }
 private Task OnNewBlockAsync(BlockLiteDto newBlock)
 {
     return(_blockContext.Clients.All.SendAsync("NewBlockPubSub", newBlock));
 }
 private Task UpdateLatestBlockData(BlockLiteDto block)
 {
     return(_layoutContext.Clients.All.SendAsync("UpdateLatestBlockData", block));
 }