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  }