From 4e85e3c828d313a31258242453d65b26d27dba6e Mon Sep 17 00:00:00 2001 From: everoddandeven <59447913+everoddandeven@users.noreply.github.com> Date: Sat, 19 Apr 2025 05:20:00 +0200 Subject: [PATCH] Return lws::error::not_enough_amount when received is less than requested amount (#154) --- src/error.cpp | 2 ++ src/error.h | 1 + src/rest_server.cpp | 4 ++-- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/error.cpp b/src/error.cpp index 7f573fd..39f8fd6 100644 --- a/src/error.cpp +++ b/src/error.cpp @@ -95,6 +95,8 @@ namespace lws return "Max subaddresses exceeded"; case error::not_enough_mixin: return "Not enough outputs to meet requested mixin count"; + case error::not_enough_amount: + return "Not enough outputs to meet requested amount"; case error::signal_abort_process: return "An in-process message was received to abort the process"; case error::signal_abort_scan: diff --git a/src/error.h b/src/error.h index 7d6c4e8..fcc9cc1 100644 --- a/src/error.h +++ b/src/error.h @@ -61,6 +61,7 @@ namespace lws json_rpc, //!< Error returned by JSON-RPC server max_subaddresses, //!< Max subaddresses exceeded not_enough_mixin, //!< Not enough outputs to meet mixin count + not_enough_amount, //!< Not enough outputs to meet amount signal_abort_process, //!< In process ZMQ PUB to abort the process was received signal_abort_scan, //!< In process ZMQ PUB to abort the scan was received signal_unknown, //!< An unknown in process ZMQ PUB was received diff --git a/src/rest_server.cpp b/src/rest_server.cpp index a23d12f..001c7c6 100644 --- a/src/rest_server.cpp +++ b/src/rest_server.cpp @@ -1063,7 +1063,7 @@ namespace lws } if (received < std::uint64_t(req.amount)) - return {lws::error::account_not_found}; + return {lws::error::not_enough_amount}; if (rpc->size_scale == 0 || 1024 < rpc->size_scale || rpc->fee_mask == 0) return {lws::error::bad_daemon_response}; @@ -1964,7 +1964,7 @@ namespace lws MINFO("REST error: " << error.message() << " from " << sock().remote_endpoint(ec) << " / " << this); assert(strand_.running_in_this_thread()); - if (error.category() == wire::error::rapidjson_category() || error == lws::error::invalid_range) + if (error.category() == wire::error::rapidjson_category() || error == lws::error::invalid_range || error == lws::error::not_enough_amount) return bad_request(boost::beast::http::status::bad_request, std::forward(resume)); else if (error == lws::error::account_not_found || error == lws::error::duplicate_request) return bad_request(boost::beast::http::status::forbidden, std::forward(resume));