Skip to content

Conversation

@zkzoomer
Copy link
Member

@zkzoomer zkzoomer commented Jan 19, 2026

What ❔

Adds a CI check to ensure that l1-contracts/zkstack-out is kept up to date, plus some other cosmetic fixes
This is a sister PR to matter-labs/zksync-era#4616

Why ❔

Checklist

  • PR title corresponds to the body of PR (we generate changelog entries from PRs).
  • Tests for the changes have been added / updated.
  • Documentation comments have been added / updated.

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 71bc4983d3

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

@github-actions
Copy link
Contributor

Coverage after merging sma/add-zkstack-out-ci-check into draft-v31 will be

91.50%

Coverage Report</
FileStmtsBranchesFuncsLinesUncovered Lines
contracts/bridge
   BridgeHelper.sol100%100%100%100%
   BridgedStandardERC20.sol96.25%100%92.31%97.01%231–232
   L1ERC20Bridge.sol97.78%100%100%97.30%261
   L1Nullifier.sol95.98%100%100%95.24%432–433, 436, 462, 710, 713, 715, 731
   UpgradeableBeaconDeployer.sol100%100%100%100%
contracts/bridge/asset-router
   AssetRouterBase.sol85.90%100%70.59%90.16%128, 200, 310, 49, 58, 81
   L1AssetRouter.sol91.62%100%86.67%92.70%104, 319, 330, 412–413, 432, 590, 601, 615, 620
contracts/bridge/asset-tracker
   AssetTrackerBase.sol78.38%100%66.67%84%113, 142, 59, 84
   GWAssetTracker.sol86.84%100%91.43%86.15%101–103, 116–117, 246–248, 264, 354, 395, 397–403, 410–411, 477–478, 487–488, 490, 496, 500, 630–631, 97–99
   L1AssetTracker.sol97.90%100%100%97.54%227, 409, 61
   LegacySharedBridgeAddresses.sol83.33%100%100%81.82%39, 41
contracts/bridge/interfaces
   AssetHandlerModifiers.sol75%100%100%66.67%13
contracts/bridge/ntv
   L1NativeTokenVault.sol98.13%100%100%97.65%182, 184
   NativeTokenVaultBase.sol85.38%100%71.43%88.82%136–139, 141–142, 144, 219, 310, 46, 48, 494, 496, 50, 52, 564, 601, 88, 98
contracts/common
   MessageVerification.sol83.33%100%77.78%85.19%34, 41–42, 88
   ReentrancyGuard.sol100%100%100%100%
contracts/common/l2-helpers
   L2ContractHelper.sol98.11%100%100%97.78%108
   SystemContractsCaller.sol52.50%100%60%51.43%44–45, 47, 49, 51, 53, 66, 69, 72, 75, 78, 83, 89, 91, 93, 96, 98
contracts/common/libraries
   DataEncoding.sol95.54%100%95.65%95.51%183, 270, 288, 294
   DynamicIncrementalMerkle.sol100%100%100%100%
   DynamicIncrementalMerkleMemory.sol98.96%100%100%98.84%196
   FullMerkle.sol100%100%100%100%
   FullMerkleMemory.sol93.81%100%100%93.33%114, 131, 149, 163, 194, 90
   Merkle.sol100%100%100%100%
   MessageHashing.sol98.67%100%100%98.46%154
   SemVer.sol100%100%100%100%
   UncheckedMath.sol100%100%100%100%
   UnsafeBytes.sol100%100%100%100%
   ZKSyncOSBytecodeInfo.sol100%100%100%100%
contracts/common/libraries/TransientPrimitives
   TransientPrimitives.sol100%100%100%100%
contracts/core/bridgehub
   BridgehubBase.sol92.89%100%88.89%93.79%134, 189, 283, 299, 38, 40, 42, 552, 556, 559
   L1Bridgehub.sol90%100%91.67%89.77%207, 282, 286–287, 290, 300, 66–67, 90
   L2Bridgehub.sol48.89%100%40%51.43%103–104, 112, 114–115, 124, 129–130, 132–133, 45, 48–50, 76, 89–90
contracts/core/chain-asset-handler
   ChainAssetHandlerBase.sol79.12%100%75%80%129–130, 180, 183, 195–196, 250, 267, 44, 46, 48, 50, 89, 96–97
   L1ChainAssetHandler.sol92.68%100%88.89%93.75%68–69
   L2ChainAssetHandler.sol88.24%100%87.50%88.46%121, 70, 94
contracts/core/chain-registration
   ChainRegistrationSender.sol88.24%100%100%85.19%41, 85, 89, 95
contracts/core/ctm-deployment
   CTMDeploymentTracker.sol100%100%100%100%
contracts/core/message-root
   L1MessageRoot.sol88.37%100%87.50%88.57%108–109, 65–66
   L2MessageRoot.sol60%100%44.44%64.52%39–40, 45–46, 50, 57, 62–63, 68–70
   MessageRootBase.sol82.30%100%76.19%83.70%113, 117, 123–125, 131–133, 196, 212, 285, 314, 35, 38, 40
contracts/governance
   AccessControlRestriction.sol100%100%100%100%
   ChainAdmin.sol97.87%100%100%97.30%39
   ChainAdminOwnable.sol100%100%100%100%
   Governance.sol100%100%100%100%
   L2ProxyAdminDeployer.sol100%100%100%100%
   PermanentRestriction.sol100%100%100%100%
   ServerNotifier.sol100%100%100%100%
   TransitionaryOwner.sol100%100%100%100%
contracts/governance/restriction
   Restriction.sol60%100%50%66.67%21
   RestrictionValidator.sol100%100%100%100%
contracts/interop
   AttributesDecoder.sol100%100%100%100%
   InteropCenter.sol93.25%100%89.47%93.75%114, 202, 427, 501, 54–55, 59–60, 72
   InteropDataEncoding.sol100%100%100%100%
   InteropHandler.sol87.29%100%75%88.68%33–35, 377, 381, 403, 408, 41, 417–418, 42, 424
   L2MessageVerification.sol90%100%100%88.89%35
contracts/l2-system/zksync-os
   L1MessageGasLib.sol0%100%0%0%11–12, 16–18, 22–25
   L1Messenger.sol0%100%0%0%24–25, 28–29, 32, 38, 40, 44–46, 48, 53, 56, 58
   ZKOSContractDeployer.sol0%100%0%0%12–14, 20, 26, 30–31
contracts/l2-upgrades
   L2ComplexUpgrader.sol0%100%0%0%23–25, 39, 44, 46, 56, 62–63, 70, 79–81, 84, 86–87
   L2GenesisForceDeploymentsHelper.sol93.92%100%100%93.33%117, 148, 150, 154, 156–157, 187, 193, 402
   L2GenesisUpgrade.sol0%100%0%0%30, 37, 39–40, 43, 47–50, 53, 55, 63
   L2V30TestnetSystemProxiesUpgrade.sol0%100%0%0%22, 27–28, 30, 41, 47, 52, 56, 61, 66, 71, 76, 81, 86, 93, 99
   L2V31Upgrade.sol0%100%0%0%17
   SystemContractProxy.sol87.50%100%66.67%90.48%16–17
   SystemContractProxyAdmin.sol60%100%66.67%57.14%12, 18–19
contracts/state-transition
   AccessControlEnumerablePerChainAddressUpgradeable.sol94.92%100%91.67%95.74%179, 192
   ChainTypeManagerBase.sol95.07%100%93.02%95.63%182, 192, 291, 442, 505, 543, 619
   EraChainTypeManager.sol89.47%100%100%87.50%31, 51
   MultisigCommitter.sol93.40%100%95%93.02%149, 171, 224, 249, 62–63
   ValidatorTimelock.sol94.95%100%90%96.20%128, 171, 291
   ZKsyncOSChainTypeManager.sol100%100%100%100%
contracts/state-transition/chain-deps

@zkzoomer zkzoomer merged commit 67affae into draft-v31 Jan 20, 2026
23 of 26 checks passed
@zkzoomer zkzoomer deleted the sma/add-zkstack-out-ci-check branch January 20, 2026 08:42
zkzoomer added a commit to matter-labs/zksync-era that referenced this pull request Jan 20, 2026
## What ❔

This is a sister PR to
matter-labs/era-contracts#1977

<!-- What are the changes this PR brings about? -->
<!-- Example: This PR adds a PR template to the repo. -->
<!-- (For bigger PRs adding more context is appreciated) -->

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- The `Why` has to be clear to non-Matter Labs entities running their
own ZK Chain -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## Is this a breaking change?
- [ ] Yes
- [ ] No

## Operational changes
<!-- Any config changes? Any new flags? Any changes to any scripts? -->
<!-- Please add anything that non-Matter Labs entities running their own
ZK Chain may need to know -->

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [ ] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [ ] Tests for the changes have been added / updated.
- [ ] Documentation comments have been added / updated.
- [ ] Code has been formatted via `zkstack dev fmt` and `zkstack dev
lint`.
kelemeno pushed a commit to kelemeno/era-contracts that referenced this pull request Jan 21, 2026
Merged latest draft-v31 changes including:
- foundry fixes (matter-labs#1981)
- ZKsyncOSDualVerifier (matter-labs#1980)
- zksync-foundry v0.1.5 (matter-labs#1959)
- zkstack-out CI check (matter-labs#1977)

Resolved conflicts in L2 integration tests by keeping both:
- vm.etch-based deployL2Weth() and setUpInner() overrides
- New getChainCreationParamsConfig() override
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.

2 participants