public async Task <IActionResult> GetUnusedAddress([FromQuery] GetUnusedAddressModel request,
                                                    CancellationToken cancellationToken = default(CancellationToken))
 {
     return(await this.ExecuteAsAsync(request, cancellationToken, (req, token) =>
     {
         HdAddress result = this.walletManager.GetUnusedAddress(new WalletAccountReference(
                                                                    request.WalletName,
                                                                    request.AccountName));
         return this.Json(request.Segwit ? result.Bech32Address : result.Address);
     }));
 }
        public IActionResult GetUnusedAddress([FromQuery] GetUnusedAddressModel request)
        {
            // checks the request is valid
            if (!this.ModelState.IsValid)
            {
                var errors = this.ModelState.Values.SelectMany(e => e.Errors.Select(m => m.ErrorMessage));
                return(ErrorHelpers.BuildErrorResponse(HttpStatusCode.BadRequest, "Formatting error", string.Join(Environment.NewLine, errors)));
            }

            try
            {
                var result = this.walletManager.GetUnusedAddress(request.WalletName, request.AccountName);
                return(this.Json(result.Address));
            }
            catch (Exception e)
            {
                return(ErrorHelpers.BuildErrorResponse(HttpStatusCode.BadRequest, e.Message, e.ToString()));
            }
        }
        public IActionResult GetUnusedAddress([FromQuery] GetUnusedAddressModel request)
        {
            Guard.NotNull(request, nameof(request));

            // checks the request is valid
            if (!this.ModelState.IsValid)
            {
                return(BuildErrorResponse(this.ModelState));
            }

            try
            {
                var result = this.walletManager.GetUnusedAddress(new WalletAccountReference(request.WalletName, request.AccountName));
                return(this.Json(result.Address));
            }
            catch (Exception e)
            {
                this.logger.LogError("Exception occurred: {0}", e.ToString());
                return(ErrorHelpers.BuildErrorResponse(HttpStatusCode.BadRequest, e.Message, e.ToString()));
            }
        }