Releases: agglayer/aggkit
v0.8.1
🔄 Changes Summary
This release introduces support for handling multiple GER (Global Exit Root) injections within the same block by migrating from the imported_global_exit_root table to a new
imported_global_exit_root_v2 table that includes a block_pos column to track the position of each GER within a block. This prevents primary key conflicts when multiple GERs are injected in the same block.
- The legacy downloader set as blockPosition the l1infotreeIndex to avoid duplications
🐞 Issues
- Fixes #1468 - Error when there are 2 or more injected GERs in the same block
Full Changelog: v0.8.0...v0.8.1
v0.9.0-rc2
🔄 Changes Summary
- Fix typo:
AggSender.TriggerASAP.DelayBeetweenCertificates - Fix: If there are 2 injected GER in the same block (#1469) (#1472)
⚠️ Breaking Changes
- Deprecated config field
AggSender.TriggerASAP.DelayBeetweenCertificates
in favour ofDelayBetweenCertificates:
📋 Config Updates
```
[AggSender.TriggerASAP]
DelayBetweenCertificates = "1s"
```
What's Changed
- fix: cherrypick #1468-Error if there are 2 injected GER in the same block (#1469) by @joanestebanr in #1472
- fix: cherry-pick #1471 Fix typo 'DelayBeetweenCertificates' by @joanestebanr in #1473
Full Changelog: v0.9.0-rc1...v0.9.0-rc2
v0.8.1-rc1
🔄 Changes Summary
This release introduces support for handling multiple GER (Global Exit Root) injections within the same block by migrating from the imported_global_exit_root table to a new
imported_global_exit_root_v2 table that includes a block_pos column to track the position of each GER within a block. This prevents primary key conflicts when multiple GERs are injected in the same block.
- The legacy downloader set as blockPosition the l1infotreeIndex to avoid duplications
🐞 Issues
- Fixes #1468 - Error when there are 2 or more injected GERs in the same block
Full Changelog: v0.8.0...v0.8.1-rc1
v0.9.0-rc1
Release v0.9.0-rc1
🚀 What's New
This release brings significant enhancements to the bridge service, certificate management, and event indexing capabilities:
- Bridge Service Client - Implemented a comprehensive bridge service client for improved bridge interactions (#1465)
- Certificate Management - Aggsender is able to sends a new certificate as soon as the latest one is settled, improving settlement efficiency (#1457). To activate this feature:
[AggSender]
TriggerCertMode = "ASAP"
[AggSender.TriggerASAP]
DelayBeetweenCertificates = "1s"
MinimumNewCertificateInterval = "5m"
OnNewL2Bridge = false
- LET Event Indexing - Added support for indexing and handling both
forwardLET(#1404) andBackwardLET(#1379) events - L1InfoTree Configurable Finality - Added configuration option to specify the finality level for L1InfoTree synchronization (#1417)
[AggSender]
BlockFinalityForL1InfoTree = "FinalizedBlock"
- Bridge API Enhancements:
- Hash Calculation - Hash values are now retrieved from RPC instead of being calculated locally (#1397)
- E2E Testing - Streamlined local E2E testing workflow for easier development (#1333)
- Dependencies - Updated to gRPC 1.78.0, protobuf 1.36.11, and quic-go 0.57.0
🐛 Bug Fixes
- Preserved retrocompatibility of claim events indexing (#1441)
- Fixed certificate handling to properly check InError certificates when no pending certificates exist (#1425)
- Corrected typos in certificate function names (#1424)
- Improved block range error parsing for "exceeded maximum block range" errors (#1413)
- Fixed claims count logic after compaction (#1395)
- Corrected
Fromfield synchronization for bridge events (#1372) - Enhanced RPC error handling for "block range too large" errors with automatic chunking (#1390)
- Replaced
BlockByNumberwith more efficientHeaderByNumbercalls (#1385) - Multiple CI/CD and reference updates for improved stability (#1406, #1370, #1373, #1369)
📋 Config Updates
AggSender Block Finality Configuration
[AggSender]
BlockFinalityForL1InfoTree = "FinalizedBlock" - Description: Allows configuration of the finality level to use for L1InfoTree synchronization
- Possible values:
- Block tags: "LatestBlock", "SafeBlock", "PendingBlock", "FinalizedBlock", "EarliestBlock"
- Block tags with offset: "LatestBlock/-10" (10 blocks before latest), "FinalizedBlock/5" (5 blocks after finalized)
- Default: "FinalizedBlock"
- Note: The aggsender target finality must be >= to l1infotree finality, otherwise an error will be raised ...
v0.8.0
🚀 What's New
- Faster deposits from L1 to L2. Use
L1InfoTreeSync.BlockFinalityto modify to inject GERs and claim early. Recommended settings
[L1InfoTreeSync]
BlockFinality = "LatestBlock/-6"
- Refactor the bridge service metrics to rely on Prometheus metrics. All the metrics exposed by the bridge service are prefixed with bridge_.
- Introduce Prometheus for
aggoracle - Provide a way for removing GER and unsetting claims in L2s wrongly injected by aggoracle
- Fix Bridge Service
Fromfield - Fix
transaction type not supportedfor outpost
⚠️ Breaking Changes
aggkit-proverv1.9.0 is required for thisagglayer-contractsv12.2.0 is required for this- Config File Changes:
- Removed
Common.NetworkIDandNetworkID - remove
polygonbridgeaddr. SetL1Config.BridgeAddrandL2Config.BridgeAddr
- Removed
What's Changed
- chore: bump cdk contracts tooling and adjust renames by @Stefan-Ethernal in #1074
- feat: unify all e2e to latest commitid in e2e main branch by @joanestebanr in #1105
- fix: add cleanup step in single chain e2e workflow by @Stefan-Ethernal in #1126
- fix: aggchain params verification by @goran-ethernal in #1122
- fix: determine pre-etrog bridges and encode global indexes differently by @Stefan-Ethernal in #1124
- chore: bump kurtosis cdk and adapt for Fusaka hardfork by @Stefan-Ethernal in #1128
- chore(deps): bump github.com/ethereum/go-ethereum from 1.16.4 to 1.16.5 by @dependabot[bot] in #1134
- feat: turn off
meddlerdebug by @goran-ethernal in #1140 - fix: nightly e2e tests by @Stefan-Ethernal in #1132
- feat: remove calldata from bridge service apis by @rachit77 in #1131
- test: remove fixed gas price when sending tx by @Stefan-Ethernal in #1142
- fix: cherry pick of PR 1145 -
imported-bridge-exitcommitment hash in optimistic mode by @goran-ethernal in #1146 - fix: docker arm image by @tnobayashi in #1151
- refactor: bridge service metrics to prometheus by @Stefan-Ethernal in #1156
- fix: build and push both prod and dev images by @Stefan-Ethernal in #1157
- fix: validate remote validator signatures by @adria0pol in #1144
- feat: add test that updates
aggsendercommittee by @goran-ethernal in #1150 - fix: populate version metadata in Docker image by @Stefan-Ethernal in #1163
- feat: removed Common.NetworkID field by @joanestebanr in #1165
- feat: Add tests for L1 reorg detector in bridge syncer by @rachit77 in #1120
- chore(deps): bump github.com/consensys/gnark-crypto from 0.18.0 to 0.18.1 by @dependabot[bot] in #1172
- feat: introduce aggoracle metrics by @Stefan-Ethernal in #1187
- feat: run the l1 info tree syncer with
safeblock finality by @Stefan-Ethernal in #1148 - feat: categorize aggsender metrics to namespaces by @Stefan-Ethernal in #1240
- feat: remove ger, unset claims by @temaniarpit27 in #883
- refactor: change log level by @rachit77 in #1242
- fix: disable
syncFullClaimsfor L1 bridge syncer by @Stefan-Ethernal in #1241 - feat: add a subscription feature in the bridge syncer by @goran-ethernal in #1214
- feat: validate positive offset in block finality by @rachit77 in #1199
- refactor: bridge service metrics by @Stefan-Ethernal in #1238
- chore: reuse
common.HashLengthinstead of magic number by @Stefan-Ethernal in #1253 - chore: increase code coverage in bridge service by @Stefan-Ethernal in #1256
- feat: check always last cert using the initial check by @joanestebanr in #1262
- feat: Add L1 contract fallback check for missing GERs during L2GERSync by @rachit77 in #1265
- feat:
PreconfPPmode, and certificate send trigger separation by @goran-ethernal in #1237 - fix: reintroduce polygonbridgeaddr by @temaniarpit27 in #1271
- fix: address comments by @rachit77 in #1274
- feat: cut certificate size if there are non-finalized GERs (claims) by @goran-ethernal in #1264
- feat: add ValidateGER function to aggsender validator proto def by @Stefan-Ethernal in #1266
- fix: run all tests by @temaniarpit27 in #1273
- feat: add index by @temaniarpit27 in #1280
- chore(deps): bump github.com/ethereum/go-ethereum from 1.16.5 to 1.16.7 by @dependabot[bot] in #1285
- chore(deps): bump golang.org/x/sync from 0.17.0 to 0.18.0 by @dependabot[bot] in #1286
- feat: sync
DetailedClaimEventin bridge syncer by @Stefan-Ethernal in #1263 - feat: remove caller address from claims by @Stefan-Ethernal in #1294
- fix: handle reorg detection edgecase (#1298) by @temaniarpit27 in #1303
- feat: pick fixes from zkevm_migration_support-0_7_X (#1304) by @joanestebanr in #1307
- feat: multidownloader safe synchronizations by @joanestebanr in #1234
- feat: update
zkevm-eth-txmanagerreference by @goran-ethernal in #1328 - chore(deps): bump go.uber.org/zap from 1.27.0 to 1.27.1 by @dependabot[bot] in #1321
- fix: remove multilingual tag from mdbook config by @Stefan-Ethernal in #1331
- chore(deps): bump github.com/jmoiron/sqlx from 1.2.0 to 1.4.0 by @dependabot[bot] in #1325
- chore(deps): bump google.golang.org/grpc from 1.76.0 to 1.77.0 by @dependabot[bot] in #1326
- docs: add AGENTS.md for build, style, structure by @vcastellm in #1332
- fix: mdbook config for alerts preprocessor by @Stefan-Ethernal in #1343
- feat: moved PR #1339 from 0.7 to develop. It fixes #1329 and #1345 by @joanestebanr in #1355
- feat: [FEATURE] inject non finalized GERs by @temaniarpit27 in #1305
- fix: fix release.yml by @temaniarpit27 in #1367
- fix: handle block range too large rpc error, and do chunk calls by @goran-ethernal in #1387
- fix: replace ethClient.BlockByNumber by ethClient.HeaderByNumber (#1385) cherry-pick #1385 by @joanestebanr in #1392
- fix: From field for bridge event syncronization (cherry pick 1372 to release/0.8) by @joanestebanr in #1396
- fix: cherry-pick #1413 block range error parsing (exceeded maximum block range:) (#1413) by @joanestebanr in #1414
- feat: cherry-pick add
to_addressfiled in bridge api response (#1405) by @rachit77 in #1423 - fix: preserve retro compatibility of claim events indexing by @Stefan-Ethernal in #1435
- fix: revert golangci lint in makefile by @Stefan-Ethernal in #1442
- fix: check InError certs when no pending certs (#1425) by @vcastellm in #1449
- fix: migration file by @rachit77 in #1453
New Contributors
- @adria0pol made their first contribution in #1144
Full Changelog: v0.7.2...v0.8.0
v0.8.0-beta7
What's Changed
Full Changelog: v0.8.0-beta6...v0.8.0-beta7
v0.8.0-beta6
What's Changed
- fix: revert golangci lint in makefile by @Stefan-Ethernal in #1442
- fix: check InError certs when no pending certs (#1425) by @vcastellm in #1449
Full Changelog: v0.8.0-beta5...v0.8.0-beta6
v0.8.0-beta5
What's Changed
- feat: cherry-pick add
to_addressfiled in bridge api response (#1405) by @rachit77 in #1423 - fix: preserve retro compatibility of claim events indexing by @Stefan-Ethernal in #1435
Full Changelog: v0.8.0-beta4...v0.8.0-beta5
v0.7.3-rc.2
What's Changed
- fix: TestWithReorgs unit test by @Stefan-Ethernal in #1340
- fix: check InError certs when no pending certs (#1425) by @vcastellm in #1432
Full Changelog: v0.7.3-rc.1...v0.7.3-rc.2
v0.8.0-beta4
What's Changed
- fix: cherry-pick #1413 block range error parsing (exceeded maximum block range:) (#1413) by @joanestebanr in #1414
Full Changelog: v0.8.0-beta3...v0.8.0-beta4