f60d4e1208
* feat: api: improve the correctness of Eth's trace_block (#11609) * Improve the correctness of Eth's trace_block - Improve encoding/decoding of parameters and return values: - Encode "native" parameters and return values with Solidity ABI. - Correctly decode parameters to "create" calls. - Use the correct (ish) output for "create" calls. - Handle all forms of "create". - Make robust with respect to reverts: - Use the actor ID/address from the trace instead of looking it up in the state-tree (may not exist in the state-tree due to a revert). - Gracefully handle failed actor/contract creation. - Improve performance: - We avoid looking anything up in the state-tree when translating the trace, which should significantly improve performance. - Improve code readability: - Remove all "backtracking" logic. - Use an "environment" struct to store temporary state instead of attaching it to the trace. - Fix random bugs: - Fix an allocation bug in the "address" logic (need to set the capacity before modifying the slice). - Improved error checking/handling. - Use correct types for `trace_block` action/results (create, call, etc.). - And use the correct types for Result/Action structs instead of reusing the same "Call" action every time. - Improve error messages. * Make gen Make gen --------- Co-authored-by: Steven Allen <steven@stebalien.com> |
||
---|---|---|
.. | ||
actors | ||
bootstrap | ||
genesis | ||
openrpc | ||
proof-params | ||
bootstrap.go | ||
builtin_actors_gen.go | ||
builtin_actors_test.go | ||
builtin_actors.go | ||
clock.go | ||
drand.go | ||
flags.go | ||
forks.go | ||
genesis.go | ||
isnearupgrade.go | ||
limits.go | ||
openrpc_test.go | ||
openrpc.go | ||
panic_reporter.go | ||
parameters.go | ||
params_2k.go | ||
params_butterfly.go | ||
params_calibnet.go | ||
params_debug.go | ||
params_interop.go | ||
params_mainnet.go | ||
params_shared_funcs.go | ||
params_shared_vals.go | ||
params_testground.go | ||
testing_flags.go | ||
tools.go | ||
version.go |