From eccdb7dfaa3c2b53d383748eb993a2fe298eafb9 Mon Sep 17 00:00:00 2001 From: Aleksandar Balinda Date: Mon, 13 Jul 2026 18:53:02 +0200 Subject: [PATCH 1/4] feat: enable SEPA bank rail for AL/MD/ME/MK/RS + treat Bulgaria as Eurozone MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- src/components/AddMoney/consts/index.ts | 7 ++++++- src/constants/countryCurrencyMapping.ts | 28 +++++++++++++++++++++++-- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/components/AddMoney/consts/index.ts b/src/components/AddMoney/consts/index.ts index 6b8ad3925e..d1d2cd282f 100644 --- a/src/components/AddMoney/consts/index.ts +++ b/src/components/AddMoney/consts/index.ts @@ -361,7 +361,7 @@ export const countryData: CountryData[] = [ id: 'BGR', type: 'country', title: 'Bulgaria', - currency: 'BGN', + currency: 'EUR', path: 'bulgaria', iso2: 'BG', iso3: 'BGR', @@ -2601,6 +2601,7 @@ export const COUNTRY_SPECIFIC_METHODS: Record = // note: this is a map of 3-letter country codes to 2-letter country codes, for flags to work, bridge expects 3 letter codes export const BRIDGE_ALPHA3_TO_ALPHA2: { [key: string]: string } = { ALA: 'AX', + ALB: 'AL', AND: 'AD', AUT: 'AT', BEL: 'BE', @@ -2627,13 +2628,17 @@ export const BRIDGE_ALPHA3_TO_ALPHA2: { [key: string]: string } = { MLT: 'MT', MTQ: 'MQ', MYT: 'YT', + MDA: 'MD', + MNE: 'ME', NLD: 'NL', + MKD: 'MK', NOR: 'NO', POL: 'PL', PRT: 'PT', REU: 'RE', ROU: 'RO', MAF: 'MF', + SRB: 'RS', SVK: 'SK', SVN: 'SI', ESP: 'ES', diff --git a/src/constants/countryCurrencyMapping.ts b/src/constants/countryCurrencyMapping.ts index b1b5da58bd..f539cfdf85 100644 --- a/src/constants/countryCurrencyMapping.ts +++ b/src/constants/countryCurrencyMapping.ts @@ -14,7 +14,7 @@ const countryCurrencyMappings: CountryCurrencyMapping[] = [ { currencyCode: 'EUR', currencyName: 'Euro', country: 'Eurozone', flagCode: 'eu' }, // Non-Eurozone SEPA Countries - { currencyCode: 'BGN', currencyName: 'Bulgarian Lev', country: 'Bulgaria', flagCode: 'bg', path: 'bulgaria' }, + { currencyCode: 'ALL', currencyName: 'Albanian Lek', country: 'Albania', flagCode: 'al', path: 'albania' }, { currencyCode: 'CZK', currencyName: 'Czech Koruna', @@ -25,9 +25,18 @@ const countryCurrencyMappings: CountryCurrencyMapping[] = [ { currencyCode: 'DKK', currencyName: 'Danish Krone', country: 'Denmark', flagCode: 'dk', path: 'denmark' }, { currencyCode: 'HUF', currencyName: 'Hungarian Forint', country: 'Hungary', flagCode: 'hu', path: 'hungary' }, { currencyCode: 'ISK', currencyName: 'Icelandic Krona', country: 'Iceland', flagCode: 'is', path: 'iceland' }, + { currencyCode: 'MDL', currencyName: 'Moldovan Leu', country: 'Moldova', flagCode: 'md', path: 'moldova' }, + { + currencyCode: 'MKD', + currencyName: 'Macedonian Denar', + country: 'North Macedonia', + flagCode: 'mk', + path: 'macedonia', + }, { currencyCode: 'NOK', currencyName: 'Norwegian Krone', country: 'Norway', flagCode: 'no', path: 'norway' }, { currencyCode: 'PLN', currencyName: 'Polish Zloty', country: 'Poland', flagCode: 'pl', path: 'poland' }, { currencyCode: 'RON', currencyName: 'Romanian Leu', country: 'Romania', flagCode: 'ro', path: 'romania' }, + { currencyCode: 'RSD', currencyName: 'Serbian Dinar', country: 'Serbia', flagCode: 'rs', path: 'serbia' }, { currencyCode: 'SEK', currencyName: 'Swedish Krona', country: 'Sweden', flagCode: 'se', path: 'sweden' }, { currencyCode: 'CHF', currencyName: 'Swiss Franc', country: 'Switzerland', flagCode: 'ch', path: 'switzerland' }, { @@ -136,7 +145,22 @@ export function isNonEuroSepaCountry(currencyCode: string | undefined): boolean // explicit list of non-EUR SEPA currencies // SEPA includes EU countries that use their own currency - const nonEurSepaCurrencies = ['GBP', 'PLN', 'SEK', 'DKK', 'CZK', 'HUF', 'RON', 'BGN', 'ISK', 'NOK', 'CHF'] + const nonEurSepaCurrencies = [ + 'GBP', + 'PLN', + 'SEK', + 'DKK', + 'CZK', + 'HUF', + 'RON', + 'ISK', + 'NOK', + 'CHF', + 'ALL', + 'MDL', + 'MKD', + 'RSD', + ] return nonEurSepaCurrencies.includes(upper) } From 5f612dc0e47c670c469328cfd98073ee0d555b7c Mon Sep 17 00:00:00 2001 From: Aleksandar Balinda Date: Mon, 13 Jul 2026 19:05:48 +0200 Subject: [PATCH 2/4] =?UTF-8?q?docs:=20retitle=20bank-country=20map=20?= =?UTF-8?q?=E2=80=94=20contents=20outgrew=20the=20'EAA=20codes'=20label?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- src/components/AddMoney/consts/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/AddMoney/consts/index.ts b/src/components/AddMoney/consts/index.ts index d1d2cd282f..bdbc8dddde 100644 --- a/src/components/AddMoney/consts/index.ts +++ b/src/components/AddMoney/consts/index.ts @@ -2597,7 +2597,8 @@ export const countryData: CountryData[] = [ export const COUNTRY_SPECIFIC_METHODS: Record = {} -// bridge EAA country codes, source: https://apidocs.bridge.xyz/docs/sepa-euro-transactions +// countries enabled for Bridge bank transfers — SEPA zone (source: https://apidocs.bridge.xyz/docs/sepa-euro-transactions, +// incl. the 2025/26 SEPA joiners AL/MD/ME/MK/RS) plus US // note: this is a map of 3-letter country codes to 2-letter country codes, for flags to work, bridge expects 3 letter codes export const BRIDGE_ALPHA3_TO_ALPHA2: { [key: string]: string } = { ALA: 'AX', From 997924a4d3ac4bae96df8a28a66a358faf8d5dc3 Mon Sep 17 00:00:00 2001 From: ab <78670703+abalinda@users.noreply.github.com> Date: Mon, 13 Jul 2026 19:32:34 +0200 Subject: [PATCH 3/4] Refactor Macedonian Denar entry formatting Signed-off-by: ab <78670703+abalinda@users.noreply.github.com> --- src/constants/countryCurrencyMapping.ts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/constants/countryCurrencyMapping.ts b/src/constants/countryCurrencyMapping.ts index f539cfdf85..564b365a8b 100644 --- a/src/constants/countryCurrencyMapping.ts +++ b/src/constants/countryCurrencyMapping.ts @@ -26,13 +26,7 @@ const countryCurrencyMappings: CountryCurrencyMapping[] = [ { currencyCode: 'HUF', currencyName: 'Hungarian Forint', country: 'Hungary', flagCode: 'hu', path: 'hungary' }, { currencyCode: 'ISK', currencyName: 'Icelandic Krona', country: 'Iceland', flagCode: 'is', path: 'iceland' }, { currencyCode: 'MDL', currencyName: 'Moldovan Leu', country: 'Moldova', flagCode: 'md', path: 'moldova' }, - { - currencyCode: 'MKD', - currencyName: 'Macedonian Denar', - country: 'North Macedonia', - flagCode: 'mk', - path: 'macedonia', - }, + { currencyCode: 'MKD', currencyName: 'Macedonian Denar', country: 'North Macedonia', flagCode: 'mk', path: 'macedonia'}, { currencyCode: 'NOK', currencyName: 'Norwegian Krone', country: 'Norway', flagCode: 'no', path: 'norway' }, { currencyCode: 'PLN', currencyName: 'Polish Zloty', country: 'Poland', flagCode: 'pl', path: 'poland' }, { currencyCode: 'RON', currencyName: 'Romanian Leu', country: 'Romania', flagCode: 'ro', path: 'romania' }, From 976d8f4c769d4e3c4f3228c3306af20d7d2725d9 Mon Sep 17 00:00:00 2001 From: Aleksandar Balinda Date: Mon, 13 Jul 2026 19:54:04 +0200 Subject: [PATCH 4/4] =?UTF-8?q?style:=20re-wrap=20MKD=20row=20=E2=80=94=20?= =?UTF-8?q?prettier=20print-width=20forces=20multi-line,=20format=20check?= =?UTF-8?q?=20gates=20CI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/constants/countryCurrencyMapping.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/constants/countryCurrencyMapping.ts b/src/constants/countryCurrencyMapping.ts index 564b365a8b..f539cfdf85 100644 --- a/src/constants/countryCurrencyMapping.ts +++ b/src/constants/countryCurrencyMapping.ts @@ -26,7 +26,13 @@ const countryCurrencyMappings: CountryCurrencyMapping[] = [ { currencyCode: 'HUF', currencyName: 'Hungarian Forint', country: 'Hungary', flagCode: 'hu', path: 'hungary' }, { currencyCode: 'ISK', currencyName: 'Icelandic Krona', country: 'Iceland', flagCode: 'is', path: 'iceland' }, { currencyCode: 'MDL', currencyName: 'Moldovan Leu', country: 'Moldova', flagCode: 'md', path: 'moldova' }, - { currencyCode: 'MKD', currencyName: 'Macedonian Denar', country: 'North Macedonia', flagCode: 'mk', path: 'macedonia'}, + { + currencyCode: 'MKD', + currencyName: 'Macedonian Denar', + country: 'North Macedonia', + flagCode: 'mk', + path: 'macedonia', + }, { currencyCode: 'NOK', currencyName: 'Norwegian Krone', country: 'Norway', flagCode: 'no', path: 'norway' }, { currencyCode: 'PLN', currencyName: 'Polish Zloty', country: 'Poland', flagCode: 'pl', path: 'poland' }, { currencyCode: 'RON', currencyName: 'Romanian Leu', country: 'Romania', flagCode: 'ro', path: 'romania' },