Exemplo n.º 1
0
        public IEnumerable <FilterLog> GetLogs(BlockParameter fromBlock, BlockParameter toBlock, object address = null,
                                               IEnumerable <object> topics = null)
        {
            LogFilter filter = _filterStore.CreateLogFilter(fromBlock, toBlock, address, topics, false);

            return(_logFinder.FindLogs(filter));
        }
Exemplo n.º 2
0
        public FilterLog[] GetLogs(FilterBlock fromBlock, FilterBlock toBlock, object address = null,
                                   IEnumerable <object> topics = null)
        {
            LogFilter filter = _filterStore.CreateLogFilter(fromBlock, toBlock, address, topics, false);

            return(_logFinder.FindLogs(filter));
        }
Exemplo n.º 3
0
        public IEnumerable <FilterLog> GetLogs(
            BlockParameter fromBlock,
            BlockParameter toBlock,
            object address = null,
            IEnumerable <object> topics         = null,
            CancellationToken cancellationToken = default)
        {
            LogFilter filter = _filterStore.CreateLogFilter(fromBlock, toBlock, address, topics, false);

            return(_logFinder.FindLogs(filter, cancellationToken));
        }
Exemplo n.º 4
0
        public LogsSubscription(
            IJsonRpcDuplexClient jsonRpcDuplexClient,
            IReceiptStorage?receiptStorage,
            IFilterStore?store,
            IBlockTree?blockTree,
            ILogManager?logManager,
            Filter?filter = null)
            : base(jsonRpcDuplexClient)
        {
            _receiptStorage = receiptStorage ?? throw new ArgumentNullException(nameof(receiptStorage));
            _blockTree      = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
            _logger         = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
            IFilterStore filterStore = store ?? throw new ArgumentNullException(nameof(store));

            if (filter != null)
            {
                _filter = filterStore.CreateLogFilter(
                    filter.FromBlock,
                    filter.ToBlock,
                    filter.Address,
                    filter.Topics);
                if (_logger.IsTrace)
                {
                    _logger.Trace($"Logs Subscription {Id}: Created LogFilter with the same arguments like \"filter\"");
                }
            }
            else
            {
                _filter = filterStore.CreateLogFilter(
                    BlockParameter.Latest,
                    BlockParameter.Latest);
                if (_logger.IsTrace)
                {
                    _logger.Trace($"Logs Subscription {Id}: Argument \"filter\" was null and created LogFilter with arguments: FromBlock: BlockParameter.Latest, ToBlock: BlockParameter.Latest");
                }
            }

            _receiptStorage.ReceiptsInserted += OnReceiptsInserted;
            _blockTree.NewHeadBlock          += OnNewHeadBlock;
            if (_logger.IsTrace)
            {
                _logger.Trace($"Logs subscription {Id} will track ReceiptsInserted.");
            }
        }