XRPLF / rippled

Decentralized cryptocurrency blockchain daemon implementing the XRP Ledger protocol in C++
https://xrpl.org
ISC License
4.53k stars 1.47k forks source link

Enhance `type` filter in account_objects (Version: [rippled v2.2.3]) #5160

Closed ckeshava closed 1 month ago

ckeshava commented 1 month ago

Summary

The account_objects request accepts a type input parameter. Here are the reference docs. This is a request for incorporating additional ledger objects as inputs to this parameter. The documentation mentions only a few of the ledger objects. Ledger Objects like DID are not included on that list.

Motivation

While this is not blocking critical functionality, it helps in obtaining relevant ledger objects faster. This parameter is especially helpful for quick visual inspection.

Solution

When a non-supported type is specified, the command fails silently. For instance, using type: "credential" returns an empty array of account_objects, despite the said account holding appropriate credential ledger objects. This was tested against a custom feature branch.

This lambda function handles the type filter and it looks correct, upon first glance. I'll need to dig deeper to understand the issue, or perhaps I'm specifying the type input incorrectly.

mvadari commented 1 month ago

Does the account have a bunch of other objects? Is there a marker included?

Sometimes if an account has a bunch of objects, the first page doesn't have any of that type.

ckeshava commented 1 month ago

Thanks for the reply. I had made a mistake whilst specifying the account value. This RPC appears to be working fine, as far as Verifiable Credentials are concerned.

The documentation needs to be updated to state that "All ledger objects are supported inside the type filter of the account_objects RPC." (After a brief perusal of the code, I don't see any reason to the contrary).