github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/evm/types/errors.go (about)

     1  package types
     2  
     3  import (
     4  	"errors"
     5  	"fmt"
     6  
     7  	ethcmn "github.com/ethereum/go-ethereum/common"
     8  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
     9  	sdkerrors "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types/errors"
    10  )
    11  
    12  // NOTE: We can't use 1 since that error code is reserved for internal errors.
    13  const (
    14  	DefaultCodespace string = ModuleName
    15  )
    16  
    17  var (
    18  	// ErrInvalidState returns an error resulting from an invalid Storage State.
    19  	ErrInvalidState = sdkerrors.Register(ModuleName, 2, "invalid storage state")
    20  
    21  	// ErrChainConfigNotFound returns an error if the chain config cannot be found on the store.
    22  	ErrChainConfigNotFound = sdkerrors.Register(ModuleName, 3, "chain configuration not found")
    23  
    24  	// ErrInvalidChainConfig returns an error resulting from an invalid ChainConfig.
    25  	ErrInvalidChainConfig = sdkerrors.Register(ModuleName, 4, "invalid chain configuration")
    26  
    27  	// ErrCreateDisabled returns an error if the EnableCreate parameter is false.
    28  	ErrCreateDisabled = sdkerrors.Register(ModuleName, 5, "EVM Create operation is disabled")
    29  
    30  	// ErrCallDisabled returns an error if the EnableCall parameter is false.
    31  	ErrCallDisabled = sdkerrors.Register(ModuleName, 6, "EVM Call operation is disabled")
    32  
    33  	// ErrKeyNotFound returns an error if the target key not found in database.
    34  	ErrKeyNotFound = sdkerrors.Register(ModuleName, 8, "Key not found in database")
    35  
    36  	// ErrStrConvertFailed returns an error if failed to convert string
    37  	ErrStrConvertFailed = sdkerrors.Register(ModuleName, 9, "Failed to convert string")
    38  
    39  	// ErrUnexpectedProposalType returns an error when the proposal type is not supported in evm module
    40  	ErrUnexpectedProposalType = sdkerrors.Register(ModuleName, 10, "Unsupported proposal type of evm module")
    41  
    42  	// ErrEmptyAddressList returns an error if the address list is empty
    43  	ErrEmptyAddressList = sdkerrors.Register(ModuleName, 11, "Empty account address list")
    44  
    45  	// ErrDuplicatedAddr returns an error if the address is duplicated in address list
    46  	ErrDuplicatedAddr = sdkerrors.Register(ModuleName, 12, "Duplicated address in address list")
    47  
    48  	// ErrDuplicatedAddr returns an error if the address is duplicated in address list
    49  	ErrOperation = sdkerrors.Register(ModuleName, 16, "Special contract method blocked operation can not change blocked contract list")
    50  
    51  	// ErrDuplicatedMethod returns an error if the contract method is duplicated
    52  	ErrDuplicatedMethod = sdkerrors.Register(ModuleName, 17, "Duplicated contract method in address list")
    53  
    54  	// ErrEmptyMethod returns an error if the contract method is empty
    55  	ErrEmptyMethod = sdkerrors.Register(ModuleName, 18, "Empty contract method blocked is not allowed")
    56  
    57  	// ErrEmptyAddressBlockedContract returns an error if the contract method is empty
    58  	ErrEmptyAddressBlockedContract = sdkerrors.Register(ModuleName, 19, "Empty address in contract method blocked list is not allowed")
    59  
    60  	CodeSpaceEvmCallFailed = uint32(7)
    61  
    62  	ErrorHexData = "HexData"
    63  
    64  	ErrorContractMethodBlockedIsNotExist = errors.New("it's not exist in contract method blocked list")
    65  
    66  	// ErrGUFactor returns an error if gu_factor is negative
    67  	ErrGUFactor = sdkerrors.Register(ModuleName, 24, "gu_factor should non-negative")
    68  )
    69  
    70  const (
    71  	CodeGetChainHeightFailed   uint32 = 62004
    72  	CodeGetBlockTxHashesFailed uint32 = 62005
    73  )
    74  
    75  // ErrOversizeAddrList returns an error when the length of address list in the proposal is larger than the max limitation
    76  func ErrOversizeAddrList(length int) sdk.EnvelopedErr {
    77  	return sdk.EnvelopedErr{
    78  		Err: sdkerrors.New(
    79  			DefaultParamspace,
    80  			13,
    81  			fmt.Sprintf("failed. the length of address list in the proposal %d is larger than the max limitation %d",
    82  				length, maxAddressListLength,
    83  			))}
    84  }
    85  
    86  // ErrUnauthorizedAccount returns an error when an account not in the whitelist tries to create a contract
    87  func ErrUnauthorizedAccount(distributorAddr sdk.AccAddress) sdk.EnvelopedErr {
    88  	return sdk.EnvelopedErr{
    89  		Err: sdkerrors.New(
    90  			DefaultParamspace,
    91  			14,
    92  			fmt.Sprintf("failed. the account %s is not allowed to deploy a contract", ethcmn.BytesToAddress(distributorAddr)))}
    93  }
    94  
    95  // ErrCallBlockedContract returns an error when the blocked contract is invoked
    96  func ErrCallBlockedContract(descriptor string) sdk.EnvelopedErr {
    97  	return sdk.EnvelopedErr{
    98  		Err: sdkerrors.New(
    99  			DefaultParamspace,
   100  			15,
   101  			descriptor,
   102  		),
   103  	}
   104  }
   105  
   106  // ErrBlockedContractMethodIsNotExist returns an error when the blocked contract method is not exist
   107  func ErrBlockedContractMethodIsNotExist(address sdk.Address, err error) sdk.EnvelopedErr {
   108  	return sdk.EnvelopedErr{
   109  		Err: sdkerrors.New(
   110  			DefaultParamspace,
   111  			20,
   112  			fmt.Sprintf("Delete contract(%s) method failed: %s", address, err.Error()),
   113  		),
   114  	}
   115  }
   116  
   117  func ErrSysContractAddressIsNotExist(err error) sdk.EnvelopedErr {
   118  	return sdk.EnvelopedErr{
   119  		Err: sdkerrors.New(
   120  			DefaultParamspace,
   121  			21,
   122  			fmt.Sprintf("failed. the system contract address is not exist: %s", err.Error()),
   123  		),
   124  	}
   125  }
   126  
   127  func ErrNotContracAddress(err error) sdk.EnvelopedErr {
   128  	return sdk.EnvelopedErr{
   129  		Err: sdkerrors.New(
   130  			DefaultParamspace,
   131  			22,
   132  			fmt.Sprintf("failed. the address is not a contract address: %s", err.Error()),
   133  		),
   134  	}
   135  }
   136  
   137  func ErrCodeProposerMustBeValidator() sdk.Error {
   138  	return sdkerrors.New(DefaultCodespace, 23, "the proposal of proposer must be validator")
   139  }
   140  
   141  func ErrContractCodeNotBeenUpdated(addr string) sdk.EnvelopedErr {
   142  	return sdk.EnvelopedErr{
   143  		Err: sdkerrors.New(DefaultParamspace, 24, fmt.Sprintf("failed ,the address has not been updated: %s", addr)),
   144  	}
   145  }
   146  
   147  type ErrContractBlockedVerify struct {
   148  	Descriptor string
   149  }