Skip to content

[DON'T MERGE] draft-v31 to zksync-os-stable#1947

Open
kelemeno wants to merge 532 commits intozksync-os-stablefrom
draft-v31
Open

[DON'T MERGE] draft-v31 to zksync-os-stable#1947
kelemeno wants to merge 532 commits intozksync-os-stablefrom
draft-v31

Conversation

@kelemeno
Copy link
Contributor

@kelemeno kelemeno commented Jan 6, 2026

What ❔

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.

kelemeno and others added 29 commits February 12, 2026 12:55
# What ❔
matter-labs/zksync-era#4645
<!-- 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? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## 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.

---------

Co-authored-by: zksync[bot] <zksync[bot]@users.noreply.github.com>
# What ❔
matter-labs/zksync-era#4642

Implemented a Priority Mode for chains that settles to L1. The goal is
to have a simple mechanism that would allow users to permissionlessly
withdraw funds from a rollup even if the validator is censoring or is
not active.

The workflow:
- By default, users can submit their transactions via the L2 mempool and
hope that the transaction will be processed.
- Alternatively, they can request L1 -> L2 transactions, and the
operator will be obligated to process the transaction in the next X
days.
- If the operator fails to process the priority transactions during the
X-day window, then anyone can activate priority mode by executing the
corresponding function on the L1 chain contract.
- If priority mode is activated, the batches can only include
transactions from the priority queue, and anyone can settle the batch
(atomically).

Additionally, 

- Changed the way L1 -> L2 transactions spends base tokens. Now they can
spend base tokens from L2 balance, and not only the amount deposited
from L1 in the same tx.
- Previously, an L1 → L2 transaction minted msg.value before the call
and minted the remaining deposited amount to the refund recipient after
the call. The transaction then used that minted msg.value during
execution.
- Now, an L1 → L2 transaction mints the deposited amount minus the
required fee. The msg.value can be set arbitrarily by the requester on
L1. If it exceeds the account’s balance, the transaction fails and the
deposited amount is credited to the refund recipient.
- ZKsync Era Bootloader and ZKsync OS program now signaling about number
of L2 txs executed in the batch. If Priority Mode is activated only
batches with zero L2 txs executed can be committed (and so executed).
--- 

Design decisions:
1. The priority operation expiration time is 6 days. It is more or less
arbitrary number. But should be high enough for chain operator to react
on censorship due to technical issues (e.g. bugs in the node). Also the
number should be smaller than exit window, which is [upgrade
delay](https://github.com/zksync-association/zk-governance/blob/master/l1-contracts/src/ProtocolUpgradeHandler.sol#L48)
in our case. The exit window would be 8 days, meaning if censorship
started at the beginning of it, users may put requests in priority queue
and only after 6th day the priority mode will be activated and their
transactions will start to be processed.
2. To allow anyone settling batches in the Priority Mode I decided not
changing the core contracts, but just add `PermissionlessValidator`.
`PermissionlessValidator` is a simple one-function contract that allow
to call `commitBatches`/`proveBatches`/`executBatches` atomically. In
Priority Mode, the batch settling is restricted to
`PermissionlessValidator`.
3. Only ZK Governace can make the chain Stage 1 chain. To do it,
Governance should call `allowPriorityMode` function.

## Why ❔

Stage1. 

## Other PRs

-  matter-labs/zksync-os#478
- zksync-association/zk-governance#32

## What is not done yet?

1. Testing
2. Server integration for both Era and ZKsync OS

## Checklist

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

- [x] 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.

---------

Signed-off-by: Danil <deniallugo@gmail.com>
Co-authored-by: Danil <deniallugo@gmail.com>
Co-authored-by: zkzoomer <sergio@zkzoomer.io>
Co-authored-by: kelemeno <34402761+kelemeno@users.noreply.github.com>
Co-authored-by: kelemeno <kl@matterlabs.dev>
Co-authored-by: 0xValera <55665573+0xValera@users.noreply.github.com>
Co-authored-by: 0xValera <valera7743@icloud.com>
Co-authored-by: Marcin M <128217157+mm-zk@users.noreply.github.com>
Co-authored-by: Raid Ateir <ateirraid@gmail.com>
Co-authored-by: Raid5594 <52794079+Raid5594@users.noreply.github.com>
Co-authored-by: Vladislav Volosnikov <vladyan18@gmail.com>
Co-authored-by: EmilLuta <evl@matterlabs.dev>
Co-authored-by: EmilLuta <EmilLuta@users.noreply.github.com>
Co-authored-by: AntonD3 <74021421+AntonD3@users.noreply.github.com>
Co-authored-by: Stanislav Bezkorovainyi <stanislavbezkor@gmail.com>
Co-authored-by: mm <mm@matterlabs.dev>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Alexander Melnikov <sanekmelnikov@gmail.com>
Co-authored-by: nikitastupin-matterlabs <178824211+nikitastupin-matterlabs@users.noreply.github.com>
Co-authored-by: Anton Baliasnikov <aba@matterlabs.dev>
Co-authored-by: zksync[bot] <zksync[bot]@users.noreply.github.com>
…#1993)

# What ❔

<!-- 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? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## 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.

---------

Co-authored-by: Stanislav Breadless <stanislavbezkor@gmail.com>
Co-authored-by: kelemeno <34402761+kelemeno@users.noreply.github.com>
Co-authored-by: zksync[bot] <zksync[bot]@users.noreply.github.com>
# What ❔

<!-- 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? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## 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.

---------

Co-authored-by: Stanislav Bezkorovainyi <stanislavbezkor@gmail.com>
Co-authored-by: zksync[bot] <zksync[bot]@users.noreply.github.com>
# What ❔

<!-- 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? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## 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.
# What ❔

<!-- 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? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## 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.

---------

Co-authored-by: kelemeno <kl@matterlabs.dev>
Co-authored-by: zksync[bot] <zksync[bot]@users.noreply.github.com>
# What ❔

- Deprecation of legacy Mailbox functions:
    - `finalizeEthWithdrawal`
    - `requestL2Transaction`
- Creation of an `IMailboxLegacy` interface to keep the signature of
`Mailbox.finalizeEthWithdrawal`
- Modification of the Mailbox constructor to remove the unused
`ERA_CHAIN_ID`
- Adjustment of existing tests and deployment scripts

Superseding #1840 due
to the amount of merge conflicts.

The following external PRs should be merged as those repos are using the
deprecated fns:
- matter-labs/zksync-withdrawal-finalizer#550
- zksync-association/zk-governance#30

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## Checklist

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

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

---------

Co-authored-by: kelemeno <kl@matterlabs.dev>
Co-authored-by: zksync[bot] <zksync[bot]@users.noreply.github.com>
# What ❔

- Hardened requirements.
- Some statements simplified.
- Additional comments added.
- removed unused variables
- Some of the issues fixed:
a) reducing base token balance during failed deposits
b) made migration intervals also track batch of the settlement layer

Note, that for now some of the FIXMEs were added to be fixed /
addressed.

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## 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.

---------

Co-authored-by: kelemeno <kl@matterlabs.dev>
Co-authored-by: zksync[bot] <zksync[bot]@users.noreply.github.com>
# What ❔

This is a sister PR to
matter-labs/zksync-era#4612

[WIP], to be filled
<!-- 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? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## 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.

---------

Signed-off-by: Danil <deniallugo@gmail.com>
Co-authored-by: zkzoomer <sergio@zkzoomer.io>
Co-authored-by: Danil <deniallugo@gmail.com>
Co-authored-by: Marcin M <128217157+mm-zk@users.noreply.github.com>
Co-authored-by: Raid Ateir <ateirraid@gmail.com>
Co-authored-by: Raid5594 <52794079+Raid5594@users.noreply.github.com>
Co-authored-by: Vladislav Volosnikov <vladyan18@gmail.com>
Co-authored-by: EmilLuta <evl@matterlabs.dev>
Co-authored-by: EmilLuta <EmilLuta@users.noreply.github.com>
Co-authored-by: AntonD3 <74021421+AntonD3@users.noreply.github.com>
Co-authored-by: Stanislav Bezkorovainyi <stanislavbezkor@gmail.com>
Co-authored-by: kelemeno <kl@matterlabs.dev>
Co-authored-by: kelemeno <34402761+kelemeno@users.noreply.github.com>
Co-authored-by: mm <mm@matterlabs.dev>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Alexander Melnikov <sanekmelnikov@gmail.com>
Co-authored-by: nikitastupin-matterlabs <178824211+nikitastupin-matterlabs@users.noreply.github.com>
Co-authored-by: Anton Baliasnikov <aba@matterlabs.dev>
Co-authored-by: zksync[bot] <zksync[bot]@users.noreply.github.com>
# What ❔

This is a sister PR to:
matter-labs/zksync-era#4674

1. Since stage1 is not supported for chains on top of GW, there is no
need to wait before l1->l2 ops can be paused (as there is always the
transaction filterer approach).
2. We do not automatically re-enable deposits in 1.5 days since GW is
expected to return a confirmation message. l1->l2 ops are unpaused only
via the confirmation message (or chain admin but only if no withdrawal
happened)

There is a known issue preventing stage1: 
- Chain admin may pause deposits, but not actually try to migrate.
- So in the future we will need to reintroduce
CHAIN_MIGRATION_TIME_WINDOW_END_MAINNET/PAUSE_DEPOSITS_TIME_WINDOW_END_MAINNET,
but we will have to carefully consider the used timelines to ensure that
stage1 works.
- This not an issue in this release, since we dont support stage1 for
chains on GW

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## 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.

---------

Co-authored-by: zksync[bot] <zksync[bot]@users.noreply.github.com>
# What ❔

Add zkSyncOS flag getter method to CTM, use it in the
AddressIntrospector library.

## Why ❔

To make the RegisterZKChain script properly behave both for zksync os
and Era VM.

## 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.
# What ❔

SL chain id should be part of batch output hash.
Adds it also to `CommitBatchInfoZKsyncOS`, this way, if the operator
accidentally uses the wrong chain id, it will fail explicitly with a
clear error, also it will be consistent with how we process other fields

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## 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.

---------

Co-authored-by: AntonD3 <antonv.dyadyuk@gmail.com>
# What ❔

This is a sister PR to:
matter-labs/zksync-era#4678

<!-- 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? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## 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.
….so (#2051)

# What ❔

<!-- 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? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## 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.

---------

Co-authored-by: kelemeno <kl@matterlabs.dev>
Co-authored-by: zksync[bot] <zksync[bot]@users.noreply.github.com>
…ts instead of totalSupply() (#2041)

# What ❔

<!-- 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? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## 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.

---------

Co-authored-by: 0xValera <55665573+0xValera@users.noreply.github.com>
Co-authored-by: zkzoomer <sergio@zkzoomer.io>
Co-authored-by: zksync[bot] <zksync[bot]@users.noreply.github.com>
# What ❔

Currently, `prettier` doesn't work as there're lines longer than 120
chars but `yarn lint:check` doesn't detect it. This PR fixes the issue
and also lints the files properly.

## Why ❔

Improving code quality (in particular, readability).

## Checklist

- [x] 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.

---------

Co-authored-by: kelemeno <kl@matterlabs.dev>
Co-authored-by: zksync[bot] <zksync[bot]@users.noreply.github.com>
# What ❔

Sister PR to: matter-labs/zksync-era#4683

<!-- 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? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## 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.
# What ❔

Tiny contracts fixes/improvements

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## 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.

---------

Co-authored-by: kelemeno <kl@matterlabs.dev>
Co-authored-by: zksync[bot] <zksync[bot]@users.noreply.github.com>
# What ❔

<!-- 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? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## 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.

---------

Co-authored-by: zksync[bot] <zksync[bot]@users.noreply.github.com>
# What ❔

<!-- 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? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## 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.
# What ❔

use normal getter for chain tree

## Why ❔

auto-generated public mapping getter doesn't return struct's arrays

## 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.
@github-actions
Copy link
Contributor

github-actions bot commented Mar 2, 2026

Coverage after merging draft-v31 into zksync-os-stable will be

90.79%

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%267
   L1Nullifier.sol96.12%100%100%95.40%446–447, 450, 476, 729, 732, 734, 750
   UpgradeableBeaconDeployer.sol100%100%100%100%
contracts/bridge/asset-router
   AssetRouterBase.sol98.53%100%100%98.21%132
   L1AssetRouter.sol91.62%100%86.67%92.70%116, 331, 342, 424–425, 444, 602, 613, 627, 632
contracts/bridge/asset-tracker
   AssetTrackerBase.sol93.33%100%88.89%95.24%88
   GWAssetTracker.sol92.11%100%92.50%92.05%135–137, 158, 208–210, 212–214, 219–220, 348–350, 356, 369, 504, 694
   L1AssetTracker.sol91.75%100%100%90.61%113, 131–132, 145, 150, 162, 326, 328–329, 332, 566, 573, 579, 585, 591, 619, 84
   LegacySharedBridgeAddresses.sol83.33%100%100%81.82%39, 41
contracts/bridge/interfaces
   AssetHandlerModifiers.sol75%100%100%66.67%13
contracts/bridge/ntv
   L1NativeTokenVault.sol98.17%100%100%97.70%191, 193
   NativeTokenVaultBase.sol98.94%100%100%98.73%164, 170
contracts/common
   MessageVerification.sol88.24%100%87.50%88.46%34, 41–42
   ReentrancyGuard.sol100%100%100%100%
contracts/common/l2-helpers
   L2ContractHelper.sol98.11%100%100%97.78%102
   SystemContractsCaller.sol52.50%100%60%51.43%42–43, 45, 47, 49, 51, 64, 67, 70, 73, 76, 81, 87, 89, 91, 94, 96
contracts/common/libraries
   DataEncoding.sol95.90%100%95.83%95.92%193, 283, 301, 307
   DynamicIncrementalMerkle.sol100%100%100%100%
   DynamicIncrementalMerkleMemory.sol98.96%100%100%98.84%196
   FullMerkle.sol98.28%100%100%98.11%109
   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.sol96.86%100%100%96.23%155, 304, 320, 580, 584, 587
   L1Bridgehub.sol91.92%100%100%90.91%137, 218, 293, 297–298, 301, 311, 96
   L2Bridgehub.sol66.67%100%60%68.57%102–103, 111, 113–114, 123, 128–129, 131–132, 75
contracts/core/chain-asset-handler
   ChainAssetHandlerBase.sol85.86%100%92.31%84.88%114, 121–122, 140–142, 191, 194, 203–204, 340, 344, 366
   L1ChainAssetHandler.sol88.07%100%82.35%89.13%182, 271, 273–275, 314, 87–88, 92–93
   L2ChainAssetHandler.sol84.21%100%80%85.71%120, 124, 69, 93
contracts/core/chain-registration
   ChainRegistrationSender.sol89.13%100%100%86.84%104, 127, 47, 94, 98
contracts/core/ctm-deployment
   CTMDeploymentTracker.sol100%100%100%100%
contracts/core/message-root
   L1MessageRoot.sol95.24%100%91.67%96.08%170–171
   L2MessageRoot.sol62.22%100%45.45%67.65%109, 116, 120–121, 42–43, 52–53, 57, 64, 80
   MessageRootBase.sol90%100%94.12%89.16%110, 130, 134, 211, 282, 301, 345, 353–354
contracts/governance
   AccessControlRestriction.sol100%100%100%100%
   ChainAdmin.sol97.87%100%100%97.30%44
   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.sol100%100%100%100%
   RestrictionValidator.sol100%100%100%100%
contracts/interop
   AttributesDecoder.sol100%100%100%100%
   InteropCenter.sol95.56%100%88.46%96.48%120–121, 132, 176–177, 575, 659
   InteropDataEncoding.sol100%100%100%100%
   InteropHandler.sol96.58%100%100%96.15%346, 368, 373, 64
   L2InteropRootStorage.sol0%100%0%0%20–22, 41, 46, 52–53, 58, 60–62, 71, 73–74, 76–77, 81–82, 86, 88
   L2MessageVerification.sol100%100%100%100%
contracts/l2-system/zksync-os
   L1MessageGasLib.sol100%100%100%100%
   L1Messenger.sol94.12%100%100%92.86%29
   SystemContext.sol100%100%100%100%
   ZKOSContractDeployer.sol0%100%0%0%15–17, 23, 29, 33–34
contracts/l2-upgrades
   L2ComplexUpgrader.sol0%100%0%0%23–25, 39, 44, 46, 56, 62–63, 70, 79–81, 84, 86–87
   L2GenesisForceDeploymentsHelper.sol93.71%100%100%93.15%117, 150, 196, 198, 202, 204–205, 235, 241, 460
   L2GenesisUpgrade.sol0%100%0%0%30, 37, 39–40, 43, 47–50, 53, 55, 63
   L2V30TestnetSystemProxiesUpgrade.sol0%100%0%0%101, 107, 30, 35–36, 38, 49, 55, 60, 64, 69, 74, 79, 84, 89, 94
   L2V31Upgrade.sol0%100%0%0%14–15
   SystemContractProxy.sol88%100%66.67%90.91%23–24
   SystemContractProxyAdmin.sol60%100%66.67%57.14%12, 18–19
   V31AcrossRecovery.sol0%100%0%0%46–48, 67–68, 70–71, 75, 80–81, 96
contracts/state-transition
   AccessControlEnumerablePerChainAddressUpgradeable.sol98.25%100%100%97.83%179
   ChainTypeManagerBase.sol96.19%100%100%95.29%206, 209, 383, 473, 478, 620, 683, 721, 797
   EraChainTypeManager.sol94.12%100%100%92.86%39
   ZKsyncOSChainTypeManager.sol80%100%66.67%83.33%26–27
contracts/state-transition/chain-deps
   DiamondInit.sol94.23%100%100%94%72, 76, 80
   DiamondProxy.sol100%100%100%100%
   StoredBatchHashing.sol100%100%100%100%
contracts/state-transition/chain-deps/facets
   Admin.sol91.71%100%93.75%91.35%110–112, 197, 201, 205, 275, 300–301, 385, 424, 94–96, 98–99
   Committer.sol90.80%100%100%90%205, 230, 237,

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.