Implement amm_info handler (#1060)

Fixes #283
This commit is contained in:
Alex Kremer
2024-01-11 15:57:53 +00:00
committed by GitHub
parent 93d5c12b14
commit f4df5c2185
16 changed files with 1878 additions and 40 deletions

View File

@@ -212,4 +212,24 @@ CustomValidator SubscribeAccountsValidator =
return MaybeError{};
}};
CustomValidator AMMAssetValidator =
CustomValidator{[](boost::json::value const& value, std::string_view key) -> MaybeError {
if (not value.is_object())
return Error{Status{RippledError::rpcINVALID_PARAMS, std::string(key) + "NotObject"}};
Json::Value jvAsset;
if (value.as_object().contains(JS(issuer)))
jvAsset["issuer"] = value.at(JS(issuer)).as_string().c_str();
if (value.as_object().contains(JS(currency)))
jvAsset["currency"] = value.at(JS(currency)).as_string().c_str();
// same as rippled
try {
ripple::issueFromJson(jvAsset);
} catch (std::runtime_error const&) {
return Error{Status{ClioError::rpcMALFORMED_REQUEST}};
}
return MaybeError{};
}};
} // namespace rpc::validation