package scanner import ( "github.com/fraktal/mev-beta/internal/config" "github.com/fraktal/mev-beta/internal/logger" "github.com/fraktal/mev-beta/pkg/cache" "github.com/fraktal/mev-beta/pkg/contracts" "github.com/fraktal/mev-beta/pkg/database" ) // NewMarketScanner provides a backwards-compatible constructor that accepts // optional dependencies in the order (contract executor, database, reserve cache, ...). // It falls back to sane defaults when values are omitted so legacy tests and // tooling can continue to compile against the public API while more advanced // callers should use NewScanner directly for full control. func NewMarketScanner( cfg *config.BotConfig, log *logger.Logger, extras ...interface{}, ) *Scanner { var contractExecutor *contracts.ContractExecutor var db *database.Database var reserveCache *cache.ReserveCache if len(extras) > 0 { if v, ok := extras[0].(*contracts.ContractExecutor); ok { contractExecutor = v } } if len(extras) > 1 { if v, ok := extras[1].(*database.Database); ok { db = v } } if len(extras) > 2 { if v, ok := extras[2].(*cache.ReserveCache); ok { reserveCache = v } } // Additional parameters beyond the reserve cache are currently ignored but // accepted to keep existing call sites compiling during the migration. return NewScanner(cfg, log, contractExecutor, db, reserveCache) }