- Some frequent eth_calls like
symbol() or totalSupply() can usually be run with very low gas (<65535)
- The current
gas value for every eth_call from a substreams is 50_000_000, which is 763x a reasonable value. This leads to issues like a symbol() call timing out after 5 minutes of running -- before hitting the 'out_of_gas' limit on some 'broken contracts'.
- The substreams developer should be able to set a decent gas limit when 'discovering unknown contracts' to prevent those edge cases. A higher gas limit is only necessary when doing more complex calls like discovering minted NFTs in a recursive data structure or calling a method that has many internal calls.
Adding an intrinsic just for this in substreams and in the substreams-rs library may be tricky because it will fail on older substreams servers, but it may be what we want, to prevent determinism issues.