github.com/MetalBlockchain/metalgo@v1.11.9/vms/rpcchainvm/errors.go (about)

     1  // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved.
     2  // See the file LICENSE for licensing terms.
     3  
     4  package rpcchainvm
     5  
     6  import (
     7  	"github.com/MetalBlockchain/metalgo/database"
     8  	"github.com/MetalBlockchain/metalgo/snow/engine/snowman/block"
     9  
    10  	vmpb "github.com/MetalBlockchain/metalgo/proto/pb/vm"
    11  )
    12  
    13  var (
    14  	errEnumToError = map[vmpb.Error]error{
    15  		vmpb.Error_ERROR_CLOSED:                     database.ErrClosed,
    16  		vmpb.Error_ERROR_NOT_FOUND:                  database.ErrNotFound,
    17  		vmpb.Error_ERROR_STATE_SYNC_NOT_IMPLEMENTED: block.ErrStateSyncableVMNotImplemented,
    18  	}
    19  	errorToErrEnum = map[error]vmpb.Error{
    20  		database.ErrClosed:                     vmpb.Error_ERROR_CLOSED,
    21  		database.ErrNotFound:                   vmpb.Error_ERROR_NOT_FOUND,
    22  		block.ErrStateSyncableVMNotImplemented: vmpb.Error_ERROR_STATE_SYNC_NOT_IMPLEMENTED,
    23  	}
    24  )
    25  
    26  func errorToRPCError(err error) error {
    27  	if _, ok := errorToErrEnum[err]; ok {
    28  		return nil
    29  	}
    30  	return err
    31  }