Как закрепить неизменяемые правила сезона в 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 объект невозможно изменить или передать. Исправление потребует нового набора правил и явного решения о его привязке к сезону.

Источники