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  }