aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rest.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/rest.cpp b/src/rest.cpp
index 185508d2c9..3cf6ad343c 100644
--- a/src/rest.cpp
+++ b/src/rest.cpp
@@ -788,15 +788,17 @@ static bool rest_getutxos(const std::any& context, HTTPRequest* req, const std::
for (size_t i = (fCheckMemPool) ? 1 : 0; i < uriParts.size(); i++)
{
- std::string strTxid = uriParts[i].substr(0, uriParts[i].find('-'));
- std::string strOutput = uriParts[i].substr(uriParts[i].find('-')+1);
- auto output{ToIntegral<uint32_t>(strOutput)};
+ const auto txid_out{util::Split<std::string_view>(uriParts[i], '-')};
+ if (txid_out.size() != 2) {
+ return RESTERR(req, HTTP_BAD_REQUEST, "Parse error");
+ }
+ auto output{ToIntegral<uint32_t>(txid_out.at(1))};
- if (!output || !IsHex(strTxid)) {
+ if (!output || !IsHex(txid_out.at(0))) {
return RESTERR(req, HTTP_BAD_REQUEST, "Parse error");
}
- vOutPoints.emplace_back(TxidFromString(strTxid), *output);
+ vOutPoints.emplace_back(TxidFromString(txid_out.at(0)), *output);
}
if (vOutPoints.size() > 0)