From 13b1e35d37ea3e3346ae87e721bb9a1df2bdb0bc Mon Sep 17 00:00:00 2001 From: Cirrus Gai Date: Mon, 30 Sep 2024 16:07:26 +0800 Subject: [PATCH] chore: Add signing info query cmd (#106) --- CHANGELOG.md | 5 +++ x/finality/client/cli/query.go | 66 ++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 36afd6fa9..4ac748db0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -46,6 +46,11 @@ by add ibc default gen state and min gas price specification of `1ubbn` * [#93](https://github.com/babylonlabs-io/babylon/pull/93) fix genesis epoch initialization. +### Misc Improvements + +* [#106](https://github.com/babylonlabs-io/babylon/pull/106) Add CLI command for + querying signing info of finality providers. + ## v0.10.0 ### State Machine Breaking diff --git a/x/finality/client/cli/query.go b/x/finality/client/cli/query.go index da6ef9361..1d1215c82 100644 --- a/x/finality/client/cli/query.go +++ b/x/finality/client/cli/query.go @@ -35,6 +35,8 @@ func GetQueryCmd(queryRoute string) *cobra.Command { cmd.AddCommand(CmdListBlocks()) cmd.AddCommand(CmdVotesAtHeight()) cmd.AddCommand(CmdListEvidences()) + cmd.AddCommand(CmdSigningInfo()) + cmd.AddCommand(CmdAllSigningInfo()) return cmd } @@ -244,3 +246,67 @@ func CmdListEvidences() *cobra.Command { return cmd } + +func CmdSigningInfo() *cobra.Command { + cmd := &cobra.Command{ + Use: "signing-info [fp-pk-hex]", + Short: "Show signing info of a given finality provider", + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + clientCtx := client.GetClientContextFromCmd(cmd) + + queryClient := types.NewQueryClient(clientCtx) + + fpPkHex := args[0] + + // query for the signing info of a given finality provider + res, err := queryClient.SigningInfo( + cmd.Context(), + &types.QuerySigningInfoRequest{FpBtcPkHex: fpPkHex}, + ) + if err != nil { + return err + } + + return clientCtx.PrintProto(res) + }, + } + + flags.AddQueryFlagsToCmd(cmd) + + return cmd +} + +func CmdAllSigningInfo() *cobra.Command { + cmd := &cobra.Command{ + Use: "all-signing-info", + Short: "Show signing info of finality providers", + Args: cobra.NoArgs, + RunE: func(cmd *cobra.Command, args []string) error { + clientCtx := client.GetClientContextFromCmd(cmd) + + queryClient := types.NewQueryClient(clientCtx) + + // query for all the signing infos + pageReq, err := client.ReadPageRequest(cmd.Flags()) + if err != nil { + return err + } + + res, err := queryClient.SigningInfos( + cmd.Context(), + &types.QuerySigningInfosRequest{Pagination: pageReq}, + ) + if err != nil { + return err + } + + return clientCtx.PrintProto(res) + }, + } + + flags.AddQueryFlagsToCmd(cmd) + flags.AddPaginationFlagsToCmd(cmd, "all-signing-info") + + return cmd +}