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 }