From e2217ddc22646f1be93a23132fdbf130275984a7 Mon Sep 17 00:00:00 2001 From: Sotatek-HieuVu2 Date: Tue, 17 May 2022 15:24:59 +0700 Subject: [PATCH 1/5] add proposal flag: includes title, description, deposit. If this path is given, title and description flags are ignored --- x/pool-incentives/client/cli/parse.go | 71 +++++++++++++++++++++++++++ x/pool-incentives/client/cli/tx.go | 44 +++++------------ 2 files changed, 83 insertions(+), 32 deletions(-) create mode 100644 x/pool-incentives/client/cli/parse.go diff --git a/x/pool-incentives/client/cli/parse.go b/x/pool-incentives/client/cli/parse.go new file mode 100644 index 00000000000..5a4dc76d1b5 --- /dev/null +++ b/x/pool-incentives/client/cli/parse.go @@ -0,0 +1,71 @@ +package cli + +import ( + "encoding/json" + "fmt" + "os" + + "github.com/spf13/pflag" + "github.com/cosmos/cosmos-sdk/x/gov/client/cli" +) + +type Proposal struct { + Title string + Description string + Deposit string +} + +var ProposalFlags = []string { + cli.FlagTitle, + cli.FlagDescription, + cli.FlagDeposit, +} + +func (p Proposal) validate() error { + if p.Title == "" { + return fmt.Errorf("proposal title is required") + } + + if p.Description == "" { + return fmt.Errorf("proposal description is required") + } + return nil +} + +func parseProposalFlags(fs *pflag.FlagSet) (*Proposal, error) { + proposal := &Proposal{} + proposalFile, _ := fs.GetString(cli.FlagProposal) + + if proposalFile == "" { + proposal.Title, _ = fs.GetString(cli.FlagTitle) + proposal.Description, _ = fs.GetString(cli.FlagDescription) + proposal.Deposit, _ = fs.GetString(cli.FlagDeposit) + if err := proposal.validate(); err != nil { + return nil, err + } + + return proposal, nil + } + + for _, flag := range ProposalFlags { + if v, _ := fs.GetString(flag); v != "" { + return nil, fmt.Errorf("--%s flag provided alongside --proposal, which is a noop", flag) + } + } + + contents, err := os.ReadFile(proposalFile) + if err != nil { + return nil, err + } + + err = json.Unmarshal(contents, proposal) + if err != nil { + return nil, err + } + + if err := proposal.validate(); err != nil { + return nil, err + } + + return proposal, nil +} diff --git a/x/pool-incentives/client/cli/tx.go b/x/pool-incentives/client/cli/tx.go index 2101b591470..8a891adc4bb 100644 --- a/x/pool-incentives/client/cli/tx.go +++ b/x/pool-incentives/client/cli/tx.go @@ -71,28 +71,19 @@ func NewCmdSubmitUpdatePoolIncentivesProposal() *cobra.Command { }) } - title, err := cmd.Flags().GetString(cli.FlagTitle) - if err != nil { - return err - } - - description, err := cmd.Flags().GetString(cli.FlagDescription) - if err != nil { - return err - } - from := clientCtx.GetFromAddress() - depositStr, err := cmd.Flags().GetString(cli.FlagDeposit) + proposal, err := parseProposalFlags(cmd.Flags()) if err != nil { - return err + return fmt.Errorf("failed to parse proposal: %w", err) } - deposit, err := sdk.ParseCoinsNormalized(depositStr) + + deposit, err := sdk.ParseCoinsNormalized(proposal.Deposit) if err != nil { return err } - content := types.NewUpdatePoolIncentivesProposal(title, description, records) + content := types.NewUpdatePoolIncentivesProposal(proposal.Title, proposal.Deposit, records) msg, err := govtypes.NewMsgSubmitProposal(content, deposit, from) if err != nil { @@ -110,8 +101,7 @@ func NewCmdSubmitUpdatePoolIncentivesProposal() *cobra.Command { cmd.Flags().String(cli.FlagTitle, "", "title of proposal") cmd.Flags().String(cli.FlagDescription, "", "description of proposal") cmd.Flags().String(cli.FlagDeposit, "", "deposit of proposal") - _ = cmd.MarkFlagRequired(cli.FlagTitle) - _ = cmd.MarkFlagRequired(cli.FlagDescription) + cmd.Flags().String(cli.FlagProposal, "", "Proposal file path (if this path is given, other proposal flags are ignored)") return cmd } @@ -153,28 +143,19 @@ func NewCmdSubmitReplacePoolIncentivesProposal() *cobra.Command { }) } - title, err := cmd.Flags().GetString(cli.FlagTitle) - if err != nil { - return err - } - - description, err := cmd.Flags().GetString(cli.FlagDescription) - if err != nil { - return err - } - from := clientCtx.GetFromAddress() - depositStr, err := cmd.Flags().GetString(cli.FlagDeposit) + proposal, err := parseProposalFlags(cmd.Flags()) if err != nil { - return err + return fmt.Errorf("failed to parse proposal: %w", err) } - deposit, err := sdk.ParseCoinsNormalized(depositStr) + + deposit, err := sdk.ParseCoinsNormalized(proposal.Deposit) if err != nil { return err } - content := types.NewReplacePoolIncentivesProposal(title, description, records) + content := types.NewReplacePoolIncentivesProposal(proposal.Title, proposal.Description, records) msg, err := govtypes.NewMsgSubmitProposal(content, deposit, from) if err != nil { @@ -192,8 +173,7 @@ func NewCmdSubmitReplacePoolIncentivesProposal() *cobra.Command { cmd.Flags().String(cli.FlagTitle, "", "title of proposal") cmd.Flags().String(cli.FlagDescription, "", "description of proposal") cmd.Flags().String(cli.FlagDeposit, "", "deposit of proposal") - _ = cmd.MarkFlagRequired(cli.FlagTitle) - _ = cmd.MarkFlagRequired(cli.FlagDescription) + cmd.Flags().String(cli.FlagProposal, "", "Proposal file path (if this path is given, other proposal flags are ignored)") return cmd } From 93cb6abbe5ec763a2d03c2877abcd4013717932d Mon Sep 17 00:00:00 2001 From: Sotatek-HieuVu2 Date: Tue, 17 May 2022 15:56:32 +0700 Subject: [PATCH 2/5] no need old single proposal flags --- x/pool-incentives/client/cli/tx.go | 6 ------ 1 file changed, 6 deletions(-) diff --git a/x/pool-incentives/client/cli/tx.go b/x/pool-incentives/client/cli/tx.go index 8a891adc4bb..968816de9c5 100644 --- a/x/pool-incentives/client/cli/tx.go +++ b/x/pool-incentives/client/cli/tx.go @@ -98,9 +98,6 @@ func NewCmdSubmitUpdatePoolIncentivesProposal() *cobra.Command { }, } - cmd.Flags().String(cli.FlagTitle, "", "title of proposal") - cmd.Flags().String(cli.FlagDescription, "", "description of proposal") - cmd.Flags().String(cli.FlagDeposit, "", "deposit of proposal") cmd.Flags().String(cli.FlagProposal, "", "Proposal file path (if this path is given, other proposal flags are ignored)") return cmd @@ -170,9 +167,6 @@ func NewCmdSubmitReplacePoolIncentivesProposal() *cobra.Command { }, } - cmd.Flags().String(cli.FlagTitle, "", "title of proposal") - cmd.Flags().String(cli.FlagDescription, "", "description of proposal") - cmd.Flags().String(cli.FlagDeposit, "", "deposit of proposal") cmd.Flags().String(cli.FlagProposal, "", "Proposal file path (if this path is given, other proposal flags are ignored)") return cmd From c0400928bdcfdb3b70dd32d548b73af8edb1a4e7 Mon Sep 17 00:00:00 2001 From: Sotatek-HieuVu2 Date: Tue, 17 May 2022 16:00:46 +0700 Subject: [PATCH 3/5] move parse.go to osmoutils --- {x/pool-incentives/client/cli => osmoutils}/parse.go | 4 ++-- x/pool-incentives/client/cli/tx.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) rename {x/pool-incentives/client/cli => osmoutils}/parse.go (94%) diff --git a/x/pool-incentives/client/cli/parse.go b/osmoutils/parse.go similarity index 94% rename from x/pool-incentives/client/cli/parse.go rename to osmoutils/parse.go index 5a4dc76d1b5..d4db20a050f 100644 --- a/x/pool-incentives/client/cli/parse.go +++ b/osmoutils/parse.go @@ -1,4 +1,4 @@ -package cli +package osmoutils import ( "encoding/json" @@ -32,7 +32,7 @@ func (p Proposal) validate() error { return nil } -func parseProposalFlags(fs *pflag.FlagSet) (*Proposal, error) { +func ParseProposalFlags(fs *pflag.FlagSet) (*Proposal, error) { proposal := &Proposal{} proposalFile, _ := fs.GetString(cli.FlagProposal) diff --git a/x/pool-incentives/client/cli/tx.go b/x/pool-incentives/client/cli/tx.go index 968816de9c5..01dd6f60f82 100644 --- a/x/pool-incentives/client/cli/tx.go +++ b/x/pool-incentives/client/cli/tx.go @@ -73,7 +73,7 @@ func NewCmdSubmitUpdatePoolIncentivesProposal() *cobra.Command { from := clientCtx.GetFromAddress() - proposal, err := parseProposalFlags(cmd.Flags()) + proposal, err := osmoutils.ParseProposalFlags(cmd.Flags()) if err != nil { return fmt.Errorf("failed to parse proposal: %w", err) } @@ -142,7 +142,7 @@ func NewCmdSubmitReplacePoolIncentivesProposal() *cobra.Command { from := clientCtx.GetFromAddress() - proposal, err := parseProposalFlags(cmd.Flags()) + proposal, err := osmoutils.ParseProposalFlags(cmd.Flags()) if err != nil { return fmt.Errorf("failed to parse proposal: %w", err) } From 29f9889cc19af461bf4a3a60f4efecf2b071cd2b Mon Sep 17 00:00:00 2001 From: Sotatek-HieuVu2 Date: Tue, 17 May 2022 18:23:24 +0700 Subject: [PATCH 4/5] format code & lint --- osmoutils/parse.go | 4 ++-- x/pool-incentives/client/cli/tx.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/osmoutils/parse.go b/osmoutils/parse.go index d4db20a050f..808e3dcab2e 100644 --- a/osmoutils/parse.go +++ b/osmoutils/parse.go @@ -5,8 +5,8 @@ import ( "fmt" "os" - "github.com/spf13/pflag" "github.com/cosmos/cosmos-sdk/x/gov/client/cli" + "github.com/spf13/pflag" ) type Proposal struct { @@ -15,7 +15,7 @@ type Proposal struct { Deposit string } -var ProposalFlags = []string { +var ProposalFlags = []string{ cli.FlagTitle, cli.FlagDescription, cli.FlagDeposit, diff --git a/x/pool-incentives/client/cli/tx.go b/x/pool-incentives/client/cli/tx.go index 01dd6f60f82..06a231cad26 100644 --- a/x/pool-incentives/client/cli/tx.go +++ b/x/pool-incentives/client/cli/tx.go @@ -77,7 +77,7 @@ func NewCmdSubmitUpdatePoolIncentivesProposal() *cobra.Command { if err != nil { return fmt.Errorf("failed to parse proposal: %w", err) } - + deposit, err := sdk.ParseCoinsNormalized(proposal.Deposit) if err != nil { return err @@ -146,7 +146,7 @@ func NewCmdSubmitReplacePoolIncentivesProposal() *cobra.Command { if err != nil { return fmt.Errorf("failed to parse proposal: %w", err) } - + deposit, err := sdk.ParseCoinsNormalized(proposal.Deposit) if err != nil { return err From d3af599cf8e855d47de967a0596909f953f21a09 Mon Sep 17 00:00:00 2001 From: "Matt, Park" <45252226+mattverse@users.noreply.github.com> Date: Tue, 17 May 2022 23:12:51 +0900 Subject: [PATCH 5/5] Disable Stableswap (#1523) Closes: #1503 ## What is the purpose of the change The upcoming V9 upgrade should be including the gamm generalization, but not stable swap implementations. This PR removes(comments out) stable swap inplementation and existing stableswap calls, which was to my surprise only present in `msg_sever.go` and `module.go`. ## Brief Changelog - Remove stableswap implementation from gamm module ## Testing and Verifying This change is a trivial rework / code cleanup without any test coverage. ## Documentation and Release Note - Does this pull request introduce a new feature or user-facing behavior changes? no - Is a relevant changelog entry added to the `Unreleased` section in `CHANGELOG.md`? no - How is the feature or change documented? (not applicable / specification (`x//spec/`) / [Osmosis docs repo](https://github.com/osmosis-labs/docs) / not documented) --- x/gamm/keeper/msg_server.go | 31 +++++++++++++++---------------- x/gamm/module.go | 7 +++---- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/x/gamm/keeper/msg_server.go b/x/gamm/keeper/msg_server.go index 77febd44663..7fc47f9f8fd 100644 --- a/x/gamm/keeper/msg_server.go +++ b/x/gamm/keeper/msg_server.go @@ -7,7 +7,6 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/osmosis-labs/osmosis/v7/x/gamm/pool-models/balancer" - "github.com/osmosis-labs/osmosis/v7/x/gamm/pool-models/stableswap" "github.com/osmosis-labs/osmosis/v7/x/gamm/types" ) @@ -27,16 +26,16 @@ func NewBalancerMsgServerImpl(keeper *Keeper) balancer.MsgServer { } } -func NewStableswapMsgServerImpl(keeper *Keeper) stableswap.MsgServer { - return &msgServer{ - keeper: keeper, - } -} +// func NewStableswapMsgServerImpl(keeper *Keeper) stableswap.MsgServer { +// return &msgServer{ +// keeper: keeper, +// } +// } var ( - _ types.MsgServer = msgServer{} - _ balancer.MsgServer = msgServer{} - _ stableswap.MsgServer = msgServer{} + _ types.MsgServer = msgServer{} + _ balancer.MsgServer = msgServer{} + // _ stableswap.MsgServer = msgServer{} ) func (server msgServer) CreateBalancerPool(goCtx context.Context, msg *balancer.MsgCreateBalancerPool) (*balancer.MsgCreateBalancerPoolResponse, error) { @@ -44,13 +43,13 @@ func (server msgServer) CreateBalancerPool(goCtx context.Context, msg *balancer. return &balancer.MsgCreateBalancerPoolResponse{PoolID: poolId}, err } -func (server msgServer) CreateStableswapPool(goCtx context.Context, msg *stableswap.MsgCreateStableswapPool) (*stableswap.MsgCreateStableswapPoolResponse, error) { - poolId, err := server.CreatePool(goCtx, msg) - if err != nil { - return nil, err - } - return &stableswap.MsgCreateStableswapPoolResponse{PoolID: poolId}, nil -} +// func (server msgServer) CreateStableswapPool(goCtx context.Context, msg *stableswap.MsgCreateStableswapPool) (*stableswap.MsgCreateStableswapPoolResponse, error) { +// poolId, err := server.CreatePool(goCtx, msg) +// if err != nil { +// return nil, err +// } +// return &stableswap.MsgCreateStableswapPoolResponse{PoolID: poolId}, nil +// } func (server msgServer) CreatePool(goCtx context.Context, msg types.CreatePoolMsg) (poolId uint64, err error) { ctx := sdk.UnwrapSDKContext(goCtx) diff --git a/x/gamm/module.go b/x/gamm/module.go index fbd09ad7c1c..555d100fe51 100644 --- a/x/gamm/module.go +++ b/x/gamm/module.go @@ -22,7 +22,6 @@ import ( "github.com/osmosis-labs/osmosis/v7/x/gamm/client/cli" "github.com/osmosis-labs/osmosis/v7/x/gamm/keeper" "github.com/osmosis-labs/osmosis/v7/x/gamm/pool-models/balancer" - "github.com/osmosis-labs/osmosis/v7/x/gamm/pool-models/stableswap" "github.com/osmosis-labs/osmosis/v7/x/gamm/simulation" "github.com/osmosis-labs/osmosis/v7/x/gamm/types" ) @@ -44,7 +43,7 @@ func (AppModuleBasic) Name() string { return types.ModuleName } func (AppModuleBasic) RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { types.RegisterLegacyAminoCodec(cdc) balancer.RegisterLegacyAminoCodec(cdc) - stableswap.RegisterLegacyAminoCodec(cdc) + // stableswap.RegisterLegacyAminoCodec(cdc) } // DefaultGenesis returns default genesis state as raw bytes for the gamm @@ -83,7 +82,7 @@ func (b AppModuleBasic) GetQueryCmd() *cobra.Command { func (AppModuleBasic) RegisterInterfaces(registry codectypes.InterfaceRegistry) { types.RegisterInterfaces(registry) balancer.RegisterInterfaces(registry) - stableswap.RegisterInterfaces(registry) + // stableswap.RegisterInterfaces(registry) } type AppModule struct { @@ -100,7 +99,7 @@ type AppModule struct { func (am AppModule) RegisterServices(cfg module.Configurator) { types.RegisterMsgServer(cfg.MsgServer(), keeper.NewMsgServerImpl(&am.keeper)) balancer.RegisterMsgServer(cfg.MsgServer(), keeper.NewBalancerMsgServerImpl(&am.keeper)) - stableswap.RegisterMsgServer(cfg.MsgServer(), keeper.NewStableswapMsgServerImpl(&am.keeper)) + // stableswap.RegisterMsgServer(cfg.MsgServer(), keeper.NewStableswapMsgServerImpl(&am.keeper)) types.RegisterQueryServer(cfg.QueryServer(), keeper.NewQuerier(am.keeper)) }