feat: Add new apps - tranche 4 - exchanges batch 3#253
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reached
Next review available in: 45 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughAdds four new exchange apps (Bitunix, Ourbit, WhiteBIT, XT.COM) and their associated projects. Each includes a project definition with icon and socials, an app definition with icon, and benchmark modules for deposit-addresses and ensv2-ready-resolution resolution tests. Extends ChangesBitunix Exchange and Project
Ourbit Exchange and Project
WhiteBIT Exchange and Project
XT.COM Exchange and Project
Shared Types
Estimated code review effort: 2 (Simple) | ~15 minutes Possibly related PRs
Suggested labels: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
Adds a new tranche of exchange apps (plus their parent projects) to the ENSAwards data registry, along with resolution best-practice benchmark results and evidence assets so they appear in the app/project listings and benchmark dashboards.
Changes:
- Added 4 new projects: Ourbit, XT.COM, Bitunix, WhiteBIT
- Added 4 new exchange apps tied to those projects
- Added resolution benchmark datasets (deposit-addresses + ENSv2-ready-resolution) for the new apps, including pending benchmarks represented as
undefinedwhere applicable
Reviewed changes
Copilot reviewed 29 out of 45 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| ensawards.org/data/projects/xtcom/index.ts | Registers the XT.COM project metadata in the projects registry |
| ensawards.org/data/projects/xtcom/icon.tsx | Adds XT.COM project icon component (raster image wrapped in SVG) |
| ensawards.org/data/projects/whitebit/index.ts | Registers the WhiteBIT project metadata in the projects registry |
| ensawards.org/data/projects/whitebit/icon.tsx | Adds WhiteBIT project icon component (inline SVG path) |
| ensawards.org/data/projects/types.ts | Extends ProjectIds with Bitunix / XTcom / WhiteBIT / Ourbit IDs |
| ensawards.org/data/projects/ourbit/index.ts | Registers the Ourbit project metadata in the projects registry |
| ensawards.org/data/projects/ourbit/icon.tsx | Adds Ourbit project icon component (inline SVG path) |
| ensawards.org/data/projects/bitunix/index.ts | Registers the Bitunix project metadata in the projects registry |
| ensawards.org/data/projects/bitunix/icon.tsx | Adds Bitunix project icon component (raster image wrapped in SVG) |
| ensawards.org/data/apps/xtcom-exchange/index.ts | Registers the XT.COM exchange app tied to the XT.COM project |
| ensawards.org/data/apps/xtcom-exchange/icon.tsx | Adds XT.COM exchange app icon component |
| ensawards.org/data/apps/xtcom-exchange/benchmarks/resolution/ensv2-ready-resolution/index.tsx | Adds XT.COM ENSv2-ready-resolution benchmark result + evidence |
| ensawards.org/data/apps/xtcom-exchange/benchmarks/resolution/deposit-addresses/index.tsx | Adds XT.COM deposit-addresses benchmark results + evidence |
| ensawards.org/data/apps/xtcom-exchange/benchmarks/index.tsx | Registers XT.COM benchmarks in the benchmarks registry |
| ensawards.org/data/apps/whitebit-exchange/index.ts | Registers the WhiteBIT exchange app tied to the WhiteBIT project |
| ensawards.org/data/apps/whitebit-exchange/icon.tsx | Adds WhiteBIT exchange app icon component |
| ensawards.org/data/apps/whitebit-exchange/benchmarks/resolution/ensv2-ready-resolution/index.tsx | Adds WhiteBIT ENSv2-ready-resolution benchmark result + evidence |
| ensawards.org/data/apps/whitebit-exchange/benchmarks/resolution/deposit-addresses/index.tsx | Adds WhiteBIT deposit-addresses benchmark results (with pending BTC/SOL marked undefined) |
| ensawards.org/data/apps/whitebit-exchange/benchmarks/index.tsx | Registers WhiteBIT benchmarks in the benchmarks registry |
| ensawards.org/data/apps/ourbit-exchange/index.ts | Registers the Ourbit exchange app tied to the Ourbit project |
| ensawards.org/data/apps/ourbit-exchange/icon.tsx | Adds Ourbit exchange app icon component |
| ensawards.org/data/apps/ourbit-exchange/benchmarks/resolution/ensv2-ready-resolution/index.tsx | Adds Ourbit ENSv2-ready-resolution benchmark result + evidence |
| ensawards.org/data/apps/ourbit-exchange/benchmarks/resolution/deposit-addresses/index.tsx | Adds Ourbit deposit-addresses benchmark results + evidence |
| ensawards.org/data/apps/ourbit-exchange/benchmarks/index.tsx | Registers Ourbit benchmarks in the benchmarks registry |
| ensawards.org/data/apps/bitunix-exchange/index.ts | Registers the Bitunix exchange app tied to the Bitunix project |
| ensawards.org/data/apps/bitunix-exchange/icon.tsx | Adds Bitunix exchange app icon component |
| ensawards.org/data/apps/bitunix-exchange/benchmarks/resolution/ensv2-ready-resolution/index.tsx | Adds Bitunix ENSv2-ready-resolution benchmark result + evidence |
| ensawards.org/data/apps/bitunix-exchange/benchmarks/resolution/deposit-addresses/index.tsx | Adds Bitunix deposit-addresses benchmark results + evidence |
| ensawards.org/data/apps/bitunix-exchange/benchmarks/index.tsx | Registers Bitunix benchmarks in the benchmarks registry |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@ensawards.org/data/apps/whitebit-exchange/benchmarks/resolution/ensv2-ready-resolution/index.tsx`:
- Around line 4-6: The imports in the benchmark entry are split between a
type-only import and a value import from the same module; combine them into a
single statement in the `index.tsx` benchmark file, using the same pattern as
`deposit-addresses/index.tsx`. Keep `AcceptanceTestBenchmark` from
`data/acceptance-tests/types` separate, but merge `AcceptanceTestBenchmarks` and
`BenchmarkResults` from `data/benchmarks/types` into one import so the module is
only referenced once.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 0769776a-7561-4602-8074-eb8a9583afa8
⛔ Files ignored due to path filters (16)
ensawards.org/data/apps/bitunix-exchange/benchmarks/resolution/deposit-addresses/at-1.pngis excluded by!**/*.pngensawards.org/data/apps/bitunix-exchange/benchmarks/resolution/ensv2-ready-resolution/at-1.pngis excluded by!**/*.pngensawards.org/data/apps/bitunix-exchange/icon.pngis excluded by!**/*.pngensawards.org/data/apps/ourbit-exchange/benchmarks/resolution/deposit-addresses/at-1.pngis excluded by!**/*.pngensawards.org/data/apps/ourbit-exchange/benchmarks/resolution/ensv2-ready-resolution/at-1.pngis excluded by!**/*.pngensawards.org/data/apps/whitebit-exchange/benchmarks/resolution/deposit-addresses/at-1.pngis excluded by!**/*.pngensawards.org/data/apps/whitebit-exchange/benchmarks/resolution/deposit-addresses/at-2.pngis excluded by!**/*.pngensawards.org/data/apps/whitebit-exchange/benchmarks/resolution/deposit-addresses/at-3.pngis excluded by!**/*.pngensawards.org/data/apps/whitebit-exchange/benchmarks/resolution/deposit-addresses/at-4.pngis excluded by!**/*.pngensawards.org/data/apps/whitebit-exchange/benchmarks/resolution/deposit-addresses/at-5.pngis excluded by!**/*.pngensawards.org/data/apps/whitebit-exchange/benchmarks/resolution/ensv2-ready-resolution/at-1.pngis excluded by!**/*.pngensawards.org/data/apps/xtcom-exchange/benchmarks/resolution/deposit-addresses/at-1.pngis excluded by!**/*.pngensawards.org/data/apps/xtcom-exchange/benchmarks/resolution/ensv2-ready-resolution/at-1.pngis excluded by!**/*.pngensawards.org/data/apps/xtcom-exchange/icon.jpegis excluded by!**/*.jpegensawards.org/data/projects/bitunix/icon.pngis excluded by!**/*.pngensawards.org/data/projects/xtcom/icon.jpegis excluded by!**/*.jpeg
📒 Files selected for processing (29)
ensawards.org/data/apps/bitunix-exchange/benchmarks/index.tsxensawards.org/data/apps/bitunix-exchange/benchmarks/resolution/deposit-addresses/index.tsxensawards.org/data/apps/bitunix-exchange/benchmarks/resolution/ensv2-ready-resolution/index.tsxensawards.org/data/apps/bitunix-exchange/icon.tsxensawards.org/data/apps/bitunix-exchange/index.tsensawards.org/data/apps/ourbit-exchange/benchmarks/index.tsxensawards.org/data/apps/ourbit-exchange/benchmarks/resolution/deposit-addresses/index.tsxensawards.org/data/apps/ourbit-exchange/benchmarks/resolution/ensv2-ready-resolution/index.tsxensawards.org/data/apps/ourbit-exchange/icon.tsxensawards.org/data/apps/ourbit-exchange/index.tsensawards.org/data/apps/whitebit-exchange/benchmarks/index.tsxensawards.org/data/apps/whitebit-exchange/benchmarks/resolution/deposit-addresses/index.tsxensawards.org/data/apps/whitebit-exchange/benchmarks/resolution/ensv2-ready-resolution/index.tsxensawards.org/data/apps/whitebit-exchange/icon.tsxensawards.org/data/apps/whitebit-exchange/index.tsensawards.org/data/apps/xtcom-exchange/benchmarks/index.tsxensawards.org/data/apps/xtcom-exchange/benchmarks/resolution/deposit-addresses/index.tsxensawards.org/data/apps/xtcom-exchange/benchmarks/resolution/ensv2-ready-resolution/index.tsxensawards.org/data/apps/xtcom-exchange/icon.tsxensawards.org/data/apps/xtcom-exchange/index.tsensawards.org/data/projects/bitunix/icon.tsxensawards.org/data/projects/bitunix/index.tsensawards.org/data/projects/ourbit/icon.tsxensawards.org/data/projects/ourbit/index.tsensawards.org/data/projects/types.tsensawards.org/data/projects/whitebit/icon.tsxensawards.org/data/projects/whitebit/index.tsensawards.org/data/projects/xtcom/icon.tsxensawards.org/data/projects/xtcom/index.ts
Greptile SummaryThis PR adds four new exchange apps — Ourbit, XT.COM, Bitunix, and WhiteBIT — each with a project definition, app definition, icons, and benchmarks for the
Confidence Score: 5/5Safe to merge — all four exchanges follow the established data structure exactly and the only finding is a lowercase/uppercase brand-name inconsistency in one alt text. All new files are purely additive data entries that closely follow the patterns set by existing exchanges. WhiteBIT's No files require special attention beyond the minor alt-text correction in Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
subgraph New Exchanges - Tranche 4 Batch 3
OE[Ourbit Exchange] --> OP[Ourbit Project]
XE[XT.COM Exchange] --> XP[XT.COM Project]
BE[Bitunix Exchange] --> BP[Bitunix Project]
WE[WhiteBIT Exchange] --> WP[WhiteBIT Project]
end
subgraph Benchmarks - deposit-addresses
OE --> ODA["AT01: Fail\nAT02-AT08: N/A"]
XE --> XDA["AT01: Fail\nAT02-AT08: N/A"]
BE --> BDA["AT01: Fail\nAT02-AT08: N/A"]
WE --> WDA["AT01-02: Pass\nAT03-05: Fail\nAT06-07: undefined\nAT08: N/A"]
end
subgraph Benchmarks - ensv2-ready-resolution
OE --> OER["N/A (no ENS support)"]
XE --> XER["N/A (no ENS support)"]
BE --> BER["N/A (no ENS support)"]
WE --> WER["Fail (wrong address resolved)"]
end
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
subgraph New Exchanges - Tranche 4 Batch 3
OE[Ourbit Exchange] --> OP[Ourbit Project]
XE[XT.COM Exchange] --> XP[XT.COM Project]
BE[Bitunix Exchange] --> BP[Bitunix Project]
WE[WhiteBIT Exchange] --> WP[WhiteBIT Project]
end
subgraph Benchmarks - deposit-addresses
OE --> ODA["AT01: Fail\nAT02-AT08: N/A"]
XE --> XDA["AT01: Fail\nAT02-AT08: N/A"]
BE --> BDA["AT01: Fail\nAT02-AT08: N/A"]
WE --> WDA["AT01-02: Pass\nAT03-05: Fail\nAT06-07: undefined\nAT08: N/A"]
end
subgraph Benchmarks - ensv2-ready-resolution
OE --> OER["N/A (no ENS support)"]
XE --> XER["N/A (no ENS support)"]
BE --> BER["N/A (no ENS support)"]
WE --> WER["Fail (wrong address resolved)"]
end
Reviews (2): Last reviewed commit: "Apply AI agents' suggestions, pt.1" | Re-trigger Greptile |
| "at01-resolve-onchain-name": { | ||
| result: BenchmarkResults.Pass, | ||
| contributions: [ | ||
| { from: contributors.y3drk, lastUpdated: parseTimestamp("2026-07-01T14:10:50Z") }, | ||
| ], |
There was a problem hiding this comment.
The timestamps for all eight WhiteBIT deposit-address entries (
"2026-07-01T14:10:50Z") are identical to Ourbit's timestamps — down to the second. This looks like a copy-paste where the WhiteBIT times were never updated. If the benchmarks were genuinely run at a different time, the timestamps should reflect that.
| "at01-resolve-onchain-name": { | |
| result: BenchmarkResults.Pass, | |
| contributions: [ | |
| { from: contributors.y3drk, lastUpdated: parseTimestamp("2026-07-01T14:10:50Z") }, | |
| ], | |
| "at01-resolve-onchain-name": { | |
| result: BenchmarkResults.Pass, | |
| contributions: [ | |
| { from: contributors.y3drk, lastUpdated: parseTimestamp("2026-07-01T<ACTUAL_TIME>Z") }, | |
| ], |
There was a problem hiding this comment.
The benchmarks were added at the same time, so the identical timestamp makes sense and is legitimate.
Lite PR → Add new apps - tranche 4 - exchanges batch 3
Summary
exchange(listed below)resolutionbest practice category.NOTE: Couldn't benchmark the SOL & BTC-related ATs due to insufficient funds, I've added a general issue to the repo to track and revisit all such cases later→ Track and retry pending benchmarks #252)Why
Testing
typecheck,lint, andtestcommands locally to ensure that the migration didn't break anything, and later confirmed that in our CI workflowPre-Review Checklist (Blocking)