From 4536686cfd98d0bca7b0a4d66a3f051d9263029f Mon Sep 17 00:00:00 2001 From: Shashank Date: Thu, 3 Jul 2025 15:11:28 +0530 Subject: [PATCH 1/7] Add StateDecodeParams support for cron --- Cargo.lock | 87 +++++++++++-------- Cargo.toml | 30 +++---- .../methods/cron_constructor_params.rs | 83 ++++++++++++++++++ src/lotus_json/actor_states/methods/mod.rs | 1 + src/rpc/registry/actors/cron.rs | 32 +++++++ src/rpc/registry/actors/mod.rs | 1 + src/rpc/registry/methods_reg.rs | 3 +- 7 files changed, 184 insertions(+), 53 deletions(-) create mode 100644 src/lotus_json/actor_states/methods/cron_constructor_params.rs create mode 100644 src/rpc/registry/actors/cron.rs diff --git a/Cargo.lock b/Cargo.lock index 1b4619a85e39..98ea3aa46412 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -130,9 +130,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anes" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "735d4f398ca57cfa2880225c2bf81c3b9af3be5bb22e44ae70118dad38713e84" +checksum = "dc43e46599f3d77fcf2f2ca89e4d962910b0c19c44e7b58679cbbdfd1820a662" [[package]] name = "anstream" @@ -2535,9 +2535,9 @@ dependencies = [ [[package]] name = "fil_actor_account_state" -version = "22.2.0" +version = "22.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0b2aa18b0a96c394afb544a398a36b114a0b7bae5a107acefc88452cb017b4b" +checksum = "c18dd4761dff9aefd59caa87d9c671cf15eb53d9fa9e9478004142609389f96d" dependencies = [ "frc42_dispatch", "frc42_macros", @@ -2552,9 +2552,9 @@ dependencies = [ [[package]] name = "fil_actor_cron_state" -version = "22.2.0" +version = "22.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7028fa46e277549aa3ecd5cf82f763736f91faf6825de5a18f31ce34d7e8dfb" +checksum = "ecd03049be65a6b3cdf1dc0e59327140f119170cc7ff61edbb0e981c0b91ad5f" dependencies = [ "fvm_ipld_encoding", "fvm_shared 2.11.1", @@ -2567,9 +2567,9 @@ dependencies = [ [[package]] name = "fil_actor_datacap_state" -version = "22.2.0" +version = "22.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96a5b70682bfb0db1f6f07fc829895481c6f82b30e1b4d224768d2dbe32ccdf1" +checksum = "71cd283d581f96dc5f4251aea3095795e1ef0d1fab3dcca4f04659660d6b1441" dependencies = [ "fil_actors_shared", "frc42_dispatch", @@ -2588,9 +2588,9 @@ dependencies = [ [[package]] name = "fil_actor_eam_state" -version = "22.2.0" +version = "22.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eb7a50e248589a9810c85639f17d4b45972b3508988c663856f8424d5a411ff" +checksum = "4a5bff9f039f0e5cab267d92a77d4534dd81e7dd8b07f346f003ecb15ed3679b" dependencies = [ "fil_actor_evm_state", "fvm_ipld_encoding", @@ -2603,9 +2603,9 @@ dependencies = [ [[package]] name = "fil_actor_evm_state" -version = "22.2.0" +version = "22.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66b4cff4ae1c69b022595b62a39a3f9e41e1b6904050c317bd293310b3cc9ebf" +checksum = "99411231242810cf200b074be65cb43dff11350e3822cccfd70722f2b9ac0fbe" dependencies = [ "cid", "fil_actors_shared", @@ -2624,9 +2624,9 @@ dependencies = [ [[package]] name = "fil_actor_init_state" -version = "22.2.0" +version = "22.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6d0eacca25af02f3c599a4fd6b66e63b762d4a343bad50b04c0a4a8f0b15cc" +checksum = "069ab0bde8f31e46d246007d49aff171b9729938fd29f0386d4b6e6f356fa90e" dependencies = [ "anyhow", "cid", @@ -2645,9 +2645,9 @@ dependencies = [ [[package]] name = "fil_actor_market_state" -version = "22.2.0" +version = "22.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14ff6838365d185ae9d516699c1e12ddc40ed2f43606d5e4e050698e1c45754a" +checksum = "a001d342723b6764201805dcf3540f96b70463c9f43666c36f55e94a0032dbfa" dependencies = [ "anyhow", "cid", @@ -2673,9 +2673,9 @@ dependencies = [ [[package]] name = "fil_actor_miner_state" -version = "22.2.0" +version = "22.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2204fa01b10b0698edea32b19f95b01a75c43080d356535951d65a75d02ab3ea" +checksum = "9f8b2dbfa4034e415f451c45bceaedcf6bac635313e5391c0fcc644566640992" dependencies = [ "anyhow", "bitflags 2.9.1", @@ -2704,9 +2704,9 @@ dependencies = [ [[package]] name = "fil_actor_multisig_state" -version = "22.2.0" +version = "22.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "967e51b135aaf9699011015b177823d55ea3334bdb80bd685a1e77ea6a340366" +checksum = "66ac8ec8d23c3de5426d6440e05afdf9c0f759aa7d9c98169668333a327c2bd1" dependencies = [ "anyhow", "cid", @@ -2728,9 +2728,9 @@ dependencies = [ [[package]] name = "fil_actor_paych_state" -version = "22.2.0" +version = "22.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09bb4d0834d29f0513497d19dc504c2b16c6a9b82d3b593789a0143b7b1b783a" +checksum = "9e95194576cd0e6ce3d937f74a15870ef548669b54a405161ed49e8a19f0e165" dependencies = [ "cid", "fil_actors_shared", @@ -2747,9 +2747,9 @@ dependencies = [ [[package]] name = "fil_actor_power_state" -version = "22.2.0" +version = "22.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93c78b2fb7df6334b16eb9860af2281b35f5a76b4cf77ac0d26455677d1bf7a7" +checksum = "10430d1abf37f63fff2993d79b7fcc1c5a02355c447edc4c79e421cd5fc973fd" dependencies = [ "anyhow", "cid", @@ -2771,9 +2771,9 @@ dependencies = [ [[package]] name = "fil_actor_reward_state" -version = "22.2.0" +version = "22.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "137dd749ae8f3357e064925b3a7217aa372c901c18bd93820fec7b8a6da25a66" +checksum = "076e9892160a7ac10768e4507c029b02b7a8d51dfca37d9e4609f891a80deb16" dependencies = [ "fil_actors_shared", "fvm_ipld_encoding", @@ -2788,9 +2788,9 @@ dependencies = [ [[package]] name = "fil_actor_system_state" -version = "22.2.0" +version = "22.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea7042dbcb4b3cc51f0ce1e9856f2359d4312667759429f3b945925619475a7" +checksum = "16576490a4631930974af2b27949a13d8bb80bb3c09bf4a96194eff072eb8fe6" dependencies = [ "cid", "fil_actors_shared", @@ -2806,9 +2806,9 @@ dependencies = [ [[package]] name = "fil_actor_verifreg_state" -version = "22.2.0" +version = "22.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3198ec20a84a6c67b5ab024279f610828a7cb2d089f14c4357331e9262c12f9" +checksum = "d96b460f5605bcd2c305241f93635f1809632b570a3a5471cfb2b1101aa67d07" dependencies = [ "anyhow", "cid", @@ -2828,9 +2828,9 @@ dependencies = [ [[package]] name = "fil_actors_shared" -version = "22.2.0" +version = "22.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0179ea3b6d19997fff5b82075332184b16cb3e8f42377802bb979b76e5f2cb9" +checksum = "62d2aaa0bbc3382546b165a45c6d2a3a3095f1a765855febf58b213e237b69ba" dependencies = [ "anyhow", "cid", @@ -3023,7 +3023,7 @@ name = "forest-filecoin" version = "0.27.0" dependencies = [ "ahash", - "anes 0.2.0", + "anes 0.2.1", "anyhow", "argon2", "ariadne", @@ -4654,6 +4654,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "io-uring" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" +dependencies = [ + "bitflags 2.9.1", + "cfg-if", + "libc", +] + [[package]] name = "iowrap" version = "0.2.1" @@ -7447,9 +7458,9 @@ checksum = "51743d3e274e2b18df81c4dc6caf8a5b8e15dbe799e0dca05c7617380094e884" [[package]] name = "reqwest" -version = "0.12.21" +version = "0.12.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8cea6b35bcceb099f30173754403d2eba0a5dc18cea3630fccd88251909288" +checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" dependencies = [ "base64 0.22.1", "bytes", @@ -9053,17 +9064,19 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.45.1" +version = "1.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" +checksum = "1140bb80481756a8cbe10541f37433b459c5aa1e727b4c020fbfebdc25bf3ec4" dependencies = [ "backtrace", "bytes", + "io-uring", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", + "slab", "socket2", "tokio-macros", "tracing", diff --git a/Cargo.toml b/Cargo.toml index 64b7c7ae377f..2faa616146df 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -65,21 +65,21 @@ either = "1" enumflags2 = "0.7" ethereum-types = { version = "0.15", features = ["ethbloom"] } ez-jsonrpc-types = "0.5" -fil_actor_account_state = { version = "22.2" } -fil_actor_cron_state = { version = "22.2" } -fil_actor_datacap_state = { version = "22.2" } -fil_actor_eam_state = { version = "22.2" } -fil_actor_evm_state = { version = "22.2" } -fil_actor_init_state = { version = "22.2" } -fil_actor_market_state = { version = "22.2" } -fil_actor_miner_state = { version = "22.2" } -fil_actor_multisig_state = { version = "22.2" } -fil_actor_paych_state = { version = "22.2" } -fil_actor_power_state = { version = "22.2" } -fil_actor_reward_state = { version = "22.2" } -fil_actor_system_state = { version = "22.2" } -fil_actor_verifreg_state = { version = "22.2" } -fil_actors_shared = { version = "22.2", features = ["json"] } +fil_actor_account_state = { version = "22.4" } +fil_actor_cron_state = { version = "22.4" } +fil_actor_datacap_state = { version = "22.4" } +fil_actor_eam_state = { version = "22.4" } +fil_actor_evm_state = { version = "22.4" } +fil_actor_init_state = { version = "22.4" } +fil_actor_market_state = { version = "22.4" } +fil_actor_miner_state = { version = "22.4" } +fil_actor_multisig_state = { version = "22.4" } +fil_actor_paych_state = { version = "22.4" } +fil_actor_power_state = { version = "22.4" } +fil_actor_reward_state = { version = "22.4" } +fil_actor_system_state = { version = "22.4" } +fil_actor_verifreg_state = { version = "22.4" } +fil_actors_shared = { version = "22.4", features = ["json"] } flate2 = "1" flume = { workspace = true } fs_extra = "1" diff --git a/src/lotus_json/actor_states/methods/cron_constructor_params.rs b/src/lotus_json/actor_states/methods/cron_constructor_params.rs new file mode 100644 index 000000000000..b6d0c5a0d417 --- /dev/null +++ b/src/lotus_json/actor_states/methods/cron_constructor_params.rs @@ -0,0 +1,83 @@ +// Copyright 2019-2025 ChainSafe Systems +// SPDX-License-Identifier: Apache-2.0, MIT + +use super::*; +use crate::shim::actors::cron::Entry; +use jsonrpsee::core::Serialize; +use paste::paste; +use schemars::JsonSchema; +use serde::Deserialize; + +#[derive(Debug, Serialize, Deserialize, JsonSchema, Clone)] +#[serde(rename_all = "PascalCase")] +pub struct CronConstructorParamsLotusJson { + #[schemars(with = "LotusJson>")] + #[serde(with = "crate::lotus_json")] + pub entries: Vec, +} + +macro_rules! impl_lotus_json_for_cron_constructor_params { + ($($version:literal),+) => { + $( + paste! { + impl HasLotusJson for fil_actor_cron_state::[]::ConstructorParams { + type LotusJson = CronConstructorParamsLotusJson; + + #[cfg(test)] + fn snapshots() -> Vec<(serde_json::Value, Self)> { + use crate::shim::address::Address; + vec![( + json!({ + "Entries": [ + { + "Receiver": "f01", + "MethodNum": 2 + }, + { + "Receiver": "f02", + "MethodNum": 3 + } + ] + }), + Self { + entries: vec![ + fil_actor_cron_state::[]::Entry { + receiver: Address::new_id(1).into(), + method_num: 2, + }, + fil_actor_cron_state::[]::Entry { + receiver: Address::new_id(2).into(), + method_num: 3, + }, + ], + }, + )] + } + + fn into_lotus_json(self) -> Self::LotusJson { + Self::LotusJson { + entries: self.entries.into_iter().map(Entry::[]).collect(), + } + } + + fn from_lotus_json(json: Self::LotusJson) -> Self { + Self { + entries: json.entries.into_iter().map(|entry| match entry { + Entry::[](e) => e, + _ => { + let lotus_entry = entry.into_lotus_json(); + fil_actor_cron_state::[]::Entry { + receiver: lotus_entry.receiver.into(), + method_num: lotus_entry.method_num, + } + } + }).collect(), + } + } + } + } + )+ + }; +} + +impl_lotus_json_for_cron_constructor_params!(8, 9, 10, 11, 12, 13, 14, 15, 16); diff --git a/src/lotus_json/actor_states/methods/mod.rs b/src/lotus_json/actor_states/methods/mod.rs index 825949dbe75f..37aeb8dfd124 100644 --- a/src/lotus_json/actor_states/methods/mod.rs +++ b/src/lotus_json/actor_states/methods/mod.rs @@ -3,6 +3,7 @@ use super::*; mod account_authenticate_params; mod account_constructor_params; +mod cron_constructor_params; mod evm_constructor_params; mod init_constructor_params; mod init_exec4_params; diff --git a/src/rpc/registry/actors/cron.rs b/src/rpc/registry/actors/cron.rs new file mode 100644 index 000000000000..d6283f7c8904 --- /dev/null +++ b/src/rpc/registry/actors/cron.rs @@ -0,0 +1,32 @@ +// Copyright 2019-2025 ChainSafe Systems +// SPDX-License-Identifier: Apache-2.0, MIT + +use crate::rpc::registry::methods_reg::{MethodRegistry, register_actor_methods}; +use crate::shim::message::MethodNum; +use anyhow::Result; +use cid::Cid; +use paste::paste; + +macro_rules! register_cron_versions_8_to_16 { + ($registry:expr, $code_cid:expr, $($version:literal),+) => { + $( + paste! { + { + use fil_actor_cron_state::[]::{ConstructorParams, Method}; + + register_actor_methods!( + $registry, + $code_cid, + [ + (Method::Constructor, ConstructorParams), + ] + ); + } + } + )+ + }; +} + +pub(crate) fn register_actor_methods(registry: &mut MethodRegistry, cid: Cid) { + register_cron_versions_8_to_16!(registry, cid, 8, 9, 10, 11, 12, 13, 14, 15, 16); +} diff --git a/src/rpc/registry/actors/mod.rs b/src/rpc/registry/actors/mod.rs index 483ff04baa3a..228ce7f9cee4 100644 --- a/src/rpc/registry/actors/mod.rs +++ b/src/rpc/registry/actors/mod.rs @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0, MIT pub(crate) mod account; +pub(crate) mod cron; pub(crate) mod evm; pub(crate) mod init; pub(crate) mod miner; diff --git a/src/rpc/registry/methods_reg.rs b/src/rpc/registry/methods_reg.rs index 1eb526e83db7..30d8b1d52f91 100644 --- a/src/rpc/registry/methods_reg.rs +++ b/src/rpc/registry/methods_reg.rs @@ -73,7 +73,7 @@ impl MethodRegistry { } fn register_known_methods(&mut self) { - use crate::rpc::registry::actors::{account, evm, init, miner}; + use crate::rpc::registry::actors::{account, cron, evm, init, miner}; for (&cid, &(actor_type, _version)) in ACTOR_REGISTRY.iter() { match actor_type { @@ -81,6 +81,7 @@ impl MethodRegistry { BuiltinActor::Miner => miner::register_miner_actor_methods(self, cid), BuiltinActor::EVM => evm::register_evm_actor_methods(self, cid), BuiltinActor::Init => init::register_actor_methods(self, cid), + BuiltinActor::Cron => cron::register_actor_methods(self, cid), _ => {} } } From 5faf793e59f457297acb9223d20cff3d7bd942b9 Mon Sep 17 00:00:00 2001 From: Shashank Date: Wed, 6 Aug 2025 16:05:23 +0530 Subject: [PATCH 2/7] fix cron test --- src/rpc/registry/actors/cron.rs | 45 ++++++++++--------- src/rpc/registry/methods_reg.rs | 4 +- .../subcommands/api_cmd/api_compare_tests.rs | 23 ++++++++++ 3 files changed, 50 insertions(+), 22 deletions(-) diff --git a/src/rpc/registry/actors/cron.rs b/src/rpc/registry/actors/cron.rs index d6283f7c8904..12f9143cafb4 100644 --- a/src/rpc/registry/actors/cron.rs +++ b/src/rpc/registry/actors/cron.rs @@ -5,28 +5,33 @@ use crate::rpc::registry::methods_reg::{MethodRegistry, register_actor_methods}; use crate::shim::message::MethodNum; use anyhow::Result; use cid::Cid; -use paste::paste; -macro_rules! register_cron_versions_8_to_16 { - ($registry:expr, $code_cid:expr, $($version:literal),+) => { - $( - paste! { - { - use fil_actor_cron_state::[]::{ConstructorParams, Method}; +macro_rules! register_cron_version { + ($registry:expr, $code_cid:expr, $state_version:path) => {{ + use $state_version::{ConstructorParams, Method}; - register_actor_methods!( - $registry, - $code_cid, - [ - (Method::Constructor, ConstructorParams), - ] - ); - } - } - )+ - }; + register_actor_methods!( + $registry, + $code_cid, + [(Method::Constructor, ConstructorParams),] + ); + + // Register methods with empty params + register_actor_methods!($registry, $code_cid, [(Method::EpochTick, empty),]); + }}; } -pub(crate) fn register_actor_methods(registry: &mut MethodRegistry, cid: Cid) { - register_cron_versions_8_to_16!(registry, cid, 8, 9, 10, 11, 12, 13, 14, 15, 16); +pub(crate) fn register_actor_methods(registry: &mut MethodRegistry, cid: Cid, version: u64) { + match version { + 8 => register_cron_version!(registry, cid, fil_actor_cron_state::v8), + 9 => register_cron_version!(registry, cid, fil_actor_cron_state::v9), + 10 => register_cron_version!(registry, cid, fil_actor_cron_state::v10), + 11 => register_cron_version!(registry, cid, fil_actor_cron_state::v11), + 12 => register_cron_version!(registry, cid, fil_actor_cron_state::v12), + 13 => register_cron_version!(registry, cid, fil_actor_cron_state::v13), + 14 => register_cron_version!(registry, cid, fil_actor_cron_state::v14), + 15 => register_cron_version!(registry, cid, fil_actor_cron_state::v15), + 16 => register_cron_version!(registry, cid, fil_actor_cron_state::v16), + _ => {} + } } diff --git a/src/rpc/registry/methods_reg.rs b/src/rpc/registry/methods_reg.rs index 4c276f6b98f5..83c18b38be12 100644 --- a/src/rpc/registry/methods_reg.rs +++ b/src/rpc/registry/methods_reg.rs @@ -112,9 +112,9 @@ macro_rules! register_actor_methods { $registry.register_method( $code_cid, $method as MethodNum, - |bytes| -> anyhow::Result<()> { + |bytes| -> anyhow::Result { if bytes.is_empty() { - Ok(()) + Ok(serde_json::Value::Object(serde_json::Map::new())) } else { Ok(fvm_ipld_encoding::from_slice(bytes)?) } diff --git a/src/tool/subcommands/api_cmd/api_compare_tests.rs b/src/tool/subcommands/api_cmd/api_compare_tests.rs index fba0e3f293f7..416047103b79 100644 --- a/src/tool/subcommands/api_cmd/api_compare_tests.rs +++ b/src/tool/subcommands/api_cmd/api_compare_tests.rs @@ -1896,6 +1896,15 @@ fn state_decode_params_api_tests(tipset: &Tipset) -> anyhow::Result ))), }; + // TODO: Enable this test when lotus supports it in go-state-types. + // https://github.com/filecoin-project/go-state-types/issues/396 + // let cron_constructor_params = fil_actor_cron_state::v16::ConstructorParams { + // entries: vec![fil_actor_cron_state::v16::Entry { + // receiver: Address::new_id(1000).into(), + // method_num: fil_actor_cron_state::v16::Method::EpochTick as u64, + // }], + // }; + let tests = vec![ RpcTest::identity(StateDecodeParams::request(( MINER_ADDRESS, @@ -1969,6 +1978,20 @@ fn state_decode_params_api_tests(tipset: &Tipset) -> anyhow::Result to_vec(&power_create_miner_params)?, tipset.key().into(), ))?), + // TODO: Enable this test when lotus supports it in go-state-types. + // https://github.com/filecoin-project/go-state-types/issues/396 + // RpcTest::identity(StateDecodeParams::request(( + // Address::CRON_ACTOR, + // fil_actor_cron_state::v16::Method::Constructor as u64, + // to_vec(&cron_constructor_params)?, + // tipset.key().into(), + // ))?), + RpcTest::identity(StateDecodeParams::request(( + Address::CRON_ACTOR, + fil_actor_cron_state::v16::Method::EpochTick as u64, + vec![], + tipset.key().into(), + ))?), RpcTest::identity(StateDecodeParams::request(( Address::POWER_ACTOR, fil_actor_power_state::v16::Method::UpdateClaimedPower as u64, From fefc889e38033ba991ff88c70b656b1a5c5c0932 Mon Sep 17 00:00:00 2001 From: Shashank Date: Wed, 6 Aug 2025 19:43:38 +0530 Subject: [PATCH 3/7] add test snapshot --- src/tool/subcommands/api_cmd/test_snapshots.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tool/subcommands/api_cmd/test_snapshots.txt b/src/tool/subcommands/api_cmd/test_snapshots.txt index 5146d8354577..3cd64bf1dd7f 100644 --- a/src/tool/subcommands/api_cmd/test_snapshots.txt +++ b/src/tool/subcommands/api_cmd/test_snapshots.txt @@ -143,6 +143,7 @@ filecoin_statedecodeparams_1753985928338431.rpcsnap.json.zst filecoin_statedecodeparams_1753985928337192.rpcsnap.json.zst filecoin_statedecodeparams_1753985928337443.rpcsnap.json.zst filecoin_statedecodeparams_1753985928337618.rpcsnap.json.zst +filecoin_cron_epochtick_statedecodeparams_1754489337228993.rpcsnap.json.zst filecoin_statereplay_1743504051038215.rpcsnap.json.zst filecoin_statesearchmsg_1741784596636715.rpcsnap.json.zst filecoin_statesearchmsglimited_1741784596704876.rpcsnap.json.zst From 3695c2a84c2e54972d741ade6faba67571d3d38f Mon Sep 17 00:00:00 2001 From: Shashank Date: Thu, 7 Aug 2025 17:42:01 +0530 Subject: [PATCH 4/7] lint fix --- src/tool/subcommands/api_cmd/api_compare_tests.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tool/subcommands/api_cmd/api_compare_tests.rs b/src/tool/subcommands/api_cmd/api_compare_tests.rs index 416047103b79..ff0e4d37b32c 100644 --- a/src/tool/subcommands/api_cmd/api_compare_tests.rs +++ b/src/tool/subcommands/api_cmd/api_compare_tests.rs @@ -1896,7 +1896,7 @@ fn state_decode_params_api_tests(tipset: &Tipset) -> anyhow::Result ))), }; - // TODO: Enable this test when lotus supports it in go-state-types. + // TODO(go-state-types): Enable this test when lotus supports it in go-state-types. // https://github.com/filecoin-project/go-state-types/issues/396 // let cron_constructor_params = fil_actor_cron_state::v16::ConstructorParams { // entries: vec![fil_actor_cron_state::v16::Entry { @@ -1978,7 +1978,7 @@ fn state_decode_params_api_tests(tipset: &Tipset) -> anyhow::Result to_vec(&power_create_miner_params)?, tipset.key().into(), ))?), - // TODO: Enable this test when lotus supports it in go-state-types. + // TODO(go-state-types): Enable this test when lotus supports it in go-state-types. // https://github.com/filecoin-project/go-state-types/issues/396 // RpcTest::identity(StateDecodeParams::request(( // Address::CRON_ACTOR, From 8738bbfd69b9bccc82b0526dfeb269bcb301cdcb Mon Sep 17 00:00:00 2001 From: Shashank Date: Thu, 7 Aug 2025 18:03:48 +0530 Subject: [PATCH 5/7] lint fix --- src/tool/subcommands/api_cmd/api_compare_tests.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/tool/subcommands/api_cmd/api_compare_tests.rs b/src/tool/subcommands/api_cmd/api_compare_tests.rs index ff0e4d37b32c..e7eae858c048 100644 --- a/src/tool/subcommands/api_cmd/api_compare_tests.rs +++ b/src/tool/subcommands/api_cmd/api_compare_tests.rs @@ -1896,8 +1896,8 @@ fn state_decode_params_api_tests(tipset: &Tipset) -> anyhow::Result ))), }; - // TODO(go-state-types): Enable this test when lotus supports it in go-state-types. - // https://github.com/filecoin-project/go-state-types/issues/396 + // TODO(go-state-types): https://github.com/filecoin-project/go-state-types/issues/396 + // Enable this test when lotus supports it in go-state-types. // let cron_constructor_params = fil_actor_cron_state::v16::ConstructorParams { // entries: vec![fil_actor_cron_state::v16::Entry { // receiver: Address::new_id(1000).into(), @@ -1978,8 +1978,8 @@ fn state_decode_params_api_tests(tipset: &Tipset) -> anyhow::Result to_vec(&power_create_miner_params)?, tipset.key().into(), ))?), - // TODO(go-state-types): Enable this test when lotus supports it in go-state-types. - // https://github.com/filecoin-project/go-state-types/issues/396 + // TODO(go-state-types): https://github.com/filecoin-project/go-state-types/issues/396 + // Enable this test when lotus supports it in go-state-types. // RpcTest::identity(StateDecodeParams::request(( // Address::CRON_ACTOR, // fil_actor_cron_state::v16::Method::Constructor as u64, From b0a2c83a974b0347cdc7fda9c6903596bcdf2ad4 Mon Sep 17 00:00:00 2001 From: Shashank Date: Mon, 11 Aug 2025 19:32:32 +0530 Subject: [PATCH 6/7] extend test_supported_actor_methods_registered --- src/rpc/registry/methods_reg.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/rpc/registry/methods_reg.rs b/src/rpc/registry/methods_reg.rs index 8f2997131a69..c4f80e6ce6f4 100644 --- a/src/rpc/registry/methods_reg.rs +++ b/src/rpc/registry/methods_reg.rs @@ -259,6 +259,7 @@ mod test { BuiltinActor::Account, BuiltinActor::Miner, BuiltinActor::EVM, + BuiltinActor::Cron, ]; for actor_type in supported_actors { From 10bd13f35a2eac443bdd4d6f7033f9bffa400b46 Mon Sep 17 00:00:00 2001 From: Shashank Date: Wed, 13 Aug 2025 16:26:04 +0530 Subject: [PATCH 7/7] fix name --- .../{cron_constructor_params.rs => cron_actor_params.rs} | 3 +-- src/lotus_json/actor_states/methods/mod.rs | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) rename src/lotus_json/actor_states/methods/{cron_constructor_params.rs => cron_actor_params.rs} (98%) diff --git a/src/lotus_json/actor_states/methods/cron_constructor_params.rs b/src/lotus_json/actor_states/methods/cron_actor_params.rs similarity index 98% rename from src/lotus_json/actor_states/methods/cron_constructor_params.rs rename to src/lotus_json/actor_states/methods/cron_actor_params.rs index b6d0c5a0d417..82849bb7d941 100644 --- a/src/lotus_json/actor_states/methods/cron_constructor_params.rs +++ b/src/lotus_json/actor_states/methods/cron_actor_params.rs @@ -3,10 +3,9 @@ use super::*; use crate::shim::actors::cron::Entry; -use jsonrpsee::core::Serialize; use paste::paste; use schemars::JsonSchema; -use serde::Deserialize; +use serde::{Deserialize, Serialize}; #[derive(Debug, Serialize, Deserialize, JsonSchema, Clone)] #[serde(rename_all = "PascalCase")] diff --git a/src/lotus_json/actor_states/methods/mod.rs b/src/lotus_json/actor_states/methods/mod.rs index 4c334a55dd23..a7f866095a2b 100644 --- a/src/lotus_json/actor_states/methods/mod.rs +++ b/src/lotus_json/actor_states/methods/mod.rs @@ -3,7 +3,7 @@ use super::*; mod account_authenticate_params; mod account_constructor_params; -mod cron_constructor_params; +mod cron_actor_params; mod evm_constructor_params; mod init_constructor_params; mod init_exec4_params;