private void OnConditionsChange(object?sender, BlockEventArgs e)
        {
            ScheduleAction(() =>
            {
                SyncingResult syncingResult = _ethSyncingInfo.GetFullInfo();
                bool isSyncing = syncingResult.IsSyncing;

                if (isSyncing == _lastIsSyncing)
                {
                    if (_logger.IsTrace)
                    {
                        _logger.Trace($"Syncing subscription {Id} didn't changed syncing status: {_lastIsSyncing}");
                    }
                    return;
                }

                if (_logger.IsTrace)
                {
                    _logger.Trace($"Syncing subscription {Id} changed syncing status from {_lastIsSyncing} to {isSyncing}");
                }

                _lastIsSyncing = isSyncing;
                JsonRpcResult result;

                if (isSyncing == false)
                {
                    result = CreateSubscriptionMessage(isSyncing);
                }
                else
                {
                    result = CreateSubscriptionMessage(syncingResult);
                }


                JsonRpcDuplexClient.SendJsonRpcResult(result);
                _logger.Trace($"Syncing subscription {Id} printed SyncingResult object.");
            });
        }
예제 #2
0
 public ResultWrapper <SyncingResult> eth_syncing()
 {
     return(ResultWrapper <SyncingResult> .Success(_ethSyncingInfo.GetFullInfo()));
 }