Skip to content

Commit 7dd8079

Browse files
gballetjsign
andauthored
revert deactivation + import fixes from 454 (#461)
* revert deactivation + import fixes from 454 Signed-off-by: Guillaume Ballet <[email protected]> * fix Signed-off-by: Ignacio Hagopian <[email protected]> * fix lint Signed-off-by: Ignacio Hagopian <[email protected]> --------- Signed-off-by: Guillaume Ballet <[email protected]> Signed-off-by: Ignacio Hagopian <[email protected]> Co-authored-by: Ignacio Hagopian <[email protected]>
1 parent af95552 commit 7dd8079

File tree

2 files changed

+12
-29
lines changed

2 files changed

+12
-29
lines changed

encoding.go

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,11 @@ const (
5656
leafC1CommitmentOffset = leafCommitmentOffset + banderwagon.UncompressedSize
5757
leafC2CommitmentOffset = leafC1CommitmentOffset + banderwagon.UncompressedSize
5858
leafChildrenOffset = leafC2CommitmentOffset + banderwagon.UncompressedSize
59-
leafBalanceSize = 32
60-
leafNonceSize = 8
59+
leafBasicDataSize = 32
6160
leafSlotSize = 32
6261
leafValueIndexSize = 1
6362
singleSlotLeafSize = nodeTypeSize + StemSize + 2*banderwagon.UncompressedSize + leafValueIndexSize + leafSlotSize
64-
eoaLeafSize = nodeTypeSize + StemSize + 2*banderwagon.UncompressedSize + leafBalanceSize + leafNonceSize
63+
eoaLeafSize = nodeTypeSize + StemSize + 2*banderwagon.UncompressedSize + leafBasicDataSize
6564
)
6665

6766
func bit(bitlist []byte, nr int) bool {
@@ -138,14 +137,8 @@ func parseLeafNode(serialized []byte, depth byte) (VerkleNode, error) {
138137
func parseEoAccountNode(serialized []byte, depth byte) (VerkleNode, error) {
139138
var values [NodeWidth][]byte
140139
offset := leafStemOffset + StemSize + 2*banderwagon.UncompressedSize
141-
values[0] = zero32[:] // 0 version
142-
values[1] = serialized[offset : offset+leafBalanceSize] // balance
143-
var nonce [32]byte
144-
offset += leafBalanceSize
145-
copy(nonce[:leafNonceSize], serialized[offset:offset+leafNonceSize])
146-
values[2] = nonce[:] // nonce
147-
values[3] = EmptyCodeHash[:]
148-
values[4] = zero32[:] // 0 code size
140+
values[0] = serialized[offset : offset+leafBasicDataSize] // basic data
141+
values[1] = EmptyCodeHash[:]
149142
ln := NewLeafNodeWithNoComms(serialized[leafStemOffset:leafStemOffset+StemSize], values[:])
150143
ln.setDepth(depth)
151144
ln.c1 = new(Point)

tree.go

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1832,7 +1832,6 @@ func (n *InternalNode) serializeInternalWithUncompressedCommitment(pointsIdx map
18321832
}
18331833

18341834
var (
1835-
zero24 [24]byte
18361835
zero32 [32]byte
18371836
EmptyCodeHash, _ = hex.DecodeString("c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470")
18381837
)
@@ -1845,7 +1844,7 @@ func (n *LeafNode) serializeLeafWithUncompressedCommitments(cBytes, c1Bytes, c2B
18451844
children := make([]byte, 0, NodeWidth*LeafValueSize)
18461845
var (
18471846
bitlist [bitlistSize]byte
1848-
isEoA = false // TODO: EoA serialization optimization is broken -- re-enable when fixed.
1847+
isEoA = true
18491848
count, lastIdx int
18501849
)
18511850
for i, v := range n.values {
@@ -1863,29 +1862,17 @@ func (n *LeafNode) serializeLeafWithUncompressedCommitments(cBytes, c1Bytes, c2B
18631862
switch i {
18641863
case 0:
18651864
// Version should be 0
1866-
isEoA = v != nil && bytes.Equal(v, zero32[:])
1867-
case 1:
1868-
// Balance should not be nil
18691865
isEoA = v != nil
1870-
case 2:
1871-
// Nonce should have its last 24 bytes set to 0
1872-
isEoA = v != nil && bytes.Equal(v[leafNonceSize:], zero24[:])
1873-
case 3:
1866+
case 1:
18741867
// Code hash should be the empty code hash
18751868
isEoA = v != nil && bytes.Equal(v, EmptyCodeHash[:])
1876-
case 4:
1877-
// Code size must be 0
1878-
isEoA = v != nil && bytes.Equal(v, zero32[:])
18791869
default:
18801870
// All other values must be nil
18811871
isEoA = v == nil
18821872
}
18831873
}
18841874
}
18851875

1886-
// TODO: single slot serialization optimization is apparently broken -- force disabling it until is fixed.
1887-
count = 256
1888-
18891876
// Create the serialization.
18901877
var result []byte
18911878
switch {
@@ -1894,7 +1881,11 @@ func (n *LeafNode) serializeLeafWithUncompressedCommitments(cBytes, c1Bytes, c2B
18941881
result = buf[:]
18951882
result[0] = singleSlotType
18961883
copy(result[leafStemOffset:], n.stem[:StemSize])
1897-
copy(result[leafStemOffset+StemSize:], c1Bytes[:])
1884+
if lastIdx < 128 {
1885+
copy(result[leafStemOffset+StemSize:], c1Bytes[:])
1886+
} else {
1887+
copy(result[leafStemOffset+StemSize:], c2Bytes[:])
1888+
}
18981889
copy(result[leafStemOffset+StemSize+banderwagon.UncompressedSize:], cBytes[:])
18991890
result[leafStemOffset+StemSize+2*banderwagon.UncompressedSize] = byte(lastIdx)
19001891
copy(result[leafStemOffset+StemSize+2*banderwagon.UncompressedSize+leafValueIndexSize:], n.values[lastIdx][:])
@@ -1905,8 +1896,7 @@ func (n *LeafNode) serializeLeafWithUncompressedCommitments(cBytes, c1Bytes, c2B
19051896
copy(result[leafStemOffset:], n.stem[:StemSize])
19061897
copy(result[leafStemOffset+StemSize:], c1Bytes[:])
19071898
copy(result[leafStemOffset+StemSize+banderwagon.UncompressedSize:], cBytes[:])
1908-
copy(result[leafStemOffset+StemSize+2*banderwagon.UncompressedSize:], n.values[1]) // copy balance
1909-
copy(result[leafStemOffset+StemSize+2*banderwagon.UncompressedSize+leafBalanceSize:], n.values[2][:leafNonceSize]) // copy nonce
1899+
copy(result[leafStemOffset+StemSize+2*banderwagon.UncompressedSize:], n.values[0]) // copy basic data
19101900
default:
19111901
result = make([]byte, nodeTypeSize+StemSize+bitlistSize+3*banderwagon.UncompressedSize+len(children))
19121902
result[0] = leafType

0 commit comments

Comments
 (0)