In this track: Read logs and failures
advanced · 4 MIN READ

Receipt and error challenge set

Combine event decoding, rollback and failure context.

LET’S PICTURE IT

Solving a case means reconciling the surviving records with the abandoned attempts.

SEE IT FOR YOURSELF
From an emitted Transfer event to a receipt logStep 1 / 4
From an emitted Transfer event to a receipt logToken executionApply coded rulesUpdate relevant balancesEmit Transferfrom · to · valueA structured logA reverted execution portion does not keep its emitted logsTransfer(address,address,uint256)Topic 0: 0xddf252ad…b3efFull digest · 32 bytesEvent topic zero and a function selector use different lengthsTopic 1from addressIndexedTopic 2to addressIndexedDataraw valueNot indexedThis diagram is specifically the common ERC-20 Transfer layoutReceipt logTopics + dataBlock contextApplication viewDecoded fieldsImplementation still mattersThe local event tool does not query or authenticate a deployed token

A token implementation may update balances and emit its standard Transfer event. State and the emitted record are related but distinct.

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

Challenge one: identify the layout

Given three topics and one data word, do not immediately label a log Transfer. First check the signature, indexed declaration, emitter and the non-indexed data schema.

Challenge two: apply rollback

A child emits then reverts, while its caller catches and emits a result. Identify which log survives before building a user-facing transaction narrative.

Challenge three: decode the failure

A payload begins 4e487b71 and contains code 11 in hex. Recognize the Panic schema and arithmetic category without claiming that the code identifies an exact source line.

Check your explanation

A complete answer states the chosen ABI, raw units, retained logs, failure propagation and what remains unknown. Clear limits are part of a correct technical explanation.

Inspect the example

event Transfer(address indexed from, address indexed to, uint256 value)

topic 0: 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
topic 1: 0x0000000000000000000000000000000000000000000000000000000000000001
topic 2: 0x0000000000000000000000000000000000000000000000000000000000000002
data: 0x0000000000000000000000000000000000000000000000000000000000000064

Toy emitter; from address 1; to address 2; raw amount 100.
No token decimals or verified token identity are implied.

Separate failure fixture:
0x4e487b710000000000000000000000000000000000000000000000000000000000000011

Practice the log and failure independently; this is not a claim that both occurred in one real receipt.

TURN UNDERSTANDING INTO PRACTICEOpen the Event decoder →
QUICK CHECK · NO PRESSURE

Which evidence survives a caught child revert?

Your progress stays in this browser.
Keep exploring the original referenceSolidity documentation ↗

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