From 2cc0621acf3ccd0536bfd01999727753d1447931 Mon Sep 17 00:00:00 2001 From: Marcin M <128217157+mm-zk@users.noreply.github.com> Date: Thu, 9 Jan 2025 07:47:20 +0100 Subject: [PATCH] feat: Added script to compute hashes from L1, L2 and system contracts (#1187) --- .github/workflows/l1-contracts-ci.yaml | 39 + AllContractsHashes.json | 2074 ++++++++++++++++++++++++ package.json | 2 + scripts/calculate-hashes.ts | 343 ++++ 4 files changed, 2458 insertions(+) create mode 100644 AllContractsHashes.json create mode 100644 scripts/calculate-hashes.ts diff --git a/.github/workflows/l1-contracts-ci.yaml b/.github/workflows/l1-contracts-ci.yaml index 9b8b10369..61809c77f 100644 --- a/.github/workflows/l1-contracts-ci.yaml +++ b/.github/workflows/l1-contracts-ci.yaml @@ -91,6 +91,45 @@ jobs: - name: Lint errors run: yarn l1 errors-lint --check + check-hashes: + needs: [build] + runs-on: ubuntu-latest + + steps: + - name: Checkout the repository + uses: actions/checkout@v4 + + - name: Use Node.js + uses: actions/setup-node@v3 + with: + node-version: 18.18.0 + cache: yarn + - name: Install dependencies + run: yarn + + - name: Restore artifacts cache + uses: actions/cache/restore@v3 + with: + fail-on-cache-miss: true + key: artifacts-l1-${{ github.sha }} + path: | + da-contracts/out + l1-contracts/cache-forge + l1-contracts/out + l1-contracts/zkout + l2-contracts/cache-forge + l2-contracts/zkout + system-contracts/zkout + + - name: Check contents + run: | + pwd + ls -R l2-contracts/zkout + ls -R system-contracts/zkout + + - name: Check hashes + run: yarn calculate-hashes:check + test-foundry: needs: [build, lint] runs-on: ubuntu-latest diff --git a/AllContractsHashes.json b/AllContractsHashes.json new file mode 100644 index 000000000..7822b668e --- /dev/null +++ b/AllContractsHashes.json @@ -0,0 +1,2074 @@ +[ + { + "contractName": "system-contracts/AccountCodeStorage", + "zkBytecodeHash": "0x010000599a888c1be8ea33698a375abe0d636bb651c417eb1e65c5d162fdb27e", + "zkBytecodePath": "/system-contracts/zkout/AccountCodeStorage.sol/AccountCodeStorage.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/Address", + "zkBytecodeHash": "0x010000074473f52764cef2c1f1b51b2c13c3578ddf245f57e053fb550f4f1f70", + "zkBytecodePath": "/system-contracts/zkout/Address.sol/Address.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/AlwaysRevert", + "zkBytecodeHash": "0x0100000b21a0833286c5aace74e1bf936618ef355b89060d2610072300d8d565", + "zkBytecodePath": "/system-contracts/zkout/AlwaysRevert.sol/AlwaysRevert.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/BootloaderUtilities", + "zkBytecodeHash": "0x0100076be95f167cdc4769c444031aedcec86da30720ff3707a7354590c76af5", + "zkBytecodePath": "/system-contracts/zkout/BootloaderUtilities.sol/BootloaderUtilities.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/ComplexUpgrader", + "zkBytecodeHash": "0x010000b332b7bbeedf2dd2c25c0f46818d1c8adc00b8d8a64749344b12349a39", + "zkBytecodePath": "/system-contracts/zkout/ComplexUpgrader.sol/ComplexUpgrader.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/Compressor", + "zkBytecodeHash": "0x010001452ef708cb2fdbc3096a3d53eeb2dadb5c43596147fa3546a218a20a90", + "zkBytecodePath": "/system-contracts/zkout/Compressor.sol/Compressor.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/ContractDeployer", + "zkBytecodeHash": "0x01000455250cb9b23b9b83465243c545283a5203b8e68b691b55270038cd2a21", + "zkBytecodePath": "/system-contracts/zkout/ContractDeployer.sol/ContractDeployer.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/Create2Factory", + "zkBytecodeHash": "0x01000041a40b295513a5b681f766e8677f77035882a94780a365456d09dd86f9", + "zkBytecodePath": "/system-contracts/zkout/Create2Factory.sol/Create2Factory.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/DefaultAccount", + "zkBytecodeHash": "0x0100052307b3b66ef67935255483d39b3c8dcdb47fdf94dddca11ebe8271afe6", + "zkBytecodePath": "/system-contracts/zkout/DefaultAccount.sol/DefaultAccount.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/DelegateCaller", + "zkBytecodeHash": "0x010000297c8f70d7cca5fd535978f8c0d7b673891a1192609d5af4c4bfb81e21", + "zkBytecodePath": "/system-contracts/zkout/DelegateCaller.sol/DelegateCaller.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/Deployable", + "zkBytecodeHash": "0x0100002555063158795a4b77a66e71f77f7ee28e1c634f4abf8b0958b76d1853", + "zkBytecodePath": "/system-contracts/zkout/Deployable.sol/Deployable.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/DummyBridgehub", + "zkBytecodeHash": "0x0100001df6868327d0247d3d4193ff582f883a58f3894bb418fa1c00c4c10137", + "zkBytecodePath": "/system-contracts/zkout/DummyBridgehub.sol/DummyBridgehub.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/DummyL2AssetRouter", + "zkBytecodeHash": "0x010000131389e32f72cf819adc8b812c8d0eb0fd567b8d62acd54f17aefab849", + "zkBytecodePath": "/system-contracts/zkout/DummyL2AssetRouter.sol/DummyL2AssetRouter.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/DummyL2NativeTokenVault", + "zkBytecodeHash": "0x01000017a2f039bf0009a2178bc0db4fc000198b90a0e32b1d280b1a9a0306d2", + "zkBytecodePath": "/system-contracts/zkout/DummyL2NativeTokenVault.sol/DummyL2NativeTokenVault.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/DummyMessageRoot", + "zkBytecodeHash": "0x01000013194ff0f4163cf1276283614e67927736ee9f15c37e5a19de12ac3e97", + "zkBytecodePath": "/system-contracts/zkout/DummyMessageRoot.sol/DummyMessageRoot.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/ERC1967Proxy", + "zkBytecodeHash": "0x0100009fe04f25a512ac8133ccf467c8d276dd2512cfdb09be88545c028006e3", + "zkBytecodePath": "/system-contracts/zkout/ERC1967Proxy.sol/ERC1967Proxy.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/EfficientCall", + "zkBytecodeHash": "0x01000007037bab349f6c47156b10caa8a03a526625013ac06265a5e59fcb69d4", + "zkBytecodePath": "/system-contracts/zkout/EfficientCall.sol/EfficientCall.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/EmptyContract", + "zkBytecodeHash": "0x01000007c57b2a34151ddedfc6f24f9caaec700dff386ddc3397d913d208b246", + "zkBytecodePath": "/system-contracts/zkout/EmptyContract.sol/EmptyContract.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/ImmutableSimulator", + "zkBytecodeHash": "0x01000035207eb3e94b07b477fb0711cd0d33e227caedf2b19edd08584b31f00e", + "zkBytecodePath": "/system-contracts/zkout/ImmutableSimulator.sol/ImmutableSimulator.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/KnownCodesStorage", + "zkBytecodeHash": "0x01000069398aeac7055f3b36ebc7b7fba05664de9e53ee0eed72a0b317c2bb8d", + "zkBytecodePath": "/system-contracts/zkout/KnownCodesStorage.sol/KnownCodesStorage.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/L1Messenger", + "zkBytecodeHash": "0x010001e119ae850664d810e59cfa7f8465350a53c9b98eda09351111fb1cc2a4", + "zkBytecodePath": "/system-contracts/zkout/L1Messenger.sol/L1Messenger.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/L2BaseToken", + "zkBytecodeHash": "0x010000f9b581c876fa1fc2f5976aebe36d8c3acab143b2b6376b3b3dc3eae6b6", + "zkBytecodePath": "/system-contracts/zkout/L2BaseToken.sol/L2BaseToken.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/L2GatewayUpgrade", + "zkBytecodeHash": "0x0100034fb4ee1d98963c9b74f908d1a22679d16af421f34ca05c280abe9acca0", + "zkBytecodePath": "/system-contracts/zkout/L2GatewayUpgrade.sol/L2GatewayUpgrade.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/L2GatewayUpgradeHelper", + "zkBytecodeHash": "0x0100000796a1e77424aab1b20e20bba206c899a2652b96d6d0677d3d122272f7", + "zkBytecodePath": "/system-contracts/zkout/L2GatewayUpgradeHelper.sol/L2GatewayUpgradeHelper.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/L2GenesisUpgrade", + "zkBytecodeHash": "0x0100019146d14ecd420fe01eb1a44fcdb4a6fda7a1ec980a083142b6a083f945", + "zkBytecodePath": "/system-contracts/zkout/L2GenesisUpgrade.sol/L2GenesisUpgrade.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/MockContract", + "zkBytecodeHash": "0x0100015d45a7b31cba70f33cb9965ac3282274bccbdda3af7241848e39fae812", + "zkBytecodePath": "/system-contracts/zkout/MockContract.sol/MockContract.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/MsgValueSimulator", + "zkBytecodeHash": "0x0100005b65a0144a437dc4052cff7c8845aef591319cce76935f6ee4d80a6951", + "zkBytecodePath": "/system-contracts/zkout/MsgValueSimulator.sol/MsgValueSimulator.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/NonceHolder", + "zkBytecodeHash": "0x010000d3b845fc6ec3c0e31ca9ef19a2253d80c223481ae672c2be61d74869f4", + "zkBytecodePath": "/system-contracts/zkout/NonceHolder.sol/NonceHolder.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/PubdataChunkPublisher", + "zkBytecodeHash": "0x0100004567edb04550d75b7be1a6c046eee5da418725c5fa728c80e4d27f3a6a", + "zkBytecodePath": "/system-contracts/zkout/PubdataChunkPublisher.sol/PubdataChunkPublisher.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/RLPEncoder", + "zkBytecodeHash": "0x01000007211c21e2b8797a1696823326d25484572581b41f4febe5df6a1ad562", + "zkBytecodePath": "/system-contracts/zkout/RLPEncoder.sol/RLPEncoder.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/SafeERC20", + "zkBytecodeHash": "0x010000078d9ce63b9c3d2a16ff45b7d1af85c311f9db86524014dc2b39ae11b1", + "zkBytecodePath": "/system-contracts/zkout/SafeERC20.sol/SafeERC20.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/SloadContract", + "zkBytecodeHash": "0x0100001110781a47a634bcfe197958f3d95577c2e585f69f23bb4bafade6e915", + "zkBytecodePath": "/system-contracts/zkout/SloadContract.sol/SloadContract.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/StorageSlot", + "zkBytecodeHash": "0x01000007209ee571bf9297350625926d68db8ce1b723ca1b92cb9cf209a1bc8b", + "zkBytecodePath": "/system-contracts/zkout/StorageSlot.sol/StorageSlot.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/SystemCaller", + "zkBytecodeHash": "0x0100004f5a078365eeb898f6755df1e16106beb7e5fddb3fe43fc6ccca86c3a7", + "zkBytecodePath": "/system-contracts/zkout/SystemCaller.sol/SystemCaller.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/SystemContext", + "zkBytecodeHash": "0x0100017dde28b0b30fd5fad3b38475a3e27a5b0739f0810ecacda760f67a11a8", + "zkBytecodePath": "/system-contracts/zkout/SystemContext.sol/SystemContext.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/SystemContractHelper", + "zkBytecodeHash": "0x010000071fb7695c6a2396348914572895489e774c0f653651d62c5aaec02c74", + "zkBytecodePath": "/system-contracts/zkout/SystemContractHelper.sol/SystemContractHelper.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/SystemContractsCaller", + "zkBytecodeHash": "0x0100000711df4099ed166030f61cb3076a6eacd6f9e9ce353d5c41f5554c1a9f", + "zkBytecodePath": "/system-contracts/zkout/SystemContractsCaller.sol/SystemContractsCaller.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/TransactionHelper", + "zkBytecodeHash": "0x01000007f4138bf0be46999663dbe6e8839cfcb72fb7d1b2dad99b9fe2cfe5db", + "zkBytecodePath": "/system-contracts/zkout/TransactionHelper.sol/TransactionHelper.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/TransparentUpgradeableProxy", + "zkBytecodeHash": "0x0100014b59e19fe847eb5ddcf4374481fe69c279952e3d1eff5dfb190861d763", + "zkBytecodePath": "/system-contracts/zkout/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/UnsafeBytesCalldata", + "zkBytecodeHash": "0x01000007ba05e3d7ad4cc324c2e13e3da7a59cf9fc0320cda86f26ee63afe394", + "zkBytecodePath": "/system-contracts/zkout/UnsafeBytesCalldata.sol/UnsafeBytesCalldata.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/UpgradeableBeacon", + "zkBytecodeHash": "0x010000671cd3bc8e9004e810149e420caf34b8f2b62fcc233c56fa5c46b1be7f", + "zkBytecodePath": "/system-contracts/zkout/UpgradeableBeacon.sol/UpgradeableBeacon.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "system-contracts/Utils", + "zkBytecodeHash": "0x01000007feba5414ac88d30c84278268298f49a9d977807fe18b946f0c5d2a6b", + "zkBytecodePath": "/system-contracts/zkout/Utils.sol/Utils.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/Address", + "zkBytecodeHash": "0x01000007c6731f001d1df673e49c2e7a8284bf07f5ed8558f373f55eea359c8f", + "zkBytecodePath": "/l2-contracts/zkout/Address.sol/Address.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/AddressAliasHelper", + "zkBytecodeHash": "0x010000073556027369aba55f93a2a3c8d6ed3719b4d96828a5be541c7fbf1206", + "zkBytecodePath": "/l2-contracts/zkout/AddressAliasHelper.sol/AddressAliasHelper.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/AddressUpgradeable", + "zkBytecodeHash": "0x010000079766b5ea48ce53a244e6955993384aa33c942a8c6f7939c7a0498518", + "zkBytecodePath": "/l2-contracts/zkout/AddressUpgradeable.sol/AddressUpgradeable.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/AvailL2DAValidator", + "zkBytecodeHash": "0x010001092556d0062b2feb253d0987348643d407791c0a21c732143d5e554343", + "zkBytecodePath": "/l2-contracts/zkout/AvailL2DAValidator.sol/AvailL2DAValidator.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/BootloaderUtilities", + "zkBytecodeHash": "0x010006ed0e396b971b54f3cd75d6934fb456119be1cbf18ba830d5484ece99b9", + "zkBytecodePath": "/l2-contracts/zkout/BootloaderUtilities.sol/BootloaderUtilities.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/ConsensusRegistry", + "zkBytecodeHash": "0x01000515e29e2d5ae048cb22f4e2863b8e34c068805cefb523ea9c9616cdb6dd", + "zkBytecodePath": "/l2-contracts/zkout/ConsensusRegistry.sol/ConsensusRegistry.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/CountersUpgradeable", + "zkBytecodeHash": "0x0100000799a4a9fccc569f4097509c99ad6e93d18f6903fda307640656c92e1a", + "zkBytecodePath": "/l2-contracts/zkout/CountersUpgradeable.sol/CountersUpgradeable.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/ECDSAUpgradeable", + "zkBytecodeHash": "0x01000007cafeaaed70d84392da0e288bbb3390db98a9f63b788beb02b1d07c88", + "zkBytecodePath": "/l2-contracts/zkout/ECDSAUpgradeable.sol/ECDSAUpgradeable.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/ERC1967Proxy", + "zkBytecodeHash": "0x01000097ec111c13959817b80f5736d32af02e5dc7d7b7d66337412ef111d343", + "zkBytecodePath": "/l2-contracts/zkout/ERC1967Proxy.sol/ERC1967Proxy.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/ERC20Upgradeable", + "zkBytecodeHash": "0x010000ddf7002eedbc12ac23981fa295b93cc1bf8157407d83ebffb115ff504d", + "zkBytecodePath": "/l2-contracts/zkout/ERC20Upgradeable.sol/ERC20Upgradeable.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/EfficientCall", + "zkBytecodeHash": "0x01000007aa6333eb8904e5b831eb6178e77f5f13f104af2d9c34fe6761e8ac50", + "zkBytecodePath": "/l2-contracts/zkout/EfficientCall.sol/EfficientCall.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/ForceDeployUpgrader", + "zkBytecodeHash": "0x0100005bf396fa5a130a0692ea3df904af2a4bd92dfb85ccbfb4ff55c394b7ed", + "zkBytecodePath": "/l2-contracts/zkout/ForceDeployUpgrader.sol/ForceDeployUpgrader.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/L2ContractHelper", + "zkBytecodeHash": "0x01000007729746645022ac957fe8c8874b01188fc038460dbf10da370947beaa", + "zkBytecodePath": "/l2-contracts/zkout/L2ContractHelper.sol/L2ContractHelper.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/L2WETH", + "zkBytecodeHash": "0x010002e5763e8adbdc4036782a552502426bd67ef338b6bb814fd8f1908b1baf", + "zkBytecodePath": "/l2-contracts/zkout/L2WETH.sol/L2WETH.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/MathUpgradeable", + "zkBytecodeHash": "0x010000079c0b546f47058a66483971f83f34d324d5fb8fef06ad54dac0293f92", + "zkBytecodePath": "/l2-contracts/zkout/MathUpgradeable.sol/MathUpgradeable.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/MockERC20", + "zkBytecodeHash": "0x010001c7aeba5f1e13141b61f50693361c9b8c9f5399b9ae97bbf92434ed5627", + "zkBytecodePath": "/l2-contracts/zkout/MockERC20.sol/MockERC20.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/MockERC721", + "zkBytecodeHash": "0x010001d9acff2526f5b4824316d65a5f85d0356bc05b13060291a327468cb7b4", + "zkBytecodePath": "/l2-contracts/zkout/MockERC721.sol/MockERC721.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/Multicall3", + "zkBytecodeHash": "0x010001fff5124128a36351a69751b04d3be0eaa85e10ac9e765eb5fc2dc27b69", + "zkBytecodePath": "/l2-contracts/zkout/Multicall3.sol/Multicall3.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/ProxyAdmin", + "zkBytecodeHash": "0x010000db858c136626d402484d10ab4e1d03694d183a1cfa0cc47afeee89b81e", + "zkBytecodePath": "/l2-contracts/zkout/ProxyAdmin.sol/ProxyAdmin.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/RLPEncoder", + "zkBytecodeHash": "0x01000007c4b52229283dc3acbe6085c60a32d002026d36207743ebecf402167c", + "zkBytecodePath": "/l2-contracts/zkout/RLPEncoder.sol/RLPEncoder.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/RollupL2DAValidator", + "zkBytecodeHash": "0x01000151dd2e087f901ad9eab5208af694db0d600e0395099bce02c04b5f04e7", + "zkBytecodePath": "/l2-contracts/zkout/RollupL2DAValidator.sol/RollupL2DAValidator.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/SafeCast", + "zkBytecodeHash": "0x01000007b282101328c65ceb77d9274924cef0b622d190307b80db972da1fb31", + "zkBytecodePath": "/l2-contracts/zkout/SafeCast.sol/SafeCast.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/SafeERC20", + "zkBytecodeHash": "0x01000007f106f65505866f4a53714a60401435effe0104a6657915370624613f", + "zkBytecodePath": "/l2-contracts/zkout/SafeERC20.sol/SafeERC20.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/SignedMathUpgradeable", + "zkBytecodeHash": "0x01000007ea2d850e4e3ed5d2a43f95ca0d2bce262a35462abac3219977f4b103", + "zkBytecodePath": "/l2-contracts/zkout/SignedMathUpgradeable.sol/SignedMathUpgradeable.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/stdError", + "zkBytecodeHash": "0x01000031d26a5ee934ae73806218fe38691555398d1c9735ca2ae101290ca5bc", + "zkBytecodePath": "/l2-contracts/zkout/StdError.sol/stdError.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/stdJson", + "zkBytecodeHash": "0x010000074cfb22c02145c6dda8438cf5880d900098b8061de1edba34bfe0ce97", + "zkBytecodePath": "/l2-contracts/zkout/StdJson.sol/stdJson.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/stdMath", + "zkBytecodeHash": "0x010000071499804aa43502dbbc9de9d4861525bf174ce901320ecdd198d1bc50", + "zkBytecodePath": "/l2-contracts/zkout/StdMath.sol/stdMath.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/stdStorage", + "zkBytecodeHash": "0x0100000740909f5ddd6907ec9ed29d923f372d18aa8d77a69de9fd9c14f2ff15", + "zkBytecodePath": "/l2-contracts/zkout/StdStorage.sol/stdStorage.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/stdStorageSafe", + "zkBytecodeHash": "0x010000077514a09dfc46f8a36effc18272288a932f7d5e0ae799004a98e0fed3", + "zkBytecodePath": "/l2-contracts/zkout/StdStorage.sol/stdStorageSafe.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/StdStyle", + "zkBytecodeHash": "0x01000007793db354bc1d7401503a2f52ca2e073911c93928d356b682560676b6", + "zkBytecodePath": "/l2-contracts/zkout/StdStyle.sol/StdStyle.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/stdToml", + "zkBytecodeHash": "0x010000075cfad613f2d1cb3b495299cb1e67789bc9953ecacc27053bcc7867e1", + "zkBytecodePath": "/l2-contracts/zkout/StdToml.sol/stdToml.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/StorageSlot", + "zkBytecodeHash": "0x010000074d1b65e427525437a187c4e8ccec3f5cf9e843d7c14587da7c351679", + "zkBytecodePath": "/l2-contracts/zkout/StorageSlot.sol/StorageSlot.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/StringsUpgradeable", + "zkBytecodeHash": "0x0100000779202109705fc49a33383bae9e4a72272ff34ae7117099f713788ef1", + "zkBytecodePath": "/l2-contracts/zkout/StringsUpgradeable.sol/StringsUpgradeable.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/SystemContractHelper", + "zkBytecodeHash": "0x0100000778e3986aa9b72d65ef8e8107ac6ecb85f596e3a28782c16fa2c32927", + "zkBytecodePath": "/l2-contracts/zkout/SystemContractHelper.sol/SystemContractHelper.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/SystemContractsCaller", + "zkBytecodeHash": "0x01000007c782573cbcca25f42ef79559a67ed16de01d6acdd3a205ab767488a2", + "zkBytecodePath": "/l2-contracts/zkout/SystemContractsCaller.sol/SystemContractsCaller.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/Utils", + "zkBytecodeHash": "0x010000079e48b66fb4d237d7c9580a1d3e7bc0e50483ca9898ee251373e223f4", + "zkBytecodePath": "/l2-contracts/zkout/SystemContractsCaller.sol/Utils.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/TestStateDiffComposer", + "zkBytecodeHash": "0x010001d7e10a30111508d36897088b9a80b68ab303531395a34fff5091ff39cb", + "zkBytecodePath": "/l2-contracts/zkout/TestStateDiffComposer.sol/TestStateDiffComposer.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/TestnetPaymaster", + "zkBytecodeHash": "0x010000c35238fee7674263fcfcebce5b4ed5b4faae845c09d98d2009f77cca5e", + "zkBytecodePath": "/l2-contracts/zkout/TestnetPaymaster.sol/TestnetPaymaster.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/TestnetVerifier", + "zkBytecodeHash": "0x01000ebdd6b9ba0c020da5d668eb9906dc7f1fe804445c2b3cff48bf79b05415", + "zkBytecodePath": "/l2-contracts/zkout/TestnetVerifier.sol/TestnetVerifier.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/TimestampAsserter", + "zkBytecodeHash": "0x0100001b4420b19735bd03239effd72cca6c73ae5f8694a8e0b87cea2b74097d", + "zkBytecodePath": "/l2-contracts/zkout/TimestampAsserter.sol/TimestampAsserter.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/TransactionHelper", + "zkBytecodeHash": "0x0100000798a77bc6da8960fe13a08945aaa72639ef85248ff7f9bf185d8f4d8d", + "zkBytecodePath": "/l2-contracts/zkout/TransactionHelper.sol/TransactionHelper.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/TransparentUpgradeableProxy", + "zkBytecodeHash": "0x0100014336733eeeaa774f528387e7a325650355a4500b05a1a4d918caa5caad", + "zkBytecodePath": "/l2-contracts/zkout/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/Utils", + "zkBytecodeHash": "0x01000007e90add56f37b1e2d60f517dee3743cfbfaaa01e93dbfe3b49e04499c", + "zkBytecodePath": "/l2-contracts/zkout/Utils.sol/Utils.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/ValidiumL2DAValidator", + "zkBytecodeHash": "0x01000015b8c02ac1b399c59da4ebbee0bd3febd41307473ba0885ebc93c356cf", + "zkBytecodePath": "/l2-contracts/zkout/ValidiumL2DAValidator.sol/ValidiumL2DAValidator.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/Verifier", + "zkBytecodeHash": "0x01000eb3d2dda9accfc49676a18f79a75eea9d9b8662aaa757d09a59d41731f4", + "zkBytecodePath": "/l2-contracts/zkout/Verifier.sol/Verifier.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/console", + "zkBytecodeHash": "0x01000007a2c8864dda102c5804250ae17a0dda85971471901290410fb36c23b1", + "zkBytecodePath": "/l2-contracts/zkout/console.sol/console.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l2-contracts/safeconsole", + "zkBytecodeHash": "0x010000070333e2b08f3f532d5728144fc2bf0e4e365656c6ba7a1b062f4366e2", + "zkBytecodePath": "/l2-contracts/zkout/safeconsole.sol/safeconsole.json", + "evmBytecodeHash": null, + "evmBytecodePath": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "l1-contracts/AccessControlRestriction", + "zkBytecodeHash": "0x0100028141db337debd1f3a63ee318e9c62d8ad233b1f274d5b2bfbea537258f", + "zkBytecodePath": "/l1-contracts/zkout/AccessControlRestriction.sol/AccessControlRestriction.json", + "evmBytecodeHash": "0xa63169e1e5cbd891a7ebec893aa884831d886c82cdf22ed09920f3d0b3ee91b8", + "evmBytecodePath": "/l1-contracts/out/AccessControlRestriction.sol/AccessControlRestriction.json", + "evmDeployedBytecodeHash": "0x9314c645240e8a992aba6a2b056382c4d51c5ebeb7058ec66daa1645abda7f5a" + }, + { + "contractName": "l1-contracts/Address", + "zkBytecodeHash": "0x01000007354cef8489c16cb5daed1c5533d5cbf9ff3f738617a464e5354230e5", + "zkBytecodePath": "/l1-contracts/zkout/Address.sol/Address.json", + "evmBytecodeHash": "0xd24c5d73133c9105752273e6f43a98e49091a1497ea5985585b571071f979e23", + "evmBytecodePath": "/l1-contracts/out/Address.sol/Address.json", + "evmDeployedBytecodeHash": "0x9000b1b9de05707625bb9b894541b78ae3b0f7a7b275372ce42cce36b46cba05" + }, + { + "contractName": "l1-contracts/AddressAliasHelper", + "zkBytecodeHash": "0x01000007472bd8f9a6fc81fd144469a7e6336c808b6f23b55eb1c54b041af1f1", + "zkBytecodePath": "/l1-contracts/zkout/AddressAliasHelper.sol/AddressAliasHelper.json", + "evmBytecodeHash": "0x4fc837b64cba33791e4baf434839ebe1225a5fa00b2ddd420c570a5276ea5c0a", + "evmBytecodePath": "/l1-contracts/out/AddressAliasHelper.sol/AddressAliasHelper.json", + "evmDeployedBytecodeHash": "0x6c1b9d45c31339c126ad2985aaf4b83aaf3a146747714d0b6ad5e29cdaec134e" + }, + { + "contractName": "l1-contracts/AddressUpgradeable", + "zkBytecodeHash": "0x010000077b40bff24027ea38e2dadf822e1bce92fa2769df4e7d25eb2e974bd2", + "zkBytecodePath": "/l1-contracts/zkout/AddressUpgradeable.sol/AddressUpgradeable.json", + "evmBytecodeHash": "0xbc7e239e605a54fa8640b364328af3d0a2a1e63fd5aad439f930ad5a11fcfbd4", + "evmBytecodePath": "/l1-contracts/out/AddressUpgradeable.sol/AddressUpgradeable.json", + "evmDeployedBytecodeHash": "0xb59c223532f90ba6ded4732e9040339c0b04556e5bde4caa56f00742da6ba620" + }, + { + "contractName": "l1-contracts/AdminFacet", + "zkBytecodeHash": "0x01000667ca8489f1d94bfa0619c34fb91d1f1c0fd1d1c0c4b510e14bd6b25d73", + "zkBytecodePath": "/l1-contracts/zkout/Admin.sol/AdminFacet.json", + "evmBytecodeHash": "0x647fd111362ca0017f6d3283de9db6ef224d2e6e100499a00d3ad38b646cb0e2", + "evmBytecodePath": "/l1-contracts/out/Admin.sol/AdminFacet.json", + "evmDeployedBytecodeHash": "0xe0839b20235455ac04e173bc3a7dcc22bf5b21de33175f401da940808a05394b" + }, + { + "contractName": "l1-contracts/Arrays", + "zkBytecodeHash": "0x010000071eb676d88511b60e94c8e1b890e0d75e4e7f4cc0f46d0950a86d1eaa", + "zkBytecodePath": "/l1-contracts/zkout/Arrays.sol/Arrays.json", + "evmBytecodeHash": "0x4429f1f2fb3be8cacf986a1fc2858c30ad056a5d1b0cf55823a1c0f3a19db114", + "evmBytecodePath": "/l1-contracts/out/Arrays.sol/Arrays.json", + "evmDeployedBytecodeHash": "0xe8d3412a362631d9e06aeb2ef1ea755e3afb1c3a86db20b8895c7812b220fc71" + }, + { + "contractName": "l1-contracts/BatchDecoder", + "zkBytecodeHash": "0x0100000759263b9a5166f0abdef1cb204bf5a98297a442488737762c3f281b40", + "zkBytecodePath": "/l1-contracts/zkout/BatchDecoder.sol/BatchDecoder.json", + "evmBytecodeHash": "0x3255b724f7fc877671519e50492124c029932fa4269da924b7144603960f6769", + "evmBytecodePath": "/l1-contracts/out/BatchDecoder.sol/BatchDecoder.json", + "evmDeployedBytecodeHash": "0xccf7065e58b57f61374cfd09da167b1dd65950461ec2700bf18704559487e116" + }, + { + "contractName": "l1-contracts/BeaconProxy", + "zkBytecodeHash": "0x010000fbc1ab940b7855fb56b42a56b3f5224a26a9b569cccec2ff9fa583f52a", + "zkBytecodePath": "/l1-contracts/zkout/BeaconProxy.sol/BeaconProxy.json", + "evmBytecodeHash": "0xd82c10f71376ff08b58d9e1ee497bfc0dd3caa5b2f56cfab1ff5bfe2f91176f4", + "evmBytecodePath": "/l1-contracts/out/BeaconProxy.sol/BeaconProxy.json", + "evmDeployedBytecodeHash": "0x972611f8aef132f80ed2b2962228119ea9cae3e289dff26cf13c981dbe364d00" + }, + { + "contractName": "l1-contracts/BridgeHelper", + "zkBytecodeHash": "0x010000077892f7f26da4579937f5a21f5b0b5b301f43f0299829eda77efd3121", + "zkBytecodePath": "/l1-contracts/zkout/BridgeHelper.sol/BridgeHelper.json", + "evmBytecodeHash": "0xcd05bb2e05708787278a5ba3624e7e9a7c62102d6da82a3ad40dfb76d607094e", + "evmBytecodePath": "/l1-contracts/out/BridgeHelper.sol/BridgeHelper.json", + "evmDeployedBytecodeHash": "0x2f7f03bb8ab4f3a94f8e516748b6b700b8b53f8425525f764d3c340c563d3c32" + }, + { + "contractName": "l1-contracts/BridgedStandardERC20", + "zkBytecodeHash": "0x010004b1492831925bd58dd9143179471e90b5f644a77349332f026c4c0b092f", + "zkBytecodePath": "/l1-contracts/zkout/BridgedStandardERC20.sol/BridgedStandardERC20.json", + "evmBytecodeHash": "0x4cc7d5ca8a970c0fedc8e718fafd36dd88c8afd036f8ca7347e9cc7b9f7fe910", + "evmBytecodePath": "/l1-contracts/out/BridgedStandardERC20.sol/BridgedStandardERC20.json", + "evmDeployedBytecodeHash": "0x7a84768470a007b60a599e44f79e2b6a8149c5a79c6df7c822d261c999bc96a2" + }, + { + "contractName": "l1-contracts/Bridgehub", + "zkBytecodeHash": "0x010009a9832bdb0727b3ba54a13b2892f3c916e0aff063c1e5aae093cdb0d73e", + "zkBytecodePath": "/l1-contracts/zkout/Bridgehub.sol/Bridgehub.json", + "evmBytecodeHash": "0x6a9880541cbd414871d93fb586b6eac20e661690c3cc75c054ba0075eef0efd0", + "evmBytecodePath": "/l1-contracts/out/Bridgehub.sol/Bridgehub.json", + "evmDeployedBytecodeHash": "0x23aace4a3a417608951df2e4494c3703d058435a20da4d3b88b282c160e7ee5b" + }, + { + "contractName": "l1-contracts/BytecodesSupplier", + "zkBytecodeHash": "0x010000c59025400892f11d143724be741d1a7ecaf61a073734fe63c902786b12", + "zkBytecodePath": "/l1-contracts/zkout/BytecodesSupplier.sol/BytecodesSupplier.json", + "evmBytecodeHash": "0x0ca7ec0765cef91c288f88ea3c76cc18f386da036e45c3fa6e251d5cbc6bf7c6", + "evmBytecodePath": "/l1-contracts/out/BytecodesSupplier.sol/BytecodesSupplier.json", + "evmDeployedBytecodeHash": "0x31e3d4c03fb3274351c94af73a2408f1087bf171dea556839bfe6b0e1b440c34" + }, + { + "contractName": "l1-contracts/CTMDeploymentTracker", + "zkBytecodeHash": "0x0100016dacb0ac06a7cb02fdcad593d05cbc2e77f41514b0fef997fd6041bfa1", + "zkBytecodePath": "/l1-contracts/zkout/CTMDeploymentTracker.sol/CTMDeploymentTracker.json", + "evmBytecodeHash": "0x40f2336ec73370e373baa0dba8639469d614d1b7caddc48cf8ea61daa601a16d", + "evmBytecodePath": "/l1-contracts/out/CTMDeploymentTracker.sol/CTMDeploymentTracker.json", + "evmDeployedBytecodeHash": "0xa1524cd1a1cc0e7603cdd40ed2453cb250a9ac062efc6beb3dfeaed65af42882" + }, + { + "contractName": "l1-contracts/ChainAdmin", + "zkBytecodeHash": "0x01000195dee891fbe99b2688c6eabbb7814898d130df1dba0c3be968b67d58d6", + "zkBytecodePath": "/l1-contracts/zkout/ChainAdmin.sol/ChainAdmin.json", + "evmBytecodeHash": "0x177f4202ee3d4e1d1c77c3dae03d9473fb2d71d21f902094ddb52c35860e0408", + "evmBytecodePath": "/l1-contracts/out/ChainAdmin.sol/ChainAdmin.json", + "evmDeployedBytecodeHash": "0xd893f7ab256372c8c3ee3e1c971279cd0c17f30b2fd05096ad3721a1f8d0ae1a" + }, + { + "contractName": "l1-contracts/ChainAdminOwnable", + "zkBytecodeHash": "0x0100011f6f853936fd933e2e77f3f5a77313c18a1ec25b4895690b9eb631dc31", + "zkBytecodePath": "/l1-contracts/zkout/ChainAdminOwnable.sol/ChainAdminOwnable.json", + "evmBytecodeHash": "0x1fc562eec423ec1f46488b5a69bdf718209951d4dfbea2c669b40e6ac9958f66", + "evmBytecodePath": "/l1-contracts/out/ChainAdminOwnable.sol/ChainAdminOwnable.json", + "evmDeployedBytecodeHash": "0xf8214aadb0c5a9d71627c286fa0734865b350eeef1a6430daf1ab72a5a70dca5" + }, + { + "contractName": "l1-contracts/ChainTypeManager", + "zkBytecodeHash": "0x010006fbcc92f1ba5be84f23f2a293c842d9b171b9fc2000fc33716a8e2c6899", + "zkBytecodePath": "/l1-contracts/zkout/ChainTypeManager.sol/ChainTypeManager.json", + "evmBytecodeHash": "0xe8a9e78bffa01d93db7a5d7f543c925ce74cddbb032be2f144dee8d509266df1", + "evmBytecodePath": "/l1-contracts/out/ChainTypeManager.sol/ChainTypeManager.json", + "evmDeployedBytecodeHash": "0xe9fcfbb332d1c2abf7c94b3b7b29eaabb426fbdddbd8872347b73f445019d1b4" + }, + { + "contractName": "l1-contracts/ConstructorForwarder", + "zkBytecodeHash": "0x0100003b52038f69544becfcfb7a992c8be93dcdd3273b6def29e999ad6c7391", + "zkBytecodePath": "/l1-contracts/zkout/ConstructorForwarder.sol/ConstructorForwarder.json", + "evmBytecodeHash": "0xec4289d1649bf5cbbd782e34e74aa86318eef03ff63315e14805e20856ada6b5", + "evmBytecodePath": "/l1-contracts/out/ConstructorForwarder.sol/ConstructorForwarder.json", + "evmDeployedBytecodeHash": "0x6eb2656f3353f338961e8cb35963294836139355b4d32996b7589aa1d9d23984" + }, + { + "contractName": "l1-contracts/CountersUpgradeable", + "zkBytecodeHash": "0x01000007ee69d5fa09e425c9047b37c353a1f2b710d46f967670eabfb69452b6", + "zkBytecodePath": "/l1-contracts/zkout/CountersUpgradeable.sol/CountersUpgradeable.json", + "evmBytecodeHash": "0xe99e2dd68f44c0daf32c506122ca7f4220cedf3cbe7e9dd5e973ea2250097a08", + "evmBytecodePath": "/l1-contracts/out/CountersUpgradeable.sol/CountersUpgradeable.json", + "evmDeployedBytecodeHash": "0x6159a527cd48d24af5b1da36011a5a6284d119b415132255ea1b2471efec0806" + }, + { + "contractName": "l1-contracts/Create2", + "zkBytecodeHash": "0x0100000798952b05a9a0473ba9a0195f57694a7ad849ddb29ba58b299dc0d58e", + "zkBytecodePath": "/l1-contracts/zkout/Create2.sol/Create2.json", + "evmBytecodeHash": "0x7724a0862064b8bd1dcfa16005ddd2e1a6f19330cfb2c029264b494e5986319c", + "evmBytecodePath": "/l1-contracts/out/Create2.sol/Create2.json", + "evmDeployedBytecodeHash": "0x5cfaef9a27bc1536306338450135aeb804cbcaf5a23379e6cea16817c7b79e41" + }, + { + "contractName": "l1-contracts/DataEncoding", + "zkBytecodeHash": "0x010000077bb2d0088392258f82652b4888d1af0ed22beefd3f2b87c79c812651", + "zkBytecodePath": "/l1-contracts/zkout/DataEncoding.sol/DataEncoding.json", + "evmBytecodeHash": "0xf0cc33e2837e385a2f22c6d515824e924ade1f5fb1b4d70bfa3e54ae24536b23", + "evmBytecodePath": "/l1-contracts/out/DataEncoding.sol/DataEncoding.json", + "evmDeployedBytecodeHash": "0x96a5e6358e8a7a4c0be9ed831ed81237117e4c621d750448a59e5f71e6886ec3" + }, + { + "contractName": "l1-contracts/DefaultUpgrade", + "zkBytecodeHash": "0x010002b510f1970aa3b276dfd2e37016a58bc67ada4d3a6d8f0f605437f5bd09", + "zkBytecodePath": "/l1-contracts/zkout/DefaultUpgrade.sol/DefaultUpgrade.json", + "evmBytecodeHash": "0x46704d26615d4516b1861cdef151d4ec936a3c4561fb9c334c6014c4e9e2938e", + "evmBytecodePath": "/l1-contracts/out/DefaultUpgrade.sol/DefaultUpgrade.json", + "evmDeployedBytecodeHash": "0x22ea42ef3cfb17d63e209510a901ea48ca692a4c5eb94c599775fddae887030f" + }, + { + "contractName": "l1-contracts/Diamond", + "zkBytecodeHash": "0x01000007ca600bb37a15581db2e794b8cc0c17fb1e9a505912e8a1826e676b86", + "zkBytecodePath": "/l1-contracts/zkout/Diamond.sol/Diamond.json", + "evmBytecodeHash": "0x3418f54dd217d3ebacc52da842052a4a8e94c7e1c7e413335c0115231dba17d5", + "evmBytecodePath": "/l1-contracts/out/Diamond.sol/Diamond.json", + "evmDeployedBytecodeHash": "0x18b2f41a1294571745d56afea996f6cd4427176284bcf5938fae5a6789bb60ee" + }, + { + "contractName": "l1-contracts/DiamondCutTestContract", + "zkBytecodeHash": "0x010003995e36a1a751cd0393ba31f860883c7e92909d4e7c5db9a32df7f4519d", + "zkBytecodePath": "/l1-contracts/zkout/DiamondCutTestContract.sol/DiamondCutTestContract.json", + "evmBytecodeHash": "0xe1a53f64c8079883e6e4819007ccae74868ff3c7ea15ad6de3a01b64e27f75a7", + "evmBytecodePath": "/l1-contracts/out/DiamondCutTestContract.sol/DiamondCutTestContract.json", + "evmDeployedBytecodeHash": "0x698c65092b1da5e2dea240a353fed249810ca6b52046da3d0da39a386d0b48a9" + }, + { + "contractName": "l1-contracts/DiamondInit", + "zkBytecodeHash": "0x01000069b3a125a061301a558c767d680d23cf43c8f261f83fad562aa99403c8", + "zkBytecodePath": "/l1-contracts/zkout/DiamondInit.sol/DiamondInit.json", + "evmBytecodeHash": "0xdf2ee808c9bc792be66ada306da6bdb0990d01f0dc5159a6f03b4062b0cb349d", + "evmBytecodePath": "/l1-contracts/out/DiamondInit.sol/DiamondInit.json", + "evmDeployedBytecodeHash": "0x26ef9bf090b0a9c093515c440d0e07dbf217742de613a4eecfd9aa36a42bf66a" + }, + { + "contractName": "l1-contracts/DiamondProxy", + "zkBytecodeHash": "0x0100023d5db21eb9899079d095719e2830b89f7f17e9f3194ab750d2756b2184", + "zkBytecodePath": "/l1-contracts/zkout/DiamondProxy.sol/DiamondProxy.json", + "evmBytecodeHash": "0x0522293c0783cb4851264b7057fcf4949702ad8486b66f40df4a8bc5e6cdeab9", + "evmBytecodePath": "/l1-contracts/out/DiamondProxy.sol/DiamondProxy.json", + "evmDeployedBytecodeHash": "0x4cff9f4e1c64eebe6d4b931d1238f18e7f3ec0ef68bcbb00ceae976929477a3d" + }, + { + "contractName": "l1-contracts/DummyAdminFacet", + "zkBytecodeHash": "0x0100001f5bf57e853010412e19ee9ed3ce99dc0668f4f90786cd3035e7551afa", + "zkBytecodePath": "/l1-contracts/zkout/DummyAdminFacet.sol/DummyAdminFacet.json", + "evmBytecodeHash": "0x7c0aa69a2637aa2ec3125be56e71ab14bb902198e824e9e28f4f817d3e18a4dc", + "evmBytecodePath": "/l1-contracts/out/DummyAdminFacet.sol/DummyAdminFacet.json", + "evmDeployedBytecodeHash": "0x48805a1487db0192ed5c6f1a647dc5f2da820002a5f61e51fe08f88d44c6bc08" + }, + { + "contractName": "l1-contracts/DummyAdminFacetNoOverlap", + "zkBytecodeHash": "0x0100020d1c6a8be0560f7aa0ee7b76570bacd6bfde9cf458e9ec46ae670a4ecb", + "zkBytecodePath": "/l1-contracts/zkout/DummyAdminFacetNoOverlap.sol/DummyAdminFacetNoOverlap.json", + "evmBytecodeHash": "0xa889207712885709b31675012c8e795f42d8c509808c5acc949d83f7ab19ed8a", + "evmBytecodePath": "/l1-contracts/out/DummyAdminFacetNoOverlap.sol/DummyAdminFacetNoOverlap.json", + "evmDeployedBytecodeHash": "0x823e9efdad34c764028a5c9c8c4a445913eac81a6b4e6a63c84611be85a985a1" + }, + { + "contractName": "l1-contracts/DummyBridgehub", + "zkBytecodeHash": "0x010000431ff55b6da9a25b5a1d70f306c838f5d65264dba20dab33e9a45627f8", + "zkBytecodePath": "/l1-contracts/zkout/DummyBridgehub.sol/DummyBridgehub.json", + "evmBytecodeHash": "0xd4dda0c85f25ab61364abbac2595823277ba245602c883193a8d00959d81f1eb", + "evmBytecodePath": "/l1-contracts/out/DummyBridgehub.sol/DummyBridgehub.json", + "evmDeployedBytecodeHash": "0x97320bc09cfe89e76e2131347bfb6e307e7b6d52a36a24deec663743ecada37d" + }, + { + "contractName": "l1-contracts/DummyBridgehubSetter", + "zkBytecodeHash": "0x010009b989722b740273961934dd9164f4209859d65df14b661e9f075486179c", + "zkBytecodePath": "/l1-contracts/zkout/DummyBridgehubSetter.sol/DummyBridgehubSetter.json", + "evmBytecodeHash": "0xc58387119f0a2f5192669d1b9ff5f1d434da3cc8741a566130529f0dca561053", + "evmBytecodePath": "/l1-contracts/out/DummyBridgehubSetter.sol/DummyBridgehubSetter.json", + "evmDeployedBytecodeHash": "0xbe6e09fdc235e081a67b0cc7d1b519af93cd4e4734ea683f2b33454a4244d056" + }, + { + "contractName": "l1-contracts/DummyChainTypeManager", + "zkBytecodeHash": "0x010006f5a52b24423b73c19ea4e9e26f7ae83a2f7187660623578d58c19f9505", + "zkBytecodePath": "/l1-contracts/zkout/DummyChainTypeManager.sol/DummyChainTypeManager.json", + "evmBytecodeHash": "0x00dade6f9481e02a3620ab84a386adf53ed189d86bbe44c5d414fcd787ff795b", + "evmBytecodePath": "/l1-contracts/out/DummyChainTypeManager.sol/DummyChainTypeManager.json", + "evmDeployedBytecodeHash": "0x50bb504167e44cc296c75b80ab431883d937fcdf6e35636eb2c2961c24cf0a88" + }, + { + "contractName": "l1-contracts/DummyChainTypeManagerForValidatorTimelock", + "zkBytecodeHash": "0x0100002d458f5b9656c66ae33ecdbf5bafe9d36812819f30e2a162dd973caab5", + "zkBytecodePath": "/l1-contracts/zkout/DummyChainTypeManagerForValidatorTimelock.sol/DummyChainTypeManagerForValidatorTimelock.json", + "evmBytecodeHash": "0x39b9bb483c10f47eba78b273a14ae2789d5eb7bc1e945609fc6676213c8bff83", + "evmBytecodePath": "/l1-contracts/out/DummyChainTypeManagerForValidatorTimelock.sol/DummyChainTypeManagerForValidatorTimelock.json", + "evmDeployedBytecodeHash": "0x55b1a17fb1b0ed28e8ec269dcf5051cf5d52b68453b3358b91d24f5a49fe6759" + }, + { + "contractName": "l1-contracts/DummyChainTypeManagerWBH", + "zkBytecodeHash": "0x010007019d4cdddf528b717e421bd32116abe5dceffd888617f02c5d4d192d7b", + "zkBytecodePath": "/l1-contracts/zkout/DummyChainTypeManagerWithBridgeHubAddress.sol/DummyChainTypeManagerWBH.json", + "evmBytecodeHash": "0xa4cf66d1375082e7338ed80d97540d4c68c7e3fcfe9aeb0637528c13934130f9", + "evmBytecodePath": "/l1-contracts/out/DummyChainTypeManagerWithBridgeHubAddress.sol/DummyChainTypeManagerWBH.json", + "evmDeployedBytecodeHash": "0xea32d3370585fe45ce19f8e98e66f666cc4b330cf5e300fe002e98d4662559bf" + }, + { + "contractName": "l1-contracts/DummyERC20BytesTransferReturnValue", + "zkBytecodeHash": "0x0100005f94dd144f68e30641f94675bbafd2678942bc66fe127508200b8cd177", + "zkBytecodePath": "/l1-contracts/zkout/DummyERC20BytesTransferReturnValue.sol/DummyERC20BytesTransferReturnValue.json", + "evmBytecodeHash": "0x0520a6567f683b15405ce087c86f8e6020c1304f41e8455a09e669414dc793cc", + "evmBytecodePath": "/l1-contracts/out/DummyERC20BytesTransferReturnValue.sol/DummyERC20BytesTransferReturnValue.json", + "evmDeployedBytecodeHash": "0xe4b964709f0adf01e24853dc4b2c805e7a4efe95c2e92ffd4f55b343016199b6" + }, + { + "contractName": "l1-contracts/DummyERC20NoTransferReturnValue", + "zkBytecodeHash": "0x0100000fa0c90706b1af1803648c1035add8b3920213b12060dc05f61956be35", + "zkBytecodePath": "/l1-contracts/zkout/DummyERC20NoTransferReturnValue.sol/DummyERC20NoTransferReturnValue.json", + "evmBytecodeHash": "0xc59b29fac7de84f6fac10d74a860ebb8069c9a3d5fc22d02ce067577a53e32f4", + "evmBytecodePath": "/l1-contracts/out/DummyERC20NoTransferReturnValue.sol/DummyERC20NoTransferReturnValue.json", + "evmDeployedBytecodeHash": "0x31d2f18d5869f04bb5f03cd00bd0f6dc599296c6364e2dafa4eb938b2d1438be" + }, + { + "contractName": "l1-contracts/DummyEraBaseTokenBridge", + "zkBytecodeHash": "0x01000011dce37bba8de1dbe5ea44f9619f2248473cee7a46ecb25d94ad2769f2", + "zkBytecodePath": "/l1-contracts/zkout/DummyEraBaseTokenBridge.sol/DummyEraBaseTokenBridge.json", + "evmBytecodeHash": "0x59ab0775309ff7b286c1e92aa8f4afdac291123e0f775ab85d4ae91ce9aeaf2a", + "evmBytecodePath": "/l1-contracts/out/DummyEraBaseTokenBridge.sol/DummyEraBaseTokenBridge.json", + "evmDeployedBytecodeHash": "0xbb3e25f2dd3b8ce740e37195fdb014b1cd1cd48414cef9bffd1bfcd9b3b29856" + }, + { + "contractName": "l1-contracts/DummyL1ERC20Bridge", + "zkBytecodeHash": "0x01000317c5dae53d39a16611350b4f4509610fb4106da4428d203565f9803742", + "zkBytecodePath": "/l1-contracts/zkout/DummyL1ERC20Bridge.sol/DummyL1ERC20Bridge.json", + "evmBytecodeHash": "0x4cd9055fa70baa0d5aa19b1b17b0b1e6489ff0477fabbe532cae47c158f14016", + "evmBytecodePath": "/l1-contracts/out/DummyL1ERC20Bridge.sol/DummyL1ERC20Bridge.json", + "evmDeployedBytecodeHash": "0x7d6f87b8ef127371c559c5e53a8a8cf079710ad7b4d4e49105c8ddba48989a4e" + }, + { + "contractName": "l1-contracts/DummyRestriction", + "zkBytecodeHash": "0x0100002d334cd6232267ab7a9e8f686cf2e1f356541ae32e9e2fe523f572a3c5", + "zkBytecodePath": "/l1-contracts/zkout/DummyRestriction.sol/DummyRestriction.json", + "evmBytecodeHash": "0xd00cc9ab0a191acdfa1201db99e02ff6ca6b029df5dbf0d0bb4a49f4a91cd64f", + "evmBytecodePath": "/l1-contracts/out/DummyRestriction.sol/DummyRestriction.json", + "evmDeployedBytecodeHash": "0xa3449e807d22d9a272ee1d741fde30232bd2b89d01c7446ef7acae9aa2058ab1" + }, + { + "contractName": "l1-contracts/DummySharedBridge", + "zkBytecodeHash": "0x010001f1d441baaee69b48ac66cc421224b6e52f9160c02a128629d2c812a598", + "zkBytecodePath": "/l1-contracts/zkout/DummySharedBridge.sol/DummySharedBridge.json", + "evmBytecodeHash": "0xbf7eac295c716e41a511169f9fe0a9ab587e2749a67bc48034641a0c234742f4", + "evmBytecodePath": "/l1-contracts/out/DummySharedBridge.sol/DummySharedBridge.json", + "evmDeployedBytecodeHash": "0xc6db2a5bde8fc1419fa860e7a0074ae921c590056160355fafdd09b942964d47" + }, + { + "contractName": "l1-contracts/TransactionFiltererFalse", + "zkBytecodeHash": "0x010000299b6640e6bd483a63f63573b7cf7a6f6788a8db9e664b3c980aadf179", + "zkBytecodePath": "/l1-contracts/zkout/DummyTransactionFiltererFalse.sol/TransactionFiltererFalse.json", + "evmBytecodeHash": "0xf21453cd3344849470fc042a65db9b32fc7cb41b01a5334687871c22bdc78787", + "evmBytecodePath": "/l1-contracts/out/DummyTransactionFiltererFalse.sol/TransactionFiltererFalse.json", + "evmDeployedBytecodeHash": "0x6212f89d984650a9ea2ebb381220571991c115ac1cfd75b56fec42db65f9fade" + }, + { + "contractName": "l1-contracts/TransactionFiltererTrue", + "zkBytecodeHash": "0x01000029547d70865e1ede01f02e16752ff57b85b868c7a9d4bc60d5f4484b04", + "zkBytecodePath": "/l1-contracts/zkout/DummyTransactionFiltererTrue.sol/TransactionFiltererTrue.json", + "evmBytecodeHash": "0x3aaea0df3100f53238fbcfde226899cb343719ec877e72dd8f9e7e392e049b35", + "evmBytecodePath": "/l1-contracts/out/DummyTransactionFiltererTrue.sol/TransactionFiltererTrue.json", + "evmDeployedBytecodeHash": "0xe93b7b93e1fa6672aa469e64c076ac9381e7b4541c132b205be1aeea1e0e497d" + }, + { + "contractName": "l1-contracts/DummyZKChain", + "zkBytecodeHash": "0x0100060b5fd1b9c59ecde257104fb4d46efb4f9d311fe0add6ee199f16550795", + "zkBytecodePath": "/l1-contracts/zkout/DummyZKChain.sol/DummyZKChain.json", + "evmBytecodeHash": "0x3c6d8d030b250b063b3def55b993a55dd3e980556140b4b3b0f09e18298d7e08", + "evmBytecodePath": "/l1-contracts/out/DummyZKChain.sol/DummyZKChain.json", + "evmDeployedBytecodeHash": "0x108a5ac2037d484b3735c4252ecad536b9feff3be5e73b5c61f4c19105291f21" + }, + { + "contractName": "l1-contracts/DynamicIncrementalMerkle", + "zkBytecodeHash": "0x01000007b8876ed7f6b3e3884701fba732e7ea6ff60ed17b15b776d61fbf35e7", + "zkBytecodePath": "/l1-contracts/zkout/DynamicIncrementalMerkle.sol/DynamicIncrementalMerkle.json", + "evmBytecodeHash": "0xd8923ce6f2f045033fa76ba96be86f9657e507ed55614cb449ef9bad6e566949", + "evmBytecodePath": "/l1-contracts/out/DynamicIncrementalMerkle.sol/DynamicIncrementalMerkle.json", + "evmDeployedBytecodeHash": "0x268c1d6b461f9674b0d74fbd1119f29f11aec40ea12893f0c9d73c2990ad686d" + }, + { + "contractName": "l1-contracts/ECDSAUpgradeable", + "zkBytecodeHash": "0x010000078b89d62cf9031e877f2c28696a1fba17817e0828e4ed65eab27e5831", + "zkBytecodePath": "/l1-contracts/zkout/ECDSAUpgradeable.sol/ECDSAUpgradeable.json", + "evmBytecodeHash": "0x485b5fd6046a57f6df69bb21e908ec512954ad2fd9b41caf5ddf36a68f1f92fb", + "evmBytecodePath": "/l1-contracts/out/ECDSAUpgradeable.sol/ECDSAUpgradeable.json", + "evmDeployedBytecodeHash": "0x1763d089d18996f82ea1e27ebea0a617bc6ccff8a976e09d72f1344a0236f385" + }, + { + "contractName": "l1-contracts/ERC1967Proxy", + "zkBytecodeHash": "0x01000097ac426599c87e2a3336a4eaf660d26b97b775f49eefc899bf473a938f", + "zkBytecodePath": "/l1-contracts/zkout/ERC1967Proxy.sol/ERC1967Proxy.json", + "evmBytecodeHash": "0x77a273342544b305ecc23b3de5a6251197c14e6b89030a98a3561578767c262a", + "evmBytecodePath": "/l1-contracts/out/ERC1967Proxy.sol/ERC1967Proxy.json", + "evmDeployedBytecodeHash": "0xd56f21d152647b9f4a5e8a02b1bedaa395a37d34247e4f111e58157e03e26d91" + }, + { + "contractName": "l1-contracts/ERC20", + "zkBytecodeHash": "0x0100013b2c09282009069a7143b16f3951683414040181ee65fab2929f43db8a", + "zkBytecodePath": "/l1-contracts/zkout/ERC20.sol/ERC20.json", + "evmBytecodeHash": "0x95885bd0207a6ec27fc9c838d172677eafa373ebdd4b99d2aadd5bf56c48e88a", + "evmBytecodePath": "/l1-contracts/out/ERC20.sol/ERC20.json", + "evmDeployedBytecodeHash": "0x7fe469c82b7efb0120f5c94b950e86e0525e4738405b961d638cfc122d12ea0a" + }, + { + "contractName": "l1-contracts/ERC20Upgradeable", + "zkBytecodeHash": "0x010000dbb7b6eeed0b316243483e7c3b44ee8d386c408c069395ca261423d2d9", + "zkBytecodePath": "/l1-contracts/zkout/ERC20Upgradeable.sol/ERC20Upgradeable.json", + "evmBytecodeHash": "0x4f27db576eeb6c45d3555e33656dbb8266d5aa56248742deab2d60be8c063b65", + "evmBytecodePath": "/l1-contracts/out/ERC20Upgradeable.sol/ERC20Upgradeable.json", + "evmDeployedBytecodeHash": "0xfb294d726bd169c43eb7e17d6d8695f2457f8a4e17b299fe503864f853915cde" + }, + { + "contractName": "l1-contracts/EnumerableMap", + "zkBytecodeHash": "0x01000007bbcf31687981167591ead878189401f6cd38cfe7bcd0963835624749", + "zkBytecodePath": "/l1-contracts/zkout/EnumerableMap.sol/EnumerableMap.json", + "evmBytecodeHash": "0x23f48ec9f76c9827d7fbdf43e2facafb8c5955dee002e8a6b67824923b4345cc", + "evmBytecodePath": "/l1-contracts/out/EnumerableMap.sol/EnumerableMap.json", + "evmDeployedBytecodeHash": "0xa729df916bdb165f5baa53f4fdb44c15bc2724336f89a482aa3ef09dfb4ca286" + }, + { + "contractName": "l1-contracts/EnumerableSet", + "zkBytecodeHash": "0x010000077656cc05484288981025e1363241e79e9f04fce001a9e444bf5bf363", + "zkBytecodePath": "/l1-contracts/zkout/EnumerableSet.sol/EnumerableSet.json", + "evmBytecodeHash": "0x34fd4cee50fc9af6e99ae3a4e2cefbac1446aec5994d9dcb81d624a54da5c070", + "evmBytecodePath": "/l1-contracts/out/EnumerableSet.sol/EnumerableSet.json", + "evmDeployedBytecodeHash": "0xf989c00c293dd2b5a2ff403c10a3540497d587d800cc9a8ac66a1d02f4da2dc9" + }, + { + "contractName": "l1-contracts/EventOnFallback", + "zkBytecodeHash": "0x0100001d427010d21467eef0e19499637a72d1cf8c6e082c38d9c2ba3a8aa665", + "zkBytecodePath": "/l1-contracts/zkout/EventOnFallback.sol/EventOnFallback.json", + "evmBytecodeHash": "0x37736d3d6f52b0d5f1e7d20e17ee4afd27d29299aa129e5e18691704d9f0c485", + "evmBytecodePath": "/l1-contracts/out/EventOnFallback.sol/EventOnFallback.json", + "evmDeployedBytecodeHash": "0x75bf8ae10a8ed53cc02783f4123b9240b5913a3bdf622ee7480f1b048cb46ac0" + }, + { + "contractName": "l1-contracts/ExecutorFacet", + "zkBytecodeHash": "0x010005cf0bcfaed57ad143162fa69e37f3d90e9f1311103d5c0f94bcbf9ec6e6", + "zkBytecodePath": "/l1-contracts/zkout/Executor.sol/ExecutorFacet.json", + "evmBytecodeHash": "0xd89f572b48aaabc4494909cb4ab1f7600d9ad1eecec85346246640aeeb8eda57", + "evmBytecodePath": "/l1-contracts/out/Executor.sol/ExecutorFacet.json", + "evmDeployedBytecodeHash": "0xfc19c6afcf2a1534b46f8a0829ed65e7a0102086d36d7d5be016c6e9b8098e09" + }, + { + "contractName": "l1-contracts/FeeOnTransferToken", + "zkBytecodeHash": "0x0100016744bfb92f99b269371d14e460104c62ded5234ebd2503d089d94c8fb0", + "zkBytecodePath": "/l1-contracts/zkout/FeeOnTransferToken.sol/FeeOnTransferToken.json", + "evmBytecodeHash": "0x7c20ebdb40adbae27db96eefe407c1912b45f62155eb7b2f7d1f800281f083a4", + "evmBytecodePath": "/l1-contracts/out/FeeOnTransferToken.sol/FeeOnTransferToken.json", + "evmDeployedBytecodeHash": "0x9c71e0219f251421b9779f0c629f39b8e31e93661d1d600776c49530088ce466" + }, + { + "contractName": "l1-contracts/Forwarder", + "zkBytecodeHash": "0x0100003dac92fbe4b6d49149e8bab3ed2c8dcba075b632491e217035e372137d", + "zkBytecodePath": "/l1-contracts/zkout/Forwarder.sol/Forwarder.json", + "evmBytecodeHash": "0x4d14db8c8d0d1e7b0cf72f7832e1491d17a1b2bb72622e587dca44aa82fbaea6", + "evmBytecodePath": "/l1-contracts/out/Forwarder.sol/Forwarder.json", + "evmDeployedBytecodeHash": "0x365e18a9c2ff36664933fbeabb22be42845ef0a1156c7b49e2bf7f11ba0a5845" + }, + { + "contractName": "l1-contracts/FullMerkle", + "zkBytecodeHash": "0x010000071cfa3e00e3d01d727b05714888fa2b5d39237b0b5103114f3f44bf89", + "zkBytecodePath": "/l1-contracts/zkout/FullMerkle.sol/FullMerkle.json", + "evmBytecodeHash": "0x9dc43efe83393bbb98d0aa4e418c68fee5b1221becf9ebd80f774c2c9a0426c3", + "evmBytecodePath": "/l1-contracts/out/FullMerkle.sol/FullMerkle.json", + "evmDeployedBytecodeHash": "0x31d12419601a31bbdb83a23c34a6210799bd9f5e380834ad8cb7af908fb2686e" + }, + { + "contractName": "l1-contracts/GatewayCTMDeployer", + "zkBytecodeHash": "0x0100030dbb5699b1b38ed6aa4222a469e303ec719c74083acfe7c76fd3d20512", + "zkBytecodePath": "/l1-contracts/zkout/GatewayCTMDeployer.sol/GatewayCTMDeployer.json", + "evmBytecodeHash": "0x665b888198110fd5b20c4dcb1c82d2d10ab9698f70e2456d08d848bc78372bf6", + "evmBytecodePath": "/l1-contracts/out/GatewayCTMDeployer.sol/GatewayCTMDeployer.json", + "evmDeployedBytecodeHash": "0x7d5fc2dc313cae3d18aac4f04405c9f11a335307dbe63312674a63382f111cd7" + }, + { + "contractName": "l1-contracts/GatewayTransactionFilterer", + "zkBytecodeHash": "0x0100013f8ee5738256938226d92441de73d614b0dafaa8961dd7603779ea73c1", + "zkBytecodePath": "/l1-contracts/zkout/GatewayTransactionFilterer.sol/GatewayTransactionFilterer.json", + "evmBytecodeHash": "0xf12dafdcec41e7378a700757d934baa91c4adea5c392977033d1544b1115402d", + "evmBytecodePath": "/l1-contracts/out/GatewayTransactionFilterer.sol/GatewayTransactionFilterer.json", + "evmDeployedBytecodeHash": "0xa3fcc48fd1b3f3014f80d87043e272adbd877247530dac3bca3cb1ed2d666892" + }, + { + "contractName": "l1-contracts/GatewayUpgrade", + "zkBytecodeHash": "0x01000579c35f1c66be09e0631cf0d8df4363806dc37cc6493bf4ccf42e7e30e1", + "zkBytecodePath": "/l1-contracts/zkout/GatewayUpgrade.sol/GatewayUpgrade.json", + "evmBytecodeHash": "0x3edd0c66a7a7589e672897868b478f163dad24a7fa9ff6cb3321d346240c2c11", + "evmBytecodePath": "/l1-contracts/out/GatewayUpgrade.sol/GatewayUpgrade.json", + "evmDeployedBytecodeHash": "0x99fa885d7a4a26d975e2c40785bf933d65732353d382d12f2ba82e61e1f50564" + }, + { + "contractName": "l1-contracts/GettersFacet", + "zkBytecodeHash": "0x010001b3fa309d52151fdf5d654f3982139327431e28e059833e89a3779261b8", + "zkBytecodePath": "/l1-contracts/zkout/Getters.sol/GettersFacet.json", + "evmBytecodeHash": "0x16b078eeb2549ae942ff3b5ea17cc638223581502b249024b7beeedca2b54055", + "evmBytecodePath": "/l1-contracts/out/Getters.sol/GettersFacet.json", + "evmDeployedBytecodeHash": "0x8c8025393f508a2fc3efe7a91b5c8d0f45949059483ff1a797ed7ff7462f65d2" + }, + { + "contractName": "l1-contracts/Governance", + "zkBytecodeHash": "0x01000305427df95a0666db4704d24bf320617c1e93a61f2e093e2ae603a85b4a", + "zkBytecodePath": "/l1-contracts/zkout/Governance.sol/Governance.json", + "evmBytecodeHash": "0xcc960e0530fd3afc53fefec013242a1dcf9dcc07e5494ea2f95a3891d77a8f9f", + "evmBytecodePath": "/l1-contracts/out/Governance.sol/Governance.json", + "evmDeployedBytecodeHash": "0x7792f1ae105d4b7c32d39065a79fc64fe6ccd31406806c9bc79661c8e74f68dd" + }, + { + "contractName": "l1-contracts/GovernanceUpgradeTimer", + "zkBytecodeHash": "0x010000c397f5b7c4b43da34577d8c97324fa1798e1dbad9117c95fd7e2af46af", + "zkBytecodePath": "/l1-contracts/zkout/GovernanceUpgradeTimer.sol/GovernanceUpgradeTimer.json", + "evmBytecodeHash": "0x67cb4c10bdfee122b0ea694cc3db3794fa366c058873ed453ab4f7548954b22d", + "evmBytecodePath": "/l1-contracts/out/GovernanceUpgradeTimer.sol/GovernanceUpgradeTimer.json", + "evmDeployedBytecodeHash": "0x6505e09615455903e28d045dccdd5842ca7f725ce36d62f61f1710af923423c2" + }, + { + "contractName": "l1-contracts/L1AssetRouter", + "zkBytecodeHash": "0x01000841a456264b855b5657777844e825b7b18308f470c7b9917b7d44e18185", + "zkBytecodePath": "/l1-contracts/zkout/L1AssetRouter.sol/L1AssetRouter.json", + "evmBytecodeHash": "0xbd0300279708435a711659fa3b84d712d395d2c0d57a77b28b0a3425e9b62661", + "evmBytecodePath": "/l1-contracts/out/L1AssetRouter.sol/L1AssetRouter.json", + "evmDeployedBytecodeHash": "0x369d59bda61031a80bbfdb0921bee795b6540ce8fbf20e8cccdc807192f80650" + }, + { + "contractName": "l1-contracts/L1ERC20Bridge", + "zkBytecodeHash": "0x0100030dba289546466304fec433f0df579b47801d15b7024a6e64543fc4f90a", + "zkBytecodePath": "/l1-contracts/zkout/L1ERC20Bridge.sol/L1ERC20Bridge.json", + "evmBytecodeHash": "0xc5254a4e407fc9a45b53631b81dc87051523d0915a71857fe9cbbe0787211f84", + "evmBytecodePath": "/l1-contracts/out/L1ERC20Bridge.sol/L1ERC20Bridge.json", + "evmDeployedBytecodeHash": "0x20fec029e19b980293e458c289f1ba9c86f49d7452f2affd5b5a8f0c1a5dfe16" + }, + { + "contractName": "l1-contracts/L1GenesisUpgrade", + "zkBytecodeHash": "0x01000677d7ef0e4acfb18b0ba27631ee14b4dc1944df6ea80fcb643ee9eb93e5", + "zkBytecodePath": "/l1-contracts/zkout/L1GenesisUpgrade.sol/L1GenesisUpgrade.json", + "evmBytecodeHash": "0x358882c7a2a08ed8f49bed838be4f8b422aff4ddb8ee86898f6d9566358fb668", + "evmBytecodePath": "/l1-contracts/out/L1GenesisUpgrade.sol/L1GenesisUpgrade.json", + "evmDeployedBytecodeHash": "0x67a0e7432c8aa8dcb820dc298d756363904aac944b13eea945ab3f6ee740411d" + }, + { + "contractName": "l1-contracts/L1NativeTokenVault", + "zkBytecodeHash": "0x010008e544b9c10bcab94701ebaa8a1d5de071a74466acff4fb97e159c01004d", + "zkBytecodePath": "/l1-contracts/zkout/L1NativeTokenVault.sol/L1NativeTokenVault.json", + "evmBytecodeHash": "0xf7062da19f0995aecd070cd191cbc7cb37182fedf142877922fbcb4cfbc92b44", + "evmBytecodePath": "/l1-contracts/out/L1NativeTokenVault.sol/L1NativeTokenVault.json", + "evmDeployedBytecodeHash": "0x940ff770725d3bcdfc18998067f0c834b2cda892e02ec87763ad4f30bc700f75" + }, + { + "contractName": "l1-contracts/L1Nullifier", + "zkBytecodeHash": "0x010005c5bc10a16f1653966b6dbf6364a5e2b0ea3fee3aaeb21f9552b01c5886", + "zkBytecodePath": "/l1-contracts/zkout/L1Nullifier.sol/L1Nullifier.json", + "evmBytecodeHash": "0x140c30b76499207aae68933e311d413dc7bbb7113df8c192ac9273e7e5d8747f", + "evmBytecodePath": "/l1-contracts/out/L1Nullifier.sol/L1Nullifier.json", + "evmDeployedBytecodeHash": "0x66aaeb3cf80c838f315ae21ddadb7b39122e4c1225d6a2a220fbe9a112887e11" + }, + { + "contractName": "l1-contracts/L1NullifierDev", + "zkBytecodeHash": "0x010005cdd5cc9b4d843d72211c328c92105b38446aeb199592bb1079c0d6b173", + "zkBytecodePath": "/l1-contracts/zkout/L1NullifierDev.sol/L1NullifierDev.json", + "evmBytecodeHash": "0x05e1dd83ae25c9a1928b40fae2266c4f962b8a8f379b33da535ecb1f8e7c1d98", + "evmBytecodePath": "/l1-contracts/out/L1NullifierDev.sol/L1NullifierDev.json", + "evmDeployedBytecodeHash": "0x4c7b7d9cedddcf6fd96e02acce881f320a97b7b2c4596c7f5e36ebbaad5506d7" + }, + { + "contractName": "l1-contracts/L2AdminFactory", + "zkBytecodeHash": "0x010000c98fcfa2411fe96af89b000b8ba5e24b7e41b1c7768425d68637406c5d", + "zkBytecodePath": "/l1-contracts/zkout/L2AdminFactory.sol/L2AdminFactory.json", + "evmBytecodeHash": "0x974081ff9b346d3f0e2f4f3c4f86998cd3990c28412a7f8ee2607f4683fed8ff", + "evmBytecodePath": "/l1-contracts/out/L2AdminFactory.sol/L2AdminFactory.json", + "evmDeployedBytecodeHash": "0x97f9c9c3e68295fcc84305db6f6d1fc905f2ce57399ded24d048e0b6d4f0b1db" + }, + { + "contractName": "l1-contracts/L2AssetRouter", + "zkBytecodeHash": "0x010004cf5162b05c197a1b458009d81d6cab1a7caaf49d33ca04a04310365939", + "zkBytecodePath": "/l1-contracts/zkout/L2AssetRouter.sol/L2AssetRouter.json", + "evmBytecodeHash": "0x5fdffde5f14b869b79b0d3c9738c86e6e90d8496172afe06544b9405230fbf02", + "evmBytecodePath": "/l1-contracts/out/L2AssetRouter.sol/L2AssetRouter.json", + "evmDeployedBytecodeHash": "0x2e24aba91849e5b4b11c9f50b84c53c0e780674f02cf50c54ef8be782c9a4008" + }, + { + "contractName": "l1-contracts/L2ContractHelper", + "zkBytecodeHash": "0x010000077459e5557d2a5cdb2c5644a2dd68d6cfe1cd151a4311ef8e2da068cb", + "zkBytecodePath": "/l1-contracts/zkout/L2ContractHelper.sol/L2ContractHelper.json", + "evmBytecodeHash": "0xb2bf5ff992db29f0163128f7fad30eb85d3d9b0d420b9bb10d4dfa5184adac52", + "evmBytecodePath": "/l1-contracts/out/L2ContractHelper.sol/L2ContractHelper.json", + "evmDeployedBytecodeHash": "0x5c46e7d1e602564778e8087484f734244e0b6f30f0be6f2681b4fe345eb4f641" + }, + { + "contractName": "l1-contracts/L2NativeTokenVault", + "zkBytecodeHash": "0x010007e7ced2a9266888fe0d939315421da2089501dbbdcbf9200cf5996feeb7", + "zkBytecodePath": "/l1-contracts/zkout/L2NativeTokenVault.sol/L2NativeTokenVault.json", + "evmBytecodeHash": "0xc7cce85c86cbc199003f9d2bc4032808188b9eb5de6acf2df9cd97c2489e6a6c", + "evmBytecodePath": "/l1-contracts/out/L2NativeTokenVault.sol/L2NativeTokenVault.json", + "evmDeployedBytecodeHash": "0xc44804e31be66974746d70760445f07e5bcf53c6eade1bbc8c17da63d31756a1" + }, + { + "contractName": "l1-contracts/L2NativeTokenVaultDev", + "zkBytecodeHash": "0x0100065f5fff7d893a11eb285d46685623a615f0d939432f7cdb18a50a6af99a", + "zkBytecodePath": "/l1-contracts/zkout/L2NativeTokenVaultDev.sol/L2NativeTokenVaultDev.json", + "evmBytecodeHash": "0x2ccca12beef505170c53bb0d5a7c327b6c117d8b8d9561eb7e474f1f4cb99ed9", + "evmBytecodePath": "/l1-contracts/out/L2NativeTokenVaultDev.sol/L2NativeTokenVaultDev.json", + "evmDeployedBytecodeHash": "0xaaa1405cb5c1854c7ffae42b372337549b11114c669e844a559aaf704731ccae" + }, + { + "contractName": "l1-contracts/L2ProxyAdminDeployer", + "zkBytecodeHash": "0x0100005b2ea81d5cddf26a5c94eb4549677380cbeee3ac822cc68aebcf7b9def", + "zkBytecodePath": "/l1-contracts/zkout/L2ProxyAdminDeployer.sol/L2ProxyAdminDeployer.json", + "evmBytecodeHash": "0xac33d2f082719cdc27ac2a04e603de37b77e36343ec8d122bff2cee1dbdf65f3", + "evmBytecodePath": "/l1-contracts/out/L2ProxyAdminDeployer.sol/L2ProxyAdminDeployer.json", + "evmDeployedBytecodeHash": "0x027792183cf1b771fcfec40d125a0f0f423f81c639935f7e22500ebd5652f951" + }, + { + "contractName": "l1-contracts/L2SharedBridgeLegacy", + "zkBytecodeHash": "0x010001916b35d863cd9bda8fa51fd609afed513ab76c426460b28297c84d7838", + "zkBytecodePath": "/l1-contracts/zkout/L2SharedBridgeLegacy.sol/L2SharedBridgeLegacy.json", + "evmBytecodeHash": "0xd04d247b8b7ba4f70fbb06618be2deb49c8fcc9e5a95f98f5dcf67475d12092e", + "evmBytecodePath": "/l1-contracts/out/L2SharedBridgeLegacy.sol/L2SharedBridgeLegacy.json", + "evmDeployedBytecodeHash": "0xc16e112fad799f011d068104c562abe8d4f8f8ec5eaa013931c7e47d7c387a95" + }, + { + "contractName": "l1-contracts/L2SharedBridgeLegacyDev", + "zkBytecodeHash": "0x010001cb4ae48919dc0555a1fe90038c795c3cb60f9bb075ea596571847003f6", + "zkBytecodePath": "/l1-contracts/zkout/L2SharedBridgeLegacyDev.sol/L2SharedBridgeLegacyDev.json", + "evmBytecodeHash": "0x872f0fe18f900955cb92b056048d846d4fb012a6cb1316a69a91ca8904ce27d3", + "evmBytecodePath": "/l1-contracts/out/L2SharedBridgeLegacyDev.sol/L2SharedBridgeLegacyDev.json", + "evmDeployedBytecodeHash": "0x4b8fdad78c35a0b764df1a1a26ac3b5221daff3e5b92e84d9f993e1e81048ddd" + }, + { + "contractName": "l1-contracts/L2WrappedBaseToken", + "zkBytecodeHash": "0x01000331ab9faa2a62e4c1c73aca0d0407cab5e1ec59f71eff3b03ffeee6de57", + "zkBytecodePath": "/l1-contracts/zkout/L2WrappedBaseToken.sol/L2WrappedBaseToken.json", + "evmBytecodeHash": "0x728e684b0929cc6ad39a486e42bae21cab46bf36e4d135d76a1570a40dced6af", + "evmBytecodePath": "/l1-contracts/out/L2WrappedBaseToken.sol/L2WrappedBaseToken.json", + "evmDeployedBytecodeHash": "0x6316ce0697030dff855029b641e54a4fff708aeb223844d2dec21a21fc416012" + }, + { + "contractName": "l1-contracts/L2WrappedBaseTokenStore", + "zkBytecodeHash": "0x010000adb86a0ca484c14ee607c1737fccb5d45964b273cae81d6081661d6713", + "zkBytecodePath": "/l1-contracts/zkout/L2WrappedBaseTokenStore.sol/L2WrappedBaseTokenStore.json", + "evmBytecodeHash": "0x58b6d2c4ca8160fb36716c76bc09450e366b54510f5dd50ca0696e046eb7bfc7", + "evmBytecodePath": "/l1-contracts/out/L2WrappedBaseTokenStore.sol/L2WrappedBaseTokenStore.json", + "evmDeployedBytecodeHash": "0xb6b11c9734d7435f871ee111c51af312ab387d46682615734d194ea89f3b7f88" + }, + { + "contractName": "l1-contracts/LibMap", + "zkBytecodeHash": "0x01000007d5ede310c9dcc2804e23f07651aebdcbd81b19e0d3047b739f79decf", + "zkBytecodePath": "/l1-contracts/zkout/LibMap.sol/LibMap.json", + "evmBytecodeHash": "0x4474c9cc969c4d8f23f65d378951a730f0ea8151d45690bc12801b7e8bdbe40a", + "evmBytecodePath": "/l1-contracts/out/LibMap.sol/LibMap.json", + "evmDeployedBytecodeHash": "0xf6b8919d3465f0e814e7f6adcbeb113f587e8ee5efec3a320f978305096386e4" + }, + { + "contractName": "l1-contracts/MailboxFacet", + "zkBytecodeHash": "0x010005c90644e28b1734e16bd8b11086a5b71ea50924d71901015069ba044386", + "zkBytecodePath": "/l1-contracts/zkout/Mailbox.sol/MailboxFacet.json", + "evmBytecodeHash": "0x401f5999cd9e8c5318165da3b07ffb00946ec8279012111ee68eb31036fba14e", + "evmBytecodePath": "/l1-contracts/out/Mailbox.sol/MailboxFacet.json", + "evmDeployedBytecodeHash": "0x5f045530db01ff78e17fd43beebd117090e9ad8c5b88385ebe7cb606b33e14e8" + }, + { + "contractName": "l1-contracts/Math", + "zkBytecodeHash": "0x01000007f2b8ce5d5cbe1e5bb10d2513320988507619c76b26012d7296742415", + "zkBytecodePath": "/l1-contracts/zkout/Math.sol/Math.json", + "evmBytecodeHash": "0x5d0a624b8a82087e97ea467a31ff6113bfa50564dea7973f50c895dc4de4b929", + "evmBytecodePath": "/l1-contracts/out/Math.sol/Math.json", + "evmDeployedBytecodeHash": "0x9ace96a92f88523af3316f70ca582e8e0779d806dabf1e71d811a30944dbbf1d" + }, + { + "contractName": "l1-contracts/MathUpgradeable", + "zkBytecodeHash": "0x01000007d6b031a7da9482cb9c10a797276681b143d6d54676deadfc808775e1", + "zkBytecodePath": "/l1-contracts/zkout/MathUpgradeable.sol/MathUpgradeable.json", + "evmBytecodeHash": "0x8ac5762abde93d85170e1be92699f655f7691dfd8ba764dfbcf7aa98ad02bca5", + "evmBytecodePath": "/l1-contracts/out/MathUpgradeable.sol/MathUpgradeable.json", + "evmDeployedBytecodeHash": "0x19383e42e66cdde92a4a98d961f9d5c698e4036e0305d9383c6baaaeca3fe9b8" + }, + { + "contractName": "l1-contracts/Merkle", + "zkBytecodeHash": "0x010000079179ed016bb13bce043d4593f020490c0e865e50b8943ceda666e0f1", + "zkBytecodePath": "/l1-contracts/zkout/Merkle.sol/Merkle.json", + "evmBytecodeHash": "0x2534b86b5606dd64ca3a40631382d4842727ec244dee3d38aa21a57d0e48448f", + "evmBytecodePath": "/l1-contracts/out/Merkle.sol/Merkle.json", + "evmDeployedBytecodeHash": "0x158773590e880e9ccdba0a1bd5ac63456c8f8d1000d0a6710fd687ba039e41ba" + }, + { + "contractName": "l1-contracts/MessageHashing", + "zkBytecodeHash": "0x01000007d5093dfb3f6239a8092b3df7b72556e1d1be8a4e201892a534d84e30", + "zkBytecodePath": "/l1-contracts/zkout/MessageHashing.sol/MessageHashing.json", + "evmBytecodeHash": "0xa7206cc3ed47574f6d3f7c1b35f24aad9958bd7580fdd6761690c0495bfde4ce", + "evmBytecodePath": "/l1-contracts/out/MessageHashing.sol/MessageHashing.json", + "evmDeployedBytecodeHash": "0x08296659a1234650f29fd9ad757b5a9af4ca97307473a7f974dbea60dfba9d4c" + }, + { + "contractName": "l1-contracts/MessageRoot", + "zkBytecodeHash": "0x01000323dc4c80a4b445dae377d9eae6098666031c62ebb7e336ec7ca6a1e60a", + "zkBytecodePath": "/l1-contracts/zkout/MessageRoot.sol/MessageRoot.json", + "evmBytecodeHash": "0x879b443a6a022de6efebb81ede4daab57d5a43423a9ad56b9fd15b21706fd9d9", + "evmBytecodePath": "/l1-contracts/out/MessageRoot.sol/MessageRoot.json", + "evmDeployedBytecodeHash": "0x3944cbf9306f81e99d9be21b16da663dcd8ddca9cd472124d0af5d4d16a7cff9" + }, + { + "contractName": "l1-contracts/MockExecutorFacet", + "zkBytecodeHash": "0x0100001bba2212e8313ca773b604282cf2aa241b6a5504df39c408655245c083", + "zkBytecodePath": "/l1-contracts/zkout/MockExecutor.sol/MockExecutorFacet.json", + "evmBytecodeHash": "0x159dba3099f8bff95c67ea3d27123c48cde0b651afe2996a8012f75f7f76a90f", + "evmBytecodePath": "/l1-contracts/out/MockExecutor.sol/MockExecutorFacet.json", + "evmDeployedBytecodeHash": "0x15c7cd05a029260437fb5ec6e75e0847ea58b7750a6f2e67a1ca2646aad63320" + }, + { + "contractName": "l1-contracts/Multicall", + "zkBytecodeHash": "0x010000b51f778755de8c69a9f56d81dcdac44c4106e8785ffd4197b6ed7dc154", + "zkBytecodePath": "/l1-contracts/zkout/Multicall.sol/Multicall.json", + "evmBytecodeHash": "0x5bf5d47375307ab23c370063b1d0886be6c9d8b6d1ff276d92165655dae3c9c0", + "evmBytecodePath": "/l1-contracts/out/Multicall.sol/Multicall.json", + "evmDeployedBytecodeHash": "0x00be43f0b7ccfc445bb64d5db2e3165e42dfd29adc7f159a51a43138e2a5bbf2" + }, + { + "contractName": "l1-contracts/Multicall3", + "zkBytecodeHash": "0x010001ffb3524629e4ff88c276b3f8a96d864e699c01c83d1420efd8d5c4144e", + "zkBytecodePath": "/l1-contracts/zkout/Multicall3.sol/Multicall3.json", + "evmBytecodeHash": "0x33dfb597428fb0738780524c87af4c3d900016c5e32f3e43eb4617710efaec5c", + "evmBytecodePath": "/l1-contracts/out/Multicall3.sol/Multicall3.json", + "evmDeployedBytecodeHash": "0xcdd1973ec39aef93eb20fe7c53043192c0987e8e31ad11455b1659c2ba978964" + }, + { + "contractName": "l1-contracts/PermanentRestriction", + "zkBytecodeHash": "0x010002f90158a26c60d31dfb277af35efaac406a36d2df58d7ededec2d0576e5", + "zkBytecodePath": "/l1-contracts/zkout/PermanentRestriction.sol/PermanentRestriction.json", + "evmBytecodeHash": "0xf4b52cbc15f997f3dfd4c5ad29d354fbf6c65c33c4194c239d7754999e149164", + "evmBytecodePath": "/l1-contracts/out/PermanentRestriction.sol/PermanentRestriction.json", + "evmDeployedBytecodeHash": "0xf7a6082778bb0b7c93a0ff7c34b034cae09880df74d31dc44158f05a7369b17f" + }, + { + "contractName": "l1-contracts/PriorityQueue", + "zkBytecodeHash": "0x010000076f4fa354406cc7c2d793d0eb24e6995ee27fb68fbe0e819fb6c8af46", + "zkBytecodePath": "/l1-contracts/zkout/PriorityQueue.sol/PriorityQueue.json", + "evmBytecodeHash": "0x1fbf8d0f98f82904e21d4fae15af3035f7cfa31d2f86164a4be64e9ddd41f2ce", + "evmBytecodePath": "/l1-contracts/out/PriorityQueue.sol/PriorityQueue.json", + "evmDeployedBytecodeHash": "0xcb8a71e30dcc757d4a5c0958165f2620418f09b7b450b1e16454df48bcb7fbaf" + }, + { + "contractName": "l1-contracts/PriorityTree", + "zkBytecodeHash": "0x01000007d2199999e07c8636ca8d3645081fc66c31546ef712f63653fa03fa93", + "zkBytecodePath": "/l1-contracts/zkout/PriorityTree.sol/PriorityTree.json", + "evmBytecodeHash": "0xd5f501069d1ba7f99e5bcf013a6f90b19f8b67e9263aa3514704d915f2aa3241", + "evmBytecodePath": "/l1-contracts/out/PriorityTree.sol/PriorityTree.json", + "evmDeployedBytecodeHash": "0x80ac8de6ab1c06cb8c5fc2cca7f11918754943e59f50dbfa86228106da7332e7" + }, + { + "contractName": "l1-contracts/ProxyAdmin", + "zkBytecodeHash": "0x010000db8f4a74a6a56cbdabcfeb7d7e67645ee29348ecda6d9f40c40806b190", + "zkBytecodePath": "/l1-contracts/zkout/ProxyAdmin.sol/ProxyAdmin.json", + "evmBytecodeHash": "0x16ca65925b6e6d995d48e515c6c709672f37cb256ab8b048314c183a18423039", + "evmBytecodePath": "/l1-contracts/out/ProxyAdmin.sol/ProxyAdmin.json", + "evmDeployedBytecodeHash": "0x8cad763d032ae356c49f9fc16e4e89d066d542249fb114055c673d0d08d565ca" + }, + { + "contractName": "l1-contracts/ReenterGovernance", + "zkBytecodeHash": "0x0100010f4cea7d4fc1e738a9cd5e6ddc15db7b3eab78eac9449648c15f9b989b", + "zkBytecodePath": "/l1-contracts/zkout/ReenterGovernance.sol/ReenterGovernance.json", + "evmBytecodeHash": "0x62cbecf6d738f59c31fb127ada385a2ab93049271c3afc49739c75567e6cb3bc", + "evmBytecodePath": "/l1-contracts/out/ReenterGovernance.sol/ReenterGovernance.json", + "evmDeployedBytecodeHash": "0x4ebcd33bf61a21f4095a7f4b28a5e8597a0c03d9fb3b051d907adb5cd2afb8b8" + }, + { + "contractName": "l1-contracts/ReenterL1ERC20Bridge", + "zkBytecodeHash": "0x0100008f8e4a82797fbeecf3f8654af7f20acb1e44949fbf669a461bc85c4618", + "zkBytecodePath": "/l1-contracts/zkout/ReenterL1ERC20Bridge.sol/ReenterL1ERC20Bridge.json", + "evmBytecodeHash": "0x5db0172e064b63ef27cf00fbc53a1e4618747dc5f2efcb8b85767fbf4266b4c2", + "evmBytecodePath": "/l1-contracts/out/ReenterL1ERC20Bridge.sol/ReenterL1ERC20Bridge.json", + "evmDeployedBytecodeHash": "0xf850db232f4fcc98d083e37684fc5685e918e5659d1779fbcf8543daa21f5043" + }, + { + "contractName": "l1-contracts/RelayedSLDAValidator", + "zkBytecodeHash": "0x010000ff4d8e5bd18f48c3e6ffe817c6be775663c2a04bdb72c46eb7042b4f58", + "zkBytecodePath": "/l1-contracts/zkout/RelayedSLDAValidator.sol/RelayedSLDAValidator.json", + "evmBytecodeHash": "0x42b8f995b7e875782ef745707bb2417ac1c79dc12edf09cdac017b6bdd499328", + "evmBytecodePath": "/l1-contracts/out/RelayedSLDAValidator.sol/RelayedSLDAValidator.json", + "evmDeployedBytecodeHash": "0x247c990ab0e8ad01883715e3c2ed32dfdbabfa539599d745a09179da970ff216" + }, + { + "contractName": "l1-contracts/RestrictionValidator", + "zkBytecodeHash": "0x01000007243789a776214b096b8b4d59a2aea2652a0953b662b1e0becdd5436f", + "zkBytecodePath": "/l1-contracts/zkout/RestrictionValidator.sol/RestrictionValidator.json", + "evmBytecodeHash": "0xa8f9d6b45148d4510404cfebc38eed4b5b146675fbcb9ea5990b7d9776f17631", + "evmBytecodePath": "/l1-contracts/out/RestrictionValidator.sol/RestrictionValidator.json", + "evmDeployedBytecodeHash": "0x5e38076e6a0f6589eea8046ccb13c10cc4061ebef99ae86a7a20b25cc20c3a67" + }, + { + "contractName": "l1-contracts/ReturnSomething", + "zkBytecodeHash": "0x01000009ed18ad357282bfe367bf12c2c10976bdafe85b074d954aa58cfde075", + "zkBytecodePath": "/l1-contracts/zkout/ReturnSomething.sol/ReturnSomething.json", + "evmBytecodeHash": "0x0059565f637a978c926e55e2680a1f247e802533a94b8104d3db7fd395bad798", + "evmBytecodePath": "/l1-contracts/out/ReturnSomething.sol/ReturnSomething.json", + "evmDeployedBytecodeHash": "0xba58a1d4f52de5b877aee23d7c11f84dbe43677aa0baa9e90a0016f08158516e" + }, + { + "contractName": "l1-contracts/RevertFallback", + "zkBytecodeHash": "0x01000007d0abfaa975453e516323f92d11d78aca74ff1cc69c70e17744cb036c", + "zkBytecodePath": "/l1-contracts/zkout/RevertFallback.sol/RevertFallback.json", + "evmBytecodeHash": "0xac9ec75efc443cd482c8f0793ff0d741f5415b50174b156ac95093ecb40f4c16", + "evmBytecodePath": "/l1-contracts/out/RevertFallback.sol/RevertFallback.json", + "evmDeployedBytecodeHash": "0x3f3a526aa45d953b98e484ea56528cf7fd8ed70d36ceb0cb351ed4eaf688de2c" + }, + { + "contractName": "l1-contracts/RevertReceiveAccount", + "zkBytecodeHash": "0x0100001bff3b3a8dd56341c2f2120369095ce3762fb1534630f76342d8632c7f", + "zkBytecodePath": "/l1-contracts/zkout/RevertReceiveAccount.sol/RevertReceiveAccount.json", + "evmBytecodeHash": "0x50682705c344d4188d4aa00b3ac8f161829d877e0a79863b6105d098163e4e29", + "evmBytecodePath": "/l1-contracts/out/RevertReceiveAccount.sol/RevertReceiveAccount.json", + "evmDeployedBytecodeHash": "0x80abccf12dffc2737ce874715a39f021e1ebf1e5757061b3c2034ad8d729fa2a" + }, + { + "contractName": "l1-contracts/RevertTransferERC20", + "zkBytecodeHash": "0x01000165297ed05ce01ac792c9e2423bfe5a47ab17f1487afe8bb90a5b500353", + "zkBytecodePath": "/l1-contracts/zkout/RevertTransferERC20.sol/RevertTransferERC20.json", + "evmBytecodeHash": "0xde905eb88a2c29839f9ab49c107ff2efae0d47e405930a47c6487b0dbe71b6de", + "evmBytecodePath": "/l1-contracts/out/RevertTransferERC20.sol/RevertTransferERC20.json", + "evmDeployedBytecodeHash": "0x10710e56939dd2d06b2e4d81029d7126819a1bb9050958b6f9fef85dd9527dd2" + }, + { + "contractName": "l1-contracts/RollupDAManager", + "zkBytecodeHash": "0x01000071242f86f344dcd0f0b2bc41bad16e1cd94c8e991ab738428b06aff20b", + "zkBytecodePath": "/l1-contracts/zkout/RollupDAManager.sol/RollupDAManager.json", + "evmBytecodeHash": "0xc233133a912b86a42ba8fa9ac42e93d221e001f38e87caecc978a618d6fe0465", + "evmBytecodePath": "/l1-contracts/out/RollupDAManager.sol/RollupDAManager.json", + "evmDeployedBytecodeHash": "0xc8d002d61a9f36b00649bf3d3ddf81858e8ee0514728c380d0aa3708a7a0867b" + }, + { + "contractName": "l1-contracts/SafeCast", + "zkBytecodeHash": "0x010000075dcaf4454d68909a7bd7bccc9209782d38ae90b3755b9937a6971af4", + "zkBytecodePath": "/l1-contracts/zkout/SafeCast.sol/SafeCast.json", + "evmBytecodeHash": "0xb782538d9ab4a1fee51312a5da62605fb632c00917ae4a528794faf3dcd8b7ea", + "evmBytecodePath": "/l1-contracts/out/SafeCast.sol/SafeCast.json", + "evmDeployedBytecodeHash": "0x58e013aa1c84d8c61173a477b1eb81b80b48e3c383be1f66fc757c040b6a3f5e" + }, + { + "contractName": "l1-contracts/SafeERC20", + "zkBytecodeHash": "0x01000007266c396d8f8cffb0df6fceb1cf921f452757a83b150168db42ca9d8c", + "zkBytecodePath": "/l1-contracts/zkout/SafeERC20.sol/SafeERC20.json", + "evmBytecodeHash": "0xcc597c51e4d7ba1e361fc44ce9c14860f95945cbad3bc7cdf6e42d00cf8cd2d6", + "evmBytecodePath": "/l1-contracts/out/SafeERC20.sol/SafeERC20.json", + "evmDeployedBytecodeHash": "0x40c7ab46026ffaab2fd318d05465c13c79f5a58b9d13cad4f90b611de0381f4c" + }, + { + "contractName": "l1-contracts/SemVer", + "zkBytecodeHash": "0x010000073ab83b80946ddd35ce5faf2cd94ede212dfa6b78083631d0eeafc120", + "zkBytecodePath": "/l1-contracts/zkout/SemVer.sol/SemVer.json", + "evmBytecodeHash": "0x26ca530e183201079ba757e22dddf73d3f8737953be7a410739b9ac40f88e1e3", + "evmBytecodePath": "/l1-contracts/out/SemVer.sol/SemVer.json", + "evmDeployedBytecodeHash": "0x982508921686510596b5fe6eb62ab4da872ae759675f70c116b633a9d769d6fa" + }, + { + "contractName": "l1-contracts/SignedMath", + "zkBytecodeHash": "0x010000076de585790ec2432adab8b59f341961de7adefffa3f62c209d18843cc", + "zkBytecodePath": "/l1-contracts/zkout/SignedMath.sol/SignedMath.json", + "evmBytecodeHash": "0xf2dd90d4773f4d636190200391da81bcb5ebd5a11754ef3cf61079d0d470e9c6", + "evmBytecodePath": "/l1-contracts/out/SignedMath.sol/SignedMath.json", + "evmDeployedBytecodeHash": "0xa6d9c61cb0529046ae5b9a5d7d96ea92b5008889edb0ff2a4d9e037490880d4c" + }, + { + "contractName": "l1-contracts/SignedMathUpgradeable", + "zkBytecodeHash": "0x01000007983631fff5f69f627d1b321547579dbc42182814c9cc416e4b334637", + "zkBytecodePath": "/l1-contracts/zkout/SignedMathUpgradeable.sol/SignedMathUpgradeable.json", + "evmBytecodeHash": "0x662920f7a1ec3662c95e34a7cfc239eb4002c1f2ece1b3da843c87a5e2e1ec2a", + "evmBytecodePath": "/l1-contracts/out/SignedMathUpgradeable.sol/SignedMathUpgradeable.json", + "evmDeployedBytecodeHash": "0x5058d4c4a21f296b1ffdd37a957072d341d334092b01eb3bab169ae2157d15e1" + }, + { + "contractName": "l1-contracts/SingletonFactory", + "zkBytecodeHash": "0x0100002fb4f5e052c13a03ac2c9c32665e4d1a058cabdbf23acd64d4f7092818", + "zkBytecodePath": "/l1-contracts/zkout/SingletonFactory.sol/SingletonFactory.json", + "evmBytecodeHash": "0xeda55180187d09588f23874f9baabb1ebe1ce659e066cd026f2009bc4825db4a", + "evmBytecodePath": "/l1-contracts/out/SingletonFactory.sol/SingletonFactory.json", + "evmDeployedBytecodeHash": "0x9d9dddab918150e5365f995f18e4b7eec6777f1303d100fdc0d669b65b7b50ce" + }, + { + "contractName": "l1-contracts/StorageSlot", + "zkBytecodeHash": "0x0100000725a71500be96d2ade88220ee75da14fe075e1b647d4b53139145ac75", + "zkBytecodePath": "/l1-contracts/zkout/StorageSlot.sol/StorageSlot.json", + "evmBytecodeHash": "0x6488ec4479707f125f45e7a08bd94daf1b65088722ecda07b180347d653621c5", + "evmBytecodePath": "/l1-contracts/out/StorageSlot.sol/StorageSlot.json", + "evmDeployedBytecodeHash": "0xcad6ac09977b0ef86ec1e59a62a1970d67cb600d9246b8cca5ecc7a4cbb5b36d" + }, + { + "contractName": "l1-contracts/Strings", + "zkBytecodeHash": "0x01000007e98f5c77a164fc2898a610fb23d11f02ce8fa6c786bcd682849b64c4", + "zkBytecodePath": "/l1-contracts/zkout/Strings.sol/Strings.json", + "evmBytecodeHash": "0xb5638394c3a0d168a80c88c31f08717baee38ea94d3ae5105c87efaff990ef3f", + "evmBytecodePath": "/l1-contracts/out/Strings.sol/Strings.json", + "evmDeployedBytecodeHash": "0x68a483c55896421facb1d258ef70ebe5e80593aa50c828bd2cb1c53f32ec1120" + }, + { + "contractName": "l1-contracts/StringsUpgradeable", + "zkBytecodeHash": "0x01000007fd96cdf331faa4d12fdc9aaccaca87b451d0ec1982e6f23cd339e7d7", + "zkBytecodePath": "/l1-contracts/zkout/StringsUpgradeable.sol/StringsUpgradeable.json", + "evmBytecodeHash": "0x48a5930e4663727d4bd7b7facce0fe92cbc73fb4fd0a7df1094481037ea4c041", + "evmBytecodePath": "/l1-contracts/out/StringsUpgradeable.sol/StringsUpgradeable.json", + "evmDeployedBytecodeHash": "0xd5de8e20fbb8e6757631608d3730cc64660c830fe292d208b291a2b64822c2f9" + }, + { + "contractName": "l1-contracts/SystemContractsCaller", + "zkBytecodeHash": "0x0100000760b8fa9c62de6bcd5a8b2d354eed405a03293b06ad7c36ebcfec5c6f", + "zkBytecodePath": "/l1-contracts/zkout/SystemContractsCaller.sol/SystemContractsCaller.json", + "evmBytecodeHash": "0xecd3c734ce864758b37c22db12279d4076ae3fc34f2a75162a4fcf776facce11", + "evmBytecodePath": "/l1-contracts/out/SystemContractsCaller.sol/SystemContractsCaller.json", + "evmDeployedBytecodeHash": "0xfc5ac275db7089bd64535306ea5d04c5b3e761b612e340b82bc0ea4d9f323f6e" + }, + { + "contractName": "l1-contracts/Utils", + "zkBytecodeHash": "0x010000077b86e41703f8195fd86398efb4004f1486c2b86130fc0667603ab5d2", + "zkBytecodePath": "/l1-contracts/zkout/SystemContractsCaller.sol/Utils.json", + "evmBytecodeHash": "0x534bc5e7432735c8808d91708e9eab901f55a7ec6f7c0f878bb562757b6a99d9", + "evmBytecodePath": "/l1-contracts/out/Utils.sol/Utils.json", + "evmDeployedBytecodeHash": "0x43081c39edfbf9f44a8f1c1f0e5e00423e727da0da196eab876aed9949811e77" + }, + { + "contractName": "l1-contracts/TestCalldataDA", + "zkBytecodeHash": "0x010000b387dd15e51d04a3c67d68f479af2efe7562956127c2e08f5a7fb13ee5", + "zkBytecodePath": "/l1-contracts/zkout/TestCalldataDA.sol/TestCalldataDA.json", + "evmBytecodeHash": "0x62d03d5db841fa4481dafa478f8a51bd7cb905365e5b9ed7e04e19fba69c4425", + "evmBytecodePath": "/l1-contracts/out/TestCalldataDA.sol/TestCalldataDA.json", + "evmDeployedBytecodeHash": "0xb506b8d3d456e82e729230343178b885f5788704022daa05237ea09ea9b6c2fd" + }, + { + "contractName": "l1-contracts/TestExecutor", + "zkBytecodeHash": "0x010005e39ef0667ca6de7234241982d879afea762f57d5b37497f721b55b1625", + "zkBytecodePath": "/l1-contracts/zkout/TestExecutor.sol/TestExecutor.json", + "evmBytecodeHash": "0xee4df431b09f7039ea5ecbd14e0c9be18c3820cde5b149401e7bda8bdf95ff88", + "evmBytecodePath": "/l1-contracts/out/TestExecutor.sol/TestExecutor.json", + "evmDeployedBytecodeHash": "0xb1f2e55e2edede262e29230083b4b1b47fd75aab5c1e5483ab5271bcb0c270c9" + }, + { + "contractName": "l1-contracts/TestnetERC20Token", + "zkBytecodeHash": "0x01000153fca74840afe992450496f509e5d4a888baf2c6c277aa03b791690340", + "zkBytecodePath": "/l1-contracts/zkout/TestnetERC20Token.sol/TestnetERC20Token.json", + "evmBytecodeHash": "0xb7c5a85b33657c1419c5c44cd6363ddf97525647996b3db8441a54f8ac1cb4c2", + "evmBytecodePath": "/l1-contracts/out/TestnetERC20Token.sol/TestnetERC20Token.json", + "evmDeployedBytecodeHash": "0xdbc5ad4ec4d2faab8674ddb99862c42c6403c8508f01c7b993d8eb137b0f5240" + }, + { + "contractName": "l1-contracts/TestnetVerifier", + "zkBytecodeHash": "0x01000e514109c300557e7305b7ee9b3487b47a058c3503985888b4c0b2c3921f", + "zkBytecodePath": "/l1-contracts/zkout/TestnetVerifier.sol/TestnetVerifier.json", + "evmBytecodeHash": "0xf3bf579e22a4cf86cc04919ec13ebaa020403638f0e1f0bceaf8571f2ea4e15b", + "evmBytecodePath": "/l1-contracts/out/TestnetVerifier.sol/TestnetVerifier.json", + "evmDeployedBytecodeHash": "0x596e516e26a65363d014abd628b674983bd8fa04dcfc235b5b61fc017f055cdd" + }, + { + "contractName": "l1-contracts/TransactionValidator", + "zkBytecodeHash": "0x01000007195f1efee4ca187753a319b1e515270a6516cedcb508d58e3748253e", + "zkBytecodePath": "/l1-contracts/zkout/TransactionValidator.sol/TransactionValidator.json", + "evmBytecodeHash": "0x4ddd942b0a0528b807b89db1bea1d34bd05e84e0130c101f49c95b01a313fec6", + "evmBytecodePath": "/l1-contracts/out/TransactionValidator.sol/TransactionValidator.json", + "evmDeployedBytecodeHash": "0x7da767a221fe749b02a38e6af0bc8c7fecc569e34fff49a36fd3a666ba139571" + }, + { + "contractName": "l1-contracts/TransitionaryOwner", + "zkBytecodeHash": "0x0100005de54a7ab186fee1e7673f571485bf5385d772d1d9f3d1ec8abedefd72", + "zkBytecodePath": "/l1-contracts/zkout/TransitionaryOwner.sol/TransitionaryOwner.json", + "evmBytecodeHash": "0x6fdbc7408f7e7fb5fdc78973650b8498ebe1db4c2b3506e28a38232f6d42020c", + "evmBytecodePath": "/l1-contracts/out/TransitionaryOwner.sol/TransitionaryOwner.json", + "evmDeployedBytecodeHash": "0x5d3cd8608418e35f48b28e008cd1ffbb558fb9429815a5e62b09d7b7cdecd9a2" + }, + { + "contractName": "l1-contracts/TransparentUpgradeableProxy", + "zkBytecodeHash": "0x010001434097fef451847f7981ccc00f0b6c4560fcc11927ad84a2bd2dc15c46", + "zkBytecodePath": "/l1-contracts/zkout/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json", + "evmBytecodeHash": "0x9418e18779785991bdd2c8812d103b345c1ca81ee2c038decb7895dea379e23b", + "evmBytecodePath": "/l1-contracts/out/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json", + "evmDeployedBytecodeHash": "0xdaa8d164eeacd10298086ad0eacb1c72fee317318a55df5c3eaa92eaf1a899e9" + }, + { + "contractName": "l1-contracts/UncheckedMath", + "zkBytecodeHash": "0x010000078191e32004221be4bfeb61ba5f767ffd4d4544c5043ff5dd32e57598", + "zkBytecodePath": "/l1-contracts/zkout/UncheckedMath.sol/UncheckedMath.json", + "evmBytecodeHash": "0x9be06c02e49010148c37812d0ba41d514edc6cc4889a8562555126bed5afe602", + "evmBytecodePath": "/l1-contracts/out/UncheckedMath.sol/UncheckedMath.json", + "evmDeployedBytecodeHash": "0x3acdac567714102a848cfcf53e7ef120f8420a7ee6905d1a91de8b0dc2315236" + }, + { + "contractName": "l1-contracts/UnsafeBytes", + "zkBytecodeHash": "0x010000079a552a75d0066716db9fb9753b641f49c15f2c583b15558bbb2407ee", + "zkBytecodePath": "/l1-contracts/zkout/UnsafeBytes.sol/UnsafeBytes.json", + "evmBytecodeHash": "0xb6504bd7572495e1d46c77c4cf7d60e00005ce7597f082cc6dc4ad3f4081a0d3", + "evmBytecodePath": "/l1-contracts/out/UnsafeBytes.sol/UnsafeBytes.json", + "evmDeployedBytecodeHash": "0x54de6cc79c7a9e627a761eef354d530dd6415bf7ce6705c94bebc8ec72cc0fdf" + }, + { + "contractName": "l1-contracts/UpgradeableBeacon", + "zkBytecodeHash": "0x01000067c42a9f91dc32ed0de23a6587d9298d7142bd018d0f3bf8a63bc8b3fb", + "zkBytecodePath": "/l1-contracts/zkout/UpgradeableBeacon.sol/UpgradeableBeacon.json", + "evmBytecodeHash": "0x3cf20e7382b0ab1e9bd742ae886c3a85d1117aba798d416b823687550468bc4d", + "evmBytecodePath": "/l1-contracts/out/UpgradeableBeacon.sol/UpgradeableBeacon.json", + "evmDeployedBytecodeHash": "0xbfbcbc72042dd522481cb54d1587ac92c4f96a47d7d87c66c924f8559dff4b75" + }, + { + "contractName": "l1-contracts/ValidatorTimelock", + "zkBytecodeHash": "0x01000215b767edd348748bbabe5e9d72c14b4789c6d6bcda70d18fea2b2ffde2", + "zkBytecodePath": "/l1-contracts/zkout/ValidatorTimelock.sol/ValidatorTimelock.json", + "evmBytecodeHash": "0x331f66cae26d75875c928fd0f15da00d24f49e431a06a3b529b778e09ff8fed7", + "evmBytecodePath": "/l1-contracts/out/ValidatorTimelock.sol/ValidatorTimelock.json", + "evmDeployedBytecodeHash": "0x1908373d9ed9674a20e965f070397ac913c3d39272c1f5969e1d503c14be6257" + }, + { + "contractName": "l1-contracts/ValidiumL1DAValidator", + "zkBytecodeHash": "0x010000331481ddf33ff5aeb54ceed60be354f534086c2535462f3d8bd3b1439d", + "zkBytecodePath": "/l1-contracts/zkout/ValidiumL1DAValidator.sol/ValidiumL1DAValidator.json", + "evmBytecodeHash": "0x14a6a54a34834ce9c057a48081477eeef9abd0a16b06522364ef8acb6e5985cf", + "evmBytecodePath": "/l1-contracts/out/ValidiumL1DAValidator.sol/ValidiumL1DAValidator.json", + "evmDeployedBytecodeHash": "0x6f83677dd2e3db1c60a1980283a471497d1c1c8dc48620cc1e75dfa7362e0b19" + }, + { + "contractName": "l1-contracts/Verifier", + "zkBytecodeHash": "0x01000e4783db62bb58cc58bc9c2ccfc1b9641bdbea23be0fc633425698ceb871", + "zkBytecodePath": "/l1-contracts/zkout/Verifier.sol/Verifier.json", + "evmBytecodeHash": "0x2deeb35a8e1ba74fd818d9ae62a6ca69b2e973fb4885a5dd63c5f5a32e54f684", + "evmBytecodePath": "/l1-contracts/out/Verifier.sol/Verifier.json", + "evmDeployedBytecodeHash": "0x96f0674da93e71c29b6cc55b1d1d219ad99f7ed04b320c0e4072369a00060417" + }, + { + "contractName": "l1-contracts/WETH9", + "zkBytecodeHash": "0x010000ffbba3277a454f78c31014d7aa50430ae3c7087d25dc1a9a4d8f5db7af", + "zkBytecodePath": "/l1-contracts/zkout/WETH9.sol/WETH9.json", + "evmBytecodeHash": "0x191e4d03cdf090da8404791a7d5f6bda0e48c866e361cdcc138780b426a60729", + "evmBytecodePath": "/l1-contracts/out/WETH9.sol/WETH9.json", + "evmDeployedBytecodeHash": "0x82246c737ed764d11286ee461f76380a1250eb5dfe01f681c74e0d9fa552524f" + }, + { + "contractName": "l1-contracts/ZKChainBase", + "zkBytecodeHash": "0x01000007c938904b821eb6b43f81afea1b82c6f6928f963b172834617a460cf7", + "zkBytecodePath": "/l1-contracts/zkout/ZKChainBase.sol/ZKChainBase.json", + "evmBytecodeHash": "0x30dbc2e9f51297f60006a87ea7946a1688ac3a8ce86681ef72c0d69ff473004b", + "evmBytecodePath": "/l1-contracts/out/ZKChainBase.sol/ZKChainBase.json", + "evmDeployedBytecodeHash": "0x1438f2c1614cf88694e270d8290e51050d8444e5fac7f6332ec21cda59d2c530" + }, + { + "contractName": "l1-contracts/CheckTransactionTest", + "evmBytecodeHash": "0x1078337564b75370b1751bdc7e685add3695cbc2099f98681df8a9e7b70f45ae", + "evmBytecodePath": "/l1-contracts/out/CheckTransaction.sol/CheckTransactionTest.json", + "evmDeployedBytecodeHash": "0x695ef1be463fb461939d9d5e4e2e1692e03a046ff3e6ba372995e0f3d7b3e46a", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/CreateAndTransfer", + "evmBytecodeHash": "0x3ef11e5b831a5114a37d3daa2265740bd39b5302b11d972a872462c747f991ed", + "evmBytecodePath": "/l1-contracts/out/CreateAndTransfer.sol/CreateAndTransfer.json", + "evmDeployedBytecodeHash": "0xae6d5f0e37eb646c6f61340d8ba97f1c23f3b022500f99c089e5ef95a6332c87", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/EIP712Utils", + "evmBytecodeHash": "0x2c6e37222391b17574f82ea60648ff76570857c09850e19cb439484ceea9f5ce", + "evmBytecodePath": "/l1-contracts/out/EIP712Utils.sol/EIP712Utils.json", + "evmDeployedBytecodeHash": "0xf878f1f72fdb3a0a08c4d8ca7d74a2389f84707c06c94dd6189786ef03bed7fd", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/GatewayCTMDeployerHelper", + "evmBytecodeHash": "0xc2f943354c6081cfeb4d6e14bcc4206286b432c8b798c26d1238a9e1f7f2ebe5", + "evmBytecodePath": "/l1-contracts/out/GatewayCTMDeployerHelper.sol/GatewayCTMDeployerHelper.json", + "evmDeployedBytecodeHash": "0x2f0d5740387eecfd06e5bb2c5a813e3d76bdab3bd9fea5bb80cf0a25e9bd58bf", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/L1NativeTokenVaultTest", + "evmBytecodeHash": "0x250162173ef74292e1cc80aab84aa7bd7b4add7c3dabcb37c2214f991eb8c4f3", + "evmBytecodePath": "/l1-contracts/out/L1NativeTokenVault.sol/L1NativeTokenVaultTest.json", + "evmDeployedBytecodeHash": "0xf85d7935c4ffd77f30bcdc04d4bbf6fe3e4bd06d5406b76d6294df41c03fb4fb", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/SomeToken", + "evmBytecodeHash": "0x4f2715fe887d9a1644ad9bef9a4a054544e30528211f05695e3cbd444931592b", + "evmBytecodePath": "/l1-contracts/out/L1NativeTokenVault.sol/SomeToken.json", + "evmDeployedBytecodeHash": "0x37318c04e7520ac15d36f987bd0c9e357d51f6d8089302ca90bf8b476accc026", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/L2ContractsBytecodesLib", + "evmBytecodeHash": "0xf529991a2409549048691f228460421fc7abeadf0a850c77e045be9f1e03d84f", + "evmBytecodePath": "/l1-contracts/out/L2ContractsBytecodesLib.sol/L2ContractsBytecodesLib.json", + "evmDeployedBytecodeHash": "0x926b5cbdd4380fcee8ce08c83e7a1537ff552d732ea3a9a67a55acbed2486ba2", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/L2LegacySharedBridgeTestHelper", + "evmBytecodeHash": "0xa5764f4d2186631b2e510944ed57f76d95c03e18853e75b870da6ff52d7ec866", + "evmBytecodePath": "/l1-contracts/out/L2LegacySharedBridgeTestHelper.sol/L2LegacySharedBridgeTestHelper.json", + "evmDeployedBytecodeHash": "0xd549dd56c79a7dbb77c2b5985212a9dcf3833436258f972cacf3f553776b224e", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/L2Utils", + "evmBytecodeHash": "0x58ad7d621b09034d87f85956b99800fc81e883d80cf3e08927b5ebac506043af", + "evmBytecodePath": "/l1-contracts/out/L2Utils.sol/L2Utils.json", + "evmDeployedBytecodeHash": "0x524ad674b4b7d42ab8813b36cae3e37019aecaad15b4c1769334c68da6c7429c", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/ManageWhitelistTest", + "evmBytecodeHash": "0x57dfede110d42a9360e7d4385231e587e7c5e6c08aeb765a31200af1412f2667", + "evmBytecodePath": "/l1-contracts/out/ManageWhitelist.sol/ManageWhitelistTest.json", + "evmDeployedBytecodeHash": "0x206074c8d6d3d36cb603a59393b45bcdcb4d0ca53031990483c96ba57eb778c3", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/MerkleTreeNoSort", + "evmBytecodeHash": "0x298afb6ae89c746384e124b97a782984cb928083426359b655ec3e65c2ba56b1", + "evmBytecodePath": "/l1-contracts/out/MerkleTreeNoSort.sol/MerkleTreeNoSort.json", + "evmDeployedBytecodeHash": "0xe437113971789c010b68580bbcfa06d0a4e6b14355d2aa1d1191659e5d2ea8e9", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/MockERC20", + "evmBytecodeHash": "0x4979cc2df2ac7d0cfe5400ea0fc00c1cce56248c3e87764eed7a1a3b260f1f93", + "evmBytecodePath": "/l1-contracts/out/MockERC20.sol/MockERC20.json", + "evmDeployedBytecodeHash": "0x995decc49f0492c5fd35dc7504f5a78355493d8a9178bf80e56afbefe8982ae5", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/MockERC721", + "evmBytecodeHash": "0x3dc86d7076e1fb8d06aa23beb47e9b1b66f5c60bab1afa06c8cfef5b9d8b910e", + "evmBytecodePath": "/l1-contracts/out/MockERC721.sol/MockERC721.json", + "evmDeployedBytecodeHash": "0xcfaa2ea2ea103601902e390d85712e32367bdb1b1de623fbcba2c06c66148435", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/OnEmptyQueueTest", + "evmBytecodeHash": "0x66e63a393c6021e132b95f9ce91931a97e3617cef18b308b78834bef125ef700", + "evmBytecodePath": "/l1-contracts/out/OnEmptyQueue.sol/OnEmptyQueueTest.json", + "evmDeployedBytecodeHash": "0x78e374d0568b46409ae77cea76379e420282220ecae5ac296433195d9e65d2ed", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/PopOperationsTest", + "evmBytecodeHash": "0x2fced6d25eb21c0a87aefb8338c35113e7d8fd0631a8319975baae270be3f083", + "evmBytecodePath": "/l1-contracts/out/PopOperations.sol/PopOperationsTest.json", + "evmDeployedBytecodeHash": "0xe161cbd8524ab40d2534a516ece7c844c40b132b6737240c090e898612b4ec8e", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/PushOperationsTest", + "evmBytecodeHash": "0x6cd55e5476461ec9cf2c04b03d564d413b7850809873655d0daf2c91bec48ab8", + "evmBytecodePath": "/l1-contracts/out/PushOperations.sol/PushOperationsTest.json", + "evmDeployedBytecodeHash": "0x18e0f4892bf49aef0dcc8d104858f52c86b3a33b8b0777ef748513b2536f86f2", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/stdError", + "evmBytecodeHash": "0xa5cd965e5609ac02cc106708d5449c5a2e01d0d09a879e7c9bc1ca6ef6142f53", + "evmBytecodePath": "/l1-contracts/out/StdError.sol/stdError.json", + "evmDeployedBytecodeHash": "0xa05e064c32260ec2d5cfd351d9037221cd91d8a84387c4d54ef73c716733058c", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/stdJson", + "evmBytecodeHash": "0x5db8bd520776d1db949de8c22397f2a1bf57c1b8bc9cc21379138da39192a7bc", + "evmBytecodePath": "/l1-contracts/out/StdJson.sol/stdJson.json", + "evmDeployedBytecodeHash": "0x875eb3bd168b8e56363385268b12611af4938fa945c57c9c6b7c9a30b260dc4c", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/stdMath", + "evmBytecodeHash": "0x5b235eba8a5d2b236678faef08d968f019b80851013611115215ebe5f7ce6ffc", + "evmBytecodePath": "/l1-contracts/out/StdMath.sol/stdMath.json", + "evmDeployedBytecodeHash": "0x4ba29dcbe29b01a9828803e7d4467731409605707e6cf07c66c8deb142e8b173", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/stdStorage", + "evmBytecodeHash": "0x1e6468080e2f90a89ad6c0deb28de6c4bab06ef5347f3e6824c1d8dda4d40260", + "evmBytecodePath": "/l1-contracts/out/StdStorage.sol/stdStorage.json", + "evmDeployedBytecodeHash": "0xa06ed85efb4a3e35aa98b0df4f670622aaadc74bceab60c3df7e063ed52d8241", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/stdStorageSafe", + "evmBytecodeHash": "0x13f38e5f0298bb461b6bf0a746777e901cf8997a2e25780186d596e5fa1349b7", + "evmBytecodePath": "/l1-contracts/out/StdStorage.sol/stdStorageSafe.json", + "evmDeployedBytecodeHash": "0x4414f5a7bfa0c915e8b389e94e16ccb147850f46adf0fb3ae1c55ec1fdcfee8d", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/StdStyle", + "evmBytecodeHash": "0x6346231544bf037f048d6edb65a255ca8bd04ccc1cfea86dd274f3cc173ae33b", + "evmBytecodePath": "/l1-contracts/out/StdStyle.sol/StdStyle.json", + "evmDeployedBytecodeHash": "0x8ba48cb8535c7eb74fb9ed42089379ebd2640c0270642014440508823d6279f1", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/stdToml", + "evmBytecodeHash": "0xcdf32eb9a3504b2c8eb1ae40e60cb6274c95d5c6f0f45225c2f1dd9810ccdf74", + "evmBytecodePath": "/l1-contracts/out/StdToml.sol/stdToml.json", + "evmDeployedBytecodeHash": "0xa742c3b44c50d00e2c536efa5662b28e0f00aab0e7ff16ca0d573ce3fc165a81", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/UtilsFacet", + "evmBytecodeHash": "0x1ea198587e47946d69110741303d7e44e15afdd7370e4b3497993a1d37f2b902", + "evmBytecodePath": "/l1-contracts/out/UtilsFacet.sol/UtilsFacet.json", + "evmDeployedBytecodeHash": "0x7bd18121543aad77e8a631ba7bf7967434a3fa805ab92220bad03d5b4d4b27b2", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/GatewayPreparationForTests", + "evmBytecodeHash": "0xa49ad09b7277cd40223b0b8c78382552b9a96f23933414e0ebc045167f5f9681", + "evmBytecodePath": "/l1-contracts/out/_GatewayPreparationForTests.sol/GatewayPreparationForTests.json", + "evmDeployedBytecodeHash": "0x260a2a1e256a6d70ec9e66c6e5acf67c64caa05e13d40336b095bb8ab64cfaf1", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/SharedL2ContractL1DeployerUtils", + "evmBytecodeHash": "0x5903f68e6896e719cd87d0c5c08af2b5646ef035a34d7d3d2508ab3ce0c1a754", + "evmBytecodePath": "/l1-contracts/out/_SharedL2ContractL1DeployerUtils.sol/SharedL2ContractL1DeployerUtils.json", + "evmDeployedBytecodeHash": "0xeb3b8144c3b690055f33a8ce4a80d8a50badff0a775e175f3cee6860892312d8", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/SharedL2ContractL2DeployerUtils", + "evmBytecodeHash": "0xd892435640a5c4beb9cbda5af0e5374f677d7fb3ad07cfda77bf7e1a1887f266", + "evmBytecodePath": "/l1-contracts/out/_SharedL2ContractL2DeployerUtils.sol/SharedL2ContractL2DeployerUtils.json", + "evmDeployedBytecodeHash": "0x6266ca830309305eacd21db8a215dbb4c5f2bae84e77ed7c571689ec63a78710", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/console", + "evmBytecodeHash": "0x35348e9a92e75913ac4347c4748573128dc2422e67975566407ce365b30786b3", + "evmBytecodePath": "/l1-contracts/out/console.sol/console.json", + "evmDeployedBytecodeHash": "0x28f41983127a18292e3878dec11dd07a15f4a16498f954b7e073206043d6b3b5", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "l1-contracts/safeconsole", + "evmBytecodeHash": "0x4cd8653fd404d6283caf17a8857e7158243239986c4f3cfa4508fbadf238995c", + "evmBytecodePath": "/l1-contracts/out/safeconsole.sol/safeconsole.json", + "evmDeployedBytecodeHash": "0xbcf2d0de342544f95c33cddbc122cd29455067219c60555a59ee680745879fa7", + "zkBytecodeHash": null, + "zkBytecodePath": null + }, + { + "contractName": "CodeOracle.yul", + "zkBytecodePath": "/system-contracts/zkout/CodeOracle.yul/contracts-preprocessed/precompiles/CodeOracle.yul.json", + "zkBytecodeHash": "0x010000230498c3128f0f86bd5cebbce502948ae06b526559d7ed432312ea5673", + "evmBytecodePath": null, + "evmBytecodeHash": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "EcAdd.yul", + "zkBytecodePath": "/system-contracts/zkout/EcAdd.yul/contracts-preprocessed/precompiles/EcAdd.yul.json", + "zkBytecodeHash": "0x010000859ed3467fe4da584e9d993f04d8df6c1d1e078db908cbaac1b6b9d84a", + "evmBytecodePath": null, + "evmBytecodeHash": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "EcMul.yul", + "zkBytecodePath": "/system-contracts/zkout/EcMul.yul/contracts-preprocessed/precompiles/EcMul.yul.json", + "zkBytecodeHash": "0x010000bb45be5491bfa96eac012e6edbcd393863c753de44e1ddf364e490d2e5", + "evmBytecodePath": null, + "evmBytecodeHash": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "EcPairing.yul", + "zkBytecodePath": "/system-contracts/zkout/EcPairing.yul/contracts-preprocessed/precompiles/EcPairing.yul.json", + "zkBytecodeHash": "0x01000f1df321417e6094bb72944163e3e3f6073c4a08723bcd75851a4af87cd7", + "evmBytecodePath": null, + "evmBytecodeHash": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "Ecrecover.yul", + "zkBytecodePath": "/system-contracts/zkout/Ecrecover.yul/contracts-preprocessed/precompiles/Ecrecover.yul.json", + "zkBytecodeHash": "0x01000013344fb47b40c38eddb93142d381a1716cdb99a76aca64b31a3f83c7e5", + "evmBytecodePath": null, + "evmBytecodeHash": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "EventWriter.yul", + "zkBytecodePath": "/system-contracts/zkout/EventWriter.yul/contracts-preprocessed/EventWriter.yul.json", + "zkBytecodeHash": "0x010000175f50060e9307a151fac7759407acd83eff7b387dce4e24814a09cb9f", + "evmBytecodePath": null, + "evmBytecodeHash": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "Keccak256.yul", + "zkBytecodePath": "/system-contracts/zkout/Keccak256.yul/contracts-preprocessed/precompiles/Keccak256.yul.json", + "zkBytecodeHash": "0x0100000f9c77ddf3e1baef9df0c1a497858d24b0ea1cf76f04c9fe3f8b323098", + "evmBytecodePath": null, + "evmBytecodeHash": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "Keccak256Mock.yul", + "zkBytecodePath": "/system-contracts/zkout/Keccak256Mock.yul/contracts-preprocessed/precompiles/test-contracts/Keccak256Mock.yul.json", + "zkBytecodeHash": "0x0100000b42fb03a0a603be54b1e742a9ebbe755c886cf193e5d98d35982f420c", + "evmBytecodePath": null, + "evmBytecodeHash": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "P256Verify.yul", + "zkBytecodePath": "/system-contracts/zkout/P256Verify.yul/contracts-preprocessed/precompiles/P256Verify.yul.json", + "zkBytecodeHash": "0x0100000f40b6e168450d59aaf4283e70c5a26deb4b396a49e3a014b3f7433267", + "evmBytecodePath": null, + "evmBytecodeHash": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "SHA256.yul", + "zkBytecodePath": "/system-contracts/zkout/SHA256.yul/contracts-preprocessed/precompiles/SHA256.yul.json", + "zkBytecodeHash": "0x010000172dd8b6099b59bc284647851340b609bcb9514fa1fad85aa64dedbbc1", + "evmBytecodePath": null, + "evmBytecodeHash": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "bootloader_test.yul", + "zkBytecodePath": "/system-contracts/zkout/bootloader_test.yul/contracts-preprocessed/bootloader/bootloader_test.yul.json", + "zkBytecodeHash": "0x010003d38aadb86b0c0838a921dbc600728dfe529279491a3d316797482326e2", + "evmBytecodePath": null, + "evmBytecodeHash": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "dummy.yul", + "zkBytecodePath": "/system-contracts/zkout/dummy.yul/contracts-preprocessed/bootloader/dummy.yul.json", + "zkBytecodeHash": "0x01000007c0dc61224c33c91f692c670202b257d4549c1b7801ecf5b1fc7a1c7d", + "evmBytecodePath": null, + "evmBytecodeHash": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "fee_estimate.yul", + "zkBytecodePath": "/system-contracts/zkout/fee_estimate.yul/contracts-preprocessed/bootloader/fee_estimate.yul.json", + "zkBytecodeHash": "0x01000965ea0451253feaf6dafe12c6e12fba7cf279afa46e335e74fb45a7f063", + "evmBytecodePath": null, + "evmBytecodeHash": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "gas_test.yul", + "zkBytecodePath": "/system-contracts/zkout/gas_test.yul/contracts-preprocessed/bootloader/gas_test.yul.json", + "zkBytecodeHash": "0x010008d5e797ddae2bc4f5780cf02ea88ae6c2eec8424c65e0113c317fc86e3e", + "evmBytecodePath": null, + "evmBytecodeHash": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "playground_batch.yul", + "zkBytecodePath": "/system-contracts/zkout/playground_batch.yul/contracts-preprocessed/bootloader/playground_batch.yul.json", + "zkBytecodeHash": "0x0100096b2595be6c8c50405093d1e3bcf4a362b9345dfe2eee3ed7fa49209ae6", + "evmBytecodePath": null, + "evmBytecodeHash": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "proved_batch.yul", + "zkBytecodePath": "/system-contracts/zkout/proved_batch.yul/contracts-preprocessed/bootloader/proved_batch.yul.json", + "zkBytecodeHash": "0x010008e5b883de8897598e83d383e332b87d09164363816c15f22353c3cd910d", + "evmBytecodePath": null, + "evmBytecodeHash": null, + "evmDeployedBytecodeHash": null + }, + { + "contractName": "transfer_test.yul", + "zkBytecodePath": "/system-contracts/zkout/transfer_test.yul/contracts-preprocessed/bootloader/transfer_test.yul.json", + "zkBytecodeHash": "0x010000152e84d6f348a177d29d0f11e03c8058ee3198e587051b59db424a75af", + "evmBytecodePath": null, + "evmBytecodeHash": null, + "evmDeployedBytecodeHash": null + } +] diff --git a/package.json b/package.json index b17e3cb21..bb13e4698 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,8 @@ "solhint": "4.5.4" }, "scripts": { + "calculate-hashes:check": "ts-node scripts/calculate-hashes.ts --check-only", + "calculate-hashes:fix": "ts-node scripts/calculate-hashes.ts", "lint:check": "yarn lint:md && yarn lint:sol && yarn lint:ts && yarn prettier:check", "lint:fix": "yarn lint:md --fix && yarn lint:sol --fix && yarn lint:ts --fix && yarn prettier:fix", "lint:md": "markdownlint \"**/*.md\"", diff --git a/scripts/calculate-hashes.ts b/scripts/calculate-hashes.ts new file mode 100644 index 000000000..4cb93df8a --- /dev/null +++ b/scripts/calculate-hashes.ts @@ -0,0 +1,343 @@ +import { ethers } from "ethers"; +import * as fs from "fs"; +import _ from "lodash"; +import os from "os"; +import { join } from "path"; +import { hashBytecode } from "zksync-ethers/build/utils"; + +type SourceContractDetails = { + contractName: string; +}; + +type EvmCompilations = { + evmBytecodePath: string | null; + evmBytecodeHash: string | null; + evmDeployedBytecodeHash: string | null; +}; + +type ZKCompilation = { + zkBytecodePath: string | null; + zkBytecodeHash: string | null; +}; + +type SourceAndEvmCompilationDetails = SourceContractDetails & EvmCompilations; +type SourceAndZKCompilationDetails = SourceContractDetails & ZKCompilation; + +type ContractsInfo = SourceContractDetails & EvmCompilations & ZKCompilation; + +const findDirsEndingWith = (path: string, endingWith: string): fs.Dirent[] => { + const absolutePath = makePathAbsolute(path); + try { + const dirs = fs.readdirSync(absolutePath, { withFileTypes: true }).filter((dirent) => dirent.isDirectory()); + const dirsEndingWithSol = dirs.filter((dirent) => dirent.name.endsWith(endingWith)); + return dirsEndingWithSol; + } catch (err) { + return []; + } +}; + +const SOLIDITY_ARTIFACTS_ZK_DIR = "zkout"; +const SOLIDITY_ARTIFACTS_DIR = "out"; + +const getBytecodeHashFromZkJson = (jsonFileContents: { bytecode: { object: string } }) => { + try { + return ethers.utils.hexlify(hashBytecode("0x" + jsonFileContents.bytecode.object)); + } catch (err) { + return "0x"; + } +}; + +type EvmJsonFileContents = { + bytecode: { object: string }; + deployedBytecode: { object: string }; +}; + +const getBytecodeHashFromEvmJson = (jsonFileContents: EvmJsonFileContents) => { + try { + if (jsonFileContents.deployedBytecode.object == "0x") { + return ["0x", "0x"]; + } + return [ + ethers.utils.hexlify( + ethers.utils.keccak256(ethers.utils.arrayify(ethers.utils.hexlify(jsonFileContents.bytecode.object))) + ), + ethers.utils.hexlify( + ethers.utils.keccak256(ethers.utils.arrayify(ethers.utils.hexlify(jsonFileContents.deployedBytecode.object))) + ), + ]; + } catch (err) { + return ["0x", "0x"]; + } +}; + +const getZkSolidityContractsDetailsWithArtifactsDir = (workDir: string): SourceAndZKCompilationDetails[] => { + const artifactsDir = SOLIDITY_ARTIFACTS_ZK_DIR; + const bytecodesDir = join(workDir, artifactsDir); + const dirsEndingWithSol = findDirsEndingWith(bytecodesDir, ".sol").filter( + (dirent) => !dirent.name.endsWith(".t.sol") && !dirent.name.endsWith(".s.sol") && !dirent.name.endsWith("Test.sol") + ); + + const compiledFiles = dirsEndingWithSol + .map((d) => { + const contractFiles = fs + .readdirSync(join(d.path, d.name), { withFileTypes: true }) + .filter((dirent) => dirent.isFile() && dirent.name.endsWith(".json") && !dirent.name.includes("dbg")) + .map((dirent) => dirent.name); + + return contractFiles.map((c) => { + return join(d.path, d.name, c); + }); + }) + .flat(); + + return compiledFiles + .map((jsonFile) => { + const jsonFileContents = JSON.parse(fs.readFileSync(jsonFile, "utf8")); + const zkBytecodeHash = getBytecodeHashFromZkJson(jsonFileContents); + + const zkBytecodePath = jsonFile.startsWith(join(__dirname, "..")) + ? jsonFile.replace(join(__dirname, ".."), "") + : jsonFile; + + const contractName = (jsonFile.split("/").pop() || "").replace(".json", ""); + + return { + contractName: join(workDir, contractName), + zkBytecodePath, + zkBytecodeHash, + }; + // Filter out the interfaces (that don't have any bytecode). + }) + .filter((c) => c.zkBytecodeHash != "0x"); +}; + +const getEVMSolidityContractsDetailsWithArtifactsDir = (workDir: string): SourceAndEvmCompilationDetails[] => { + const artifactsDir = SOLIDITY_ARTIFACTS_DIR; + const bytecodesDir = join(workDir, artifactsDir); + const dirsEndingWithSol = findDirsEndingWith(bytecodesDir, ".sol").filter( + (dirent) => !dirent.name.endsWith(".t.sol") && !dirent.name.endsWith(".s.sol") && !dirent.name.endsWith("Test.sol") + ); + + const compiledFiles = dirsEndingWithSol + .map((d) => { + const contractFiles = fs + .readdirSync(join(d.path, d.name), { withFileTypes: true }) + .filter((dirent) => dirent.isFile() && dirent.name.endsWith(".json") && !dirent.name.includes("dbg")) + .map((dirent) => dirent.name); + + return contractFiles.map((c) => { + return join(d.path, d.name, c); + }); + }) + .flat(); + + return compiledFiles + .map((jsonFile) => { + const jsonFileContents = JSON.parse(fs.readFileSync(jsonFile, "utf8")); + const hashes = getBytecodeHashFromEvmJson(jsonFileContents); + + const evmBytecodePath = jsonFile.startsWith(join(__dirname, "..")) + ? jsonFile.replace(join(__dirname, ".."), "") + : jsonFile; + + const contractName = (jsonFile.split("/").pop() || "").replace(".json", ""); + + return { + contractName: join(workDir, contractName), + evmBytecodePath, + evmBytecodeHash: hashes[0], + evmDeployedBytecodeHash: hashes[1], + }; + // Filter out the interfaces (that don't have any bytecode). + }) + .filter((c) => c.evmBytecodeHash != "0x"); +}; + +const getSolidityContractsDetails = (dir: string): ContractsInfo[] => { + const zkContracts = getZkSolidityContractsDetailsWithArtifactsDir(dir); + const contracts = getEVMSolidityContractsDetailsWithArtifactsDir(dir); + + const mergedContracts: ContractsInfo[] = []; + + zkContracts.forEach((contract) => { + const newContract: ContractsInfo = { + contractName: contract.contractName, + zkBytecodeHash: contract.zkBytecodeHash, + zkBytecodePath: contract.zkBytecodePath, + evmBytecodeHash: null, + evmBytecodePath: null, + evmDeployedBytecodeHash: null, + }; + mergedContracts.push(newContract); + }); + + contracts.forEach((contract) => { + const existingContract = mergedContracts.find((c) => c.contractName === contract.contractName); + + if (existingContract) { + existingContract.evmBytecodeHash = contract.evmBytecodeHash; + existingContract.evmBytecodePath = contract.evmBytecodePath; + existingContract.evmDeployedBytecodeHash = contract.evmDeployedBytecodeHash; + } else { + const newContract: ContractsInfo = { + contractName: contract.contractName, + evmBytecodeHash: contract.evmBytecodeHash, + evmBytecodePath: contract.evmBytecodePath, + evmDeployedBytecodeHash: contract.evmDeployedBytecodeHash, + zkBytecodeHash: null, + zkBytecodePath: null, + }; + mergedContracts.push(newContract); + } + }); + + return mergedContracts; +}; + +const getYulContractsDetails = (dir: string): ContractsInfo[] => { + const bytecodesDir = join(dir, SOLIDITY_ARTIFACTS_ZK_DIR); + const dirsEndingWithYul = findDirsEndingWith(bytecodesDir, ".yul").filter( + (dirent) => !dirent.name.endsWith(".t.sol") + ); + + const compiledFiles = dirsEndingWithYul + .map((d) => { + const contractFiles = fs + .readdirSync(join(d.path, d.name), { withFileTypes: true, recursive: true }) + .filter((dirent) => dirent.isFile() && dirent.name.endsWith(".json") && !dirent.name.includes("dbg")); + + return contractFiles.map((c) => { + return join(c.path, c.name); + }); + }) + .flat(); + + return compiledFiles + .map((jsonFile) => { + const jsonFileContents = JSON.parse(fs.readFileSync(jsonFile, "utf8")); + const zkBytecodeHash = getBytecodeHashFromZkJson(jsonFileContents); + + const zkBytecodePath = jsonFile.startsWith(join(__dirname, "..")) + ? jsonFile.replace(join(__dirname, ".."), "") + : jsonFile; + + const contractName = (jsonFile.split("/").pop() || "").replace(".json", ""); + + return { + contractName, + zkBytecodePath, + zkBytecodeHash, + evmBytecodePath: null, + evmBytecodeHash: null, + evmDeployedBytecodeHash: null, + }; + // Filter out the interfaces (that don't have any bytecode). + }) + .filter((c) => c.zkBytecodeHash != "0x"); +}; + +const makePathAbsolute = (path: string): string => { + return join(__dirname, "..", path); +}; + +const readSystemContractsHashesFile = (path: string): ContractsInfo[] => { + const absolutePath = makePathAbsolute(path); + try { + const file = fs.readFileSync(absolutePath, "utf8"); + const parsedFile = JSON.parse(file); + return parsedFile; + } catch (err) { + const msg = err instanceof Error ? err.message : "Unknown error"; + throw new Error(`Failed to read file: ${absolutePath} Error: ${msg}`); + } +}; + +const saveSystemContractsHashesFile = (path: string, systemContractsHashes: ContractsInfo[]) => { + const absolutePath = makePathAbsolute(path); + try { + fs.writeFileSync(absolutePath, JSON.stringify(systemContractsHashes, null, 2) + os.EOL); + } catch (err) { + const msg = err instanceof Error ? err.message : "Unknown error"; + throw new Error(`Failed to save file: ${absolutePath} Error: ${msg}`); + } +}; + +const findDifferences = (newHashes: ContractsInfo[], oldHashes: ContractsInfo[]) => { + const differentElements = _.xorWith(newHashes, oldHashes, _.isEqual); + + const differentUniqueElements = _.uniqWith(differentElements, (a, b) => a.contractName === b.contractName); + + const differencesList = differentUniqueElements.map((diffElem) => { + const newHashesElem = newHashes.find((elem) => elem.contractName === diffElem.contractName); + + const oldHashesElem = oldHashes.find((elem) => elem.contractName === diffElem.contractName); + + const differingFields = _.xorWith( + Object.entries(newHashesElem || {}), + Object.entries(oldHashesElem || {}), + _.isEqual + ); + + const differingFieldsUniqueKeys = _.uniq(differingFields.map(([key]) => key)); + + return { + contract: diffElem.contractName, + differingFields: differingFieldsUniqueKeys, + old: oldHashesElem || {}, + new: newHashesElem || {}, + }; + }); + + return differencesList; +}; + +const SOLIDITY_SOURCE_CODE_PATHS = ["system-contracts/", "l2-contracts/", "l1-contracts/"]; +const YUL_SOURCE_CODE_PATHS = ["system-contracts/"]; +const OUTPUT_FILE_PATH = "AllContractsHashes.json"; + +const main = async () => { + const args = process.argv; + if (args.length > 3 || (args.length == 3 && !args.includes("--check-only"))) { + console.log( + "This command can be used with no arguments or with the --check-only flag. Use the --check-only flag to check the hashes without updating the SystemContractsHashes.json file." + ); + process.exit(1); + } + const checkOnly = args.includes("--check-only"); + + const solidityContractsDetails = _.flatten(SOLIDITY_SOURCE_CODE_PATHS.map(getSolidityContractsDetails)); + const yulContractsDetails = _.flatten(YUL_SOURCE_CODE_PATHS.map(getYulContractsDetails)); + const systemContractsDetails = [...solidityContractsDetails, ...yulContractsDetails]; + + console.log("New hashes: ", systemContractsDetails.length); + + const newSystemContractsHashes = systemContractsDetails; + const oldSystemContractsHashes = readSystemContractsHashesFile(OUTPUT_FILE_PATH); + if (_.isEqual(newSystemContractsHashes, oldSystemContractsHashes)) { + console.log("Calculated hashes match the hashes in the SystemContractsHashes.json file."); + console.log("Exiting..."); + return; + } + const differences = findDifferences(newSystemContractsHashes, oldSystemContractsHashes); + console.log("Calculated hashes differ from the hashes in the SystemContractsHashes.json file. Differences:"); + console.log(differences); + if (checkOnly) { + console.log("You can use the `yarn calculate-hashes:fix` command to update the AllContractHashes.json file."); + console.log("Exiting..."); + process.exit(1); + } else { + console.log("Updating..."); + saveSystemContractsHashesFile(OUTPUT_FILE_PATH, newSystemContractsHashes); + console.log("Update finished"); + console.log("Exiting..."); + return; + } +}; + +main() + .then(() => process.exit(0)) + .catch((err) => { + console.error("Error:", err.message || err); + console.log("Please make sure to run `yarn sc build` before running this script."); + process.exit(1); + });