public IActionResult InfuraHeight() { var bnr = _bsm.GetInfuraBlockNr().TryGetBlockNumber(); if (bnr <= 0) { return(StatusCode(StatusCodes.Status500InternalServerError)); } return(StatusCode(StatusCodes.Status200OK, bnr)); }
protected override async Task Process() { var bn = _bsm.GetInfuraBlockNr(); var delay = 100; if (bn != null && (DateTime.UtcNow - bn.TimeStamp).TotalSeconds < _cfg.infuraRequestDelay) { var timeUntilNextExecution = (_cfg.infuraRequestDelay * 1000) - (DateTime.UtcNow - bn.TimeStamp).TotalMilliseconds; if (timeUntilNextExecution > delay) { delay = (int)timeUntilNextExecution; } } await Task.Delay(delay); await _bsm.TryUpdateInfuraBlockHeight(); }