Commit 3d7c6c42 authored by Adrian Sutton's avatar Adrian Sutton

op-challenger: Clean ups

parent 5f870165
...@@ -22,6 +22,8 @@ func NewGameTypeRegistry() *GameTypeRegistry { ...@@ -22,6 +22,8 @@ func NewGameTypeRegistry() *GameTypeRegistry {
} }
} }
// RegisterGameType registers a scheduler.PlayerCreator to use for a specific game type.
// Panics if the same game type is registered multiple times, since this indicates a significant programmer error.
func (r *GameTypeRegistry) RegisterGameType(gameType uint8, creator scheduler.PlayerCreator) { func (r *GameTypeRegistry) RegisterGameType(gameType uint8, creator scheduler.PlayerCreator) {
if _, ok := r.types[gameType]; ok { if _, ok := r.types[gameType]; ok {
panic(fmt.Errorf("duplicate creator registered for game type: %v", gameType)) panic(fmt.Errorf("duplicate creator registered for game type: %v", gameType))
...@@ -29,6 +31,7 @@ func (r *GameTypeRegistry) RegisterGameType(gameType uint8, creator scheduler.Pl ...@@ -29,6 +31,7 @@ func (r *GameTypeRegistry) RegisterGameType(gameType uint8, creator scheduler.Pl
r.types[gameType] = creator r.types[gameType] = creator
} }
// CreatePlayer creates a new game player for the given game, using the specified directory for persisting data.
func (r *GameTypeRegistry) CreatePlayer(game types.GameMetadata, dir string) (scheduler.GamePlayer, error) { func (r *GameTypeRegistry) CreatePlayer(game types.GameMetadata, dir string) (scheduler.GamePlayer, error) {
creator, ok := r.types[game.GameType] creator, ok := r.types[game.GameType]
if !ok { if !ok {
......
...@@ -9,7 +9,7 @@ import ( ...@@ -9,7 +9,7 @@ import (
"github.com/ethereum-optimism/optimism/op-challenger/config" "github.com/ethereum-optimism/optimism/op-challenger/config"
"github.com/ethereum-optimism/optimism/op-challenger/game/fault" "github.com/ethereum-optimism/optimism/op-challenger/game/fault"
"github.com/ethereum-optimism/optimism/op-challenger/game/loader" "github.com/ethereum-optimism/optimism/op-challenger/game/loader"
registry2 "github.com/ethereum-optimism/optimism/op-challenger/game/registry" "github.com/ethereum-optimism/optimism/op-challenger/game/registry"
"github.com/ethereum-optimism/optimism/op-challenger/game/scheduler" "github.com/ethereum-optimism/optimism/op-challenger/game/scheduler"
"github.com/ethereum-optimism/optimism/op-challenger/metrics" "github.com/ethereum-optimism/optimism/op-challenger/metrics"
"github.com/ethereum-optimism/optimism/op-challenger/version" "github.com/ethereum-optimism/optimism/op-challenger/version"
...@@ -94,8 +94,8 @@ func NewService(ctx context.Context, logger log.Logger, cfg *config.Config) (*Se ...@@ -94,8 +94,8 @@ func NewService(ctx context.Context, logger log.Logger, cfg *config.Config) (*Se
} }
loader := loader.NewGameLoader(factoryContract) loader := loader.NewGameLoader(factoryContract)
registry := registry2.NewGameTypeRegistry() gameTypeRegistry := registry.NewGameTypeRegistry()
fault.RegisterGameTypes(registry, ctx, logger, m, cfg, txMgr, l1Client) fault.RegisterGameTypes(gameTypeRegistry, ctx, logger, m, cfg, txMgr, l1Client)
disk := newDiskManager(cfg.Datadir) disk := newDiskManager(cfg.Datadir)
s.sched = scheduler.NewScheduler( s.sched = scheduler.NewScheduler(
...@@ -103,7 +103,7 @@ func NewService(ctx context.Context, logger log.Logger, cfg *config.Config) (*Se ...@@ -103,7 +103,7 @@ func NewService(ctx context.Context, logger log.Logger, cfg *config.Config) (*Se
m, m,
disk, disk,
cfg.MaxConcurrency, cfg.MaxConcurrency,
registry.CreatePlayer) gameTypeRegistry.CreatePlayer)
pollClient, err := opClient.NewRPCWithClient(ctx, logger, cfg.L1EthRpc, opClient.NewBaseRPCClient(l1Client.Client()), cfg.PollInterval) pollClient, err := opClient.NewRPCWithClient(ctx, logger, cfg.L1EthRpc, opClient.NewBaseRPCClient(l1Client.Client()), cfg.PollInterval)
if err != nil { if err != nil {
......
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