From 4f884e3b4ba21d21a9e3d57191ff3a3e95fa367c Mon Sep 17 00:00:00 2001 From: Alex Kremer Date: Thu, 20 Aug 2026 15:57:46 +0100 Subject: [PATCH] fix: Better validator for issuer (#3184) --- src/rpc/common/Validators.cpp | 2 +- tests/unit/rpc/handlers/LedgerEntryTests.cpp | 21 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/rpc/common/Validators.cpp b/src/rpc/common/Validators.cpp index 9be9275a3..bfa1a64bf 100644 --- a/src/rpc/common/Validators.cpp +++ b/src/rpc/common/Validators.cpp @@ -363,7 +363,7 @@ CustomValidator CustomValidators::authorizeCredentialValidator = } // don't want to change issuer error message to be about credentials - if (!issuerValidator.verify(credObj, "issuer")) { + if (!accountBase58Validator.verify(credObj, "issuer")) { return Error{ Status{ClioError::RpcMalformedAuthorizedCredentials, "issuer NotString"} }; diff --git a/tests/unit/rpc/handlers/LedgerEntryTests.cpp b/tests/unit/rpc/handlers/LedgerEntryTests.cpp index 5a7e66c4f..bece6a52a 100644 --- a/tests/unit/rpc/handlers/LedgerEntryTests.cpp +++ b/tests/unit/rpc/handlers/LedgerEntryTests.cpp @@ -347,6 +347,27 @@ generateTestValuesForParametersTest() .expectedErrorMessage = "issuer NotString" }, + ParamTestCaseBundle{ + .testName = "DepositPreauthAuthorizeCredentialsHexIssuer", + .testJson = fmt::format( + R"JSON({{ + "deposit_preauth": {{ + "owner": "{}", + "authorized_credentials": [ + {{ + "issuer": "0000000000000000000000000000000000000002", + "credential_type": "{}" + }} + ] + }} + }})JSON", + kAccount, + kCredentialType + ), + .expectedError = "malformedAuthorizedCredentials", + .expectedErrorMessage = "issuer NotString" + }, + ParamTestCaseBundle{ .testName = "DepositPreauthAuthorizeCredentialsIncorrectCredentialType", .testJson = fmt::format(