feat(engine)!: owner and resource-based access rules #750
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
feat(engine)!: owner and resource-based access rules
feat(engine)!: adds owner public key on components and resources, sets to transaction signer
feat(engine)!: set owner rule on components and resources
fix(engine): validate invoke output is well-formed CBOR
fix(engine): validate expected number of args for calls
fix(engine): support for workspace variables in cross-template calls
refactor(template): adds a wrapper for component instantiation, rather than using ComponentInterface trait
feat(template): add
debug!
macro (short forcall_debug(format!(...))
feat(engine)!: adds resource locking and proofs
feat(template-macros)!: only allows owner to call component methods by default when returning Self
tests(engine): adds a handful of new engine tests for access rules
Motivation and Context
Template that is used to test the new features:
https://github.com/sdbondi/tari-dan/blob/engine-resource-access-rules/dan_layer/engine/tests/templates/access_rules/src/lib.rs
How Has This Been Tested?
Unit tests and existing cucumber
What process can a PR reviewer use to test or verify this change?
Create a template that uses access and ownership rules
Breaking Changes