Skip to content

Commit

Permalink
chore: export LeafRange attributes
Browse files Browse the repository at this point in the history
  • Loading branch information
rach-id committed May 30, 2024
1 parent 12b62f1 commit ad2f71d
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 55 deletions.
19 changes: 10 additions & 9 deletions nmt.go
Original file line number Diff line number Diff line change
Expand Up @@ -436,7 +436,7 @@ func (n *NamespacedMerkleTree) foundInRange(nID namespace.ID) (found bool, start
// This is a faster version of this code snippet:
// https://github.com/celestiaorg/celestiaorg-prototype/blob/2aeca6f55ad389b9d68034a0a7038f80a8d2982e/simpleblock.go#L106-L117
foundRng, found := n.namespaceRanges[string(nID)]
return found, foundRng.start, foundRng.end
return found, foundRng.Start, foundRng.End
}

// NamespaceSize returns the underlying namespace size. Note that all namespaced
Expand Down Expand Up @@ -591,13 +591,13 @@ func (n *NamespacedMerkleTree) updateNamespaceRanges() {
lastRange, found := n.namespaceRanges[lastNsStr]
if !found {
n.namespaceRanges[lastNsStr] = LeafRange{
start: lastIndex,
end: lastIndex + 1,
Start: lastIndex,
End: lastIndex + 1,
}
} else {
n.namespaceRanges[lastNsStr] = LeafRange{
start: lastRange.start,
end: lastRange.end + 1,
Start: lastRange.Start,
End: lastRange.End + 1,
}
}
}
Expand Down Expand Up @@ -680,10 +680,11 @@ func isPowerOfTwo(n int) bool {
}

type LeafRange struct {
// start and end denote the indices of a leaf in the tree. start ranges from
// 0 up to the total number of leaves minus 1 end ranges from 1 up to the
// total number of leaves end is non-inclusive
start, end int
// Start and End denote the indices of a leaf in the tree.
// Start ranges from 0 up to the total number of leaves minus 1.
// End ranges from 1 up to the total number of leaves.
// End is non-inclusive
Start, End int
}

// MinNamespace extracts the minimum namespace ID from a given namespace hash,
Expand Down
8 changes: 4 additions & 4 deletions proof.go
Original file line number Diff line number Diff line change
Expand Up @@ -538,7 +538,7 @@ func (proof Proof) VerifySubtreeRootInclusion(nth *NmtHasher, subtreeRoots [][]b
return popIfNonEmpty(&proof.nodes), nil
}

if len(ranges) != 0 && ranges[0].start == start && ranges[0].end == end {
if len(ranges) != 0 && ranges[0].Start == start && ranges[0].End == end {
ranges = ranges[1:]
return popIfNonEmpty(&subtreeRoots), nil
}
Expand Down Expand Up @@ -626,8 +626,8 @@ func ToLeafRanges(proofStart, proofEnd, subtreeRootThreshold int) ([]LeafRange,
return nil, err

Check warning on line 626 in proof.go

View check run for this annotation

Codecov / codecov/patch

proof.go#L626

Added line #L626 was not covered by tests
}
ranges = append(ranges, nextRange)
currentStart = nextRange.end
currentLeafRange = currentLeafRange - nextRange.end + nextRange.start
currentStart = nextRange.End
currentLeafRange = currentLeafRange - nextRange.End + nextRange.Start
}
return ranges, nil
}
Expand Down Expand Up @@ -659,7 +659,7 @@ func nextLeafRange(currentStart, currentEnd, subtreeRootMaximumLeafRange int) (L
if err != nil {
return LeafRange{}, err
}
return LeafRange{start: currentStart, end: currentStart + currentRange}, nil
return LeafRange{Start: currentStart, End: currentStart + currentRange}, nil
}

// largestPowerOfTwo calculates the largest power of two
Expand Down
84 changes: 42 additions & 42 deletions proof_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1191,102 +1191,102 @@ func TestToLeafRanges(t *testing.T) {
proofEnd: 8,
subtreeRootThreshold: 3,
expectedRanges: []LeafRange{
{start: 0, end: 8},
{Start: 0, End: 8},
},
},
{
proofStart: 0,
proofEnd: 9,
subtreeRootThreshold: 3,
expectedRanges: []LeafRange{
{start: 0, end: 8},
{start: 8, end: 9},
{Start: 0, End: 8},
{Start: 8, End: 9},
},
},
{
proofStart: 0,
proofEnd: 16,
subtreeRootThreshold: 1,
expectedRanges: []LeafRange{
{start: 0, end: 2},
{start: 2, end: 4},
{start: 4, end: 6},
{start: 6, end: 8},
{start: 8, end: 10},
{start: 10, end: 12},
{start: 12, end: 14},
{start: 14, end: 16},
{Start: 0, End: 2},
{Start: 2, End: 4},
{Start: 4, End: 6},
{Start: 6, End: 8},
{Start: 8, End: 10},
{Start: 10, End: 12},
{Start: 12, End: 14},
{Start: 14, End: 16},
},
},
{
proofStart: 0,
proofEnd: 16,
subtreeRootThreshold: 2,
expectedRanges: []LeafRange{
{start: 0, end: 4},
{start: 4, end: 8},
{start: 8, end: 12},
{start: 12, end: 16},
{Start: 0, End: 4},
{Start: 4, End: 8},
{Start: 8, End: 12},
{Start: 12, End: 16},
},
},
{
proofStart: 0,
proofEnd: 16,
subtreeRootThreshold: 3,
expectedRanges: []LeafRange{
{start: 0, end: 8},
{start: 8, end: 16},
{Start: 0, End: 8},
{Start: 8, End: 16},
},
},
{
proofStart: 0,
proofEnd: 16,
subtreeRootThreshold: 4,
expectedRanges: []LeafRange{
{start: 0, end: 16},
{Start: 0, End: 16},
},
},
{
proofStart: 4,
proofEnd: 12,
subtreeRootThreshold: 0,
expectedRanges: []LeafRange{
{start: 4, end: 5},
{start: 5, end: 6},
{start: 6, end: 7},
{start: 7, end: 8},
{start: 8, end: 9},
{start: 9, end: 10},
{start: 10, end: 11},
{start: 11, end: 12},
{Start: 4, End: 5},
{Start: 5, End: 6},
{Start: 6, End: 7},
{Start: 7, End: 8},
{Start: 8, End: 9},
{Start: 9, End: 10},
{Start: 10, End: 11},
{Start: 11, End: 12},
},
},
{
proofStart: 4,
proofEnd: 12,
subtreeRootThreshold: 1,
expectedRanges: []LeafRange{
{start: 4, end: 6},
{start: 6, end: 8},
{start: 8, end: 10},
{start: 10, end: 12},
{Start: 4, End: 6},
{Start: 6, End: 8},
{Start: 8, End: 10},
{Start: 10, End: 12},
},
},
{
proofStart: 4,
proofEnd: 12,
subtreeRootThreshold: 2,
expectedRanges: []LeafRange{
{start: 4, end: 8},
{start: 8, end: 12},
{Start: 4, End: 8},
{Start: 8, End: 12},
},
},
{
proofStart: 8,
proofEnd: 10,
subtreeRootThreshold: 1,
expectedRanges: []LeafRange{
{start: 8, end: 10},
{Start: 8, End: 10},
},
},
{
Expand Down Expand Up @@ -1354,55 +1354,55 @@ func TestNextLeafRange(t *testing.T) {
currentStart: 0,
currentEnd: 8,
subtreeRootMaximumLeafRange: 4,
expectedRange: LeafRange{start: 0, end: 4},
expectedRange: LeafRange{Start: 0, End: 4},
},
{
currentStart: 4,
currentEnd: 10,
subtreeRootMaximumLeafRange: 8,
expectedRange: LeafRange{start: 4, end: 8},
expectedRange: LeafRange{Start: 4, End: 8},
},
{
currentStart: 4,
currentEnd: 20,
subtreeRootMaximumLeafRange: 16,
expectedRange: LeafRange{start: 4, end: 20},
expectedRange: LeafRange{Start: 4, End: 20},
},
{
currentStart: 4,
currentEnd: 20,
subtreeRootMaximumLeafRange: 1,
expectedRange: LeafRange{start: 4, end: 5},
expectedRange: LeafRange{Start: 4, End: 5},
},
{
currentStart: 4,
currentEnd: 20,
subtreeRootMaximumLeafRange: 2,
expectedRange: LeafRange{start: 4, end: 6},
expectedRange: LeafRange{Start: 4, End: 6},
},
{
currentStart: 4,
currentEnd: 20,
subtreeRootMaximumLeafRange: 4,
expectedRange: LeafRange{start: 4, end: 8},
expectedRange: LeafRange{Start: 4, End: 8},
},
{
currentStart: 4,
currentEnd: 20,
subtreeRootMaximumLeafRange: 8,
expectedRange: LeafRange{start: 4, end: 12},
expectedRange: LeafRange{Start: 4, End: 12},
},
{
currentStart: 0,
currentEnd: 1,
subtreeRootMaximumLeafRange: 1,
expectedRange: LeafRange{start: 0, end: 1},
expectedRange: LeafRange{Start: 0, End: 1},
},
{
currentStart: 0,
currentEnd: 16,
subtreeRootMaximumLeafRange: 16,
expectedRange: LeafRange{start: 0, end: 16},
expectedRange: LeafRange{Start: 0, End: 16},
},
{
currentStart: 0,
Expand Down

0 comments on commit ad2f71d

Please sign in to comment.