* Use local GST
Use local GST
* Import actors and define upgrade heights
Creatin a mock actor-bundle and define upgrade heights
* Generate adapters
Updates gen/inlinegen-data.json, and runs make actors-gen
* Add schedule and migration
Add schedule and migration
* Add upgrade and network version fields/params
Add upgrade and network version fields/params
* Run make gen / make docsgen-cli
Run make gen / make docsgen-cli
* Update filecoin-ffi
Update filecoin-ffi to the v1.28.0-dev tag, which supports the nv23 skeleton.
* Update GST to v0.14.0-dev
Update GST to v0.14.0-dev, which includes the nv23 skeleton
* Add support for actor version 14 in actor registry
Add support for actor version 14 in actor registry
The naming of `LookupID` can cause confusion when resolving actor IDs vs
ID addresses. To avoid this:
* Refactor `StateTree` `LookupID` to `LookupIDAddress`, because it
returns ID address.
* Refactor `StateManager` `LookupID` to
`LookupIDAddress` because it also returns ID address via a chain call to
`StateTree`.
* Introduce a new API `StateManager` dedicated to resolving address to
actor ID, called `LookupID` which returns `abi.ActorID`.
For context, see:
* https://github.com/filecoin-project/lotus/pull/11723#discussion_r1534728607
Eth subscribe tipsets API should only return tipsets that have been executed.
We do this by only returning the parent tipset of the latest tipset received by ETH Subscribe from it's TipSetFilter subscription.
Closes#11807
Subsumes #11816
Codec != Raw likely means built-in actor events, which we can safely skip, so
avoid filling up logs with warnings for every built-in actor event that comes
past this point.
Fixes: https://github.com/filecoin-project/lotus/issues/11718
This is done with the intention to add new {Get,Subscribe}ActorEvents in a
future release (i.e. soon!) with both decoded values (dag-json represented)
and simplified (no flags or codec). But because this comes with some
trade-offs wrt fidelity of information (e.g. likely needing to drop events with
badly encoded values, and not retaining original codec), we need to also have
a Raw form of these APIs for consumers that want to take on the burden of
consuming them as they are.
Closes: https://github.com/filecoin-project/lotus/issues/11679
* Introduce a `moved:"To.New.Config"` tag which prints a stderr warning when
you use one of these, but will move any set value to the new location if the
new location isn't already set itself.
* Look for `X is DEPRECATED` to hold certain fields back from documentation.
* Use `toml:"omitempty"` to prevent the default config output from having these
deprecated values.
Use the functionalities already provided by `testify` to assert eventual
conditions, and remove the use of `time.Sleep`.
Remove duplicate code in utility functions that are already defined.
Refactor assertion helper functions to use consistent terminology:
"require" implies fatal error, whereas "assert" implies error where the
test may proceed executing.
Use a fresh context to remove the temporary filter installed solely to
get the actor events. This should reduce chances of failure in a case
where the original context may be expired/cancelled.
Refactor removal into a `defer` statement for a more readable, concise
return statement.
Refactor `map` usage for actor event table tests to ensure deterministic
test execution order, making debugging potential issues easier. If
non-determinism is a target, leverage Go's built-in parallel testing
capabilities.
Use BlockDelay as the window for receiving events on the SubscribeActorEvents
channel. We expect the user to have received the initial batch of historical
events (if any) in one block's time. For real-time events we expect them to
not fall behind by roughly one block's time.
* 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>