Восьмой урок (Древо Меркла, хэши, encode, циклы)
немного оптимизировал код, который заполняет хеши с индекса 4 (для начальной коллекции в 4 элемента)
То, что было:
uint offset = 0;
while (count > 0) {
for (uint i = 0; i < count - 1; i += 2) {
hashes.push(keccak256(
abi.encodePacked(
hashes[offset + i], hashes[offset + i + 1]
)
));
}
offset += count;
count /= 2;
}
То, что стало:
for (uint i = 0; i <= count + 1; i += 2) {
hashes.push(keccak256(
abi.encodePacked(
hashes[i], hashes[i + 1]
)
));
}
Убрал 1 цикл, убрал создание дополнительной переменной
Возможно для понимания проще код с урока, но мой будет работать быстрее и эффективней
Так же из функции verify убрал параметр index так как он там никак функционально не задействован
Мой код с комментариями
Post #15
850