83 std::optional<std::string> ledgerHash;
84 std::optional<uint32_t> ledgerIndex;
87 std::optional<std::string> index;
90 ripple::LedgerEntryType expectedType = ripple::ltANY;
92 std::optional<std::string> accountRoot;
94 std::optional<std::string> did;
96 std::optional<std::string> mptIssuance;
98 std::optional<boost::json::object> directory;
99 std::optional<boost::json::object> offer;
100 std::optional<boost::json::object> rippleStateAccount;
101 std::optional<boost::json::object> escrow;
102 std::optional<boost::json::object> depositPreauth;
103 std::optional<boost::json::object> ticket;
104 std::optional<boost::json::object> amm;
105 std::optional<boost::json::object> mptoken;
106 std::optional<boost::json::object> permissionedDomain;
107 std::optional<boost::json::object> vault;
108 std::optional<ripple::STXChainBridge> bridge;
109 std::optional<std::string> bridgeAccount;
110 std::optional<uint32_t> chainClaimId;
111 std::optional<uint32_t> createAccountClaimId;
112 std::optional<ripple::uint256> oracleNode;
113 std::optional<ripple::uint256> credential;
114 std::optional<boost::json::object> delegate;
115 bool includeDeleted =
false;
136 spec([[maybe_unused]] uint32_t apiVersion)
141 static auto const kRIPPLE_STATE_ACCOUNTS_CHECK =
143 if (!value.is_array() || value.as_array().size() != 2 || !value.as_array()[0].is_string() ||
144 !value.as_array()[1].is_string() ||
145 value.as_array()[0].as_string() == value.as_array()[1].as_string()) {
146 return Error{
Status{RippledError::rpcINVALID_PARAMS,
"malformedAccounts"}};
150 boost::json::value_to<std::string>(value.as_array()[0])
153 boost::json::value_to<std::string>(value.as_array()[1])
157 return Error{
Status{ClioError::RpcMalformedAddress,
"malformedAddresses"}};
166 static auto const kMALFORMED_REQUEST_INT_VALIDATOR =
171 {ripple::sfLockingChainDoor.getJsonName().c_str(),
174 {ripple::sfIssuingChainDoor.getJsonName().c_str(),
177 {ripple::sfLockingChainIssue.getJsonName().c_str(),
180 {ripple::sfIssuingChainIssue.getJsonName().c_str(),
184 Status(ClioError::RpcMalformedRequest)
187 static auto const kRPC_SPEC =
RpcSpec{
191 {JS(index), kMALFORMED_REQUEST_HEX_STRING_VALIDATOR},
194 {JS(check), kMALFORMED_REQUEST_HEX_STRING_VALIDATOR},
195 {JS(deposit_preauth),
215 {JS(sub_index), kMALFORMED_REQUEST_INT_VALIDATOR}
239 {JS(payment_channel), kMALFORMED_REQUEST_HEX_STRING_VALIDATOR},
255 {JS(nft_page), kMALFORMED_REQUEST_HEX_STRING_VALIDATOR},
277 kBRIDGE_JSON_VALIDATOR},
282 {JS(xchain_owned_claim_id),
287 kBRIDGE_JSON_VALIDATOR,
292 Status(ClioError::RpcMalformedRequest)
294 {JS(xchain_owned_create_account_claim_id),
299 kBRIDGE_JSON_VALIDATOR,
304 Status(ClioError::RpcMalformedRequest)
320 {JS(oracle_document_id),
367 Status(ClioError::RpcMalformedAddress)
375 Status(ClioError::RpcMalformedRequest)
380 {JS(permissioned_domain),