Exemplo n.º 1
0
        /// <summary>
        /// Look up balances for a list of accounts.
        /// </summary>
        /// <param name="accountIds">a list of account ids</param>
        /// <param name="keyLevel">the key level</param>
        /// <returns>a list of balances</returns>
        public Task <IList <Balance> > GetBalances(IList <string> accountIds, Level keyLevel)
        {
            var request = new GetBalancesRequest
            {
                AccountId = { accountIds }
            };

            return(gateway(authenticateOnBehalfOf(keyLevel)).GetBalancesAsync(request)
                   .ToTask(response =>
            {
                IList <Balance> balances = new List <Balance>();
                foreach (GetBalanceResponse getBalanceResponse in response.Response)
                {
                    switch (getBalanceResponse.Status)
                    {
                    case RequestStatus.SuccessfulRequest:
                        balances.Add(getBalanceResponse.Balance);
                        break;

                    case RequestStatus.MoreSignaturesNeeded:
                        throw new StepUpRequiredException("Balance step up required.");

                    default:
                        throw new RequestException(getBalanceResponse.Status);
                    }
                }
                return balances;
            }));
        }
 public async Task<float> Balance(string accountId)
 {
     var request = new GetBalancesRequest { Ids = { accountId } };
     var repsonse = await accountsReadClient.GetBalancesAsync(request, HttpContext.CreateHeadersWithFlowId());
     var balance = repsonse.Balances.Single();
     return balance.Balance;
 }
Exemplo n.º 3
0
        public async Task <APIResult <long[]> > GetBalances(IEnumerable <string> addresses, long threshold)
        {
            GetBalancesRequest getBalancesRequest = new GetBalancesRequest(addresses.ToArray(), threshold);
            var response = await genericWebClient.RequestAsync <GetBalancesResponse>(getBalancesRequest);

            return(response?.RePackage(r => r.Balances));
        }
        public override Task <GetBalancesResponse> GetBalances(GetBalancesRequest request, ServerCallContext context)
        {
            var balances = request.Ids.Select(id => accountsRepository.Get(id))
                           .Where(account => account != null)
                           .Select(account => new AccountBalance {
                Id = account.Id, UserId = account.UserId, Balance = account.Balance
            });

            return(Task.FromResult(new GetBalancesResponse {
                Balances = { balances }
            }));
        }
Exemplo n.º 5
0
        public async Task <long[]> GetBalances(IEnumerable <string> addresses, long threshold)
        {
            GetBalancesRequest getBalancesRequest = new GetBalancesRequest(addresses.ToArray(), threshold);
            var response = await genericClient.RequestAsync <GetBalancesResponse>(getBalancesRequest);

            if (response == null)
            {
                throw new NullReferenceException(nameof(response));
            }

            return(response.Balances);
        }
Exemplo n.º 6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="threshold">The confirmation threshold, should be set to 100.</param>
        /// <param name="addresses"></param>
        /// <param name="tips"></param>
        /// <returns></returns>
        public GetBalancesResponse GetBalances(long threshold, List <string> addresses, List <string> tips)
        {
            List <string> addressesWithoutChecksum = new List <string>();

            foreach (var address in addresses)
            {
                addressesWithoutChecksum.Add(address.RemoveChecksum());
            }

            GetBalancesRequest getBalancesRequest = new GetBalancesRequest(threshold, addressesWithoutChecksum, tips);

            return(Request <GetBalancesRequest, GetBalancesResponse>(getBalancesRequest));
        }
Exemplo n.º 7
0
        /// <summary>
        /// Look up balances for a list of accounts.
        /// </summary>
        /// <param name="accountIds">a list of account ids</param>
        /// <param name="keyLevel">the key level</param>
        /// <returns>a list of balances</returns>
        public Task <IList <Balance> > GetBalances(IList <string> accountIds, Level keyLevel)
        {
            var request = new GetBalancesRequest
            {
                AccountId = { accountIds }
            };

            return(gateway(authenticationContext(keyLevel)).GetBalancesAsync(request)
                   .ToTask(response => (IList <Balance>)response.Response
                           .Where(res => res.Status.Equals(RequestStatus.SuccessfulRequest))
                           .Select(res => res.Balance)
                           .ToList()));
        }
Exemplo n.º 8
0
        public async Task <GetBalancesResponse> GetBalancesAsync(GetBalancesRequest request)
        {
            try
            {
                var balance = await _balanceCache.GetBalancesAsync();

                return(balance);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Cannot get FTX balance");
                throw;
            }
        }
        public override async Task <GetDataToProcessResponse> Get(GetDataToProcessRequest request, ServerCallContext context)
        {
            var paymentsAndLoansRequest = new GetPartRequest {
                Part = request.Part, TotalParts = request.TotalParts, Timestamp = request.Timestamp
            };
            var paymentsAndLoans = await paymentsClient.GetPartAsync(paymentsAndLoansRequest, context.RequestHeaders.SelectCustom());

            var paymentAccounts = paymentsAndLoans.Payments.Select(p => p.AccountId).Distinct();
            var accountsRequest = new GetBalancesRequest {
                Ids = { paymentAccounts }
            };
            var balances = await accountsClient.GetBalancesAsync(accountsRequest, context.RequestHeaders.SelectCustom());

            return(new GetDataToProcessResponse
            {
                Payments = { paymentsAndLoans.Payments },
                Loans = { paymentsAndLoans.Loans },
                Balances = { balances.Balances }
            });
        }
Exemplo n.º 10
0
        public GetBalancesResponse GetBalances(GetBalancesRequest request, IAuthContext authContext)
        {
            var balanceRepo = _unitOfWork.GetRepository <Balance>();
            var balances    = balanceRepo.GetList(x => x.AccountId.ToString() == request.AccountId);

            GetBalancesResponse response = new GetBalancesResponse();

            response.Items = new List <GetBalancesResponseItem>();

            foreach (Balance blc in balances)
            {
                response.Items.Add(new GetBalancesResponseItem()
                {
                    Amount      = blc.Amount,
                    BalanceType = BalanceType.GetInstance(blc.BalanceType).Text,
                    Currency    = CurrencyType.GetInstance(blc.CurrencyType).Text
                });
            }

            return(response);
        }
 public async Task<BalanceDTO[]> Balance(string[] ids)
 {
     var request = new GetBalancesRequest { Ids = { ids } };
     var response = await accountsReadClient.GetBalancesAsync(request, HttpContext.CreateHeadersWithFlowId());
     return response.Balances.Select(b => mapper.Map<BalanceDTO>(b)).ToArray();
 }
Exemplo n.º 12
0
        public ActionResult <GetBalancesResponse> GetBalances([FromQuery] GetBalancesRequest request)
        {
            GetBalancesResponse response = _accountDataService.GetBalances(request, _authContext);

            return(Ok(response));
        }
 public Task <GetBalancesResponse> GetBalancesAsync(GetBalancesRequest request)
 {
     throw new NotImplementedException();
 }