Repository: breez/breez-sdk-greenlight (language: python)

Issue:
Extract fiat module to `sdk-common`



Discussion / hints:
Pre-requisite for https://github.com/breez/breez-liquid-sdk/issues/262

Fix patch:
diff --git a/libs/sdk-bindings/src/breez_sdk.udl b/libs/sdk-bindings/src/breez_sdk.udl
index 8a0e544a0..f7f5555c1 100644
--- a/libs/sdk-bindings/src/breez_sdk.udl
+++ b/libs/sdk-bindings/src/breez_sdk.udl
@@ -364,8 +364,8 @@ dictionary CurrencyInfo {
     u32? spacing;
     Symbol? symbol;
     Symbol? uniq_symbol;
-    sequence<LocalizedName>? localized_name;
-    sequence<LocaleOverrides>? locale_overrides;
+    sequence<LocalizedName> localized_name;
+    sequence<LocaleOverrides> locale_overrides;
 };
 
 dictionary FiatCurrency {
diff --git a/libs/sdk-core/assets/json/currencies.json b/libs/sdk-common/assets/json/currencies.json
similarity index 94%
rename from libs/sdk-core/assets/json/currencies.json
rename to libs/sdk-common/assets/json/currencies.json
index c741142ae..612cc0707 100644
--- a/libs/sdk-core/assets/json/currencies.json
+++ b/libs/sdk-common/assets/json/currencies.json
@@ -1,2281 +1,2281 @@
-{
-  "AED": {
-    "name": "UAE Dirham",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "د.إ",
-      "template": "1 $",
-      "rtl": true
-    },
-    "uniqSymbol": null
-  },
-  "AFN": {
-    "name": "Afghani",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "؋",
-      "template": "1 $",
-      "rtl": true
-    },
-    "uniqSymbol": {
-      "grapheme": "؋",
-      "template": "1 $",
-      "rtl": true
-    }
-  },
-  "ALL": {
-    "name": "Lek",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "L",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "Lek",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "AMD": {
-    "name": "Armenian Dram",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "դր.",
-      "template": "1 $",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "դր.",
-      "template": "1 $",
-      "rtl": false
-    }
-  },
-  "ANG": {
-    "name": "Netherlands Antillean Guilder",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "ƒ",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "NAƒ",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "AOA": {
-    "name": "Kwanza",
-    "localized_name": [
-      {
-        "locale": "en",
-        "name": "Angolan Kwanza"
-      },
-      {
-        "locale": "es",
-        "name": "Kwanza Angoleño"
-      }
-    ],
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "ARS": {
-    "name": "Peso Argentino",
-    "localized_name": [
-      {
-        "locale": "en",
-        "name": "Argentine Peso"
-      }
-    ],
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "AUD": {
-    "name": "Australian Dollar",
-    "localized_name": [
-      {
-        "locale": "es",
-        "name": "Dólar Australiano"
-      },
-      {
-        "locale": "pt",
-        "name": "Dólar Australiano"
-      }
-    ],
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "A$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "AWG": {
-    "name": "Aruban Florin",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "ƒ",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "Afl",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "AZN": {
-    "name": "Azerbaijan Manat",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "₼",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "₼",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "BAM": {
-    "name": "Convertible Mark",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "KM",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "KM",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "BBD": {
-    "name": "Barbados Dollar",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "BDT": {
-    "name": "Taka",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "BGN": {
-    "name": "Bulgarian Lev",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "лв",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "лв",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "BHD": {
-    "name": "Bahraini Dinar",
-    "fractionSize": 3,
-    "symbol": {
-      "grapheme": ".د.ب",
-      "template": "1 $",
-      "rtl": true
-    },
-    "uniqSymbol": {
-      "grapheme": ".د.ب",
-      "template": "1 $",
-      "rtl": true
-    }
-  },
-  "BIF": {
-    "name": "Burundi Franc",
-    "fractionSize": 0,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "BMD": {
-    "name": "Bermudian Dollar",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "BD$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "BND": {
-    "name": "Brunei Dollar",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "BOB": {
-    "name": "Boliviano",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "Bs.",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "Bs.",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "BOV": {
-    "name": "Mvdol",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "BRL": {
-    "name": "Real",
-    "localized_name": [
-      {
-        "locale": "en",
-        "name": "Brazilian Real"
-      },
-      {
-        "locale": "es",
-        "name": "Real Brasileño"
-      }
-    ],
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "R$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "R$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "BSD": {
-    "name": "Bahamian Dollar",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "BTN": {
-    "name": "Ngultrum",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "BWP": {
-    "name": "Pula",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "P",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "P",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "BYN": {
-    "name": "Belarusian Ruble",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "p.",
-      "template": "1 $",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "р.",
-      "template": "1 $",
-      "rtl": false
-    }
-  },
-  "BYR": {
-    "name": "Belarussian Ruble",
-    "fractionSize": 0,
-    "symbol": {
-      "grapheme": "p.",
-      "template": "1 $",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "р.",
-      "template": "1 $",
-      "rtl": false
-    }
-  },
-  "BZD": {
-    "name": "Belize Dollar",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "BZ$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "BZ$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "CAD": {
-    "name": "Canadian Dollar",
-    "localized_name": [
-      {
-        "locale": "es",
-        "name": "Dólar Canadiense"
-      },
-      {
-        "locale": "pt",
-        "name": "Dólar Canadense"
-      }
-    ],
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "CA$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "CDF": {
-    "name": "Congolese Franc",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "CHE": {
-    "name": "WIR Euro",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "CHF": {
-    "name": "Swiss Franc",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "CHW": {
-    "name": "WIR Franc",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "CLF": {
-    "name": "Unidad de Fomento",
-    "fractionSize": 4,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "CLP": {
-    "name": "Peso Chileno",
-    "localized_name": [
-      {
-        "locale": "en",
-        "name": "Chilean Peso"
-      },
-      {
-        "locale": "pt",
-        "name": "Peso Chileno"
-      }
-    ],
-    "fractionSize": 0,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "CNY": {
-    "name": "Yuan Renminbi",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "元",
-      "template": "1 $",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "元",
-      "template": "1 $",
-      "rtl": false
-    }
-  },
-  "COP": {
-    "name": "Peso Colombiano",
-    "localized_name": [
-      {
-        "locale": "en",
-        "name": "Colombian Peso"
-      },
-      {
-        "locale": "pt",
-        "name": "Peso Colombiano"
-      }
-    ],
-    "fractionSize": 0,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "COU": {
-    "name": "Unidad de Valor Real",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "CRC": {
-    "name": "Cost Rican Colon",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "₡",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "₡",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "CUC": {
-    "name": "Peso Convertible",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "CUP": {
-    "name": "Peso Cubano",
-    "localized_name": [
-      {
-        "locale": "en",
-        "name": "Cuban Peso"
-      },
-      {
-        "locale": "pt",
-        "name": "Peso Cubano"
-      }
-    ],
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "$MN",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "$MN",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "CVE": {
-    "name": "Cabo Verde Escudo",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "CZK": {
-    "name": "Czech Koruna",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "Kč",
-      "template": "1 $",
-      "rtl": false,
-      "position": 1
-    },
-    "uniqSymbol": {
-      "grapheme": "Kč",
-      "template": "1 $",
-      "rtl": false
-    }
-  },
-  "DJF": {
-    "name": "Djibouti Franc",
-    "fractionSize": 0,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "DKK": {
-    "name": "Danish Krone",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "kr.",
-      "template": "1 $",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "DOP": {
-    "name": "Peso Dominicano",
-    "localized_name": [
-      {
-        "locale": "en",
-        "name": "Dominican Peso"
-      },
-      {
-        "locale": "pt",
-        "name": "Peso Dominicano"
-      }
-    ],
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "RD$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "RD$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "DZD": {
-    "name": "Algerian Dinar",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": ".د.ج",
-      "template": "1 $",
-      "rtl": true
-    },
-    "uniqSymbol": {
-      "grapheme": ".د.ج",
-      "template": "1 $",
-      "rtl": true
-    }
-  },
-  "EEK": {
-    "name": "Estonian Kroon",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "kr",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "EGP": {
-    "name": "Egyptian Pound",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "£",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": ".ج.م",
-      "template": "1 $",
-      "rtl": true
-    }
-  },
-  "ERN": {
-    "name": "Nakfa",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "ETB": {
-    "name": "Ethiopian Birr",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "EUR": {
-    "name": "Euro",
-    "fractionSize": 2,
-    "spacing": 1,
-    "symbol": {
-      "grapheme": "€",
-      "position": 1,
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "€",
-      "rtl": false
-    },
-    "localeOverrides": [
-      {
-        "locale": "de-AT",
-        "symbol": {
-          "position": 0
-        }
-      },
-      {
-        "locale": "el-CY",
-        "spacing": 0,
-        "symbol": {
-          "position": 0
-        }
-      },
-      {
-        "locale": "en",
-        "spacing": 0,
-        "symbol": {
-          "position": 0
-        }
-      },
-      {
-        "locale": "nl",
-        "symbol": {
-          "position": 0
-        }
-      },
-      {
-        "locale": "tr",
-        "spacing": 0,
-        "symbol": {
-          "position": 0
-        }
-      }
-    ]
-  },
-  "FJD": {
-    "name": "Fiji Dollar",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "FJ$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "FKP": {
-    "name": "Falkland Islands Pound",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "£",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "GBP": {
-    "name": "Pound Sterling",
-    "localized_name": [
-      {
-        "locale": "es",
-        "name": "Libra Esterlina"
-      },
-      {
-        "locale": "pt",
-        "name": "Libra Esterlina"
-      }
-    ],
-    "fractionSize": 2,
-    "spacing": 0,
-    "symbol": {
-      "grapheme": "£",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "£",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "GEL": {
-    "name": "Lari",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "GGP": {
-    "name": "Guernsey Pound",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "£",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "GHC": {
-    "name": "Ghanaian Cedi",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "¢",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "¢",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "GHS": {
-    "name": "Ghana Cedi",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "GIP": {
-    "name": "Gibraltar Pound",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "£",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "GMD": {
-    "name": "Dalasi",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "GNF": {
-    "name": "Guinean Franc",
-    "fractionSize": 0,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "GTQ": {
-    "name": "Quetzal",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "Q",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "Q",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "GYD": {
-    "name": "Guyana Dollar",
-    "localized_name": [
-      {
-        "locale": "es",
-        "name": "Dólar Guyanés"
-      },
-      {
-        "locale": "pt",
-        "name": "Dólar Guianês"
-      }
-    ],
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "GY$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "HKD": {
-    "name": "Hong Kong Dollar",
-    "localized_name": [
-      {
-        "locale": "es",
-        "name": "Dólar de Hong Kong"
-      },
-      {
-        "locale": "pt",
-        "name": "Dólar de Hong Kong"
-      }
-    ],
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "HK$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "HK$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "HNL": {
-    "name": "Lempira",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "L",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "L",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "HRK": {
-    "name": "Kuna",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "kn",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "kn",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "HTG": {
-    "name": "Gourde",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "HUF": {
-    "name": "Forint",
-    "fractionSize": 0,
-    "symbol": {
-      "grapheme": "Ft",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "Ft",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "IDR": {
-    "name": "Rupiah",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "Rp",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "Rp",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "ILS": {
-    "name": "New Israeli Shekel",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "₪",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "₪",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "IMP": {
-    "name": "Manx Pound",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "£",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "INR": {
-    "name": "Indian Rupee",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "₹",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "₹",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "IQD": {
-    "name": "Iraqi Dinar",
-    "fractionSize": 3,
-    "symbol": {
-      "grapheme": ".د.ع",
-      "template": "1 $",
-      "rtl": true
-    },
-    "uniqSymbol": {
-      "grapheme": ".د.ع",
-      "template": "1 $",
-      "rtl": true
-    }
-  },
-  "IRR": {
-    "name": "Iranian Rial",
-    "fractionSize": 0,
-    "symbol": {
-      "grapheme": "﷼",
-      "template": "1 $",
-      "rtl": true
-    },
-    "uniqSymbol": {
-      "grapheme": "﷼",
-      "template": "1 $",
-      "rtl": true
-    }
-  },
-  "ISK": {
-    "name": "Iceland Krona",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "kr",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "JEP": {
-    "name": "Jersey Pound",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "£",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "JMD": {
-    "name": "Jamaican Dollar",
-    "localized_name": [
-      {
-        "locale": "es",
-        "name": "Dólar Jamaiquino"
-      },
-      {
-        "locale": "pt",
-        "name": "Dólar Jamaicano"
-      }
-    ],
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "J$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "J$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "JOD": {
-    "name": "Jordanian Dinar",
-    "fractionSize": 3,
-    "symbol": {
-      "grapheme": ".د.إ",
-      "template": "1 $",
-      "rtl": true
-    },
-    "uniqSymbol": null
-  },
-  "JPY": {
-    "name": "円",
-    "localized_name": [
-      {
-        "locale": "en",
-        "name": "Yen"
-      },
-      {
-        "locale": "es",
-        "name": "Yen"
-      },
-      {
-        "locale": "pt",
-        "name": "Iene"
-      }
-    ],
-    "fractionSize": 0,
-    "symbol": {
-      "grapheme": "¥",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "¥",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "KES": {
-    "name": "Kenyan Shilling",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "KSh",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "KSh",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "KGS": {
-    "name": "Som",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "сом",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "сом",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "KHR": {
-    "name": "Riel",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "៛",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "៛",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "KMF": {
-    "name": "Comorian Franc",
-    "fractionSize": 0,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "KPW": {
-    "name": "North Korean Won",
-    "fractionSize": 0,
-    "symbol": {
-      "grapheme": "₩",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "KRW": {
-    "name": "원",
-    "localized_name": [
-      {
-        "locale": "en",
-        "name": "Won"
-      },
-      {
-        "locale": "es",
-        "name": "Won"
-      },
-      {
-        "locale": "pt",
-        "name": "Won"
-      }
-    ],
-    "fractionSize": 0,
-    "symbol": {
-      "grapheme": "₩",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "₩",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "KWD": {
-    "name": "Kuwaiti Dinar",
-    "fractionSize": 3,
-    "symbol": {
-      "grapheme": ".د.ك",
-      "template": "1 $",
-      "rtl": true
-    },
-    "uniqSymbol": {
-      "grapheme": ".د.ك",
-      "template": "1 $",
-      "rtl": true
-    }
-  },
-  "KYD": {
-    "name": "Cayman Islands Dollar",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "CI$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "KZT": {
-    "name": "Tenge",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "₸",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "₸",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "LAK": {
-    "name": "Lao Kip",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "₭",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "₭",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "LBP": {
-    "name": "Lebanese Pound",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "£",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": ".ل.ل",
-      "template": "1 $",
-      "rtl": true
-    }
-  },
-  "LKR": {
-    "name": "Sri Lanka Rupee",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "₨",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "LRD": {
-    "name": "Liberian Dollar",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "L$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "LSL": {
-    "name": "Loti",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "LTL": {
-    "name": "Lithuanian Litas",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "Lt",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "Lt",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "LVL": {
-    "name": "Latvian Lats",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "Ls",
-      "template": "1 $",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "Ls",
-      "template": "1 $",
-      "rtl": false
-    }
-  },
-  "LYD": {
-    "name": "Libyan Dinar",
-    "fractionSize": 3,
-    "symbol": {
-      "grapheme": ".د.ل",
-      "template": "1 $",
-      "rtl": true
-    },
-    "uniqSymbol": {
-      "grapheme": ".د.ل",
-      "template": "1 $",
-      "rtl": true
-    }
-  },
-  "MAD": {
-    "name": "Moroccan Dirham",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": ".د.م",
-      "template": "1 $",
-      "rtl": true
-    },
-    "uniqSymbol": {
-      "grapheme": ".د.م",
-      "template": "1 $",
-      "rtl": true
-    }
-  },
-  "MDL": {
-    "name": "Moldovan Leu",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "MGA": {
-    "name": "Malagasy Ariary",
-    "fractionSize": 1,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "MKD": {
-    "name": "Denar",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "ден",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "ден",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "MMK": {
-    "name": "Kyat",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "MNT": {
-    "name": "Tugrik",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "₮",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "₮",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "MOP": {
-    "name": "Pataca",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "MRU": {
-    "name": "Ouguiya",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "MUR": {
-    "name": "Mauritius Rupee",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "₨",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "MVR": {
-    "name": "Rufiyaa",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "MWK": {
-    "name": "Malawi Kwacha",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "MXN": {
-    "name": "Peso Mexicano",
-    "localized_name": [
-      {
-        "locale": "en",
-        "name": "Mexican Peso"
-      },
-      {
-        "locale": "pt",
-        "name": "Peso Mexicano"
-      }
-    ],
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "MXV": {
-    "name": "Mexican Unidad de Inversion (UDI)",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "MYR": {
-    "name": "Malaysian Ringgit",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "RM",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "RM",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "MZN": {
-    "name": "Metical",
-    "localized_name": [
-      {
-        "locale": "en",
-        "name": "Mozambique Metical"
-      },
-      {
-        "locale": "es",
-        "name": "Metical Mozambiqueño"
-      }
-    ],
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "MT",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "MT",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "NAD": {
-    "name": "Namibia Dollar",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "N$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "NGN": {
-    "name": "Naira",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "₦",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "₦",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "NIO": {
-    "name": "Cordoba Oro",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "C$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "C$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "NOK": {
-    "name": "Norwegian Krone",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "kr",
-      "template": "1 $",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "NPR": {
-    "name": "Nepalese Rupee",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "₨",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "NZD": {
-    "name": "New Zealand Dollar",
-    "localized_name": [
-      {
-        "locale": "es",
-        "name": "Dólar Neozelandés"
-      },
-      {
-        "locale": "pt",
-        "name": "Dólar Neozelandês"
-      }
-    ],
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "NZ$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "OMR": {
-    "name": "Rial Omani",
-    "fractionSize": 3,
-    "symbol": {
-      "grapheme": "﷼",
-      "template": "1 $",
-      "rtl": true
-    },
-    "uniqSymbol": {
-      "grapheme": ".ر.ع",
-      "template": "1 $",
-      "rtl": true
-    }
-  },
-  "PAB": {
-    "name": "Balboa",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "B/.",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "B/.",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "PEN": {
-    "name": "Sol",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "S/",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "S/",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "PGK": {
-    "name": "Kina",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "PHP": {
-    "name": "Piso",
-    "localized_name": [
-      {
-        "locale": "en",
-        "name": "Philippine Peso"
-      },
-      {
-        "locale": "es",
-        "name": "Peso Filipino"
-      },
-      {
-        "locale": "pt",
-        "name": "Peso Filipino"
-      }
-    ],
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "₱",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "₱",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "PKR": {
-    "name": "Pakistan Rupee",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "₨",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "PLN": {
-    "name": "Zloty",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "zł",
-      "position": 1,
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "zł",
-      "rtl": false
-    }
-  },
-  "PYG": {
-    "name": "Guaraní",
-    "localized_name": [
-      {
-        "locale": "en",
-        "name": "Guarani"
-      },
-      {
-        "locale": "pt",
-        "name": "Guarani"
-      }
-    ],
-    "fractionSize": 0,
-    "symbol": {
-      "grapheme": "Gs",
-      "template": "1$",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "Gs",
-      "template": "1$",
-      "rtl": false
-    }
-  },
-  "QAR": {
-    "name": "Qatari Rial",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "﷼",
-      "template": "1 $",
-      "rtl": true
-    },
-    "uniqSymbol": {
-      "grapheme": ".ر.ق",
-      "template": "1 $",
-      "rtl": true
-    }
-  },
-  "RON": {
-    "name": "Romanian Leu",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "lei",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "lei",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "RSD": {
-    "name": "Serbian Dinar",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "Дин.",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "Дин.",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "RUB": {
-    "name": "Russian Ruble",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "₽",
-      "template": "1 $",
-      "rtl": false,
-      "position": 1
-    },
-    "uniqSymbol": {
-      "grapheme": "₽",
-      "template": "1 $",
-      "rtl": false
-    }
-  },
-  "RUR": {
-    "name": "Russian Ruble",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "₽",
-      "template": "1 $",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "₽",
-      "template": "1 $",
-      "rtl": false
-    }
-  },
-  "RWF": {
-    "name": "Rwanda Franc",
-    "fractionSize": 0,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "SAR": {
-    "name": "Saudi Riyal",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "﷼",
-      "template": "1 $",
-      "rtl": true
-    },
-    "uniqSymbol": {
-      "grapheme": ".ر.س",
-      "template": "1 $",
-      "rtl": true
-    }
-  },
-  "SBD": {
-    "name": "Solomon Islands Dollar",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "SI$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "SCR": {
-    "name": "Seychelles Rupee",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "₨",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "SDG": {
-    "name": "Sudanese Pound",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "SEK": {
-    "name": "Swedish Krona",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "kr",
-      "template": "1 $",
-      "rtl": false,
-      "position": 1
-    },
-    "uniqSymbol": null
-  },
-  "SGD": {
-    "name": "Singapore Dollar",
-    "fractionSize": 2,
-    "spacing": 0,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "S$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "SHP": {
-    "name": "Saint Helena Pound",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "£",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "SLL": {
-    "name": "Leone",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "SOS": {
-    "name": "Somali Shilling",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "S",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "S",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "SRD": {
-    "name": "Surinam Dollar",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "SSP": {
-    "name": "South Sudanese Pound",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "STN": {
-    "name": "Dobra",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "SVC": {
-    "name": "El Salvador Colon",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "C",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "SYP": {
-    "name": "Syrian Pound",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "£",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": ".ل.س",
-      "template": "1 $",
-      "rtl": true
-    }
-  },
-  "SZL": {
-    "name": "Lilangeni",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "THB": {
-    "name": "Baht",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "฿",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "฿",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "TJS": {
-    "name": "Somoni",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "TMT": {
-    "name": "Turkmenistan New Manat",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "TND": {
-    "name": "Tunisian Dinar",
-    "fractionSize": 3,
-    "symbol": {
-      "grapheme": ".د.ت",
-      "template": "1 $",
-      "rtl": true
-    },
-    "uniqSymbol": {
-      "grapheme": ".د.ت",
-      "template": "1 $",
-      "rtl": true
-    }
-  },
-  "TOP": {
-    "name": "Pa’anga",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "TRL": {
-    "name": "Turkish Lira",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "₤",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": null
-  },
-  "TRY": {
-    "name": "Turkish Lira",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "₺",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "₺",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "TTD": {
-    "name": "Trinidad and Tobago Dollar",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "TT$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "TT$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "TWD": {
-    "name": "New Taiwan Dollar",
-    "fractionSize": 0,
-    "symbol": {
-      "grapheme": "NT$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "NT$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "TZS": {
-    "name": "Tanzanian Shilling",
-    "fractionSize": 0,
-    "symbol": {
-      "grapheme": "TSh",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "TSh",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "UAH": {
-    "name": "Hryvnia",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "₴",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "₴",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "UGX": {
-    "name": "Uganda Shilling",
-    "fractionSize": 0,
-    "symbol": {
-      "grapheme": "USh",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "USh",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "USD": {
-    "name": "US Dollar",
-    "localized_name": [
-      {
-        "locale": "es",
-        "name": "Dólar Americano"
-      },
-      {
-        "locale": "pt",
-        "name": "Dólar Americano"
-      }
-    ],
-    "fractionSize": 2,
-    "spacing": 0,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "USN": {
-    "name": "US Dollar (Next day)",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "UYI": {
-    "name": "Uruguay Peso en Unidades Indexadas (UI)",
-    "fractionSize": 0,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "UYU": {
-    "name": "Peso Uruguayo",
-    "localized_name": [
-      {
-        "locale": "en",
-        "name": "Uruguayan Peso"
-      },
-      {
-        "locale": "pt",
-        "name": "Peso Uruguaio"
-      }
-    ],
-    "fractionSize": 0,
-    "symbol": {
-      "grapheme": "$U",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "$U",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "UZS": {
-    "name": "Uzbekistan Sum",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "so’m",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "so’m",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "VEF": {
-    "name": "Bolívar",
-    "localized_name": [
-      {
-        "locale": "en",
-        "name": "Venezuelan Bolivar"
-      },
-      {
-        "locale": "pt",
-        "name": "Bolívar Venezuelano"
-      }
-    ],
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "Bs",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "Bs",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "VES": {
-    "name": "Bolivar Soberano",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "Bs",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "Bs",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "VND": {
-    "name": "Dong",
-    "fractionSize": 0,
-    "symbol": {
-      "grapheme": "₫",
-      "template": "1 $",
-      "rtl": false,
-      "position": 1
-    },
-    "uniqSymbol": {
-      "grapheme": "₫",
-      "template": "1 $",
-      "rtl": false
-    }
-  },
-  "VUV": {
-    "name": "Vatu",
-    "fractionSize": 0,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "WST": {
-    "name": "Tala",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "XAF": {
-    "name": "CFA Franc BEAC",
-    "fractionSize": 0,
-    "symbol": {
-      "grapheme": "FCFA",
-      "template": "1 $",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "FCFA",
-      "template": "1 $",
-      "rtl": false
-    }
-  },
-  "XCD": {
-    "name": "East Caribbean Dollar",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "EC$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "XDR": {
-    "name": "SDR (Special Drawing Right)",
-    "fractionSize": 0,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "XOF": {
-    "name": "CFA Franc BCEAO",
-    "fractionSize": 0,
-    "symbol": {
-      "grapheme": "CFA",
-      "template": "1 $",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "CFA",
-      "template": "1 $",
-      "rtl": false
-    }
-  },
-  "XPF": {
-    "name": "CFP Franc",
-    "fractionSize": 0,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "XSU": {
-    "name": "Sucre",
-    "fractionSize": 0,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "XUA": {
-    "name": "ADB Unit of Account",
-    "fractionSize": 0,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "YER": {
-    "name": "Yemeni Rial",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "﷼",
-      "template": "1 $",
-      "rtl": true
-    },
-    "uniqSymbol": {
-      "grapheme": ".ر.ي",
-      "template": "1 $",
-      "rtl": true
-    }
-  },
-  "ZAR": {
-    "name": "Rand",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "R",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "R",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "ZMW": {
-    "name": "Zambian Kwacha",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  },
-  "ZWD": {
-    "name": "Zimbabwe Dollar",
-    "fractionSize": 2,
-    "symbol": {
-      "grapheme": "Z$",
-      "template": "$1",
-      "rtl": false
-    },
-    "uniqSymbol": {
-      "grapheme": "Z$",
-      "template": "$1",
-      "rtl": false
-    }
-  },
-  "ZWL": {
-    "name": "Zimbabwe Dollar",
-    "fractionSize": 2,
-    "symbol": null,
-    "uniqSymbol": null
-  }
+{
+  "AED": {
+    "name": "UAE Dirham",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "د.إ",
+      "template": "1 $",
+      "rtl": true
+    },
+    "uniqSymbol": null
+  },
+  "AFN": {
+    "name": "Afghani",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "؋",
+      "template": "1 $",
+      "rtl": true
+    },
+    "uniqSymbol": {
+      "grapheme": "؋",
+      "template": "1 $",
+      "rtl": true
+    }
+  },
+  "ALL": {
+    "name": "Lek",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "L",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "Lek",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "AMD": {
+    "name": "Armenian Dram",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "դր.",
+      "template": "1 $",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "դր.",
+      "template": "1 $",
+      "rtl": false
+    }
+  },
+  "ANG": {
+    "name": "Netherlands Antillean Guilder",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "ƒ",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "NAƒ",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "AOA": {
+    "name": "Kwanza",
+    "localized_name": [
+      {
+        "locale": "en",
+        "name": "Angolan Kwanza"
+      },
+      {
+        "locale": "es",
+        "name": "Kwanza Angoleño"
+      }
+    ],
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "ARS": {
+    "name": "Peso Argentino",
+    "localized_name": [
+      {
+        "locale": "en",
+        "name": "Argentine Peso"
+      }
+    ],
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "AUD": {
+    "name": "Australian Dollar",
+    "localized_name": [
+      {
+        "locale": "es",
+        "name": "Dólar Australiano"
+      },
+      {
+        "locale": "pt",
+        "name": "Dólar Australiano"
+      }
+    ],
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "A$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "AWG": {
+    "name": "Aruban Florin",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "ƒ",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "Afl",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "AZN": {
+    "name": "Azerbaijan Manat",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "₼",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "₼",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "BAM": {
+    "name": "Convertible Mark",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "KM",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "KM",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "BBD": {
+    "name": "Barbados Dollar",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "BDT": {
+    "name": "Taka",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "BGN": {
+    "name": "Bulgarian Lev",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "лв",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "лв",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "BHD": {
+    "name": "Bahraini Dinar",
+    "fractionSize": 3,
+    "symbol": {
+      "grapheme": ".د.ب",
+      "template": "1 $",
+      "rtl": true
+    },
+    "uniqSymbol": {
+      "grapheme": ".د.ب",
+      "template": "1 $",
+      "rtl": true
+    }
+  },
+  "BIF": {
+    "name": "Burundi Franc",
+    "fractionSize": 0,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "BMD": {
+    "name": "Bermudian Dollar",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "BD$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "BND": {
+    "name": "Brunei Dollar",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "BOB": {
+    "name": "Boliviano",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "Bs.",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "Bs.",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "BOV": {
+    "name": "Mvdol",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "BRL": {
+    "name": "Real",
+    "localized_name": [
+      {
+        "locale": "en",
+        "name": "Brazilian Real"
+      },
+      {
+        "locale": "es",
+        "name": "Real Brasileño"
+      }
+    ],
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "R$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "R$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "BSD": {
+    "name": "Bahamian Dollar",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "BTN": {
+    "name": "Ngultrum",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "BWP": {
+    "name": "Pula",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "P",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "P",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "BYN": {
+    "name": "Belarusian Ruble",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "p.",
+      "template": "1 $",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "р.",
+      "template": "1 $",
+      "rtl": false
+    }
+  },
+  "BYR": {
+    "name": "Belarussian Ruble",
+    "fractionSize": 0,
+    "symbol": {
+      "grapheme": "p.",
+      "template": "1 $",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "р.",
+      "template": "1 $",
+      "rtl": false
+    }
+  },
+  "BZD": {
+    "name": "Belize Dollar",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "BZ$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "BZ$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "CAD": {
+    "name": "Canadian Dollar",
+    "localized_name": [
+      {
+        "locale": "es",
+        "name": "Dólar Canadiense"
+      },
+      {
+        "locale": "pt",
+        "name": "Dólar Canadense"
+      }
+    ],
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "CA$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "CDF": {
+    "name": "Congolese Franc",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "CHE": {
+    "name": "WIR Euro",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "CHF": {
+    "name": "Swiss Franc",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "CHW": {
+    "name": "WIR Franc",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "CLF": {
+    "name": "Unidad de Fomento",
+    "fractionSize": 4,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "CLP": {
+    "name": "Peso Chileno",
+    "localized_name": [
+      {
+        "locale": "en",
+        "name": "Chilean Peso"
+      },
+      {
+        "locale": "pt",
+        "name": "Peso Chileno"
+      }
+    ],
+    "fractionSize": 0,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "CNY": {
+    "name": "Yuan Renminbi",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "元",
+      "template": "1 $",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "元",
+      "template": "1 $",
+      "rtl": false
+    }
+  },
+  "COP": {
+    "name": "Peso Colombiano",
+    "localized_name": [
+      {
+        "locale": "en",
+        "name": "Colombian Peso"
+      },
+      {
+        "locale": "pt",
+        "name": "Peso Colombiano"
+      }
+    ],
+    "fractionSize": 0,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "COU": {
+    "name": "Unidad de Valor Real",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "CRC": {
+    "name": "Cost Rican Colon",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "₡",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "₡",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "CUC": {
+    "name": "Peso Convertible",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "CUP": {
+    "name": "Peso Cubano",
+    "localized_name": [
+      {
+        "locale": "en",
+        "name": "Cuban Peso"
+      },
+      {
+        "locale": "pt",
+        "name": "Peso Cubano"
+      }
+    ],
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "$MN",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "$MN",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "CVE": {
+    "name": "Cabo Verde Escudo",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "CZK": {
+    "name": "Czech Koruna",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "Kč",
+      "template": "1 $",
+      "rtl": false,
+      "position": 1
+    },
+    "uniqSymbol": {
+      "grapheme": "Kč",
+      "template": "1 $",
+      "rtl": false
+    }
+  },
+  "DJF": {
+    "name": "Djibouti Franc",
+    "fractionSize": 0,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "DKK": {
+    "name": "Danish Krone",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "kr.",
+      "template": "1 $",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "DOP": {
+    "name": "Peso Dominicano",
+    "localized_name": [
+      {
+        "locale": "en",
+        "name": "Dominican Peso"
+      },
+      {
+        "locale": "pt",
+        "name": "Peso Dominicano"
+      }
+    ],
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "RD$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "RD$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "DZD": {
+    "name": "Algerian Dinar",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": ".د.ج",
+      "template": "1 $",
+      "rtl": true
+    },
+    "uniqSymbol": {
+      "grapheme": ".د.ج",
+      "template": "1 $",
+      "rtl": true
+    }
+  },
+  "EEK": {
+    "name": "Estonian Kroon",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "kr",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "EGP": {
+    "name": "Egyptian Pound",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "£",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": ".ج.م",
+      "template": "1 $",
+      "rtl": true
+    }
+  },
+  "ERN": {
+    "name": "Nakfa",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "ETB": {
+    "name": "Ethiopian Birr",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "EUR": {
+    "name": "Euro",
+    "fractionSize": 2,
+    "spacing": 1,
+    "symbol": {
+      "grapheme": "€",
+      "position": 1,
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "€",
+      "rtl": false
+    },
+    "localeOverrides": [
+      {
+        "locale": "de-AT",
+        "symbol": {
+          "position": 0
+        }
+      },
+      {
+        "locale": "el-CY",
+        "spacing": 0,
+        "symbol": {
+          "position": 0
+        }
+      },
+      {
+        "locale": "en",
+        "spacing": 0,
+        "symbol": {
+          "position": 0
+        }
+      },
+      {
+        "locale": "nl",
+        "symbol": {
+          "position": 0
+        }
+      },
+      {
+        "locale": "tr",
+        "spacing": 0,
+        "symbol": {
+          "position": 0
+        }
+      }
+    ]
+  },
+  "FJD": {
+    "name": "Fiji Dollar",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "FJ$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "FKP": {
+    "name": "Falkland Islands Pound",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "£",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "GBP": {
+    "name": "Pound Sterling",
+    "localized_name": [
+      {
+        "locale": "es",
+        "name": "Libra Esterlina"
+      },
+      {
+        "locale": "pt",
+        "name": "Libra Esterlina"
+      }
+    ],
+    "fractionSize": 2,
+    "spacing": 0,
+    "symbol": {
+      "grapheme": "£",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "£",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "GEL": {
+    "name": "Lari",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "GGP": {
+    "name": "Guernsey Pound",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "£",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "GHC": {
+    "name": "Ghanaian Cedi",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "¢",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "¢",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "GHS": {
+    "name": "Ghana Cedi",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "GIP": {
+    "name": "Gibraltar Pound",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "£",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "GMD": {
+    "name": "Dalasi",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "GNF": {
+    "name": "Guinean Franc",
+    "fractionSize": 0,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "GTQ": {
+    "name": "Quetzal",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "Q",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "Q",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "GYD": {
+    "name": "Guyana Dollar",
+    "localized_name": [
+      {
+        "locale": "es",
+        "name": "Dólar Guyanés"
+      },
+      {
+        "locale": "pt",
+        "name": "Dólar Guianês"
+      }
+    ],
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "GY$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "HKD": {
+    "name": "Hong Kong Dollar",
+    "localized_name": [
+      {
+        "locale": "es",
+        "name": "Dólar de Hong Kong"
+      },
+      {
+        "locale": "pt",
+        "name": "Dólar de Hong Kong"
+      }
+    ],
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "HK$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "HK$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "HNL": {
+    "name": "Lempira",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "L",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "L",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "HRK": {
+    "name": "Kuna",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "kn",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "kn",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "HTG": {
+    "name": "Gourde",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "HUF": {
+    "name": "Forint",
+    "fractionSize": 0,
+    "symbol": {
+      "grapheme": "Ft",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "Ft",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "IDR": {
+    "name": "Rupiah",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "Rp",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "Rp",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "ILS": {
+    "name": "New Israeli Shekel",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "₪",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "₪",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "IMP": {
+    "name": "Manx Pound",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "£",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "INR": {
+    "name": "Indian Rupee",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "₹",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "₹",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "IQD": {
+    "name": "Iraqi Dinar",
+    "fractionSize": 3,
+    "symbol": {
+      "grapheme": ".د.ع",
+      "template": "1 $",
+      "rtl": true
+    },
+    "uniqSymbol": {
+      "grapheme": ".د.ع",
+      "template": "1 $",
+      "rtl": true
+    }
+  },
+  "IRR": {
+    "name": "Iranian Rial",
+    "fractionSize": 0,
+    "symbol": {
+      "grapheme": "﷼",
+      "template": "1 $",
+      "rtl": true
+    },
+    "uniqSymbol": {
+      "grapheme": "﷼",
+      "template": "1 $",
+      "rtl": true
+    }
+  },
+  "ISK": {
+    "name": "Iceland Krona",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "kr",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "JEP": {
+    "name": "Jersey Pound",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "£",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "JMD": {
+    "name": "Jamaican Dollar",
+    "localized_name": [
+      {
+        "locale": "es",
+        "name": "Dólar Jamaiquino"
+      },
+      {
+        "locale": "pt",
+        "name": "Dólar Jamaicano"
+      }
+    ],
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "J$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "J$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "JOD": {
+    "name": "Jordanian Dinar",
+    "fractionSize": 3,
+    "symbol": {
+      "grapheme": ".د.إ",
+      "template": "1 $",
+      "rtl": true
+    },
+    "uniqSymbol": null
+  },
+  "JPY": {
+    "name": "円",
+    "localized_name": [
+      {
+        "locale": "en",
+        "name": "Yen"
+      },
+      {
+        "locale": "es",
+        "name": "Yen"
+      },
+      {
+        "locale": "pt",
+        "name": "Iene"
+      }
+    ],
+    "fractionSize": 0,
+    "symbol": {
+      "grapheme": "¥",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "¥",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "KES": {
+    "name": "Kenyan Shilling",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "KSh",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "KSh",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "KGS": {
+    "name": "Som",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "сом",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "сом",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "KHR": {
+    "name": "Riel",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "៛",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "៛",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "KMF": {
+    "name": "Comorian Franc",
+    "fractionSize": 0,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "KPW": {
+    "name": "North Korean Won",
+    "fractionSize": 0,
+    "symbol": {
+      "grapheme": "₩",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "KRW": {
+    "name": "원",
+    "localized_name": [
+      {
+        "locale": "en",
+        "name": "Won"
+      },
+      {
+        "locale": "es",
+        "name": "Won"
+      },
+      {
+        "locale": "pt",
+        "name": "Won"
+      }
+    ],
+    "fractionSize": 0,
+    "symbol": {
+      "grapheme": "₩",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "₩",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "KWD": {
+    "name": "Kuwaiti Dinar",
+    "fractionSize": 3,
+    "symbol": {
+      "grapheme": ".د.ك",
+      "template": "1 $",
+      "rtl": true
+    },
+    "uniqSymbol": {
+      "grapheme": ".د.ك",
+      "template": "1 $",
+      "rtl": true
+    }
+  },
+  "KYD": {
+    "name": "Cayman Islands Dollar",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "CI$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "KZT": {
+    "name": "Tenge",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "₸",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "₸",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "LAK": {
+    "name": "Lao Kip",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "₭",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "₭",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "LBP": {
+    "name": "Lebanese Pound",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "£",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": ".ل.ل",
+      "template": "1 $",
+      "rtl": true
+    }
+  },
+  "LKR": {
+    "name": "Sri Lanka Rupee",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "₨",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "LRD": {
+    "name": "Liberian Dollar",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "L$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "LSL": {
+    "name": "Loti",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "LTL": {
+    "name": "Lithuanian Litas",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "Lt",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "Lt",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "LVL": {
+    "name": "Latvian Lats",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "Ls",
+      "template": "1 $",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "Ls",
+      "template": "1 $",
+      "rtl": false
+    }
+  },
+  "LYD": {
+    "name": "Libyan Dinar",
+    "fractionSize": 3,
+    "symbol": {
+      "grapheme": ".د.ل",
+      "template": "1 $",
+      "rtl": true
+    },
+    "uniqSymbol": {
+      "grapheme": ".د.ل",
+      "template": "1 $",
+      "rtl": true
+    }
+  },
+  "MAD": {
+    "name": "Moroccan Dirham",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": ".د.م",
+      "template": "1 $",
+      "rtl": true
+    },
+    "uniqSymbol": {
+      "grapheme": ".د.م",
+      "template": "1 $",
+      "rtl": true
+    }
+  },
+  "MDL": {
+    "name": "Moldovan Leu",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "MGA": {
+    "name": "Malagasy Ariary",
+    "fractionSize": 1,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "MKD": {
+    "name": "Denar",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "ден",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "ден",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "MMK": {
+    "name": "Kyat",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "MNT": {
+    "name": "Tugrik",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "₮",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "₮",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "MOP": {
+    "name": "Pataca",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "MRU": {
+    "name": "Ouguiya",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "MUR": {
+    "name": "Mauritius Rupee",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "₨",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "MVR": {
+    "name": "Rufiyaa",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "MWK": {
+    "name": "Malawi Kwacha",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "MXN": {
+    "name": "Peso Mexicano",
+    "localized_name": [
+      {
+        "locale": "en",
+        "name": "Mexican Peso"
+      },
+      {
+        "locale": "pt",
+        "name": "Peso Mexicano"
+      }
+    ],
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "MXV": {
+    "name": "Mexican Unidad de Inversion (UDI)",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "MYR": {
+    "name": "Malaysian Ringgit",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "RM",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "RM",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "MZN": {
+    "name": "Metical",
+    "localized_name": [
+      {
+        "locale": "en",
+        "name": "Mozambique Metical"
+      },
+      {
+        "locale": "es",
+        "name": "Metical Mozambiqueño"
+      }
+    ],
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "MT",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "MT",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "NAD": {
+    "name": "Namibia Dollar",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "N$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "NGN": {
+    "name": "Naira",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "₦",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "₦",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "NIO": {
+    "name": "Cordoba Oro",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "C$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "C$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "NOK": {
+    "name": "Norwegian Krone",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "kr",
+      "template": "1 $",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "NPR": {
+    "name": "Nepalese Rupee",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "₨",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "NZD": {
+    "name": "New Zealand Dollar",
+    "localized_name": [
+      {
+        "locale": "es",
+        "name": "Dólar Neozelandés"
+      },
+      {
+        "locale": "pt",
+        "name": "Dólar Neozelandês"
+      }
+    ],
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "NZ$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "OMR": {
+    "name": "Rial Omani",
+    "fractionSize": 3,
+    "symbol": {
+      "grapheme": "﷼",
+      "template": "1 $",
+      "rtl": true
+    },
+    "uniqSymbol": {
+      "grapheme": ".ر.ع",
+      "template": "1 $",
+      "rtl": true
+    }
+  },
+  "PAB": {
+    "name": "Balboa",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "B/.",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "B/.",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "PEN": {
+    "name": "Sol",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "S/",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "S/",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "PGK": {
+    "name": "Kina",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "PHP": {
+    "name": "Piso",
+    "localized_name": [
+      {
+        "locale": "en",
+        "name": "Philippine Peso"
+      },
+      {
+        "locale": "es",
+        "name": "Peso Filipino"
+      },
+      {
+        "locale": "pt",
+        "name": "Peso Filipino"
+      }
+    ],
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "₱",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "₱",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "PKR": {
+    "name": "Pakistan Rupee",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "₨",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "PLN": {
+    "name": "Zloty",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "zł",
+      "position": 1,
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "zł",
+      "rtl": false
+    }
+  },
+  "PYG": {
+    "name": "Guaraní",
+    "localized_name": [
+      {
+        "locale": "en",
+        "name": "Guarani"
+      },
+      {
+        "locale": "pt",
+        "name": "Guarani"
+      }
+    ],
+    "fractionSize": 0,
+    "symbol": {
+      "grapheme": "Gs",
+      "template": "1$",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "Gs",
+      "template": "1$",
+      "rtl": false
+    }
+  },
+  "QAR": {
+    "name": "Qatari Rial",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "﷼",
+      "template": "1 $",
+      "rtl": true
+    },
+    "uniqSymbol": {
+      "grapheme": ".ر.ق",
+      "template": "1 $",
+      "rtl": true
+    }
+  },
+  "RON": {
+    "name": "Romanian Leu",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "lei",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "lei",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "RSD": {
+    "name": "Serbian Dinar",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "Дин.",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "Дин.",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "RUB": {
+    "name": "Russian Ruble",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "₽",
+      "template": "1 $",
+      "rtl": false,
+      "position": 1
+    },
+    "uniqSymbol": {
+      "grapheme": "₽",
+      "template": "1 $",
+      "rtl": false
+    }
+  },
+  "RUR": {
+    "name": "Russian Ruble",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "₽",
+      "template": "1 $",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "₽",
+      "template": "1 $",
+      "rtl": false
+    }
+  },
+  "RWF": {
+    "name": "Rwanda Franc",
+    "fractionSize": 0,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "SAR": {
+    "name": "Saudi Riyal",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "﷼",
+      "template": "1 $",
+      "rtl": true
+    },
+    "uniqSymbol": {
+      "grapheme": ".ر.س",
+      "template": "1 $",
+      "rtl": true
+    }
+  },
+  "SBD": {
+    "name": "Solomon Islands Dollar",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "SI$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "SCR": {
+    "name": "Seychelles Rupee",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "₨",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "SDG": {
+    "name": "Sudanese Pound",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "SEK": {
+    "name": "Swedish Krona",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "kr",
+      "template": "1 $",
+      "rtl": false,
+      "position": 1
+    },
+    "uniqSymbol": null
+  },
+  "SGD": {
+    "name": "Singapore Dollar",
+    "fractionSize": 2,
+    "spacing": 0,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "S$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "SHP": {
+    "name": "Saint Helena Pound",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "£",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "SLL": {
+    "name": "Leone",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "SOS": {
+    "name": "Somali Shilling",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "S",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "S",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "SRD": {
+    "name": "Surinam Dollar",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "SSP": {
+    "name": "South Sudanese Pound",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "STN": {
+    "name": "Dobra",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "SVC": {
+    "name": "El Salvador Colon",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "C",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "SYP": {
+    "name": "Syrian Pound",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "£",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": ".ل.س",
+      "template": "1 $",
+      "rtl": true
+    }
+  },
+  "SZL": {
+    "name": "Lilangeni",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "THB": {
+    "name": "Baht",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "฿",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "฿",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "TJS": {
+    "name": "Somoni",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "TMT": {
+    "name": "Turkmenistan New Manat",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "TND": {
+    "name": "Tunisian Dinar",
+    "fractionSize": 3,
+    "symbol": {
+      "grapheme": ".د.ت",
+      "template": "1 $",
+      "rtl": true
+    },
+    "uniqSymbol": {
+      "grapheme": ".د.ت",
+      "template": "1 $",
+      "rtl": true
+    }
+  },
+  "TOP": {
+    "name": "Pa’anga",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "TRL": {
+    "name": "Turkish Lira",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "₤",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": null
+  },
+  "TRY": {
+    "name": "Turkish Lira",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "₺",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "₺",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "TTD": {
+    "name": "Trinidad and Tobago Dollar",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "TT$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "TT$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "TWD": {
+    "name": "New Taiwan Dollar",
+    "fractionSize": 0,
+    "symbol": {
+      "grapheme": "NT$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "NT$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "TZS": {
+    "name": "Tanzanian Shilling",
+    "fractionSize": 0,
+    "symbol": {
+      "grapheme": "TSh",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "TSh",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "UAH": {
+    "name": "Hryvnia",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "₴",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "₴",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "UGX": {
+    "name": "Uganda Shilling",
+    "fractionSize": 0,
+    "symbol": {
+      "grapheme": "USh",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "USh",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "USD": {
+    "name": "US Dollar",
+    "localized_name": [
+      {
+        "locale": "es",
+        "name": "Dólar Americano"
+      },
+      {
+        "locale": "pt",
+        "name": "Dólar Americano"
+      }
+    ],
+    "fractionSize": 2,
+    "spacing": 0,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "USN": {
+    "name": "US Dollar (Next day)",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "UYI": {
+    "name": "Uruguay Peso en Unidades Indexadas (UI)",
+    "fractionSize": 0,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "UYU": {
+    "name": "Peso Uruguayo",
+    "localized_name": [
+      {
+        "locale": "en",
+        "name": "Uruguayan Peso"
+      },
+      {
+        "locale": "pt",
+        "name": "Peso Uruguaio"
+      }
+    ],
+    "fractionSize": 0,
+    "symbol": {
+      "grapheme": "$U",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "$U",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "UZS": {
+    "name": "Uzbekistan Sum",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "so’m",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "so’m",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "VEF": {
+    "name": "Bolívar",
+    "localized_name": [
+      {
+        "locale": "en",
+        "name": "Venezuelan Bolivar"
+      },
+      {
+        "locale": "pt",
+        "name": "Bolívar Venezuelano"
+      }
+    ],
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "Bs",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "Bs",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "VES": {
+    "name": "Bolivar Soberano",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "Bs",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "Bs",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "VND": {
+    "name": "Dong",
+    "fractionSize": 0,
+    "symbol": {
+      "grapheme": "₫",
+      "template": "1 $",
+      "rtl": false,
+      "position": 1
+    },
+    "uniqSymbol": {
+      "grapheme": "₫",
+      "template": "1 $",
+      "rtl": false
+    }
+  },
+  "VUV": {
+    "name": "Vatu",
+    "fractionSize": 0,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "WST": {
+    "name": "Tala",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "XAF": {
+    "name": "CFA Franc BEAC",
+    "fractionSize": 0,
+    "symbol": {
+      "grapheme": "FCFA",
+      "template": "1 $",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "FCFA",
+      "template": "1 $",
+      "rtl": false
+    }
+  },
+  "XCD": {
+    "name": "East Caribbean Dollar",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "EC$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "XDR": {
+    "name": "SDR (Special Drawing Right)",
+    "fractionSize": 0,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "XOF": {
+    "name": "CFA Franc BCEAO",
+    "fractionSize": 0,
+    "symbol": {
+      "grapheme": "CFA",
+      "template": "1 $",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "CFA",
+      "template": "1 $",
+      "rtl": false
+    }
+  },
+  "XPF": {
+    "name": "CFP Franc",
+    "fractionSize": 0,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "XSU": {
+    "name": "Sucre",
+    "fractionSize": 0,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "XUA": {
+    "name": "ADB Unit of Account",
+    "fractionSize": 0,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "YER": {
+    "name": "Yemeni Rial",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "﷼",
+      "template": "1 $",
+      "rtl": true
+    },
+    "uniqSymbol": {
+      "grapheme": ".ر.ي",
+      "template": "1 $",
+      "rtl": true
+    }
+  },
+  "ZAR": {
+    "name": "Rand",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "R",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "R",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "ZMW": {
+    "name": "Zambian Kwacha",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  },
+  "ZWD": {
+    "name": "Zimbabwe Dollar",
+    "fractionSize": 2,
+    "symbol": {
+      "grapheme": "Z$",
+      "template": "$1",
+      "rtl": false
+    },
+    "uniqSymbol": {
+      "grapheme": "Z$",
+      "template": "$1",
+      "rtl": false
+    }
+  },
+  "ZWL": {
+    "name": "Zimbabwe Dollar",
+    "fractionSize": 2,
+    "symbol": null,
+    "uniqSymbol": null
+  }
 }
\ No newline at end of file
diff --git a/libs/sdk-core/src/fiat.rs b/libs/sdk-common/src/fiat.rs
similarity index 77%
rename from libs/sdk-core/src/fiat.rs
rename to libs/sdk-common/src/fiat.rs
index cc32fd358..5a1c6999d 100644
--- a/libs/sdk-core/src/fiat.rs
+++ b/libs/sdk-common/src/fiat.rs
@@ -1,12 +1,21 @@
 use std::collections::HashMap;
 
+use anyhow::{anyhow, Result};
 use serde::{Deserialize, Serialize};
-use sdk_common::prelude::BreezServer;
-use sdk_common::grpc::RatesRequest;
 use tonic::Request;
 
-use crate::error::{SdkError, SdkResult};
-use crate::models::FiatAPI;
+use crate::grpc::RatesRequest;
+use crate::prelude::BreezServer;
+
+/// Trait covering fiat-related functionality
+#[tonic::async_trait]
+pub trait FiatAPI: Send + Sync {
+    /// List all supported fiat currencies for which there is a known exchange rate.
+    async fn list_fiat_currencies(&self) -> Result<Vec<FiatCurrency>>;
+
+    /// Get the live rates from the server.
+    async fn fetch_fiat_rates(&self) -> Result<Vec<Rate>>;
+}
 
 /// Settings for the symbol representation of a currency
 #[derive(Clone, Serialize, Deserialize, Debug)]
@@ -41,8 +50,10 @@ pub struct CurrencyInfo {
     pub spacing: Option<u32>,
     pub symbol: Option<Symbol>,
     pub uniq_symbol: Option<Symbol>,
-    pub localized_name: Option<Vec<LocalizedName>>,
-    pub locale_overrides: Option<Vec<LocaleOverrides>>,
+    #[serde(default)]
+    pub localized_name: Vec<LocalizedName>,
+    #[serde(default)]
+    pub locale_overrides: Vec<LocaleOverrides>,
 }
 
 /// Wrapper around the [CurrencyInfo] of a fiat currency
@@ -65,7 +76,7 @@ fn convert_to_fiat_currency_with_id(id: String, info: CurrencyInfo) -> FiatCurre
 
 #[tonic::async_trait]
 impl FiatAPI for BreezServer {
-    async fn list_fiat_currencies(&self) -> SdkResult<Vec<FiatCurrency>> {
+    async fn list_fiat_currencies(&self) -> Result<Vec<FiatCurrency>> {
         let known_rates = self.fetch_fiat_rates().await?;
         let known_rates_currencies = known_rates
             .iter()
@@ -84,16 +95,14 @@ impl FiatAPI for BreezServer {
         Ok(fiat_currency_list)
     }
 
-    async fn fetch_fiat_rates(&self) -> SdkResult<Vec<Rate>> {
+    async fn fetch_fiat_rates(&self) -> Result<Vec<Rate>> {
         let mut client = self.get_information_client().await;
 
         let request = Request::new(RatesRequest {});
         let response = client
             .rates(request)
             .await
-            .map_err(|e| SdkError::ServiceConnectivity {
-                err: format!("Fetch rates request failed: {e}"),
-            })?;
+            .map_err(|e| anyhow!("Fetch rates request failed: {e}"))?;
 
         let mut rates = response.into_inner().rates;
         rates.sort_by(|a, b| a.coin.cmp(&b.coin));
diff --git a/libs/sdk-common/src/lib.rs b/libs/sdk-common/src/lib.rs
index 5c52bb3b1..1546d54cd 100644
--- a/libs/sdk-common/src/lib.rs
+++ b/libs/sdk-common/src/lib.rs
@@ -1,5 +1,6 @@
 mod breez_server;
 mod error;
+mod fiat;
 pub mod grpc;
 pub mod input_parser;
 pub mod invoice;
@@ -22,6 +23,7 @@ pub mod prelude {
     pub use crate::*;
     pub use crate::breez_server::*;
     pub use crate::error::*;
+    pub use crate::fiat::*;
     pub use crate::input_parser::*;
     pub use crate::invoice::*;
     pub use crate::lnurl::error::*;
diff --git a/libs/sdk-core/src/binding.rs b/libs/sdk-core/src/binding.rs
index 169c67635..2d0aa2c92 100644
--- a/libs/sdk-core/src/binding.rs
+++ b/libs/sdk-core/src/binding.rs
@@ -20,11 +20,11 @@ use once_cell::sync::{Lazy, OnceCell};
 use sdk_common::invoice;
 pub use sdk_common::prelude::{
     parse, AesSuccessActionDataDecrypted, AesSuccessActionDataResult, BitcoinAddressData,
-    InputType, LNInvoice, LnUrlAuthRequestData, LnUrlCallbackStatus, LnUrlError, LnUrlErrorData,
-    LnUrlPayErrorData, LnUrlPayRequest, LnUrlPayRequestData, LnUrlWithdrawRequest,
-    LnUrlWithdrawRequestData, LnUrlWithdrawResult, LnUrlWithdrawSuccessData,
-    MessageSuccessActionData, Network, RouteHint, RouteHintHop, SuccessActionProcessed,
-    UrlSuccessActionData,
+    CurrencyInfo, FiatCurrency, InputType, LNInvoice, LnUrlAuthRequestData, LnUrlCallbackStatus,
+    LnUrlError, LnUrlErrorData, LnUrlPayErrorData, LnUrlPayRequest, LnUrlPayRequestData,
+    LnUrlWithdrawRequest, LnUrlWithdrawRequestData, LnUrlWithdrawResult, LnUrlWithdrawSuccessData,
+    LocaleOverrides, LocalizedName, MessageSuccessActionData, Network, Rate, RouteHint,
+    RouteHintHop, SuccessActionProcessed, Symbol, UrlSuccessActionData,
 };
 use tokio::sync::Mutex;
 
@@ -34,7 +34,6 @@ use crate::error::{
     ConnectError, ReceiveOnchainError, ReceivePaymentError, SdkError, SendOnchainError,
     SendPaymentError,
 };
-use crate::fiat::{FiatCurrency, Rate};
 use crate::lsp::LspInformation;
 use crate::models::{Config, LogEntry, NodeState, Payment, SwapInfo};
 use crate::{
@@ -241,6 +240,50 @@ pub struct _LnUrlWithdrawSuccessData {
     pub invoice: LNInvoice,
 }
 
+#[frb(mirror(Rate))]
+pub struct _Rate {
+    pub coin: String,
+    pub value: f64,
+}
+
+#[frb(mirror(FiatCurrency))]
+pub struct _FiatCurrency {
+    pub id: String,
+    pub info: CurrencyInfo,
+}
+
+#[frb(mirror(CurrencyInfo))]
+pub struct _CurrencyInfo {
+    pub name: String,
+    pub fraction_size: u32,
+    pub spacing: Option<u32>,
+    pub symbol: Option<Symbol>,
+    pub uniq_symbol: Option<Symbol>,
+    pub localized_name: Vec<LocalizedName>,
+    pub locale_overrides: Vec<LocaleOverrides>,
+}
+
+#[frb(mirror(LocaleOverrides))]
+pub struct _LocaleOverrides {
+    pub locale: String,
+    pub spacing: Option<u32>,
+    pub symbol: Symbol,
+}
+
+#[frb(mirror(LocalizedName))]
+pub struct _LocalizedName {
+    pub locale: String,
+    pub name: String,
+}
+
+#[frb(mirror(Symbol))]
+pub struct _Symbol {
+    pub grapheme: Option<String>,
+    pub template: Option<String>,
+    pub rtl: Option<bool>,
+    pub position: Option<u32>,
+}
+
 /*
 The format Lazy<Mutex<Option<...>>> for the following variables allows them to be instance-global,
 meaning they can be set only once per instance, but calling disconnect() will unset them.
diff --git a/libs/sdk-core/src/breez_services.rs b/libs/sdk-core/src/breez_services.rs
index cff36c7b8..a30727a3f 100644
--- a/libs/sdk-core/src/breez_services.rs
+++ b/libs/sdk-core/src/breez_services.rs
@@ -30,13 +30,12 @@ use crate::error::{
     ConnectError, ReceiveOnchainError, ReceiveOnchainResult, ReceivePaymentError, SdkError,
     SdkResult, SendOnchainError, SendPaymentError,
 };
-use crate::fiat::{FiatCurrency, Rate};
 use crate::greenlight::{GLBackupTransport, Greenlight};
 use crate::lnurl::pay::*;
 use crate::lsp::LspInformation;
 use crate::models::{
     parse_short_channel_id, ChannelState, ClosedChannelPaymentDetails, Config, EnvironmentType,
-    FiatAPI, LspAPI, NodeState, Payment, PaymentDetails, PaymentType, ReverseSwapPairInfo,
+    LspAPI, NodeState, Payment, PaymentDetails, PaymentType, ReverseSwapPairInfo,
     ReverseSwapServiceAPI, SwapInfo, SwapperAPI, INVOICE_PAYMENT_FEE_EXPIRY_SECONDS,
 };
 use crate::moonpay::MoonPayApi;
@@ -648,13 +647,16 @@ impl BreezServices {
 
     /// Fetch live rates of fiat currencies, sorted by name
     pub async fn fetch_fiat_rates(&self) -> SdkResult<Vec<Rate>> {
-        self.fiat_api.fetch_fiat_rates().await
+        self.fiat_api.fetch_fiat_rates().await.map_err(Into::into)
     }
 
     /// List all supported fiat currencies for which there is a known exchange rate.
     /// List is sorted by the canonical name of the currency
     pub async fn list_fiat_currencies(&self) -> SdkResult<Vec<FiatCurrency>> {
-        self.fiat_api.list_fiat_currencies().await
+        self.fiat_api
+            .list_fiat_currencies()
+            .await
+            .map_err(Into::into)
     }
 
     /// List available LSPs that can be selected by the user
@@ -2618,9 +2620,9 @@ pub(crate) mod tests {
     use anyhow::{anyhow, Result};
     use regex::Regex;
     use reqwest::Url;
+    use sdk_common::prelude::Rate;
 
     use crate::breez_services::{BreezServices, BreezServicesBuilder};
-    use crate::fiat::Rate;
     use crate::models::{LnPaymentDetails, NodeState, Payment, PaymentDetails, PaymentTypeFilter};
     use crate::node_api::NodeAPI;
     use crate::test_utils::*;
diff --git a/libs/sdk-core/src/bridge_generated.rs b/libs/sdk-core/src/bridge_generated.rs
index caf7bbd56..7da92a893 100644
--- a/libs/sdk-core/src/bridge_generated.rs
+++ b/libs/sdk-core/src/bridge_generated.rs
@@ -29,12 +29,6 @@ use crate::breez_services::PaymentFailedData;
 use crate::breez_services::SignMessageRequest;
 use crate::breez_services::SignMessageResponse;
 use crate::chain::RecommendedFees;
-use crate::fiat::CurrencyInfo;
-use crate::fiat::FiatCurrency;
-use crate::fiat::LocaleOverrides;
-use crate::fiat::LocalizedName;
-use crate::fiat::Rate;
-use crate::fiat::Symbol;
 use crate::lnurl::pay::LnUrlPayResult;
 use crate::lnurl::pay::LnUrlPaySuccessData;
 use crate::lsp::LspInformation;
@@ -593,7 +587,7 @@ fn wire_report_issue_impl(port_: MessagePort, req: impl Wire2Api<ReportIssueRequ
     )
 }
 fn wire_fetch_fiat_rates_impl(port_: MessagePort) {
-    FLUTTER_RUST_BRIDGE_HANDLER.wrap::<_, _, _, Vec<Rate>, _>(
+    FLUTTER_RUST_BRIDGE_HANDLER.wrap::<_, _, _, Vec<mirror_Rate>, _>(
         WrapInfo {
             debug_name: "fetch_fiat_rates",
             port: Some(port_),
@@ -603,7 +597,7 @@ fn wire_fetch_fiat_rates_impl(port_: MessagePort) {
     )
 }
 fn wire_list_fiat_currencies_impl(port_: MessagePort) {
-    FLUTTER_RUST_BRIDGE_HANDLER.wrap::<_, _, _, Vec<FiatCurrency>, _>(
+    FLUTTER_RUST_BRIDGE_HANDLER.wrap::<_, _, _, Vec<mirror_FiatCurrency>, _>(
         WrapInfo {
             debug_name: "list_fiat_currencies",
             port: Some(port_),
@@ -903,6 +897,12 @@ pub struct mirror_AesSuccessActionDataResult(AesSuccessActionDataResult);
 #[derive(Clone)]
 pub struct mirror_BitcoinAddressData(BitcoinAddressData);
 
+#[derive(Clone)]
+pub struct mirror_CurrencyInfo(CurrencyInfo);
+
+#[derive(Clone)]
+pub struct mirror_FiatCurrency(FiatCurrency);
+
 #[derive(Clone)]
 pub struct mirror_InputType(InputType);
 
@@ -933,12 +933,21 @@ pub struct mirror_LnUrlWithdrawResult(LnUrlWithdrawResult);
 #[derive(Clone)]
 pub struct mirror_LnUrlWithdrawSuccessData(LnUrlWithdrawSuccessData);
 
+#[derive(Clone)]
+pub struct mirror_LocaleOverrides(LocaleOverrides);
+
+#[derive(Clone)]
+pub struct mirror_LocalizedName(LocalizedName);
+
 #[derive(Clone)]
 pub struct mirror_MessageSuccessActionData(MessageSuccessActionData);
 
 #[derive(Clone)]
 pub struct mirror_Network(Network);
 
+#[derive(Clone)]
+pub struct mirror_Rate(Rate);
+
 #[derive(Clone)]
 pub struct mirror_RouteHint(RouteHint);
 
@@ -948,6 +957,9 @@ pub struct mirror_RouteHintHop(RouteHintHop);
 #[derive(Clone)]
 pub struct mirror_SuccessActionProcessed(SuccessActionProcessed);
 
+#[derive(Clone)]
+pub struct mirror_Symbol(Symbol);
+
 #[derive(Clone)]
 pub struct mirror_UrlSuccessActionData(UrlSuccessActionData);
 
@@ -975,6 +987,21 @@ const _: fn() = || {
         let _: Option<String> = BitcoinAddressData.label;
         let _: Option<String> = BitcoinAddressData.message;
     }
+    {
+        let CurrencyInfo = None::<CurrencyInfo>.unwrap();
+        let _: String = CurrencyInfo.name;
+        let _: u32 = CurrencyInfo.fraction_size;
+        let _: Option<u32> = CurrencyInfo.spacing;
+        let _: Option<Symbol> = CurrencyInfo.symbol;
+        let _: Option<Symbol> = CurrencyInfo.uniq_symbol;
+        let _: Vec<LocalizedName> = CurrencyInfo.localized_name;
+        let _: Vec<LocaleOverrides> = CurrencyInfo.locale_overrides;
+    }
+    {
+        let FiatCurrency = None::<FiatCurrency>.unwrap();
+        let _: String = FiatCurrency.id;
+        let _: CurrencyInfo = FiatCurrency.info;
+    }
     match None::<InputType>.unwrap() {
         InputType::BitcoinAddress { address } => {
             let _: BitcoinAddressData = address;
@@ -1070,6 +1097,17 @@ const _: fn() = || {
         let LnUrlWithdrawSuccessData = None::<LnUrlWithdrawSuccessData>.unwrap();
         let _: LNInvoice = LnUrlWithdrawSuccessData.invoice;
     }
+    {
+        let LocaleOverrides = None::<LocaleOverrides>.unwrap();
+        let _: String = LocaleOverrides.locale;
+        let _: Option<u32> = LocaleOverrides.spacing;
+        let _: Symbol = LocaleOverrides.symbol;
+    }
+    {
+        let LocalizedName = None::<LocalizedName>.unwrap();
+        let _: String = LocalizedName.locale;
+        let _: String = LocalizedName.name;
+    }
     {
         let MessageSuccessActionData = None::<MessageSuccessActionData>.unwrap();
         let _: String = MessageSuccessActionData.message;
@@ -1080,6 +1118,11 @@ const _: fn() = || {
         Network::Signet => {}
         Network::Regtest => {}
     }
+    {
+        let Rate = None::<Rate>.unwrap();
+        let _: String = Rate.coin;
+        let _: f64 = Rate.value;
+    }
     {
         let RouteHint = None::<RouteHint>.unwrap();
         let _: Vec<RouteHintHop> = RouteHint.hops;
@@ -1105,6 +1148,13 @@ const _: fn() = || {
             let _: UrlSuccessActionData = data;
         }
     }
+    {
+        let Symbol = None::<Symbol>.unwrap();
+        let _: Option<String> = Symbol.grapheme;
+        let _: Option<String> = Symbol.template;
+        let _: Option<bool> = Symbol.rtl;
+        let _: Option<u32> = Symbol.position;
+    }
     {
         let UrlSuccessActionData = None::<UrlSuccessActionData>.unwrap();
         let _: String = UrlSuccessActionData.description;
@@ -1434,40 +1484,40 @@ impl rust2dart::IntoIntoDart<Config> for Config {
     }
 }
 
-impl support::IntoDart for CurrencyInfo {
+impl support::IntoDart for mirror_CurrencyInfo {
     fn into_dart(self) -> support::DartAbi {
         vec![
-            self.name.into_into_dart().into_dart(),
-            self.fraction_size.into_into_dart().into_dart(),
-            self.spacing.into_dart(),
-            self.symbol.into_dart(),
-            self.uniq_symbol.into_dart(),
-            self.localized_name.into_dart(),
-            self.locale_overrides.into_dart(),
+            self.0.name.into_into_dart().into_dart(),
+            self.0.fraction_size.into_into_dart().into_dart(),
+            self.0.spacing.into_dart(),
+            self.0.symbol.map(|v| mirror_Symbol(v)).into_dart(),
+            self.0.uniq_symbol.map(|v| mirror_Symbol(v)).into_dart(),
+            self.0.localized_name.into_into_dart().into_dart(),
+            self.0.locale_overrides.into_into_dart().into_dart(),
         ]
         .into_dart()
     }
 }
-impl support::IntoDartExceptPrimitive for CurrencyInfo {}
-impl rust2dart::IntoIntoDart<CurrencyInfo> for CurrencyInfo {
-    fn into_into_dart(self) -> Self {
-        self
+impl support::IntoDartExceptPrimitive for mirror_CurrencyInfo {}
+impl rust2dart::IntoIntoDart<mirror_CurrencyInfo> for CurrencyInfo {
+    fn into_into_dart(self) -> mirror_CurrencyInfo {
+        mirror_CurrencyInfo(self)
     }
 }
 
-impl support::IntoDart for FiatCurrency {
+impl support::IntoDart for mirror_FiatCurrency {
     fn into_dart(self) -> support::DartAbi {
         vec![
-            self.id.into_into_dart().into_dart(),
-            self.info.into_into_dart().into_dart(),
+            self.0.id.into_into_dart().into_dart(),
+            self.0.info.into_into_dart().into_dart(),
         ]
         .into_dart()
     }
 }
-impl support::IntoDartExceptPrimitive for FiatCurrency {}
-impl rust2dart::IntoIntoDart<FiatCurrency> for FiatCurrency {
-    fn into_into_dart(self) -> Self {
-        self
+impl support::IntoDartExceptPrimitive for mirror_FiatCurrency {}
+impl rust2dart::IntoIntoDart<mirror_FiatCurrency> for FiatCurrency {
+    fn into_into_dart(self) -> mirror_FiatCurrency {
+        mirror_FiatCurrency(self)
     }
 }
 
@@ -1817,36 +1867,36 @@ impl rust2dart::IntoIntoDart<mirror_LnUrlWithdrawSuccessData> for LnUrlWithdrawS
     }
 }
 
-impl support::IntoDart for LocaleOverrides {
+impl support::IntoDart for mirror_LocaleOverrides {
     fn into_dart(self) -> support::DartAbi {
         vec![
-            self.locale.into_into_dart().into_dart(),
-            self.spacing.into_dart(),
-            self.symbol.into_into_dart().into_dart(),
+            self.0.locale.into_into_dart().into_dart(),
+            self.0.spacing.into_dart(),
+            self.0.symbol.into_into_dart().into_dart(),
         ]
         .into_dart()
     }
 }
-impl support::IntoDartExceptPrimitive for LocaleOverrides {}
-impl rust2dart::IntoIntoDart<LocaleOverrides> for LocaleOverrides {
-    fn into_into_dart(self) -> Self {
-        self
+impl support::IntoDartExceptPrimitive for mirror_LocaleOverrides {}
+impl rust2dart::IntoIntoDart<mirror_LocaleOverrides> for LocaleOverrides {
+    fn into_into_dart(self) -> mirror_LocaleOverrides {
+        mirror_LocaleOverrides(self)
     }
 }
 
-impl support::IntoDart for LocalizedName {
+impl support::IntoDart for mirror_LocalizedName {
     fn into_dart(self) -> support::DartAbi {
         vec![
-            self.locale.into_into_dart().into_dart(),
-            self.name.into_into_dart().into_dart(),
+            self.0.locale.into_into_dart().into_dart(),
+            self.0.name.into_into_dart().into_dart(),
         ]
         .into_dart()
     }
 }
-impl support::IntoDartExceptPrimitive for LocalizedName {}
-impl rust2dart::IntoIntoDart<LocalizedName> for LocalizedName {
-    fn into_into_dart(self) -> Self {
-        self
+impl support::IntoDartExceptPrimitive for mirror_LocalizedName {}
+impl rust2dart::IntoIntoDart<mirror_LocalizedName> for LocalizedName {
+    fn into_into_dart(self) -> mirror_LocalizedName {
+        mirror_LocalizedName(self)
     }
 }
 
@@ -2218,19 +2268,19 @@ impl rust2dart::IntoIntoDart<PrepareRefundResponse> for PrepareRefundResponse {
     }
 }
 
-impl support::IntoDart for Rate {
+impl support::IntoDart for mirror_Rate {
     fn into_dart(self) -> support::DartAbi {
         vec![
-            self.coin.into_into_dart().into_dart(),
-            self.value.into_into_dart().into_dart(),
+            self.0.coin.into_into_dart().into_dart(),
+            self.0.value.into_into_dart().into_dart(),
         ]
         .into_dart()
     }
 }
-impl support::IntoDartExceptPrimitive for Rate {}
-impl rust2dart::IntoIntoDart<Rate> for Rate {
-    fn into_into_dart(self) -> Self {
-        self
+impl support::IntoDartExceptPrimitive for mirror_Rate {}
+impl rust2dart::IntoIntoDart<mirror_Rate> for Rate {
+    fn into_into_dart(self) -> mirror_Rate {
+        mirror_Rate(self)
     }
 }
 
@@ -2531,21 +2581,21 @@ impl rust2dart::IntoIntoDart<SwapStatus> for SwapStatus {
     }
 }
 
-impl support::IntoDart for Symbol {
+impl support::IntoDart for mirror_Symbol {
     fn into_dart(self) -> support::DartAbi {
         vec![
-            self.grapheme.into_dart(),
-            self.template.into_dart(),
-            self.rtl.into_dart(),
-            self.position.into_dart(),
+            self.0.grapheme.into_dart(),
+            self.0.template.into_dart(),
+            self.0.rtl.into_dart(),
+            self.0.position.into_dart(),
         ]
         .into_dart()
     }
 }
-impl support::IntoDartExceptPrimitive for Symbol {}
-impl rust2dart::IntoIntoDart<Symbol> for Symbol {
-    fn into_into_dart(self) -> Self {
-        self
+impl support::IntoDartExceptPrimitive for mirror_Symbol {}
+impl rust2dart::IntoIntoDart<mirror_Symbol> for Symbol {
+    fn into_into_dart(self) -> mirror_Symbol {
+        mirror_Symbol(self)
     }
 }
 
diff --git a/libs/sdk-core/src/lib.rs b/libs/sdk-core/src/lib.rs
index cf96ae80a..989768fc7 100644
--- a/libs/sdk-core/src/lib.rs
+++ b/libs/sdk-core/src/lib.rs
@@ -171,7 +171,6 @@ pub mod error;
 mod node_api; // flutter_rust_bridge_codegen: has to be defined before greenlight; greenlight::node_api
 mod greenlight;
 #[rustfmt::skip]
-mod fiat; // flutter_rust_bridge_codegen: has to be defined after grpc; grpc::Rate
 pub mod lnurl;
 mod lsp;
 mod lsps0;
@@ -194,7 +193,6 @@ pub use breez_services::{
     SignMessageRequest, SignMessageResponse,
 };
 pub use chain::RecommendedFees;
-pub use fiat::{CurrencyInfo, FiatCurrency, LocaleOverrides, LocalizedName, Rate, Symbol};
 pub use lsp::LspInformation;
 pub use models::*;
 pub use sdk_common::prelude::*;
diff --git a/libs/sdk-core/src/models.rs b/libs/sdk-core/src/models.rs
index 348693d3b..70f5d3e2c 100644
--- a/libs/sdk-core/src/models.rs
+++ b/libs/sdk-core/src/models.rs
@@ -21,7 +21,6 @@ use crate::bitcoin::hashes::{sha256, Hash};
 use crate::bitcoin::secp256k1::{PublicKey, Secp256k1, SecretKey};
 use crate::bitcoin::{Address, Script};
 use crate::error::SdkResult;
-use crate::fiat::{FiatCurrency, Rate};
 use crate::lsp::LspInformation;
 use crate::persist::swap::SwapChainInfo;
 use crate::swap_in::error::{SwapError, SwapResult};
@@ -83,16 +82,6 @@ pub trait LspAPI: Send + Sync {
     ) -> SdkResult<grpc::RegisterPaymentReply>;
 }
 
-/// Trait covering fiat-related functionality
-#[tonic::async_trait]
-pub trait FiatAPI: Send + Sync {
-    /// List all supported fiat currencies for which there is a known exchange rate.
-    async fn list_fiat_currencies(&self) -> SdkResult<Vec<FiatCurrency>>;
-
-    /// Get the live rates from the server.
-    async fn fetch_fiat_rates(&self) -> SdkResult<Vec<Rate>>;
-}
-
 /// Summary of an ongoing swap
 pub struct Swap {
     pub bitcoin_address: String,
diff --git a/libs/sdk-flutter/lib/bridge_generated.dart b/libs/sdk-flutter/lib/bridge_generated.dart
index 984d2f5e9..625db9251 100644
--- a/libs/sdk-flutter/lib/bridge_generated.dart
+++ b/libs/sdk-flutter/lib/bridge_generated.dart
@@ -569,15 +569,14 @@ class ConnectRequest {
   });
 }
 
-/// Details about a supported currency in the fiat rate feed
 class CurrencyInfo {
   final String name;
   final int fractionSize;
   final int? spacing;
   final Symbol? symbol;
   final Symbol? uniqSymbol;
-  final List<LocalizedName>? localizedName;
-  final List<LocaleOverrides>? localeOverrides;
+  final List<LocalizedName> localizedName;
+  final List<LocaleOverrides> localeOverrides;
 
   const CurrencyInfo({
     required this.name,
@@ -585,8 +584,8 @@ class CurrencyInfo {
     this.spacing,
     this.symbol,
     this.uniqSymbol,
-    this.localizedName,
-    this.localeOverrides,
+    required this.localizedName,
+    required this.localeOverrides,
   });
 }
 
@@ -596,7 +595,6 @@ enum EnvironmentType {
   Staging,
 }
 
-/// Wrapper around the [CurrencyInfo] of a fiat currency
 class FiatCurrency {
   final String id;
   final CurrencyInfo info;
@@ -948,7 +946,6 @@ class LnUrlWithdrawSuccessData {
   });
 }
 
-/// Locale-specific settings for the representation of a currency
 class LocaleOverrides {
   final String locale;
   final int? spacing;
@@ -961,7 +958,6 @@ class LocaleOverrides {
   });
 }
 
-/// Localized name of a currency
 class LocalizedName {
   final String locale;
   final String name;
@@ -1372,7 +1368,6 @@ class PrepareRefundResponse {
   });
 }
 
-/// Denominator in an exchange rate
 class Rate {
   final String coin;
   final double value;
@@ -1913,7 +1908,6 @@ enum SwapStatus {
   Completed,
 }
 
-/// Settings for the symbol representation of a currency
 class Symbol {
   final String? grapheme;
   final String? template;
@@ -3300,8 +3294,8 @@ class BreezSdkCoreImpl implements BreezSdkCore {
       spacing: _wire2api_opt_box_autoadd_u32(arr[2]),
       symbol: _wire2api_opt_box_autoadd_symbol(arr[3]),
       uniqSymbol: _wire2api_opt_box_autoadd_symbol(arr[4]),
-      localizedName: _wire2api_opt_list_localized_name(arr[5]),
-      localeOverrides: _wire2api_opt_list_locale_overrides(arr[6]),
+      localizedName: _wire2api_list_localized_name(arr[5]),
+      localeOverrides: _wire2api_list_locale_overrides(arr[6]),
     );
   }
 
@@ -3821,14 +3815,6 @@ class BreezSdkCoreImpl implements BreezSdkCore {
     return raw == null ? null : _wire2api_box_autoadd_u64(raw);
   }
 
-  List<LocaleOverrides>? _wire2api_opt_list_locale_overrides(dynamic raw) {
-    return raw == null ? null : _wire2api_list_locale_overrides(raw);
-  }
-
-  List<LocalizedName>? _wire2api_opt_list_localized_name(dynamic raw) {
-    return raw == null ? null : _wire2api_list_localized_name(raw);
-  }
-
   PayOnchainResponse _wire2api_pay_onchain_response(dynamic raw) {
     final arr = raw as List<dynamic>;
     if (arr.length != 1) throw Exception('unexpected arr length: expect 1 but see ${arr.length}');
diff --git a/libs/sdk-react-native/android/src/main/java/com/breezsdk/BreezSDKMapper.kt b/libs/sdk-react-native/android/src/main/java/com/breezsdk/BreezSDKMapper.kt
index 861eace5c..9b11251a7 100644
--- a/libs/sdk-react-native/android/src/main/java/com/breezsdk/BreezSDKMapper.kt
+++ b/libs/sdk-react-native/android/src/main/java/com/breezsdk/BreezSDKMapper.kt
@@ -520,6 +520,8 @@ fun asCurrencyInfo(currencyInfo: ReadableMap): CurrencyInfo? {
             arrayOf(
                 "name",
                 "fractionSize",
+                "localizedName",
+                "localeOverrides",
             ),
         )
     ) {
@@ -530,22 +532,8 @@ fun asCurrencyInfo(currencyInfo: ReadableMap): CurrencyInfo? {
     val spacing = if (hasNonNullKey(currencyInfo, "spacing")) currencyInfo.getInt("spacing").toUInt() else null
     val symbol = if (hasNonNullKey(currencyInfo, "symbol")) currencyInfo.getMap("symbol")?.let { asSymbol(it) } else null
     val uniqSymbol = if (hasNonNullKey(currencyInfo, "uniqSymbol")) currencyInfo.getMap("uniqSymbol")?.let { asSymbol(it) } else null
-    val localizedName =
-        if (hasNonNullKey(currencyInfo, "localizedName")) {
-            currencyInfo.getArray("localizedName")?.let {
-                asLocalizedNameList(it)
-            }
-        } else {
-            null
-        }
-    val localeOverrides =
-        if (hasNonNullKey(currencyInfo, "localeOverrides")) {
-            currencyInfo.getArray("localeOverrides")?.let {
-                asLocaleOverridesList(it)
-            }
-        } else {
-            null
-        }
+    val localizedName = currencyInfo.getArray("localizedName")?.let { asLocalizedNameList(it) }!!
+    val localeOverrides = currencyInfo.getArray("localeOverrides")?.let { asLocaleOverridesList(it) }!!
     return CurrencyInfo(
         name,
         fractionSize,
@@ -564,8 +552,8 @@ fun readableMapOf(currencyInfo: CurrencyInfo): ReadableMap =
         "spacing" to currencyInfo.spacing,
         "symbol" to currencyInfo.symbol?.let { readableMapOf(it) },
         "uniqSymbol" to currencyInfo.uniqSymbol?.let { readableMapOf(it) },
-        "localizedName" to currencyInfo.localizedName?.let { readableArrayOf(it) },
-        "localeOverrides" to currencyInfo.localeOverrides?.let { readableArrayOf(it) },
+        "localizedName" to readableArrayOf(currencyInfo.localizedName),
+        "localeOverrides" to readableArrayOf(currencyInfo.localeOverrides),
     )
 
 fun asCurrencyInfoList(arr: ReadableArray): List<CurrencyInfo> {
diff --git a/libs/sdk-react-native/ios/BreezSDKMapper.swift b/libs/sdk-react-native/ios/BreezSDKMapper.swift
index fee289306..ab3f5b49b 100644
--- a/libs/sdk-react-native/ios/BreezSDKMapper.swift
+++ b/libs/sdk-react-native/ios/BreezSDKMapper.swift
@@ -601,15 +601,15 @@ enum BreezSDKMapper {
             uniqSymbol = try asSymbol(symbol: uniqSymbolTmp)
         }
 
-        var localizedName: [LocalizedName]?
-        if let localizedNameTmp = currencyInfo["localizedName"] as? [[String: Any?]] {
-            localizedName = try asLocalizedNameList(arr: localizedNameTmp)
+        guard let localizedNameTmp = currencyInfo["localizedName"] as? [[String: Any?]] else {
+            throw SdkError.Generic(message: errMissingMandatoryField(fieldName: "localizedName", typeName: "CurrencyInfo"))
         }
+        let localizedName = try asLocalizedNameList(arr: localizedNameTmp)
 
-        var localeOverrides: [LocaleOverrides]?
-        if let localeOverridesTmp = currencyInfo["localeOverrides"] as? [[String: Any?]] {
-            localeOverrides = try asLocaleOverridesList(arr: localeOverridesTmp)
+        guard let localeOverridesTmp = currencyInfo["localeOverrides"] as? [[String: Any?]] else {
+            throw SdkError.Generic(message: errMissingMandatoryField(fieldName: "localeOverrides", typeName: "CurrencyInfo"))
         }
+        let localeOverrides = try asLocaleOverridesList(arr: localeOverridesTmp)
 
         return CurrencyInfo(
             name: name,
@@ -629,8 +629,8 @@ enum BreezSDKMapper {
             "spacing": currencyInfo.spacing == nil ? nil : currencyInfo.spacing,
             "symbol": currencyInfo.symbol == nil ? nil : dictionaryOf(symbol: currencyInfo.symbol!),
             "uniqSymbol": currencyInfo.uniqSymbol == nil ? nil : dictionaryOf(symbol: currencyInfo.uniqSymbol!),
-            "localizedName": currencyInfo.localizedName == nil ? nil : arrayOf(localizedNameList: currencyInfo.localizedName!),
-            "localeOverrides": currencyInfo.localeOverrides == nil ? nil : arrayOf(localeOverridesList: currencyInfo.localeOverrides!),
+            "localizedName": arrayOf(localizedNameList: currencyInfo.localizedName),
+            "localeOverrides": arrayOf(localeOverridesList: currencyInfo.localeOverrides),
         ]
     }
 
diff --git a/libs/sdk-react-native/src/index.ts b/libs/sdk-react-native/src/index.ts
index e69ecd4cd..38b198898 100644
--- a/libs/sdk-react-native/src/index.ts
+++ b/libs/sdk-react-native/src/index.ts
@@ -98,8 +98,8 @@ export interface CurrencyInfo {
     spacing?: number
     symbol?: SymbolType
     uniqSymbol?: SymbolType
-    localizedName?: LocalizedName[]
-    localeOverrides?: LocaleOverrides[]
+    localizedName: LocalizedName[]
+    localeOverrides: LocaleOverrides[]
 }
 
 export interface FiatCurrency {
diff --git a/tools/sdk-cli/Cargo.lock b/tools/sdk-cli/Cargo.lock
index 617ed4c49..00a198ad7 100644
--- a/tools/sdk-cli/Cargo.lock
+++ b/tools/sdk-cli/Cargo.lock
@@ -2683,7 +2683,6 @@ dependencies = [
  "querystring",
  "regex",
  "reqwest",
- "rusqlite",
  "serde",
  "serde_json",
  "strum_macros",


Test patch:
diff --git a/libs/sdk-core/src/test_utils.rs b/libs/sdk-core/src/test_utils.rs
index 68d47eb90..ad1fc9068 100644
--- a/libs/sdk-core/src/test_utils.rs
+++ b/libs/sdk-core/src/test_utils.rs
@@ -13,6 +13,7 @@ use rand::distributions::{Alphanumeric, DistString, Standard};
 use rand::rngs::OsRng;
 use rand::{random, Rng};
 use sdk_common::grpc;
+use sdk_common::prelude::{FiatAPI, FiatCurrency, Rate};
 use tokio::sync::{mpsc, watch, Mutex};
 use tokio::time::sleep;
 use tokio_stream::Stream;
@@ -29,14 +30,12 @@ use crate::bitcoin::Network;
 use crate::breez_services::{OpenChannelParams, Receiver};
 use crate::chain::{ChainService, OnchainTx, Outspend, RecommendedFees, TxStatus};
 use crate::error::{ReceivePaymentError, SdkError, SdkResult};
-use crate::fiat::{FiatCurrency, Rate};
 use crate::invoice::{InvoiceError, InvoiceResult};
 use crate::lightning::ln::PaymentSecret;
 use crate::lightning_invoice::{Currency, InvoiceBuilder, RawBolt11Invoice};
 use crate::lsp::LspInformation;
 use crate::models::{
-    FiatAPI, LspAPI, NodeState, Payment, ReverseSwapServiceAPI, Swap, SwapperAPI, SyncResponse,
-    TlvEntry,
+    LspAPI, NodeState, Payment, ReverseSwapServiceAPI, Swap, SwapperAPI, SyncResponse, TlvEntry,
 };
 use crate::moonpay::MoonPayApi;
 use crate::node_api::{CreateInvoiceRequest, FetchBolt11Result, NodeAPI, NodeError, NodeResult};
@@ -690,11 +689,11 @@ impl LspAPI for MockBreezServer {
 
 #[tonic::async_trait]
 impl FiatAPI for MockBreezServer {
-    async fn list_fiat_currencies(&self) -> SdkResult<Vec<FiatCurrency>> {
+    async fn list_fiat_currencies(&self) -> Result<Vec<FiatCurrency>> {
         Ok(vec![])
     }
 
-    async fn fetch_fiat_rates(&self) -> SdkResult<Vec<Rate>> {
+    async fn fetch_fiat_rates(&self) -> Result<Vec<Rate>> {
         Ok(vec![Rate {
             coin: "USD".to_string(),
             value: 20_000.00,