Skip to content

Commit 2ce7470

Browse files
author
corey
committed
feat: add BatchProcessor to replace BlockTagService
Introduce a new BatchProcessor that sequentially walks every committed batch, verifies via BatchVerifier, and updates safe/finalized block tags. This replaces BlockTagService which skipped intermediate batches.
1 parent e609dfe commit 2ce7470

File tree

4 files changed

+557
-74
lines changed

4 files changed

+557
-74
lines changed

node/batchprocessor/config.go

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package batchprocessor
2+
3+
import (
4+
"fmt"
5+
"time"
6+
7+
"github.com/morph-l2/go-ethereum/common"
8+
"github.com/urfave/cli"
9+
10+
node "morph-l2/node/core"
11+
"morph-l2/node/flags"
12+
)
13+
14+
const (
15+
DefaultPollInterval = 12 * time.Second
16+
DefaultSafeConfirmations = 10
17+
)
18+
19+
type Config struct {
20+
L1Addr string
21+
RollupAddress common.Address
22+
SafeConfirmations uint64
23+
PollInterval time.Duration
24+
}
25+
26+
func DefaultConfig() *Config {
27+
return &Config{
28+
SafeConfirmations: DefaultSafeConfirmations,
29+
PollInterval: DefaultPollInterval,
30+
}
31+
}
32+
33+
func (c *Config) SetCliContext(ctx *cli.Context) error {
34+
c.L1Addr = ctx.GlobalString(flags.L1NodeAddr.Name)
35+
36+
if ctx.GlobalBool(flags.MainnetFlag.Name) {
37+
c.RollupAddress = node.MainnetRollupContractAddress
38+
} else if ctx.GlobalIsSet(flags.RollupContractAddress.Name) {
39+
c.RollupAddress = common.HexToAddress(ctx.GlobalString(flags.RollupContractAddress.Name))
40+
} else {
41+
return fmt.Errorf("rollup contract address is required: either specify --%s or use --%s for mainnet default",
42+
flags.RollupContractAddress.Name, flags.MainnetFlag.Name)
43+
}
44+
45+
if ctx.GlobalIsSet(flags.BlockTagSafeConfirmations.Name) {
46+
c.SafeConfirmations = ctx.GlobalUint64(flags.BlockTagSafeConfirmations.Name)
47+
}
48+
return nil
49+
}

0 commit comments

Comments
 (0)