public IActionResult SetupColdStaking([FromBody] SetupColdStakingRequest request) { Guard.NotNull(request, nameof(request)); // Checks the request is valid. if (!this.ModelState.IsValid) { this.logger.LogTrace("(-)[MODEL_STATE_INVALID]"); return(ModelStateErrors.BuildErrorResponse(this.ModelState)); } try { Money amount = Money.Parse(request.Amount); Money feeAmount = Money.Parse(request.Fees); Transaction transaction = this.ColdStakingManager.GetColdStakingSetupTransaction( this.walletTransactionHandler, request.ColdWalletAddress, request.HotWalletAddress, request.WalletName, request.WalletAccount, request.WalletPassword, amount, feeAmount, request.SegwitChangeAddress, request.PayToScript); var model = new SetupColdStakingResponse { TransactionHex = transaction.ToHex() }; this.logger.LogTrace("(-):'{0}'", model); return(this.Json(model)); } catch (Exception e) { this.logger.LogError("Exception occurred: {0}", e.ToString()); this.logger.LogTrace("(-)[ERROR]"); return(ErrorHelpers.BuildErrorResponse(HttpStatusCode.BadRequest, e.Message, e.ToString())); } }
public IActionResult EstimateColdStakingSetupFee([FromBody] SetupColdStakingRequest request) { Guard.NotNull(request, nameof(request)); // Checks the request is valid. if (!this.ModelState.IsValid) { this.logger.LogTrace("(-)[MODEL_STATE_INVALID]"); return(ModelStateErrors.BuildErrorResponse(this.ModelState)); } try { Money amount = Money.Parse(request.Amount); Money estimatedFee = this.ColdStakingManager.EstimateSetupTransactionFee( this.walletTransactionHandler, request.ColdWalletAddress, request.HotWalletAddress, request.WalletName, request.WalletAccount, request.WalletPassword, amount, request.SubtractFeeFromAmount, false, request.SegwitChangeAddress, request.SplitCount); this.logger.LogTrace("(-):'{0}'", estimatedFee); return(this.Json(estimatedFee)); } catch (Exception e) { this.logger.LogError("Exception occurred: {0}", e.ToString()); this.logger.LogTrace("(-)[ERROR]"); return(ErrorHelpers.BuildErrorResponse(HttpStatusCode.BadRequest, e.Message, e.ToString())); } }
public IActionResult SetupOfflineStaking([FromBody] SetupColdStakingRequest request) { return(this.SetupColdStakingInternal(request, false)); }