The next thing we'll do is modify RegisterEthService so that it accepts the mevlink stream as a parameter and and passes it to the eth.New() call in cmd/utils/flags.go. We'll import the streamer package, define the parameter as *mlstreamergo.Streamer and pass it to eth.New():
// cmd/utils/flags.gofunc RegisterEthService(stack *node.Node, cfg *ethconfig.Config, mlstream *mlstreamergo.Streamer) (ethapi.Backend, *eth.Ethereum) {
if cfg.SyncMode == downloader.LightSync { backend, err := les.New(stack, cfg)if err !=nil { Fatalf("Failed to register the Ethereum service: %v", err) } stack.RegisterAPIs(tracers.APIs(backend.ApiBackend))if err := lescatalyst.Register(stack, backend); err !=nil { Fatalf("Failed to register the Engine API service: %v", err) }return backend.ApiBackend, nil } backend, err := eth.New(stack, cfg, mlstream)if err !=nil { Fatalf("Failed to register the Ethereum service: %v", err) }if cfg.LightServ >0 { _, err := les.NewLesServer(stack, backend, cfg)if err !=nil { Fatalf("Failed to create the LES server: %v", err) } }if err := ethcatalyst.Register(stack, backend); err !=nil { Fatalf("Failed to register the Engine API service: %v", err) } stack.RegisterAPIs(tracers.APIs(backend.APIBackend))return backend.APIBackend, backend}