Description
Final course completion currently tolerates missing integration addresses by skipping badge minting or reward payout. This issue makes completion behavior explicit so production deployments cannot silently miss side effects.
User Story
As the Learnault Protocol,
I want to fail or explicitly configure completion side effects,
so that course completion never silently skips reward or badge issuance in production.
Requirements and Context
- Files:
contracts/course-registry/src/lib.rs, contracts/course-registry/src/test.rs
- Define whether final completion requires
RewardPoolAddress, BadgeNftAddress, or both
- If the selected integration is mandatory, revert when final completion is attempted without the configured address
- If optional behavior must remain supported, add an explicit mode flag rather than silently skipping work
Suggested Implementation
// 1. Add explicit completion integration configuration or policy flag.
// 2. On final module completion, enforce the chosen policy before side effects run.
// 3. Only allow silent skipping if the policy explicitly enables it.
Acceptance Criteria
Submission Guidelines
- Branch:
feat/explicit-completion-integrations
- Depends on:
[CourseRegistry] Trigger payout on course completion, [CourseRegistry] Trigger badge minting on completion
- PR:
feat(course-registry): require explicit completion integration configuration
Description
Final course completion currently tolerates missing integration addresses by skipping badge minting or reward payout. This issue makes completion behavior explicit so production deployments cannot silently miss side effects.
User Story
As the Learnault Protocol,
I want to fail or explicitly configure completion side effects,
so that course completion never silently skips reward or badge issuance in production.
Requirements and Context
contracts/course-registry/src/lib.rs,contracts/course-registry/src/test.rsRewardPoolAddress,BadgeNftAddress, or bothSuggested Implementation
Acceptance Criteria
Submission Guidelines
feat/explicit-completion-integrations[CourseRegistry] Trigger payout on course completion,[CourseRegistry] Trigger badge minting on completionfeat(course-registry): require explicit completion integration configuration