9dc29bf3f7
* 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 | ||
beacon | ||
consensus | ||
ethhashlookup | ||
events | ||
exchange | ||
gen | ||
index | ||
market | ||
messagepool | ||
messagesigner | ||
rand | ||
state | ||
stmgr | ||
store | ||
sub | ||
types | ||
vectors | ||
vm | ||
wallet | ||
badtscache.go | ||
block_receipt_tracker.go | ||
checkpoint.go | ||
sync_manager_test.go | ||
sync_manager.go | ||
sync_test.go | ||
sync.go | ||
syncstate.go | ||
types_test.go |