Skip to content

Commit 6578bc9

Browse files
⚡️ Optimize Pow2 Padding (#1464)
1 parent 834bbc4 commit 6578bc9

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

src/utils/MerkleTreeLib.sol

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -262,8 +262,9 @@ library MerkleTreeLib {
262262
mstore(0x00, 0xe7171dc4) // `MerkleTreeLeavesEmpty()`.
263263
revert(0x1c, 0x04)
264264
}
265-
let p := 1 // Padded length.
266-
for {} lt(p, l) {} { p := add(p, p) }
265+
let p := sub(mload(leaves), 1)
266+
for { let i := 1 } lt(i, 0x80) { i := add(i, i) } { p := or(p, shr(i, p)) }
267+
p := add(p, 1)
267268
mstore(result, p) // Store length.
268269
mstore(0x40, add(result, add(0x20, shl(5, p)))) // Allocate memory.
269270
let d := sub(result, leaves)

0 commit comments

Comments
 (0)