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<ripple::STXChainBridge> bridge;
108 std::optional<std::string> bridgeAccount;
109 std::optional<uint32_t> chainClaimId;
110 std::optional<uint32_t> createAccountClaimId;
111 std::optional<ripple::uint256> oracleNode;
112 std::optional<ripple::uint256> credential;
113 bool includeDeleted =
false;
134 spec([[maybe_unused]] uint32_t apiVersion)
139 static auto const kRIPPLE_STATE_ACCOUNTS_CHECK =
141 if (!value.is_array() || value.as_array().size() != 2 || !value.as_array()[0].is_string() ||
142 !value.as_array()[1].is_string() ||
143 value.as_array()[0].as_string() == value.as_array()[1].as_string()) {
144 return Error{
Status{RippledError::rpcINVALID_PARAMS,
"malformedAccounts"}};
155 return Error{
Status{ClioError::RpcMalformedAddress,
"malformedAddresses"}};
164 static auto const kMALFORMED_REQUEST_INT_VALIDATOR =
169 {ripple::sfLockingChainDoor.getJsonName().c_str(),
172 {ripple::sfIssuingChainDoor.getJsonName().c_str(),
175 {ripple::sfLockingChainIssue.getJsonName().c_str(),
178 {ripple::sfIssuingChainIssue.getJsonName().c_str(),
182 Status(ClioError::RpcMalformedRequest)
185 static auto const kRPC_SPEC =
RpcSpec{
189 {JS(index), kMALFORMED_REQUEST_HEX_STRING_VALIDATOR},
192 {JS(check), kMALFORMED_REQUEST_HEX_STRING_VALIDATOR},
193 {JS(deposit_preauth),
213 {JS(sub_index), kMALFORMED_REQUEST_INT_VALIDATOR}
237 {JS(payment_channel), kMALFORMED_REQUEST_HEX_STRING_VALIDATOR},
253 {JS(nft_page), kMALFORMED_REQUEST_HEX_STRING_VALIDATOR},
275 kBRIDGE_JSON_VALIDATOR},
280 {JS(xchain_owned_claim_id),
285 kBRIDGE_JSON_VALIDATOR,
290 Status(ClioError::RpcMalformedRequest)
292 {JS(xchain_owned_create_account_claim_id),
297 kBRIDGE_JSON_VALIDATOR,
302 Status(ClioError::RpcMalformedRequest)
318 {JS(oracle_document_id),
365 Status(ClioError::RpcMalformedAddress)
373 Status(ClioError::RpcMalformedRequest)
378 {JS(permissioned_domain),