From e20e6c0f73332536104c0f841c460cf3049b9628 Mon Sep 17 00:00:00 2001 From: Cameron Cooper Date: Fri, 29 Aug 2025 11:15:48 -0500 Subject: [PATCH] added get_coin_records_by_hints --- .../cmd/coinset/get_coin_records_by_hints.go | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 internal/cmd/coinset/get_coin_records_by_hints.go diff --git a/internal/cmd/coinset/get_coin_records_by_hints.go b/internal/cmd/coinset/get_coin_records_by_hints.go new file mode 100644 index 0000000..847199b --- /dev/null +++ b/internal/cmd/coinset/get_coin_records_by_hints.go @@ -0,0 +1,56 @@ +package cmd + +import ( + "fmt" + + "github.com/spf13/cobra" +) + +var ( + crByHintsIncludeSpentCoins bool + crByHintsStart int + crByHintsEnd int +) + +func init() { + getCoinRecordsByHintsCmd.Flags().BoolVarP(&crByHintsIncludeSpentCoins, "include-spent-coins", "s", false, "Include spent coins") + getCoinRecordsByHintsCmd.Flags().IntVarP(&crByHintsStart, "start-height", "", -1, "Start height") + getCoinRecordsByHintsCmd.Flags().IntVarP(&crByHintsEnd, "end-height", "", -1, "End height") + rootCmd.AddCommand(getCoinRecordsByHintsCmd) +} + +var getCoinRecordsByHintsCmd = &cobra.Command{ + Use: "get_coin_records_by_hints ...", + Args: func(cmd *cobra.Command, args []string) error { + if len(args) < 1 { + return fmt.Errorf("at least one hint is required") + } + for _, hint := range args { + if !isHex(hint) { + return fmt.Errorf("invalid hex value specified: %s", hint) + } + } + return nil + }, + Short: "Retrieves coin records by multiple hints", + Long: "Retrieves coin records by multiple hints", + Run: func(cmd *cobra.Command, args []string) { + var hints []string + for _, hint := range args { + hints = append(hints, formatHex(hint)) + } + jsonData := map[string]interface{}{ + "hints": hints, + } + if crByHintsIncludeSpentCoins { + jsonData["include_spent_coins"] = true + } + if crByHintsStart != -1 { + jsonData["start_height"] = crByHintsStart + } + if crByHintsEnd != -1 { + jsonData["end_height"] = crByHintsEnd + } + makeRequest("get_coin_records_by_hints", jsonData) + }, +}