github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/farm/types/params.go (about) 1 package types 2 3 import ( 4 "fmt" 5 "github.com/fibonacci-chain/fbc/x/common" 6 7 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 8 "github.com/fibonacci-chain/fbc/x/params" 9 ) 10 11 // Default parameter namespace 12 const ( 13 DefaultParamspace = ModuleName 14 defaultQuoteSymbol = "usdf" 15 defaultCreatePoolFee = "0" 16 defaultCreatePoolDeposit = "10" 17 ) 18 19 // Parameter store keys 20 var ( 21 KeyQuoteSymbol = []byte("QuoteSymbol") 22 KeyCreatePoolFee = []byte("CreatePoolFee") 23 KeyCreatePoolDeposit = []byte("CreatePoolDeposit") 24 keyYieldNativeToken = []byte("YieldNativeToken") 25 ) 26 27 // ParamKeyTable for farm module 28 func ParamKeyTable() params.KeyTable { 29 return params.NewKeyTable().RegisterParamSet(&Params{}) 30 } 31 32 // Params - used for initializing default parameter for farm at genesis 33 type Params struct { 34 QuoteSymbol string `json:"quote_symbol"` 35 CreatePoolFee sdk.SysCoin `json:"create_pool_fee"` 36 CreatePoolDeposit sdk.SysCoin `json:"create_pool_deposit"` 37 // proposal params 38 YieldNativeToken bool `json:"yield_native_token"` 39 } 40 41 // String implements the stringer interface for Params 42 func (p Params) String() string { 43 return fmt.Sprintf(`Params: 44 Quote Symbol: %s 45 Create Pool Fee: %s 46 Create Pool Deposit: %s 47 Yield Native Token Enabled: %v`, 48 p.QuoteSymbol, p.CreatePoolFee, p.CreatePoolDeposit, p.YieldNativeToken) 49 } 50 51 // ParamSetPairs - Implements params.ParamSet 52 func (p *Params) ParamSetPairs() params.ParamSetPairs { 53 return params.ParamSetPairs{ 54 {Key: KeyQuoteSymbol, Value: &p.QuoteSymbol, ValidatorFn: common.ValidateDenom("quote symbol")}, 55 {Key: KeyCreatePoolFee, Value: &p.CreatePoolFee, ValidatorFn: common.ValidateSysCoin("create pool fee")}, 56 {Key: KeyCreatePoolDeposit, Value: &p.CreatePoolDeposit, ValidatorFn: common.ValidateSysCoin("create pool deposit")}, 57 {Key: keyYieldNativeToken, Value: &p.YieldNativeToken, ValidatorFn: common.ValidateBool("yield native token")}, 58 } 59 } 60 61 // DefaultParams defines the parameters for this module 62 func DefaultParams() Params { 63 return Params{ 64 QuoteSymbol: defaultQuoteSymbol, 65 CreatePoolFee: sdk.NewDecCoinFromDec(common.NativeToken, sdk.MustNewDecFromStr(defaultCreatePoolFee)), 66 CreatePoolDeposit: sdk.NewDecCoinFromDec(common.NativeToken, sdk.MustNewDecFromStr(defaultCreatePoolDeposit)), 67 YieldNativeToken: false, 68 } 69 }