Easy
Основы Solidity
Управляемые основы: синтаксис, состояние, функции, массивы, mappings, structs и modifiers.
Весь Easy-курс открыт и отслеживает прогресс по каждому уроку.
Первый показатель гильдии
Начните контракт BuildersGuild с первого публичного числового значения.
Флаг регистрации
Добавьте boolean-флаг, который показывает, могут ли новые участники вступать в гильдию.
Владелец гильдии
Сохраните адрес, который развернул гильдию, чтобы позже использовать его в admin-логике.
Название гильдии
Добавьте публичную string-переменную, чтобы у гильдии появилось читаемое on-chain название.
Обновление показателя гильдии
Сделайте контракт полезнее: добавьте публичную функцию, которая меняет сохраненное состояние.
Открытие регистрации
Добавьте простую action-функцию, которая открывает гильдию для новых участников.
Настройка вступительного бонуса
Сделайте гильдию настраиваемой: передайте новое значение через параметр функции.
Предпросмотр награды
Верните вычисленное значение награды, не изменяя состояние контракта.
Сводка гильдии
Добавьте read-only helper, который объединяет значения гильдии без изменения состояния.
Делаем функцию приватной
Спрячьте небольшую helper-функцию внутри контракта, чтобы ее могла использовать только внутренняя логика.
Проверка открытой регистрации
Начните join flow с проверки безопасности, которая блокирует пользователей, пока регистрация закрыта.
Список участников
Добавьте dynamic array, чтобы гильдия могла хранить упорядоченный список адресов участников.
Добавление нового участника
Расширьте join flow: добавьте адрес нового участника в массив.
Очки участников
Добавьте mapping, чтобы гильдия могла находить кол-во очков каждого участника по адресу.
Защита от повторного вступления
Используйте mapping с очками, чтобы один и тот же адрес не мог вступить дважды.
Профиль участника
Соберите информацию об участнике в один struct вместо набора разрозненных значений.
Профили по адресу
Сохраните полный профиль участника для каждого адреса, объединив struct и mapping.
Полный join flow
Превратите joinGuild в полноценную регистрацию, которая пишет в массив и оба mappings.
Модификатор onlyOwner
Создайте переиспользуемое правило only-owner и примените его к admin-действиям гильдии.
Событие MemberJoined
Создайте event при вступлении участника, чтобы off-chain инструменты могли отслеживать активность гильдии.