Skip to content

fix: don't compare bounty rewards across mixed USDC/XLM assets - #732

Open
smartcalsystems-sketch wants to merge 1 commit into
MergeFi:mainfrom
smartcalsystems-sketch:fix-reward-cross-asset-comparison-613
Open

smartcalsystems-sketch wants to merge 1 commit into
MergeFi:mainfrom
smartcalsystems-sketch:fix-reward-cross-asset-comparison-613

Conversation

@smartcalsystems-sketch

Copy link
Copy Markdown

Problem

filterBounties's minReward/maxReward bounds and sortBounties's reward-desc/reward-asc sorts compare bounty.reward as a raw number regardless of asset. Since USDC and XLM aren't 1-for-1 (1 XLM is roughly $0.10, not $1), a 500 XLM bounty (~$50) sorts above a 400 USDC one, and minReward=100 keeps a 100 XLM bounty as if it were $100. The asset facet is separate from the reward bound/sort, so the default "any asset" view silently mixes units.

Fix

Added a hasMixedAssets check: when the asset facet is "all" and the candidate set actually spans more than one asset, the reward range filter is ignored and reward-based sorting is skipped (falls back to the existing order) rather than producing a misleading cross-currency comparison. When a single asset is selected, or the data happens to be single-asset anyway, behavior is unchanged — this only changes the specific case where comparison would be meaningless.

I considered the alternative in the issue (normalize via a displayed conversion rate) but there's no exchange-rate source anywhere in this codebase today, and introducing one just for comparison purposes felt like a bigger, separate change (and a staleness/accuracy liability) versus just not comparing incomparable things. Happy to go that route instead if there's already a rate source I missed.

Testing

  • Added 4 new tests covering the mixed-asset case for both filterBounties and applyBountyQuery's sort, plus a same-asset-data regression check.
  • Full bounty-query.test.ts suite: 26/26 passing (22 pre-existing + 4 new), zero regressions.
  • tsc --noEmit and eslint clean on both changed files.

Closes #613

@vercel

vercel Bot commented Oct 13, 2026

Copy link
Copy Markdown

@smartcalsystems-sketch is attempting to deploy a commit to the chonilius' projects Team on Vercel.

A member of the Team first needs to authorize it.

This branch has not been deployed

No deployments
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.

Reward filter and sort compare raw amounts across USDC and XLM

1 participant