github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/common/errors.go (about) 1 package common 2 3 import ( 4 "encoding/json" 5 "fmt" 6 7 sdkerrors "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types/errors" 8 abci "github.com/fibonacci-chain/fbc/libs/tendermint/abci/types" 9 10 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 11 ) 12 13 // const uint32 14 const ( 15 DefaultCodespace = "common" 16 17 CodeInternalError uint32 = 60100 18 CodeInvalidPaginateParam uint32 = 60101 19 CodeCreateAddrFromBech32Failed uint32 = 60102 20 CodeMarshalJSONFailed uint32 = 60103 21 CodeUnMarshalJSONFailed uint32 = 60104 //"incorrectly formatted request data", err.Error() 22 CodeStrconvFailed uint32 = 60105 23 CodeUnknownProposalType uint32 = 60106 24 CodeInsufficientCoins uint32 = 60107 25 CodeMissingRequiredParam uint32 = 60108 26 CodeInvalidParam uint32 = 60109 27 CodeServerException uint32 = 60110 28 CodeDataNotExist uint32 = 60111 29 CodeCodecFails uint32 = 60112 30 CodeABCIQueryFails uint32 = 60113 31 CodeArgsWithLimit uint32 = 60114 32 ) 33 34 type SDKError struct { 35 Codespace string `json:"codespace"` 36 Code uint32 `json:"code"` 37 Message string `json:"message"` 38 } 39 40 func ParseSDKError(errMsg string) SDKError { 41 var res abci.ResponseQuery 42 err := json.Unmarshal([]byte(errMsg), &res) 43 if err != nil { 44 return SDKError{ 45 Codespace: DefaultCodespace, 46 Code: CodeInternalError, 47 Message: "query response unmarshal failed" + err.Error(), 48 } 49 } 50 return SDKError{ 51 Codespace: res.Codespace, 52 Code: res.Code, 53 Message: res.Log, 54 } 55 } 56 57 func ErrInvalidParam(msg string) sdk.EnvelopedErr { 58 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeInvalidParam, msg)} 59 } 60 61 // invalid paginate param 62 func ErrInvalidPaginateParam(page int, perPage int) sdk.EnvelopedErr { 63 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeInvalidPaginateParam, fmt.Sprintf("negative page %d or per_page %d is invalid", page, perPage))} 64 } 65 66 // invalid address 67 func ErrCreateAddrFromBech32Failed(addr string, msg string) sdk.EnvelopedErr { 68 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeCreateAddrFromBech32Failed, fmt.Sprintf("invalid address:%s, reason: %s", addr, msg))} 69 } 70 71 // could not marshal result to JSON 72 func ErrMarshalJSONFailed(msg string) sdk.EnvelopedErr { 73 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeMarshalJSONFailed, fmt.Sprintf("could not marshal result to JSON, %s", msg))} 74 } 75 76 // could not unmarshal result to origin 77 func ErrUnMarshalJSONFailed(msg string) sdk.EnvelopedErr { 78 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeUnMarshalJSONFailed, fmt.Sprintf("incorrectly formatted request data, %s", msg))} 79 } 80 81 func ErrStrconvFailed(msg string) sdk.EnvelopedErr { 82 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeStrconvFailed, fmt.Sprintf("incorrect string conversion"))} 83 } 84 85 func ErrUnknownProposalType(codespace string, msg string) sdk.EnvelopedErr { 86 return sdk.EnvelopedErr{Err: sdkerrors.New(codespace, CodeUnknownProposalType, fmt.Sprintf("unknown proposal content type: %s", msg))} 87 } 88 89 func ErrInsufficientCoins(codespace string, msg string) sdk.EnvelopedErr { 90 return sdk.EnvelopedErr{sdkerrors.New(codespace, CodeInsufficientCoins, fmt.Sprintf("insufficient coins: %s", msg))} 91 }