lotus/api
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
..
client fix: lp api handler for stop 2023-12-03 00:40:01 -06:00
docgen feat: fvm: update the FVM/FFI to v4.1 (#11608) 2024-02-06 17:22:14 -08:00
docgen-openrpc chore: fix imports 2022-06-14 17:00:51 +02:00
mocks fix: chain: use latest go-state-types types for miner UI 2024-01-11 10:37:13 -05:00
types feat: gateway: eth_ api support 2023-01-13 20:04:41 +01:00
v0api fix: chain: use latest go-state-types types for miner UI 2024-01-11 10:37:13 -05:00
v1api fix: lp api handler for stop 2023-12-03 00:40:01 -06:00
api_common.go feat: Add node uptime rpc / output in info command 2022-10-11 10:11:09 +02:00
api_errors.go fix: itest: check for closed connection 2022-09-27 15:34:01 +00:00
api_full.go feat: api: improve the correctness of Eth's trace_block (#11609) 2024-02-21 12:20:00 -08:00
api_gateway.go Make block param to EthEstimateGas optional 2023-11-29 10:26:22 +00:00
api_lp.go fix: lp api handler for stop 2023-12-03 00:40:01 -06:00
api_net.go return all the public addresses in NatInfo 2023-05-10 11:54:48 +03:00
api_storage.go chore: chain/actors: Use type proxies instead of versioned GST imports 2023-08-29 15:28:16 +02:00
api_test.go address magik supernit 2022-09-27 15:34:01 +00:00
api_wallet.go lotus-wallet: Support permissioned api 2021-05-31 13:56:35 +02:00
api_worker.go sealing: Split unsealed cleanup from Finalize 2022-11-23 18:57:16 +01:00
cbor_gen.go make gen 2023-09-23 17:54:44 -04:00
checkstatuscode_string.go implement MessagePool.CheckMessages 2021-05-07 15:30:04 +02:00
eth_aliases.go Moved tracing types to ethtypes to address circular dependencies 2023-08-28 17:48:22 +00:00
miner_subsystems.go fix docs and nits. 2021-07-28 20:03:25 +01:00
permissioned.go lotus-provider: fix RPC construction for real real 2023-12-04 14:15:58 +01:00
proxy_gen.go Merge remote-tracking branch 'origin/master' into misc/drop-raft-experiment 2024-01-09 15:39:41 +01:00
proxy_util_test.go fix make gen 2022-08-29 16:25:30 +02:00
proxy_util.go api: Separate the Net interface from Common 2021-07-15 11:41:30 +02:00
README.md api: Add basic package readme 2021-03-25 18:00:29 +01:00
types.go misc: Drop the raft-cluster experiment 2023-11-29 17:28:46 +01:00
utils.go Update to specs v0.9.6 2020-09-07 15:48:41 -04:00
version.go fix: lp api handler for stop 2023-12-03 00:40:01 -06:00
wrap.go api: Fix Wrap for nested proxy structs 2021-06-28 19:00:37 +02:00

Lotus API

This package contains all lotus API definitions. Interfaces defined here are exposed as JsonRPC 2.0 endpoints by lotus programs.

Versions

File Alias File Interface Exposed by Version HTTP Endpoint Status Docs
api_common.go v0api/latest.go Common lotus; lotus-miner v0 /rpc/v0 Latest, Stable Methods
api_full.go v1api/latest.go FullNode lotus v1 /rpc/v1 Latest, Work in progress Methods
api_storage.go v0api/latest.go StorageMiner lotus-miner v0 /rpc/v0 Latest, Stable Methods
api_worker.go v0api/latest.go Worker lotus-worker v0 /rpc/v0 Latest, Stable Methods
v0api/full.go FullNode lotus v0 /rpc/v0 Stable Methods