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

Test partial storage map from foreign account can be accessed #1136

Open
PhilippGackstatter opened this issue Feb 10, 2025 · 0 comments
Open
Labels
tests Improvements to testing

Comments

@PhilippGackstatter
Copy link
Contributor

PhilippGackstatter commented Feb 10, 2025

What should be done?

With foreign procedure invocation it's possible to read data from a foreign account, for example from a storage map. Such storage maps could get very large in practice, but since they are a sparse merkle tree, only the key-value pair that needs to be accessed (and its merkle path) must be present in the transaction where it is read.

How should it be done?

There are two options I think:

  1. We could consider adding a test to make sure we can do this, which also serves as an example of how this can be done.
  2. We can change get_mock_fpi_adv_inputs to take as an input the key-value pairs that should be added to the advice input's merkle store, so that instead of adding all storage maps to the merkle store, we only selectively add the provided key-value pairs. In that case we don't need a new test, but the existing test_fpi_memory would serve as the example because a part of this test already uses get_map_item.

I would suggest going with option 2 if there aren't unforeseen complications, and option 1 otherwise.

When is this task done?

When we can successfully execute a test where not the entire storage map was added to the advice input's merkle store.

Additional context

Follow-up from #918.

@bobbinth bobbinth added the tests Improvements to testing label Feb 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tests Improvements to testing
Projects
None yet
Development

No branches or pull requests

2 participants