From 99e4267fe93d9913f0619bab3cec5f9dd878ecda Mon Sep 17 00:00:00 2001 From: vgonkivs Date: Thu, 12 Dec 2024 14:18:25 +0200 Subject: [PATCH] fix nits --- share/shwap/p2p/bitswap/getter.go | 1 + share/shwap/row.go | 30 ++++++++++++++++++++++++++---- share/shwap/row_test.go | 23 +++++++++++++++++++---- 3 files changed, 46 insertions(+), 8 deletions(-) diff --git a/share/shwap/p2p/bitswap/getter.go b/share/shwap/p2p/bitswap/getter.go index f3598cf240..f008809833 100644 --- a/share/shwap/p2p/bitswap/getter.go +++ b/share/shwap/p2p/bitswap/getter.go @@ -137,6 +137,7 @@ func (g *Getter) GetSamples( func (g *Getter) GetRow(ctx context.Context, hdr *header.ExtendedHeader, rowIdx int) (shwap.Row, error) { ctx, span := tracer.Start(ctx, "get-eds") defer span.End() + blk, err := NewEmptyRowBlock(hdr.Height(), rowIdx, len(hdr.DAH.RowRoots)) if err != nil { span.RecordError(err) diff --git a/share/shwap/row.go b/share/shwap/row.go index 73e8d32ff0..0e3c8eb6de 100644 --- a/share/shwap/row.go +++ b/share/shwap/row.go @@ -145,10 +145,10 @@ func (r Row) verifyInclusion(roots *share.AxisRoots, idx int) error { func (r Row) MarshalJSON() ([]byte, error) { jsonRow := struct { Shares []libshare.Share `json:"shares"` - Side RowSide `json:"side"` + Side string `json:"side"` }{ Shares: r.halfShares, - Side: r.side, + Side: r.side.toString(), } return json.Marshal(&jsonRow) } @@ -157,14 +157,14 @@ func (r Row) MarshalJSON() ([]byte, error) { func (r *Row) UnmarshalJSON(data []byte) error { jsonRow := struct { Shares []libshare.Share `json:"shares"` - Side RowSide `json:"side"` + Side string `json:"side"` }{} err := json.Unmarshal(data, &jsonRow) if err != nil { return err } r.halfShares = jsonRow.Shares - r.side = jsonRow.Side + r.side = toRowSide(jsonRow.Side) return nil } @@ -183,3 +183,25 @@ func sideFromProto(side pb.Row_HalfSide) RowSide { } return Right } + +func (s RowSide) toString() string { + switch s { + case Left: + return "LEFT" + case Right: + return "RIGHT" + default: + panic("invalid row side") + } +} + +func toRowSide(s string) RowSide { + switch s { + case "LEFT": + return Left + case "RIGHT": + return Right + default: + panic("invalid row side") + } +} diff --git a/share/shwap/row_test.go b/share/shwap/row_test.go index 5c57312775..72507871d8 100644 --- a/share/shwap/row_test.go +++ b/share/shwap/row_test.go @@ -34,15 +34,30 @@ func TestRowFromShares(t *testing.T) { } require.Equal(t, half, row.halfShares) require.Equal(t, side, row.side) + } + } +} - data, err := json.Marshal(row) +func TestRowMarshal(t *testing.T) { + const odsSize = 8 + eds := edstest.RandEDS(t, odsSize) + for rowIdx := 0; rowIdx < odsSize*2; rowIdx++ { + for _, side := range []RowSide{Left, Right} { + shrs := eds.Row(uint(rowIdx)) + shares, err := libshare.FromBytes(shrs) + require.NoError(t, err) + + row := RowFromShares(shares, side) + rowData, err := json.Marshal(row) require.NoError(t, err) decodedRow := &Row{} - err = json.Unmarshal(data, decodedRow) + err = json.Unmarshal(rowData, decodedRow) require.NoError(t, err) - require.Equal(t, row.halfShares, decodedRow.halfShares) - require.Equal(t, row.side, decodedRow.side) + extended, err := row.Shares() + require.NoError(t, err) + require.Equal(t, side, decodedRow.side) + require.Equal(t, shares, extended) } } }