Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
7c0d06b
new tool: exit_certificate
krlosMata Apr 14, 2026
a33dd78
Claude review
krlosMata Apr 14, 2026
0b790e4
fix: address review comments on exit_certificate tool
krlosMata Apr 15, 2026
446acd9
fix: resolve golangci-lint issues (mnd, prealloc)
krlosMata Apr 15, 2026
a98534b
refactor: use isClaimed on L2 bridge & reduce complexity (diffguard)
krlosMata Apr 17, 2026
87520c7
feat: add exit_certificate to build-tools and mask RPC URL in error logs
joanestebanr Apr 24, 2026
959715c
feat(exit-certificate): add L2StartBlock config, improve RPC error ha…
joanestebanr Apr 30, 2026
d959252
feat: step F check cert using agglayer addmin
joanestebanr Apr 30, 2026
f7147e8
feat: step F verification
joanestebanr Apr 30, 2026
465f833
fix: brigeEvent topic fixed
joanestebanr May 4, 2026
bb80300
feat: add doc, check genesis
joanestebanr May 4, 2026
3357552
feat: unclaimed bridges must be set into imported_exit_root and also …
joanestebanr May 5, 2026
da0c8c1
feat: add logs to traceTransactions
joanestebanr May 5, 2026
4382060
feat: split step A into A1 and A2
joanestebanr May 5, 2026
1cbc98a
feat: revert A1/A2 split and add sign step
joanestebanr May 5, 2026
bbc7219
feat: add continueOnTraceError option and failed traces output
joanestebanr May 5, 2026
034ab58
perf: collect tx hashes directly from block headers scan
joanestebanr May 5, 2026
b390af3
feat: create launch.json always
joanestebanr May 8, 2026
eb330bd
feat: add steps G, H, I and submit to exit-certificate pipeline
joanestebanr May 11, 2026
1e6f325
feat: use SignerConfig for certificate signing and extend kurtosis sc…
joanestebanr May 11, 2026
17d01c7
fix(exit-certificate): handle custom gas token in step G token resolu…
joanestebanr May 12, 2026
d7dc4e3
feat(exit-certificate): add CHECK/WAIT steps, l1GlobalExitRootAddress…
joanestebanr May 13, 2026
7894191
feat(exit-certificate): pipeline improvements β€” step ranges, LER trac…
joanestebanr May 13, 2026
b3374c1
fix: add metadata to certificate
joanestebanr May 13, 2026
3ba842b
fix(exit-certificate): hash bridge exit metadata and improve sign log…
joanestebanr May 14, 2026
9ee9088
feat(exit-certificate): add per-window ETA progress logging to Step A
joanestebanr May 14, 2026
e552c51
feat(exit-certificate): Step E bridge service validation and message …
joanestebanr May 15, 2026
6163171
fix(exit-certificate): batchRPC should not error on individual RPC er…
joanestebanr May 15, 2026
7a82544
refactor(exit-certificate): remove dead code and align docs with actu…
joanestebanr May 18, 2026
a297b37
fix(exit-certificate): fix Step E zkevm bridge service parsing and re…
joanestebanr May 18, 2026
5e6760c
fix(exit-certificate): pass only unclaimed assets to bridge service c…
joanestebanr May 18, 2026
f4b0518
docs(exit-certificate): add practical configuration notes to README
joanestebanr May 18, 2026
9c709be
docs(exit-certificate): link go_signer repo for full signer configura…
joanestebanr May 19, 2026
6ade14c
docs(exit-certificate): mark l1RpcUrl as required in config table
joanestebanr May 19, 2026
4841ab4
docs(exit-certificate): document required fields in config-examples R…
joanestebanr May 19, 2026
47260f4
feat(exit-certificate): add bearer token auth for IAP-protected admin…
joanestebanr May 19, 2026
e6438d7
chore: fix all golangci-lint issues across the repo
joanestebanr May 20, 2026
52f3fc7
test(exit-certificate): remove t.Parallel() from rpc_test.go
joanestebanr May 20, 2026
4e75fb9
chore: align gosec excludes between local and CI golangci-lint versions
joanestebanr May 20, 2026
fd4eed7
chore: update golang.org/x dependencies
joanestebanr May 20, 2026
d03eebb
chore: fix gosec excludes for golangci-lint v2.4.0 compatibility
joanestebanr May 20, 2026
8986476
fix(exit-certificate): F-01 implement ERC-20 balance storage patching…
joanestebanr May 26, 2026
fbb52de
feat(exit-certificate): F05 - use same targetBlock between multiples …
joanestebanr May 27, 2026
b617032
feat: exit certificate f09 trace error (#1629)
joanestebanr May 28, 2026
fd5691c
feat(exit-certificate): step A fallback via receipt recovery + legacy…
joanestebanr May 28, 2026
79307e0
feat(exit-certificate): Step B2/B3 - ERC-20 detection and extra contr…
joanestebanr Jun 2, 2026
a0d852c
feat(exit-certificate): split Step G into G1/G2 with off-chain LER + …
joanestebanr Jun 9, 2026
427ae79
feat(exit-certificate-claimer): add backend service for serving claim…
joanestebanr Jun 12, 2026
3cb76fb
docs(exit-certificate): align README/CLAUDE with code and document cl…
joanestebanr Jun 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ linters:
gosec:
excludes:
- G115
- G204 # subprocess with tainted args β€” controlled via config/CLI
- G602 # slice OOB β€” false positive in taint analysis
revive:
rules:
- name: exported
Expand All @@ -62,6 +64,12 @@ linters:
- linters:
- dupl
path: etherman/contracts/contracts_(banana|elderberry)\.go
- linters:
- gosec
text: "G703" # path traversal false positive β€” not a valid rule ID in golangci-lint v2.4.0
- linters:
- gosec
text: "G118" # context cancel false positive β€” not a valid rule ID in golangci-lint v2.4.0
paths:
- tests
- third_party$
Expand Down
30 changes: 27 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -77,14 +77,38 @@ build-aggkit: ## Builds aggkit binary
GIN_MODE=release $(GOENVVARS) go build -ldflags "all=$(LDFLAGS)" -o $(GOBIN)/$(GOBINARY) $(GOCMD)

.PHONY: build-tools
build-tools: $(GOBIN)/aggsender_find_imported_bridge $(GOBIN)/remove_ger ## Builds the tools
build-tools: $(GOBIN)/aggsender_find_imported_bridge $(GOBIN)/remove_ger $(GOBIN)/exit_certificate $(GOBIN)/exit_certificate_claimer ## Builds the tools

$(GOBIN)/aggsender_find_imported_bridge: ## Build aggsender_find_imported_bridge tool

.PHONY: build-aggsender_find_imported_bridge
build-aggsender_find_imported_bridge: $(GOBIN)/aggsender_find_imported_bridge ## Build aggsender_find_imported_bridge tool

.PHONY: build-remove_ger
build-remove_ger: $(GOBIN)/remove_ger ## Build remove_ger tool

.PHONY: build-exit_certificate
build-exit_certificate: $(GOBIN)/exit_certificate ## Build exit_certificate tool

.PHONY: build-exit_certificate_claimer
build-exit_certificate_claimer: $(GOBIN)/exit_certificate_claimer ## Build exit_certificate_claimer backend tool

.PHONY: $(GOBIN)/aggsender_find_imported_bridge
$(GOBIN)/aggsender_find_imported_bridge:
$(GOENVVARS) go build -o $(GOBIN)/aggsender_find_imported_bridge ./tools/aggsender_find_imported_bridge

$(GOBIN)/remove_ger: ## Build remove_ger tool

.PHONY: $(GOBIN)/remove_ger
$(GOBIN)/remove_ger:
$(GOENVVARS) go build -ldflags "all=$(LDFLAGS)" -o $(GOBIN)/remove_ger ./tools/remove_ger/cmd

.PHONY: $(GOBIN)/exit_certificate
$(GOBIN)/exit_certificate:
$(GOENVVARS) go build -o $(GOBIN)/exit_certificate ./tools/exit_certificate/cmd

.PHONY: $(GOBIN)/exit_certificate_claimer
$(GOBIN)/exit_certificate_claimer:
$(GOENVVARS) go build -o $(GOBIN)/exit_certificate_claimer ./tools/exit_certificate_claimer/service/cmd

.PHONY: build-docker
build-docker: ## Builds a docker image with the aggkit binary
docker build -t aggkit:local -f ./Dockerfile .
Expand Down
41 changes: 20 additions & 21 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,20 @@ require (
github.com/0xPolygon/cdk-rpc v0.0.0-20250213125803-179882ad6229
github.com/0xPolygon/zkevm-ethtx-manager v0.2.18
github.com/agglayer/go_signer v0.0.7
github.com/ethereum/go-ethereum v1.17.3
github.com/ethereum/go-ethereum v1.17.2
github.com/gin-gonic/gin v1.12.0
github.com/golang-collections/collections v0.0.0-20130729185459-604e922904d3
github.com/hermeznetwork/tracerr v0.3.2
github.com/invopop/jsonschema v0.14.0
github.com/invopop/jsonschema v0.13.0
github.com/jellydator/ttlcache/v3 v3.4.0
github.com/jmoiron/sqlx v1.4.0
github.com/knadh/koanf/parsers/json v1.0.0
github.com/knadh/koanf/parsers/toml v0.1.0
github.com/knadh/koanf/providers/rawbytes v1.0.0
github.com/knadh/koanf/v2 v2.3.4
github.com/mattn/go-sqlite3 v1.14.44
github.com/mattn/go-sqlite3 v1.14.42
github.com/mitchellh/mapstructure v1.5.0
github.com/pelletier/go-toml/v2 v2.3.1
github.com/pelletier/go-toml/v2 v2.3.0
github.com/prometheus/client_golang v1.23.2
github.com/prometheus/client_model v0.6.2
github.com/rubenv/sql-migrate v1.8.1
Expand All @@ -37,10 +37,10 @@ require (
github.com/swaggo/swag v1.16.6
github.com/urfave/cli/v2 v2.27.7
github.com/valyala/fasttemplate v1.2.2
go.uber.org/zap v1.28.0
go.uber.org/zap v1.27.1
golang.org/x/sync v0.20.0
google.golang.org/genproto/googleapis/rpc v0.0.0-20260226221140-a57be14db171
google.golang.org/grpc v1.81.1
google.golang.org/genproto/googleapis/rpc v0.0.0-20260120221211-b8f7ae30c516
google.golang.org/grpc v1.80.0
google.golang.org/protobuf v1.36.11
)

Expand Down Expand Up @@ -162,7 +162,6 @@ require (
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/onsi/gomega v1.27.10 // indirect
github.com/pb33f/ordered-map/v2 v2.3.1 // indirect
github.com/pelletier/go-toml v1.9.5 // indirect
github.com/pion/dtls/v2 v2.2.12 // indirect
github.com/pion/logging v0.2.2 // indirect
Expand Down Expand Up @@ -193,37 +192,37 @@ require (
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/ugorji/go/codec v1.3.1 // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect
github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect
github.com/wlynxg/anet v0.0.4 // indirect
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect
github.com/yusufpapurcu/wmi v1.2.3 // indirect
go.mongodb.org/mongo-driver/v2 v2.5.0 // indirect
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 // indirect
go.opentelemetry.io/otel v1.43.0 // indirect
go.opentelemetry.io/otel/metric v1.43.0 // indirect
go.opentelemetry.io/otel/trace v1.43.0 // indirect
go.opentelemetry.io/otel v1.40.0 // indirect
go.opentelemetry.io/otel/metric v1.40.0 // indirect
go.opentelemetry.io/otel/trace v1.40.0 // indirect
go.uber.org/multierr v1.10.0 // indirect
go.yaml.in/yaml/v2 v2.4.2 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
go.yaml.in/yaml/v4 v4.0.0-rc.2 // indirect
golang.org/x/arch v0.22.0 // indirect
golang.org/x/crypto v0.48.0 // indirect
golang.org/x/crypto v0.51.0 // indirect
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect
golang.org/x/lint v0.0.0-20200302205851-738671d3881b // indirect
golang.org/x/mod v0.32.0 // indirect
golang.org/x/net v0.51.0 // indirect
golang.org/x/oauth2 v0.36.0 // indirect
golang.org/x/sys v0.42.0 // indirect
golang.org/x/telemetry v0.0.0-20260109210033-bd525da824e2 // indirect
golang.org/x/text v0.34.0 // indirect
golang.org/x/mod v0.35.0 // indirect
golang.org/x/net v0.55.0 // indirect
golang.org/x/oauth2 v0.34.0 // indirect
golang.org/x/sys v0.45.0 // indirect
golang.org/x/telemetry v0.0.0-20260409153401-be6f6cb8b1fa // indirect
golang.org/x/text v0.37.0 // indirect
golang.org/x/time v0.12.0 // indirect
golang.org/x/tools v0.41.0 // indirect
golang.org/x/tools v0.44.0 // indirect
golang.org/x/tools/go/expect v0.1.1-deprecated // indirect
golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated // indirect
google.golang.org/api v0.215.0 // indirect
google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20260226221140-a57be14db171 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20260120221211-b8f7ae30c516 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
Expand Down
Loading
Loading