From 0e409cea9cbec83722f3f782346c942b28dc9f0f Mon Sep 17 00:00:00 2001 From: Shrenuj Bansal Date: Fri, 3 May 2024 11:56:49 -0400 Subject: [PATCH 1/6] Add a cli to convert module name to address Signed-off-by: Shrenuj Bansal --- protocol/x/perpetuals/client/cli/query.go | 1 + .../perpetuals/client/cli/query_perpetual.go | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/protocol/x/perpetuals/client/cli/query.go b/protocol/x/perpetuals/client/cli/query.go index 87b2c2d1a3..36d5e6d513 100644 --- a/protocol/x/perpetuals/client/cli/query.go +++ b/protocol/x/perpetuals/client/cli/query.go @@ -30,6 +30,7 @@ func GetQueryCmd(queryRoute string) *cobra.Command { cmd.AddCommand(CmdQueryPremiumSamples()) cmd.AddCommand(CmdQueryPremiumVotes()) cmd.AddCommand(CmdQueryAllLiquidityTiers()) + cmd.AddCommand(CmdModuleNameToAddress()) // this line is used by starport scaffolding # 1 return cmd diff --git a/protocol/x/perpetuals/client/cli/query_perpetual.go b/protocol/x/perpetuals/client/cli/query_perpetual.go index cf27c38d12..8c9c0c2ef8 100644 --- a/protocol/x/perpetuals/client/cli/query_perpetual.go +++ b/protocol/x/perpetuals/client/cli/query_perpetual.go @@ -2,8 +2,11 @@ package cli import ( "context" + "fmt" "strconv" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" "github.com/dydxprotocol/v4-chain/protocol/x/perpetuals/types" @@ -77,3 +80,19 @@ func CmdShowPerpetual() *cobra.Command { return cmd } + +func CmdModuleNameToAddress() *cobra.Command { + cmd := &cobra.Command{ + Use: "module-name-to-address [module-name]", + Short: "module name to address", + RunE: func(cmd *cobra.Command, args []string) error { + fmt.Println(authtypes.NewModuleAddress(args[0])) + return nil + }, + } + + flags.AddPaginationFlagsToCmd(cmd, cmd.Use) + flags.AddQueryFlagsToCmd(cmd) + + return cmd +} From 8f4de42c3855d9aa80209709f14aabee915c9aa8 Mon Sep 17 00:00:00 2001 From: Shrenuj Bansal Date: Fri, 3 May 2024 13:45:17 -0400 Subject: [PATCH 2/6] fix dumbass test Signed-off-by: Shrenuj Bansal --- protocol/x/perpetuals/module_test.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/protocol/x/perpetuals/module_test.go b/protocol/x/perpetuals/module_test.go index 5cf71ea2ea..978f3f4870 100644 --- a/protocol/x/perpetuals/module_test.go +++ b/protocol/x/perpetuals/module_test.go @@ -211,13 +211,14 @@ func TestAppModuleBasic_GetQueryCmd(t *testing.T) { cmd := am.GetQueryCmd() require.Equal(t, "perpetuals", cmd.Use) - require.Equal(t, 6, len(cmd.Commands())) + require.Equal(t, 7, len(cmd.Commands())) require.Equal(t, "get-all-liquidity-tiers", cmd.Commands()[0].Name()) require.Equal(t, "get-params", cmd.Commands()[1].Name()) require.Equal(t, "get-premium-samples", cmd.Commands()[2].Name()) require.Equal(t, "get-premium-votes", cmd.Commands()[3].Name()) require.Equal(t, "list-perpetual", cmd.Commands()[4].Name()) - require.Equal(t, "show-perpetual", cmd.Commands()[5].Name()) + require.Equal(t, "module-name-to-address", cmd.Commands()[5].Name()) + require.Equal(t, "show-perpetual", cmd.Commands()[6].Name()) } func TestAppModule_Name(t *testing.T) { From c05a1c6533ac9c759622e2601a768a2b9e0a6dcb Mon Sep 17 00:00:00 2001 From: Shrenuj Bansal Date: Fri, 3 May 2024 13:55:49 -0400 Subject: [PATCH 3/6] fix output repr Signed-off-by: Shrenuj Bansal --- protocol/x/perpetuals/client/cli/query_perpetual.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/protocol/x/perpetuals/client/cli/query_perpetual.go b/protocol/x/perpetuals/client/cli/query_perpetual.go index 8c9c0c2ef8..50ffbf968d 100644 --- a/protocol/x/perpetuals/client/cli/query_perpetual.go +++ b/protocol/x/perpetuals/client/cli/query_perpetual.go @@ -86,7 +86,8 @@ func CmdModuleNameToAddress() *cobra.Command { Use: "module-name-to-address [module-name]", Short: "module name to address", RunE: func(cmd *cobra.Command, args []string) error { - fmt.Println(authtypes.NewModuleAddress(args[0])) + address := authtypes.NewModuleAddress(args[0]) + fmt.Println(address.String()) return nil }, } From a9ea7738c6f8ef7ad11f718c3bed6d2ec9a3c2f6 Mon Sep 17 00:00:00 2001 From: Shrenuj Bansal Date: Fri, 3 May 2024 14:34:51 -0400 Subject: [PATCH 4/6] move cmd to root from x/perpetuals Signed-off-by: Shrenuj Bansal --- protocol/cmd/dydxprotocold/cmd/root.go | 21 +++++++++++++++++++ protocol/x/perpetuals/client/cli/query.go | 1 - .../perpetuals/client/cli/query_perpetual.go | 20 ------------------ .../client/cli/query_perpetual_test.go | 14 +++++++++++++ protocol/x/perpetuals/module_test.go | 5 ++--- 5 files changed, 37 insertions(+), 24 deletions(-) diff --git a/protocol/cmd/dydxprotocold/cmd/root.go b/protocol/cmd/dydxprotocold/cmd/root.go index c4cae45379..00d64e7928 100644 --- a/protocol/cmd/dydxprotocold/cmd/root.go +++ b/protocol/cmd/dydxprotocold/cmd/root.go @@ -2,6 +2,7 @@ package cmd import ( "errors" + "fmt" "io" "os" "path/filepath" @@ -42,6 +43,8 @@ import ( "github.com/dydxprotocol/v4-chain/protocol/app/constants" protocolflags "github.com/dydxprotocol/v4-chain/protocol/app/flags" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + "github.com/spf13/cast" "github.com/spf13/cobra" "github.com/spf13/viper" @@ -267,6 +270,23 @@ func addModuleInitFlags(startCmd *cobra.Command) { crisis.AddModuleInitFlags(startCmd) } +func CmdModuleNameToAddress() *cobra.Command { + cmd := &cobra.Command{ + Use: "module-name-to-address [module-name]", + Short: "module name to address", + RunE: func(cmd *cobra.Command, args []string) error { + address := authtypes.NewModuleAddress(args[0]) + fmt.Println(address.String()) + return nil + }, + } + + flags.AddPaginationFlagsToCmd(cmd, cmd.Use) + flags.AddQueryFlagsToCmd(cmd) + + return cmd +} + // queryCommand adds transaction and account querying commands. func queryCommand() *cobra.Command { cmd := &cobra.Command{ @@ -283,6 +303,7 @@ func queryCommand() *cobra.Command { server.QueryBlockCmd(), authcmd.QueryTxsByEventsCmd(), authcmd.QueryTxCmd(), + CmdModuleNameToAddress(), ) // Module specific query sub-commands are added by AutoCLI diff --git a/protocol/x/perpetuals/client/cli/query.go b/protocol/x/perpetuals/client/cli/query.go index 36d5e6d513..87b2c2d1a3 100644 --- a/protocol/x/perpetuals/client/cli/query.go +++ b/protocol/x/perpetuals/client/cli/query.go @@ -30,7 +30,6 @@ func GetQueryCmd(queryRoute string) *cobra.Command { cmd.AddCommand(CmdQueryPremiumSamples()) cmd.AddCommand(CmdQueryPremiumVotes()) cmd.AddCommand(CmdQueryAllLiquidityTiers()) - cmd.AddCommand(CmdModuleNameToAddress()) // this line is used by starport scaffolding # 1 return cmd diff --git a/protocol/x/perpetuals/client/cli/query_perpetual.go b/protocol/x/perpetuals/client/cli/query_perpetual.go index 50ffbf968d..cf27c38d12 100644 --- a/protocol/x/perpetuals/client/cli/query_perpetual.go +++ b/protocol/x/perpetuals/client/cli/query_perpetual.go @@ -2,11 +2,8 @@ package cli import ( "context" - "fmt" "strconv" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" "github.com/dydxprotocol/v4-chain/protocol/x/perpetuals/types" @@ -80,20 +77,3 @@ func CmdShowPerpetual() *cobra.Command { return cmd } - -func CmdModuleNameToAddress() *cobra.Command { - cmd := &cobra.Command{ - Use: "module-name-to-address [module-name]", - Short: "module name to address", - RunE: func(cmd *cobra.Command, args []string) error { - address := authtypes.NewModuleAddress(args[0]) - fmt.Println(address.String()) - return nil - }, - } - - flags.AddPaginationFlagsToCmd(cmd, cmd.Use) - flags.AddQueryFlagsToCmd(cmd) - - return cmd -} diff --git a/protocol/x/perpetuals/client/cli/query_perpetual_test.go b/protocol/x/perpetuals/client/cli/query_perpetual_test.go index a09224f2db..c2e0ed7e7b 100644 --- a/protocol/x/perpetuals/client/cli/query_perpetual_test.go +++ b/protocol/x/perpetuals/client/cli/query_perpetual_test.go @@ -241,3 +241,17 @@ func TestListPerpetual(t *testing.T) { } }) } + +func TestCmdModuleNameToAddress(t *testing.T) { + expectedModuleNameAddress := map[string]string{ + "subaccounts": "dydx1v88c3xv9xyv3eetdx0tvcmq7ung3dywp5upwc6", + "subaccounts:37": "dydx16lwrx54mh9aru9ulzpknd429wldkhdwekhlswf", + "insurance_fund": "dydx1c7ptc87hkd54e3r7zjy92q29xkq7t79w64slrq", + "insurance_fund:37": "dydx10mlrxmaquwjwsj59ywp8xttc8rfxn9jfvzswtn", + } + for moduleName, expectedAddress := range expectedModuleNameAddress { + args := []string{ + moduleName, + fmt.Sprintf("--%s=json", tmcli.OutputFlag), + + } diff --git a/protocol/x/perpetuals/module_test.go b/protocol/x/perpetuals/module_test.go index 978f3f4870..5cf71ea2ea 100644 --- a/protocol/x/perpetuals/module_test.go +++ b/protocol/x/perpetuals/module_test.go @@ -211,14 +211,13 @@ func TestAppModuleBasic_GetQueryCmd(t *testing.T) { cmd := am.GetQueryCmd() require.Equal(t, "perpetuals", cmd.Use) - require.Equal(t, 7, len(cmd.Commands())) + require.Equal(t, 6, len(cmd.Commands())) require.Equal(t, "get-all-liquidity-tiers", cmd.Commands()[0].Name()) require.Equal(t, "get-params", cmd.Commands()[1].Name()) require.Equal(t, "get-premium-samples", cmd.Commands()[2].Name()) require.Equal(t, "get-premium-votes", cmd.Commands()[3].Name()) require.Equal(t, "list-perpetual", cmd.Commands()[4].Name()) - require.Equal(t, "module-name-to-address", cmd.Commands()[5].Name()) - require.Equal(t, "show-perpetual", cmd.Commands()[6].Name()) + require.Equal(t, "show-perpetual", cmd.Commands()[5].Name()) } func TestAppModule_Name(t *testing.T) { From 76094e3e5cff58b43680fab374f5d83fd23c04c6 Mon Sep 17 00:00:00 2001 From: Shrenuj Bansal Date: Fri, 3 May 2024 15:05:13 -0400 Subject: [PATCH 5/6] add tests Signed-off-by: Shrenuj Bansal --- protocol/cmd/dydxprotocold/cmd/root.go | 5 ++-- protocol/cmd/dydxprotocold/cmd/root_test.go | 24 +++++++++++++++++++ .../client/cli/query_perpetual_test.go | 14 ----------- 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/protocol/cmd/dydxprotocold/cmd/root.go b/protocol/cmd/dydxprotocold/cmd/root.go index 00d64e7928..ef8782863f 100644 --- a/protocol/cmd/dydxprotocold/cmd/root.go +++ b/protocol/cmd/dydxprotocold/cmd/root.go @@ -2,7 +2,6 @@ package cmd import ( "errors" - "fmt" "io" "os" "path/filepath" @@ -275,9 +274,9 @@ func CmdModuleNameToAddress() *cobra.Command { Use: "module-name-to-address [module-name]", Short: "module name to address", RunE: func(cmd *cobra.Command, args []string) error { + clientCtx := client.GetClientContextFromCmd(cmd) address := authtypes.NewModuleAddress(args[0]) - fmt.Println(address.String()) - return nil + return clientCtx.PrintString(address.String()) }, } diff --git a/protocol/cmd/dydxprotocold/cmd/root_test.go b/protocol/cmd/dydxprotocold/cmd/root_test.go index 686b1f9981..4dd4a03822 100644 --- a/protocol/cmd/dydxprotocold/cmd/root_test.go +++ b/protocol/cmd/dydxprotocold/cmd/root_test.go @@ -1,8 +1,13 @@ package cmd_test import ( + "fmt" "testing" + clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli" + + "github.com/cosmos/cosmos-sdk/client" + svrcmd "github.com/cosmos/cosmos-sdk/server/cmd" "github.com/dydxprotocol/v4-chain/protocol/app/config" "github.com/dydxprotocol/v4-chain/protocol/app/constants" @@ -46,3 +51,22 @@ func TestNewRootCmd_UsesClientConfig(t *testing.T) { rootCmd.SetArgs([]string{"query", "auth", "params"}) require.ErrorContains(t, svrcmd.Execute(rootCmd, constants.AppDaemonName, tempDir), "fakeTestAddress") } + +func TestCmdModuleNameToAddress(t *testing.T) { + expectedModuleNameAddress := map[string]string{ + "subaccounts": "dydx1v88c3xv9xyv3eetdx0tvcmq7ung3dywp5upwc6", + "subaccounts:37": "dydx16lwrx54mh9aru9ulzpknd429wldkhdwekhlswf", + "insurance_fund": "dydx1c7ptc87hkd54e3r7zjy92q29xkq7t79w64slrq", + "insurance_fund:37": "dydx10mlrxmaquwjwsj59ywp8xttc8rfxn9jfvzswtn", + } + for moduleName, expectedAddress := range expectedModuleNameAddress { + t.Run( + fmt.Sprintf("ModuleNameToAddress %s", moduleName), func(t *testing.T) { + ctx := client.Context{} + out, err := clitestutil.ExecTestCLICmd(ctx, cmd.CmdModuleNameToAddress(), []string{moduleName}) + require.NoError(t, err) + require.Equal(t, expectedAddress, out.String()) + }, + ) + } +} diff --git a/protocol/x/perpetuals/client/cli/query_perpetual_test.go b/protocol/x/perpetuals/client/cli/query_perpetual_test.go index c2e0ed7e7b..a09224f2db 100644 --- a/protocol/x/perpetuals/client/cli/query_perpetual_test.go +++ b/protocol/x/perpetuals/client/cli/query_perpetual_test.go @@ -241,17 +241,3 @@ func TestListPerpetual(t *testing.T) { } }) } - -func TestCmdModuleNameToAddress(t *testing.T) { - expectedModuleNameAddress := map[string]string{ - "subaccounts": "dydx1v88c3xv9xyv3eetdx0tvcmq7ung3dywp5upwc6", - "subaccounts:37": "dydx16lwrx54mh9aru9ulzpknd429wldkhdwekhlswf", - "insurance_fund": "dydx1c7ptc87hkd54e3r7zjy92q29xkq7t79w64slrq", - "insurance_fund:37": "dydx10mlrxmaquwjwsj59ywp8xttc8rfxn9jfvzswtn", - } - for moduleName, expectedAddress := range expectedModuleNameAddress { - args := []string{ - moduleName, - fmt.Sprintf("--%s=json", tmcli.OutputFlag), - - } From 084e201d47bd8e61c3f675d519d5895af3efc6c4 Mon Sep 17 00:00:00 2001 From: Shrenuj Bansal Date: Fri, 3 May 2024 15:47:01 -0400 Subject: [PATCH 6/6] fix lint Signed-off-by: Shrenuj Bansal --- protocol/cmd/dydxprotocold/cmd/root.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/protocol/cmd/dydxprotocold/cmd/root.go b/protocol/cmd/dydxprotocold/cmd/root.go index ef8782863f..f65934aacc 100644 --- a/protocol/cmd/dydxprotocold/cmd/root.go +++ b/protocol/cmd/dydxprotocold/cmd/root.go @@ -32,7 +32,7 @@ import ( "github.com/cosmos/cosmos-sdk/types/module" authcmd "github.com/cosmos/cosmos-sdk/x/auth/client/cli" authcodec "github.com/cosmos/cosmos-sdk/x/auth/codec" - "github.com/cosmos/cosmos-sdk/x/auth/types" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" "github.com/cosmos/cosmos-sdk/x/crisis" genutilcli "github.com/cosmos/cosmos-sdk/x/genutil/client/cli" @@ -42,8 +42,6 @@ import ( "github.com/dydxprotocol/v4-chain/protocol/app/constants" protocolflags "github.com/dydxprotocol/v4-chain/protocol/app/flags" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - "github.com/spf13/cast" "github.com/spf13/cobra" "github.com/spf13/viper" @@ -108,7 +106,7 @@ func NewRootCmdWithInterceptors( WithTxConfig(tempApp.TxConfig()). WithLegacyAmino(tempApp.LegacyAmino()). WithInput(os.Stdin). - WithAccountRetriever(types.AccountRetriever{}). + WithAccountRetriever(authtypes.AccountRetriever{}). WithBroadcastMode(flags.BroadcastSync). WithHomeDir(homeDir). WithViper(EnvPrefix)