github.com/Finschia/finschia-sdk@v0.48.1/x/authz/client/cli/query.go (about) 1 package cli 2 3 import ( 4 "fmt" 5 "strings" 6 7 "github.com/spf13/cobra" 8 9 "github.com/Finschia/finschia-sdk/client" 10 "github.com/Finschia/finschia-sdk/client/flags" 11 sdk "github.com/Finschia/finschia-sdk/types" 12 "github.com/Finschia/finschia-sdk/version" 13 "github.com/Finschia/finschia-sdk/x/authz" 14 bank "github.com/Finschia/finschia-sdk/x/bank/types" 15 ) 16 17 // GetQueryCmd returns the cli query commands for this module 18 func GetQueryCmd() *cobra.Command { 19 authorizationQueryCmd := &cobra.Command{ 20 Use: authz.ModuleName, 21 Short: "Querying commands for the authz module", 22 Long: "", 23 DisableFlagParsing: true, 24 SuggestionsMinimumDistance: 2, 25 RunE: client.ValidateCmd, 26 } 27 28 authorizationQueryCmd.AddCommand( 29 GetCmdQueryGrants(), 30 GetQueryGranterGrants(), 31 GetQueryGranteeGrants(), 32 ) 33 34 return authorizationQueryCmd 35 } 36 37 // GetCmdQueryGrants implements the query authorization command. 38 func GetCmdQueryGrants() *cobra.Command { 39 cmd := &cobra.Command{ 40 Use: "grants [granter-addr] [grantee-addr] [msg-type-url]?", 41 Args: cobra.RangeArgs(2, 3), 42 Short: "query grants for a granter-grantee pair and optionally a msg-type-url", 43 Long: strings.TrimSpace( 44 fmt.Sprintf(`Query authorization grants for a granter-grantee pair. If msg-type-url 45 is set, it will select grants only for that msg type. 46 Examples: 47 $ %s query %s grants link1skj.. link1skjwj.. 48 $ %s query %s grants link1skjw.. link1skjwj.. %s 49 `, 50 version.AppName, authz.ModuleName, 51 version.AppName, authz.ModuleName, bank.SendAuthorization{}.MsgTypeURL()), 52 ), 53 RunE: func(cmd *cobra.Command, args []string) error { 54 clientCtx, err := client.GetClientQueryContext(cmd) 55 if err != nil { 56 return err 57 } 58 queryClient := authz.NewQueryClient(clientCtx) 59 60 granter, err := sdk.AccAddressFromBech32(args[0]) 61 if err != nil { 62 return err 63 } 64 grantee, err := sdk.AccAddressFromBech32(args[1]) 65 if err != nil { 66 return err 67 } 68 msgAuthorized := "" 69 if len(args) >= 3 { 70 msgAuthorized = args[2] 71 } 72 pageReq, err := client.ReadPageRequest(cmd.Flags()) 73 if err != nil { 74 return err 75 } 76 77 res, err := queryClient.Grants( 78 cmd.Context(), 79 &authz.QueryGrantsRequest{ 80 Granter: granter.String(), 81 Grantee: grantee.String(), 82 MsgTypeUrl: msgAuthorized, 83 Pagination: pageReq, 84 }, 85 ) 86 if err != nil { 87 return err 88 } 89 90 return clientCtx.PrintProto(res) 91 }, 92 } 93 flags.AddQueryFlagsToCmd(cmd) 94 flags.AddPaginationFlagsToCmd(cmd, "grants") 95 return cmd 96 } 97 98 func GetQueryGranterGrants() *cobra.Command { 99 cmd := &cobra.Command{ 100 Use: "grants-by-granter [granter-addr]", 101 Aliases: []string{"granter-grants"}, 102 Args: cobra.ExactArgs(1), 103 Short: "query authorization grants granted by granter", 104 Long: strings.TrimSpace( 105 fmt.Sprintf(`Query authorization grants granted by granter. 106 Examples: 107 $ %s q %s grants-by-granter link1skj.. 108 `, 109 version.AppName, authz.ModuleName), 110 ), 111 RunE: func(cmd *cobra.Command, args []string) error { 112 clientCtx, err := client.GetClientQueryContext(cmd) 113 if err != nil { 114 return err 115 } 116 117 granter, err := sdk.AccAddressFromBech32(args[0]) 118 if err != nil { 119 return err 120 } 121 122 pageReq, err := client.ReadPageRequest(cmd.Flags()) 123 if err != nil { 124 return err 125 } 126 127 queryClient := authz.NewQueryClient(clientCtx) 128 res, err := queryClient.GranterGrants( 129 cmd.Context(), 130 &authz.QueryGranterGrantsRequest{ 131 Granter: granter.String(), 132 Pagination: pageReq, 133 }, 134 ) 135 if err != nil { 136 return err 137 } 138 139 return clientCtx.PrintProto(res) 140 }, 141 } 142 flags.AddQueryFlagsToCmd(cmd) 143 flags.AddPaginationFlagsToCmd(cmd, "granter-grants") 144 return cmd 145 } 146 147 func GetQueryGranteeGrants() *cobra.Command { 148 cmd := &cobra.Command{ 149 Use: "grants-by-grantee [grantee-addr]", 150 Aliases: []string{"grantee-grants"}, 151 Args: cobra.ExactArgs(1), 152 Short: "query authorization grants granted to a grantee", 153 Long: strings.TrimSpace( 154 fmt.Sprintf(`Query authorization grants granted to a grantee. 155 Examples: 156 $ %s q %s grants-by-grantee link1skj.. 157 `, 158 version.AppName, authz.ModuleName), 159 ), 160 RunE: func(cmd *cobra.Command, args []string) error { 161 clientCtx, err := client.GetClientQueryContext(cmd) 162 if err != nil { 163 return err 164 } 165 166 grantee, err := sdk.AccAddressFromBech32(args[0]) 167 if err != nil { 168 return err 169 } 170 171 pageReq, err := client.ReadPageRequest(cmd.Flags()) 172 if err != nil { 173 return err 174 } 175 176 queryClient := authz.NewQueryClient(clientCtx) 177 res, err := queryClient.GranteeGrants( 178 cmd.Context(), 179 &authz.QueryGranteeGrantsRequest{ 180 Grantee: grantee.String(), 181 Pagination: pageReq, 182 }, 183 ) 184 if err != nil { 185 return err 186 } 187 188 return clientCtx.PrintProto(res) 189 }, 190 } 191 flags.AddQueryFlagsToCmd(cmd) 192 flags.AddPaginationFlagsToCmd(cmd, "grantee-grants") 193 return cmd 194 }