Skip to content

[WIP] chore: Deprecate batch methods #1519

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2 commits into
base: draft-v30
Choose a base branch
from

Conversation

0xValera
Copy link
Collaborator

@0xValera 0xValera commented Jun 12, 2025

What ❔

We are deprecating batch methods in preparation for ZKsync OS. There will be no concept of batches, so it's better to guard users from using batch-like interfaces.
A plan to transition smoothly consists of 3 steps:

  1. Mark relevant functions as deprecated, but leave them accessible. v30
  2. Replace relevant functions' bodies with reverts. v31
  3. Delete functions from codebase if they are not being used by us, otherwise leave them as internal functions. v32

Also some of the functions that were deprecated in earlier releases but accessible earlier were made to revert on call.

Why ❔

To make publicly facing interface more compatible with ZKsync OS.

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

Coverage after merging vg/batch-methods-deprecation into draft-v30 will be

84.76%

Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
contracts/bridge
   BridgeHelper.sol85.71%100%100%85%31, 36, 41
   BridgedStandardERC20.sol82.14%100%92.31%80.28%120–121, 126–127, 139–140, 164, 205, 212, 219, 229–230, 63, 91
   L1ERC20Bridge.sol94%100%100%93.02%189, 208, 270
   L1Nullifier.sol83.33%100%86.21%82.89%114, 128–130, 160, 221, 224, 234, 237, 247, 250, 418–420, 424–425, 452, 518, 602, 614, 652, 654, 698, 710, 713, 715, 728, 741–742, 746–747, 767
contracts/bridge/asset-router
   AssetRouterBase.sol95.45%100%100%94.44%59, 87
   L1AssetRouter.sol88.33%100%88.89%88.24%208, 246, 262, 349, 360, 391, 430–431, 445, 476, 548, 60, 637, 648, 662, 667, 76, 84
contracts/bridge/interfaces
   AssetHandlerModifiers.sol75%100%100%66.67%13
contracts/bridge/ntv
   L1NativeTokenVault.sol84.82%100%88.24%84.21%144–150, 152, 220–221, 223, 234, 236, 240, 66
   NativeTokenVault.sol89.50%100%92%89.10%102, 234, 239, 256, 274, 279, 295, 314, 322, 488, 503, 531, 564–565, 569–570, 74
contracts/bridgehub
   Bridgehub.sol84.19%100%86.67%83.77%115, 123, 128–130, 137, 165–166, 182, 229, 232, 241, 251, 264, 279, 308, 332, 335, 395, 411, 442, 522, 604, 702, 706, 710–711, 730, 733, 784, 787, 790, 825, 829, 832, 866–867, 871–872, 880–881, 885–886
   CTMDeploymentTracker.sol78.26%100%90%75%101, 126, 130–131, 32, 40, 63, 93, 97
   ChainAssetHandler.sol78.13%100%77.78%78.18%120, 134, 137, 187, 235–236, 240–241, 54, 60–61, 68
   L2MessageVerification.sol100%100%100%100%
   MessageRoot.sol95.83%100%100%95%121, 170, 97
contracts/common
   ReentrancyGuard.sol95%100%100%94.12%79
contracts/common/l2-helpers
   L2ContractHelper.sol84.91%100%100%82.22%102, 108, 112, 129, 134, 73, 79, 83
   SystemContractsCaller.sol0%100%0%0%102, 114, 122–125, 128, 135–139, 141–142, 32–34, 37, 44–45, 47, 49, 51, 53, 66, 69, 72, 75, 78, 83, 89, 91, 93, 96, 98
contracts/common/libraries
   DataEncoding.sol85.11%100%100%81.58%109–110, 117–118, 163, 177, 45
   DynamicIncrementalMerkle.sol73.91%100%80%73.17%66–70, 72–74, 76–78
   FullMerkle.sol100%100%100%100%
   Merkle.sol98.15%100%100%97.96%83
   MessageHashing.sol95%100%100%94.44%113, 77, 94
   SemVer.sol100%100%100%100%
   UncheckedMath.sol100%100%100%100%
   UnsafeBytes.sol100%100%100%100%
contracts/governance
   AccessControlRestriction.sol100%100%100%100%
   ChainAdmin.sol97.87%100%100%97.30%39
   ChainAdminOwnable.sol44.83%100%40%45.83%28, 38–40, 46–48, 57, 66, 77–79, 81
   Governance.sol100%100%100%100%
   L2ProxyAdminDeployer.sol0%100%0%0%16–18, 20
   PermanentRestriction.sol88.80%100%100%87.39%103, 110–111, 199–200, 203–204, 207, 209–210, 239, 287, 309, 340
   ServerNotifier.sol93.10%100%100%90.91%55, 65
   TransitionaryOwner.sol0%100%0%0%16–17, 21–23
contracts/governance/restriction
   Restriction.sol100%100%100%100%
   RestrictionValidator.sol100%100%100%100%
contracts/state-transition
   AccessControlEnumerablePerChainAddressUpgradeable.sol98.15%100%100%97.67%179
   ChainTypeManager.sol90.67%100%91.89%90.38%106, 124, 132–133, 249–252, 267, 397, 459, 487, 494, 521, 569
   ValidatorTimelock.sol89.25%100%77.78%92%120, 140, 163, 275, 294, 97
contracts/state-transition/chain-deps
   DiamondInit.sol92.68%100%100%92.50%50, 54, 58
   DiamondProxy.sol100%100%100%100%
   GatewayCTMDeployer.sol0%100%0%0%166–167, 170, 172–174, 176, 178, 180, 188, 190, 192, 194, 196–197, 203, 215, 223, 226–227, 229, 235, 239–240, 248, 253–255, 262, 267–269, 282–285, 299, 304–309, 313, 326, 332, 334, 336–337, 341, 343–345, 353, 358, 362–363, 369, 375, 381, 388, 398, 404, 406, 416, 424, 438, 443, 448
contracts/state-transition/chain-deps/facets
   Admin.sol81.90%100%88%81.12%150–151, 168, 171, 175, 182–184, 187, 189, 192, 196–197, 201, 297, 300, 308, 315, 335, 349, 352, 359, 372, 375–376, 378–379, 381–382, 384, 387, 418, 422, 433, 447, 453, 48
   Executor.sol88.45%100%100%87.29%133, 147, 154–156, 183, 221, 270, 279, 284, 287, 291, 314, 318,

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.

1 participant