Skip to content

[CourseRegistry] Require explicit completion integration configuration #93

Description

@Kaylahray

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

  • Final completion behavior is deterministic and documented when integration addresses are missing.
  • Production-mode tests fail if required completion integrations are unset.
  • The contract no longer silently drops badge minting or payout side effects without policy support.

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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions