Skip to content

CONTRACT: Oracle Proxy Contract #30

@PoulavBhowmick03

Description

@PoulavBhowmick03

Title: Decentralized Score Feed Aggregation
Description
Create contract to aggregate multiple oracle sources.

Acceptance Criteria:

  • Accepts data from 3+ oracle providers
  • Uses median value for scores
  • Filters outlier data
  • Emits NewRound events

Technical Details:

#[starknet::contract]
mod OracleProxy {
    #[storage]
    struct Storage {
        authorized_oracles: LegacyMap<felt252, bool>,
        latest_scores: LegacyMap<felt252, u64>
    }

    #[external(v0)]
    fn submit_score(
        ref self: ContractState,
        player_id: felt252,
        score: u64,
        timestamp: u64
    ) {
        assert(self.authorized_oracles.read(get_caller_address()), 'Unauthorized');
        
        // Store data and calculate median
        let submissions = self.scores.read(player_id);
        submissions.push_back((score, timestamp));
        
        if submissions.len() >= 3 {
            let median = calculate_median(submissions);
            self.latest_scores.write(player_id, median);
        }
    }
}

Notes:

  • Implement data freshness checks
  • Add oracle reputation system
  • Test chainlink + starknet integration

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions