Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] Add REST endpoint to get all items in a mapping #3365

Open
wants to merge 4 commits into
base: mainnet-staging
Choose a base branch
from

Conversation

raychu86
Copy link
Contributor

Motivation

This PR adds a new GET get_mapping_values REST endpoint to read all the elements in a mapping.

GET /<network>/program/{programID}/mapping/{mappingName}?all={true}&metadata={true}

Example:

GET /<network>/program/credits.aleo/mapping/bonded?all=true&metadata=true will return the full bonded mapping of addresses + amounts staked on the network.

Notes:

  • The new GET endpoint currently requires a query parameters all to be set to true. In the future, this functionality can be expanded to get subsets of mapping data if required.
  • The endpoint is guarded behind the JSON Web Token auth because this call can be expensive for large mappings and may be a DOS vector for nodes. This JWT ensures that only authorized users can call this (potentially) expensive endpoint.

Related PRs

#3219

node/rest/src/routes.rs Outdated Show resolved Hide resolved
node/rest/src/routes.rs Outdated Show resolved Hide resolved
ljedrz
ljedrz previously approved these changes Jul 17, 2024
Copy link
Collaborator

@ljedrz ljedrz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left a few comments, LGTM otherwise 👍.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants