feat(template_lib): builtin template addresses #881
Merged
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.
Description
template_lib
exports an enumBuiltinTemplate
that enumerates all the builtin templates and allows to retrieve the addresses via a newBuiltinTemplateInvoke
engine operationEngineOp::BuiltinTemplateInvoke
by accessing the appropriate constants in thetemplate_builtin
crateMotivation and Context
Template developers will want to perform cross-template calls with builtin templates (e.g. accounts). For convenience we want to expose the corresponding template addresses in the
template_lib
crate.There are two main ways of doing this:
This PR follows (2) for template WASM size optimisation reasons, as (1) would require to include the full address (32 bytes for each one of the builtin templates, and we may have more of them in the future) in every template WASM.
How Has This Been Tested?
New engine unit test for builtin template addresses
What process can a PR reviewer use to test or verify this change?
Use the new
BuiltinTemplate
enum in a templateBreaking Changes