Skip to content

0xPolygonHermez/zkevm-contracts

Repository files navigation

zkevm-contracts

Smart contract implementation which will be used by the polygon zkevm

Main CI

Mainnet Contracts:

Contract Name Address
PolygonRollupManager 0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2
PolygonZkEVMBridgeV2 0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe
PolygonZkEVMGlobalExitRootV2 0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb
FflonkVerifier 0x4F9A0e7FD2Bf6067db6994CF12E4495Df938E6e9
PolygonZkEVMDeployer 0xCB19eDdE626906eB1EE52357a27F62dd519608C2
PolygonZkEVMTimelock 0xEf1462451C30Ea7aD8555386226059Fe837CA4EF

zkEVM Contracts:

Contract Name Address
PolygonZkEVMBridgeV2 0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe
PolygonZkEVMTimelock 0xBBa0935Fa93Eb23de7990b47F0D96a8f75766d13

Requirements

  • node version: 16.x
  • npm version: 7.x

Install repo

npm i

Run tests

npm run test

Deploy on hardhat

npm run deploy:ZkEVM:hardhat

Build dockers

npm run docker:contracts

Or if using new docker-compose version

npm run dockerv2:contracts

A new docker hermeznetwork/geth-zkevm-contracts will be created This docker will contain a geth node with the deployed contracts The deployment output can be found in: docker/deploymentOutput/deploy_output.json To run the docker you can use: docker run -p 8545:8545 hermeznetwork/geth-zkevm-contracts

Note

In order to test, the following private keys are being used. These keys are not meant to be used in any production environment:

  • private key: 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80
    • address:0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266
  • private key: 0xdfd01798f92667dbf91df722434e8fbe96af0211d4d1b82bbbbc8f1def7a814f
    • address:0xc949254d682d8c9ad5682521675b8f43b102aec4

Verify Deployed Smart Contracts

To verify that the smartcontracts of this repository are the same deployed on mainnet, you could follow the instructions described document

The smartcontract used to verify a proof, it's a generated contract from zkEVM Rom and Pil (constraints). To verify the deployment of this smartcontract you could follow the instructions described in this document

Activate github hook

git config --local core.hooksPath .githooks/