Consensys / linea-tracer

Part of the Linea stack responsible for extracting data from the execution of an EVM client in order to construct large matrices called execution traces.
https://linea.build
Other
24 stars 20 forks source link

Insufficient balance but actually `RETURN` pricing (8019521) #1116

Closed FlorianHuc closed 5 days ago

FlorianHuc commented 1 week ago

Ranges

8019521-8019521

Issue

Error fetching or parsing JSON: 'result' {'jsonrpc': '2.0', 'id': 1, 'error': {'code': -32603, 'message': 'Plugin internal error', 'data': 'Exceptions triggered while tracing:\n - Insufficient balance\n\t\tAddress: 0xf2614a233c7c3e7f08b1f887ba133a13f1eb2c55\n\t\tBalance: 0x0000000000000000000000000000000000000000000000000000000000000000\n\t\tValue: 0x00000000000000000000000000000000000000000000000000e0241f2da18713\n'}} Failed to fetch or parse JSON data for blockNumber=8019521: 'result'

OlivierBBB commented 6 days ago

@FlorianHuc Just to make sure: this block was captured on the shadow-node, right ?

OlivierBBB commented 5 days ago

The issue was that the final instruction in transaction 4

// current frame isn't a deployment context
ABS_TX_NUM = 4
getDepth()          = 0
stamp()             = 32379     (in traceOpcode(MessageFrame))
opCode()            = RETURN

getRemainingGas()   = 2482
exceptions          = 16 ⇔ OUT_OF_GAS_EXCEPTION
memorySizeInWords() = 31

stack:

    0x0000000000000000000000000000000000000000000000000000000000000344     // offset
    0x20                                                                   // size
    0x000000000000000000000000000000000000000000000000000000006678ec1f     // -----

was costing 6400 gas was throwing an outOfGasException which caused some CALL's that took place here

stamp()    = 31491
depth      = 0
recipient  = 0xf2614a233c7c3e7f08b1f887ba133a13f1eb2c55
current frame isn't a deployment
stamp()             = 32379     (in traceOpcode(MessageFrame))

to REVERT.