public async Task <ReissueCredentialResponse> ReissuanceAsync(ReissueCredentialRequest request, CancellationToken cancellationToken) { Round round; using (await AsyncLock.LockAsync(cancellationToken).ConfigureAwait(false)) { round = GetRound(request.RoundId, Phase.ConnectionConfirmation, Phase.OutputRegistration); } if (request.RealAmountCredentialRequests.Delta != 0) { throw new WabiSabiProtocolException(WabiSabiProtocolErrorCode.DeltaNotZero, $"Round ({round.Id}): Amount credentials delta must be zero."); } if (request.RealAmountCredentialRequests.Requested.Count() != ProtocolConstants.CredentialNumber) { throw new WabiSabiProtocolException(WabiSabiProtocolErrorCode.WrongNumberOfCreds, $"Round ({round.Id}): Incorrect requested number of amount credentials."); } if (request.RealVsizeCredentialRequests.Requested.Count() != ProtocolConstants.CredentialNumber) { throw new WabiSabiProtocolException(WabiSabiProtocolErrorCode.WrongNumberOfCreds, $"Round ({round.Id}): Incorrect requested number of weight credentials."); } var realAmountTask = round.AmountCredentialIssuer.HandleRequestAsync(request.RealAmountCredentialRequests, cancellationToken); var realVsizeTask = round.VsizeCredentialIssuer.HandleRequestAsync(request.RealVsizeCredentialRequests, cancellationToken); var zeroAmountTask = round.AmountCredentialIssuer.HandleRequestAsync(request.ZeroAmountCredentialRequests, cancellationToken); var zeroVsizeTask = round.VsizeCredentialIssuer.HandleRequestAsync(request.ZeroVsizeCredentialsRequests, cancellationToken); return(new( await realAmountTask.ConfigureAwait(false), await realVsizeTask.ConfigureAwait(false), await zeroAmountTask.ConfigureAwait(false), await zeroVsizeTask.ConfigureAwait(false))); }
public async Task <ReissueCredentialResponse> ReissuanceAsync(ReissueCredentialRequest request, CancellationToken cancellationToken) { return(await IdempotencyRequestCache.GetCachedResponseAsync(request, action : (request, token) => Arena.ReissuanceAsync(request, token), cancellationToken)); }
public Task <ReissueCredentialResponse> ReissueCredentialAsync(ReissueCredentialRequest request, CancellationToken cancellableToken) { return(RequestHandler.ReissueCredentialAsync(request, cancellableToken)); }
public Task <ReissueCredentialResponse> ReissuanceAsync(ReissueCredentialRequest request, CancellationToken cancellationToken) => SendAndReceiveAsync <ReissueCredentialRequest, ReissueCredentialResponse>(RemoteAction.ReissueCredential, request, cancellationToken);
public Task <ReissueCredentialResponse> ReissueCredentialAsync(ReissueCredentialRequest request, CancellationToken cancellationToken) => arena.ReissuanceAsync(request);