Skip to main content
added 174 characters in body
Source Link
Richard
  • 5.1k
  • 2
  • 10
  • 26

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

enter image description here

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

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

enter image description here

Source Link
Richard
  • 5.1k
  • 2
  • 10
  • 26

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