On the Etherscan interface everything is marked as red, as everything was reverted.
Etherscan knows that it needs to mark all as errored as the tracing action where the traceAddress
is [0]
errored. Therefore all sub traces are also reverted (so every trace where the first entry in the traceAddress
is 0
).
On EVM level reverts are not automatically propagated up. Solidity adds a check to contracts calls (unless you use the low level call
, staticcall
or delegatecall
) to check if it was successful, otherwise it will bubble up the revert.
For out of gas
a propagation might also happen because there is not enough gas left for continuing the execution after the sub call reverted.
You can also see the raw trace that Etherscan use here: https://etherscan.io/vmtrace?txhash=0x6d4007f5bf5c71bad9e2331414843c078f9deaf9debb0427855a34b613d11b93&type=parity
Edit:
Click Parity Trace
in the options menu to see the traces on Etherscan