public async Task <IActionResult> RecoverViaExtPubKey([FromBody] WalletExtPubRecoveryRequest request, CancellationToken cancellationToken = default(CancellationToken)) { return(await this.Execute(request, cancellationToken, async (req, token) => { await this.walletService.RecoverViaExtPubKey(req, token); return Ok(); })); }
private void RecoverViaExtPubKey(string walletName, string extPubKey, int accountIndex) { var request = new WalletExtPubRecoveryRequest { ExtPubKey = extPubKey, AccountIndex = accountIndex, Name = walletName }; this.send_api_post_request(RecoverViaExtPubKeyUri, request); this.response.StatusCode.Should().Be(StatusCodes.Status200OK); }
public IActionResult RecoverViaExtPubKey([FromBody] WalletExtPubRecoveryRequest request) { Guard.NotNull(request, nameof(request)); this.logger.LogTrace("({0}.{1}:'{2}')", nameof(request), nameof(request.Name), request.Name); if (!this.ModelState.IsValid) { this.logger.LogTrace("(-)[MODEL_STATE_INVALID]"); return(BuildErrorResponse(this.ModelState)); } try { string accountExtPubKey = this.network.IsBitcoin() ? request.ExtPubKey : LegacyExtPubKeyConverter.ConvertIfInLegacyStratisFormat(request.ExtPubKey, this.network); this.walletManager.RecoverWallet(request.Name, ExtPubKey.Parse(accountExtPubKey), request.AccountIndex, request.CreationDate); this.walletSyncManager.SyncFromDate(request.CreationDate); this.logger.LogTrace("(-)"); return(this.Ok()); } catch (WalletException e) { // Wallet already exists. this.logger.LogError("Exception occurred: {0}", e.ToString()); return(ErrorHelpers.BuildErrorResponse(HttpStatusCode.Conflict, e.Message, e.ToString())); } catch (FileNotFoundException e) { // Wallet does not exist. this.logger.LogError("Exception occurred: {0}", e.ToString()); return(ErrorHelpers.BuildErrorResponse(HttpStatusCode.NotFound, "Wallet not found.", e.ToString())); } catch (Exception e) { this.logger.LogError("Exception occurred: {0}", e.ToString()); return(ErrorHelpers.BuildErrorResponse(HttpStatusCode.BadRequest, e.Message, e.ToString())); } finally { this.logger.LogTrace("(-)"); } }