feat: enable SEPA bank rail for AL/MD/ME/MK/RS + treat Bulgaria as Eurozone - #2408
Conversation
…rozone Bridge now supports SEPA for Albania, Moldova, Montenegro, North Macedonia and Serbia (TASK-20580) — surface the bank rail as available instead of 'Soon' for deposit and withdraw, and show the standard EUR-accounts-only warning for the four that keep a domestic currency. Bulgaria adopted the euro in Jan 2026: badge EUR instead of BGN and drop the stale non-EUR SEPA warning.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
WalkthroughUpdated country currency data and alpha-3 flag mappings for Bulgaria, Albania, Moldova, Montenegro, and Serbia. Adjusted non-EUR SEPA currency detection to reflect the revised currency set. ChangesRegional currency mappings
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested labels: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
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 |
Code-analysis diffPainscore total: 6096.83 → 6096.37 (-0.46) 🆕 New findings (5)
✅ Resolved (4)
📈 Painscore deltas (top movers)
|
🧪 UI test report — ✅ all greenSuites
📊 Coverage (unit)
⏱ 10 slowest test cases
|
|
@coderabbitai review |
✅ Action performedReview finished.
|
The map already carried US/GB/CH and now the 2025/26 SEPA joiners; the old label invited a 'clean up non-EEA entries' edit that would disable live rails.
|
Bulgaria to have adopted EUR reported by the user roletna666 (email: roletna666@gmail.com) |
Signed-off-by: ab <78670703+abalinda@users.noreply.github.com>
…at check gates CI
Summary
from: https://apidocs.bridge.xyz/platform/orchestration/more/rail-specific#eur-sepa-standard-credit-sepa-instant
Bridge now supports SEPA for Albania, Moldova, Montenegro, North Macedonia, Serbia (TASK-20580), but the FE still greys the bank rail out as "Soon" — availability is a static FE map. This PR adds the 5 entries to
BRIDGE_ALPHA3_TO_ALPHA2, enabling the rail for both deposit and withdraw (SEPA support is bidirectional; both enabled-sets derive from this one map).Separately, Bulgaria adopted the euro in Jan 2026: the deposit/withdraw list badge now reads EUR instead of BGN, and the stale "EUR accounts only" warning (driven by the
countryCurrencyMapping.tsBGN row) is removed — Bulgarian bank accounts are EUR now.The 4 new countries that keep a domestic currency (ALL/MDL/MKD/RSD) get the standard non-EUR SEPA warning rows, consistent with Czechia/Poland/Denmark/etc., so users know to send EUR.
Data-only change — no logic touched. The bank deposit page already renders EUR/SEPA for all of these via
getCurrencyConfig().Risks / breaking changes
src/utils/iban.ts→sepaCountries) containedMEbut notAL/MD/MK/RS; FE-only would show withdraw as available whilevalidate-ibanrejects those IBANs. Fix: Daimo bug and activity receipt bug #1175 adds the four codes (Bridge support verified: sandbox external accounts accepted for RS/AL; Bridge docs list the countries). Deposit has no such dependency (users send to a Bridge-issued EUR IBAN).BGNreferences (Bulgarian activity was always denominated EUR via SEPA), so no stored records lose flag/country resolution; a stale?from=BGNdeep-link degrades gracefully to the generic add-money route.railJurisdictionForBankcollapses these countries toEU), so it cannot express per-country SEPA support — the FE map is the only per-country switch, which is why the BE allowlist above must move in lockstep.Design notes / accepted trade-offs
BRIDGE_ALPHA3_TO_ALPHA2flips deposit and withdraw together — intentional (SEPA admission is bidirectional), but it means withdraw availability rides on the BE allowlist noted above.nonEurSepaCurrenciesinsideisNonEuroSepaCountry()duplicates the non-Eurozone rows ofcountryCurrencyMappingsin the same file (identical 14-code set, must be edited in pairs). Could be derived via a discriminator field.QA
npm test(124 suites) +npm run typecheckgreen; flag-asset test auto-covers the 4 new mapping rows (al/md/mk/rs.svg exist).