github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/dex/types/errors.go (about) 1 package types 2 3 import ( 4 "fmt" 5 6 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 7 sdkerrors "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types/errors" 8 ) 9 10 // const CodeType 11 const ( 12 CodeAddrAndProductAllRequired uint32 = 64000 13 codeInvalidTokenPair uint32 = 64001 14 codeTokenPairNotFound uint32 = 64002 15 codeBalanceNotEnough uint32 = 64003 16 codeInvalidAsset uint32 = 64004 17 codeUnknownOperator uint32 = 64005 18 codeExistOperator uint32 = 64006 19 codeInvalidWebsiteLength uint32 = 64007 20 codeInvalidWebsiteURL uint32 = 64008 21 CodeTokenPairSaveFailed uint32 = 64009 22 CodeInsufficientFeeCoins uint32 = 64010 23 CodeTokenPairAlreadyExist uint32 = 64011 24 CodeMustTokenPairOwner uint32 = 64012 25 CodeDepositOnlySupportDenom uint32 = 64013 26 CodeInsufficientDepositCoins uint32 = 64014 27 CodeWithdrawOnlySupportDenom uint32 = 64015 28 CodeInsufficientWithdrawCoins uint32 = 64016 29 CodeInvalidAddress uint32 = 64017 30 CodeUnauthorized uint32 = 64018 31 CodeInvalidCoins uint32 = 64019 32 CodeRepeatedTransferOwner uint32 = 64020 33 CodeDepositFailed uint32 = 64021 34 CodeWithdrawFailed uint32 = 64022 35 CodeGetConfirmOwnershipNotExist uint32 = 64023 36 CodeTokenPairIsRequired uint32 = 64024 37 CodeIsTokenPairLocked uint32 = 64025 38 CodeDexUnknownMsgType uint32 = 64026 39 CodeDexUnknownQueryType uint32 = 64027 40 CodeInitPriceIsNotPositive uint32 = 64028 41 CodeAddressIsRequired uint32 = 64029 42 CodeTokenOfPairNotExist uint32 = 64030 43 CodeIsTransferringOwner uint32 = 64031 44 CodeTransferOwnerExpired uint32 = 64032 45 CodeUnauthorizedOperator uint32 = 64033 46 ) 47 48 // Addr and Product All Required 49 func ErrAddrAndProductAllRequired() sdk.EnvelopedErr { 50 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeAddrAndProductAllRequired, "bad request: address、base_asset and quote_asset could not be "+" at the same time")} 51 } 52 53 // ErrInvalidTokenPair returns invalid product error 54 func ErrInvalidTokenPair(tokenPair string) sdk.EnvelopedErr { 55 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, codeInvalidTokenPair, fmt.Sprintf("invalid tokenpair: %s", tokenPair))} 56 } 57 58 // ErrTokenPairNotFound returns token pair not found error 59 func ErrTokenPairNotFound(product string) sdk.EnvelopedErr { 60 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, codeTokenPairNotFound, fmt.Sprintf("tokenpair not found: %s", product))} 61 } 62 63 // ErrInvalidBalanceNotEnough returns invalid balance not enough error 64 func ErrBalanceNotEnough(proposer string, initialDeposit string) sdk.EnvelopedErr { 65 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, codeBalanceNotEnough, fmt.Sprintf("failed to submit proposal because proposer %s didn't have enough coins to pay for the initial deposit %s", proposer, initialDeposit))} 66 } 67 68 // ErrInvalidAsset returns invalid asset error 69 func ErrInvalidAsset(localMinDeposit string) sdk.EnvelopedErr { 70 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, codeInvalidAsset, fmt.Sprintf("failed to submit proposal because initial deposit should be more than %s", localMinDeposit))} 71 } 72 73 func ErrUnknownOperator(addr sdk.AccAddress) sdk.EnvelopedErr { 74 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, codeUnknownOperator, fmt.Sprintf("unknown dex operator with address %s", addr.String()))} 75 } 76 77 func ErrExistOperator(addr sdk.AccAddress) sdk.EnvelopedErr { 78 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, codeExistOperator, fmt.Sprintf("dex operator already exists with address %s", addr.String()))} 79 } 80 81 func ErrInvalidWebsiteLength(got, max int) sdk.EnvelopedErr { 82 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, codeInvalidWebsiteLength, fmt.Sprintf("invalid website length, got length %v, max is %v", got, max))} 83 } 84 85 func ErrInvalidWebsiteURL(msg string) sdk.EnvelopedErr { 86 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, codeInvalidWebsiteURL, fmt.Sprintf("invalid website URL: %s", msg))} 87 } 88 89 func ErrTokenPairSaveFailed(err string) sdk.EnvelopedErr { 90 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeTokenPairSaveFailed, fmt.Sprintf("failed to SaveTokenPair: %s", err))} 91 } 92 93 func ErrInsufficientFeeCoins(fee sdk.Coins) sdk.EnvelopedErr { 94 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeInsufficientFeeCoins, fmt.Sprintf("insufficient fee coins(need %s)", fee.String()))} 95 } 96 97 // ErrTokenPairExisted returns an error when the token pair is existing during the process of listing 98 func ErrTokenPairExisted(baseAsset string, quoteAsset string) sdk.EnvelopedErr { 99 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeTokenPairAlreadyExist, fmt.Sprintf("the token pair exists with %s and %s", baseAsset, quoteAsset))} 100 } 101 102 func ErrMustTokenPairOwner(addr string, tokenPair string) sdk.EnvelopedErr { 103 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeMustTokenPairOwner, fmt.Sprintf("%s is not the owner of product: %s", addr, tokenPair))} 104 } 105 106 func ErrDepositOnlySupportDenom(denom string) sdk.EnvelopedErr { 107 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeDepositOnlySupportDenom, fmt.Sprintf("deposits only support %s token", denom))} 108 } 109 110 func ErrInsufficientDepositCoins(depositCoins string) sdk.EnvelopedErr { 111 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeInsufficientDepositCoins, fmt.Sprintf("insufficient deposit coins(need %s)", depositCoins))} 112 } 113 114 func ErrWithdrawOnlySupportDenom(denom string) sdk.EnvelopedErr { 115 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeWithdrawOnlySupportDenom, fmt.Sprintf("failed to withdraws because deposits only support %s token", denom))} 116 } 117 118 func ErrInsufficientWithdrawCoins(depositCoins string, amount string) sdk.EnvelopedErr { 119 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeInsufficientWithdrawCoins, fmt.Sprintf("failed to withdraws because deposits:%s is less than withdraw:%s", depositCoins, amount))} 120 } 121 122 func ErrInvalidAddress(msg string) sdk.EnvelopedErr { 123 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeInvalidAddress, fmt.Sprintf("there is no withdrawing for address: %s", msg))} 124 } 125 126 func ErrUnauthorized(address, product string) sdk.EnvelopedErr { 127 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeUnauthorized, fmt.Sprintf("%s is not the owner of product(%s)", address, product))} 128 } 129 130 func ErrInvalidCoins() sdk.EnvelopedErr { 131 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeInvalidCoins, "invalid coins")} 132 } 133 134 func ErrRepeatedTransferOwner(product string) sdk.EnvelopedErr { 135 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeRepeatedTransferOwner, fmt.Sprintf("repeated transfer-ownership of product(%s)", product))} 136 } 137 138 func ErrDepositFailed(msg string) sdk.EnvelopedErr { 139 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeDepositFailed, fmt.Sprintf("error occurs in deposit: %s", msg))} 140 } 141 142 func ErrWithdrawFailed(msg string) sdk.EnvelopedErr { 143 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeWithdrawFailed, fmt.Sprintf("error occurs in withdraw: %s", msg))} 144 } 145 146 func ErrGetConfirmOwnershipNotExist(address string) sdk.EnvelopedErr { 147 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeGetConfirmOwnershipNotExist, fmt.Sprintf("no transfer-ownership of list (%s) to confirm", address))} 148 } 149 150 func ErrTokenPairIsRequired() sdk.EnvelopedErr { 151 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeTokenPairIsRequired, "token pair is required")} 152 } 153 154 func ErrIsTokenPairLocked(tokenPairName string) sdk.EnvelopedErr { 155 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeIsTokenPairLocked, fmt.Sprintf("unexpected state, the trading pair (%s) is locked", tokenPairName))} 156 } 157 158 func ErrDexUnknownMsgType(msg string) sdk.EnvelopedErr { 159 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeDexUnknownMsgType, fmt.Sprintf("unrecognized dex message type: %T", msg))} 160 } 161 162 func ErrDexUnknownQueryType() sdk.EnvelopedErr { 163 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeDexUnknownQueryType, "unknown dex query endpoint")} 164 } 165 166 func ErrInitPriceIsNotPositive() sdk.EnvelopedErr { 167 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeInitPriceIsNotPositive, "invalid init price number")} 168 } 169 170 func ErrAddressIsRequired(addrType string) sdk.EnvelopedErr { 171 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeAddressIsRequired, fmt.Sprintf("missing %s address", addrType))} 172 } 173 174 func ErrTokenOfPairNotExist(baseAsset string, quoteAsset string) sdk.EnvelopedErr { 175 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeTokenOfPairNotExist, fmt.Sprintf("the token of pair does not exist with %s and %s", baseAsset, quoteAsset))} 176 } 177 178 func ErrIsTransferringOwner(product string) sdk.EnvelopedErr { 179 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeIsTransferringOwner, fmt.Sprintf("the product(%s) is transferring ownership, not allowed to be deposited", product))} 180 } 181 182 func ErrIsTransferOwnerExpired(time string) sdk.EnvelopedErr { 183 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeTransferOwnerExpired, fmt.Sprintf("transfer-ownership is expired, expire time (%s)", time))} 184 } 185 186 func ErrUnauthorizedOperator(operator, owner string) sdk.EnvelopedErr { 187 return sdk.EnvelopedErr{Err: sdkerrors.New(DefaultCodespace, CodeUnauthorizedOperator, fmt.Sprintf("%s is not the owner of operator(%s)", owner, operator))} 188 }