Shonen-Labs/Roster-Rumble

CONTRACT: Automated Prize Distribution

Open

#28 opened on 2025年4月23日

GitHub で見る
 (0 comments) (0 reactions) (0 assignees)TypeScript (11 forks)auto 404
ODHack 14contractgood first issue

Repository metrics

Stars
 (4 stars)
PR merge metrics
 (PR metrics pending)

説明

Title: Chainlink Automation Integration
Description
Create contract to trigger prize distribution via Chainlink Automation.

Acceptance Criteria:

  • Checks contest end time
  • Verifies all scores are finalized
  • Triggers PrizePool distribution
  • Emits PayoutExecuted event

Technical Details:

#[starknet::contract]
mod PayoutAutomation {
    #[storage]
    struct Storage {
        contests: LegacyMap<felt252, Contest>,
        merkle_root: felt252 // For score verification
    }

    #[external(v0)]
    fn check_upkeep(ref self: ContractState) -> bool {
        let contest = self.contests.read(contest_id);
        block_timestamp >= contest.end_time && 
        self.scores_finalized.read(contest_id)
    }

    #[external(v0)]
    fn perform_upkeep(ref self: ContractState, contest_id: felt252) {
        assert(self.check_upkeep(), 'Not ready');
        PrizePoolDispatcher { contract_address: PRIZE_POOL }
            .distribute_prizes(contest_id, self.merkle_root.read());
    }
}

Notes:

  • Implement Merkle proof verification
  • Add failed transaction handling
  • Test idempotent execution

コントリビューターガイド