using System.Threading.Tasks; using FrostFS.Accounting; namespace FrostFS.SDK.Client; internal sealed class AccountingServiceProvider : ContextAccessor { private readonly AccountingService.AccountingServiceClient? _accountingServiceClient; internal AccountingServiceProvider( AccountingService.AccountingServiceClient? accountingServiceClient, ClientContext context) : base(context) { _accountingServiceClient = accountingServiceClient; } internal async Task GetBallance(CallContext ctx) { BalanceRequest request = new() { Body = new() { OwnerId = ClientContext.Owner.OwnerID } }; request.AddMetaHeader([]); request.Sign(ClientContext.Key); var response = await _accountingServiceClient!.BalanceAsync(request, null, ctx.GetDeadline(), ctx.CancellationToken); Verifier.CheckResponse(response); return response.Body.Balance; } }