Skip to content

Commit 3c68f3a

Browse files
authored
Interpreter hooks (#12780)
## Description 1. ParanoidTypeChecker struct + impl for various paranoid_type_checks, consolidated under a few methods w/ descriptive names 2. Organized paranoid checking logic for a given function depending on whether the function is native or not 3. Removed local_tys out of Frame struct as it's only used in paranoid_type_checks. Now, in pre- and post- instruction execution, just check the local type off the function 4. Similarly, removed type stack out of operand_stack 5. InterpreterInterface and FrameInterface trait to limit exposure, as paranoid checks only need subset of interpreter and frame functionality. 6. Defined Plugin trait, update interpreter to init Vec<Plugin> and have ParanoidTypeChecker conform to Plugin trait ## Test Plan How did you test the new or updated feature? --- If your changes are not user-facing and not a breaking change, you can skip the following section. Otherwise, please indicate what changed, and then add to the Release Notes section as highlighted during the release process. ### Type of Change (Check all that apply) - [ ] protocol change - [ ] user-visible impact - [ ] breaking change for a client SDKs - [ ] breaking change for FNs (FN binary must upgrade) - [ ] breaking change for validators or node operators (must upgrade binaries) - [ ] breaking change for on-chain data layout - [ ] necessitate either a data wipe or data migration ### Release notes
1 parent 0c5cdc0 commit 3c68f3a

File tree

4 files changed

+1246
-848
lines changed

4 files changed

+1246
-848
lines changed

0 commit comments

Comments
 (0)