Как закрепить неизменяемые правила сезона в Sui
Для воспроизводимого подсчёта завершённых матчей удобно ссылаться на неизменяемый объект правил. Для нового сезона можно закрепить другой ID.
Зафиксируйте созданный объект правил
В модуле SeasonRules создайте объект, сохраните его ID и передайте значение в freeze_object. Запишите ID в конфигурации сезона и проверяйте, что при расчёте передан объект с нужным идентификатором.
let rules = SeasonRules { id: object::new(ctx), points_per_win: 3 };
let rules_id = object::id(&rules);
transfer::freeze_object(rules);
Проверьте смену правил между сезонами
Правила сезона A с тремя очками за победу и сезона B с четырьмя могут существовать одновременно разными объектами. Расчёт A должен отклонить ID B даже при правильном типе Move. После freeze объект невозможно изменить или передать. Исправление потребует нового набора правил и явного решения о его привязке к сезону.