public async Task <RoundStateResponse> GetStatusAsync(RoundStateRequest request, CancellationToken cancellationToken) { var response = await Arena.GetStatusAsync(request, cancellationToken); var averages = CoinJoinFeeRateStatStore.GetDefaultAverages(); return(new RoundStateResponse(response.RoundStates, averages)); }
public async Task <RoundStateResponse> GetStatusAsync(RoundStateRequest request, CancellationToken cancellationToken) { using (await AsyncLock.LockAsync(cancellationToken).ConfigureAwait(false)) { var roundStates = Rounds.Select(x => { var checkPoint = request.RoundCheckpoints.FirstOrDefault(y => y.RoundId == x.Id); return(RoundState.FromRound(x, checkPoint == default ? 0 : checkPoint.StateId)); }).ToArray(); return(new RoundStateResponse(roundStates, Array.Empty <CoinJoinFeeRateMedian>())); } }
public Task <RoundStateResponse> GetStatusAsync(RoundStateRequest request, CancellationToken cancellationToken) { var requestCheckPointDictionary = request.RoundCheckpoints.ToDictionary(r => r.RoundId, r => r); var responseRoundStates = RoundStates.Select(x => { if (requestCheckPointDictionary.TryGetValue(x.Id, out RoundStateCheckpoint? checkPoint) && checkPoint.StateId > 0) { return(x.GetSubState(checkPoint.StateId)); } return(x); }).ToArray(); return(Task.FromResult(new RoundStateResponse(responseRoundStates, Array.Empty <CoinJoinFeeRateMedian>()))); }
public Task <RoundStateResponse> GetStatusAsync(RoundStateRequest request, CancellationToken cancellationToken) => SendAndReceiveAsync <RoundStateRequest, RoundStateResponse>(RemoteAction.GetStatus, request, cancellationToken);