Skip to content

Draft function call context schemas#154

Draft
gnidan wants to merge 12 commits intomainfrom
call-return
Draft

Draft function call context schemas#154
gnidan wants to merge 12 commits intomainfrom
call-return

Conversation

@gnidan
Copy link
Member

@gnidan gnidan commented May 29, 2025

No description provided.

@github-actions
Copy link
Contributor

github-actions bot commented May 29, 2025

PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://ethdebug.github.io/format/pr-preview/pr-154/

Built to branch gh-pages at 2026-03-04 06:20 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

gnidan added 8 commits March 3, 2026 20:30
Introduce a shared context/function schema defining identifier,
declaration, and type properties (mirroring Variable's pattern)
and compose it into invoke, return, and revert via allOf. Switch
return and revert from additionalProperties to
unevaluatedProperties to support allOf composition.
Wrap the Monaco-based Playground component in BrowserOnly with
React.lazy so it only loads client-side, preventing SSR-related
initialization errors that caused [object Object] crashes on refresh.
Move function call lifecycle contexts (invoke, return, revert) into
a function/ subcategory and extract shared identity fields
(identifier, declaration, type) into a base function schema that
each context extends via $ref.
Reduces ambiguity: `call` could mean any function call, and
`internal` vs `create` doesn't clearly convey the mechanism.
The new names (jump/message/create) map directly to the three
EVM invocation mechanisms.

Also enforces mutual exclusivity of delegate/static on external
calls via `not: required: [delegate, static]`.
Frame descriptions from the perspective of contexts marking
instructions rather than "representing" things. A context
indicates association with a function lifecycle event; it does
not represent the event itself.
Each example now describes a concrete EVM execution scenario:
which instruction the context marks, what the stack and memory
layout looks like, and why each pointer points where it does.
Introduce schema:ethdebug/format/type/specifier to formalize
the "type or type reference" pattern. Update type wrapper,
variables, and doc pages to use the new schema instead of
inline oneOf/if-then discrimination. Remove the now-unnecessary
allow-list entry for the function context schema.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant