Skip to content

Conversation

@thedarkjester
Copy link
Collaborator

@thedarkjester thedarkjester commented Nov 17, 2025

This PR implements issue(s) #

Checklist

  • I wrote new tests for my new core changes.
  • I have successfully ran tests, style checker and build against my new changes locally.
  • I have informed the team of any breaking changes if there are any.

Note

Modularizes data availability (EIP-4844 and calldata), introduces a Validium L1 contract with shnarf provider, replaces fallback operator with liveness recovery, and updates roles/pause types, deployments, ABIs, and tests.

  • Rollup/Data Availability:
    • Introduces modular DA: Eip4844BlobAcceptor, CalldataBlobAcceptor, ShnarfDataAcceptor, LocalShnarfProvider; LineaRollup now composes these and uses shnarfProvider for existence checks.
    • Adds LivenessRecovery (with setLivenessRecoveryOperator, renounceRole restriction) and removes fallback-operator logic; adds reinitializeV8 gated by proxy admin.
    • Splits interfaces into ILineaRollupBase, ILivenessRecovery; moves shared structs/errors; new errors for shnarf handling.
  • New Contract:
    • Adds Validium (with shnarf-based DA) + tests, ABI (ValidiumV1.0.abi), local artifacts, deploy scripts (03_deploy_Validium.ts, make target deploy-validium).
  • Messaging:
    • Extracts ClaimMessageV1; L1MessageService refactored to L1MessageServiceBase; updates test helper TestL1MessageService.
  • Pausing/RBAC:
    • Replaces BLOB/CALLDATA pause types with STATE_DATA_SUBMISSION; introduces V6/V8 role/pause sets; adds roles PAUSE/UNPAUSE_STATE_DATA_SUBMISSION_ROLE.
  • Deployment/Config:
    • Updates LineaRollup initializer to accept livenessRecoveryOperator; adds shnarfProvider to base initialization; adjusts scripts, makefile, solcover, post-compile ABI export.
  • Tests:
    • Updates/extends unit and e2e tests for new roles, pause type, re-initialization flow, shnarf provider usage.
  • Errors/Config:
    • Adds smart-contract error mappings for shnarf and zero final state root; updates constants (addresses, signatures).

Written by Cursor Bugbot for commit 8a4a28d. This will update automatically on new commits. Configure here.

@codecov-commenter
Copy link

codecov-commenter commented Nov 17, 2025

Codecov Report

❌ Patch coverage is 98.42520% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 64.59%. Comparing base (096bdf5) to head (8a4a28d).
⚠️ Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
...rc/rollup/dataAvailability/Eip4844BlobAcceptor.sol 94.44% 2 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               main    #1743      +/-   ##
============================================
+ Coverage     64.51%   64.59%   +0.07%     
- Complexity     1523     1524       +1     
============================================
  Files           396      404       +8     
  Lines         14382    14409      +27     
  Branches       1545     1550       +5     
============================================
+ Hits           9279     9307      +28     
  Misses         4493     4493              
+ Partials        610      609       -1     
Flag Coverage Δ
hardhat 96.29% <98.42%> (+0.09%) ⬆️
kotlin 62.08% <ø> (+<0.01%) ⬆️
Files with missing lines Coverage Δ
contracts/src/messaging/l1/L1MessageService.sol 100.00% <ø> (ø)
...ontracts/src/messaging/l1/L1MessageServiceBase.sol 100.00% <ø> (ø)
contracts/src/messaging/l1/v1/ClaimMessageV1.sol 100.00% <100.00%> (ø)
contracts/src/rollup/LineaRollup.sol 100.00% <100.00%> (ø)
contracts/src/rollup/LineaRollupBase.sol 100.00% <100.00%> (+1.33%) ⬆️
contracts/src/rollup/LivenessRecovery.sol 100.00% <100.00%> (ø)
contracts/src/rollup/Validium.sol 100.00% <100.00%> (ø)
contracts/src/rollup/ZkEvmV2.sol 100.00% <ø> (ø)
...c/rollup/dataAvailability/CalldataBlobAcceptor.sol 100.00% <100.00%> (ø)
...rc/rollup/dataAvailability/LocalShnarfProvider.sol 100.00% <100.00%> (ø)
... and 3 more

... and 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

jonesho pushed a commit that referenced this pull request Nov 24, 2025
Copy link
Contributor

@kyzooghost kyzooghost left a comment

Choose a reason for hiding this comment

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

Nit - this PR is no longer a chore with a few thousands lines-of-code diff :)

@thedarkjester thedarkjester changed the title [Chore] - Modularize data availability submission design [Feat] - Modularize data availability submission design Nov 24, 2025
@thedarkjester
Copy link
Collaborator Author

Nit - this PR is no longer a chore with a few thousands lines-of-code diff :)

renamed the title

@thedarkjester thedarkjester marked this pull request as ready for review November 27, 2025 16:15
@thedarkjester thedarkjester requested a review from a team as a code owner November 27, 2025 16:15
@thedarkjester thedarkjester merged commit a89790d into main Nov 27, 2025
32 checks passed
@thedarkjester thedarkjester deleted the chore/design-alt-da-interfaces branch November 27, 2025 16:15
pauseTypeRoles,
unpauseTypeRoles,
defaultAdmin: validiumSecurityCouncil,
},
Copy link

Choose a reason for hiding this comment

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

Bug: Validium deployment script missing required shnarfProvider field

The Validium deployment script is missing the shnarfProvider field in the initialization data struct. The contract's initialize function expects BaseInitializationData with 11 fields including shnarfProvider as the last field (as shown in the ABI and VALIDIUM_INITIALIZE_SIGNATURE). The other deployment script deployPlonkVerifierAndValidiumV1.ts correctly includes shnarfProvider: ADDRESS_ZERO, but this hardhat deploy script omits it. This would cause deployment to fail due to ABI encoding mismatch.

Fix in Cursor Fix in Web

fallbackOperator: MultiCallAddress,
defaultAdmin: lineaRollupSecurityCouncil,
},
MultiCallAddress,
Copy link

Choose a reason for hiding this comment

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

Bug: LineaRollup deployment script missing required shnarfProvider field

The LineaRollup deployment script is missing the shnarfProvider field in the initialization data struct. The BaseInitializationData struct in ILineaRollupBase.sol requires 11 fields including shnarfProvider as the last field. The deployment script only passes 10 fields. The deployPlonkVerifierAndValidiumV1.ts shows the correct pattern with shnarfProvider: ADDRESS_ZERO. This would cause deployment to fail due to ABI encoding mismatch with the contract's initialize function.

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants