Commit 0b4fb000 authored by refcell's avatar refcell Committed by GitHub

chore(op-dispute-mon): isolate game caller package (#9544)

parent 0341b833
...@@ -5,6 +5,7 @@ import ( ...@@ -5,6 +5,7 @@ import (
"fmt" "fmt"
"github.com/ethereum-optimism/optimism/op-challenger/game/types" "github.com/ethereum-optimism/optimism/op-challenger/game/types"
"github.com/ethereum-optimism/optimism/op-dispute-mon/mon/extract"
monTypes "github.com/ethereum-optimism/optimism/op-dispute-mon/mon/types" monTypes "github.com/ethereum-optimism/optimism/op-dispute-mon/mon/types"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
...@@ -16,7 +17,7 @@ type OutputValidator interface { ...@@ -16,7 +17,7 @@ type OutputValidator interface {
} }
type GameCallerCreator interface { type GameCallerCreator interface {
CreateContract(game types.GameMetadata) (GameCaller, error) CreateContract(game types.GameMetadata) (extract.GameCaller, error)
} }
type DetectorMetrics interface { type DetectorMetrics interface {
......
...@@ -7,6 +7,7 @@ import ( ...@@ -7,6 +7,7 @@ import (
faultTypes "github.com/ethereum-optimism/optimism/op-challenger/game/fault/types" faultTypes "github.com/ethereum-optimism/optimism/op-challenger/game/fault/types"
"github.com/ethereum-optimism/optimism/op-challenger/game/types" "github.com/ethereum-optimism/optimism/op-challenger/game/types"
"github.com/ethereum-optimism/optimism/op-dispute-mon/mon/extract"
monTypes "github.com/ethereum-optimism/optimism/op-dispute-mon/mon/types" monTypes "github.com/ethereum-optimism/optimism/op-dispute-mon/mon/types"
"github.com/ethereum-optimism/optimism/op-service/testlog" "github.com/ethereum-optimism/optimism/op-service/testlog"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
...@@ -266,7 +267,7 @@ type mockGameCallerCreator struct { ...@@ -266,7 +267,7 @@ type mockGameCallerCreator struct {
caller *mockGameCaller caller *mockGameCaller
} }
func (m *mockGameCallerCreator) CreateContract(game types.GameMetadata) (GameCaller, error) { func (m *mockGameCallerCreator) CreateContract(game types.GameMetadata) (extract.GameCaller, error) {
m.calls++ m.calls++
if m.err != nil { if m.err != nil {
return nil, m.err return nil, m.err
......
package mon package extract
import ( import (
"context" "context"
...@@ -20,19 +20,19 @@ type GameCaller interface { ...@@ -20,19 +20,19 @@ type GameCaller interface {
GetAllClaims(ctx context.Context) ([]faultTypes.Claim, error) GetAllClaims(ctx context.Context) ([]faultTypes.Claim, error)
} }
type gameCallerCreator struct { type GameCallerCreator struct {
cache *caching.LRUCache[common.Address, *contracts.FaultDisputeGameContract] cache *caching.LRUCache[common.Address, *contracts.FaultDisputeGameContract]
caller *batching.MultiCaller caller *batching.MultiCaller
} }
func NewGameCallerCreator(m caching.Metrics, caller *batching.MultiCaller) *gameCallerCreator { func NewGameCallerCreator(m caching.Metrics, caller *batching.MultiCaller) *GameCallerCreator {
return &gameCallerCreator{ return &GameCallerCreator{
caller: caller, caller: caller,
cache: caching.NewLRUCache[common.Address, *contracts.FaultDisputeGameContract](m, metricsLabel, 100), cache: caching.NewLRUCache[common.Address, *contracts.FaultDisputeGameContract](m, metricsLabel, 100),
} }
} }
func (g *gameCallerCreator) CreateContract(game types.GameMetadata) (GameCaller, error) { func (g *GameCallerCreator) CreateContract(game types.GameMetadata) (GameCaller, error) {
if fdg, ok := g.cache.Get(game.Proxy); ok { if fdg, ok := g.cache.Get(game.Proxy); ok {
return fdg, nil return fdg, nil
} }
......
...@@ -11,11 +11,12 @@ import ( ...@@ -11,11 +11,12 @@ import (
"github.com/ethereum/go-ethereum/ethclient" "github.com/ethereum/go-ethereum/ethclient"
"github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/log"
"github.com/ethereum-optimism/optimism/op-challenger/game/fault/contracts"
"github.com/ethereum-optimism/optimism/op-dispute-mon/config" "github.com/ethereum-optimism/optimism/op-dispute-mon/config"
"github.com/ethereum-optimism/optimism/op-dispute-mon/metrics" "github.com/ethereum-optimism/optimism/op-dispute-mon/metrics"
"github.com/ethereum-optimism/optimism/op-dispute-mon/mon/extract"
"github.com/ethereum-optimism/optimism/op-dispute-mon/version" "github.com/ethereum-optimism/optimism/op-dispute-mon/version"
"github.com/ethereum-optimism/optimism/op-challenger/game/fault/contracts"
"github.com/ethereum-optimism/optimism/op-service/clock" "github.com/ethereum-optimism/optimism/op-service/clock"
"github.com/ethereum-optimism/optimism/op-service/dial" "github.com/ethereum-optimism/optimism/op-service/dial"
"github.com/ethereum-optimism/optimism/op-service/httputil" "github.com/ethereum-optimism/optimism/op-service/httputil"
...@@ -35,7 +36,7 @@ type Service struct { ...@@ -35,7 +36,7 @@ type Service struct {
cl clock.Clock cl clock.Clock
forecast *forecast forecast *forecast
game *gameCallerCreator game *extract.GameCallerCreator
rollupClient *sources.RollupClient rollupClient *sources.RollupClient
detector *detector detector *detector
validator *outputValidator validator *outputValidator
...@@ -99,7 +100,7 @@ func (s *Service) initOutputValidator() { ...@@ -99,7 +100,7 @@ func (s *Service) initOutputValidator() {
} }
func (s *Service) initGameCallerCreator() { func (s *Service) initGameCallerCreator() {
s.game = NewGameCallerCreator(s.metrics, batching.NewMultiCaller(s.l1Client.Client(), batching.DefaultBatchSize)) s.game = extract.NewGameCallerCreator(s.metrics, batching.NewMultiCaller(s.l1Client.Client(), batching.DefaultBatchSize))
} }
func (s *Service) initForecast(cfg *config.Config) { func (s *Service) initForecast(cfg *config.Config) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment