I understand that I can find if a transaction succeeded or not via the receipt status field. I'd like to do the same for individual traces, since a root tx can succeed, but child calls can fail.

My goal is to come up with a complete record from a transaction of ETH or token debits and credits by address resulting from a transaction.

See here for an example from Etherscan:

enter image description here

When I pull traces with the trace_transaction RPC call, I get something like this for each individual trace object returned:

    'action': {
        'callType': 'call',
        'from': '0xXXXXXXXXXXXXXXXXXX',
        'gas': '0x25ce48',
        'input': '0x3dea52fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000000000000000000000000000077e772392b600000000000000000000000000000000000000000000000000000000000000000001',
        'value': '0x0'
    'blockHash': '0xXXXXXXXXX',
    'blockNumber': 6000030,
    'result': {'gasUsed': '0x2532ed', 'output': '0x'},
    'subtraces': 1,
    'traceAddress': [],
    'transactionHash': '0xXXXXXXXXXX',
    'transactionPosition': 45,
    'type': 'call'

So unless the failure is using too much gas, I don't see how I could determine if it failed (and therefore all it's child calls), which is what I'm trying to do.

Any ideas on how I can find this?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.