You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Explore Quest verification flow should track whether a learner has already been paid for a specific Explore Quest, preventing accidental or malicious repeated admin-triggered payouts.
User Story
As the Learnault Protocol, I want to ensure each Explore Quest payout is one-time per learner, so that admin retries or replayed calls cannot duplicate reward distribution.
Add storage that records Explore Quest verification per (learner, quest_id)
verify_explore_quest must revert if the learner was already verified for that quest
Preserve the current admin-only and QuestType::Explore checks
Suggested Implementation
// 1. Add a verification DataKey for (learner, quest_id).// 2. Assert the key does not already exist before payout.// 3. Call RewardPoolClient::distribute_reward.// 4. Persist the verification marker after successful payout.
Acceptance Criteria
A learner can only be paid once per Explore Quest.
Repeated verification attempts revert cleanly.
Different learners on the same Explore Quest remain independently payable.
Hi, I'd like to work on this issue. I've gone through the description and acceptance criteria and I'm confident I can deliver it. I'll make sure every acceptance criterion is met and submit a clean, tested PR. Please assign it to me.
Please assign this issue to me as below is the issue and resolution:
Issue: No storage check allowed repeated verify_explore_quest calls to pay the same learner multiple times;
Fix: I will Add an ExploreVerification(Address, u32) marker that is checked before payout and persisted after, ensuring one‑time payment per (learner, quest_id).
🏆 @syed-ghufran-hassan: You earned 40 FoxPoints for this contribution! Your current tier: Builder (1,567 total points). Track your full progress on GrantFox.
Activity
Silver36-ship-it commentedon Jul 21, 2026
I would love to work on this professionally, please assign it to me
Martins-594 commentedon Jul 21, 2026
Hi, I'd like to work on this issue. I've gone through the description and acceptance criteria and I'm confident I can deliver it. I'll make sure every acceptance criterion is met and submit a clean, tested PR. Please assign it to me.
syed-ghufran-hassan commentedon Jul 21, 2026
Please assign this issue to me as below is the issue and resolution:
Issue: No storage check allowed repeated verify_explore_quest calls to pay the same learner multiple times;
Fix: I will Add an ExploreVerification(Address, u32) marker that is checked before payout and persisted after, ensuring one‑time payment per (learner, quest_id).
grantfox-oss commentedon Jul 28, 2026
🦊 GrantFox — @syed-ghufran-hassan has been assigned to this issue as part of the Official Campaign | FWC26 campaign!
Next steps:
Closes #91)Good luck! Track your progress on GrantFox.
syed-ghufran-hassan commentedon Jul 29, 2026
@Kaylahray I have raised following PRs please check
#97
#102
(fixes): Merge main into fixesandmerging, accepting incoming changes
Kaylahray commentedon Jul 29, 2026
hi @syed-ghufran-hassan
syed-ghufran-hassan commentedon Jul 30, 2026
Hi @Kaylahray I am working on resolving conflicts on test.rs and will share the updated PR
syed-ghufran-hassan commentedon Jul 30, 2026
#106 - I have raised the PR which is free from conflicts please check @Kaylahray
grantfox-oss commentedon Aug 17, 2026
🎉 This issue has been marked as completed on GrantFox as part of the Third Campaign campaign!
@syed-ghufran-hassan's PR #106 was approved and merged by @3m1n3nc3.
🏆 @syed-ghufran-hassan: You earned 40 FoxPoints for this contribution! Your current tier: Builder (1,567 total points). Track your full progress on GrantFox.
👏 Great work, @syed-ghufran-hassan! Keep contributing to learnault.