예제 #1
0
        public async Task <IActionResult> GetUnusedAddresses([FromQuery] GetUnusedAddressesModel request,
                                                             CancellationToken cancellationToken = default(CancellationToken))
        {
            return(await this.ExecuteAsAsync(request, cancellationToken, (req, token) =>
            {
                var result = this.walletManager.GetUnusedAddresses(
                    new WalletAccountReference(request.WalletName, req.AccountName), int.Parse(req.Count))
                             .Select(x => request.Segwit ? x.Bech32Address : x.Address).ToArray();

                return this.Json(result);
            }));
        }
        public IActionResult GetUnusedAddresses([FromQuery] GetUnusedAddressesModel request)
        {
            Guard.NotNull(request, nameof(request));
            var count = int.Parse(request.Count);

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

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