Skip to content

Commit 090e07a

Browse files
committed
address comments
1 parent 57a7322 commit 090e07a

File tree

14 files changed

+96
-50
lines changed

14 files changed

+96
-50
lines changed

core/felt/utils.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package felt
22

3-
func IsZero[F FeltLike](v F) bool {
4-
f := Felt(v)
3+
func IsZero[F FeltLike](v *F) bool {
4+
f := Felt(*v)
55
return f.IsZero()
66
}
77

8-
func Equal[F FeltLike](a, b F) bool {
9-
fa := Felt(a)
10-
fb := Felt(b)
8+
func Equal[F FeltLike](a, b *F) bool {
9+
fa := Felt(*a)
10+
fb := Felt(*b)
1111
return fa.Equal(&fb)
1212
}

core/trie2/databasetest.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@ func newTestNodeReader(id trieutils.TrieID, nodes []*trienode.MergeNodeSet, db d
2727
}
2828

2929
func (n *testNodeReader) Node(
30-
owner *felt.Address, path *trieutils.Path, hash *felt.Felt, isLeaf bool,
30+
owner *felt.Address,
31+
path *trieutils.Path,
32+
hash *felt.Felt,
33+
isLeaf bool,
3134
) ([]byte, error) {
3235
for _, nodes := range n.nodes {
3336
var (

core/trie2/errors.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ type MissingNodeError struct {
2222
}
2323

2424
func (e *MissingNodeError) Error() string {
25-
if (*felt.Felt)(&e.owner).Equal(&felt.Zero) {
25+
if felt.IsZero(&e.owner) {
2626
return fmt.Sprintf("%s: missing trie node (path %v, hash %v) %v", e.tt, e.path, e.hash, e.err)
2727
}
2828
return fmt.Sprintf("%s: missing trie node (owner %v, path %v, hash %v) %v", e.tt, e.owner, e.path, e.hash, e.err)

core/trie2/triedb/empty.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@ func (EmptyNodeDatabase) NodeReader(id trieutils.TrieID) (database.NodeReader, e
2424
type EmptyNodeReader struct{}
2525

2626
func (EmptyNodeReader) Node(
27-
owner *felt.Address, path *trieutils.Path, hash *felt.Felt, isLeaf bool,
27+
owner *felt.Address,
28+
path *trieutils.Path,
29+
hash *felt.Felt,
30+
isLeaf bool,
2831
) ([]byte, error) {
2932
return nil, nil
3033
}

core/trie2/triedb/hashdb/database.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ func (d *Database) readNode(
9494
func (d *Database) NewIterator(id trieutils.TrieID) (db.Iterator, error) {
9595
key := id.Bucket().Key()
9696
owner := id.Owner()
97-
if !felt.IsZero(owner) {
97+
if !felt.IsZero(&owner) {
9898
oBytes := owner.Bytes()
9999
key = append(key, oBytes[:]...)
100100
}

core/trie2/triedb/hashdb/database_test.go

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ import (
1717
)
1818

1919
var (
20-
leaf1Hash = new(felt.Felt).SetUint64(201)
21-
leaf2Hash = new(felt.Felt).SetUint64(202)
22-
rootHash = new(felt.Felt).SetUint64(100)
23-
level1Hash1 = new(felt.Felt).SetUint64(301)
24-
level1Hash2 = new(felt.Felt).SetUint64(302)
20+
leaf1Hash = felt.NewFromUint64[felt.Felt](201)
21+
leaf2Hash = felt.NewFromUint64[felt.Felt](202)
22+
rootHash = felt.NewFromUint64[felt.Felt](100)
23+
level1Hash1 = felt.NewFromUint64[felt.Felt](301)
24+
level1Hash2 = felt.NewFromUint64[felt.Felt](302)
2525

2626
leaf1Path = trieutils.NewBitArray(1, 0x00)
2727
leaf2Path = trieutils.NewBitArray(1, 0x01)
@@ -170,12 +170,12 @@ func TestDatabase(t *testing.T) {
170170
memDB := memory.New()
171171
database := New(memDB, nil)
172172

173-
contractHash := *new(felt.Felt).SetUint64(210)
173+
contractHash := felt.FromUint64[felt.Felt](210)
174174
contractOwner := felt.FromUint64[felt.Address](123)
175175
contractPath := trieutils.NewBitArray(1, 0x01)
176176
contractNode := trienode.NewLeaf(contractHash, []byte{4, 5, 6})
177177

178-
storageHash := *new(felt.Felt).SetUint64(220)
178+
storageHash := felt.FromUint64[felt.Felt](220)
179179
storagePath := trieutils.NewBitArray(1, 0x02)
180180
storageNode := trienode.NewLeaf(storageHash, []byte{7, 8, 9})
181181

@@ -222,7 +222,7 @@ func TestDatabase(t *testing.T) {
222222
memDB := memory.New()
223223
database := New(memDB, nil)
224224

225-
edgeHash := *new(felt.Felt).SetUint64(201)
225+
edgeHash := felt.FromUint64[felt.Felt](201)
226226
edgePath := trieutils.NewBitArray(1, 0x01)
227227
edgeNode := trienode.NewNonLeaf(edgeHash, createEdgeNodeBlob(leaf1Hash))
228228

@@ -257,8 +257,8 @@ func TestDatabase(t *testing.T) {
257257
}, numTries)
258258

259259
for i := range numTries {
260-
leafHash := new(felt.Felt).SetUint64(uint64(i*100 + 50))
261-
rootHash := new(felt.Felt).SetUint64(uint64(i * 100))
260+
leafHash := felt.NewFromUint64[felt.Felt](uint64(i*100 + 50))
261+
rootHash := felt.NewFromUint64[felt.Felt](uint64(i * 100))
262262

263263
leafPath := trieutils.NewBitArray(1, 0x00)
264264
leafNode := trienode.NewLeaf(*leafHash, []byte{byte(i), byte(i + 1), byte(i + 2)})
@@ -274,13 +274,13 @@ func TestDatabase(t *testing.T) {
274274
contractRoot felt.Felt
275275
}{
276276
root: *rootHash,
277-
parent: *new(felt.Felt).SetUint64(uint64(i*100 - 1)),
277+
parent: felt.FromUint64[felt.Felt](uint64(i*100 - 1)),
278278
classNodes: map[trieutils.Path]trienode.TrieNode{
279279
rootPath: rootNode,
280280
leafPath: leafNode,
281281
},
282282
classRoot: *rootHash,
283-
contractRoot: *new(felt.Felt).SetUint64(uint64(3000 + i)),
283+
contractRoot: felt.FromUint64[felt.Felt](uint64(3000 + i)),
284284
}
285285

286286
err := database.Update(&tries[i].root, &tries[i].parent, uint64(i), createMergeNodeSet(tries[i].classNodes), createContractMergeNodeSet(nil))
@@ -312,7 +312,7 @@ func TestDatabase(t *testing.T) {
312312
err := database.Update(&felt.Zero, &felt.Zero, 42, createMergeNodeSet(basicClassNodes), createContractMergeNodeSet(nil))
313313
require.NoError(t, err)
314314

315-
newRootHash := *new(felt.Felt).SetUint64(101)
315+
newRootHash := felt.FromUint64[felt.Felt](101)
316316
newRootNode := trienode.NewNonLeaf(newRootHash, createBinaryNodeBlob(&felt.Zero, leaf2Hash))
317317

318318
updatedNodes := map[trieutils.Path]trienode.TrieNode{
@@ -345,7 +345,7 @@ func TestDatabase(t *testing.T) {
345345
memDB := memory.New()
346346
database := New(memDB, nil)
347347

348-
stateCommitment := new(felt.Felt).SetUint64(1000)
348+
stateCommitment := felt.NewFromUint64[felt.Felt](1000)
349349
classRootBlob := createBinaryNodeBlob(leaf1Hash, leaf2Hash)
350350
contractRootBlob := createBinaryNodeBlob(leaf1Hash, leaf2Hash)
351351
classRootHash := crypto.Poseidon(leaf1Hash, leaf2Hash)
@@ -393,9 +393,9 @@ func TestDatabase(t *testing.T) {
393393
memDB := memory.New()
394394
database := New(memDB, nil)
395395

396-
stateCommitment := new(felt.Felt).SetUint64(1000)
397-
classRootHash := new(felt.Felt).SetUint64(2000)
398-
contractRootHash := new(felt.Felt).SetUint64(3000)
396+
stateCommitment := felt.NewFromUint64[felt.Felt](1000)
397+
classRootHash := felt.NewFromUint64[felt.Felt](2000)
398+
contractRootHash := felt.NewFromUint64[felt.Felt](3000)
399399

400400
val := append(classRootHash.Marshal(), contractRootHash.Marshal()...)
401401
err := memDB.Put(db.StateHashToTrieRootsKey(stateCommitment), val)

core/trie2/triedb/hashdb/dirty_cache.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,11 @@ func newDirtyCache() *dirtyCache {
2222
}
2323

2424
func (c *dirtyCache) putNode(
25-
owner *felt.Address, path *trieutils.Path, hash *felt.Felt, isClass bool, node trienode.TrieNode,
25+
owner *felt.Address,
26+
path *trieutils.Path,
27+
hash *felt.Felt,
28+
isClass bool,
29+
node trienode.TrieNode,
2630
) {
2731
key := nodeKey(path, hash)
2832
keyStr := string(key)
@@ -31,7 +35,7 @@ func (c *dirtyCache) putNode(
3135
c.classNodes[keyStr] = node
3236
}
3337

34-
if felt.IsZero(*owner) {
38+
if felt.IsZero(owner) {
3539
c.contractNodes[keyStr] = node
3640
} else {
3741
if _, ok := c.contractStorageNodes[*owner]; !ok {
@@ -42,7 +46,10 @@ func (c *dirtyCache) putNode(
4246
}
4347

4448
func (c *dirtyCache) getNode(
45-
owner *felt.Address, path *trieutils.Path, hash *felt.Felt, isClass bool,
49+
owner *felt.Address,
50+
path *trieutils.Path,
51+
hash *felt.Felt,
52+
isClass bool,
4653
) (trienode.TrieNode, bool) {
4754
key := nodeKey(path, hash)
4855
keyStr := string(key)
@@ -52,7 +59,7 @@ func (c *dirtyCache) getNode(
5259
return node, ok
5360
}
5461

55-
if felt.IsZero(*owner) {
62+
if felt.IsZero(owner) {
5663
node, ok := c.contractNodes[keyStr]
5764
return node, ok
5865
}

core/trie2/triedb/pathdb/database.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ func (d *Database) NewIterator(id trieutils.TrieID) (db.Iterator, error) {
9494
)
9595

9696
owner := id.Owner()
97-
if !felt.IsZero(owner) {
97+
if !felt.IsZero(&owner) {
9898
ob := owner.Bytes()
9999
ownerBytes = ob[:]
100100
}

core/trie2/triedb/pathdb/disklayer.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,10 @@ func (dl *diskLayer) isStale() bool {
5858
}
5959

6060
func (dl *diskLayer) node(
61-
id trieutils.TrieID, owner *felt.Address, path *trieutils.Path, isLeaf bool,
61+
id trieutils.TrieID,
62+
owner *felt.Address,
63+
path *trieutils.Path,
64+
isLeaf bool,
6265
) ([]byte, error) {
6366
dl.lock.RLock()
6467
defer dl.lock.RUnlock()

core/trie2/triedb/pathdb/layertree_test.go

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,23 @@ func TestLayersNonExistNode(t *testing.T) {
7474

7575
// Invalid contract node
7676
blob, err = layer.node(
77-
trieutils.NewContractTrieID(validRoot), &felt.Address{}, &invalidPath, false,
77+
trieutils.NewContractTrieID(validRoot),
78+
&felt.Address{},
79+
&invalidPath,
80+
false,
7881
)
7982
require.Error(t, err)
8083
require.Nil(t, blob)
8184

8285
// Invalid contract storage node
8386
blob, err = layer.node(
84-
trieutils.NewContractStorageTrieID(felt.Zero, felt.Address(validRoot)),
85-
&felt.Address{}, &invalidPath, false,
87+
trieutils.NewContractStorageTrieID(
88+
felt.Zero,
89+
felt.Address(validRoot),
90+
),
91+
&felt.Address{},
92+
&invalidPath,
93+
false,
8694
)
8795
require.Error(t, err)
8896
require.Nil(t, blob)
@@ -200,7 +208,8 @@ func (t *layerTracker) trackContractNodes(root *felt.Felt, nodes map[trieutils.P
200208
}
201209

202210
func (t *layerTracker) trackContractStorageNodes(
203-
root *felt.Felt, nodes map[felt.Address]map[trieutils.Path]trienode.TrieNode,
211+
root *felt.Felt,
212+
nodes map[felt.Address]map[trieutils.Path]trienode.TrieNode,
204213
) {
205214
for owner, ownerNodes := range nodes {
206215
if t.contractStorageNodes[*root] == nil {
@@ -221,7 +230,10 @@ func (t *layerTracker) trackContractStorageNodes(
221230

222231
// resolveNode finds a node by traversing the layer hierarchy from the given root
223232
func (t *layerTracker) resolveNode(
224-
root *felt.Felt, owner *felt.Address, path *trieutils.Path, isClass bool,
233+
root *felt.Felt,
234+
owner *felt.Address,
235+
path *trieutils.Path,
236+
isClass bool,
225237
) ([]byte, error) {
226238
currentRoot := root
227239
for {
@@ -257,7 +269,7 @@ func (t *layerTracker) findNodeInLayer(
257269
return nil, false
258270
}
259271

260-
if felt.IsZero(*owner) {
272+
if felt.IsZero(owner) {
261273
if nodeMap, ok := t.contractNodes[*root]; ok {
262274
if node, exists := nodeMap[*path]; exists {
263275
return node.Blob(), true

0 commit comments

Comments
 (0)