@lightsparkdev/core 1.4.7 → 1.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @lightsparkdev/core
2
2
 
3
+ ## 1.4.8
4
+
5
+ ### Patch Changes
6
+
7
+ - 9a7776b: Adding currency support for XOF, XAF, MWK, RWF
8
+
3
9
  ## 1.4.7
4
10
 
5
11
  ### Patch Changes
@@ -428,6 +428,10 @@ var CurrencyUnit = {
428
428
  TZS: "TZS",
429
429
  UGX: "UGX",
430
430
  BWP: "BWP",
431
+ XOF: "XOF",
432
+ XAF: "XAF",
433
+ MWK: "MWK",
434
+ RWF: "RWF",
431
435
  USDT: "USDT",
432
436
  USDC: "USDC",
433
437
  Bitcoin: "BITCOIN",
@@ -474,6 +478,10 @@ var standardUnitConversionObj = {
474
478
  [CurrencyUnit.TZS]: (v) => v,
475
479
  [CurrencyUnit.UGX]: (v) => v,
476
480
  [CurrencyUnit.BWP]: (v) => v,
481
+ [CurrencyUnit.XOF]: (v) => v,
482
+ [CurrencyUnit.XAF]: (v) => v,
483
+ [CurrencyUnit.MWK]: (v) => v,
484
+ [CurrencyUnit.RWF]: (v) => v,
477
485
  [CurrencyUnit.USDT]: (v) => v,
478
486
  [CurrencyUnit.USDC]: (v) => v
479
487
  };
@@ -512,6 +520,10 @@ var CONVERSION_MAP = {
512
520
  [CurrencyUnit.TZS]: toBitcoinConversion,
513
521
  [CurrencyUnit.UGX]: toBitcoinConversion,
514
522
  [CurrencyUnit.BWP]: toBitcoinConversion,
523
+ [CurrencyUnit.XOF]: toBitcoinConversion,
524
+ [CurrencyUnit.XAF]: toBitcoinConversion,
525
+ [CurrencyUnit.MWK]: toBitcoinConversion,
526
+ [CurrencyUnit.RWF]: toBitcoinConversion,
515
527
  [CurrencyUnit.USDT]: toBitcoinConversion,
516
528
  [CurrencyUnit.USDC]: toBitcoinConversion
517
529
  },
@@ -543,6 +555,10 @@ var CONVERSION_MAP = {
543
555
  [CurrencyUnit.TZS]: toMicrobitcoinConversion,
544
556
  [CurrencyUnit.UGX]: toMicrobitcoinConversion,
545
557
  [CurrencyUnit.BWP]: toMicrobitcoinConversion,
558
+ [CurrencyUnit.XOF]: toMicrobitcoinConversion,
559
+ [CurrencyUnit.XAF]: toMicrobitcoinConversion,
560
+ [CurrencyUnit.MWK]: toMicrobitcoinConversion,
561
+ [CurrencyUnit.RWF]: toMicrobitcoinConversion,
546
562
  [CurrencyUnit.USDT]: toMicrobitcoinConversion,
547
563
  [CurrencyUnit.USDC]: toMicrobitcoinConversion
548
564
  },
@@ -574,6 +590,10 @@ var CONVERSION_MAP = {
574
590
  [CurrencyUnit.TZS]: toMillibitcoinConversion,
575
591
  [CurrencyUnit.UGX]: toMillibitcoinConversion,
576
592
  [CurrencyUnit.BWP]: toMillibitcoinConversion,
593
+ [CurrencyUnit.XOF]: toMillibitcoinConversion,
594
+ [CurrencyUnit.XAF]: toMillibitcoinConversion,
595
+ [CurrencyUnit.MWK]: toMillibitcoinConversion,
596
+ [CurrencyUnit.RWF]: toMillibitcoinConversion,
577
597
  [CurrencyUnit.USDT]: toMillibitcoinConversion,
578
598
  [CurrencyUnit.USDC]: toMillibitcoinConversion
579
599
  },
@@ -605,6 +625,10 @@ var CONVERSION_MAP = {
605
625
  [CurrencyUnit.TZS]: toMillisatoshiConversion,
606
626
  [CurrencyUnit.UGX]: toMillisatoshiConversion,
607
627
  [CurrencyUnit.BWP]: toMillisatoshiConversion,
628
+ [CurrencyUnit.XOF]: toMillisatoshiConversion,
629
+ [CurrencyUnit.XAF]: toMillisatoshiConversion,
630
+ [CurrencyUnit.MWK]: toMillisatoshiConversion,
631
+ [CurrencyUnit.RWF]: toMillisatoshiConversion,
608
632
  [CurrencyUnit.USDT]: toMillisatoshiConversion,
609
633
  [CurrencyUnit.USDC]: toMillisatoshiConversion
610
634
  },
@@ -636,6 +660,10 @@ var CONVERSION_MAP = {
636
660
  [CurrencyUnit.TZS]: toNanobitcoinConversion,
637
661
  [CurrencyUnit.UGX]: toNanobitcoinConversion,
638
662
  [CurrencyUnit.BWP]: toNanobitcoinConversion,
663
+ [CurrencyUnit.XOF]: toNanobitcoinConversion,
664
+ [CurrencyUnit.XAF]: toNanobitcoinConversion,
665
+ [CurrencyUnit.MWK]: toNanobitcoinConversion,
666
+ [CurrencyUnit.RWF]: toNanobitcoinConversion,
639
667
  [CurrencyUnit.USDT]: toNanobitcoinConversion,
640
668
  [CurrencyUnit.USDC]: toNanobitcoinConversion
641
669
  },
@@ -667,6 +695,10 @@ var CONVERSION_MAP = {
667
695
  [CurrencyUnit.TZS]: toSatoshiConversion,
668
696
  [CurrencyUnit.UGX]: toSatoshiConversion,
669
697
  [CurrencyUnit.BWP]: toSatoshiConversion,
698
+ [CurrencyUnit.XOF]: toSatoshiConversion,
699
+ [CurrencyUnit.XAF]: toSatoshiConversion,
700
+ [CurrencyUnit.MWK]: toSatoshiConversion,
701
+ [CurrencyUnit.RWF]: toSatoshiConversion,
670
702
  [CurrencyUnit.USDT]: toSatoshiConversion,
671
703
  [CurrencyUnit.USDC]: toSatoshiConversion
672
704
  },
@@ -691,6 +723,10 @@ var CONVERSION_MAP = {
691
723
  [CurrencyUnit.TZS]: standardUnitConversionObj,
692
724
  [CurrencyUnit.UGX]: standardUnitConversionObj,
693
725
  [CurrencyUnit.BWP]: standardUnitConversionObj,
726
+ [CurrencyUnit.XOF]: standardUnitConversionObj,
727
+ [CurrencyUnit.XAF]: standardUnitConversionObj,
728
+ [CurrencyUnit.MWK]: standardUnitConversionObj,
729
+ [CurrencyUnit.RWF]: standardUnitConversionObj,
694
730
  [CurrencyUnit.USDT]: standardUnitConversionObj,
695
731
  [CurrencyUnit.USDC]: standardUnitConversionObj
696
732
  };
@@ -793,6 +829,10 @@ function convertCurrencyAmountValues(fromUnit, amount, unitsPerBtc = 1, conversi
793
829
  tzs: CurrencyUnit.TZS,
794
830
  ugx: CurrencyUnit.UGX,
795
831
  bwp: CurrencyUnit.BWP,
832
+ xof: CurrencyUnit.XOF,
833
+ xaf: CurrencyUnit.XAF,
834
+ mwk: CurrencyUnit.MWK,
835
+ rwf: CurrencyUnit.RWF,
796
836
  mibtc: CurrencyUnit.MICROBITCOIN,
797
837
  mlbtc: CurrencyUnit.MILLIBITCOIN,
798
838
  nbtc: CurrencyUnit.NANOBITCOIN,
@@ -861,6 +901,10 @@ function mapCurrencyAmount(currencyAmountArg, unitsPerBtc = 1) {
861
901
  tzs,
862
902
  ugx,
863
903
  bwp,
904
+ xof,
905
+ xaf,
906
+ mwk,
907
+ rwf,
864
908
  usdt,
865
909
  usdc
866
910
  } = convertCurrencyAmountValues(unit, value, unitsPerBtc, conversionOverride);
@@ -889,6 +933,10 @@ function mapCurrencyAmount(currencyAmountArg, unitsPerBtc = 1) {
889
933
  [CurrencyUnit.TZS]: tzs,
890
934
  [CurrencyUnit.UGX]: ugx,
891
935
  [CurrencyUnit.BWP]: bwp,
936
+ [CurrencyUnit.XOF]: xof,
937
+ [CurrencyUnit.XAF]: xaf,
938
+ [CurrencyUnit.MWK]: mwk,
939
+ [CurrencyUnit.RWF]: rwf,
892
940
  [CurrencyUnit.MICROBITCOIN]: mibtc,
893
941
  [CurrencyUnit.MILLIBITCOIN]: mlbtc,
894
942
  [CurrencyUnit.NANOBITCOIN]: nbtc,
@@ -1004,6 +1052,22 @@ function mapCurrencyAmount(currencyAmountArg, unitsPerBtc = 1) {
1004
1052
  value: bwp,
1005
1053
  unit: CurrencyUnit.BWP
1006
1054
  }),
1055
+ [CurrencyUnit.XOF]: formatCurrencyStr({
1056
+ value: xof,
1057
+ unit: CurrencyUnit.XOF
1058
+ }),
1059
+ [CurrencyUnit.XAF]: formatCurrencyStr({
1060
+ value: xaf,
1061
+ unit: CurrencyUnit.XAF
1062
+ }),
1063
+ [CurrencyUnit.MWK]: formatCurrencyStr({
1064
+ value: mwk,
1065
+ unit: CurrencyUnit.MWK
1066
+ }),
1067
+ [CurrencyUnit.RWF]: formatCurrencyStr({
1068
+ value: rwf,
1069
+ unit: CurrencyUnit.RWF
1070
+ }),
1007
1071
  [CurrencyUnit.USDT]: formatCurrencyStr({
1008
1072
  value: usdt,
1009
1073
  unit: CurrencyUnit.USDT
@@ -1116,6 +1180,14 @@ var abbrCurrencyUnit = (unit) => {
1116
1180
  return "UGX";
1117
1181
  case CurrencyUnit.BWP:
1118
1182
  return "BWP";
1183
+ case CurrencyUnit.XOF:
1184
+ return "XOF";
1185
+ case CurrencyUnit.XAF:
1186
+ return "XAF";
1187
+ case CurrencyUnit.MWK:
1188
+ return "MWK";
1189
+ case CurrencyUnit.RWF:
1190
+ return "RWF";
1119
1191
  }
1120
1192
  return "Unsupported CurrencyUnit";
1121
1193
  };
@@ -1232,6 +1304,9 @@ function formatCurrencyStr(amount, options) {
1232
1304
  return formattedStr;
1233
1305
  }
1234
1306
  const unitStr = isUmaCurrencyAmount(amount) ? amount.currency.code : abbrCurrencyUnit(unit);
1307
+ if (formattedStr.includes(unitStr)) {
1308
+ return formattedStr;
1309
+ }
1235
1310
  const unitSuffix = options?.appendUnits?.plural && num > 1 ? "s" : "";
1236
1311
  const unitStrWithSuffix = `${unitStr}${unitSuffix}`;
1237
1312
  formattedStr += ` ${options?.appendUnits?.lowercase ? unitStrWithSuffix.toLowerCase() : unitStrWithSuffix}`;
@@ -8,7 +8,7 @@ import {
8
8
  isBrowser,
9
9
  isNode,
10
10
  isTest
11
- } from "./chunk-W4DKUOEW.js";
11
+ } from "./chunk-7TABKK5I.js";
12
12
 
13
13
  // src/auth/StubAuthProvider.ts
14
14
  var StubAuthProvider = class {
@@ -44,6 +44,10 @@ declare const CurrencyUnit: {
44
44
  readonly TZS: "TZS";
45
45
  readonly UGX: "UGX";
46
46
  readonly BWP: "BWP";
47
+ readonly XOF: "XOF";
48
+ readonly XAF: "XAF";
49
+ readonly MWK: "MWK";
50
+ readonly RWF: "RWF";
47
51
  readonly USDT: "USDT";
48
52
  readonly USDC: "USDC";
49
53
  readonly Bitcoin: "BITCOIN";
@@ -102,6 +106,10 @@ type CurrencyMap = {
102
106
  [CurrencyUnit.TZS]: number;
103
107
  [CurrencyUnit.UGX]: number;
104
108
  [CurrencyUnit.BWP]: number;
109
+ [CurrencyUnit.XOF]: number;
110
+ [CurrencyUnit.XAF]: number;
111
+ [CurrencyUnit.MWK]: number;
112
+ [CurrencyUnit.RWF]: number;
105
113
  [CurrencyUnit.USDT]: number;
106
114
  [CurrencyUnit.USDC]: number;
107
115
  [CurrencyUnit.FUTURE_VALUE]: number;
@@ -136,6 +144,10 @@ type CurrencyMap = {
136
144
  [CurrencyUnit.TZS]: string;
137
145
  [CurrencyUnit.UGX]: string;
138
146
  [CurrencyUnit.BWP]: string;
147
+ [CurrencyUnit.XOF]: string;
148
+ [CurrencyUnit.XAF]: string;
149
+ [CurrencyUnit.MWK]: string;
150
+ [CurrencyUnit.RWF]: string;
139
151
  [CurrencyUnit.USDT]: string;
140
152
  [CurrencyUnit.USDC]: string;
141
153
  [CurrencyUnit.FUTURE_VALUE]: string;
@@ -193,7 +205,7 @@ declare function getCurrencyAmount(currencyAmountArg: CurrencyAmountArg): {
193
205
  };
194
206
  declare function mapCurrencyAmount(currencyAmountArg: CurrencyAmountArg, unitsPerBtc?: number): CurrencyMap;
195
207
  declare const isCurrencyMap: (currencyMap: unknown) => currencyMap is CurrencyMap;
196
- declare const abbrCurrencyUnit: (unit: CurrencyUnitType) => "EUR" | "USD" | "BRL" | "CAD" | "GBP" | "INR" | "MXN" | "PHP" | "DKK" | "HKD" | "IDR" | "MYR" | "SGD" | "THB" | "VND" | "NGN" | "ZAR" | "KES" | "TZS" | "UGX" | "BWP" | "USDT" | "USDC" | "BTC" | "SAT" | "MSAT" | "mBTC" | "μBTC" | "Unsupported CurrencyUnit";
208
+ declare const abbrCurrencyUnit: (unit: CurrencyUnitType) => "EUR" | "USD" | "BRL" | "CAD" | "GBP" | "INR" | "MXN" | "PHP" | "DKK" | "HKD" | "IDR" | "MYR" | "SGD" | "THB" | "VND" | "NGN" | "ZAR" | "KES" | "TZS" | "UGX" | "BWP" | "XOF" | "XAF" | "MWK" | "RWF" | "USDT" | "USDC" | "BTC" | "SAT" | "MSAT" | "mBTC" | "μBTC" | "Unsupported CurrencyUnit";
197
209
  type AppendUnitsOptions = {
198
210
  plural?: boolean | undefined;
199
211
  lowercase?: boolean | undefined;
@@ -44,6 +44,10 @@ declare const CurrencyUnit: {
44
44
  readonly TZS: "TZS";
45
45
  readonly UGX: "UGX";
46
46
  readonly BWP: "BWP";
47
+ readonly XOF: "XOF";
48
+ readonly XAF: "XAF";
49
+ readonly MWK: "MWK";
50
+ readonly RWF: "RWF";
47
51
  readonly USDT: "USDT";
48
52
  readonly USDC: "USDC";
49
53
  readonly Bitcoin: "BITCOIN";
@@ -102,6 +106,10 @@ type CurrencyMap = {
102
106
  [CurrencyUnit.TZS]: number;
103
107
  [CurrencyUnit.UGX]: number;
104
108
  [CurrencyUnit.BWP]: number;
109
+ [CurrencyUnit.XOF]: number;
110
+ [CurrencyUnit.XAF]: number;
111
+ [CurrencyUnit.MWK]: number;
112
+ [CurrencyUnit.RWF]: number;
105
113
  [CurrencyUnit.USDT]: number;
106
114
  [CurrencyUnit.USDC]: number;
107
115
  [CurrencyUnit.FUTURE_VALUE]: number;
@@ -136,6 +144,10 @@ type CurrencyMap = {
136
144
  [CurrencyUnit.TZS]: string;
137
145
  [CurrencyUnit.UGX]: string;
138
146
  [CurrencyUnit.BWP]: string;
147
+ [CurrencyUnit.XOF]: string;
148
+ [CurrencyUnit.XAF]: string;
149
+ [CurrencyUnit.MWK]: string;
150
+ [CurrencyUnit.RWF]: string;
139
151
  [CurrencyUnit.USDT]: string;
140
152
  [CurrencyUnit.USDC]: string;
141
153
  [CurrencyUnit.FUTURE_VALUE]: string;
@@ -193,7 +205,7 @@ declare function getCurrencyAmount(currencyAmountArg: CurrencyAmountArg): {
193
205
  };
194
206
  declare function mapCurrencyAmount(currencyAmountArg: CurrencyAmountArg, unitsPerBtc?: number): CurrencyMap;
195
207
  declare const isCurrencyMap: (currencyMap: unknown) => currencyMap is CurrencyMap;
196
- declare const abbrCurrencyUnit: (unit: CurrencyUnitType) => "EUR" | "USD" | "BRL" | "CAD" | "GBP" | "INR" | "MXN" | "PHP" | "DKK" | "HKD" | "IDR" | "MYR" | "SGD" | "THB" | "VND" | "NGN" | "ZAR" | "KES" | "TZS" | "UGX" | "BWP" | "USDT" | "USDC" | "BTC" | "SAT" | "MSAT" | "mBTC" | "μBTC" | "Unsupported CurrencyUnit";
208
+ declare const abbrCurrencyUnit: (unit: CurrencyUnitType) => "EUR" | "USD" | "BRL" | "CAD" | "GBP" | "INR" | "MXN" | "PHP" | "DKK" | "HKD" | "IDR" | "MYR" | "SGD" | "THB" | "VND" | "NGN" | "ZAR" | "KES" | "TZS" | "UGX" | "BWP" | "XOF" | "XAF" | "MWK" | "RWF" | "USDT" | "USDC" | "BTC" | "SAT" | "MSAT" | "mBTC" | "μBTC" | "Unsupported CurrencyUnit";
197
209
  type AppendUnitsOptions = {
198
210
  plural?: boolean | undefined;
199
211
  lowercase?: boolean | undefined;
package/dist/index.cjs CHANGED
@@ -1290,6 +1290,10 @@ var CurrencyUnit = {
1290
1290
  TZS: "TZS",
1291
1291
  UGX: "UGX",
1292
1292
  BWP: "BWP",
1293
+ XOF: "XOF",
1294
+ XAF: "XAF",
1295
+ MWK: "MWK",
1296
+ RWF: "RWF",
1293
1297
  USDT: "USDT",
1294
1298
  USDC: "USDC",
1295
1299
  Bitcoin: "BITCOIN",
@@ -1336,6 +1340,10 @@ var standardUnitConversionObj = {
1336
1340
  [CurrencyUnit.TZS]: (v) => v,
1337
1341
  [CurrencyUnit.UGX]: (v) => v,
1338
1342
  [CurrencyUnit.BWP]: (v) => v,
1343
+ [CurrencyUnit.XOF]: (v) => v,
1344
+ [CurrencyUnit.XAF]: (v) => v,
1345
+ [CurrencyUnit.MWK]: (v) => v,
1346
+ [CurrencyUnit.RWF]: (v) => v,
1339
1347
  [CurrencyUnit.USDT]: (v) => v,
1340
1348
  [CurrencyUnit.USDC]: (v) => v
1341
1349
  };
@@ -1374,6 +1382,10 @@ var CONVERSION_MAP = {
1374
1382
  [CurrencyUnit.TZS]: toBitcoinConversion,
1375
1383
  [CurrencyUnit.UGX]: toBitcoinConversion,
1376
1384
  [CurrencyUnit.BWP]: toBitcoinConversion,
1385
+ [CurrencyUnit.XOF]: toBitcoinConversion,
1386
+ [CurrencyUnit.XAF]: toBitcoinConversion,
1387
+ [CurrencyUnit.MWK]: toBitcoinConversion,
1388
+ [CurrencyUnit.RWF]: toBitcoinConversion,
1377
1389
  [CurrencyUnit.USDT]: toBitcoinConversion,
1378
1390
  [CurrencyUnit.USDC]: toBitcoinConversion
1379
1391
  },
@@ -1405,6 +1417,10 @@ var CONVERSION_MAP = {
1405
1417
  [CurrencyUnit.TZS]: toMicrobitcoinConversion,
1406
1418
  [CurrencyUnit.UGX]: toMicrobitcoinConversion,
1407
1419
  [CurrencyUnit.BWP]: toMicrobitcoinConversion,
1420
+ [CurrencyUnit.XOF]: toMicrobitcoinConversion,
1421
+ [CurrencyUnit.XAF]: toMicrobitcoinConversion,
1422
+ [CurrencyUnit.MWK]: toMicrobitcoinConversion,
1423
+ [CurrencyUnit.RWF]: toMicrobitcoinConversion,
1408
1424
  [CurrencyUnit.USDT]: toMicrobitcoinConversion,
1409
1425
  [CurrencyUnit.USDC]: toMicrobitcoinConversion
1410
1426
  },
@@ -1436,6 +1452,10 @@ var CONVERSION_MAP = {
1436
1452
  [CurrencyUnit.TZS]: toMillibitcoinConversion,
1437
1453
  [CurrencyUnit.UGX]: toMillibitcoinConversion,
1438
1454
  [CurrencyUnit.BWP]: toMillibitcoinConversion,
1455
+ [CurrencyUnit.XOF]: toMillibitcoinConversion,
1456
+ [CurrencyUnit.XAF]: toMillibitcoinConversion,
1457
+ [CurrencyUnit.MWK]: toMillibitcoinConversion,
1458
+ [CurrencyUnit.RWF]: toMillibitcoinConversion,
1439
1459
  [CurrencyUnit.USDT]: toMillibitcoinConversion,
1440
1460
  [CurrencyUnit.USDC]: toMillibitcoinConversion
1441
1461
  },
@@ -1467,6 +1487,10 @@ var CONVERSION_MAP = {
1467
1487
  [CurrencyUnit.TZS]: toMillisatoshiConversion,
1468
1488
  [CurrencyUnit.UGX]: toMillisatoshiConversion,
1469
1489
  [CurrencyUnit.BWP]: toMillisatoshiConversion,
1490
+ [CurrencyUnit.XOF]: toMillisatoshiConversion,
1491
+ [CurrencyUnit.XAF]: toMillisatoshiConversion,
1492
+ [CurrencyUnit.MWK]: toMillisatoshiConversion,
1493
+ [CurrencyUnit.RWF]: toMillisatoshiConversion,
1470
1494
  [CurrencyUnit.USDT]: toMillisatoshiConversion,
1471
1495
  [CurrencyUnit.USDC]: toMillisatoshiConversion
1472
1496
  },
@@ -1498,6 +1522,10 @@ var CONVERSION_MAP = {
1498
1522
  [CurrencyUnit.TZS]: toNanobitcoinConversion,
1499
1523
  [CurrencyUnit.UGX]: toNanobitcoinConversion,
1500
1524
  [CurrencyUnit.BWP]: toNanobitcoinConversion,
1525
+ [CurrencyUnit.XOF]: toNanobitcoinConversion,
1526
+ [CurrencyUnit.XAF]: toNanobitcoinConversion,
1527
+ [CurrencyUnit.MWK]: toNanobitcoinConversion,
1528
+ [CurrencyUnit.RWF]: toNanobitcoinConversion,
1501
1529
  [CurrencyUnit.USDT]: toNanobitcoinConversion,
1502
1530
  [CurrencyUnit.USDC]: toNanobitcoinConversion
1503
1531
  },
@@ -1529,6 +1557,10 @@ var CONVERSION_MAP = {
1529
1557
  [CurrencyUnit.TZS]: toSatoshiConversion,
1530
1558
  [CurrencyUnit.UGX]: toSatoshiConversion,
1531
1559
  [CurrencyUnit.BWP]: toSatoshiConversion,
1560
+ [CurrencyUnit.XOF]: toSatoshiConversion,
1561
+ [CurrencyUnit.XAF]: toSatoshiConversion,
1562
+ [CurrencyUnit.MWK]: toSatoshiConversion,
1563
+ [CurrencyUnit.RWF]: toSatoshiConversion,
1532
1564
  [CurrencyUnit.USDT]: toSatoshiConversion,
1533
1565
  [CurrencyUnit.USDC]: toSatoshiConversion
1534
1566
  },
@@ -1553,6 +1585,10 @@ var CONVERSION_MAP = {
1553
1585
  [CurrencyUnit.TZS]: standardUnitConversionObj,
1554
1586
  [CurrencyUnit.UGX]: standardUnitConversionObj,
1555
1587
  [CurrencyUnit.BWP]: standardUnitConversionObj,
1588
+ [CurrencyUnit.XOF]: standardUnitConversionObj,
1589
+ [CurrencyUnit.XAF]: standardUnitConversionObj,
1590
+ [CurrencyUnit.MWK]: standardUnitConversionObj,
1591
+ [CurrencyUnit.RWF]: standardUnitConversionObj,
1556
1592
  [CurrencyUnit.USDT]: standardUnitConversionObj,
1557
1593
  [CurrencyUnit.USDC]: standardUnitConversionObj
1558
1594
  };
@@ -1655,6 +1691,10 @@ function convertCurrencyAmountValues(fromUnit, amount, unitsPerBtc = 1, conversi
1655
1691
  tzs: CurrencyUnit.TZS,
1656
1692
  ugx: CurrencyUnit.UGX,
1657
1693
  bwp: CurrencyUnit.BWP,
1694
+ xof: CurrencyUnit.XOF,
1695
+ xaf: CurrencyUnit.XAF,
1696
+ mwk: CurrencyUnit.MWK,
1697
+ rwf: CurrencyUnit.RWF,
1658
1698
  mibtc: CurrencyUnit.MICROBITCOIN,
1659
1699
  mlbtc: CurrencyUnit.MILLIBITCOIN,
1660
1700
  nbtc: CurrencyUnit.NANOBITCOIN,
@@ -1723,6 +1763,10 @@ function mapCurrencyAmount(currencyAmountArg, unitsPerBtc = 1) {
1723
1763
  tzs,
1724
1764
  ugx,
1725
1765
  bwp,
1766
+ xof,
1767
+ xaf,
1768
+ mwk,
1769
+ rwf,
1726
1770
  usdt,
1727
1771
  usdc
1728
1772
  } = convertCurrencyAmountValues(unit, value, unitsPerBtc, conversionOverride);
@@ -1751,6 +1795,10 @@ function mapCurrencyAmount(currencyAmountArg, unitsPerBtc = 1) {
1751
1795
  [CurrencyUnit.TZS]: tzs,
1752
1796
  [CurrencyUnit.UGX]: ugx,
1753
1797
  [CurrencyUnit.BWP]: bwp,
1798
+ [CurrencyUnit.XOF]: xof,
1799
+ [CurrencyUnit.XAF]: xaf,
1800
+ [CurrencyUnit.MWK]: mwk,
1801
+ [CurrencyUnit.RWF]: rwf,
1754
1802
  [CurrencyUnit.MICROBITCOIN]: mibtc,
1755
1803
  [CurrencyUnit.MILLIBITCOIN]: mlbtc,
1756
1804
  [CurrencyUnit.NANOBITCOIN]: nbtc,
@@ -1866,6 +1914,22 @@ function mapCurrencyAmount(currencyAmountArg, unitsPerBtc = 1) {
1866
1914
  value: bwp,
1867
1915
  unit: CurrencyUnit.BWP
1868
1916
  }),
1917
+ [CurrencyUnit.XOF]: formatCurrencyStr({
1918
+ value: xof,
1919
+ unit: CurrencyUnit.XOF
1920
+ }),
1921
+ [CurrencyUnit.XAF]: formatCurrencyStr({
1922
+ value: xaf,
1923
+ unit: CurrencyUnit.XAF
1924
+ }),
1925
+ [CurrencyUnit.MWK]: formatCurrencyStr({
1926
+ value: mwk,
1927
+ unit: CurrencyUnit.MWK
1928
+ }),
1929
+ [CurrencyUnit.RWF]: formatCurrencyStr({
1930
+ value: rwf,
1931
+ unit: CurrencyUnit.RWF
1932
+ }),
1869
1933
  [CurrencyUnit.USDT]: formatCurrencyStr({
1870
1934
  value: usdt,
1871
1935
  unit: CurrencyUnit.USDT
@@ -1978,6 +2042,14 @@ var abbrCurrencyUnit = (unit) => {
1978
2042
  return "UGX";
1979
2043
  case CurrencyUnit.BWP:
1980
2044
  return "BWP";
2045
+ case CurrencyUnit.XOF:
2046
+ return "XOF";
2047
+ case CurrencyUnit.XAF:
2048
+ return "XAF";
2049
+ case CurrencyUnit.MWK:
2050
+ return "MWK";
2051
+ case CurrencyUnit.RWF:
2052
+ return "RWF";
1981
2053
  }
1982
2054
  return "Unsupported CurrencyUnit";
1983
2055
  };
@@ -2094,6 +2166,9 @@ function formatCurrencyStr(amount, options) {
2094
2166
  return formattedStr;
2095
2167
  }
2096
2168
  const unitStr = isUmaCurrencyAmount(amount) ? amount.currency.code : abbrCurrencyUnit(unit);
2169
+ if (formattedStr.includes(unitStr)) {
2170
+ return formattedStr;
2171
+ }
2097
2172
  const unitSuffix = options?.appendUnits?.plural && num > 1 ? "s" : "";
2098
2173
  const unitStrWithSuffix = `${unitStr}${unitSuffix}`;
2099
2174
  formattedStr += ` ${options?.appendUnits?.lowercase ? unitStrWithSuffix.toLowerCase() : unitStrWithSuffix}`;
package/dist/index.d.cts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as graphql_ws from 'graphql-ws';
2
2
  import { Requester, AuthProvider } from './react-native/index.cjs';
3
3
  export { CryptoInterface, DefaultCrypto, GeneratedKeyPair, KeyOrAlias, KeyOrAliasType, LightsparkAuthException, LightsparkException, LightsparkSigningException, Logger, LoggingLevel, NodeKeyCache, Query, RSASigningKey, Secp256k1SigningKey, ServerEnvironment, SigningKey, SigningKeyType, StubAuthProvider, apiDomainForEnvironment, logger } from './react-native/index.cjs';
4
- export { A as AppendUnitsOptions, ae as ById, ap as Complete, C as ConfigKeys, o as CurrencyAmountArg, k as CurrencyAmountInputObj, m as CurrencyAmountObj, n as CurrencyAmountPreferenceObj, Y as CurrencyCodes, X as CurrencyLocales, j as CurrencyMap, f as CurrencyUnit, g as CurrencyUnitType, ai as DeepPartial, D as DeprecatedCurrencyAmountObj, ad as ExpandRecursively, ah as ExtractByTypename, aj as JSONLiteral, al as JSONObject, ak as JSONType, ac as Maybe, am as NN, af as OmitTypename, ao as PartialBy, aq as RequiredKeys, S as SDKCurrencyAmountType, ar as StateCode, U as UmaCurrency, l as UmaCurrencyAmount, z as abbrCurrencyUnit, b as b64decode, a as b64encode, R as bytesToHex, a2 as clamp, i as convertCurrencyAmount, h as convertCurrencyAmountValue, W as countryCodesToCurrencyCodes, c as createSha256Hash, d as defaultCurrencyCode, a1 as deleteLocalStorageItem, e as ensureArray, Q as errorToJSON, B as formatCurrencyStr, G as formatInviteAmount, w as getCurrencyAmount, V as getCurrentLocale, O as getErrorMsg, $ as getLocalStorageBoolean, _ as getLocalStorageConfigItem, T as hexToBytes, K as isBare, H as isBrowser, p as isCurrencyAmountInputObj, s as isCurrencyAmountObj, t as isCurrencyAmountPreferenceObj, y as isCurrencyMap, r as isDeprecatedCurrencyAmountObj, M as isError, P as isErrorMsg, N as isErrorWithMessage, I as isNode, a5 as isNumber, aa as isObject, L as isReactNative, ab as isRecord, v as isSDKCurrencyAmount, J as isTest, ag as isType, a9 as isUint8Array, q as isUmaCurrencyAmount, a3 as linearInterpolate, Z as localeToCurrencyCode, F as localeToCurrencySymbol, a8 as lsidToUUID, x as mapCurrencyAmount, an as notNullUndefined, a6 as pollUntil, a4 as round, E as separateCurrencyStrParts, a0 as setLocalStorageBoolean, a7 as sleep, u as urlsafe_b64decode, at as zipcodeToState, as as zipcodeToStateCode } from './index-HyhbxNE8.cjs';
4
+ export { A as AppendUnitsOptions, ae as ById, ap as Complete, C as ConfigKeys, o as CurrencyAmountArg, k as CurrencyAmountInputObj, m as CurrencyAmountObj, n as CurrencyAmountPreferenceObj, Y as CurrencyCodes, X as CurrencyLocales, j as CurrencyMap, f as CurrencyUnit, g as CurrencyUnitType, ai as DeepPartial, D as DeprecatedCurrencyAmountObj, ad as ExpandRecursively, ah as ExtractByTypename, aj as JSONLiteral, al as JSONObject, ak as JSONType, ac as Maybe, am as NN, af as OmitTypename, ao as PartialBy, aq as RequiredKeys, S as SDKCurrencyAmountType, ar as StateCode, U as UmaCurrency, l as UmaCurrencyAmount, z as abbrCurrencyUnit, b as b64decode, a as b64encode, R as bytesToHex, a2 as clamp, i as convertCurrencyAmount, h as convertCurrencyAmountValue, W as countryCodesToCurrencyCodes, c as createSha256Hash, d as defaultCurrencyCode, a1 as deleteLocalStorageItem, e as ensureArray, Q as errorToJSON, B as formatCurrencyStr, G as formatInviteAmount, w as getCurrencyAmount, V as getCurrentLocale, O as getErrorMsg, $ as getLocalStorageBoolean, _ as getLocalStorageConfigItem, T as hexToBytes, K as isBare, H as isBrowser, p as isCurrencyAmountInputObj, s as isCurrencyAmountObj, t as isCurrencyAmountPreferenceObj, y as isCurrencyMap, r as isDeprecatedCurrencyAmountObj, M as isError, P as isErrorMsg, N as isErrorWithMessage, I as isNode, a5 as isNumber, aa as isObject, L as isReactNative, ab as isRecord, v as isSDKCurrencyAmount, J as isTest, ag as isType, a9 as isUint8Array, q as isUmaCurrencyAmount, a3 as linearInterpolate, Z as localeToCurrencyCode, F as localeToCurrencySymbol, a8 as lsidToUUID, x as mapCurrencyAmount, an as notNullUndefined, a6 as pollUntil, a4 as round, E as separateCurrencyStrParts, a0 as setLocalStorageBoolean, a7 as sleep, u as urlsafe_b64decode, at as zipcodeToState, as as zipcodeToStateCode } from './index-JEN9VvIL.cjs';
5
5
  import 'zen-observable-ts';
6
6
 
7
7
  declare class DefaultRequester extends Requester {
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as graphql_ws from 'graphql-ws';
2
2
  import { Requester, AuthProvider } from './react-native/index.js';
3
3
  export { CryptoInterface, DefaultCrypto, GeneratedKeyPair, KeyOrAlias, KeyOrAliasType, LightsparkAuthException, LightsparkException, LightsparkSigningException, Logger, LoggingLevel, NodeKeyCache, Query, RSASigningKey, Secp256k1SigningKey, ServerEnvironment, SigningKey, SigningKeyType, StubAuthProvider, apiDomainForEnvironment, logger } from './react-native/index.js';
4
- export { A as AppendUnitsOptions, ae as ById, ap as Complete, C as ConfigKeys, o as CurrencyAmountArg, k as CurrencyAmountInputObj, m as CurrencyAmountObj, n as CurrencyAmountPreferenceObj, Y as CurrencyCodes, X as CurrencyLocales, j as CurrencyMap, f as CurrencyUnit, g as CurrencyUnitType, ai as DeepPartial, D as DeprecatedCurrencyAmountObj, ad as ExpandRecursively, ah as ExtractByTypename, aj as JSONLiteral, al as JSONObject, ak as JSONType, ac as Maybe, am as NN, af as OmitTypename, ao as PartialBy, aq as RequiredKeys, S as SDKCurrencyAmountType, ar as StateCode, U as UmaCurrency, l as UmaCurrencyAmount, z as abbrCurrencyUnit, b as b64decode, a as b64encode, R as bytesToHex, a2 as clamp, i as convertCurrencyAmount, h as convertCurrencyAmountValue, W as countryCodesToCurrencyCodes, c as createSha256Hash, d as defaultCurrencyCode, a1 as deleteLocalStorageItem, e as ensureArray, Q as errorToJSON, B as formatCurrencyStr, G as formatInviteAmount, w as getCurrencyAmount, V as getCurrentLocale, O as getErrorMsg, $ as getLocalStorageBoolean, _ as getLocalStorageConfigItem, T as hexToBytes, K as isBare, H as isBrowser, p as isCurrencyAmountInputObj, s as isCurrencyAmountObj, t as isCurrencyAmountPreferenceObj, y as isCurrencyMap, r as isDeprecatedCurrencyAmountObj, M as isError, P as isErrorMsg, N as isErrorWithMessage, I as isNode, a5 as isNumber, aa as isObject, L as isReactNative, ab as isRecord, v as isSDKCurrencyAmount, J as isTest, ag as isType, a9 as isUint8Array, q as isUmaCurrencyAmount, a3 as linearInterpolate, Z as localeToCurrencyCode, F as localeToCurrencySymbol, a8 as lsidToUUID, x as mapCurrencyAmount, an as notNullUndefined, a6 as pollUntil, a4 as round, E as separateCurrencyStrParts, a0 as setLocalStorageBoolean, a7 as sleep, u as urlsafe_b64decode, at as zipcodeToState, as as zipcodeToStateCode } from './index-HyhbxNE8.js';
4
+ export { A as AppendUnitsOptions, ae as ById, ap as Complete, C as ConfigKeys, o as CurrencyAmountArg, k as CurrencyAmountInputObj, m as CurrencyAmountObj, n as CurrencyAmountPreferenceObj, Y as CurrencyCodes, X as CurrencyLocales, j as CurrencyMap, f as CurrencyUnit, g as CurrencyUnitType, ai as DeepPartial, D as DeprecatedCurrencyAmountObj, ad as ExpandRecursively, ah as ExtractByTypename, aj as JSONLiteral, al as JSONObject, ak as JSONType, ac as Maybe, am as NN, af as OmitTypename, ao as PartialBy, aq as RequiredKeys, S as SDKCurrencyAmountType, ar as StateCode, U as UmaCurrency, l as UmaCurrencyAmount, z as abbrCurrencyUnit, b as b64decode, a as b64encode, R as bytesToHex, a2 as clamp, i as convertCurrencyAmount, h as convertCurrencyAmountValue, W as countryCodesToCurrencyCodes, c as createSha256Hash, d as defaultCurrencyCode, a1 as deleteLocalStorageItem, e as ensureArray, Q as errorToJSON, B as formatCurrencyStr, G as formatInviteAmount, w as getCurrencyAmount, V as getCurrentLocale, O as getErrorMsg, $ as getLocalStorageBoolean, _ as getLocalStorageConfigItem, T as hexToBytes, K as isBare, H as isBrowser, p as isCurrencyAmountInputObj, s as isCurrencyAmountObj, t as isCurrencyAmountPreferenceObj, y as isCurrencyMap, r as isDeprecatedCurrencyAmountObj, M as isError, P as isErrorMsg, N as isErrorWithMessage, I as isNode, a5 as isNumber, aa as isObject, L as isReactNative, ab as isRecord, v as isSDKCurrencyAmount, J as isTest, ag as isType, a9 as isUint8Array, q as isUmaCurrencyAmount, a3 as linearInterpolate, Z as localeToCurrencyCode, F as localeToCurrencySymbol, a8 as lsidToUUID, x as mapCurrencyAmount, an as notNullUndefined, a6 as pollUntil, a4 as round, E as separateCurrencyStrParts, a0 as setLocalStorageBoolean, a7 as sleep, u as urlsafe_b64decode, at as zipcodeToState, as as zipcodeToStateCode } from './index-JEN9VvIL.js';
5
5
  import 'zen-observable-ts';
6
6
 
7
7
  declare class DefaultRequester extends Requester {
package/dist/index.js CHANGED
@@ -16,7 +16,7 @@ import {
16
16
  StubAuthProvider,
17
17
  apiDomainForEnvironment,
18
18
  logger
19
- } from "./chunk-RGVVA4QG.js";
19
+ } from "./chunk-YOHZRRM2.js";
20
20
  import {
21
21
  CurrencyUnit,
22
22
  LightsparkException_default,
@@ -75,7 +75,7 @@ import {
75
75
  urlsafe_b64decode,
76
76
  zipcodeToState,
77
77
  zipcodeToStateCode
78
- } from "./chunk-W4DKUOEW.js";
78
+ } from "./chunk-7TABKK5I.js";
79
79
 
80
80
  // src/requester/DefaultRequester.ts
81
81
  var DefaultRequester = class extends Requester_default {
@@ -1257,6 +1257,10 @@ var CurrencyUnit = {
1257
1257
  TZS: "TZS",
1258
1258
  UGX: "UGX",
1259
1259
  BWP: "BWP",
1260
+ XOF: "XOF",
1261
+ XAF: "XAF",
1262
+ MWK: "MWK",
1263
+ RWF: "RWF",
1260
1264
  USDT: "USDT",
1261
1265
  USDC: "USDC",
1262
1266
  Bitcoin: "BITCOIN",
@@ -1303,6 +1307,10 @@ var standardUnitConversionObj = {
1303
1307
  [CurrencyUnit.TZS]: (v) => v,
1304
1308
  [CurrencyUnit.UGX]: (v) => v,
1305
1309
  [CurrencyUnit.BWP]: (v) => v,
1310
+ [CurrencyUnit.XOF]: (v) => v,
1311
+ [CurrencyUnit.XAF]: (v) => v,
1312
+ [CurrencyUnit.MWK]: (v) => v,
1313
+ [CurrencyUnit.RWF]: (v) => v,
1306
1314
  [CurrencyUnit.USDT]: (v) => v,
1307
1315
  [CurrencyUnit.USDC]: (v) => v
1308
1316
  };
@@ -1341,6 +1349,10 @@ var CONVERSION_MAP = {
1341
1349
  [CurrencyUnit.TZS]: toBitcoinConversion,
1342
1350
  [CurrencyUnit.UGX]: toBitcoinConversion,
1343
1351
  [CurrencyUnit.BWP]: toBitcoinConversion,
1352
+ [CurrencyUnit.XOF]: toBitcoinConversion,
1353
+ [CurrencyUnit.XAF]: toBitcoinConversion,
1354
+ [CurrencyUnit.MWK]: toBitcoinConversion,
1355
+ [CurrencyUnit.RWF]: toBitcoinConversion,
1344
1356
  [CurrencyUnit.USDT]: toBitcoinConversion,
1345
1357
  [CurrencyUnit.USDC]: toBitcoinConversion
1346
1358
  },
@@ -1372,6 +1384,10 @@ var CONVERSION_MAP = {
1372
1384
  [CurrencyUnit.TZS]: toMicrobitcoinConversion,
1373
1385
  [CurrencyUnit.UGX]: toMicrobitcoinConversion,
1374
1386
  [CurrencyUnit.BWP]: toMicrobitcoinConversion,
1387
+ [CurrencyUnit.XOF]: toMicrobitcoinConversion,
1388
+ [CurrencyUnit.XAF]: toMicrobitcoinConversion,
1389
+ [CurrencyUnit.MWK]: toMicrobitcoinConversion,
1390
+ [CurrencyUnit.RWF]: toMicrobitcoinConversion,
1375
1391
  [CurrencyUnit.USDT]: toMicrobitcoinConversion,
1376
1392
  [CurrencyUnit.USDC]: toMicrobitcoinConversion
1377
1393
  },
@@ -1403,6 +1419,10 @@ var CONVERSION_MAP = {
1403
1419
  [CurrencyUnit.TZS]: toMillibitcoinConversion,
1404
1420
  [CurrencyUnit.UGX]: toMillibitcoinConversion,
1405
1421
  [CurrencyUnit.BWP]: toMillibitcoinConversion,
1422
+ [CurrencyUnit.XOF]: toMillibitcoinConversion,
1423
+ [CurrencyUnit.XAF]: toMillibitcoinConversion,
1424
+ [CurrencyUnit.MWK]: toMillibitcoinConversion,
1425
+ [CurrencyUnit.RWF]: toMillibitcoinConversion,
1406
1426
  [CurrencyUnit.USDT]: toMillibitcoinConversion,
1407
1427
  [CurrencyUnit.USDC]: toMillibitcoinConversion
1408
1428
  },
@@ -1434,6 +1454,10 @@ var CONVERSION_MAP = {
1434
1454
  [CurrencyUnit.TZS]: toMillisatoshiConversion,
1435
1455
  [CurrencyUnit.UGX]: toMillisatoshiConversion,
1436
1456
  [CurrencyUnit.BWP]: toMillisatoshiConversion,
1457
+ [CurrencyUnit.XOF]: toMillisatoshiConversion,
1458
+ [CurrencyUnit.XAF]: toMillisatoshiConversion,
1459
+ [CurrencyUnit.MWK]: toMillisatoshiConversion,
1460
+ [CurrencyUnit.RWF]: toMillisatoshiConversion,
1437
1461
  [CurrencyUnit.USDT]: toMillisatoshiConversion,
1438
1462
  [CurrencyUnit.USDC]: toMillisatoshiConversion
1439
1463
  },
@@ -1465,6 +1489,10 @@ var CONVERSION_MAP = {
1465
1489
  [CurrencyUnit.TZS]: toNanobitcoinConversion,
1466
1490
  [CurrencyUnit.UGX]: toNanobitcoinConversion,
1467
1491
  [CurrencyUnit.BWP]: toNanobitcoinConversion,
1492
+ [CurrencyUnit.XOF]: toNanobitcoinConversion,
1493
+ [CurrencyUnit.XAF]: toNanobitcoinConversion,
1494
+ [CurrencyUnit.MWK]: toNanobitcoinConversion,
1495
+ [CurrencyUnit.RWF]: toNanobitcoinConversion,
1468
1496
  [CurrencyUnit.USDT]: toNanobitcoinConversion,
1469
1497
  [CurrencyUnit.USDC]: toNanobitcoinConversion
1470
1498
  },
@@ -1496,6 +1524,10 @@ var CONVERSION_MAP = {
1496
1524
  [CurrencyUnit.TZS]: toSatoshiConversion,
1497
1525
  [CurrencyUnit.UGX]: toSatoshiConversion,
1498
1526
  [CurrencyUnit.BWP]: toSatoshiConversion,
1527
+ [CurrencyUnit.XOF]: toSatoshiConversion,
1528
+ [CurrencyUnit.XAF]: toSatoshiConversion,
1529
+ [CurrencyUnit.MWK]: toSatoshiConversion,
1530
+ [CurrencyUnit.RWF]: toSatoshiConversion,
1499
1531
  [CurrencyUnit.USDT]: toSatoshiConversion,
1500
1532
  [CurrencyUnit.USDC]: toSatoshiConversion
1501
1533
  },
@@ -1520,6 +1552,10 @@ var CONVERSION_MAP = {
1520
1552
  [CurrencyUnit.TZS]: standardUnitConversionObj,
1521
1553
  [CurrencyUnit.UGX]: standardUnitConversionObj,
1522
1554
  [CurrencyUnit.BWP]: standardUnitConversionObj,
1555
+ [CurrencyUnit.XOF]: standardUnitConversionObj,
1556
+ [CurrencyUnit.XAF]: standardUnitConversionObj,
1557
+ [CurrencyUnit.MWK]: standardUnitConversionObj,
1558
+ [CurrencyUnit.RWF]: standardUnitConversionObj,
1523
1559
  [CurrencyUnit.USDT]: standardUnitConversionObj,
1524
1560
  [CurrencyUnit.USDC]: standardUnitConversionObj
1525
1561
  };
@@ -1622,6 +1658,10 @@ function convertCurrencyAmountValues(fromUnit, amount, unitsPerBtc = 1, conversi
1622
1658
  tzs: CurrencyUnit.TZS,
1623
1659
  ugx: CurrencyUnit.UGX,
1624
1660
  bwp: CurrencyUnit.BWP,
1661
+ xof: CurrencyUnit.XOF,
1662
+ xaf: CurrencyUnit.XAF,
1663
+ mwk: CurrencyUnit.MWK,
1664
+ rwf: CurrencyUnit.RWF,
1625
1665
  mibtc: CurrencyUnit.MICROBITCOIN,
1626
1666
  mlbtc: CurrencyUnit.MILLIBITCOIN,
1627
1667
  nbtc: CurrencyUnit.NANOBITCOIN,
@@ -1690,6 +1730,10 @@ function mapCurrencyAmount(currencyAmountArg, unitsPerBtc = 1) {
1690
1730
  tzs,
1691
1731
  ugx,
1692
1732
  bwp,
1733
+ xof,
1734
+ xaf,
1735
+ mwk,
1736
+ rwf,
1693
1737
  usdt,
1694
1738
  usdc
1695
1739
  } = convertCurrencyAmountValues(unit, value, unitsPerBtc, conversionOverride);
@@ -1718,6 +1762,10 @@ function mapCurrencyAmount(currencyAmountArg, unitsPerBtc = 1) {
1718
1762
  [CurrencyUnit.TZS]: tzs,
1719
1763
  [CurrencyUnit.UGX]: ugx,
1720
1764
  [CurrencyUnit.BWP]: bwp,
1765
+ [CurrencyUnit.XOF]: xof,
1766
+ [CurrencyUnit.XAF]: xaf,
1767
+ [CurrencyUnit.MWK]: mwk,
1768
+ [CurrencyUnit.RWF]: rwf,
1721
1769
  [CurrencyUnit.MICROBITCOIN]: mibtc,
1722
1770
  [CurrencyUnit.MILLIBITCOIN]: mlbtc,
1723
1771
  [CurrencyUnit.NANOBITCOIN]: nbtc,
@@ -1833,6 +1881,22 @@ function mapCurrencyAmount(currencyAmountArg, unitsPerBtc = 1) {
1833
1881
  value: bwp,
1834
1882
  unit: CurrencyUnit.BWP
1835
1883
  }),
1884
+ [CurrencyUnit.XOF]: formatCurrencyStr({
1885
+ value: xof,
1886
+ unit: CurrencyUnit.XOF
1887
+ }),
1888
+ [CurrencyUnit.XAF]: formatCurrencyStr({
1889
+ value: xaf,
1890
+ unit: CurrencyUnit.XAF
1891
+ }),
1892
+ [CurrencyUnit.MWK]: formatCurrencyStr({
1893
+ value: mwk,
1894
+ unit: CurrencyUnit.MWK
1895
+ }),
1896
+ [CurrencyUnit.RWF]: formatCurrencyStr({
1897
+ value: rwf,
1898
+ unit: CurrencyUnit.RWF
1899
+ }),
1836
1900
  [CurrencyUnit.USDT]: formatCurrencyStr({
1837
1901
  value: usdt,
1838
1902
  unit: CurrencyUnit.USDT
@@ -1945,6 +2009,14 @@ var abbrCurrencyUnit = (unit) => {
1945
2009
  return "UGX";
1946
2010
  case CurrencyUnit.BWP:
1947
2011
  return "BWP";
2012
+ case CurrencyUnit.XOF:
2013
+ return "XOF";
2014
+ case CurrencyUnit.XAF:
2015
+ return "XAF";
2016
+ case CurrencyUnit.MWK:
2017
+ return "MWK";
2018
+ case CurrencyUnit.RWF:
2019
+ return "RWF";
1948
2020
  }
1949
2021
  return "Unsupported CurrencyUnit";
1950
2022
  };
@@ -2061,6 +2133,9 @@ function formatCurrencyStr(amount, options) {
2061
2133
  return formattedStr;
2062
2134
  }
2063
2135
  const unitStr = isUmaCurrencyAmount(amount) ? amount.currency.code : abbrCurrencyUnit(unit);
2136
+ if (formattedStr.includes(unitStr)) {
2137
+ return formattedStr;
2138
+ }
2064
2139
  const unitSuffix = options?.appendUnits?.plural && num > 1 ? "s" : "";
2065
2140
  const unitStrWithSuffix = `${unitStr}${unitSuffix}`;
2066
2141
  formattedStr += ` ${options?.appendUnits?.lowercase ? unitStrWithSuffix.toLowerCase() : unitStrWithSuffix}`;
@@ -1,6 +1,6 @@
1
1
  import { Client } from 'graphql-ws';
2
2
  import { Observable } from 'zen-observable-ts';
3
- export { A as AppendUnitsOptions, ae as ById, ap as Complete, C as ConfigKeys, o as CurrencyAmountArg, k as CurrencyAmountInputObj, m as CurrencyAmountObj, n as CurrencyAmountPreferenceObj, Y as CurrencyCodes, X as CurrencyLocales, j as CurrencyMap, f as CurrencyUnit, g as CurrencyUnitType, ai as DeepPartial, D as DeprecatedCurrencyAmountObj, ad as ExpandRecursively, ah as ExtractByTypename, aj as JSONLiteral, al as JSONObject, ak as JSONType, ac as Maybe, am as NN, af as OmitTypename, ao as PartialBy, aq as RequiredKeys, S as SDKCurrencyAmountType, ar as StateCode, U as UmaCurrency, l as UmaCurrencyAmount, z as abbrCurrencyUnit, b as b64decode, a as b64encode, R as bytesToHex, a2 as clamp, i as convertCurrencyAmount, h as convertCurrencyAmountValue, W as countryCodesToCurrencyCodes, c as createSha256Hash, d as defaultCurrencyCode, a1 as deleteLocalStorageItem, e as ensureArray, Q as errorToJSON, B as formatCurrencyStr, G as formatInviteAmount, w as getCurrencyAmount, V as getCurrentLocale, O as getErrorMsg, $ as getLocalStorageBoolean, _ as getLocalStorageConfigItem, T as hexToBytes, K as isBare, H as isBrowser, p as isCurrencyAmountInputObj, s as isCurrencyAmountObj, t as isCurrencyAmountPreferenceObj, y as isCurrencyMap, r as isDeprecatedCurrencyAmountObj, M as isError, P as isErrorMsg, N as isErrorWithMessage, I as isNode, a5 as isNumber, aa as isObject, L as isReactNative, ab as isRecord, v as isSDKCurrencyAmount, J as isTest, ag as isType, a9 as isUint8Array, q as isUmaCurrencyAmount, a3 as linearInterpolate, Z as localeToCurrencyCode, F as localeToCurrencySymbol, a8 as lsidToUUID, x as mapCurrencyAmount, an as notNullUndefined, a6 as pollUntil, a4 as round, E as separateCurrencyStrParts, a0 as setLocalStorageBoolean, a7 as sleep, u as urlsafe_b64decode, at as zipcodeToState, as as zipcodeToStateCode } from '../index-HyhbxNE8.cjs';
3
+ export { A as AppendUnitsOptions, ae as ById, ap as Complete, C as ConfigKeys, o as CurrencyAmountArg, k as CurrencyAmountInputObj, m as CurrencyAmountObj, n as CurrencyAmountPreferenceObj, Y as CurrencyCodes, X as CurrencyLocales, j as CurrencyMap, f as CurrencyUnit, g as CurrencyUnitType, ai as DeepPartial, D as DeprecatedCurrencyAmountObj, ad as ExpandRecursively, ah as ExtractByTypename, aj as JSONLiteral, al as JSONObject, ak as JSONType, ac as Maybe, am as NN, af as OmitTypename, ao as PartialBy, aq as RequiredKeys, S as SDKCurrencyAmountType, ar as StateCode, U as UmaCurrency, l as UmaCurrencyAmount, z as abbrCurrencyUnit, b as b64decode, a as b64encode, R as bytesToHex, a2 as clamp, i as convertCurrencyAmount, h as convertCurrencyAmountValue, W as countryCodesToCurrencyCodes, c as createSha256Hash, d as defaultCurrencyCode, a1 as deleteLocalStorageItem, e as ensureArray, Q as errorToJSON, B as formatCurrencyStr, G as formatInviteAmount, w as getCurrencyAmount, V as getCurrentLocale, O as getErrorMsg, $ as getLocalStorageBoolean, _ as getLocalStorageConfigItem, T as hexToBytes, K as isBare, H as isBrowser, p as isCurrencyAmountInputObj, s as isCurrencyAmountObj, t as isCurrencyAmountPreferenceObj, y as isCurrencyMap, r as isDeprecatedCurrencyAmountObj, M as isError, P as isErrorMsg, N as isErrorWithMessage, I as isNode, a5 as isNumber, aa as isObject, L as isReactNative, ab as isRecord, v as isSDKCurrencyAmount, J as isTest, ag as isType, a9 as isUint8Array, q as isUmaCurrencyAmount, a3 as linearInterpolate, Z as localeToCurrencyCode, F as localeToCurrencySymbol, a8 as lsidToUUID, x as mapCurrencyAmount, an as notNullUndefined, a6 as pollUntil, a4 as round, E as separateCurrencyStrParts, a0 as setLocalStorageBoolean, a7 as sleep, u as urlsafe_b64decode, at as zipcodeToState, as as zipcodeToStateCode } from '../index-JEN9VvIL.cjs';
4
4
 
5
5
  type Headers = Record<string, string>;
6
6
  type WsConnectionParams = Record<string, unknown>;
@@ -1,6 +1,6 @@
1
1
  import { Client } from 'graphql-ws';
2
2
  import { Observable } from 'zen-observable-ts';
3
- export { A as AppendUnitsOptions, ae as ById, ap as Complete, C as ConfigKeys, o as CurrencyAmountArg, k as CurrencyAmountInputObj, m as CurrencyAmountObj, n as CurrencyAmountPreferenceObj, Y as CurrencyCodes, X as CurrencyLocales, j as CurrencyMap, f as CurrencyUnit, g as CurrencyUnitType, ai as DeepPartial, D as DeprecatedCurrencyAmountObj, ad as ExpandRecursively, ah as ExtractByTypename, aj as JSONLiteral, al as JSONObject, ak as JSONType, ac as Maybe, am as NN, af as OmitTypename, ao as PartialBy, aq as RequiredKeys, S as SDKCurrencyAmountType, ar as StateCode, U as UmaCurrency, l as UmaCurrencyAmount, z as abbrCurrencyUnit, b as b64decode, a as b64encode, R as bytesToHex, a2 as clamp, i as convertCurrencyAmount, h as convertCurrencyAmountValue, W as countryCodesToCurrencyCodes, c as createSha256Hash, d as defaultCurrencyCode, a1 as deleteLocalStorageItem, e as ensureArray, Q as errorToJSON, B as formatCurrencyStr, G as formatInviteAmount, w as getCurrencyAmount, V as getCurrentLocale, O as getErrorMsg, $ as getLocalStorageBoolean, _ as getLocalStorageConfigItem, T as hexToBytes, K as isBare, H as isBrowser, p as isCurrencyAmountInputObj, s as isCurrencyAmountObj, t as isCurrencyAmountPreferenceObj, y as isCurrencyMap, r as isDeprecatedCurrencyAmountObj, M as isError, P as isErrorMsg, N as isErrorWithMessage, I as isNode, a5 as isNumber, aa as isObject, L as isReactNative, ab as isRecord, v as isSDKCurrencyAmount, J as isTest, ag as isType, a9 as isUint8Array, q as isUmaCurrencyAmount, a3 as linearInterpolate, Z as localeToCurrencyCode, F as localeToCurrencySymbol, a8 as lsidToUUID, x as mapCurrencyAmount, an as notNullUndefined, a6 as pollUntil, a4 as round, E as separateCurrencyStrParts, a0 as setLocalStorageBoolean, a7 as sleep, u as urlsafe_b64decode, at as zipcodeToState, as as zipcodeToStateCode } from '../index-HyhbxNE8.js';
3
+ export { A as AppendUnitsOptions, ae as ById, ap as Complete, C as ConfigKeys, o as CurrencyAmountArg, k as CurrencyAmountInputObj, m as CurrencyAmountObj, n as CurrencyAmountPreferenceObj, Y as CurrencyCodes, X as CurrencyLocales, j as CurrencyMap, f as CurrencyUnit, g as CurrencyUnitType, ai as DeepPartial, D as DeprecatedCurrencyAmountObj, ad as ExpandRecursively, ah as ExtractByTypename, aj as JSONLiteral, al as JSONObject, ak as JSONType, ac as Maybe, am as NN, af as OmitTypename, ao as PartialBy, aq as RequiredKeys, S as SDKCurrencyAmountType, ar as StateCode, U as UmaCurrency, l as UmaCurrencyAmount, z as abbrCurrencyUnit, b as b64decode, a as b64encode, R as bytesToHex, a2 as clamp, i as convertCurrencyAmount, h as convertCurrencyAmountValue, W as countryCodesToCurrencyCodes, c as createSha256Hash, d as defaultCurrencyCode, a1 as deleteLocalStorageItem, e as ensureArray, Q as errorToJSON, B as formatCurrencyStr, G as formatInviteAmount, w as getCurrencyAmount, V as getCurrentLocale, O as getErrorMsg, $ as getLocalStorageBoolean, _ as getLocalStorageConfigItem, T as hexToBytes, K as isBare, H as isBrowser, p as isCurrencyAmountInputObj, s as isCurrencyAmountObj, t as isCurrencyAmountPreferenceObj, y as isCurrencyMap, r as isDeprecatedCurrencyAmountObj, M as isError, P as isErrorMsg, N as isErrorWithMessage, I as isNode, a5 as isNumber, aa as isObject, L as isReactNative, ab as isRecord, v as isSDKCurrencyAmount, J as isTest, ag as isType, a9 as isUint8Array, q as isUmaCurrencyAmount, a3 as linearInterpolate, Z as localeToCurrencyCode, F as localeToCurrencySymbol, a8 as lsidToUUID, x as mapCurrencyAmount, an as notNullUndefined, a6 as pollUntil, a4 as round, E as separateCurrencyStrParts, a0 as setLocalStorageBoolean, a7 as sleep, u as urlsafe_b64decode, at as zipcodeToState, as as zipcodeToStateCode } from '../index-JEN9VvIL.js';
4
4
 
5
5
  type Headers = Record<string, string>;
6
6
  type WsConnectionParams = Record<string, unknown>;
@@ -16,7 +16,7 @@ import {
16
16
  StubAuthProvider,
17
17
  apiDomainForEnvironment,
18
18
  logger
19
- } from "../chunk-RGVVA4QG.js";
19
+ } from "../chunk-YOHZRRM2.js";
20
20
  import {
21
21
  CurrencyUnit,
22
22
  LightsparkException_default,
@@ -75,7 +75,7 @@ import {
75
75
  urlsafe_b64decode,
76
76
  zipcodeToState,
77
77
  zipcodeToStateCode
78
- } from "../chunk-W4DKUOEW.js";
78
+ } from "../chunk-7TABKK5I.js";
79
79
  export {
80
80
  ConfigKeys,
81
81
  CurrencyUnit,
@@ -519,6 +519,10 @@ var CurrencyUnit = {
519
519
  TZS: "TZS",
520
520
  UGX: "UGX",
521
521
  BWP: "BWP",
522
+ XOF: "XOF",
523
+ XAF: "XAF",
524
+ MWK: "MWK",
525
+ RWF: "RWF",
522
526
  USDT: "USDT",
523
527
  USDC: "USDC",
524
528
  Bitcoin: "BITCOIN",
@@ -565,6 +569,10 @@ var standardUnitConversionObj = {
565
569
  [CurrencyUnit.TZS]: (v) => v,
566
570
  [CurrencyUnit.UGX]: (v) => v,
567
571
  [CurrencyUnit.BWP]: (v) => v,
572
+ [CurrencyUnit.XOF]: (v) => v,
573
+ [CurrencyUnit.XAF]: (v) => v,
574
+ [CurrencyUnit.MWK]: (v) => v,
575
+ [CurrencyUnit.RWF]: (v) => v,
568
576
  [CurrencyUnit.USDT]: (v) => v,
569
577
  [CurrencyUnit.USDC]: (v) => v
570
578
  };
@@ -603,6 +611,10 @@ var CONVERSION_MAP = {
603
611
  [CurrencyUnit.TZS]: toBitcoinConversion,
604
612
  [CurrencyUnit.UGX]: toBitcoinConversion,
605
613
  [CurrencyUnit.BWP]: toBitcoinConversion,
614
+ [CurrencyUnit.XOF]: toBitcoinConversion,
615
+ [CurrencyUnit.XAF]: toBitcoinConversion,
616
+ [CurrencyUnit.MWK]: toBitcoinConversion,
617
+ [CurrencyUnit.RWF]: toBitcoinConversion,
606
618
  [CurrencyUnit.USDT]: toBitcoinConversion,
607
619
  [CurrencyUnit.USDC]: toBitcoinConversion
608
620
  },
@@ -634,6 +646,10 @@ var CONVERSION_MAP = {
634
646
  [CurrencyUnit.TZS]: toMicrobitcoinConversion,
635
647
  [CurrencyUnit.UGX]: toMicrobitcoinConversion,
636
648
  [CurrencyUnit.BWP]: toMicrobitcoinConversion,
649
+ [CurrencyUnit.XOF]: toMicrobitcoinConversion,
650
+ [CurrencyUnit.XAF]: toMicrobitcoinConversion,
651
+ [CurrencyUnit.MWK]: toMicrobitcoinConversion,
652
+ [CurrencyUnit.RWF]: toMicrobitcoinConversion,
637
653
  [CurrencyUnit.USDT]: toMicrobitcoinConversion,
638
654
  [CurrencyUnit.USDC]: toMicrobitcoinConversion
639
655
  },
@@ -665,6 +681,10 @@ var CONVERSION_MAP = {
665
681
  [CurrencyUnit.TZS]: toMillibitcoinConversion,
666
682
  [CurrencyUnit.UGX]: toMillibitcoinConversion,
667
683
  [CurrencyUnit.BWP]: toMillibitcoinConversion,
684
+ [CurrencyUnit.XOF]: toMillibitcoinConversion,
685
+ [CurrencyUnit.XAF]: toMillibitcoinConversion,
686
+ [CurrencyUnit.MWK]: toMillibitcoinConversion,
687
+ [CurrencyUnit.RWF]: toMillibitcoinConversion,
668
688
  [CurrencyUnit.USDT]: toMillibitcoinConversion,
669
689
  [CurrencyUnit.USDC]: toMillibitcoinConversion
670
690
  },
@@ -696,6 +716,10 @@ var CONVERSION_MAP = {
696
716
  [CurrencyUnit.TZS]: toMillisatoshiConversion,
697
717
  [CurrencyUnit.UGX]: toMillisatoshiConversion,
698
718
  [CurrencyUnit.BWP]: toMillisatoshiConversion,
719
+ [CurrencyUnit.XOF]: toMillisatoshiConversion,
720
+ [CurrencyUnit.XAF]: toMillisatoshiConversion,
721
+ [CurrencyUnit.MWK]: toMillisatoshiConversion,
722
+ [CurrencyUnit.RWF]: toMillisatoshiConversion,
699
723
  [CurrencyUnit.USDT]: toMillisatoshiConversion,
700
724
  [CurrencyUnit.USDC]: toMillisatoshiConversion
701
725
  },
@@ -727,6 +751,10 @@ var CONVERSION_MAP = {
727
751
  [CurrencyUnit.TZS]: toNanobitcoinConversion,
728
752
  [CurrencyUnit.UGX]: toNanobitcoinConversion,
729
753
  [CurrencyUnit.BWP]: toNanobitcoinConversion,
754
+ [CurrencyUnit.XOF]: toNanobitcoinConversion,
755
+ [CurrencyUnit.XAF]: toNanobitcoinConversion,
756
+ [CurrencyUnit.MWK]: toNanobitcoinConversion,
757
+ [CurrencyUnit.RWF]: toNanobitcoinConversion,
730
758
  [CurrencyUnit.USDT]: toNanobitcoinConversion,
731
759
  [CurrencyUnit.USDC]: toNanobitcoinConversion
732
760
  },
@@ -758,6 +786,10 @@ var CONVERSION_MAP = {
758
786
  [CurrencyUnit.TZS]: toSatoshiConversion,
759
787
  [CurrencyUnit.UGX]: toSatoshiConversion,
760
788
  [CurrencyUnit.BWP]: toSatoshiConversion,
789
+ [CurrencyUnit.XOF]: toSatoshiConversion,
790
+ [CurrencyUnit.XAF]: toSatoshiConversion,
791
+ [CurrencyUnit.MWK]: toSatoshiConversion,
792
+ [CurrencyUnit.RWF]: toSatoshiConversion,
761
793
  [CurrencyUnit.USDT]: toSatoshiConversion,
762
794
  [CurrencyUnit.USDC]: toSatoshiConversion
763
795
  },
@@ -782,6 +814,10 @@ var CONVERSION_MAP = {
782
814
  [CurrencyUnit.TZS]: standardUnitConversionObj,
783
815
  [CurrencyUnit.UGX]: standardUnitConversionObj,
784
816
  [CurrencyUnit.BWP]: standardUnitConversionObj,
817
+ [CurrencyUnit.XOF]: standardUnitConversionObj,
818
+ [CurrencyUnit.XAF]: standardUnitConversionObj,
819
+ [CurrencyUnit.MWK]: standardUnitConversionObj,
820
+ [CurrencyUnit.RWF]: standardUnitConversionObj,
785
821
  [CurrencyUnit.USDT]: standardUnitConversionObj,
786
822
  [CurrencyUnit.USDC]: standardUnitConversionObj
787
823
  };
@@ -884,6 +920,10 @@ function convertCurrencyAmountValues(fromUnit, amount, unitsPerBtc = 1, conversi
884
920
  tzs: CurrencyUnit.TZS,
885
921
  ugx: CurrencyUnit.UGX,
886
922
  bwp: CurrencyUnit.BWP,
923
+ xof: CurrencyUnit.XOF,
924
+ xaf: CurrencyUnit.XAF,
925
+ mwk: CurrencyUnit.MWK,
926
+ rwf: CurrencyUnit.RWF,
887
927
  mibtc: CurrencyUnit.MICROBITCOIN,
888
928
  mlbtc: CurrencyUnit.MILLIBITCOIN,
889
929
  nbtc: CurrencyUnit.NANOBITCOIN,
@@ -952,6 +992,10 @@ function mapCurrencyAmount(currencyAmountArg, unitsPerBtc = 1) {
952
992
  tzs,
953
993
  ugx,
954
994
  bwp,
995
+ xof,
996
+ xaf,
997
+ mwk,
998
+ rwf,
955
999
  usdt,
956
1000
  usdc
957
1001
  } = convertCurrencyAmountValues(unit, value, unitsPerBtc, conversionOverride);
@@ -980,6 +1024,10 @@ function mapCurrencyAmount(currencyAmountArg, unitsPerBtc = 1) {
980
1024
  [CurrencyUnit.TZS]: tzs,
981
1025
  [CurrencyUnit.UGX]: ugx,
982
1026
  [CurrencyUnit.BWP]: bwp,
1027
+ [CurrencyUnit.XOF]: xof,
1028
+ [CurrencyUnit.XAF]: xaf,
1029
+ [CurrencyUnit.MWK]: mwk,
1030
+ [CurrencyUnit.RWF]: rwf,
983
1031
  [CurrencyUnit.MICROBITCOIN]: mibtc,
984
1032
  [CurrencyUnit.MILLIBITCOIN]: mlbtc,
985
1033
  [CurrencyUnit.NANOBITCOIN]: nbtc,
@@ -1095,6 +1143,22 @@ function mapCurrencyAmount(currencyAmountArg, unitsPerBtc = 1) {
1095
1143
  value: bwp,
1096
1144
  unit: CurrencyUnit.BWP
1097
1145
  }),
1146
+ [CurrencyUnit.XOF]: formatCurrencyStr({
1147
+ value: xof,
1148
+ unit: CurrencyUnit.XOF
1149
+ }),
1150
+ [CurrencyUnit.XAF]: formatCurrencyStr({
1151
+ value: xaf,
1152
+ unit: CurrencyUnit.XAF
1153
+ }),
1154
+ [CurrencyUnit.MWK]: formatCurrencyStr({
1155
+ value: mwk,
1156
+ unit: CurrencyUnit.MWK
1157
+ }),
1158
+ [CurrencyUnit.RWF]: formatCurrencyStr({
1159
+ value: rwf,
1160
+ unit: CurrencyUnit.RWF
1161
+ }),
1098
1162
  [CurrencyUnit.USDT]: formatCurrencyStr({
1099
1163
  value: usdt,
1100
1164
  unit: CurrencyUnit.USDT
@@ -1207,6 +1271,14 @@ var abbrCurrencyUnit = (unit) => {
1207
1271
  return "UGX";
1208
1272
  case CurrencyUnit.BWP:
1209
1273
  return "BWP";
1274
+ case CurrencyUnit.XOF:
1275
+ return "XOF";
1276
+ case CurrencyUnit.XAF:
1277
+ return "XAF";
1278
+ case CurrencyUnit.MWK:
1279
+ return "MWK";
1280
+ case CurrencyUnit.RWF:
1281
+ return "RWF";
1210
1282
  }
1211
1283
  return "Unsupported CurrencyUnit";
1212
1284
  };
@@ -1323,6 +1395,9 @@ function formatCurrencyStr(amount, options) {
1323
1395
  return formattedStr;
1324
1396
  }
1325
1397
  const unitStr = isUmaCurrencyAmount(amount) ? amount.currency.code : abbrCurrencyUnit(unit);
1398
+ if (formattedStr.includes(unitStr)) {
1399
+ return formattedStr;
1400
+ }
1326
1401
  const unitSuffix = options?.appendUnits?.plural && num > 1 ? "s" : "";
1327
1402
  const unitStrWithSuffix = `${unitStr}${unitSuffix}`;
1328
1403
  formattedStr += ` ${options?.appendUnits?.lowercase ? unitStrWithSuffix.toLowerCase() : unitStrWithSuffix}`;
@@ -1 +1 @@
1
- export { A as AppendUnitsOptions, ae as ById, ap as Complete, o as CurrencyAmountArg, k as CurrencyAmountInputObj, m as CurrencyAmountObj, n as CurrencyAmountPreferenceObj, Y as CurrencyCodes, X as CurrencyLocales, j as CurrencyMap, f as CurrencyUnit, g as CurrencyUnitType, ai as DeepPartial, D as DeprecatedCurrencyAmountObj, ad as ExpandRecursively, ah as ExtractByTypename, aj as JSONLiteral, al as JSONObject, ak as JSONType, ac as Maybe, am as NN, af as OmitTypename, ao as PartialBy, aq as RequiredKeys, S as SDKCurrencyAmountType, ar as StateCode, U as UmaCurrency, l as UmaCurrencyAmount, z as abbrCurrencyUnit, b as b64decode, a as b64encode, R as bytesToHex, a2 as clamp, i as convertCurrencyAmount, h as convertCurrencyAmountValue, W as countryCodesToCurrencyCodes, c as createSha256Hash, d as defaultCurrencyCode, a1 as deleteLocalStorageItem, e as ensureArray, Q as errorToJSON, B as formatCurrencyStr, G as formatInviteAmount, w as getCurrencyAmount, V as getCurrentLocale, O as getErrorMsg, $ as getLocalStorageBoolean, _ as getLocalStorageConfigItem, T as hexToBytes, K as isBare, H as isBrowser, p as isCurrencyAmountInputObj, s as isCurrencyAmountObj, t as isCurrencyAmountPreferenceObj, y as isCurrencyMap, r as isDeprecatedCurrencyAmountObj, M as isError, P as isErrorMsg, N as isErrorWithMessage, I as isNode, a5 as isNumber, aa as isObject, L as isReactNative, ab as isRecord, v as isSDKCurrencyAmount, J as isTest, ag as isType, a9 as isUint8Array, q as isUmaCurrencyAmount, a3 as linearInterpolate, Z as localeToCurrencyCode, F as localeToCurrencySymbol, a8 as lsidToUUID, x as mapCurrencyAmount, an as notNullUndefined, a6 as pollUntil, a4 as round, E as separateCurrencyStrParts, a0 as setLocalStorageBoolean, a7 as sleep, u as urlsafe_b64decode, at as zipcodeToState, as as zipcodeToStateCode } from '../index-HyhbxNE8.cjs';
1
+ export { A as AppendUnitsOptions, ae as ById, ap as Complete, o as CurrencyAmountArg, k as CurrencyAmountInputObj, m as CurrencyAmountObj, n as CurrencyAmountPreferenceObj, Y as CurrencyCodes, X as CurrencyLocales, j as CurrencyMap, f as CurrencyUnit, g as CurrencyUnitType, ai as DeepPartial, D as DeprecatedCurrencyAmountObj, ad as ExpandRecursively, ah as ExtractByTypename, aj as JSONLiteral, al as JSONObject, ak as JSONType, ac as Maybe, am as NN, af as OmitTypename, ao as PartialBy, aq as RequiredKeys, S as SDKCurrencyAmountType, ar as StateCode, U as UmaCurrency, l as UmaCurrencyAmount, z as abbrCurrencyUnit, b as b64decode, a as b64encode, R as bytesToHex, a2 as clamp, i as convertCurrencyAmount, h as convertCurrencyAmountValue, W as countryCodesToCurrencyCodes, c as createSha256Hash, d as defaultCurrencyCode, a1 as deleteLocalStorageItem, e as ensureArray, Q as errorToJSON, B as formatCurrencyStr, G as formatInviteAmount, w as getCurrencyAmount, V as getCurrentLocale, O as getErrorMsg, $ as getLocalStorageBoolean, _ as getLocalStorageConfigItem, T as hexToBytes, K as isBare, H as isBrowser, p as isCurrencyAmountInputObj, s as isCurrencyAmountObj, t as isCurrencyAmountPreferenceObj, y as isCurrencyMap, r as isDeprecatedCurrencyAmountObj, M as isError, P as isErrorMsg, N as isErrorWithMessage, I as isNode, a5 as isNumber, aa as isObject, L as isReactNative, ab as isRecord, v as isSDKCurrencyAmount, J as isTest, ag as isType, a9 as isUint8Array, q as isUmaCurrencyAmount, a3 as linearInterpolate, Z as localeToCurrencyCode, F as localeToCurrencySymbol, a8 as lsidToUUID, x as mapCurrencyAmount, an as notNullUndefined, a6 as pollUntil, a4 as round, E as separateCurrencyStrParts, a0 as setLocalStorageBoolean, a7 as sleep, u as urlsafe_b64decode, at as zipcodeToState, as as zipcodeToStateCode } from '../index-JEN9VvIL.cjs';
@@ -1 +1 @@
1
- export { A as AppendUnitsOptions, ae as ById, ap as Complete, o as CurrencyAmountArg, k as CurrencyAmountInputObj, m as CurrencyAmountObj, n as CurrencyAmountPreferenceObj, Y as CurrencyCodes, X as CurrencyLocales, j as CurrencyMap, f as CurrencyUnit, g as CurrencyUnitType, ai as DeepPartial, D as DeprecatedCurrencyAmountObj, ad as ExpandRecursively, ah as ExtractByTypename, aj as JSONLiteral, al as JSONObject, ak as JSONType, ac as Maybe, am as NN, af as OmitTypename, ao as PartialBy, aq as RequiredKeys, S as SDKCurrencyAmountType, ar as StateCode, U as UmaCurrency, l as UmaCurrencyAmount, z as abbrCurrencyUnit, b as b64decode, a as b64encode, R as bytesToHex, a2 as clamp, i as convertCurrencyAmount, h as convertCurrencyAmountValue, W as countryCodesToCurrencyCodes, c as createSha256Hash, d as defaultCurrencyCode, a1 as deleteLocalStorageItem, e as ensureArray, Q as errorToJSON, B as formatCurrencyStr, G as formatInviteAmount, w as getCurrencyAmount, V as getCurrentLocale, O as getErrorMsg, $ as getLocalStorageBoolean, _ as getLocalStorageConfigItem, T as hexToBytes, K as isBare, H as isBrowser, p as isCurrencyAmountInputObj, s as isCurrencyAmountObj, t as isCurrencyAmountPreferenceObj, y as isCurrencyMap, r as isDeprecatedCurrencyAmountObj, M as isError, P as isErrorMsg, N as isErrorWithMessage, I as isNode, a5 as isNumber, aa as isObject, L as isReactNative, ab as isRecord, v as isSDKCurrencyAmount, J as isTest, ag as isType, a9 as isUint8Array, q as isUmaCurrencyAmount, a3 as linearInterpolate, Z as localeToCurrencyCode, F as localeToCurrencySymbol, a8 as lsidToUUID, x as mapCurrencyAmount, an as notNullUndefined, a6 as pollUntil, a4 as round, E as separateCurrencyStrParts, a0 as setLocalStorageBoolean, a7 as sleep, u as urlsafe_b64decode, at as zipcodeToState, as as zipcodeToStateCode } from '../index-HyhbxNE8.js';
1
+ export { A as AppendUnitsOptions, ae as ById, ap as Complete, o as CurrencyAmountArg, k as CurrencyAmountInputObj, m as CurrencyAmountObj, n as CurrencyAmountPreferenceObj, Y as CurrencyCodes, X as CurrencyLocales, j as CurrencyMap, f as CurrencyUnit, g as CurrencyUnitType, ai as DeepPartial, D as DeprecatedCurrencyAmountObj, ad as ExpandRecursively, ah as ExtractByTypename, aj as JSONLiteral, al as JSONObject, ak as JSONType, ac as Maybe, am as NN, af as OmitTypename, ao as PartialBy, aq as RequiredKeys, S as SDKCurrencyAmountType, ar as StateCode, U as UmaCurrency, l as UmaCurrencyAmount, z as abbrCurrencyUnit, b as b64decode, a as b64encode, R as bytesToHex, a2 as clamp, i as convertCurrencyAmount, h as convertCurrencyAmountValue, W as countryCodesToCurrencyCodes, c as createSha256Hash, d as defaultCurrencyCode, a1 as deleteLocalStorageItem, e as ensureArray, Q as errorToJSON, B as formatCurrencyStr, G as formatInviteAmount, w as getCurrencyAmount, V as getCurrentLocale, O as getErrorMsg, $ as getLocalStorageBoolean, _ as getLocalStorageConfigItem, T as hexToBytes, K as isBare, H as isBrowser, p as isCurrencyAmountInputObj, s as isCurrencyAmountObj, t as isCurrencyAmountPreferenceObj, y as isCurrencyMap, r as isDeprecatedCurrencyAmountObj, M as isError, P as isErrorMsg, N as isErrorWithMessage, I as isNode, a5 as isNumber, aa as isObject, L as isReactNative, ab as isRecord, v as isSDKCurrencyAmount, J as isTest, ag as isType, a9 as isUint8Array, q as isUmaCurrencyAmount, a3 as linearInterpolate, Z as localeToCurrencyCode, F as localeToCurrencySymbol, a8 as lsidToUUID, x as mapCurrencyAmount, an as notNullUndefined, a6 as pollUntil, a4 as round, E as separateCurrencyStrParts, a0 as setLocalStorageBoolean, a7 as sleep, u as urlsafe_b64decode, at as zipcodeToState, as as zipcodeToStateCode } from '../index-JEN9VvIL.js';
@@ -55,7 +55,7 @@ import {
55
55
  urlsafe_b64decode,
56
56
  zipcodeToState,
57
57
  zipcodeToStateCode
58
- } from "../chunk-W4DKUOEW.js";
58
+ } from "../chunk-7TABKK5I.js";
59
59
  export {
60
60
  CurrencyUnit,
61
61
  abbrCurrencyUnit,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lightsparkdev/core",
3
- "version": "1.4.7",
3
+ "version": "1.4.8",
4
4
  "description": "Lightspark JS SDK",
5
5
  "author": "Lightspark Inc.",
6
6
  "keywords": [
@@ -39,6 +39,10 @@ export const CurrencyUnit = {
39
39
  TZS: "TZS",
40
40
  UGX: "UGX",
41
41
  BWP: "BWP",
42
+ XOF: "XOF",
43
+ XAF: "XAF",
44
+ MWK: "MWK",
45
+ RWF: "RWF",
42
46
  USDT: "USDT",
43
47
  USDC: "USDC",
44
48
 
@@ -102,6 +106,10 @@ const standardUnitConversionObj = {
102
106
  [CurrencyUnit.TZS]: (v: number) => v,
103
107
  [CurrencyUnit.UGX]: (v: number) => v,
104
108
  [CurrencyUnit.BWP]: (v: number) => v,
109
+ [CurrencyUnit.XOF]: (v: number) => v,
110
+ [CurrencyUnit.XAF]: (v: number) => v,
111
+ [CurrencyUnit.MWK]: (v: number) => v,
112
+ [CurrencyUnit.RWF]: (v: number) => v,
105
113
  [CurrencyUnit.USDT]: (v: number) => v,
106
114
  [CurrencyUnit.USDC]: (v: number) => v,
107
115
  };
@@ -149,6 +157,10 @@ const CONVERSION_MAP = {
149
157
  [CurrencyUnit.TZS]: toBitcoinConversion,
150
158
  [CurrencyUnit.UGX]: toBitcoinConversion,
151
159
  [CurrencyUnit.BWP]: toBitcoinConversion,
160
+ [CurrencyUnit.XOF]: toBitcoinConversion,
161
+ [CurrencyUnit.XAF]: toBitcoinConversion,
162
+ [CurrencyUnit.MWK]: toBitcoinConversion,
163
+ [CurrencyUnit.RWF]: toBitcoinConversion,
152
164
  [CurrencyUnit.USDT]: toBitcoinConversion,
153
165
  [CurrencyUnit.USDC]: toBitcoinConversion,
154
166
  },
@@ -180,6 +192,10 @@ const CONVERSION_MAP = {
180
192
  [CurrencyUnit.TZS]: toMicrobitcoinConversion,
181
193
  [CurrencyUnit.UGX]: toMicrobitcoinConversion,
182
194
  [CurrencyUnit.BWP]: toMicrobitcoinConversion,
195
+ [CurrencyUnit.XOF]: toMicrobitcoinConversion,
196
+ [CurrencyUnit.XAF]: toMicrobitcoinConversion,
197
+ [CurrencyUnit.MWK]: toMicrobitcoinConversion,
198
+ [CurrencyUnit.RWF]: toMicrobitcoinConversion,
183
199
  [CurrencyUnit.USDT]: toMicrobitcoinConversion,
184
200
  [CurrencyUnit.USDC]: toMicrobitcoinConversion,
185
201
  },
@@ -211,6 +227,10 @@ const CONVERSION_MAP = {
211
227
  [CurrencyUnit.TZS]: toMillibitcoinConversion,
212
228
  [CurrencyUnit.UGX]: toMillibitcoinConversion,
213
229
  [CurrencyUnit.BWP]: toMillibitcoinConversion,
230
+ [CurrencyUnit.XOF]: toMillibitcoinConversion,
231
+ [CurrencyUnit.XAF]: toMillibitcoinConversion,
232
+ [CurrencyUnit.MWK]: toMillibitcoinConversion,
233
+ [CurrencyUnit.RWF]: toMillibitcoinConversion,
214
234
  [CurrencyUnit.USDT]: toMillibitcoinConversion,
215
235
  [CurrencyUnit.USDC]: toMillibitcoinConversion,
216
236
  },
@@ -242,6 +262,10 @@ const CONVERSION_MAP = {
242
262
  [CurrencyUnit.TZS]: toMillisatoshiConversion,
243
263
  [CurrencyUnit.UGX]: toMillisatoshiConversion,
244
264
  [CurrencyUnit.BWP]: toMillisatoshiConversion,
265
+ [CurrencyUnit.XOF]: toMillisatoshiConversion,
266
+ [CurrencyUnit.XAF]: toMillisatoshiConversion,
267
+ [CurrencyUnit.MWK]: toMillisatoshiConversion,
268
+ [CurrencyUnit.RWF]: toMillisatoshiConversion,
245
269
  [CurrencyUnit.USDT]: toMillisatoshiConversion,
246
270
  [CurrencyUnit.USDC]: toMillisatoshiConversion,
247
271
  },
@@ -273,6 +297,10 @@ const CONVERSION_MAP = {
273
297
  [CurrencyUnit.TZS]: toNanobitcoinConversion,
274
298
  [CurrencyUnit.UGX]: toNanobitcoinConversion,
275
299
  [CurrencyUnit.BWP]: toNanobitcoinConversion,
300
+ [CurrencyUnit.XOF]: toNanobitcoinConversion,
301
+ [CurrencyUnit.XAF]: toNanobitcoinConversion,
302
+ [CurrencyUnit.MWK]: toNanobitcoinConversion,
303
+ [CurrencyUnit.RWF]: toNanobitcoinConversion,
276
304
  [CurrencyUnit.USDT]: toNanobitcoinConversion,
277
305
  [CurrencyUnit.USDC]: toNanobitcoinConversion,
278
306
  },
@@ -304,6 +332,10 @@ const CONVERSION_MAP = {
304
332
  [CurrencyUnit.TZS]: toSatoshiConversion,
305
333
  [CurrencyUnit.UGX]: toSatoshiConversion,
306
334
  [CurrencyUnit.BWP]: toSatoshiConversion,
335
+ [CurrencyUnit.XOF]: toSatoshiConversion,
336
+ [CurrencyUnit.XAF]: toSatoshiConversion,
337
+ [CurrencyUnit.MWK]: toSatoshiConversion,
338
+ [CurrencyUnit.RWF]: toSatoshiConversion,
307
339
  [CurrencyUnit.USDT]: toSatoshiConversion,
308
340
  [CurrencyUnit.USDC]: toSatoshiConversion,
309
341
  },
@@ -328,6 +360,10 @@ const CONVERSION_MAP = {
328
360
  [CurrencyUnit.TZS]: standardUnitConversionObj,
329
361
  [CurrencyUnit.UGX]: standardUnitConversionObj,
330
362
  [CurrencyUnit.BWP]: standardUnitConversionObj,
363
+ [CurrencyUnit.XOF]: standardUnitConversionObj,
364
+ [CurrencyUnit.XAF]: standardUnitConversionObj,
365
+ [CurrencyUnit.MWK]: standardUnitConversionObj,
366
+ [CurrencyUnit.RWF]: standardUnitConversionObj,
331
367
  [CurrencyUnit.USDT]: standardUnitConversionObj,
332
368
  [CurrencyUnit.USDC]: standardUnitConversionObj,
333
369
  };
@@ -412,6 +448,10 @@ export type CurrencyMap = {
412
448
  [CurrencyUnit.TZS]: number;
413
449
  [CurrencyUnit.UGX]: number;
414
450
  [CurrencyUnit.BWP]: number;
451
+ [CurrencyUnit.XOF]: number;
452
+ [CurrencyUnit.XAF]: number;
453
+ [CurrencyUnit.MWK]: number;
454
+ [CurrencyUnit.RWF]: number;
415
455
  [CurrencyUnit.USDT]: number;
416
456
  [CurrencyUnit.USDC]: number;
417
457
  [CurrencyUnit.FUTURE_VALUE]: number;
@@ -446,6 +486,10 @@ export type CurrencyMap = {
446
486
  [CurrencyUnit.TZS]: string;
447
487
  [CurrencyUnit.UGX]: string;
448
488
  [CurrencyUnit.BWP]: string;
489
+ [CurrencyUnit.XOF]: string;
490
+ [CurrencyUnit.XAF]: string;
491
+ [CurrencyUnit.MWK]: string;
492
+ [CurrencyUnit.RWF]: string;
449
493
  [CurrencyUnit.USDT]: string;
450
494
  [CurrencyUnit.USDC]: string;
451
495
  [CurrencyUnit.FUTURE_VALUE]: string;
@@ -661,6 +705,10 @@ function convertCurrencyAmountValues(
661
705
  tzs: CurrencyUnit.TZS,
662
706
  ugx: CurrencyUnit.UGX,
663
707
  bwp: CurrencyUnit.BWP,
708
+ xof: CurrencyUnit.XOF,
709
+ xaf: CurrencyUnit.XAF,
710
+ mwk: CurrencyUnit.MWK,
711
+ rwf: CurrencyUnit.RWF,
664
712
  mibtc: CurrencyUnit.MICROBITCOIN,
665
713
  mlbtc: CurrencyUnit.MILLIBITCOIN,
666
714
  nbtc: CurrencyUnit.NANOBITCOIN,
@@ -740,6 +788,10 @@ export function mapCurrencyAmount(
740
788
  tzs,
741
789
  ugx,
742
790
  bwp,
791
+ xof,
792
+ xaf,
793
+ mwk,
794
+ rwf,
743
795
  usdt,
744
796
  usdc,
745
797
  } = convertCurrencyAmountValues(unit, value, unitsPerBtc, conversionOverride);
@@ -769,6 +821,10 @@ export function mapCurrencyAmount(
769
821
  [CurrencyUnit.TZS]: tzs,
770
822
  [CurrencyUnit.UGX]: ugx,
771
823
  [CurrencyUnit.BWP]: bwp,
824
+ [CurrencyUnit.XOF]: xof,
825
+ [CurrencyUnit.XAF]: xaf,
826
+ [CurrencyUnit.MWK]: mwk,
827
+ [CurrencyUnit.RWF]: rwf,
772
828
  [CurrencyUnit.MICROBITCOIN]: mibtc,
773
829
  [CurrencyUnit.MILLIBITCOIN]: mlbtc,
774
830
  [CurrencyUnit.NANOBITCOIN]: nbtc,
@@ -884,6 +940,22 @@ export function mapCurrencyAmount(
884
940
  value: bwp,
885
941
  unit: CurrencyUnit.BWP,
886
942
  }),
943
+ [CurrencyUnit.XOF]: formatCurrencyStr({
944
+ value: xof,
945
+ unit: CurrencyUnit.XOF,
946
+ }),
947
+ [CurrencyUnit.XAF]: formatCurrencyStr({
948
+ value: xaf,
949
+ unit: CurrencyUnit.XAF,
950
+ }),
951
+ [CurrencyUnit.MWK]: formatCurrencyStr({
952
+ value: mwk,
953
+ unit: CurrencyUnit.MWK,
954
+ }),
955
+ [CurrencyUnit.RWF]: formatCurrencyStr({
956
+ value: rwf,
957
+ unit: CurrencyUnit.RWF,
958
+ }),
887
959
  [CurrencyUnit.USDT]: formatCurrencyStr({
888
960
  value: usdt,
889
961
  unit: CurrencyUnit.USDT,
@@ -1006,6 +1078,14 @@ export const abbrCurrencyUnit = (unit: CurrencyUnitType) => {
1006
1078
  return "UGX";
1007
1079
  case CurrencyUnit.BWP:
1008
1080
  return "BWP";
1081
+ case CurrencyUnit.XOF:
1082
+ return "XOF";
1083
+ case CurrencyUnit.XAF:
1084
+ return "XAF";
1085
+ case CurrencyUnit.MWK:
1086
+ return "MWK";
1087
+ case CurrencyUnit.RWF:
1088
+ return "RWF";
1009
1089
  }
1010
1090
  return "Unsupported CurrencyUnit";
1011
1091
  };
@@ -1175,6 +1255,13 @@ export function formatCurrencyStr(
1175
1255
  const unitStr = isUmaCurrencyAmount(amount)
1176
1256
  ? amount.currency.code
1177
1257
  : abbrCurrencyUnit(unit as CurrencyUnitType);
1258
+
1259
+ // Skip appending if the formatted string already contains the currency code
1260
+ // This happens for currencies like XOF where Intl.NumberFormat uses the code as the symbol
1261
+ if (formattedStr.includes(unitStr)) {
1262
+ return formattedStr;
1263
+ }
1264
+
1178
1265
  const unitSuffix = options?.appendUnits?.plural && num > 1 ? "s" : "";
1179
1266
  const unitStrWithSuffix = `${unitStr}${unitSuffix}`;
1180
1267
  formattedStr += ` ${
@@ -436,3 +436,22 @@ describe("formatCurrencyStr", () => {
436
436
  ).toBe("$1,000.12 MXN");
437
437
  });
438
438
  });
439
+
440
+ it("should not append XOF if it's already in the formatted string", () => {
441
+ /* This test verifies the fix for PQA-394 where XOF was appearing twice.
442
+ * If Intl.NumberFormat formats with currencyDisplay: 'code', it will include
443
+ * XOF in the output, and we shouldn't append it again. */
444
+ const formatted = formatCurrencyStr(
445
+ { value: 221900, unit: CurrencyUnit.XOF },
446
+ { appendUnits: { plural: false, lowercase: false } },
447
+ );
448
+
449
+ /* Count occurrences of 'XOF' or 'CFA' in the result */
450
+ const xofCount = (formatted.match(/XOF/g) || []).length;
451
+ const cfaCount = (formatted.match(/CFA/g) || []).length;
452
+
453
+ /* Should have either XOF or CFA, but not both, and only once */
454
+ expect(xofCount + cfaCount).toBeGreaterThan(0);
455
+ expect(xofCount).toBeLessThanOrEqual(1);
456
+ expect(cfaCount).toBeLessThanOrEqual(1);
457
+ });