In this track: Execution traces and low-level calls
advanced · 4 MIN READ

Inspect a delegatecall trace

Track code source and state owner as separate columns.

LET’S PICTURE IT

A borrowed manual can run at your desk under your current visitor context.

SEE IT FOR YOURSELF
Pack small values into Solidity storage slotsStep 1 / 4
Pack small values into Solidity storage slotsFirstuint128 A16 bytesSeconduint128 B16 bytesThirduint256 C32 bytesSimple elementary types only; not a complete compiler layoutSlot 0 · 32 bytesUnused · 16 BA · 16 BHigh-order bytes ← → low-order bytesSlot 0 · fullB · 16 BA · 16 BDeclaration order and sizes determine this packingSlot 0BASlot 1C · 32 bytesTry different sequences in the storage-layout tool

In this simple default-layout example, two uint128 values come before one uint256. Each slot holds thirty-two bytes.

Animated local teaching model. No wallet, RPC or live blockchain data. Some labels and hashes are abbreviated for readability.

Identify the proxy entry

In a simple User to Proxy call, the proxy receives the immediate caller and value. Those fields provide the starting context for delegation.

Change the code source

The implementation supplies executed code during DELEGATECALL. That change does not move the application state into the implementation’s own storage.

Preserve the delegated fields

The delegated frame keeps the proxy context’s msg.sender and msg.value. A normal CALL would establish different immediate-caller behavior.

Interpret writes and logs correctly

Slot writes and emitted logs use the delegated execution’s address context. Review storage compatibility and event attribution under that context.

Follow the execution

Frame        code source      storage owner      msg.sender
Proxy entry  Proxy            Proxy              User
Delegated    Implementation   Proxy              User

A local conceptual trace with explicit assumptions; this is not a trace of a live transaction.

QUICK CHECK · NO PRESSURE

Where do typical delegated proxy state writes land?

Your progress stays in this browser.
Keep exploring the original referenceethereum.org ↗

Original explanations by EtherTools. Examples are educational and source-linked; this site is independent of the Ethereum Foundation. Our approach.