diff --git a/.github/workflows/build-docker.yml b/.github/workflows/build-docker.yml index a8bfa1c2b..84f77df6c 100644 --- a/.github/workflows/build-docker.yml +++ b/.github/workflows/build-docker.yml @@ -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: . diff --git a/.gitignore b/.gitignore index 4f37d8194..ccfa57616 100644 --- a/.gitignore +++ b/.gitignore @@ -19,4 +19,6 @@ upgrade_parameters.json docker/gethData/ *.ignore/ typechain-types/ -create_rollup_parameters.json \ No newline at end of file +create_rollup_parameters.json + +docker/deploymentOutput \ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 000000000..1bf7bf17f --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,19 @@ +FROM ethereum/client-go:v1.12.0 + +RUN apk update +RUN apk add --no-cache nginx + +RUN nginx -v + +COPY docker/entrypoint.sh /usr/local/bin/entrypoint.sh +COPY docker/nginx.conf /etc/nginx/nginx.conf + +EXPOSE 8545 +EXPOSE 9545 + +COPY docker/gethData / +COPY docker/deploymentOutput /config/ + +ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] + +CMD ["--rpc.allow-unprotected-txs", "--http", "--http.addr", "0.0.0.0", "--http.corsdomain", "*", "--http.vhosts", "*", "--ws", "--ws.origins", "*", "--ws.addr", "0.0.0.0", "--dev", "--dev.period", "1", "--datadir", "/geth_data"] diff --git a/docker/Dockerfile.geth b/docker/Dockerfile.geth deleted file mode 100644 index 4788debaa..000000000 --- a/docker/Dockerfile.geth +++ /dev/null @@ -1,8 +0,0 @@ -FROM ethereum/client-go:v1.12.0 - -EXPOSE 8545 - -COPY docker/gethData / - -ENTRYPOINT ["geth"] -CMD ["--rpc.allow-unprotected-txs", "--http", "--http.addr", "0.0.0.0","--http.corsdomain", "*", "--http.vhosts" ,"*", "--ws", "--ws.origins", "*", "--ws.addr", "0.0.0.0", "--dev", "--dev.period", "1", "--datadir", "/geth_data"] \ No newline at end of file diff --git a/docker/docker-compose.geth.yml b/docker/docker-compose.yml similarity index 100% rename from docker/docker-compose.geth.yml rename to docker/docker-compose.yml diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh new file mode 100755 index 000000000..7a29a3c72 --- /dev/null +++ b/docker/entrypoint.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env sh + +set -xeuo + +nginx -g 'daemon off;' & + +geth "$@" diff --git a/docker/nginx.conf b/docker/nginx.conf new file mode 100644 index 000000000..6b1e8c094 --- /dev/null +++ b/docker/nginx.conf @@ -0,0 +1,35 @@ +user nginx; +worker_processes auto; +error_log /var/log/nginx/error.log; +pid /run/nginx.pid; + +include /usr/share/nginx/modules/*.conf; + +events { + worker_connections 1024; +} + +http { + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + include /etc/nginx/mime.types; + default_type application/json; + + server { + listen 9545 default_server; + listen [::]:9545 default_server; + + server_name _; + root /config; + + location / { + alias /config/; + default_type application/json; + index deploy_output.json; + } + } +} diff --git a/docker/scripts/v1ToV2/deploy-docker.sh b/docker/scripts/v1ToV2/deploy-docker.sh index 6e9fe02ee..fd3049549 100755 --- a/docker/scripts/v1ToV2/deploy-docker.sh +++ b/docker/scripts/v1ToV2/deploy-docker.sh @@ -1,6 +1,6 @@ #!/bin/bash sudo rm -rf docker/gethData/geth_data -DEV_PERIOD=1 docker-compose -f docker/docker-compose.geth.yml up -d geth +DEV_PERIOD=1 docker-compose -f docker/docker-compose.yml up -d geth sleep 5 node docker/scripts/fund-accounts.js cp docker/scripts/testV1ToV2/deploy_parameters_docker.json deployment/testV1ToV2/deploy_parameters.json @@ -8,7 +8,7 @@ npm run deploy:testnet:testV1ToV2:localhost mkdir docker/deploymentOutput mv deployment/testV1ToV2/deploy_output.json docker/deploymentOutput mv deployment/testV1ToV2/genesis.json docker/deploymentOutput -DEV_PERIOD=1 docker-compose -f docker/docker-compose.geth.yml down -sudo docker build -t hermeznetwork/geth-zkevm-contracts -f docker/Dockerfile.geth . +DEV_PERIOD=1 docker-compose -f docker/docker-compose.yml down +docker build -t hermeznetwork/geth-zkevm-contracts -f docker/Dockerfile . # Let it readable for the multiplatform build coming later! sudo chmod -R go+rxw docker/gethData diff --git a/docker/scripts/v1ToV2/deploy-dockerv2.sh b/docker/scripts/v1ToV2/deploy-dockerv2.sh index 47a15b7a7..edc4ec44a 100755 --- a/docker/scripts/v1ToV2/deploy-dockerv2.sh +++ b/docker/scripts/v1ToV2/deploy-dockerv2.sh @@ -1,6 +1,6 @@ #!/bin/bash sudo rm -rf docker/gethData/geth_data -DEV_PERIOD=1 docker compose -f docker/docker-compose.geth.yml up -d geth +DEV_PERIOD=1 docker compose -f docker/docker-compose.yml up -d geth sleep 5 node docker/scripts/fund-accounts.js cp docker/scripts/testV1ToV2/deploy_parameters_docker.json deployment/testV1ToV2/deploy_parameters.json @@ -8,7 +8,7 @@ npm run deploy:testnet:testV1ToV2:localhost mkdir docker/deploymentOutput mv deployment/testV1ToV2/deploy_output.json docker/deploymentOutput mv deployment/testV1ToV2/genesis.json docker/deploymentOutput -DEV_PERIOD=1 docker compose -f docker/docker-compose.geth.yml down -sudo docker build -t hermeznetwork/geth-zkevm-contracts -f docker/Dockerfile.geth . +DEV_PERIOD=1 docker compose -f docker/docker-compose.yml down +docker build -t hermeznetwork/geth-zkevm-contracts -f docker/Dockerfile . # Let it readable for the multiplatform build coming later! sudo chmod -R go+rxw docker/gethData \ No newline at end of file diff --git a/docker/scripts/v2/deploy-docker.sh b/docker/scripts/v2/deploy-docker.sh index b7c330d2a..77f305a83 100755 --- a/docker/scripts/v2/deploy-docker.sh +++ b/docker/scripts/v2/deploy-docker.sh @@ -1,6 +1,6 @@ #!/bin/bash sudo rm -rf docker/gethData/geth_data -DEV_PERIOD=1 docker-compose -f docker/docker-compose.geth.yml up -d geth +DEV_PERIOD=1 docker-compose -f docker/docker-compose.yml up -d geth sleep 5 node docker/scripts/fund-accounts.js cp docker/scripts/v2/deploy_parameters_docker.json deployment/v2/deploy_parameters.json @@ -10,7 +10,7 @@ mkdir docker/deploymentOutput mv deployment/v2/deploy_output.json docker/deploymentOutput mv deployment/v2/genesis.json docker/deploymentOutput mv deployment/v2/create_rollup_output.json docker/deploymentOutput -DEV_PERIOD=1 docker-compose -f docker/docker-compose.geth.yml down -sudo docker build -t hermeznetwork/geth-zkevm-contracts -f docker/Dockerfile.geth . +DEV_PERIOD=1 docker-compose -f docker/docker-compose.yml down +docker build -t hermeznetwork/geth-zkevm-contracts -f docker/Dockerfile --progress . # Let it readable for the multiplatform build coming later! sudo chmod -R go+rxw docker/gethData diff --git a/docker/scripts/v2/deploy-dockerv2.sh b/docker/scripts/v2/deploy-dockerv2.sh index feabb0a87..75dba6775 100755 --- a/docker/scripts/v2/deploy-dockerv2.sh +++ b/docker/scripts/v2/deploy-dockerv2.sh @@ -1,6 +1,6 @@ #!/bin/bash sudo rm -rf docker/gethData/geth_data -DEV_PERIOD=1 docker compose -f docker/docker-compose.geth.yml up -d geth +DEV_PERIOD=1 docker compose -f docker/docker-compose.yml up -d geth sleep 5 node docker/scripts/fund-accounts.js cp docker/scripts/v2/deploy_parameters_docker.json deployment/v2/deploy_parameters.json @@ -10,7 +10,7 @@ mkdir docker/deploymentOutput mv deployment/v2/deploy_output.json docker/deploymentOutput mv deployment/v2/genesis.json docker/deploymentOutput mv deployment/v2/create_rollup_output.json docker/deploymentOutput -DEV_PERIOD=1 docker compose -f docker/docker-compose.geth.yml down -sudo docker build -t hermeznetwork/geth-zkevm-contracts -f docker/Dockerfile.geth . +DEV_PERIOD=1 docker compose -f docker/docker-compose.yml down +docker build -t hermeznetwork/geth-zkevm-contracts -f docker/Dockerfile . # Let it readable for the multiplatform build coming later! sudo chmod -R go+rxw docker/gethData \ No newline at end of file diff --git a/hardhat.config.ts b/hardhat.config.ts index 3a207099d..ea1982a00 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -43,7 +43,7 @@ const config: HardhatUserConfig = { enabled: true, runs: 999999, }, - evmVersion: "shanghai", + evmVersion: "paris", }, }, { @@ -80,9 +80,9 @@ const config: HardhatUserConfig = { settings: { optimizer: { enabled: true, - runs: 500, + runs: 99, }, - evmVersion: "shanghai", + evmVersion: "paris", }, // try yul optimizer }, "contracts/v2/PolygonZkEVMBridgeV2.sol": { @@ -90,20 +90,20 @@ const config: HardhatUserConfig = { settings: { optimizer: { enabled: true, - runs: 999, + runs: 99, }, - evmVersion: "shanghai", + evmVersion: "paris", }, }, - "contracts/v2/newDeployments/PolygonRollupManagerNotUpgraded.sol": { + "contracts/lib/TokenWrapped.sol": { version: "0.8.20", settings: { optimizer: { enabled: true, - runs: 500, + runs: 9999, // must be the same as bridge, for testing porpuses }, - evmVersion: "shanghai", - }, // try yul optimizer + evmVersion: "paris", + }, }, "contracts/v2/mocks/PolygonRollupManagerMock.sol": { version: "0.8.20", @@ -112,7 +112,7 @@ const config: HardhatUserConfig = { enabled: true, runs: 10, }, - evmVersion: "shanghai", + evmVersion: "paris", }, // try yul optimizer }, // Should have the same optimizations than the RollupManager to verify @@ -121,9 +121,19 @@ const config: HardhatUserConfig = { settings: { optimizer: { enabled: true, - runs: 500, + runs: 10, + }, + evmVersion: "paris", + }, // try yul optimizer + }, + "contracts/v2/newDeployments/PolygonRollupManagerNotUpgraded.sol": { + version: "0.8.20", + settings: { + optimizer: { + enabled: true, + runs: 10, }, - evmVersion: "shanghai", + evmVersion: "paris", }, // try yul optimizer }, }, @@ -173,17 +183,6 @@ const config: HardhatUserConfig = { count: 20, }, }, - sepolia: { - url: process.env.SEPOLIA_PROVIDER - ? process.env.SEPOLIA_PROVIDER - : `https://sepolia.infura.io/v3/${process.env.INFURA_PROJECT_ID}`, - accounts: { - mnemonic: process.env.MNEMONIC || DEFAULT_MNEMONIC, - path: "m/44'/60'/0'/0", - initialIndex: 0, - count: 20, - }, - }, localhost: { url: "http://127.0.0.1:8545", accounts: { @@ -195,7 +194,7 @@ const config: HardhatUserConfig = { }, hardhat: { initialDate: "0", - allowUnlimitedContractSize: true, + //allowUnlimitedContractSize: true, initialBaseFeePerGas: 0, accounts: { mnemonic: process.env.MNEMONIC || DEFAULT_MNEMONIC, @@ -222,15 +221,6 @@ const config: HardhatUserConfig = { count: 20, }, }, - zkevmDevnet: { - url: "http://123:123:123:123:123", - accounts: { - mnemonic: process.env.MNEMONIC || DEFAULT_MNEMONIC, - path: "m/44'/60'/0'/0", - initialIndex: 0, - count: 20, - }, - }, }, gasReporter: { enabled: !!process.env.REPORT_GAS, @@ -242,9 +232,7 @@ const config: HardhatUserConfig = { polygonZKEVMTestnet: `${process.env.ETHERSCAN_ZKEVM_API_KEY}`, polygonZKEVMMainnet: `${process.env.ETHERSCAN_ZKEVM_API_KEY}`, goerli: `${process.env.ETHERSCAN_API_KEY}`, - sepolia: `${process.env.ETHERSCAN_API_KEY}`, mainnet: `${process.env.ETHERSCAN_API_KEY}`, - zkevmDevnet: `${process.env.ETHERSCAN_API_KEY}`, }, customChains: [ { @@ -263,16 +251,8 @@ const config: HardhatUserConfig = { browserURL: "https://testnet-zkevm.polygonscan.com/", }, }, - { - network: "zkevmDevnet", - chainId: 123, - urls: { - apiURL: "http://123:123:123:123:123/api", - browserURL: "http://123:123:123:123:123", - }, - }, ], }, }; -export default config; +export default config; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 8d7f98dd7..2fc51a05d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@0xpolygonhermez/zkevm-contracts", - "version": "2.0.0", + "version": "3.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@0xpolygonhermez/zkevm-contracts", - "version": "2.0.0", + "version": "3.0.0", "license": "pending", "devDependencies": { "@0xpolygonhermez/zkevm-commonjs": "github:0xPolygonHermez/zkevm-commonjs#main",