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 }