From 7e5feacb6f49e8a06500e99ede9e8a55e1f4d15b Mon Sep 17 00:00:00 2001 From: vgonkivs Date: Fri, 28 Jun 2024 12:53:38 +0300 Subject: [PATCH 1/2] fix(cmd): fix namespace represenation in cmd output --- nodebuilder/blob/cmd/blob.go | 71 ++++++++++++++++++++---------------- 1 file changed, 40 insertions(+), 31 deletions(-) diff --git a/nodebuilder/blob/cmd/blob.go b/nodebuilder/blob/cmd/blob.go index 9d18c38e10..f2ccac0293 100644 --- a/nodebuilder/blob/cmd/blob.go +++ b/nodebuilder/blob/cmd/blob.go @@ -7,6 +7,7 @@ import ( "path/filepath" "reflect" "strconv" + "strings" "github.com/spf13/cobra" @@ -32,14 +33,14 @@ func init() { &base64Flag, "base64", false, - "printed blob's data a base64 string", + "printed blob's data and namespace as base64 strings", ) getAllCmd.PersistentFlags().BoolVar( &base64Flag, "base64", false, - "printed blob's data as a base64 string", + "printed blob's data and namespace as base64 strings", ) submitCmd.PersistentFlags().Float64Var( @@ -76,6 +77,9 @@ var getCmd = &cobra.Command{ return fmt.Errorf("error parsing a height: %w", err) } + if !strings.Contains(args[1], "0x") { + return fmt.Errorf("only hex namespace is supported") + } namespace, err := cmdnode.ParseV0Namespace(args[1]) if err != nil { return fmt.Errorf("error parsing a namespace: %w", err) @@ -88,7 +92,7 @@ var getCmd = &cobra.Command{ blob, err := client.Blob.Get(cmd.Context(), height, namespace, commitment) - formatter := formatData + formatter := formatData(args[1]) if base64Flag || err != nil { formatter = nil } @@ -113,12 +117,15 @@ var getAllCmd = &cobra.Command{ } namespace, err := cmdnode.ParseV0Namespace(args[1]) + if !strings.Contains(args[1], "0x") { + return fmt.Errorf("only hex namespace is supported") + } if err != nil { return fmt.Errorf("error parsing a namespace: %w", err) } blobs, err := client.Blob.GetAll(cmd.Context(), height, []share.Namespace{namespace}) - formatter := formatData + formatter := formatData(args[1]) if base64Flag || err != nil { formatter = nil } @@ -266,36 +273,38 @@ var getProofCmd = &cobra.Command{ }, } -func formatData(data interface{}) interface{} { - type tempBlob struct { - Namespace []byte `json:"namespace"` - Data string `json:"data"` - ShareVersion uint32 `json:"share_version"` - Commitment []byte `json:"commitment"` - Index int `json:"index"` - } +func formatData(ns string) func(interface{}) interface{} { + return func(data interface{}) interface{} { + type tempBlob struct { + Namespace string `json:"namespace"` + Data string `json:"data"` + ShareVersion uint32 `json:"share_version"` + Commitment []byte `json:"commitment"` + Index int `json:"index"` + } - if reflect.TypeOf(data).Kind() == reflect.Slice { - blobs := data.([]*blob.Blob) - result := make([]tempBlob, len(blobs)) - for i, b := range blobs { - result[i] = tempBlob{ - Namespace: b.Namespace(), - Data: string(b.Data), - ShareVersion: b.ShareVersion, - Commitment: b.Commitment, - Index: b.Index(), + if reflect.TypeOf(data).Kind() == reflect.Slice { + blobs := data.([]*blob.Blob) + result := make([]tempBlob, len(blobs)) + for i, b := range blobs { + result[i] = tempBlob{ + Namespace: ns, + Data: string(b.Data), + ShareVersion: b.ShareVersion, + Commitment: b.Commitment, + Index: b.Index(), + } } + return result } - return result - } - b := data.(*blob.Blob) - return tempBlob{ - Namespace: b.Namespace(), - Data: string(b.Data), - ShareVersion: b.ShareVersion, - Commitment: b.Commitment, - Index: b.Index(), + b := data.(*blob.Blob) + return tempBlob{ + Namespace: ns, + Data: string(b.Data), + ShareVersion: b.ShareVersion, + Commitment: b.Commitment, + Index: b.Index(), + } } } From 31f35434aedd9a2ec085d1188218c48a0228152c Mon Sep 17 00:00:00 2001 From: vgonkivs Date: Fri, 28 Jun 2024 13:07:06 +0300 Subject: [PATCH 2/2] fix nit --- nodebuilder/blob/cmd/blob.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nodebuilder/blob/cmd/blob.go b/nodebuilder/blob/cmd/blob.go index f2ccac0293..8f9215a05a 100644 --- a/nodebuilder/blob/cmd/blob.go +++ b/nodebuilder/blob/cmd/blob.go @@ -77,7 +77,7 @@ var getCmd = &cobra.Command{ return fmt.Errorf("error parsing a height: %w", err) } - if !strings.Contains(args[1], "0x") { + if !strings.HasPrefix(args[1], "0x") { return fmt.Errorf("only hex namespace is supported") } namespace, err := cmdnode.ParseV0Namespace(args[1]) @@ -117,7 +117,7 @@ var getAllCmd = &cobra.Command{ } namespace, err := cmdnode.ParseV0Namespace(args[1]) - if !strings.Contains(args[1], "0x") { + if !strings.HasPrefix(args[1], "0x") { return fmt.Errorf("only hex namespace is supported") } if err != nil {