Skip to content
This repository was archived by the owner on May 27, 2026. It is now read-only.

Commit b645ff9

Browse files
author
illuzen
committed
simplify padding calculation
1 parent adfdf84 commit b645ff9

3 files changed

Lines changed: 6 additions & 10 deletions

File tree

src/lib.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1475,8 +1475,7 @@ mod tests {
14751475
let mut expected = vec![
14761476
0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
14771477
0x30, // 8-byte leaf header (nibble_count=2, type=3)
1478-
0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1479-
0x00, // key data (felt-aligned to 8 bytes)
1478+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, // left-padded
14801479
];
14811480
expected.extend_from_slice(&to_u64_le_bytes(1)); // length of value in bytes as 8-byte little-endian
14821481
expected.extend_from_slice(&[0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]); // value data (felt-aligned to 8 bytes)

src/node_codec.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -184,8 +184,7 @@ where
184184
/ nibble_ops::NIBBLE_PER_BYTE;
185185

186186
// Calculate prefix padding to ensure partial key data aligns to felt boundaries
187-
let partial_start_offset = 8 + nibble_bytes.saturating_sub(24);
188-
let misalignment = partial_start_offset % 8;
187+
let misalignment = nibble_bytes % 8;
189188
let prefix_padding = if misalignment == 0 { 0 } else { 8 - misalignment };
190189
let total_nibble_section = ((prefix_padding + nibble_bytes + 7) / 8) * 8;
191190

@@ -367,9 +366,8 @@ fn partial_from_iterator_encode<I: Iterator<Item = u8>>(
367366
let (prefix_padding, total_nibble_section) = match node_kind {
368367
NodeKind::Leaf | NodeKind::HashedValueLeaf => {
369368
// Calculate prefix padding to ensure proper felt boundary alignment
370-
// for ZK proof verification
371-
let partial_start_offset = 8 + nibble_bytes.saturating_sub(24);
372-
let misalignment = partial_start_offset % 8;
369+
// for ZK proof verification - align partial data to end at felt boundary
370+
let misalignment = nibble_bytes % 8;
373371
let prefix_pad = if misalignment == 0 { 0 } else { 8 - misalignment };
374372
let total_section = ((prefix_pad + nibble_bytes + 7) / 8) * 8;
375373
(prefix_pad, total_section)

src/trie_stream.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,8 @@ fn fuse_nibbles_node(nibbles: &[u8], kind: NodeKind) -> Vec<u8> {
7474
// For leaf nodes, ensure partial key data aligns to felt boundaries
7575
let (prefix_padding, total_nibble_section) = match kind {
7676
NodeKind::Leaf | NodeKind::HashedValueLeaf => {
77-
// Calculate prefix padding to ensure proper felt boundary alignment
78-
let partial_start_offset = 8 + nibble_bytes.saturating_sub(24);
79-
let misalignment = partial_start_offset % 8;
77+
// Calculate prefix padding to ensure felt boundary alignment
78+
let misalignment = nibble_bytes % 8;
8079
let prefix_pad = if misalignment == 0 { 0 } else { 8 - misalignment };
8180
let total_section = ((prefix_pad + nibble_bytes + 7) / 8) * 8;
8281
(prefix_pad, total_section)

0 commit comments

Comments
 (0)