Esempio n. 1
0
        public static int GetTransactionCount(RPC.Eth.DTOs.Block block)
        {
            if (block is BlockWithTransactions b)
            {
                return(b.Transactions?.Length ?? 0);
            }

            if (block is BlockWithTransactionHashes bh)
            {
                return(bh.TransactionHashes?.Length ?? 0);
            }

            return(0);
        }
Esempio n. 2
0
        public async Task UpsertBlockAsync(RPC.Eth.DTOs.Block source)
        {
            await _lock.WaitAsync();

            try
            {
                var blockEntity = MapBlock(source, new Block(source.Number.Value.ToString()));
                await UpsertAsync(blockEntity).ConfigureAwait(false);
            }
            finally
            {
                _lock.Release();
            }
        }
        public async Task UpsertBlockAsync(RPC.Eth.DTOs.Block source)
        {
            await _lock.WaitAsync();

            try
            {
                await InitialiseMaxBlock();

                var blockEntity = MapBlock(source, new Block(source.Number.Value.ToString()));
                await UpsertAsync(blockEntity);
                await UpdateMaxBlockNumber(blockEntity);
            }
            finally
            {
                _lock.Release();
            }
        }
        public Block MapBlock(RPC.Eth.DTOs.Block blockSource, Block blockOutput)
        {
            blockOutput.SetBlockNumber(blockSource.Number);
            blockOutput.SetDifficulty(blockSource.Difficulty);
            blockOutput.SetGasLimit(blockSource.GasLimit);
            blockOutput.SetGasUsed(blockSource.GasUsed);
            blockOutput.SetSize(blockSource.Size);
            blockOutput.SetTimeStamp(blockSource.Timestamp);
            blockOutput.SetTotalDifficulty(blockSource.TotalDifficulty);
            blockOutput.ExtraData  = blockSource.ExtraData ?? string.Empty;
            blockOutput.Hash       = blockSource.BlockHash ?? string.Empty;
            blockOutput.ParentHash = blockSource.ParentHash ?? string.Empty;
            blockOutput.Miner      = blockSource.Miner ?? string.Empty;
            blockOutput.Nonce      = string.IsNullOrEmpty(blockSource.Nonce) ? 0 : (long)new HexBigInteger(blockSource.Nonce).Value;

            blockOutput.TransactionCount = blockSource.TransactionCount();

            return(blockOutput);
        }