| 185 | } |
| 186 | |
| 187 | func GetUpdateParamsCmd() *cobra.Command { |
| 188 | cmd := &cobra.Command{ |
| 189 | Use: "update-params", |
| 190 | Short: "Update margin params", |
| 191 | RunE: func(cmd *cobra.Command, args []string) error { |
| 192 | clientCtx, err := client.GetClientTxContext(cmd) |
| 193 | if err != nil { |
| 194 | return err |
| 195 | } |
| 196 | |
| 197 | signer := clientCtx.GetFromAddress() |
| 198 | if signer == nil { |
| 199 | return errors.New("signer address is missing") |
| 200 | } |
| 201 | |
| 202 | msg := types.MsgUpdateParams{ |
| 203 | Signer: signer.String(), |
| 204 | Params: &types.Params{ |
| 205 | LeverageMax: sdk.MustNewDecFromStr(viper.GetString("leverage-max")), |
| 206 | InterestRateMax: sdk.MustNewDecFromStr(viper.GetString("interest-rate-max")), |
| 207 | InterestRateMin: sdk.MustNewDecFromStr(viper.GetString("interest-rate-min")), |
| 208 | InterestRateIncrease: sdk.MustNewDecFromStr(viper.GetString("interest-rate-increase")), |
| 209 | InterestRateDecrease: sdk.MustNewDecFromStr(viper.GetString("interest-rate-decrease")), |
| 210 | HealthGainFactor: sdk.MustNewDecFromStr(viper.GetString("health-gain-factor")), |
| 211 | PoolOpenThreshold: sdk.MustNewDecFromStr(viper.GetString("pool-open-threshold")), |
| 212 | EpochLength: viper.GetInt64("epoch-length"), |
| 213 | MaxOpenPositions: viper.GetUint64("max-open-positions"), |
| 214 | RemovalQueueThreshold: sdk.MustNewDecFromStr(viper.GetString("removal-queue-threshold")), |
| 215 | ForceCloseFundPercentage: sdk.MustNewDecFromStr(viper.GetString("force-close-fund-percentage")), |
| 216 | ForceCloseFundAddress: viper.GetString("force-close-fund-address"), |
| 217 | IncrementalInterestPaymentEnabled: viper.GetBool("incremental-interest-payment-enabled"), |
| 218 | IncrementalInterestPaymentFundPercentage: sdk.MustNewDecFromStr(viper.GetString("incremental-interest-payment-fund-percentage")), |
| 219 | IncrementalInterestPaymentFundAddress: viper.GetString("incremental-interest-payment-fund-address"), |
| 220 | SqModifier: sdk.MustNewDecFromStr(viper.GetString("sq-modifier")), |
| 221 | SafetyFactor: sdk.MustNewDecFromStr(viper.GetString("safety-factor")), |
| 222 | WhitelistingEnabled: viper.GetBool("whitelisting-enabled"), |
| 223 | }, |
| 224 | } |
| 225 | |
| 226 | return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), &msg) |
| 227 | }, |
| 228 | } |
| 229 | |
| 230 | cmd.Flags().String("leverage-max", "", "max leverage (integer)") |
| 231 | cmd.Flags().String("interest-rate-max", "", "max interest rate (decimal)") |
| 232 | cmd.Flags().String("interest-rate-min", "", "min interest rate (decimal)") |
| 233 | cmd.Flags().String("interest-rate-increase", "", "interest rate increase (decimal)") |
| 234 | cmd.Flags().String("interest-rate-decrease", "", "interest rate decrease (decimal)") |
| 235 | cmd.Flags().String("health-gain-factor", "", "health gain factor (decimal)") |
| 236 | cmd.Flags().Int64("epoch-length", 1, "epoch length in blocks (integer)") |
| 237 | cmd.Flags().Uint64("max-open-positions", 10000, "max open positions") |
| 238 | cmd.Flags().String("removal-queue-threshold", "", "removal queue threshold (decimal range 0-1)") |
| 239 | cmd.Flags().String("pool-open-threshold", "", "threshold to prevent new positions (decimal range 0-1)") |
| 240 | cmd.Flags().String("force-close-fund-percentage", "", "percentage of force close proceeds for fund (decimal range 0-1)") |
| 241 | cmd.Flags().String("force-close-fund-address", "", "address of fund wallet for force close") |
| 242 | cmd.Flags().Bool("incremental-interest-payment-enabled", true, "enable incremental interest payment") |
| 243 | cmd.Flags().String("incremental-interest-payment-fund-percentage", "", "percentage of incremental interest payment proceeds for fund (decimal range 0-1)") |
| 244 | cmd.Flags().String("incremental-interest-payment-fund-address", "", "address of fund wallet for incremental interest payment") |