From 5828743a8289ca9a4f654a08c85ab2df0bac94ba Mon Sep 17 00:00:00 2001 From: Max Revitt Date: Thu, 29 Aug 2024 11:53:59 +0100 Subject: [PATCH] tweak(l1sync): discard pre-etrog verifications for rollupid > 1 --- zk/stages/stage_l1syncer.go | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/zk/stages/stage_l1syncer.go b/zk/stages/stage_l1syncer.go index eebc6cac348..1f8a299bcc6 100644 --- a/zk/stages/stage_l1syncer.go +++ b/zk/stages/stage_l1syncer.go @@ -123,18 +123,9 @@ Loop: for { select { case logs := <-logsChan: - infos := make([]*types.L1BatchInfo, 0, len(logs)) - batchLogTypes := make([]BatchLogType, 0, len(logs)) for _, l := range logs { l := l info, batchLogType := parseLogType(cfg.zkCfg.L1RollupId, &l) - infos = append(infos, &info) - batchLogTypes = append(batchLogTypes, batchLogType) - } - - for i, l := range logs { - info := *infos[i] - batchLogType := batchLogTypes[i] switch batchLogType { case logSequence: if err := hermezDb.WriteSequence(info.L1BlockNo, info.BatchNo, info.L1TxHash, info.StateRoot); err != nil { @@ -145,6 +136,11 @@ Loop: } newSequencesCount++ case logVerify: + case logVerifyEtrog: + // prevent storing pre-etrog verifications for etrog rollups + if batchLogType == logVerify && cfg.zkCfg.L1RollupId > 1 { + continue + } if info.BatchNo > highestVerification.BatchNo { highestVerification = info } @@ -213,6 +209,7 @@ var ( logUnknown BatchLogType = 0 logSequence BatchLogType = 1 logVerify BatchLogType = 2 + logVerifyEtrog BatchLogType = 3 logL1InfoTreeUpdate BatchLogType = 4 logIncompatible BatchLogType = 100 @@ -227,10 +224,6 @@ func parseLogType(l1RollupId uint64, log *ethTypes.Log) (l1BatchInfo types.L1Bat stateRoot, l1InfoRoot common.Hash ) - if l1RollupId != 1 && isRollupIdMatching == false { - return types.L1BatchInfo{}, logIncompatible - } - switch log.Topics[0] { case contracts.SequencedBatchTopicPreEtrog: batchLogType = logSequence @@ -245,7 +238,7 @@ func parseLogType(l1RollupId uint64, log *ethTypes.Log) (l1BatchInfo types.L1Bat stateRoot = common.BytesToHash(log.Data[:32]) case contracts.VerificationValidiumTopicEtrog: if isRollupIdMatching { - batchLogType = logVerify + batchLogType = logVerifyEtrog batchNum = new(big.Int).SetBytes(log.Topics[1].Bytes()).Uint64() stateRoot = common.BytesToHash(log.Data[:32]) } else { @@ -253,7 +246,7 @@ func parseLogType(l1RollupId uint64, log *ethTypes.Log) (l1BatchInfo types.L1Bat } case contracts.VerificationTopicEtrog: if isRollupIdMatching { - batchLogType = logVerify + batchLogType = logVerifyEtrog batchNum = common.BytesToHash(log.Data[:32]).Big().Uint64() stateRoot = common.BytesToHash(log.Data[32:64]) } else {