// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.5.1
// - protoc             (unknown)
// source: vm/vm.proto

package vm

import (
	context "context"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	emptypb "google.golang.org/protobuf/types/known/emptypb"
)

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
// Requires gRPC-Go v1.64.0 or later.
const _ = grpc.SupportPackageIsVersion9

const (
	VM_Initialize_FullMethodName                 = "/vm.VM/Initialize"
	VM_SetState_FullMethodName                   = "/vm.VM/SetState"
	VM_Shutdown_FullMethodName                   = "/vm.VM/Shutdown"
	VM_CreateHandlers_FullMethodName             = "/vm.VM/CreateHandlers"
	VM_NewHTTPHandler_FullMethodName             = "/vm.VM/NewHTTPHandler"
	VM_WaitForEvent_FullMethodName               = "/vm.VM/WaitForEvent"
	VM_Connected_FullMethodName                  = "/vm.VM/Connected"
	VM_Disconnected_FullMethodName               = "/vm.VM/Disconnected"
	VM_BuildBlock_FullMethodName                 = "/vm.VM/BuildBlock"
	VM_ParseBlock_FullMethodName                 = "/vm.VM/ParseBlock"
	VM_GetBlock_FullMethodName                   = "/vm.VM/GetBlock"
	VM_SetPreference_FullMethodName              = "/vm.VM/SetPreference"
	VM_Health_FullMethodName                     = "/vm.VM/Health"
	VM_Version_FullMethodName                    = "/vm.VM/Version"
	VM_AppRequest_FullMethodName                 = "/vm.VM/AppRequest"
	VM_AppRequestFailed_FullMethodName           = "/vm.VM/AppRequestFailed"
	VM_AppResponse_FullMethodName                = "/vm.VM/AppResponse"
	VM_AppGossip_FullMethodName                  = "/vm.VM/AppGossip"
	VM_Gather_FullMethodName                     = "/vm.VM/Gather"
	VM_GetAncestors_FullMethodName               = "/vm.VM/GetAncestors"
	VM_BatchedParseBlock_FullMethodName          = "/vm.VM/BatchedParseBlock"
	VM_GetBlockIDAtHeight_FullMethodName         = "/vm.VM/GetBlockIDAtHeight"
	VM_StateSyncEnabled_FullMethodName           = "/vm.VM/StateSyncEnabled"
	VM_GetOngoingSyncStateSummary_FullMethodName = "/vm.VM/GetOngoingSyncStateSummary"
	VM_GetLastStateSummary_FullMethodName        = "/vm.VM/GetLastStateSummary"
	VM_ParseStateSummary_FullMethodName          = "/vm.VM/ParseStateSummary"
	VM_GetStateSummary_FullMethodName            = "/vm.VM/GetStateSummary"
	VM_BlockVerify_FullMethodName                = "/vm.VM/BlockVerify"
	VM_BlockAccept_FullMethodName                = "/vm.VM/BlockAccept"
	VM_BlockReject_FullMethodName                = "/vm.VM/BlockReject"
	VM_StateSummaryAccept_FullMethodName         = "/vm.VM/StateSummaryAccept"
)

// VMClient is the client API for VM service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
//
// ref. https://pkg.go.dev/github.com/ava-labs/avalanchego/snow/engine/snowman/block
// ref. https://pkg.go.dev/github.com/ava-labs/avalanchego/snow/consensus/snowman#Block
type VMClient interface {
	// ChainVM
	//
	// Initialize this VM.
	Initialize(ctx context.Context, in *InitializeRequest, opts ...grpc.CallOption) (*InitializeResponse, error)
	// SetState communicates to VM its next state it starts
	SetState(ctx context.Context, in *SetStateRequest, opts ...grpc.CallOption) (*SetStateResponse, error)
	// Shutdown is called when the node is shutting down.
	Shutdown(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// Creates the HTTP handlers for custom chain network calls. Requests are routed based on the specified path.
	CreateHandlers(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*CreateHandlersResponse, error)
	// Creates the HTTP handler for custom chain network calls. Requests are routed based on the route header.
	NewHTTPHandler(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*NewHTTPHandlerResponse, error)
	// WaitForEvent blocks until receiving the next event from the VM.
	WaitForEvent(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*WaitForEventResponse, error)
	Connected(ctx context.Context, in *ConnectedRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	Disconnected(ctx context.Context, in *DisconnectedRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// Attempt to create a new block from data contained in the VM.
	BuildBlock(ctx context.Context, in *BuildBlockRequest, opts ...grpc.CallOption) (*BuildBlockResponse, error)
	// Attempt to create a block from a stream of bytes.
	ParseBlock(ctx context.Context, in *ParseBlockRequest, opts ...grpc.CallOption) (*ParseBlockResponse, error)
	// Attempt to load a block.
	GetBlock(ctx context.Context, in *GetBlockRequest, opts ...grpc.CallOption) (*GetBlockResponse, error)
	// Notify the VM of the currently preferred block.
	SetPreference(ctx context.Context, in *SetPreferenceRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// Attempt to verify the health of the VM.
	Health(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*HealthResponse, error)
	// Version returns the version of the VM.
	Version(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*VersionResponse, error)
	// Notify this engine of a request for data from [nodeID].
	AppRequest(ctx context.Context, in *AppRequestMsg, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// Notify this engine that an AppRequest message it sent to [nodeID] with
	// request ID [requestID] failed.
	AppRequestFailed(ctx context.Context, in *AppRequestFailedMsg, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// Notify this engine of a response to the AppRequest message it sent to
	// [nodeID] with request ID [requestID].
	AppResponse(ctx context.Context, in *AppResponseMsg, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// Notify this engine of a gossip message from [nodeID].
	AppGossip(ctx context.Context, in *AppGossipMsg, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// Attempts to gather metrics from a VM.
	Gather(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GatherResponse, error)
	// BatchedChainVM
	GetAncestors(ctx context.Context, in *GetAncestorsRequest, opts ...grpc.CallOption) (*GetAncestorsResponse, error)
	BatchedParseBlock(ctx context.Context, in *BatchedParseBlockRequest, opts ...grpc.CallOption) (*BatchedParseBlockResponse, error)
	// HeightIndexedChainVM
	GetBlockIDAtHeight(ctx context.Context, in *GetBlockIDAtHeightRequest, opts ...grpc.CallOption) (*GetBlockIDAtHeightResponse, error)
	// StateSyncableVM
	//
	// StateSyncEnabled indicates whether the state sync is enabled for this VM.
	StateSyncEnabled(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*StateSyncEnabledResponse, error)
	// GetOngoingSyncStateSummary returns an in-progress state summary if it exists.
	GetOngoingSyncStateSummary(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetOngoingSyncStateSummaryResponse, error)
	// GetLastStateSummary returns the latest state summary.
	GetLastStateSummary(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetLastStateSummaryResponse, error)
	// ParseStateSummary parses a state summary out of [summaryBytes].
	ParseStateSummary(ctx context.Context, in *ParseStateSummaryRequest, opts ...grpc.CallOption) (*ParseStateSummaryResponse, error)
	// GetStateSummary retrieves the state summary that was generated at height
	// [summaryHeight].
	GetStateSummary(ctx context.Context, in *GetStateSummaryRequest, opts ...grpc.CallOption) (*GetStateSummaryResponse, error)
	// Block
	BlockVerify(ctx context.Context, in *BlockVerifyRequest, opts ...grpc.CallOption) (*BlockVerifyResponse, error)
	BlockAccept(ctx context.Context, in *BlockAcceptRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	BlockReject(ctx context.Context, in *BlockRejectRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// StateSummary
	StateSummaryAccept(ctx context.Context, in *StateSummaryAcceptRequest, opts ...grpc.CallOption) (*StateSummaryAcceptResponse, error)
}

type vMClient struct {
	cc grpc.ClientConnInterface
}

func NewVMClient(cc grpc.ClientConnInterface) VMClient {
	return &vMClient{cc}
}

func (c *vMClient) Initialize(ctx context.Context, in *InitializeRequest, opts ...grpc.CallOption) (*InitializeResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(InitializeResponse)
	err := c.cc.Invoke(ctx, VM_Initialize_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) SetState(ctx context.Context, in *SetStateRequest, opts ...grpc.CallOption) (*SetStateResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SetStateResponse)
	err := c.cc.Invoke(ctx, VM_SetState_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) Shutdown(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, VM_Shutdown_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) CreateHandlers(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*CreateHandlersResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(CreateHandlersResponse)
	err := c.cc.Invoke(ctx, VM_CreateHandlers_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) NewHTTPHandler(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*NewHTTPHandlerResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(NewHTTPHandlerResponse)
	err := c.cc.Invoke(ctx, VM_NewHTTPHandler_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) WaitForEvent(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*WaitForEventResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(WaitForEventResponse)
	err := c.cc.Invoke(ctx, VM_WaitForEvent_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) Connected(ctx context.Context, in *ConnectedRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, VM_Connected_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) Disconnected(ctx context.Context, in *DisconnectedRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, VM_Disconnected_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) BuildBlock(ctx context.Context, in *BuildBlockRequest, opts ...grpc.CallOption) (*BuildBlockResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(BuildBlockResponse)
	err := c.cc.Invoke(ctx, VM_BuildBlock_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) ParseBlock(ctx context.Context, in *ParseBlockRequest, opts ...grpc.CallOption) (*ParseBlockResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ParseBlockResponse)
	err := c.cc.Invoke(ctx, VM_ParseBlock_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) GetBlock(ctx context.Context, in *GetBlockRequest, opts ...grpc.CallOption) (*GetBlockResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetBlockResponse)
	err := c.cc.Invoke(ctx, VM_GetBlock_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) SetPreference(ctx context.Context, in *SetPreferenceRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, VM_SetPreference_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) Health(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*HealthResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(HealthResponse)
	err := c.cc.Invoke(ctx, VM_Health_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) Version(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*VersionResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(VersionResponse)
	err := c.cc.Invoke(ctx, VM_Version_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) AppRequest(ctx context.Context, in *AppRequestMsg, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, VM_AppRequest_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) AppRequestFailed(ctx context.Context, in *AppRequestFailedMsg, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, VM_AppRequestFailed_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) AppResponse(ctx context.Context, in *AppResponseMsg, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, VM_AppResponse_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) AppGossip(ctx context.Context, in *AppGossipMsg, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, VM_AppGossip_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) Gather(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GatherResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GatherResponse)
	err := c.cc.Invoke(ctx, VM_Gather_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) GetAncestors(ctx context.Context, in *GetAncestorsRequest, opts ...grpc.CallOption) (*GetAncestorsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetAncestorsResponse)
	err := c.cc.Invoke(ctx, VM_GetAncestors_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) BatchedParseBlock(ctx context.Context, in *BatchedParseBlockRequest, opts ...grpc.CallOption) (*BatchedParseBlockResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(BatchedParseBlockResponse)
	err := c.cc.Invoke(ctx, VM_BatchedParseBlock_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) GetBlockIDAtHeight(ctx context.Context, in *GetBlockIDAtHeightRequest, opts ...grpc.CallOption) (*GetBlockIDAtHeightResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetBlockIDAtHeightResponse)
	err := c.cc.Invoke(ctx, VM_GetBlockIDAtHeight_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) StateSyncEnabled(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*StateSyncEnabledResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(StateSyncEnabledResponse)
	err := c.cc.Invoke(ctx, VM_StateSyncEnabled_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) GetOngoingSyncStateSummary(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetOngoingSyncStateSummaryResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetOngoingSyncStateSummaryResponse)
	err := c.cc.Invoke(ctx, VM_GetOngoingSyncStateSummary_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) GetLastStateSummary(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetLastStateSummaryResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetLastStateSummaryResponse)
	err := c.cc.Invoke(ctx, VM_GetLastStateSummary_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) ParseStateSummary(ctx context.Context, in *ParseStateSummaryRequest, opts ...grpc.CallOption) (*ParseStateSummaryResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ParseStateSummaryResponse)
	err := c.cc.Invoke(ctx, VM_ParseStateSummary_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) GetStateSummary(ctx context.Context, in *GetStateSummaryRequest, opts ...grpc.CallOption) (*GetStateSummaryResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetStateSummaryResponse)
	err := c.cc.Invoke(ctx, VM_GetStateSummary_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) BlockVerify(ctx context.Context, in *BlockVerifyRequest, opts ...grpc.CallOption) (*BlockVerifyResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(BlockVerifyResponse)
	err := c.cc.Invoke(ctx, VM_BlockVerify_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) BlockAccept(ctx context.Context, in *BlockAcceptRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, VM_BlockAccept_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) BlockReject(ctx context.Context, in *BlockRejectRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, VM_BlockReject_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *vMClient) StateSummaryAccept(ctx context.Context, in *StateSummaryAcceptRequest, opts ...grpc.CallOption) (*StateSummaryAcceptResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(StateSummaryAcceptResponse)
	err := c.cc.Invoke(ctx, VM_StateSummaryAccept_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// VMServer is the server API for VM service.
// All implementations must embed UnimplementedVMServer
// for forward compatibility.
//
// ref. https://pkg.go.dev/github.com/ava-labs/avalanchego/snow/engine/snowman/block
// ref. https://pkg.go.dev/github.com/ava-labs/avalanchego/snow/consensus/snowman#Block
type VMServer interface {
	// ChainVM
	//
	// Initialize this VM.
	Initialize(context.Context, *InitializeRequest) (*InitializeResponse, error)
	// SetState communicates to VM its next state it starts
	SetState(context.Context, *SetStateRequest) (*SetStateResponse, error)
	// Shutdown is called when the node is shutting down.
	Shutdown(context.Context, *emptypb.Empty) (*emptypb.Empty, error)
	// Creates the HTTP handlers for custom chain network calls. Requests are routed based on the specified path.
	CreateHandlers(context.Context, *emptypb.Empty) (*CreateHandlersResponse, error)
	// Creates the HTTP handler for custom chain network calls. Requests are routed based on the route header.
	NewHTTPHandler(context.Context, *emptypb.Empty) (*NewHTTPHandlerResponse, error)
	// WaitForEvent blocks until receiving the next event from the VM.
	WaitForEvent(context.Context, *emptypb.Empty) (*WaitForEventResponse, error)
	Connected(context.Context, *ConnectedRequest) (*emptypb.Empty, error)
	Disconnected(context.Context, *DisconnectedRequest) (*emptypb.Empty, error)
	// Attempt to create a new block from data contained in the VM.
	BuildBlock(context.Context, *BuildBlockRequest) (*BuildBlockResponse, error)
	// Attempt to create a block from a stream of bytes.
	ParseBlock(context.Context, *ParseBlockRequest) (*ParseBlockResponse, error)
	// Attempt to load a block.
	GetBlock(context.Context, *GetBlockRequest) (*GetBlockResponse, error)
	// Notify the VM of the currently preferred block.
	SetPreference(context.Context, *SetPreferenceRequest) (*emptypb.Empty, error)
	// Attempt to verify the health of the VM.
	Health(context.Context, *emptypb.Empty) (*HealthResponse, error)
	// Version returns the version of the VM.
	Version(context.Context, *emptypb.Empty) (*VersionResponse, error)
	// Notify this engine of a request for data from [nodeID].
	AppRequest(context.Context, *AppRequestMsg) (*emptypb.Empty, error)
	// Notify this engine that an AppRequest message it sent to [nodeID] with
	// request ID [requestID] failed.
	AppRequestFailed(context.Context, *AppRequestFailedMsg) (*emptypb.Empty, error)
	// Notify this engine of a response to the AppRequest message it sent to
	// [nodeID] with request ID [requestID].
	AppResponse(context.Context, *AppResponseMsg) (*emptypb.Empty, error)
	// Notify this engine of a gossip message from [nodeID].
	AppGossip(context.Context, *AppGossipMsg) (*emptypb.Empty, error)
	// Attempts to gather metrics from a VM.
	Gather(context.Context, *emptypb.Empty) (*GatherResponse, error)
	// BatchedChainVM
	GetAncestors(context.Context, *GetAncestorsRequest) (*GetAncestorsResponse, error)
	BatchedParseBlock(context.Context, *BatchedParseBlockRequest) (*BatchedParseBlockResponse, error)
	// HeightIndexedChainVM
	GetBlockIDAtHeight(context.Context, *GetBlockIDAtHeightRequest) (*GetBlockIDAtHeightResponse, error)
	// StateSyncableVM
	//
	// StateSyncEnabled indicates whether the state sync is enabled for this VM.
	StateSyncEnabled(context.Context, *emptypb.Empty) (*StateSyncEnabledResponse, error)
	// GetOngoingSyncStateSummary returns an in-progress state summary if it exists.
	GetOngoingSyncStateSummary(context.Context, *emptypb.Empty) (*GetOngoingSyncStateSummaryResponse, error)
	// GetLastStateSummary returns the latest state summary.
	GetLastStateSummary(context.Context, *emptypb.Empty) (*GetLastStateSummaryResponse, error)
	// ParseStateSummary parses a state summary out of [summaryBytes].
	ParseStateSummary(context.Context, *ParseStateSummaryRequest) (*ParseStateSummaryResponse, error)
	// GetStateSummary retrieves the state summary that was generated at height
	// [summaryHeight].
	GetStateSummary(context.Context, *GetStateSummaryRequest) (*GetStateSummaryResponse, error)
	// Block
	BlockVerify(context.Context, *BlockVerifyRequest) (*BlockVerifyResponse, error)
	BlockAccept(context.Context, *BlockAcceptRequest) (*emptypb.Empty, error)
	BlockReject(context.Context, *BlockRejectRequest) (*emptypb.Empty, error)
	// StateSummary
	StateSummaryAccept(context.Context, *StateSummaryAcceptRequest) (*StateSummaryAcceptResponse, error)
	mustEmbedUnimplementedVMServer()
}

// UnimplementedVMServer must be embedded to have
// forward compatible implementations.
//
// NOTE: this should be embedded by value instead of pointer to avoid a nil
// pointer dereference when methods are called.
type UnimplementedVMServer struct{}

func (UnimplementedVMServer) Initialize(context.Context, *InitializeRequest) (*InitializeResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Initialize not implemented")
}
func (UnimplementedVMServer) SetState(context.Context, *SetStateRequest) (*SetStateResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetState not implemented")
}
func (UnimplementedVMServer) Shutdown(context.Context, *emptypb.Empty) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Shutdown not implemented")
}
func (UnimplementedVMServer) CreateHandlers(context.Context, *emptypb.Empty) (*CreateHandlersResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateHandlers not implemented")
}
func (UnimplementedVMServer) NewHTTPHandler(context.Context, *emptypb.Empty) (*NewHTTPHandlerResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method NewHTTPHandler not implemented")
}
func (UnimplementedVMServer) WaitForEvent(context.Context, *emptypb.Empty) (*WaitForEventResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method WaitForEvent not implemented")
}
func (UnimplementedVMServer) Connected(context.Context, *ConnectedRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Connected not implemented")
}
func (UnimplementedVMServer) Disconnected(context.Context, *DisconnectedRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Disconnected not implemented")
}
func (UnimplementedVMServer) BuildBlock(context.Context, *BuildBlockRequest) (*BuildBlockResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method BuildBlock not implemented")
}
func (UnimplementedVMServer) ParseBlock(context.Context, *ParseBlockRequest) (*ParseBlockResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ParseBlock not implemented")
}
func (UnimplementedVMServer) GetBlock(context.Context, *GetBlockRequest) (*GetBlockResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetBlock not implemented")
}
func (UnimplementedVMServer) SetPreference(context.Context, *SetPreferenceRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SetPreference not implemented")
}
func (UnimplementedVMServer) Health(context.Context, *emptypb.Empty) (*HealthResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Health not implemented")
}
func (UnimplementedVMServer) Version(context.Context, *emptypb.Empty) (*VersionResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Version not implemented")
}
func (UnimplementedVMServer) AppRequest(context.Context, *AppRequestMsg) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AppRequest not implemented")
}
func (UnimplementedVMServer) AppRequestFailed(context.Context, *AppRequestFailedMsg) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AppRequestFailed not implemented")
}
func (UnimplementedVMServer) AppResponse(context.Context, *AppResponseMsg) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AppResponse not implemented")
}
func (UnimplementedVMServer) AppGossip(context.Context, *AppGossipMsg) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AppGossip not implemented")
}
func (UnimplementedVMServer) Gather(context.Context, *emptypb.Empty) (*GatherResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Gather not implemented")
}
func (UnimplementedVMServer) GetAncestors(context.Context, *GetAncestorsRequest) (*GetAncestorsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetAncestors not implemented")
}
func (UnimplementedVMServer) BatchedParseBlock(context.Context, *BatchedParseBlockRequest) (*BatchedParseBlockResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method BatchedParseBlock not implemented")
}
func (UnimplementedVMServer) GetBlockIDAtHeight(context.Context, *GetBlockIDAtHeightRequest) (*GetBlockIDAtHeightResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetBlockIDAtHeight not implemented")
}
func (UnimplementedVMServer) StateSyncEnabled(context.Context, *emptypb.Empty) (*StateSyncEnabledResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method StateSyncEnabled not implemented")
}
func (UnimplementedVMServer) GetOngoingSyncStateSummary(context.Context, *emptypb.Empty) (*GetOngoingSyncStateSummaryResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetOngoingSyncStateSummary not implemented")
}
func (UnimplementedVMServer) GetLastStateSummary(context.Context, *emptypb.Empty) (*GetLastStateSummaryResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetLastStateSummary not implemented")
}
func (UnimplementedVMServer) ParseStateSummary(context.Context, *ParseStateSummaryRequest) (*ParseStateSummaryResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ParseStateSummary not implemented")
}
func (UnimplementedVMServer) GetStateSummary(context.Context, *GetStateSummaryRequest) (*GetStateSummaryResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetStateSummary not implemented")
}
func (UnimplementedVMServer) BlockVerify(context.Context, *BlockVerifyRequest) (*BlockVerifyResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method BlockVerify not implemented")
}
func (UnimplementedVMServer) BlockAccept(context.Context, *BlockAcceptRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method BlockAccept not implemented")
}
func (UnimplementedVMServer) BlockReject(context.Context, *BlockRejectRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method BlockReject not implemented")
}
func (UnimplementedVMServer) StateSummaryAccept(context.Context, *StateSummaryAcceptRequest) (*StateSummaryAcceptResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method StateSummaryAccept not implemented")
}
func (UnimplementedVMServer) mustEmbedUnimplementedVMServer() {}
func (UnimplementedVMServer) testEmbeddedByValue()            {}

// UnsafeVMServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to VMServer will
// result in compilation errors.
type UnsafeVMServer interface {
	mustEmbedUnimplementedVMServer()
}

func RegisterVMServer(s grpc.ServiceRegistrar, srv VMServer) {
	// If the following call pancis, it indicates UnimplementedVMServer was
	// embedded by pointer and is nil.  This will cause panics if an
	// unimplemented method is ever invoked, so we test this at initialization
	// time to prevent it from happening at runtime later due to I/O.
	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
		t.testEmbeddedByValue()
	}
	s.RegisterService(&VM_ServiceDesc, srv)
}

func _VM_Initialize_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(InitializeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).Initialize(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_Initialize_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).Initialize(ctx, req.(*InitializeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_SetState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetStateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).SetState(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_SetState_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).SetState(ctx, req.(*SetStateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_Shutdown_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(emptypb.Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).Shutdown(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_Shutdown_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).Shutdown(ctx, req.(*emptypb.Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_CreateHandlers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(emptypb.Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).CreateHandlers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_CreateHandlers_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).CreateHandlers(ctx, req.(*emptypb.Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_NewHTTPHandler_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(emptypb.Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).NewHTTPHandler(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_NewHTTPHandler_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).NewHTTPHandler(ctx, req.(*emptypb.Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_WaitForEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(emptypb.Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).WaitForEvent(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_WaitForEvent_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).WaitForEvent(ctx, req.(*emptypb.Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_Connected_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ConnectedRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).Connected(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_Connected_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).Connected(ctx, req.(*ConnectedRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_Disconnected_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DisconnectedRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).Disconnected(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_Disconnected_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).Disconnected(ctx, req.(*DisconnectedRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_BuildBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BuildBlockRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).BuildBlock(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_BuildBlock_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).BuildBlock(ctx, req.(*BuildBlockRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_ParseBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ParseBlockRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).ParseBlock(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_ParseBlock_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).ParseBlock(ctx, req.(*ParseBlockRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_GetBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetBlockRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).GetBlock(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_GetBlock_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).GetBlock(ctx, req.(*GetBlockRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_SetPreference_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SetPreferenceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).SetPreference(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_SetPreference_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).SetPreference(ctx, req.(*SetPreferenceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_Health_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(emptypb.Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).Health(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_Health_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).Health(ctx, req.(*emptypb.Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_Version_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(emptypb.Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).Version(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_Version_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).Version(ctx, req.(*emptypb.Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_AppRequest_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AppRequestMsg)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).AppRequest(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_AppRequest_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).AppRequest(ctx, req.(*AppRequestMsg))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_AppRequestFailed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AppRequestFailedMsg)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).AppRequestFailed(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_AppRequestFailed_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).AppRequestFailed(ctx, req.(*AppRequestFailedMsg))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_AppResponse_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AppResponseMsg)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).AppResponse(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_AppResponse_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).AppResponse(ctx, req.(*AppResponseMsg))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_AppGossip_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AppGossipMsg)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).AppGossip(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_AppGossip_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).AppGossip(ctx, req.(*AppGossipMsg))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_Gather_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(emptypb.Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).Gather(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_Gather_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).Gather(ctx, req.(*emptypb.Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_GetAncestors_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetAncestorsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).GetAncestors(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_GetAncestors_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).GetAncestors(ctx, req.(*GetAncestorsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_BatchedParseBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BatchedParseBlockRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).BatchedParseBlock(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_BatchedParseBlock_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).BatchedParseBlock(ctx, req.(*BatchedParseBlockRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_GetBlockIDAtHeight_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetBlockIDAtHeightRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).GetBlockIDAtHeight(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_GetBlockIDAtHeight_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).GetBlockIDAtHeight(ctx, req.(*GetBlockIDAtHeightRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_StateSyncEnabled_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(emptypb.Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).StateSyncEnabled(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_StateSyncEnabled_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).StateSyncEnabled(ctx, req.(*emptypb.Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_GetOngoingSyncStateSummary_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(emptypb.Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).GetOngoingSyncStateSummary(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_GetOngoingSyncStateSummary_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).GetOngoingSyncStateSummary(ctx, req.(*emptypb.Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_GetLastStateSummary_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(emptypb.Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).GetLastStateSummary(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_GetLastStateSummary_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).GetLastStateSummary(ctx, req.(*emptypb.Empty))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_ParseStateSummary_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ParseStateSummaryRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).ParseStateSummary(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_ParseStateSummary_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).ParseStateSummary(ctx, req.(*ParseStateSummaryRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_GetStateSummary_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetStateSummaryRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).GetStateSummary(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_GetStateSummary_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).GetStateSummary(ctx, req.(*GetStateSummaryRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_BlockVerify_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BlockVerifyRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).BlockVerify(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_BlockVerify_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).BlockVerify(ctx, req.(*BlockVerifyRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_BlockAccept_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BlockAcceptRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).BlockAccept(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_BlockAccept_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).BlockAccept(ctx, req.(*BlockAcceptRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_BlockReject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(BlockRejectRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).BlockReject(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_BlockReject_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).BlockReject(ctx, req.(*BlockRejectRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _VM_StateSummaryAccept_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StateSummaryAcceptRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(VMServer).StateSummaryAccept(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: VM_StateSummaryAccept_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(VMServer).StateSummaryAccept(ctx, req.(*StateSummaryAcceptRequest))
	}
	return interceptor(ctx, in, info, handler)
}

// VM_ServiceDesc is the grpc.ServiceDesc for VM service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var VM_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "vm.VM",
	HandlerType: (*VMServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Initialize",
			Handler:    _VM_Initialize_Handler,
		},
		{
			MethodName: "SetState",
			Handler:    _VM_SetState_Handler,
		},
		{
			MethodName: "Shutdown",
			Handler:    _VM_Shutdown_Handler,
		},
		{
			MethodName: "CreateHandlers",
			Handler:    _VM_CreateHandlers_Handler,
		},
		{
			MethodName: "NewHTTPHandler",
			Handler:    _VM_NewHTTPHandler_Handler,
		},
		{
			MethodName: "WaitForEvent",
			Handler:    _VM_WaitForEvent_Handler,
		},
		{
			MethodName: "Connected",
			Handler:    _VM_Connected_Handler,
		},
		{
			MethodName: "Disconnected",
			Handler:    _VM_Disconnected_Handler,
		},
		{
			MethodName: "BuildBlock",
			Handler:    _VM_BuildBlock_Handler,
		},
		{
			MethodName: "ParseBlock",
			Handler:    _VM_ParseBlock_Handler,
		},
		{
			MethodName: "GetBlock",
			Handler:    _VM_GetBlock_Handler,
		},
		{
			MethodName: "SetPreference",
			Handler:    _VM_SetPreference_Handler,
		},
		{
			MethodName: "Health",
			Handler:    _VM_Health_Handler,
		},
		{
			MethodName: "Version",
			Handler:    _VM_Version_Handler,
		},
		{
			MethodName: "AppRequest",
			Handler:    _VM_AppRequest_Handler,
		},
		{
			MethodName: "AppRequestFailed",
			Handler:    _VM_AppRequestFailed_Handler,
		},
		{
			MethodName: "AppResponse",
			Handler:    _VM_AppResponse_Handler,
		},
		{
			MethodName: "AppGossip",
			Handler:    _VM_AppGossip_Handler,
		},
		{
			MethodName: "Gather",
			Handler:    _VM_Gather_Handler,
		},
		{
			MethodName: "GetAncestors",
			Handler:    _VM_GetAncestors_Handler,
		},
		{
			MethodName: "BatchedParseBlock",
			Handler:    _VM_BatchedParseBlock_Handler,
		},
		{
			MethodName: "GetBlockIDAtHeight",
			Handler:    _VM_GetBlockIDAtHeight_Handler,
		},
		{
			MethodName: "StateSyncEnabled",
			Handler:    _VM_StateSyncEnabled_Handler,
		},
		{
			MethodName: "GetOngoingSyncStateSummary",
			Handler:    _VM_GetOngoingSyncStateSummary_Handler,
		},
		{
			MethodName: "GetLastStateSummary",
			Handler:    _VM_GetLastStateSummary_Handler,
		},
		{
			MethodName: "ParseStateSummary",
			Handler:    _VM_ParseStateSummary_Handler,
		},
		{
			MethodName: "GetStateSummary",
			Handler:    _VM_GetStateSummary_Handler,
		},
		{
			MethodName: "BlockVerify",
			Handler:    _VM_BlockVerify_Handler,
		},
		{
			MethodName: "BlockAccept",
			Handler:    _VM_BlockAccept_Handler,
		},
		{
			MethodName: "BlockReject",
			Handler:    _VM_BlockReject_Handler,
		},
		{
			MethodName: "StateSummaryAccept",
			Handler:    _VM_StateSummaryAccept_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "vm/vm.proto",
}
