github.com/MetalBlockchain/metalgo@v1.11.9/snow/engine/avalanche/engine.go (about) 1 // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved. 2 // See the file LICENSE for licensing terms. 3 4 package avalanche 5 6 import ( 7 "context" 8 "errors" 9 10 "github.com/MetalBlockchain/metalgo/snow" 11 "github.com/MetalBlockchain/metalgo/snow/engine/common" 12 ) 13 14 var ( 15 _ common.Engine = (*engine)(nil) 16 17 errUnexpectedStart = errors.New("unexpectedly started engine") 18 ) 19 20 type engine struct { 21 common.AllGetsServer 22 23 // list of NoOpsHandler for messages dropped by engine 24 common.StateSummaryFrontierHandler 25 common.AcceptedStateSummaryHandler 26 common.AcceptedFrontierHandler 27 common.AcceptedHandler 28 common.AncestorsHandler 29 common.PutHandler 30 common.QueryHandler 31 common.ChitsHandler 32 common.AppHandler 33 common.InternalHandler 34 35 ctx *snow.ConsensusContext 36 vm common.VM 37 } 38 39 func New( 40 ctx *snow.ConsensusContext, 41 gets common.AllGetsServer, 42 vm common.VM, 43 ) common.Engine { 44 return &engine{ 45 AllGetsServer: gets, 46 StateSummaryFrontierHandler: common.NewNoOpStateSummaryFrontierHandler(ctx.Log), 47 AcceptedStateSummaryHandler: common.NewNoOpAcceptedStateSummaryHandler(ctx.Log), 48 AcceptedFrontierHandler: common.NewNoOpAcceptedFrontierHandler(ctx.Log), 49 AcceptedHandler: common.NewNoOpAcceptedHandler(ctx.Log), 50 AncestorsHandler: common.NewNoOpAncestorsHandler(ctx.Log), 51 PutHandler: common.NewNoOpPutHandler(ctx.Log), 52 QueryHandler: common.NewNoOpQueryHandler(ctx.Log), 53 ChitsHandler: common.NewNoOpChitsHandler(ctx.Log), 54 AppHandler: common.NewNoOpAppHandler(ctx.Log), 55 InternalHandler: common.NewNoOpInternalHandler(ctx.Log), 56 ctx: ctx, 57 vm: vm, 58 } 59 } 60 61 func (*engine) Start(context.Context, uint32) error { 62 return errUnexpectedStart 63 } 64 65 func (e *engine) Context() *snow.ConsensusContext { 66 return e.ctx 67 } 68 69 func (*engine) HealthCheck(context.Context) (interface{}, error) { 70 return nil, nil 71 }