I noticed that the fetch-by-key endpoint does not support the query-lang because the intent to just fetch one key. Would it be possible to extend that end-point so that I can ask for all contracts based on a restricted set of keys?
1 Like
The advantage of the fetch by key endpoint is that they are more efficient than regular queries because we have specific indices for key equality.
There is no querying functionality for keys and it’s somewhat redundant: The key is always derived from the underlying contract payload. So (ignoring some potential restrictions in the JSON API querying language) you can translate a query on the key to a query on the contract payload.
As a simple example:
Consider this template
template T
with
p : Party
i : Int
t : Text
where
signatory p
key (p, i)
maintainer key._1
Instead of querying for everything with keys of the form (p, i > 5)
you can also query for all contracts with i > 5
(and the respective party for p
).
4 Likes
Thank you
2 Likes