diff --git a/op-node/rollup/driver/metered_l1fetcher.go b/op-node/metrics/metered/metered_l1fetcher.go similarity index 72% rename from op-node/rollup/driver/metered_l1fetcher.go rename to op-node/metrics/metered/metered_l1fetcher.go index d3bc4eece7ac1..f79433c72a288 100644 --- a/op-node/rollup/driver/metered_l1fetcher.go +++ b/op-node/metrics/metered/metered_l1fetcher.go @@ -1,26 +1,37 @@ -package driver +package metered import ( "context" "time" - "github.com/ethereum-optimism/optimism/op-node/rollup/derive" - "github.com/ethereum-optimism/optimism/op-service/eth" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" + + "github.com/ethereum-optimism/optimism/op-service/eth" ) type L1FetcherMetrics interface { RecordL1RequestTime(method string, duration time.Duration) } +type L1Fetcher interface { + L1BlockRefByLabel(ctx context.Context, label eth.BlockLabel) (eth.L1BlockRef, error) + L1BlockRefByNumber(context.Context, uint64) (eth.L1BlockRef, error) + L1BlockRefByHash(context.Context, common.Hash) (eth.L1BlockRef, error) + InfoByHash(ctx context.Context, hash common.Hash) (eth.BlockInfo, error) + FetchReceipts(ctx context.Context, blockHash common.Hash) (eth.BlockInfo, types.Receipts, error) + InfoAndTxsByHash(ctx context.Context, hash common.Hash) (eth.BlockInfo, types.Transactions, error) +} + type MeteredL1Fetcher struct { - inner derive.L1Fetcher + inner L1Fetcher metrics L1FetcherMetrics now func() time.Time } -func NewMeteredL1Fetcher(inner derive.L1Fetcher, metrics L1FetcherMetrics) *MeteredL1Fetcher { +var _ L1Fetcher = (*MeteredL1Fetcher)(nil) + +func NewMeteredL1Fetcher(inner L1Fetcher, metrics L1FetcherMetrics) *MeteredL1Fetcher { return &MeteredL1Fetcher{ inner: inner, metrics: metrics, @@ -57,8 +68,6 @@ func (m *MeteredL1Fetcher) FetchReceipts(ctx context.Context, blockHash common.H return m.inner.FetchReceipts(ctx, blockHash) } -var _ derive.L1Fetcher = (*MeteredL1Fetcher)(nil) - func (m *MeteredL1Fetcher) recordTime(method string) func() { start := m.now() return func() { diff --git a/op-node/rollup/driver/metered_l1fetcher_test.go b/op-node/metrics/metered/metered_l1fetcher_test.go similarity index 99% rename from op-node/rollup/driver/metered_l1fetcher_test.go rename to op-node/metrics/metered/metered_l1fetcher_test.go index 1b0e1fd64af2b..0e96fced531db 100644 --- a/op-node/rollup/driver/metered_l1fetcher_test.go +++ b/op-node/metrics/metered/metered_l1fetcher_test.go @@ -1,4 +1,4 @@ -package driver +package metered import ( "context" @@ -6,12 +6,14 @@ import ( "testing" "time" - "github.com/ethereum-optimism/optimism/op-service/eth" - "github.com/ethereum-optimism/optimism/op-service/testutils" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/core/types" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" + + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/core/types" + + "github.com/ethereum-optimism/optimism/op-service/eth" + "github.com/ethereum-optimism/optimism/op-service/testutils" ) func TestDurationRecorded(t *testing.T) { diff --git a/op-node/rollup/driver/driver.go b/op-node/rollup/driver/driver.go index 80e89ef1c5e6f..eb6ddb193cfb1 100644 --- a/op-node/rollup/driver/driver.go +++ b/op-node/rollup/driver/driver.go @@ -7,6 +7,7 @@ import ( "github.com/ethereum/go-ethereum/log" altda "github.com/ethereum-optimism/optimism/op-alt-da" + "github.com/ethereum-optimism/optimism/op-node/metrics/metered" "github.com/ethereum-optimism/optimism/op-node/rollup" "github.com/ethereum-optimism/optimism/op-node/rollup/async" "github.com/ethereum-optimism/optimism/op-node/rollup/attributes" @@ -53,7 +54,7 @@ type Metrics interface { RecordL1ReorgDepth(d uint64) engine.Metrics - L1FetcherMetrics + metered.L1FetcherMetrics event.Metrics sequencing.Metrics } @@ -185,7 +186,7 @@ func NewDriver( l1Tracker := status.NewL1Tracker(l1) sys.Register("l1-blocks", l1Tracker, opts) - l1 = NewMeteredL1Fetcher(l1Tracker, metrics) + l1 = metered.NewMeteredL1Fetcher(l1Tracker, metrics) verifConfDepth := confdepth.NewConfDepth(driverCfg.VerifierConfDepth, statusTracker.L1Head, l1) ec := engine.NewEngineController(l2, log, metrics, cfg, syncCfg,