-
Notifications
You must be signed in to change notification settings - Fork 11
Open
Labels
ODHack 14ODODcontractissue is related to contractissue is related to contractgood first issueGood for newcomersGood for newcomers
Description
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
PayoutExecutedevent
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
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
ODHack 14ODODcontractissue is related to contractissue is related to contractgood first issueGood for newcomersGood for newcomers