Web3, Bitcoin и Solidity
Блокчейн-приложения, контракты, тестовые среды и веб-интерфейсы.
327 материаловМатериалы для проекта «Учебное Web3-приложение» объединяют несколько направлений. Начните с разделов ниже.
Блокчейн-приложения, контракты, тестовые среды и веб-интерфейсы.
327 материаловHTML, CSS, JavaScript, TypeScript, компоненты и статические сайты.
397 материаловСерверные приложения, базы данных, авторизация и интеграции.
768 материаловДомены, хостинг, серверы, автоматические выпуски и сопровождение.
121 материалБыстрая загрузка, тестирование, доступность и защита данных.
155 материаловСоздаём независимую фикстуру CourseCatalog и отделяем общее исходное состояние от действий конкретного сценария.
Читаем поля отсутствующего курса и выбираем точные утверждения вместо слишком общего признака успеха.
Задаём учебного отправителя одного вызова или последовательности и проверяем права реестра в явном контексте.
Проверяем запрет записи читателю и выбираем конкретную ошибку, чтобы случайный отказ не подменил требование.
Сравниваем событие публикации с ожидаемым журналом: адрес реестра, номер курса и отпечаток выпуска.
Отделяем параметры конструктора от роли отправителя и проверяем нулевой адрес издателя и два независимых реестра.
Развиваем один сценарий жизненного цикла курса: новая запись, новый отпечаток, отключение и возвращение публикации.
Выбираем граничные значения идентификатора и bytes32, проверяем разные причины отказа и сохраняем весь диапазон контракта.
Пишем свойство публикации для сгенерированных параметров и отличаем его область от проверок жизненного цикла.
Выбираем между отбрасыванием и преобразованием fuzz-входа, чтобы ограничение области не скрывало ошибки реестра.
Расширяем проверку полномочий на разные адреса, сохраняя известный выпуск после запрещённой публикации и отключения.
Отделяем хеш байтов файла от ABI-кодирования и CID, задаём воспроизводимую фикстуру учебного манифеста.
Строим ожидаемое состояние по входам и разрешённым действиям, не копируя ошибочную запись исследуемого реестра.
Разделяем выполненные строки и проверенные требования, составляя карту покрытия для учебного реестра без выдуманных процентов.
Переходим от заранее заданной истории к stateful-проверкам и различаем устойчивое свойство состояния и отдельный переход.
Задаём адрес, селекторы и отправителя invariant-кампании, сохраняя ясную границу выбранных действий.
Строим небольшую программу действий для invariant-кампании: ограниченные ключи, явный издатель и содержательные переходы.
Добавляем в handler запрещённые попытки читателя, ожидаем точную ошибку и сравниваем запись до и после отказа.
Храним независимый ожидаемый выпуск каждого наблюдаемого курса и сравниваем его с состоянием после действий handler.
Настраиваем fail_on_revert и счётчики handler, чтобы пропущенные действия и неожиданные отказы не выглядели успешным исследованием.
Задаём конечный бюджет invariant-кампании и сохраняем seed вместе с исходниками, окружением и фактическими результатами.
Разбираем намеренно ошибочное удаление записи, сокращаем историю до двух действий и сохраняем требование удержания отпечатка.
Создаём отдельный CourseReader и подменяем ответ его зависимости, различая unit-проверку адаптера и интеграцию с реестром.
Создаём наблюдателя снимка и независимо меняем timestamp и block number, проверяя точную границу возраста данных.