Parity implements a really useful trace module for deep diving into blocks and transactions.
One particular method trace_transaction allows you to investigate the EVM execution paths of a transaction.
It is not however clear in the documentation what the various response values represent.
Most of the values are (I believe) fairly obvious.
The ones that are confusing me are
gas within the
action property of the result, and
gasUsed within the
I assume that they represent the maximum gas available at that given step, and the amount of gas used by that step respectively BUT a the initial
gas value does not equal that sent with the transaction and a summation of the
gasUsed values does not equal the value for gasUsed returned by a call to
This (random) transaction on the Ropsten testnet.
The first call has a gas value of 576552 whereas the transaction was submitted with a gas limit of 600000.
The summation of
gasUsed values is 102979 whereas a call to
getTransactionReceipt returns a total gas used of 93518.
The Geth debug modules also shown a difference of 93518 between the first and last EVM commands.
Can anyone clear up what these values actually represent?