Uh oh!
There was an error while loading. Please reload this page.
refactor: replace generic db with enum - #7051
Conversation
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
I can’t reliably rebuild and emit a hidden review stack that includes every rangeId exactly once for this very large PR in a single response. Please either:
Which option do you prefer? ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
✨ Simplify code
|
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Actionable comments posted: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
src/rpc/methods/net.rs (1)
286-295:⚠️ Potential issue | 🟠 Major | ⚡ Quick winAvoid a global cache for
net_version.Like
eth_chainId, this string is derived fromctx.chain_config(), butOnceLockmakes it process-global. If more than one RPC context with different chain configs exists in the same process, this can return the wrong network version.Suggested fix
- // `eth_chain_id` is fixed for the process lifetime; cache the decimal form.- static CACHED: OnceLock<Arc<str>> = OnceLock::new();- Ok(CACHED- .get_or_init(|| Arc::<str>::from(ctx.chain_config().eth_chain_id.to_string()))- .clone())+ Ok(Arc::<str>::from(+ ctx.chain_config().eth_chain_id.to_string(),+ ))🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/rpc/methods/net.rs` around lines 286 - 295, The current handler uses a process-global static CACHED OnceLock which can return the wrong net_version when multiple RPC contexts with different chain configs exist; remove the static OnceLock (CACHED) and instead derive the string from ctx per-invocation (e.g., create and return an Arc<str> from ctx.chain_config().eth_chain_id.to_string()), or use a cache tied to the Ctx instance if one exists, ensuring the cached value is specific to ctx rather than process-global; update the async fn handle implementation and remove references to CACHED accordingly.src/rpc/methods/eth.rs (1)
856-865:⚠️ Potential issue | 🟠 Major | ⚡ Quick winDon't cache
eth_chainIdin a process-globalOnceLock.This value comes from
ctx.chain_config(), but the cache is shared across every RPC context in the process. The first context to initialize it wins, so later contexts can return the wrong chain ID.Suggested fix
- // `eth_chain_id` is fixed for the process lifetime; cache the hex form.- static CACHED: OnceLock<Arc<str>> = OnceLock::new();- Ok(CACHED- .get_or_init(|| Arc::<str>::from(format!("{:`#x`}", ctx.chain_config().eth_chain_id)))- .clone())+ Ok(Arc::<str>::from(format!(+ "{:`#x`}",+ ctx.chain_config().eth_chain_id+ )))🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/rpc/methods/eth.rs` around lines 856 - 865, The handler currently uses a process-global static CACHED OnceLock (symbol CACHED) to store the hex chain id, which can return the wrong value for different RPC contexts; remove the static OnceLock usage in async fn handle and instead compute the hex string from ctx.chain_config().eth_chain_id on each call (or read/return a cached value from the per-request context if Ctx provides per-context storage), and return that per-call Arc<str>/String so the chain id is correct for the current ctx; update references in handle (and remove CACHED) accordingly.
🧹 Nitpick comments (1)
src/fil_cns/weight.rs (1)
22-27: 🏗️ Heavy liftUse
anyhow::Resultand preserve error context inweight.This helper still returns
Result<BigInt, String>and converts upstream errors withto_string(), which drops context. Preferanyhow::Result<BigInt>and.context(...)on fallible calls.As per coding guidelines "Use
anyhow::Result<T>for most operations and add context with.context()when errors occur".🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/fil_cns/weight.rs` around lines 22 - 27, Change the signature of weight to return anyhow::Result<BigInt> and stop converting errors to String; instead wrap fallible calls like StateTree::new_from_tipset(db, ts) and state_tree.get_actor_state() with .context(...) to preserve context (e.g., ".context(\"creating StateTree from tipset\")" and ".context(\"getting power actor state\")"), and return the propagated anyhow errors from the function.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/db/parity_db.rs`:
- Around line 394-401: subscribe_write_ops currently has a race where two
concurrent first-time callers can both create a channel and one will overwrite
the other; fix it by using a double-checked upgrade pattern: read-lock
self.write_ops_broadcast_tx and if Some -> return tx.subscribe(); otherwise drop
the read lock, acquire a write lock on self.write_ops_broadcast_tx, check again
if Some (another task may have created it) and if so return tx.subscribe(); only
if still None create the tokio::sync::broadcast::channel(65536), store the
sender into *self.write_ops_broadcast_tx.write() and then return tx.subscribe();
ensure you reference the same field name self.write_ops_broadcast_tx and call
tx.subscribe() for the receiver.
In `@src/rpc/methods/state.rs`:
- Around line 1108-1111: The call to get_vm_circulating_supply_detailed is
passing Arc::new(ctx.db()), producing an Arc<&DbImpl> which is incorrect and
inconsistent with other call sites; replace the Arc construction with a direct
reference to the concrete DB handle (use ctx.db() directly or &ctx.db_owned() to
match other sites) so
genesis_info.get_vm_circulating_supply_detailed(ts.epoch(), &ctx.db(),
ts.parent_state()) (or &ctx.db_owned()) is used instead of Arc::new(...),
removing the unnecessary Arc allocation and ensuring the function receives the
expected DB reference.
In `@src/tool/subcommands/api_cmd/generate_test_snapshot.rs`:
- Line 121: The code calls ChainStore::new(...).unwrap() when creating
chain_store which panics on error; replace the unwrap with the try operator so
the initialization error is propagated (e.g., let chain_store =
Arc::new(ChainStore::new(db.clone(), chain_config, genesis_header)?);) and
update the enclosing function signature to return a Result (or convert the error
via map_err to the function's error type) so callers can handle failures instead
of aborting; reference ChainStore::new, chain_store, db, chain_config, and
genesis_header when making these changes.
---
Outside diff comments:
In `@src/rpc/methods/eth.rs`:
- Around line 856-865: The handler currently uses a process-global static CACHED
OnceLock (symbol CACHED) to store the hex chain id, which can return the wrong
value for different RPC contexts; remove the static OnceLock usage in async fn
handle and instead compute the hex string from ctx.chain_config().eth_chain_id
on each call (or read/return a cached value from the per-request context if Ctx
provides per-context storage), and return that per-call Arc<str>/String so the
chain id is correct for the current ctx; update references in handle (and remove
CACHED) accordingly.
In `@src/rpc/methods/net.rs`:
- Around line 286-295: The current handler uses a process-global static CACHED
OnceLock which can return the wrong net_version when multiple RPC contexts with
different chain configs exist; remove the static OnceLock (CACHED) and instead
derive the string from ctx per-invocation (e.g., create and return an Arc<str>
from ctx.chain_config().eth_chain_id.to_string()), or use a cache tied to the
Ctx instance if one exists, ensuring the cached value is specific to ctx rather
than process-global; update the async fn handle implementation and remove
references to CACHED accordingly.
---
Nitpick comments:
In `@src/fil_cns/weight.rs`:
- Around line 22-27: Change the signature of weight to return
anyhow::Result<BigInt> and stop converting errors to String; instead wrap
fallible calls like StateTree::new_from_tipset(db, ts) and
state_tree.get_actor_state() with .context(...) to preserve context (e.g.,
".context(\"creating StateTree from tipset\")" and ".context(\"getting power
actor state\")"), and return the propagated anyhow errors from the function.
🪄 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: 47b67245-3c34-4281-92de-17551b58ec01
📒 Files selected for processing (103)
src/blocks/chain4u.rssrc/chain/mod.rssrc/chain/store/chain_store.rssrc/chain/store/index.rssrc/chain/store/tipset_tracker.rssrc/chain/tests.rssrc/chain_sync/chain_follower.rssrc/chain_sync/network_context.rssrc/chain_sync/sync_status.rssrc/chain_sync/tipset_syncer.rssrc/chain_sync/validation.rssrc/daemon/context.rssrc/daemon/db_util.rssrc/daemon/mod.rssrc/db/car/many.rssrc/db/db_impl.rssrc/db/either.rssrc/db/gc/snapshot.rssrc/db/mod.rssrc/db/parity_db.rssrc/db/parity_db/gc.rssrc/db/ttl/mod.rssrc/dev/subcommands/export_state_tree_cmd.rssrc/dev/subcommands/export_tipset_lookup_cmd.rssrc/dev/subcommands/state_cmd.rssrc/fil_cns/mod.rssrc/fil_cns/validation.rssrc/fil_cns/weight.rssrc/interpreter/fvm2.rssrc/interpreter/fvm3.rssrc/interpreter/fvm4.rssrc/interpreter/vm.rssrc/libp2p/chain_exchange/provider.rssrc/libp2p/service.rssrc/libp2p_bitswap/request_manager.rssrc/libp2p_bitswap/store.rssrc/message_pool/msgpool/msg_pool.rssrc/message_pool/msgpool/provider.rssrc/rpc/methods/auth.rssrc/rpc/methods/beacon.rssrc/rpc/methods/chain.rssrc/rpc/methods/common.rssrc/rpc/methods/eth.rssrc/rpc/methods/eth/filter/mod.rssrc/rpc/methods/eth/pubsub.rssrc/rpc/methods/eth/tipset_resolver.rssrc/rpc/methods/eth/trace/mod.rssrc/rpc/methods/eth/trace/parity.rssrc/rpc/methods/eth/trace/state_diff.rssrc/rpc/methods/eth/trace/test_helpers.rssrc/rpc/methods/f3.rssrc/rpc/methods/gas.rssrc/rpc/methods/market.rssrc/rpc/methods/miner.rssrc/rpc/methods/misc.rssrc/rpc/methods/mpool.rssrc/rpc/methods/msig.rssrc/rpc/methods/net.rssrc/rpc/methods/node.rssrc/rpc/methods/state.rssrc/rpc/methods/sync.rssrc/rpc/methods/wallet.rssrc/rpc/mod.rssrc/rpc/reflect/mod.rssrc/shim/state_tree.rssrc/state_manager/actor_queries.rssrc/state_manager/address_resolution.rssrc/state_manager/chain_rand.rssrc/state_manager/circulating_supply.rssrc/state_manager/execution.rssrc/state_manager/message_search.rssrc/state_manager/message_simulation.rssrc/state_manager/mining.rssrc/state_manager/mod.rssrc/state_manager/state_computation.rssrc/state_manager/utils.rssrc/state_migration/mod.rssrc/state_migration/nv17/migration.rssrc/state_migration/nv17/miner.rssrc/state_migration/nv17/verifreg_market.rssrc/state_migration/nv18/eam.rssrc/state_migration/nv18/migration.rssrc/state_migration/nv19/migration.rssrc/state_migration/nv21/migration.rssrc/state_migration/nv21/miner.rssrc/state_migration/nv21fix/migration.rssrc/state_migration/nv21fix2/migration.rssrc/state_migration/nv22/migration.rssrc/state_migration/nv22fix/migration.rssrc/state_migration/nv23/migration.rssrc/state_migration/nv24/migration.rssrc/state_migration/nv25/migration.rssrc/state_migration/nv26fix/migration.rssrc/state_migration/nv27/migration.rssrc/state_migration/nv28/migration.rssrc/statediff/mod.rssrc/tool/offline_server/server.rssrc/tool/subcommands/api_cmd/api_compare_tests.rssrc/tool/subcommands/api_cmd/generate_test_snapshot.rssrc/tool/subcommands/api_cmd/test_snapshot.rssrc/tool/subcommands/archive_cmd.rssrc/tool/subcommands/index_cmd.rssrc/tool/subcommands/snapshot_cmd.rs
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (1)
src/tool/subcommands/api_cmd/test_snapshot.rs (1)
145-146:⚠️ Potential issue | 🟠 Major | ⚡ Quick winPropagate
StateManager::newfailures instead of panicking.This helper already returns
anyhow::Result, sounwrap()turns a recoverable snapshot/bootstrap error into an avoidable panic.Proposed fix
- let state_manager = StateManager::new(chain_store.shallow_clone()).unwrap();+ let state_manager = StateManager::new(chain_store.shallow_clone())?;As per coding guidelines "Avoid
unwrap()in production code; use?orexpect()with descriptive messages instead".🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/tool/subcommands/api_cmd/test_snapshot.rs` around lines 145 - 146, The code calls StateManager::new(...).unwrap(), which panics on failure; change this to propagate the error instead—replace the unwrap() on StateManager::new(chain_store.shallow_clone()) with the try operator (?) (or use .with_context(...) and ? for a descriptive message) so the helper's anyhow::Result returns the error instead of aborting; locate the state_manager binding and adjust its initialization to use ? and optional context to clarify the failure.
🧹 Nitpick comments (4)
src/statediff/mod.rs (1)
66-67: ⚡ Quick winAdd context to
StateTree::new_from_rootfailures.Both fallible calls currently return raw errors; attach root-specific context to make failures actionable.
Suggested patch
+use anyhow::Context as _; ... - let state_tree = StateTree::new_from_root(bs, root)?;+ let state_tree = StateTree::new_from_root(bs, root)+ .with_context(|| format!("failed to load state tree from root {root}"))?; ... - let state_tree = StateTree::new_from_root(bs, root)?;+ let state_tree = StateTree::new_from_root(bs, root)+ .with_context(|| format!("failed to load calculated state tree from root {root}"))?;As per coding guidelines, "Use
anyhow::Result<T>for most operations and add context with.context()when errors occur".Also applies to: 90-90
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/statediff/mod.rs` around lines 66 - 67, StateTree::new_from_root failures are returned as raw errors; wrap both calls to StateTree::new_from_root with anyhow context to include the root value (and any other relevant info) for actionable diagnostics. Locate the calls to StateTree::new_from_root (the one using variables bs and root and the second occurrence mentioned) and replace the plain ? propagation with .context(format!("creating StateTree from root {}", root))? (or similar context message) so errors include root-specific context.src/libp2p/service.rs (1)
333-337: 💤 Low valueConsider deferring
db_owned()creation to when it's actually needed.
db_owned()is called for every network message, but it's only used forBitswapRequestmessages. For other message types (PubsubMessage,HelloRequest,ChainExchangeRequest,JSONRPCRequest), the db handle is created and immediately dropped.If
db_owned()involves non-trivial work, consider passing&self.csand letting the handler calldb_owned()only in theBitswapRequestarm.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/libp2p/service.rs` around lines 333 - 337, The current call passes self.cs.db_owned() for every message but only BitswapRequest uses the DB; change the call site to pass &self.cs (not db_owned()) into the handler (the place invoking bitswap_request_manager.shallow_clone(), message, &self.network_sender_out, &self.peer_manager) and update the handler logic so that only the BitswapRequest branch calls cs.db_owned() to obtain the DB handle; keep usage of bitswap_request_manager and other message arms (PubsubMessage, HelloRequest, ChainExchangeRequest, JSONRPCRequest) unchanged so they don't allocate the DB handle unnecessarily.src/daemon/context.rs (1)
246-253: ⚡ Quick winAdd stage-specific context to state-manager initialization.
If daemon startup fails here, the current bare
?s won't tell you whether the failure came fromChainStore::neworStateManager::new. Wrapping both with.context(...)will make bootstrap failures much easier to triage.♻️ Proposed fix
- let chain_store = ChainStore::new(- db.shallow_clone(),- chain_config.shallow_clone(),- genesis_header,- )?;+ let chain_store = ChainStore::new(+ db.shallow_clone(),+ chain_config.shallow_clone(),+ genesis_header,+ )+ .context("failed to construct chain store")?; // Initialize StateManager - let state_manager = StateManager::new(chain_store)?;+ let state_manager =+ StateManager::new(chain_store).context("failed to construct state manager")?; Ok(state_manager)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 current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/daemon/context.rs` around lines 246 - 253, The error here is ambiguous because failures from ChainStore::new and StateManager::new are propagated with bare ?; change both calls to add context so errors identify the stage: wrap ChainStore::new(...) with .context("initializing ChainStore")? and wrap StateManager::new(chain_store)? with .context("initializing StateManager")? (or similar descriptive strings) so bootstrap failures show which step failed; refer to ChainStore::new and StateManager::new when making the changes and preserve existing variable names like chain_store.src/daemon/db_util.rs (1)
338-346: ⚡ Quick winAttach epoch/tipset context to backfill failures.
These calls run inside a potentially long backfill loop. If any of them fail, the current error chain won't say which tipset caused the failure, which makes resume/debugging painful.
♻️ Proposed fix
- state_manager.load_executed_tipset(ts).await?;+ state_manager+ .load_executed_tipset(ts)+ .await+ .with_context(|| format!("failed to load executed tipset for epoch {} ({})", epoch, tsk))?; delegated_messages.append( &mut state_manager .chain_store() - .headers_delegated_messages(ts.block_headers().iter())?,+ .headers_delegated_messages(ts.block_headers().iter())+ .with_context(|| {+ format!("failed to collect delegated messages for epoch {} ({})", epoch, tsk)+ })?, ); tracing::trace!("Indexing tipset @{}: {}", epoch, &tsk); - tsk.save(state_manager.db())?;+ tsk.save(state_manager.db())+ .with_context(|| format!("failed to persist tipset key for epoch {} ({})", epoch, tsk))?;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 current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/daemon/db_util.rs` around lines 338 - 346, The backfill calls (state_manager.load_executed_tipset, chain_store().headers_delegated_messages, and tsk.save) lack contextual error information; update each await?/call to use anyhow's .context() (or .with_context()) to attach the epoch and tipset identifier (e.g., &tsk or tsk.key().to_string()) so failures report which tipset/epoch failed during backfill, e.g., add context like format!("backfill failed at epoch {} tipset {}", epoch, tsk).
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/state_migration/nv26fix/migration.rs`:
- Around line 27-29: Wrap the fallible calls in migration.rs with contextualized
errors using .context(...) so failures are informative: add .context("creating
StateTree from root") to the StateTree::new_from_root(store, state)? call, add
.context("fetching system actor from state tree") to
state_tree.get_required_actor(&Address::SYSTEM_ACTOR)?, add .context("loading
SystemStateOld from store") to
store.get_cbor_required::<SystemStateOld>(&system_actor.state)?, and similarly
add context messages to the fallible calls around lines 81–87 (the other
get_required_actor / get_cbor_required / store accessors used there) to describe
which actor/state load failed; ensure each .context string names the operation
and the actor or CID being loaded.
---
Duplicate comments:
In `@src/tool/subcommands/api_cmd/test_snapshot.rs`:
- Around line 145-146: The code calls StateManager::new(...).unwrap(), which
panics on failure; change this to propagate the error instead—replace the
unwrap() on StateManager::new(chain_store.shallow_clone()) with the try operator
(?) (or use .with_context(...) and ? for a descriptive message) so the helper's
anyhow::Result returns the error instead of aborting; locate the state_manager
binding and adjust its initialization to use ? and optional context to clarify
the failure.
---
Nitpick comments:
In `@src/daemon/context.rs`:
- Around line 246-253: The error here is ambiguous because failures from
ChainStore::new and StateManager::new are propagated with bare ?; change both
calls to add context so errors identify the stage: wrap ChainStore::new(...)
with .context("initializing ChainStore")? and wrap
StateManager::new(chain_store)? with .context("initializing StateManager")? (or
similar descriptive strings) so bootstrap failures show which step failed; refer
to ChainStore::new and StateManager::new when making the changes and preserve
existing variable names like chain_store.
In `@src/daemon/db_util.rs`:
- Around line 338-346: The backfill calls (state_manager.load_executed_tipset,
chain_store().headers_delegated_messages, and tsk.save) lack contextual error
information; update each await?/call to use anyhow's .context() (or
.with_context()) to attach the epoch and tipset identifier (e.g., &tsk or
tsk.key().to_string()) so failures report which tipset/epoch failed during
backfill, e.g., add context like format!("backfill failed at epoch {} tipset
{}", epoch, tsk).
In `@src/libp2p/service.rs`:
- Around line 333-337: The current call passes self.cs.db_owned() for every
message but only BitswapRequest uses the DB; change the call site to pass
&self.cs (not db_owned()) into the handler (the place invoking
bitswap_request_manager.shallow_clone(), message, &self.network_sender_out,
&self.peer_manager) and update the handler logic so that only the BitswapRequest
branch calls cs.db_owned() to obtain the DB handle; keep usage of
bitswap_request_manager and other message arms (PubsubMessage, HelloRequest,
ChainExchangeRequest, JSONRPCRequest) unchanged so they don't allocate the DB
handle unnecessarily.
In `@src/statediff/mod.rs`:
- Around line 66-67: StateTree::new_from_root failures are returned as raw
errors; wrap both calls to StateTree::new_from_root with anyhow context to
include the root value (and any other relevant info) for actionable diagnostics.
Locate the calls to StateTree::new_from_root (the one using variables bs and
root and the second occurrence mentioned) and replace the plain ? propagation
with .context(format!("creating StateTree from root {}", root))? (or similar
context message) so errors include root-specific context.
🪄 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: e20a837b-af75-48ed-a4f3-419a00f2ecab
📒 Files selected for processing (120)
src/beacon/drand.rssrc/blocks/chain4u.rssrc/blocks/tipset.rssrc/chain/mod.rssrc/chain/snapshot_format.rssrc/chain/store/chain_store.rssrc/chain/store/index.rssrc/chain/store/tipset_tracker.rssrc/chain/tests.rssrc/chain_sync/bad_block_cache.rssrc/chain_sync/chain_follower.rssrc/chain_sync/network_context.rssrc/chain_sync/sync_status.rssrc/chain_sync/tipset_syncer.rssrc/chain_sync/validation.rssrc/cli/humantoken.rssrc/cli/subcommands/chain_cmd/list.rssrc/cli/subcommands/f3_cmd.rssrc/daemon/context.rssrc/daemon/db_util.rssrc/daemon/mod.rssrc/db/blockstore_with_write_buffer.rssrc/db/car/any.rssrc/db/car/many.rssrc/db/car/mod.rssrc/db/db_impl.rssrc/db/db_mode.rssrc/db/gc/snapshot.rssrc/db/memory.rssrc/db/mod.rssrc/db/parity_db.rssrc/db/parity_db/gc.rssrc/db/ttl/mod.rssrc/dev/subcommands/export_state_tree_cmd.rssrc/dev/subcommands/export_tipset_lookup_cmd.rssrc/dev/subcommands/state_cmd.rssrc/fil_cns/mod.rssrc/fil_cns/validation.rssrc/fil_cns/weight.rssrc/interpreter/fvm2.rssrc/interpreter/fvm3.rssrc/interpreter/fvm4.rssrc/interpreter/vm.rssrc/lib.rssrc/libp2p/chain_exchange/provider.rssrc/libp2p/service.rssrc/libp2p_bitswap/request_manager.rssrc/message_pool/msgpool/mod.rssrc/message_pool/msgpool/msg_pool.rssrc/message_pool/msgpool/pending_store.rssrc/message_pool/msgpool/provider.rssrc/rpc/auth_layer.rssrc/rpc/methods/auth.rssrc/rpc/methods/beacon.rssrc/rpc/methods/chain.rssrc/rpc/methods/common.rssrc/rpc/methods/eth.rssrc/rpc/methods/eth/filter/mod.rssrc/rpc/methods/eth/pubsub.rssrc/rpc/methods/eth/tipset_resolver.rssrc/rpc/methods/eth/trace/mod.rssrc/rpc/methods/eth/trace/parity.rssrc/rpc/methods/eth/trace/state_diff.rssrc/rpc/methods/eth/trace/test_helpers.rssrc/rpc/methods/f3.rssrc/rpc/methods/gas.rssrc/rpc/methods/market.rssrc/rpc/methods/miner.rssrc/rpc/methods/misc.rssrc/rpc/methods/mpool.rssrc/rpc/methods/msig.rssrc/rpc/methods/net.rssrc/rpc/methods/node.rssrc/rpc/methods/state.rssrc/rpc/methods/sync.rssrc/rpc/methods/wallet.rssrc/rpc/mod.rssrc/rpc/reflect/mod.rssrc/shim/machine/manifest.rssrc/shim/state_tree.rssrc/state_manager/actor_queries.rssrc/state_manager/address_resolution.rssrc/state_manager/cache.rssrc/state_manager/chain_rand.rssrc/state_manager/circulating_supply.rssrc/state_manager/execution.rssrc/state_manager/message_search.rssrc/state_manager/message_simulation.rssrc/state_manager/mining.rssrc/state_manager/mod.rssrc/state_manager/state_computation.rssrc/state_manager/utils.rssrc/state_migration/mod.rssrc/state_migration/nv17/migration.rssrc/state_migration/nv17/miner.rssrc/state_migration/nv17/verifreg_market.rssrc/state_migration/nv18/eam.rssrc/state_migration/nv18/migration.rssrc/state_migration/nv19/migration.rssrc/state_migration/nv21/migration.rssrc/state_migration/nv21/miner.rssrc/state_migration/nv21fix/migration.rssrc/state_migration/nv21fix2/migration.rssrc/state_migration/nv22/migration.rssrc/state_migration/nv22fix/migration.rssrc/state_migration/nv23/migration.rssrc/state_migration/nv24/migration.rssrc/state_migration/nv25/migration.rssrc/state_migration/nv26fix/migration.rssrc/state_migration/nv27/migration.rssrc/state_migration/nv28/migration.rssrc/statediff/mod.rssrc/tool/offline_server/server.rssrc/tool/subcommands/api_cmd/api_compare_tests.rssrc/tool/subcommands/api_cmd/generate_test_snapshot.rssrc/tool/subcommands/api_cmd/test_snapshot.rssrc/tool/subcommands/archive_cmd.rssrc/tool/subcommands/index_cmd.rssrc/utils/cache/lru.rssrc/utils/db/car_util.rs
✅ Files skipped from review due to trivial changes (15)
- src/shim/machine/manifest.rs
- src/chain/tests.rs
- src/lib.rs
- src/utils/cache/lru.rs
- src/db/blockstore_with_write_buffer.rs
- src/rpc/methods/eth/trace/state_diff.rs
- src/rpc/methods/market.rs
- src/message_pool/msgpool/mod.rs
- src/state_migration/nv18/eam.rs
- src/chain/snapshot_format.rs
- src/state_migration/nv17/verifreg_market.rs
- src/db/car/any.rs
- src/cli/subcommands/chain_cmd/list.rs
- src/message_pool/msgpool/pending_store.rs
- src/utils/db/car_util.rs
🚧 Files skipped from review as they are similar to previous changes (70)
- src/dev/subcommands/export_tipset_lookup_cmd.rs
- src/db/car/many.rs
- src/rpc/methods/misc.rs
- src/db/parity_db/gc.rs
- src/rpc/methods/eth/trace/parity.rs
- src/tool/subcommands/index_cmd.rs
- src/rpc/methods/eth/trace/test_helpers.rs
- src/rpc/methods/auth.rs
- src/state_migration/nv21fix/migration.rs
- src/dev/subcommands/export_state_tree_cmd.rs
- src/db/ttl/mod.rs
- src/state_migration/nv17/miner.rs
- src/rpc/methods/eth/tipset_resolver.rs
- src/chain_sync/sync_status.rs
- src/message_pool/msgpool/msg_pool.rs
- src/state_migration/nv28/migration.rs
- src/rpc/methods/eth/pubsub.rs
- src/chain_sync/validation.rs
- src/state_migration/mod.rs
- src/rpc/methods/node.rs
- src/state_migration/nv25/migration.rs
- src/state_migration/nv24/migration.rs
- src/state_migration/nv22fix/migration.rs
- src/rpc/mod.rs
- src/state_migration/nv23/migration.rs
- src/state_manager/chain_rand.rs
- src/fil_cns/weight.rs
- src/shim/state_tree.rs
- src/state_migration/nv18/migration.rs
- src/chain/store/index.rs
- src/db/mod.rs
- src/state_migration/nv21/migration.rs
- src/state_migration/nv27/migration.rs
- src/chain/mod.rs
- src/rpc/methods/sync.rs
- src/state_manager/address_resolution.rs
- src/rpc/methods/msig.rs
- src/db/gc/snapshot.rs
- src/state_migration/nv17/migration.rs
- src/rpc/reflect/mod.rs
- src/interpreter/fvm2.rs
- src/state_migration/nv21fix2/migration.rs
- src/chain_sync/network_context.rs
- src/blocks/chain4u.rs
- src/state_migration/nv19/migration.rs
- src/daemon/mod.rs
- src/tool/subcommands/api_cmd/api_compare_tests.rs
- src/rpc/methods/mpool.rs
- src/state_manager/actor_queries.rs
- src/state_manager/state_computation.rs
- src/rpc/methods/eth/filter/mod.rs
- src/chain_sync/tipset_syncer.rs
- src/message_pool/msgpool/provider.rs
- src/rpc/methods/net.rs
- src/state_manager/circulating_supply.rs
- src/tool/subcommands/archive_cmd.rs
- src/rpc/methods/common.rs
- src/interpreter/fvm3.rs
- src/rpc/methods/wallet.rs
- src/interpreter/vm.rs
- src/tool/offline_server/server.rs
- src/rpc/methods/gas.rs
- src/db/db_impl.rs
- src/chain/store/chain_store.rs
- src/libp2p/chain_exchange/provider.rs
- src/rpc/methods/f3.rs
- src/interpreter/fvm4.rs
- src/rpc/methods/state.rs
- src/rpc/methods/eth.rs
- src/rpc/methods/chain.rs
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Summary of changes
(On top of #7044)
Changes introduced in this pull request:
ChainIndex,ChainStoreandStateManagerReference issue to close (if applicable)
Closes
Other information and links
Change checklist
Outside contributions
Summary by CodeRabbit
Refactor
Style