public IActionResult GetSpendableTransactions([FromQuery] SpendableTransactionsRequest request) { Guard.NotNull(request, nameof(request)); // Checks the request is valid. if (!this.ModelState.IsValid) { return(ModelStateErrors.BuildErrorResponse(this.ModelState)); } try { IEnumerable <UnspentOutputReference> spendableTransactions = this.walletManager.GetSpendableTransactionsInAccount(new WalletAccountReference(request.WalletName, request.AccountName), request.MinConfirmations); return(this.Json(new SpendableTransactionsModel { SpendableTransactions = spendableTransactions.Select(st => new SpendableTransactionModel { Id = st.Transaction.Id, Amount = st.Transaction.Amount, Address = st.Address.Address, IsChange = st.Address.IsChangeAddress(), CreationTime = st.Transaction.CreationTime, Confirmations = st.Transaction.BlockHeight == null ? 0 : this.chain.Tip.Height - st.Transaction.BlockHeight.Value }).ToList() })); } catch (Exception e) { this.logger.LogError("Exception occurred: {0}", e.ToString()); return(ErrorHelpers.BuildErrorResponse(HttpStatusCode.BadRequest, e.Message, e.ToString())); } }
public async Task <IActionResult> GetSpendableTransactions([FromQuery] SpendableTransactionsRequest request, CancellationToken cancellationToken = default(CancellationToken)) { return(await this.Execute(request, cancellationToken, async (req, token) => Json(await this.walletService.GetSpendableTransactions(req, token)))); }