Skip to content

[Recording Oracle] feat: leaderboard enhancements for new UI#833

Open
dnechay wants to merge 24 commits intodevelopfrom
dnechay/831
Open

[Recording Oracle] feat: leaderboard enhancements for new UI#833
dnechay wants to merge 24 commits intodevelopfrom
dnechay/831

Conversation

@dnechay
Copy link
Copy Markdown
Contributor

@dnechay dnechay commented Apr 1, 2026

Issue tracking

Closes #831

Context behind the change

  • refactored reward pool calculation logic in order to enable reward estimation for leaderboard
  • removed "reward" leaderboard since we aren't going to support it

How has this been tested?

  • unit tests
  • e2e locally: participant in campaign, make leaderboard request, make sure correct data returned for participant

Release plan

Regular

Potential risks; What to monitor; Rollback plan

Should be none

@dnechay dnechay self-assigned this Apr 1, 2026
@dnechay dnechay marked this pull request as ready for review April 3, 2026 10:27
Copilot AI review requested due to automatic review settings April 3, 2026 10:27
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Recording Oracle leaderboard and reward calculation plumbing to support the upcoming UI requirements (totals, “actual on” timestamp, and estimated rewards), while refactoring reward pool logic and removing the deprecated “rewards” leaderboard mode.

Changes:

  • Refactors reward pool / reward estimation into new rewards.utils and updates progress recording to reserve funds based on the new calculation.
  • Updates leaderboard endpoint to return { entries, total, actualOn } and per-entry score + estimatedReward, removing the old rank_by modes.
  • Adjusts Reputation Oracle payouts to calculate competitive rewards per intermediate result and updates unit tests accordingly.

Reviewed changes

Copilot reviewed 19 out of 19 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
reputation-oracle/src/modules/payouts/payouts.service.ts Refactors reward batch calculation; competitive payouts now computed per intermediate result.
reputation-oracle/src/modules/payouts/payouts.service.spec.ts Updates/extends unit tests for the new reward batch logic.
recording-oracle/src/modules/campaigns/types.ts Removes LeaderboardRanking enum (deprecated ranking modes).
recording-oracle/src/modules/campaigns/rewards.utils.ts Adds centralized reward pool calculation and reward estimation helpers.
recording-oracle/src/modules/campaigns/rewards.utils.spec.ts Adds unit tests for the new rewards utilities.
recording-oracle/src/modules/campaigns/progress-checking/threshold.ts Adds overflow safety-belt for aggregated totals.
recording-oracle/src/modules/campaigns/progress-checking/threshold.spec.ts Adds test coverage for overflow guard.
recording-oracle/src/modules/campaigns/progress-checking/market-making.ts Adds overflow safety-belt for aggregated totals.
recording-oracle/src/modules/campaigns/progress-checking/market-making.spec.ts Adds test coverage for overflow guard.
recording-oracle/src/modules/campaigns/progress-checking/index.ts Minor export ordering / re-export adjustments.
recording-oracle/src/modules/campaigns/progress-checking/holding.ts Adds overflow safety-belt for aggregated totals.
recording-oracle/src/modules/campaigns/progress-checking/holding.spec.ts Adds test coverage for overflow guard.
recording-oracle/src/modules/campaigns/fixtures/campaign.ts Updates fixtures to support new reward/leaderboard semantics and competitive distributions.
recording-oracle/src/modules/campaigns/constants.ts Renames progress-cycle constant to CAMPAIGNS_DAILY_CYCLE.
recording-oracle/src/modules/campaigns/campaigns.service.ts Integrates new reward pool calc, adds prefinal results caching, and returns enhanced leaderboard response.
recording-oracle/src/modules/campaigns/campaigns.service.spec.ts Updates tests for new reserved funds and leaderboard response shape.
recording-oracle/src/modules/campaigns/campaigns.repository.ts Updates repository logic to use CAMPAIGNS_DAILY_CYCLE.
recording-oracle/src/modules/campaigns/campaigns.dto.ts Updates leaderboard DTO to include score, estimated_reward, total, and actual_on.
recording-oracle/src/modules/campaigns/campaigns.controller.ts Updates leaderboard endpoint to remove rank_by and return enhanced response.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@dnechay dnechay requested review from Dzeranov April 3, 2026 12:15
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 19 out of 19 changed files in this pull request and generated 8 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 24 out of 24 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants