Skip to content

Commit 97cad9a

Browse files
authored
Merge pull request #584 from agglayer/feature/v12
Feature/v12
2 parents 1a701e1 + e30a478 commit 97cad9a

File tree

376 files changed

+48098
-25962
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

376 files changed

+48098
-25962
lines changed

.eslintrc.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,6 @@ module.exports = {
4242
'import/extensions': 'off',
4343
'@typescript-eslint/no-unused-vars': ['error'],
4444
'@typescript-eslint/explicit-function-return-type': 'off',
45-
'@typescript-eslint/no-explicit-any': 'warn',
45+
'@typescript-eslint/no-explicit-any': 'off',
4646
},
4747
};

.githooks/pre-commit

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,19 @@ if npm run lint; then
88

99
## copy contracts ABI to be exposed
1010
## V1 contracts
11-
cp artifacts/contracts/PolygonZkEVMGlobalExitRootL2.sol/PolygonZkEVMGlobalExitRootL2.json compiled-contracts/
11+
cp artifacts/contracts/LegacyAgglayerGERL2.sol/LegacyAgglayerGERL2.json compiled-contracts/
1212
cp artifacts/contracts/lib/TokenWrapped.sol/TokenWrapped.json compiled-contracts/
1313
cp artifacts/contracts/deployment/PolygonZkEVMDeployer.sol/PolygonZkEVMDeployer.json compiled-contracts/
14-
cp artifacts/contracts/PolygonZkEVMTimelock.sol/PolygonZkEVMTimelock.json compiled-contracts/
14+
cp artifacts/contracts/AgglayerTimelock.sol/AgglayerTimelock.json compiled-contracts/
1515

1616
## Mocks
1717
cp artifacts/contracts/mocks/PolygonZkEVMBridgeMock.sol/PolygonZkEVMBridgeMock.json compiled-contracts/
1818
cp artifacts/contracts/mocks/ERC20PermitMock.sol/ERC20PermitMock.json compiled-contracts/
19-
cp artifacts/contracts/mocks/PolygonZkEVMGlobalExitRootL2Mock.sol/PolygonZkEVMGlobalExitRootL2Mock.json compiled-contracts/
19+
cp artifacts/contracts/mocks/LegacyAgglayerGERL2Mock.sol/LegacyAgglayerGERL2Mock.json compiled-contracts/
2020
cp artifacts/contracts/mocks/PolygonZkEVMGlobalExitRootMock.sol/PolygonZkEVMGlobalExitRootMock.json compiled-contracts/
2121
cp artifacts/contracts/mocks/PolygonZkEVMMock.sol/PolygonZkEVMMock.json compiled-contracts/
2222
cp artifacts/contracts/mocks/VerifierRollupHelperMock.sol/VerifierRollupHelperMock.json compiled-contracts/
23-
cp artifacts/contracts/v2/mocks/PolygonRollupManagerMock.sol/PolygonRollupManagerMock.json compiled-contracts/
23+
cp artifacts/contracts/mocks/AgglayerManagerMock.sol/AgglayerManagerMock.json compiled-contracts/
2424

2525
## Verifiers
2626
cp artifacts/contracts/verifiers/FflonkVerifier_10.sol/FflonkVerifier_10.json compiled-contracts/FflonkVerifier.json
@@ -29,35 +29,34 @@ if npm run lint; then
2929
cp artifacts/contracts/deployment/PolygonZkEVMDeployer.sol/PolygonZkEVMDeployer.json compiled-contracts/
3030
cp artifacts/contracts/verifiers/v4.0.0-rc.3/SP1VerifierPlonk.sol/SP1VerifierPlonk.json compiled-contracts/SP1VerifierPlonk.json
3131
cp artifacts/contracts/deployment/PolygonZkEVMDeployer.sol/PolygonZkEVMDeployer.json compiled-contracts/
32-
cp artifacts/contracts/PolygonZkEVMTimelock.sol/PolygonZkEVMTimelock.json compiled-contracts/
3332

3433
## openzeppelin
3534
cp artifacts/@openzeppelin/contracts4/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json compiled-contracts/
3635
cp artifacts/@openzeppelin/contracts4/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json compiled-contracts/
3736

3837
## V2 General
39-
cp artifacts/contracts/v2/PolygonRollupManager.sol/PolygonRollupManager.json compiled-contracts/
40-
cp artifacts/contracts/v2/PolygonZkEVMBridgeV2.sol/PolygonZkEVMBridgeV2.json compiled-contracts/
41-
cp artifacts/contracts/v2/PolygonZkEVMGlobalExitRootV2.sol/PolygonZkEVMGlobalExitRootV2.json compiled-contracts/
42-
cp artifacts/contracts/v2/PolygonZkEVMGlobalExitRootV2.sol/PolygonZkEVMGlobalExitRootV2.json compiled-contracts/
38+
cp artifacts/contracts/AgglayerManager.sol/AgglayerManager.json compiled-contracts/
39+
cp artifacts/contracts/AgglayerBridge.sol/AgglayerBridge.json compiled-contracts/
40+
cp artifacts/contracts/AgglayerGER.sol/AgglayerGER.json compiled-contracts/
41+
cp artifacts/contracts/AgglayerGER.sol/AgglayerGER.json compiled-contracts/
4342

4443
## V2 Consensus
45-
cp artifacts/contracts/v2/consensus/zkEVM/PolygonZkEVMEtrog.sol/PolygonZkEVMEtrog.json compiled-contracts/
46-
cp artifacts/contracts/v2/consensus/zkEVM/PolygonZkEVMExistentEtrog.sol/PolygonZkEVMExistentEtrog.json compiled-contracts/
47-
cp artifacts/contracts/v2/consensus/validium/PolygonValidiumEtrog.sol/PolygonValidiumEtrog.json compiled-contracts/
48-
cp artifacts/contracts/v2/consensus/validium/PolygonDataCommittee.sol/PolygonDataCommittee.json compiled-contracts/
49-
cp artifacts/contracts/v2/consensus/pessimistic/PolygonPessimisticConsensus.sol/PolygonPessimisticConsensus.json compiled-contracts/
44+
cp artifacts/contracts/consensus/zkEVM/PolygonZkEVMEtrog.sol/PolygonZkEVMEtrog.json compiled-contracts/
45+
cp artifacts/contracts/consensus/zkEVM/PolygonZkEVMExistentEtrog.sol/PolygonZkEVMExistentEtrog.json compiled-contracts/
46+
cp artifacts/contracts/consensus/validium/PolygonValidiumEtrog.sol/PolygonValidiumEtrog.json compiled-contracts/
47+
cp artifacts/contracts/consensus/validium/PolygonDataCommittee.sol/PolygonDataCommittee.json compiled-contracts/
48+
cp artifacts/contracts/consensus/pessimistic/PolygonPessimisticConsensus.sol/PolygonPessimisticConsensus.json compiled-contracts/
5049

5150
## V2 utils
52-
cp artifacts/contracts/v2/periphery/ClaimCompressor.sol/ClaimCompressor.json compiled-contracts/
51+
cp artifacts/contracts/periphery/ClaimCompressor.sol/ClaimCompressor.json compiled-contracts/
5352

5453
## al-v0.3.0
55-
cp artifacts/contracts/v2/sovereignChains/GlobalExitRootManagerL2SovereignChain.sol/GlobalExitRootManagerL2SovereignChain.json compiled-contracts/
56-
cp artifacts/contracts/v2/sovereignChains/BridgeL2SovereignChain.sol/BridgeL2SovereignChain.json compiled-contracts/
57-
cp artifacts/contracts/v2/AggLayerGateway.sol/AggLayerGateway.json compiled-contracts/
58-
cp artifacts/contracts/v2/lib/AggchainBase.sol/AggchainBase.json compiled-contracts/
59-
cp artifacts/contracts/v2/aggchains/AggchainECDSA.sol/AggchainECDSA.json compiled-contracts/
60-
cp artifacts/contracts/v2/aggchains/AggchainFEP.sol/AggchainFEP.json compiled-contracts/
54+
cp artifacts/contracts/sovereignChains/AgglayerGERL2.sol/AgglayerGERL2.json compiled-contracts/
55+
cp artifacts/contracts/sovereignChains/AgglayerBridgeL2.sol/AgglayerBridgeL2.json compiled-contracts/
56+
cp artifacts/contracts/AgglayerGateway.sol/AgglayerGateway.json compiled-contracts/
57+
cp artifacts/contracts/lib/AggchainBase.sol/AggchainBase.json compiled-contracts/
58+
cp artifacts/contracts/aggchains/AggchainECDSA.sol/AggchainECDSA.json compiled-contracts/
59+
cp artifacts/contracts/aggchains/AggchainFEP.sol/AggchainFEP.json compiled-contracts/
6160

6261
git add compiled-contracts
6362

.github/CODEOWNERS

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,2 @@
11
# global owner
2-
* @invocamanman
3-
4-
# src owners
5-
/contracts/ @invocamanman @krlosMata @ignasirv @laisolizq
2+
* @invocamanman @krlosMata @alrevuelta @laisolizq
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
## PR Description
2+
3+
## Checklist
4+
- [ ] The CHANGELOG file has been updated.
5+
- [ ] The release change information has been added in more detail to the documentation [repository](https://github.com/agglayer/protocol-team-docs).

.github/RELEASE_TEMPLATE.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
> This template is not meant to be automatically generated in GitHub, but it is useful to have it easily accessible when we create a release.
2+
3+
## Contracts Versions
4+
* ⚠️ `AgglayerManager`: ~~v0.0.0~~ -> v1.0.0
5+
* `AgglayerBridge`: v1.0.0
6+
* `AgglayerGER`: v1.0.0
7+
* `AgglayerGateway`: v1.0.0
8+
* `AgglayerBridgeL2`: v1.0.0
9+
* `AgglayerGERL2`: v1.0.0
10+
* `AggchainFEP`: v1.0.0
11+
* `AggchainECDSA`: v1.0.0
12+
13+
## 🚀 What's New
14+
- [Brief description of new features]
15+
16+
## ⚠️ Breaking Changes
17+
- **Config File Changes**: [Describe any configuration file modifications]
18+
- **API Changes**: [Document any breaking API modifications]
19+
- **Deprecated Features**: [List any features being removed]
20+
21+
## 📋 Configuration Updates
22+
- **Config Diff**: [Link to diff showing configuration changes]
23+
- **Updated Config File**: [Direct GitHub link to the exact config file version]
24+
- **Migration Guide**: [Step-by-step instructions for updating existing configs]
25+
26+
## ✅ Testing & Validation
27+
- **Passing CI Run**: [Link to successful e2e test execution]
28+
- **Test Coverage**: [Confirmation of test coverage for new features]
29+
30+
## 📦 Full Changelog
31+
[Auto-generated PR list and detailed changes]
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
blank_issues_enabled: true
2+
pull_request_templates:
3+
- name: Release PR
4+
path: .github/PULL_REQUEST_TEMPLATE/release.md
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
2+
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
3+
4+
name: Build-Docker all image
5+
6+
on:
7+
push:
8+
branches: [main, develop, feature/v12, feature/outposts]
9+
pull_request:
10+
branches: [main, develop, feature/v12, feature/outposts]
11+
jobs:
12+
build:
13+
runs-on: ubuntu-latest
14+
15+
strategy:
16+
matrix:
17+
node-version: [22.x]
18+
19+
steps:
20+
- name: Use Node.js ${{ matrix.node-version }}
21+
uses: actions/setup-node@v3
22+
with:
23+
node-version: ${{ matrix.node-version }}
24+
- name: Checkout code
25+
uses: actions/checkout@v3
26+
- name: Setup docker
27+
run: |
28+
npm i
29+
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
30+
sudo chmod +x /usr/local/bin/docker-compose
31+
- name: Build docker
32+
run: npm run dockerv2:contracts:all
33+
- name: Test docker
34+
run: npm run docker:tests

.github/workflows/build-docker.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ name: Build-Docker image
55

66
on:
77
push:
8-
branches: [main, develop, feature/ongoing-v0.3.0]
8+
branches: [main, develop, feature/v12, feature/outposts]
99
pull_request:
10-
branches: [main, develop, feature/ongoing-v0.3.0]
10+
branches: [main, develop, feature/v12, feature/outposts]
1111
jobs:
1212
build:
1313
runs-on: ubuntu-latest
Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
name: Push Docker all image
2+
3+
on:
4+
release:
5+
types: [created, published]
6+
7+
concurrency:
8+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
9+
cancel-in-progress: true
10+
11+
permissions:
12+
contents: write
13+
packages: write
14+
15+
env:
16+
REGISTRY: ghcr.io
17+
REGISTRY_IMAGE: ghcr.io/${{ github.repository }}
18+
REGEX_IMAGE: ${{ github.repository }}:\\d+.\\d+.\\d+
19+
20+
jobs:
21+
build:
22+
runs-on: ubuntu-latest
23+
strategy:
24+
fail-fast: false
25+
matrix:
26+
platform:
27+
- linux/amd64
28+
- linux/arm64
29+
outputs:
30+
IMAGE_NAME: ${{ steps.image_builder.outputs.IMAGE }}
31+
TAGS: ${{ steps.meta.outputs.tags }}
32+
VERSION: ${{ steps.meta.outputs.version }}
33+
steps:
34+
35+
- name: Prepare
36+
run: |
37+
platform=${{ matrix.platform }}
38+
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
39+
40+
- name: Checkout
41+
uses: actions/checkout@v4
42+
43+
- name: setup
44+
run: |
45+
npm i
46+
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
47+
sudo chmod +x /usr/local/bin/docker-compose
48+
49+
- name: Docker meta
50+
id: meta
51+
uses: docker/metadata-action@v5
52+
with:
53+
images: ${{ env.REGISTRY_IMAGE }}
54+
tags: |
55+
type=ref,event=branch,suffix=-all
56+
type=ref,event=pr,suffix=-all
57+
type=semver,pattern={{version}}-all
58+
type=semver,pattern={{major}}.{{minor}}-all
59+
60+
- name: Image name builder
61+
id: image_builder
62+
run: |
63+
IMAGE=$(jq -ecr '.tags | map(select(match("${{ env.REGEX_IMAGE }}", "i"))) | first| sub(":.*$";"")' <<< "$DOCKER_METADATA_OUTPUT_JSON")
64+
echo "IMAGE=$IMAGE" >> $GITHUB_OUTPUT
65+
66+
- name: Set up QEMU
67+
uses: docker/setup-qemu-action@v3
68+
69+
- name: Set up Docker Buildx
70+
uses: docker/setup-buildx-action@v3
71+
72+
- name: Login to Docker Hub
73+
uses: docker/login-action@v3
74+
with:
75+
registry: ${{ env.REGISTRY }}
76+
username: ${{ github.actor }}
77+
password: ${{ secrets.GITHUB_TOKEN }}
78+
79+
- name: Build docker
80+
run: npm run dockerv2:contracts:all
81+
- name: Build and push by digest
82+
id: build
83+
uses: docker/build-push-action@v6
84+
with:
85+
context: .
86+
push: false
87+
file: docker/Dockerfile
88+
platforms: ${{ matrix.platform }}
89+
labels: ${{ steps.meta.outputs.labels }}
90+
cache-from: type=gha
91+
cache-to: type=gha,mode=max
92+
outputs: type=image,name=${{ steps.image_builder.outputs.IMAGE }},push-by-digest=true,push=true
93+
94+
- name: Export digest
95+
run: |
96+
mkdir -p /tmp/digests
97+
digest="${{ steps.build.outputs.digest }}"
98+
touch "/tmp/digests/${digest#sha256:}"
99+
100+
- name: Upload digest
101+
uses: actions/upload-artifact@v4
102+
with:
103+
name: digests-${{ env.PLATFORM_PAIR }}
104+
path: /tmp/digests/*
105+
if-no-files-found: error
106+
retention-days: 1
107+
108+
merge:
109+
runs-on: ubuntu-latest
110+
needs:
111+
- build
112+
steps:
113+
- name: Download digests
114+
uses: actions/download-artifact@v4
115+
with:
116+
path: /tmp/digests
117+
pattern: digests-*
118+
merge-multiple: true
119+
120+
- name: Set up Docker Buildx
121+
uses: docker/setup-buildx-action@v3
122+
123+
- name: Login to Docker Hub
124+
uses: docker/login-action@v3
125+
with:
126+
registry: ${{ env.REGISTRY }}
127+
username: ${{ github.actor }}
128+
password: ${{ secrets.GITHUB_TOKEN }}
129+
130+
- name: Create manifest list and push
131+
working-directory: /tmp/digests
132+
run: |
133+
docker buildx imagetools create $(jq -cRr 'split("\n") | map(gsub("\\s+";"")) | map("-t "+ .) | join(" ")' <<< '${{ needs.build.outputs.TAGS }}') \
134+
$(printf '${{ needs.build.outputs.IMAGE_NAME }}@sha256:%s ' *)
135+
136+
- name: Inspect image
137+
run: |
138+
docker buildx imagetools inspect ${{ needs.build.outputs.IMAGE_NAME }}:${{ needs.build.outputs.VERSION }}

.github/workflows/build-push-docker.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: Push Docker image
22

33
on:
44
release:
5-
types: [created]
5+
types: [created, published]
66

77
concurrency:
88
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}

0 commit comments

Comments
 (0)