Skip to content

Integrate actor v18#6863

Merged
sudo-shashank merged 6 commits intomainfrom
shashank/add-v18-actor-support
Apr 9, 2026
Merged

Integrate actor v18#6863
sudo-shashank merged 6 commits intomainfrom
shashank/add-v18-actor-support

Conversation

@sudo-shashank
Copy link
Copy Markdown
Contributor

@sudo-shashank sudo-shashank commented Apr 7, 2026

Summary of changes

Changes introduced in this pull request:

  • Integrate v18 actors

Reference issue to close (if applicable)

Closes

Other information and links

Change checklist

  • I have performed a self-review of my own code,
  • I have made corresponding changes to the documentation. All new code adheres to the team's documentation standards,
  • I have added tests that prove my fix is effective or that my feature works (if possible),
  • I have made sure the CHANGELOG is up-to-date. All user-facing changes should be reflected in this document.

Outside contributions

  • I have read and agree to the CONTRIBUTING document.
  • I have read and agree to the AI Policy document. I understand that failure to comply with the guidelines will lead to rejection of the pull request.

Summary by CodeRabbit

  • New Features

    • Added support for Filecoin actor state version 18 across all actor types and shim conversions.
    • RPC endpoints and state queries now handle actor version 18 uniformly.
  • Dependencies

    • Bumped Filecoin actor-state libraries to v25.0.0 (preserving json feature where present).

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 7, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: a0e0c62f-ebfc-419d-ace2-04030c73e170

📥 Commits

Reviewing files that changed from the base of the PR and between ea2114c and 416035b.

📒 Files selected for processing (1)
  • src/shim/actors/builtin/multisig/mod.rs
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/shim/actors/builtin/multisig/mod.rs

Walkthrough

Dependency versions for all Filecoin actor-state crates and fil_actors_shared are bumped to 25.0.0. Broad support for actor version V18 is added across Lotus-JSON conversions, RPC registration and methods, shim actor definitions and conversions, state loading, and RPC type mappings.

Changes

Cohort / File(s) Summary
Cargo Dependencies
Cargo.toml
Bumped all fil_actor_*_state crates and fil_actors_shared from 24.1.325.0.0.
Lotus JSON Actor Parameters
src/lotus_json/actors/params/...
src/lotus_json/actors/params/{account,cron,datacap,eam,evm,init,market,miner,multisig,paych,power,reward,verified_reg}_params.rs
Extended macro invocations to generate HasLotusJson impls and snapshot tests for v18 parameter types (market and miner see largest expansions).
Lotus JSON Actor States & Helpers
src/lotus_json/actors/states/..., src/lotus_json/{entry,tombstone}.rs, src/lotus_json/transient_data.rs
Added v18 handling to state-to-Lotus-JSON conversion macros and transient data generation; updated default-latest-version references to v18 for many actors.
RPC Methods & State Queries
src/rpc/methods/{f3,state}.rs
Added V18 branches for power and multiple state lookup helpers (init address lookup, miner balances/precommit info, allocations).
RPC Registry Actor Registration
src/rpc/registry/actors/...
Registered ActorVersion::V18 for account, cron, datacap, eam, eth_account, evm, init, market, miner, multisig, payment_channel, power, reward, system, verified_reg via existing registration macros.
RPC Type Conversions
src/rpc/types/sector_impl.rs
Added From impls to map fil_actor_miner_state::v18 sector and precommit types into RPC SectorOnChainInfo/SectorPreCommit* types.
Shim Actor State Definitions
src/shim/actors/builtin/.../mod.rs
Added V18(...) enum variants and switched default_latest_version to construct v18 states across account, cron, datacap, evm, init, market, miner, multisig, paymentchannel, power, reward, system, verifreg; includes new conversions for market/miner/power/reward/verifreg.
Shim Actor Extensions & State Helpers
src/shim/actors/builtin/{market/ext,state,...,miner/ext,state,power/ext,verifreg/ext}/...
Added v18 branches in balance iteration, pending allocations loading, deadline fees, sector loading, power queries, claim/allocation retrieval, and related helpers.
Policy & Conversion Utilities
src/shim/actors/convert.rs, src/shim/runtime.rs
Added from_policy_v13_to_v18 and impl From<&Policy> for PolicyV18 plus imports for v18 runtime policy/proof types to support v18 policy conversions.
Actor State Loading
src/shim/actors/state_load.rs
Extended generated actor_state_load_impl! invocations to include 18, V18 mappings for many actor types enabling deserialization into v18 shim variants.

Sequence Diagram(s)

sequenceDiagram
    participant Client
    participant RPC
    participant Shim
    participant ActorState as "Actor State / Storage"
    participant LotusJson as "lotus_json"

    Client->>RPC: Request (e.g., StateLookup / MinerInfo)
    RPC->>Shim: load actor state (match ActorVersion::V18)
    Shim->>ActorState: Deserialize v18 state from store
    ActorState-->>Shim: v18 state struct
    Shim->>LotusJson: convert State::V18 -> Lotus JSON
    LotusJson-->>RPC: Lotus-JSON payload / typed result
    RPC-->>Client: Response
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Suggested reviewers

  • akaladarshi
  • LesnyRumcajs
  • hanabi1224
🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 9.09% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Integrate actor v18' is concise and clearly summarizes the main change: adding support for Filecoin actor version 18 across the codebase.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch shashank/add-v18-actor-support
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch shashank/add-v18-actor-support

Comment @coderabbitai help to get the list of available commands and usage tips.

@sudo-shashank sudo-shashank force-pushed the shashank/add-v18-actor-support branch from a0b46fb to 920e1aa Compare April 7, 2026 14:24
@sudo-shashank sudo-shashank changed the title Import V18 actor Integrate actor v18 Apr 7, 2026
@sudo-shashank sudo-shashank added the RPC requires calibnet RPC checks to run on CI label Apr 8, 2026
@sudo-shashank sudo-shashank marked this pull request as ready for review April 8, 2026 20:10
@sudo-shashank sudo-shashank requested a review from a team as a code owner April 8, 2026 20:10
@sudo-shashank sudo-shashank requested review from akaladarshi and hanabi1224 and removed request for a team April 8, 2026 20:10
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (9)
src/lotus_json/actors/states/market_state.rs (1)

175-175: Add a dedicated State::V18 round-trip case.

This new arm is only exercised if State::default_latest_version() already points at V18. Pinning one explicit V18 snapshot here would keep the branch covered even if the “latest” helper lags behind.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/lotus_json/actors/states/market_state.rs` at line 175, Add an explicit
test/arm that round-trips State::V18 instead of relying solely on
State::default_latest_version(); locate the match/enum handling that currently
uses v13_plus_market_state_fields for [V13, V14, V15, V16, V17, V18] and add a
dedicated branch for State::V18 (or a dedicated V18 snapshot case in the test)
that pins an explicit V18 snapshot so the V18 path is exercised even if
State::default_latest_version() does not return V18; ensure the new case uses
the same serialization/deserialization assertions as the other versions to
validate round-trip behavior.
src/lotus_json/actors/states/verified_reg_state.rs (1)

125-125: Add a dedicated State::V18 round-trip case.

This arm is still covered only indirectly via State::default_latest_version(). An explicit V18 snapshot would make the new mapping fail fast if the latest-version helper ever falls out of sync.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/lotus_json/actors/states/verified_reg_state.rs` at line 125, Add an
explicit round-trip test case for State::V18 instead of relying only on
State::default_latest_version(); locate the verified registry state snapshot
tests that use v9_to_latest_verified_reg_state_fields and add a dedicated
arm/case that serializes and deserializes State::V18 (using the same field
mapping helpers) to assert equality/round-trip correctness, so any future drift
between the latest-version helper and the actual V18 mapping fails fast.
src/lotus_json/actors/params/power_params.rs (1)

403-434: Collapse the MinerPowerParams per-version modules into a macro.

impl_power_miner_power_params_v18 is a byte-for-byte copy of the v16/v17 modules, and the section header above is now stale. A tiny macro here would keep future actor bumps to a one-line change.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/lotus_json/actors/params/power_params.rs` around lines 403 - 434, The
per-version module impl_power_miner_power_params_v18 is a byte-for-byte
duplicate of the v16/v17 blocks; create a small macro (e.g.,
define_miner_power_params_impl!) that takes a version token (like v16, v17, v18)
and expands to the module with type alias T =
fil_actor_power_state::VERSION::MinerPowerParams, the snapshots test, and the
HasLotusJson impl mapping to MinerPowerParamsLotusJson (including snapshots(),
into_lotus_json and from_lotus_json). Replace the three repeated modules with
three macro invocations (one per version) and update the section header to be
generic or removed; keep references to impl_power_miner_power_params_v{VER} and
the HasLotusJson impl so reviewers can locate generated code.
src/shim/actors/builtin/miner/ext/state.rs (1)

185-199: Add context to the new V18 sector-loading failures.

This arm propagates raw errors from load_sector_infos, Sectors::load, and the AMT iteration, which makes a bad V18 state much harder to diagnose. Please wrap those calls with .context(...) before bubbling them up.

♻️ Suggested change
             State::V18(st) => {
                 if let Some(sectors) = sectors {
                     Ok(st
-                        .load_sector_infos(&store, sectors)?
+                        .load_sector_infos(&store, sectors)
+                        .context("loading miner v18 sector infos")?
                         .into_iter()
                         .map(From::from)
                         .collect())
                 } else {
-                    let sectors = fil_actor_miner_state::v18::Sectors::load(&store, &st.sectors)?;
+                    let sectors = fil_actor_miner_state::v18::Sectors::load(&store, &st.sectors)
+                        .context("loading miner v18 sectors")?;
                     let mut infos = Vec::with_capacity(sectors.amt.count() as usize);
                     sectors.amt.for_each(|_, info| {
                         infos.push(info.clone().into());
                         Ok(())
-                    })?;
+                    })
+                    .context("iterating miner v18 sectors")?;
                     Ok(infos)
                 }
             }
As per coding guidelines, "Use anyhow::Result for most operations and add context with `.context()` when errors occur".
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/shim/actors/builtin/miner/ext/state.rs` around lines 185 - 199,
State::V18 arm is propagating raw errors from load_sector_infos,
fil_actor_miner_state::v18::Sectors::load, and sectors.amt.for_each which loses
context; wrap each call with anyhow::Context via .context("...") describing the
operation (e.g., "loading sector infos for V18 state", "loading V18 Sectors
AMT", "iterating V18 sectors AMT") so failures include helpful messages; update
calls within the State::V18 match arm referencing load_sector_infos,
fil_actor_miner_state::v18::Sectors::load, and sectors.amt.for_each to append
.context(...) before the ? is returned.
src/lotus_json/actors/states/miner_state.rs (1)

154-170: Add a non-null V18 vesting-funds snapshot.

This fixture still keeps VestingFunds as null, so the newly added V18 embedded round-trip on Lines 193-208 never gets exercised. A second snapshot with an actual embedded payload would cover the only new behavior in this file.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/lotus_json/actors/states/miner_state.rs` around lines 154 - 170, The test
fixture uses fil_actor_miner_state::v18::VestingFunds(None) so the V18 embedded
round-trip code path in State::default_latest_version is never exercised; add a
second State::default_latest_version snapshot (or replace this one) that uses
fil_actor_miner_state::v18::VestingFunds(Some(...)) with a real, minimal
vesting-funds payload (matching the v18 struct shape expected by the round-trip)
so the embedded V18 serialization/deserialization path is exercised; ensure the
new snapshot mirrors the other default fields and uses the same
State::default_latest_version constructor pattern so the only difference is a
non-null V18 vesting-funds value.
src/lotus_json/actors/params/miner_params.rs (1)

4013-4071: Consider centralizing these miner version lists.

This block now carries several subtly different ranges (8..=18, 9..=18, 13..=18, 16..=18, plus intentionally capped pre-deprecation lists). Pulling the common sets behind a small helper macro or alias would make future actor bumps easier to audit and reduce accidental omissions.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/lotus_json/actors/params/miner_params.rs` around lines 4013 - 4071, The
repeated literal version lists (e.g., 8..=18, 9..=18, 13..=18, 16..=18) used
across macros like impl_lotus_json_for_miner_constructor_params!,
impl_lotus_json_for_miner_change_worker_param!,
impl_lotus_json_for_miner_prove_commit_sectors3_params!,
impl_lotus_json_for_miner_max_termination_fee_params!,
impl_miner_prove_commit_sector_params!, etc., should be centralized: create
small helper macros or named aliases (e.g., V8_TO_18!, V9_TO_18!, V13_TO_18!,
V16_TO_18!) that expand to the appropriate comma-separated version lists and
replace each literal list with the corresponding helper macro invocation so all
version ranges are defined in one place and future actor bumps are changed once.
src/rpc/registry/actors/payment_channel.rs (1)

9-9: Minor: Update comment to reflect extended version coverage.

The comment states methods are "consistent across all versions V8-V16" but the code now covers V8-V18.

📝 Suggested comment update
-// Payment channel methods are consistent across all versions V8-V16
+// Payment channel methods are consistent across all versions V8-V18
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/rpc/registry/actors/payment_channel.rs` at line 9, Update the top-line
comment in payment_channel.rs that currently says "Payment channel methods are
consistent across all versions V8-V16" to reflect the new coverage V8-V18;
locate the comment in the payment_channel.rs file (the module handling
PaymentChannel methods) and change the text to indicate V8-V18 so the comment
matches the implemented support.
src/rpc/registry/actors/reward.rs (1)

9-9: Consider renaming the macro to reflect extended version support.

The macro register_reward_version_11_to_16 is now used for versions 11 through 18. Consider renaming it to register_reward_version_11_plus or similar to avoid confusion as more versions are added.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/rpc/registry/actors/reward.rs` at line 9, The macro
register_reward_version_11_to_16 should be renamed to a name that reflects
extended support (e.g., register_reward_version_11_plus); update the
macro_rules! declaration name and replace all invocations of
register_reward_version_11_to_16! with the new name, and adjust any
comments/docstrings referencing the old name to avoid confusion when adding
future versions (ensure symbol consistency for macro_rules!
register_reward_version_11_plus and all call sites).
src/rpc/methods/state.rs (1)

520-536: "Robust address not found" is not actually reachable here.

map.for_each(...) only errors on iteration failures, not on a miss, so this new v18 arm always falls through to Ok(robust_addr). If Address::default() is the intended sentinel, the context is misleading and should be removed; otherwise, track a found flag and return the not-found error explicitly.

As per coding guidelines: **/*.rs: Use anyhow::Result<T> for most operations and add context with .context() when errors occur`.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/rpc/methods/state.rs` around lines 520 - 536, The v18 arm in
init::State::V18 uses fil_actor_init_state::v18::AddressMap::load and
map.for_each to set robust_addr, but map.for_each does not produce an error when
the address is missing so the trailing .context("Robust address not found") is
misleading; either remove that context and accept Address::default() as the
sentinel, or add a boolean found flag (set inside map.for_each when *v ==
id_addr_decoded) and after iteration return an explicit error (e.g.,
anyhow::bail! or Err(anyhow::anyhow!("Robust address not found"))) if not
found—update the code around robust_addr and map.for_each accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/shim/actors/builtin/multisig/mod.rs`:
- Around line 176-183: The v18 match arm currently panics by calling
.expect(...) when loading fil_actor_multisig_state::v18::PendingTxnMap in
State::V18; instead propagate the error from PendingTxnMap::load through
get_pending_txn by using the anyhow Context trait (use anyhow::Context) and
replacing .expect(...) with a .context("loading pending txns for v18")? (or
similar) so the function returns an anyhow::Result with a helpful context;
reference PendingTxnMap::load, st.pending_txs,
fil_actor_multisig_state::v18::PENDING_TXN_CONFIG and get_pending_txn when
making the change.

---

Nitpick comments:
In `@src/lotus_json/actors/params/miner_params.rs`:
- Around line 4013-4071: The repeated literal version lists (e.g., 8..=18,
9..=18, 13..=18, 16..=18) used across macros like
impl_lotus_json_for_miner_constructor_params!,
impl_lotus_json_for_miner_change_worker_param!,
impl_lotus_json_for_miner_prove_commit_sectors3_params!,
impl_lotus_json_for_miner_max_termination_fee_params!,
impl_miner_prove_commit_sector_params!, etc., should be centralized: create
small helper macros or named aliases (e.g., V8_TO_18!, V9_TO_18!, V13_TO_18!,
V16_TO_18!) that expand to the appropriate comma-separated version lists and
replace each literal list with the corresponding helper macro invocation so all
version ranges are defined in one place and future actor bumps are changed once.

In `@src/lotus_json/actors/params/power_params.rs`:
- Around line 403-434: The per-version module impl_power_miner_power_params_v18
is a byte-for-byte duplicate of the v16/v17 blocks; create a small macro (e.g.,
define_miner_power_params_impl!) that takes a version token (like v16, v17, v18)
and expands to the module with type alias T =
fil_actor_power_state::VERSION::MinerPowerParams, the snapshots test, and the
HasLotusJson impl mapping to MinerPowerParamsLotusJson (including snapshots(),
into_lotus_json and from_lotus_json). Replace the three repeated modules with
three macro invocations (one per version) and update the section header to be
generic or removed; keep references to impl_power_miner_power_params_v{VER} and
the HasLotusJson impl so reviewers can locate generated code.

In `@src/lotus_json/actors/states/market_state.rs`:
- Line 175: Add an explicit test/arm that round-trips State::V18 instead of
relying solely on State::default_latest_version(); locate the match/enum
handling that currently uses v13_plus_market_state_fields for [V13, V14, V15,
V16, V17, V18] and add a dedicated branch for State::V18 (or a dedicated V18
snapshot case in the test) that pins an explicit V18 snapshot so the V18 path is
exercised even if State::default_latest_version() does not return V18; ensure
the new case uses the same serialization/deserialization assertions as the other
versions to validate round-trip behavior.

In `@src/lotus_json/actors/states/miner_state.rs`:
- Around line 154-170: The test fixture uses
fil_actor_miner_state::v18::VestingFunds(None) so the V18 embedded round-trip
code path in State::default_latest_version is never exercised; add a second
State::default_latest_version snapshot (or replace this one) that uses
fil_actor_miner_state::v18::VestingFunds(Some(...)) with a real, minimal
vesting-funds payload (matching the v18 struct shape expected by the round-trip)
so the embedded V18 serialization/deserialization path is exercised; ensure the
new snapshot mirrors the other default fields and uses the same
State::default_latest_version constructor pattern so the only difference is a
non-null V18 vesting-funds value.

In `@src/lotus_json/actors/states/verified_reg_state.rs`:
- Line 125: Add an explicit round-trip test case for State::V18 instead of
relying only on State::default_latest_version(); locate the verified registry
state snapshot tests that use v9_to_latest_verified_reg_state_fields and add a
dedicated arm/case that serializes and deserializes State::V18 (using the same
field mapping helpers) to assert equality/round-trip correctness, so any future
drift between the latest-version helper and the actual V18 mapping fails fast.

In `@src/rpc/methods/state.rs`:
- Around line 520-536: The v18 arm in init::State::V18 uses
fil_actor_init_state::v18::AddressMap::load and map.for_each to set robust_addr,
but map.for_each does not produce an error when the address is missing so the
trailing .context("Robust address not found") is misleading; either remove that
context and accept Address::default() as the sentinel, or add a boolean found
flag (set inside map.for_each when *v == id_addr_decoded) and after iteration
return an explicit error (e.g., anyhow::bail! or Err(anyhow::anyhow!("Robust
address not found"))) if not found—update the code around robust_addr and
map.for_each accordingly.

In `@src/rpc/registry/actors/payment_channel.rs`:
- Line 9: Update the top-line comment in payment_channel.rs that currently says
"Payment channel methods are consistent across all versions V8-V16" to reflect
the new coverage V8-V18; locate the comment in the payment_channel.rs file (the
module handling PaymentChannel methods) and change the text to indicate V8-V18
so the comment matches the implemented support.

In `@src/rpc/registry/actors/reward.rs`:
- Line 9: The macro register_reward_version_11_to_16 should be renamed to a name
that reflects extended support (e.g., register_reward_version_11_plus); update
the macro_rules! declaration name and replace all invocations of
register_reward_version_11_to_16! with the new name, and adjust any
comments/docstrings referencing the old name to avoid confusion when adding
future versions (ensure symbol consistency for macro_rules!
register_reward_version_11_plus and all call sites).

In `@src/shim/actors/builtin/miner/ext/state.rs`:
- Around line 185-199: State::V18 arm is propagating raw errors from
load_sector_infos, fil_actor_miner_state::v18::Sectors::load, and
sectors.amt.for_each which loses context; wrap each call with anyhow::Context
via .context("...") describing the operation (e.g., "loading sector infos for
V18 state", "loading V18 Sectors AMT", "iterating V18 sectors AMT") so failures
include helpful messages; update calls within the State::V18 match arm
referencing load_sector_infos, fil_actor_miner_state::v18::Sectors::load, and
sectors.amt.for_each to append .context(...) before the ? is returned.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: d2f861a0-e21c-46a7-9aed-e0c152299c3d

📥 Commits

Reviewing files that changed from the base of the PR and between 72fd9ca and ea2114c.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (69)
  • Cargo.toml
  • src/lotus_json/actors/params/account_params.rs
  • src/lotus_json/actors/params/cron_params.rs
  • src/lotus_json/actors/params/datacap_params.rs
  • src/lotus_json/actors/params/eam_params.rs
  • src/lotus_json/actors/params/evm_params.rs
  • src/lotus_json/actors/params/init_params.rs
  • src/lotus_json/actors/params/market_params.rs
  • src/lotus_json/actors/params/miner_params.rs
  • src/lotus_json/actors/params/multisig_params.rs
  • src/lotus_json/actors/params/paych_params.rs
  • src/lotus_json/actors/params/power_params.rs
  • src/lotus_json/actors/params/reward_params.rs
  • src/lotus_json/actors/params/verified_reg_params.rs
  • src/lotus_json/actors/states/cron_state.rs
  • src/lotus_json/actors/states/datacap_state.rs
  • src/lotus_json/actors/states/evm_state.rs
  • src/lotus_json/actors/states/init_state.rs
  • src/lotus_json/actors/states/market_state.rs
  • src/lotus_json/actors/states/miner_state.rs
  • src/lotus_json/actors/states/multisig_state.rs
  • src/lotus_json/actors/states/payment_channel_state.rs
  • src/lotus_json/actors/states/power_states.rs
  • src/lotus_json/actors/states/reward_state.rs
  • src/lotus_json/actors/states/system_state.rs
  • src/lotus_json/actors/states/verified_reg_state.rs
  • src/lotus_json/entry.rs
  • src/lotus_json/tombstone.rs
  • src/lotus_json/transient_data.rs
  • src/rpc/methods/f3.rs
  • src/rpc/methods/state.rs
  • src/rpc/registry/actors/account.rs
  • src/rpc/registry/actors/cron.rs
  • src/rpc/registry/actors/datacap.rs
  • src/rpc/registry/actors/eam.rs
  • src/rpc/registry/actors/eth_account.rs
  • src/rpc/registry/actors/evm.rs
  • src/rpc/registry/actors/init.rs
  • src/rpc/registry/actors/market.rs
  • src/rpc/registry/actors/miner.rs
  • src/rpc/registry/actors/multisig.rs
  • src/rpc/registry/actors/payment_channel.rs
  • src/rpc/registry/actors/power.rs
  • src/rpc/registry/actors/reward.rs
  • src/rpc/registry/actors/system.rs
  • src/rpc/registry/actors/verified_reg.rs
  • src/rpc/types/sector_impl.rs
  • src/shim/actors/builtin/account/mod.rs
  • src/shim/actors/builtin/cron/mod.rs
  • src/shim/actors/builtin/datacap/mod.rs
  • src/shim/actors/builtin/evm/mod.rs
  • src/shim/actors/builtin/init/mod.rs
  • src/shim/actors/builtin/market/ext/balance_table.rs
  • src/shim/actors/builtin/market/ext/state.rs
  • src/shim/actors/builtin/market/mod.rs
  • src/shim/actors/builtin/miner/ext/deadline.rs
  • src/shim/actors/builtin/miner/ext/state.rs
  • src/shim/actors/builtin/miner/mod.rs
  • src/shim/actors/builtin/multisig/mod.rs
  • src/shim/actors/builtin/paymentchannel/mod.rs
  • src/shim/actors/builtin/power/ext.rs
  • src/shim/actors/builtin/power/mod.rs
  • src/shim/actors/builtin/reward/mod.rs
  • src/shim/actors/builtin/system/mod.rs
  • src/shim/actors/builtin/verifreg/ext/state.rs
  • src/shim/actors/builtin/verifreg/mod.rs
  • src/shim/actors/convert.rs
  • src/shim/actors/state_load.rs
  • src/shim/runtime.rs

Comment thread src/shim/actors/builtin/multisig/mod.rs Outdated
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 8, 2026

Codecov Report

❌ Patch coverage is 11.25954% with 465 lines in your changes missing coverage. Please review.
✅ Project coverage is 63.58%. Comparing base (72fd9ca) to head (416035b).
⚠️ Report is 3 commits behind head on main.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
src/shim/actors/builtin/miner/mod.rs 1.81% 108 Missing ⚠️
src/shim/actors/convert.rs 0.00% 77 Missing ⚠️
src/rpc/methods/state.rs 0.00% 48 Missing ⚠️
src/shim/actors/builtin/market/mod.rs 2.38% 41 Missing ⚠️
src/rpc/types/sector_impl.rs 0.00% 38 Missing ⚠️
src/shim/actors/builtin/reward/mod.rs 5.71% 33 Missing ⚠️
src/shim/actors/builtin/power/mod.rs 8.33% 22 Missing ⚠️
src/shim/actors/builtin/verifreg/ext/state.rs 0.00% 16 Missing ⚠️
src/shim/actors/builtin/miner/ext/state.rs 0.00% 14 Missing ⚠️
src/shim/actors/builtin/multisig/mod.rs 13.33% 12 Missing and 1 partial ⚠️
... and 22 more
Additional details and impacted files
Files with missing lines Coverage Δ
src/lotus_json/actors/params/account_params.rs 100.00% <ø> (ø)
src/lotus_json/actors/params/cron_params.rs 100.00% <ø> (ø)
src/lotus_json/actors/params/datacap_params.rs 100.00% <ø> (ø)
src/lotus_json/actors/params/eam_params.rs 100.00% <ø> (ø)
src/lotus_json/actors/params/evm_params.rs 100.00% <ø> (ø)
src/lotus_json/actors/params/init_params.rs 100.00% <ø> (ø)
src/lotus_json/actors/params/market_params.rs 97.61% <ø> (ø)
src/lotus_json/actors/params/miner_params.rs 75.66% <ø> (ø)
src/lotus_json/actors/params/multisig_params.rs 100.00% <ø> (ø)
src/lotus_json/actors/params/paych_params.rs 84.61% <ø> (ø)
... and 58 more

... and 13 files with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a738e2a...416035b. Read the comment docs.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

hanabi1224
hanabi1224 previously approved these changes Apr 8, 2026
@sudo-shashank sudo-shashank force-pushed the shashank/add-v18-actor-support branch from 91acce3 to 82812a1 Compare April 9, 2026 01:58
@sudo-shashank sudo-shashank requested a review from hanabi1224 April 9, 2026 01:58
@sudo-shashank sudo-shashank added this pull request to the merge queue Apr 9, 2026
Merged via the queue into main with commit 7f70997 Apr 9, 2026
68 of 71 checks passed
@sudo-shashank sudo-shashank deleted the shashank/add-v18-actor-support branch April 9, 2026 03:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

RPC requires calibnet RPC checks to run on CI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants