[Previous meeting notes](https://hackmd.io/1mygARNjQlO8L0algCVwkQ) ## Attendees - gnidan - Daniel - Marko - Raoul - Rahul - Victor - ## Agenda - Playground PR? - Function call operations design ## Outstanding items - Reminder to please review the **ethdebug/format/type** schema draft: https://ethdebug.github.io/format/spec/type/overview - Reminder to please review the **ethdebug/format/pointer** schema draft: https://ethdebug.github.io/format/spec/pointer/overview - gnidan: Implement type schema for custom error types - **Interested in trying out Simbolik?** Reach out to Raoul on Matrix.chat or at https://twitter.com/RaoulSaffron ## Notes ### Function call operations design - Does it make sense to divide operations into these: - "start" (point at which code leaves caller) - "enter" (point at which code enters function body) - "exit" (point at which code leaves function body) - "return" (point at which code returns to caller) My reasoning for this distinction is that I want to indicate both the function being called, and the context where the call happens... perhaps something like: ```json { "domain": "function-call", "begin": { "name": "transfer", "parameters": [ ... ] }, "from": { "name": "constructor" } } { "domain": "function-call", "enter": { "name": "transfer", "parameters": [ { "name": "recipient", "scope": { "source": 1, "range": { "offset": ... } } "type": { "kind": "address", "payable": true } "pointer": { "location": "stack", "slot": 0 } } ] } } ``` ```solidity function foo() { if (x == 0) { return false; } throw Error(); } ``` This ``"from"`` information is likely not available except at the "begin" point. (Conversely, maybe `"from"` is overkill, and we can skip this complexity... but seems useful to include.) #### Discussion - Marko: Would be nice to annotate where things are inlined! (mostly re: parameters) - Daniel: `"from"` is useful because if you call _from_ an inlined function, there is no other way to get that information.