Skip to content

Commit

Permalink
Merge pull request #181 from 0xPolygonHermez/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
invocamanman committed Feb 20, 2024
2 parents 53e95f3 + c91c003 commit d70266b
Show file tree
Hide file tree
Showing 255 changed files with 80,483 additions and 41,432 deletions.
14 changes: 14 additions & 0 deletions .githooks/pre-commit
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,20 @@ if npm run lint; then
cp artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json compiled-contracts/
cp artifacts/contracts/deployment/PolygonZkEVMDeployer.sol/PolygonZkEVMDeployer.json compiled-contracts/
cp artifacts/contracts/PolygonZkEVMTimelock.sol/PolygonZkEVMTimelock.json compiled-contracts/

cp artifacts/contracts/v2/PolygonRollupManager.sol/PolygonRollupManager.json compiled-contracts/
cp artifacts/contracts/v2/mocks/PolygonRollupManagerMock.sol/PolygonRollupManagerMock.json compiled-contracts/
cp artifacts/contracts/v2/mocks/PolygonRollupManagerMockInternalTest.sol/PolygonRollupManagerMockInternalTest.json compiled-contracts/

cp artifacts/contracts/v2/PolygonZkEVMBridgeV2.sol/PolygonZkEVMBridgeV2.json compiled-contracts/
cp artifacts/contracts/v2/PolygonZkEVMGlobalExitRootV2.sol/PolygonZkEVMGlobalExitRootV2.json compiled-contracts/

cp artifacts/contracts/v2/PolygonZkEVMGlobalExitRootV2.sol/PolygonZkEVMGlobalExitRootV2.json compiled-contracts/
cp artifacts/contracts/v2/consensus/zkEVM/PolygonZkEVMEtrog.sol/PolygonZkEVMEtrog.json compiled-contracts/
cp artifacts/contracts/v2/consensus/zkEVM/PolygonZkEVMExistentEtrog.sol/PolygonZkEVMExistentEtrog.json compiled-contracts/

cp artifacts/contracts/v2/consensus/validium/PolygonValidiumEtrog.sol/PolygonValidiumEtrog.json compiled-contracts/
cp artifacts/contracts/v2/consensus/validium/PolygonDataCommittee.sol/PolygonDataCommittee.json compiled-contracts/
git add compiled-contracts
exit 0
else
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,5 +56,5 @@ jobs:
platforms: linux/amd64,linux/arm64
push: true
tags: hermeznetwork/geth-zkevm-contracts:1.5-integration
file: docker/Dockerfile.geth
file: docker/Dockerfile
context: .
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,8 @@ deploy_parameters.json
deployments
upgrade_parameters.json
docker/gethData/
*.ignore/
*.ignore/
typechain-types/
create_rollup_parameters.json

docker/deploymentOutput
35 changes: 22 additions & 13 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -1,15 +1,24 @@
{
"overrides": [
{
"files": "*.sol",
"options": {
"printWidth": 80,
"tabWidth": 4,
"useTabs": false,
"singleQuote": false,
"bracketSpacing": false,
"explicitTypes": "always"
}
"printWidth": 120,
"tabWidth": 4,
"useTabs": false,
"semi": true,
"singleQuote": false,
"quoteProps": "as-needed",
"trailingComma": "es5",
"bracketSpacing": false,
"arrowParens": "always",
"overrides": [
{
"files": "*.sol",
"options": {
"printWidth": 80,
"tabWidth": 4,
"useTabs": false,
"singleQuote": false,
"bracketSpacing": false,
"explicitTypes": "always"
}
]
}
}
]
}
3 changes: 2 additions & 1 deletion .solcover.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
module.exports = {
skipFiles: ['mocks', 'interfaces']
skipFiles: ['mocks/', 'interfaces/'],
configureYulOptimizer: true,
};
16 changes: 13 additions & 3 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
{
"editor.formatOnSave": false,
"editor.formatOnSave": true,
"solidity.linter": "solhint",
"solidity.compileUsingRemoteVersion": "v0.8.20+commit.e14f2714",
"solidity.remappings": ["@openzeppelin/=node_modules/@openzeppelin"],
"solidity.compileUsingRemoteVersion": "v0.8.20+commit.a1b79de6",
"solidity.remappings": [
"@openzeppelin/=node_modules/@openzeppelin"
],
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true
},
"[solidity]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true
},
}
78 changes: 37 additions & 41 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,33 @@
# zkevm-contracts

Smart contract implementation which will be used by the polygon-hermez zkevm
Smart contract implementation which will be used by the polygon zkevm

[![Main CI](https://github.com/0xPolygonHermez/zkevm-contracts/actions/workflows/main.yml/badge.svg)](https://github.com/0xPolygonHermez/zkevm-contracts/actions/workflows/main.yml)

## Note

Private keys and mnemonics contained in this repository are used for internal test exclusively. Do not use them in production environments

## Requirements
## Mainnet Contracts:

- node version: 16.x
- npm version: 7.x
| Contract Name | Address |
| ---------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| PolygonRollupManager | [0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2](https://etherscan.io/address/0x5132A183E9F3CB7C848b0AAC5Ae0c4f0491B7aB2) |
| PolygonZkEVMBridgeV2 | [0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe](https://etherscan.io/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe) |
| PolygonZkEVMGlobalExitRootV2 | [0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb](https://etherscan.io/address/0x580bda1e7A0CFAe92Fa7F6c20A3794F169CE3CFb) |
| FflonkVerifier | [0x4F9A0e7FD2Bf6067db6994CF12E4495Df938E6e9](https://etherscan.io/address/0x4F9A0e7FD2Bf6067db6994CF12E4495Df938E6e9) |
| PolygonZkEVMDeployer | [0xCB19eDdE626906eB1EE52357a27F62dd519608C2](https://etherscan.io/address/0xCB19eDdE626906eB1EE52357a27F62dd519608C2) |
| PolygonZkEVMTimelock | [0xEf1462451C30Ea7aD8555386226059Fe837CA4EF](https://etherscan.io/address/0xEf1462451C30Ea7aD8555386226059Fe837CA4EF) |

## Repository structure
## zkEVM Contracts:

- `contracts`: zkevm contracts
- `PolygonZkEVMBridge.sol`: transfer assets between chains
- `PolygonZkEVMGlobalExitRoot.sol`: manage global exit root in L1
- `PolygonZkEVMGlobalExitRootL2.sol`: manage global exit root in L2
- `PolygonZkEVM.sol`: consensus algorithm used by polygon hermez zkevm
- `docs`: specs and useful links
- `test`: contracts tests
| Contract Name | Address |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| PolygonZkEVMBridgeV2 | [0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe](https://zkevm.polygonscan.com/address/0x2a3DD3EB832aF982ec71669E178424b10Dca2EDe) |
| PolygonZkEVMTimelock | [0xBBa0935Fa93Eb23de7990b47F0D96a8f75766d13](https://zkevm.polygonscan.com/address/0xBBa0935Fa93Eb23de7990b47F0D96a8f75766d13) |

## Activate github hook
## Requirements

```
git config --local core.hooksPath .githooks/
```
- node version: 16.x
- npm version: 7.x

## Install
## Install repo

```
npm i
Expand All @@ -41,20 +39,6 @@ npm i
npm run test
```

## Run Linter

See errors:

```
npm run lint
```

Autofix errors:

```
npm run lint:fix
```

## Deploy on hardhat

```
Expand All @@ -67,22 +51,34 @@ npm run deploy:ZkEVM:hardhat
npm run docker:contracts
```

A new docker `hermez-geth1.3:latest` will be created
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 hermez-geth1.3:latest`
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`
- 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](verifyMainnetDeployment/verifyDeployment.md)

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](verifyMainnetDeployment/verifyMainnetProofVerifier.md)

## Activate github hook

```
git config --local core.hooksPath .githooks/
```
4 changes: 2 additions & 2 deletions compiled-contracts/FflonkVerifier.json

Large diffs are not rendered by default.

Loading

0 comments on commit d70266b

Please sign in to comment.