Capture scry id in the main function and use it when compiling anomaGet #2705
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The purpose of this PR is to wrap the compiled main function with Nockma code that captures the argument tuple for use when compiling
anomaGet
calls.The Anoma system expects to receive a function of type
ScryId -> Transaction
The ScryId is only used to construct the argument to the Scry operation (i.e the anomaGet builtin in the Juvix frontend),
When the Juvix developer writes a function to submit to Anoma they use type
() -> Transaction
, the main function wrapper is used to capture the ScryId argument into the subject which is then used to construct OpScry arguments when anomaGet is compiled.If the Anoma system expectation changes then the wrapper code must be changed.
We could add a transformation that checks that the main function in the Anoma target has no arguments. However it is convenient to be able to write functions with arguments for testing and debugging (for example compiling directly to a logic function).