[pull] main from agglayer:main#127
Merged
Merged
Conversation
Allow config loading to handle paths like agglayer.toml without requiring a parent directory. This keeps local CLI and node startup paths usable when operators pass a bare filename from the current working directory.
Reconcile FEP/aggchain-proof certificates that settled on L1 but were stuck InError, by querying the aggchain hash at the pre-settlement L1 block instead of `latest`. ## Problem Stateful aggchain contracts (e.g. AggchainFEP) revert getAggchainHash with L2BlockNumberLessThanNextBlockNumber() once their nextBlockNumber advances past a certificate's L2 range. After a certificate settles on L1, any re-certification of it (recompute_state -> witness_generation) called getAggchainHash at `latest` and hit this revert. An InError-but-settled certificate could therefore never be reconciled (admin_forceEditCertificate to Candidate kept failing), and the network stayed stuck. ## Fix Pin get_aggchain_hash to the L1 block immediately before the settlement transaction, mirroring get_prev_pessimistic_root, which already reads historical state from that same settlement tx in this exact path. At that block nextBlockNumber has not advanced, so getAggchainHash returns the hash and the existing integrity comparison is preserved. The query falls back to `latest` for pending/missing/reverted receipts, leaving the happy path and pending-settlement restarts unaffected. This also fixes the latent case where a node restart during settlement of a Candidate certificate (tx already mined) hit the same revert. ## Notes - Internal `AggchainContract::get_aggchain_hash` gains an additive `before_tx_hash: Option<TxHash>` argument; all call sites and mocks are updated. No config, protocol, or operator-facing change. - Recovery reads historical L1 state at the settlement block, which needs archive access. get_prev_pessimistic_root already requires this on the same path, so there is no new operational requirement. ## Testing - 5 new unit tests for the block selection (block_before_inclusion). - cargo check --workspace --tests --all-features: pass. - cargo nextest run on affected crates: 156 passed. - cargo clippy --tests -- -D warnings: clean.
Make proof decoding use explicit read and write acceptance policies. This separates storage reads from new writes so historical supported proof formats stay readable while new writes remain restricted to writable versions.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )