Что по аудиту? Sablier
На прошлой неделе, в пятницу, закончился мини конкурс протокола Sablier - всего 699 nsloc.
У меня получилось выделить на него всего около 5-6 часов, т.е. в среднем по часу в день.
На скринах я выложил заметки, что я делал по нему и редактор кода, где разбирал основной контракт.
Я понял, что совсем не умею работать с заметками: не понимаю, что нужно отмечать, как возвращаться к ним и как строить архитектуру.
До этого момента, я использовал теги в редакторах, по типу:
@audit, @audit-issue, @note, @audit-ok
и другие, чтобы акцентировать свое внимание на каких-либо деталях. Это хорошо помогает, когда у тебя достаточно времени, чтобы вникнуть в код. Но когда его мало, я могу отвлекаться на них и терять другую мысль, над которой размышляю в данный момент.
Что для меня хорошо сработало в данный аудит?
1. Залить описательную инфу протокола в переводчик.
Я очень хорошо знаю английский язык и свободно говорю, пишу и читаю на нем. Понять смысл протокола, по докам от разработчиков не составит труда, если сконцентрироваться на тексте. Но родной язык, все таки, родной.
Закинув тот же текст в переводчик и пробежав глазами по тексту, вы тоже сможете зацепиться за какие-то основное идеи документации и быстрее понять суть. Годы тренировок на сторис в инстаграм дают о себе знать...
2. Редактор кода, где можно разложить контракт на сниппеты кода также очень помогает.
Мне не нужно было бегать по контракту туда-сюда, чтобы вспомнить, что делать служебная функция. Достаточно было открыть ее рядом с основным контрактом и подглядывать раз через раз.
Да и отслеживать function flow так гораздо легче.
3. Рисунок if/else.
В низу одного из скринов, я делал разбивку условия и заметки по основным моментам, на которые оно влияет. Это сильно помогло запомнить как изменяется память контракта в зависимости от тех или иных опций. Мне зашел этот способ, буду использовать его и дальше.
4. Движение токенов.
Я старался понять движение токенов в контракте: в функциях и до пользователя. Это также помогло отсеять несколько вопросов, которые возникали у меня в процессе аудита.
В целом, я понял протокол, вероятно, на 90% и отправил два репорта.
Не смотря на какие-либо последующие результаты, я понял для себя комфортный способ работы с заметками и некоторые вещи, которые были бесполезными. Думаю на следующем конкурсе попробовать пару новых идеи.
Если у вас есть предложения или свои способы ведения заметок, буду рад почитать о них в комментариях!
Всем легкой и приятной недели!
#audit
Post #1243
914



- 👍 10