TGViewer
Semolina Code Solidity Semolina Code Solidity @semolina_code · 497 subscribers
Post #15 850
Восьмой урок (Древо Меркла, хэши, 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 так как он там никак функционально не задействован

Мой код с комментариями
More from @semolina_code
  1. Sep 8, 2022Как я уже говорил, я сейчас немного отошел от солидити так как появились проекты, требующи…
  2. Aug 23, 2022Вижу тут новые лица и всех рад приветствовать) Изучение солидити на некоторое время постав…
  3. Aug 4, 2022Семнадцатый урок (Решение задач Ethernaut) Урок посвящен практике Так что решаем её тут Не…
  4. Aug 2, 2022Шестнадцатый урок (Безопасность: Reentrancy, DoS) Полезный линк из урока: openzeppelin Код…
  5. Aug 2, 2022Семнадцатый урок (Низкоуровненые вызовы и безопасность) Сразу скажу, что 16 урок я не проп…
  6. Jul 28, 2022Оказывается, если текст в телеге преобразовать в моноширинный, он станет синим 😳
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →