github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/token/types/params.go (about) 1 package types 2 3 import ( 4 "fmt" 5 "strings" 6 "time" 7 8 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 9 "github.com/fibonacci-chain/fbc/x/common" 10 "github.com/fibonacci-chain/fbc/x/params" 11 ) 12 13 const ( 14 DefaultFeeIssue = "2500" 15 DefaultFeeMint = "10" 16 DefaultFeeBurn = "10" 17 DefaultFeeModify = "0" 18 DefaultFeeChown = "10" 19 ) 20 21 var ( 22 KeyFeeIssue = []byte("FeeIssue") 23 KeyFeeMint = []byte("FeeMint") 24 KeyFeeBurn = []byte("FeeBurn") 25 KeyFeeModify = []byte("FeeModify") 26 KeyFeeChown = []byte("FeeChown") 27 KeyOwnershipConfirmWindow = []byte("OwnershipConfirmWindow") 28 ) 29 30 var _ params.ParamSet = &Params{} 31 32 // mint parameters 33 type Params struct { 34 FeeIssue sdk.SysCoin `json:"issue_fee"` 35 FeeMint sdk.SysCoin `json:"mint_fee"` 36 FeeBurn sdk.SysCoin `json:"burn_fee"` 37 FeeModify sdk.SysCoin `json:"modify_fee"` 38 FeeChown sdk.SysCoin `json:"transfer_ownership_fee"` 39 OwnershipConfirmWindow time.Duration `json:"ownership_confirm_window"` 40 } 41 42 // ParamKeyTable for auth module 43 func ParamKeyTable() params.KeyTable { 44 return params.NewKeyTable().RegisterParamSet(&Params{}) 45 } 46 47 func validateParams(value interface{}) error { 48 return nil 49 } 50 51 // ParamSetPairs implements the ParamSet interface and returns all the key/value pairs 52 // pairs of auth module's parameters. 53 // nolint 54 func (p *Params) ParamSetPairs() params.ParamSetPairs { 55 return params.ParamSetPairs{ 56 {KeyFeeIssue, &p.FeeIssue, common.ValidateSysCoin("issue fee")}, 57 {KeyFeeMint, &p.FeeMint, common.ValidateSysCoin("mint fee")}, 58 {KeyFeeBurn, &p.FeeBurn, common.ValidateSysCoin("burn fee")}, 59 {KeyFeeModify, &p.FeeModify, common.ValidateSysCoin("modify fee")}, 60 {KeyFeeChown, &p.FeeChown, common.ValidateSysCoin("change ownership fee")}, 61 {KeyOwnershipConfirmWindow, &p.OwnershipConfirmWindow, common.ValidateDurationPositive("confirm ownership window")}, 62 } 63 } 64 65 // DefaultParams returns a default set of parameters. 66 func DefaultParams() Params { 67 return Params{ 68 FeeIssue: sdk.NewDecCoinFromDec(common.NativeToken, sdk.MustNewDecFromStr(DefaultFeeIssue)), 69 FeeMint: sdk.NewDecCoinFromDec(common.NativeToken, sdk.MustNewDecFromStr(DefaultFeeMint)), 70 FeeBurn: sdk.NewDecCoinFromDec(common.NativeToken, sdk.MustNewDecFromStr(DefaultFeeBurn)), 71 FeeModify: sdk.NewDecCoinFromDec(common.NativeToken, sdk.MustNewDecFromStr(DefaultFeeModify)), 72 FeeChown: sdk.NewDecCoinFromDec(common.NativeToken, sdk.MustNewDecFromStr(DefaultFeeChown)), 73 OwnershipConfirmWindow: DefaultOwnershipConfirmWindow, 74 } 75 } 76 77 // String implements the stringer interface. 78 func (p Params) String() string { 79 var sb strings.Builder 80 sb.WriteString("Params: \n") 81 sb.WriteString(fmt.Sprintf("FeeIssue: %s\n", p.FeeIssue)) 82 sb.WriteString(fmt.Sprintf("FeeMint: %s\n", p.FeeMint)) 83 sb.WriteString(fmt.Sprintf("FeeBurn: %s\n", p.FeeBurn)) 84 sb.WriteString(fmt.Sprintf("FeeModify: %s\n", p.FeeModify)) 85 sb.WriteString(fmt.Sprintf("FeeChown: %s\n", p.FeeChown)) 86 sb.WriteString(fmt.Sprintf("OwnershipConfirmWindow: %s\n", p.OwnershipConfirmWindow)) 87 return sb.String() 88 }