lotus/node/impl/full
Steven Allen 8ba491b6b4
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.
2024-02-21 12:20:00 -08:00
..
chain.go chore: migrate to boxo 2023-06-19 14:45:05 -07:00
dummy.go Make block param to EthEstimateGas optional 2023-11-29 10:26:22 +00:00
eth_event.go fix: eth: use the correct state-tree when resolving addresses (#11387) 2023-11-17 18:20:31 +01:00
eth_test.go feat: api: improve the correctness of Eth's trace_block (#11609) 2024-02-21 12:20:00 -08:00
eth_trace.go feat: api: improve the correctness of Eth's trace_block (#11609) 2024-02-21 12:20:00 -08:00
eth_utils.go feat: api: improve the correctness of Eth's trace_block (#11609) 2024-02-21 12:20:00 -08:00
eth.go feat: api: improve the correctness of Eth's trace_block (#11609) 2024-02-21 12:20:00 -08:00
gas_test.go fix make gen 2022-08-29 16:25:30 +02:00
gas.go Add tests for PCB/PCA batch splitting 2023-04-19 18:44:32 -04:00
mpool.go misc: Drop the raft-cluster experiment 2023-11-29 17:28:46 +01:00
multisig.go introduce v9 actors and nv17 2022-09-09 21:40:15 -04:00
state.go Merge branch 'feat/nv21' into asr/merge-feat-nv21 2023-10-16 11:13:33 -04:00
sync.go skip migration cache correctly 2023-11-09 14:14:46 -05:00
txhashmanager.go fix: eth: use the correct state-tree when resolving addresses (#11387) 2023-11-17 18:20:31 +01:00
wallet.go fix: Don't call WalletExport in msg signing flows 2023-02-10 02:37:59 +01:00