public IActionResult ColdStakingWithdrawal([FromBody] ColdStakingWithdrawalRequest 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.GetColdStakingWithdrawalTransaction(this.walletTransactionHandler, request.ReceivingAddress, request.WalletName, request.WalletPassword, amount, feeAmount); var model = new ColdStakingWithdrawalResponse { 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 EstimateColdStakingWithdrawalFee([FromBody] ColdStakingWithdrawalRequest 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.EstimateWithdrawalTransactionFee(this.walletTransactionHandler, request.ReceivingAddress, request.WalletName, amount, request.SubtractFeeFromAmount); 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())); } }