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> |
||
---|---|---|
.. | ||
ethtypes | ||
mock | ||
testdata | ||
actor.go | ||
bigint_test.go | ||
bigint.go | ||
blockheader_test.go | ||
blockheader.go | ||
blockmsg_test.go | ||
blockmsg.go | ||
cbor_gen.go | ||
electionproof_test.go | ||
electionproof.go | ||
event.go | ||
execresult.go | ||
fil_test.go | ||
fil.go | ||
fullblock.go | ||
keystore.go | ||
logs.go | ||
message_fuzz.go | ||
message_receipt_cbor.go | ||
message_receipt_test.go | ||
message_receipt.go | ||
message_test.go | ||
message.go | ||
mpool.go | ||
percent_test.go | ||
percent.go | ||
signature_test.go | ||
signedmessage.go | ||
state.go | ||
tipset_key_test.go | ||
tipset_key.go | ||
tipset.go | ||
types_test.go | ||
vmcontext.go |