Комментарии 2
Очень интересный обзор, спасибо. Правда, лично меня не покидает ощущение, что до уровня "исчерпывающего руководства" тут ещё ох как далеко.
Не очень качественный оригинал + не очень качественный перевод. То что это неисчерпывающее руководство - это точно. Если бы я был новичком, то сомневаюсь, что я бы понял все. Ниже поясню несколько пунктов, которые бросаются в глаза:
Смарт‑контракты — это самоисполняющиеся контракты с условиями соглашения, записанными непосредственно в коде.
Смарт‑контракт - это программа, которая хранится и запускается внутри блокчейна. Зачастую неизменяемая, но с оговоркой, потому что в том же Ethereum есть подход, который позволит изменять код смарт-контракта (upgradeable smart contracts). Абстрактно можно сказать, что смарт-контракт - это как класс из ООП по семантике.
Типы данных в Solidity:
Перечисленные в статье типы ну уж слишком упрощены. Смотрите документацию. Там выделяется аж три группы:
- Value (int/uint от 8 до 256, boolean, address, string literals, в общем там много интересного),
- Reference (string, bytes, различные массивы, структуры)
- Mappings. Это то про что забыли в статье напрочь. Как можно про это забыть и говорить исчерпывающая дока:)
Для разработчика здесь важно не просто знать типы, а понимать как они кодируются при вызовах, чтобы уметь понимать, что происходит в транзакциях.
Solidity поддерживает традиционные структуры управления, такие как if, for и while.
Уточним, что ключевых слов чуть больше if, else, while, do, for, break, continue, return
Ошибки переполнения и недополнения возникают
Если что это классическая проблема с Overflow and Underflow, когда значение переменной, выходит за пределы своего типа. У uint8 переменной диапазон от 0 до 255.
Использование SafeMath: Арифметические переполнения/недополнения
Устаревшая информация! Начиная с версии компилятора 0.8.0 ошибки связанные с переполнением обрабатываются внутри компилятора и нет смысла использовать стороннюю библиотеку SafeMath.
----------------------------------------
Паттернов гораздо больше, чем один, уязвимостей не счесть, стандарты ERC исчисляются четырехзначными числами (и не всегда имеют прямое отношения к смарт-контрактам).
Если читателю стало интересно, то он может продолжить разбор статьи по косточкам, ставя под сомнение каждое предложение и разбираясь вглубь самостоятельно, чтобы убедиться, что информация правильная.
Исчерпывающее руководство по разработке смарт-контрактов на Solidity