Execution traces and low-level calls
Begin with “Transaction context versus call context” and work toward “Low-level trace challenge set”. Each available lesson includes a visual explanation and a quick knowledge check.
Read in order or choose a topic below. Completion marks stay in this browser. All 20 lessons in this track are available.
- 01
Transaction context versus call context
One transaction can contain several message-call contexts.
4 MIN READ - 02
msg.sender versus tx.origin
The immediate caller and transaction originator can differ.
4 MIN READ - 03
msg.value in nested calls
Value belongs to a particular call context.
4 MIN READ - 04
Contract creation with CREATE
Creation executes initialization code and may return runtime code.
4 MIN READ - 05
Deterministic creation with CREATE2
Creator, salt and init-code hash determine a candidate address.
4 MIN READ - 06
Init code versus runtime code
Deployment instructions and installed instructions have different jobs.
4 MIN READ - 07
Value transfer and call failures
A value-bearing call can fail and must be handled deliberately.
4 MIN READ - 08
Call depth and stack limits
Frame nesting and stack item depth are separate constraints.
4 MIN READ - 09
Gas forwarding and the 63/64 rule
A requested gas amount is subject to forwarding rules.
4 MIN READ - 10
Return-data griefing explained
Large attacker-controlled output can make caller-side processing expensive.
4 MIN READ - 11
Precompiles in the EVM
Special addresses can expose protocol-defined computation.
4 MIN READ - 12
SELFDESTRUCT after protocol changes
Historical deletion assumptions do not describe every modern case.
4 MIN READ - 13
Code size and deployment limits
Runtime size, init-code size and execution gas are separate constraints.
4 MIN READ - 14
Reentrancy across call frames
An external handoff can lead back into unfinished application logic.
4 MIN READ - 15
State rollback boundaries
A child failure and a top-level failure have different enclosing scopes.
4 MIN READ - 16
Static context restrictions
Read-only execution rules extend across nested execution.
4 MIN READ - 17
Inspect a delegatecall trace
Track code source and state owner as separate columns.
4 MIN READ - 18
Trace a failed token transfer
Separate the call result, return value and state effects.
4 MIN READ - 19
Trace proxy fallback execution
A fallback can forward input and return the delegated outcome.
4 MIN READ - 20
Low-level trace challenge set
Explain context, outcome and surviving effects together.
4 MIN READ