@reown/appkit-common-react-native 0.0.0-feat-onramp-20250311164912 → 0.0.0-feat-onramp-20250401173834

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.
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.ConstantsUtil = void 0;
7
7
  const ConstantsUtil = exports.ConstantsUtil = {
8
- VERSION: '0.0.0-feat-onramp-20250311164912',
8
+ VERSION: '0.0.0-feat-onramp-20250401173834',
9
9
  EIP155: 'eip155',
10
10
  ADD_CHAIN_METHOD: 'wallet_addEthereumChain',
11
11
  WC_NAME_SUFFIX: '.reown.id',
@@ -8,7 +8,7 @@ var _dayjs = _interopRequireDefault(require("dayjs"));
8
8
  var _en = _interopRequireDefault(require("dayjs/locale/en.js"));
9
9
  var _relativeTime = _interopRequireDefault(require("dayjs/plugin/relativeTime.js"));
10
10
  var _updateLocale = _interopRequireDefault(require("dayjs/plugin/updateLocale.js"));
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
12
  _dayjs.default.extend(_relativeTime.default);
13
13
  _dayjs.default.extend(_updateLocale.default);
14
14
  const localeObject = {
@@ -1 +1 @@
1
- {"version":3,"names":["_dayjs","_interopRequireDefault","require","_en","_relativeTime","_updateLocale","obj","__esModule","default","dayjs","extend","relativeTime","updateLocale","localeObject","englishLocale","name","future","past","s","m","mm","h","hh","d","dd","M","MM","y","yy","locale","DateUtil","exports","getYear","date","Date","toISOString","year","getRelativeDateFromNow","fromNow","formatDate","format","getMonth","month","isMoreThanOneWeekAgo","isBefore","subtract"],"sourceRoot":"../../../src","sources":["utils/DateUtil.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,GAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,aAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,aAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAAwD,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAExDG,cAAK,CAACC,MAAM,CAACC,qBAAY,CAAC;AAC1BF,cAAK,CAACC,MAAM,CAACE,qBAAY,CAAC;AAE1B,MAAMC,YAAY,GAAG;EACnB,GAAGC,WAAa;EAChBC,IAAI,EAAE,eAAe;EACrBJ,YAAY,EAAE;IACZK,MAAM,EAAE,OAAO;IACfC,IAAI,EAAE,QAAQ;IACdC,CAAC,EAAE,QAAQ;IACXC,CAAC,EAAE,OAAO;IACVC,EAAE,EAAE,QAAQ;IACZC,CAAC,EAAE,MAAM;IACTC,EAAE,EAAE,QAAQ;IACZC,CAAC,EAAE,KAAK;IACRC,EAAE,EAAE,MAAM;IACVC,CAAC,EAAE,MAAM;IACTC,EAAE,EAAE,OAAO;IACXC,CAAC,EAAE,MAAM;IACTC,EAAE,EAAE;EACN;AACF,CAAC;AAEDnB,cAAK,CAACoB,MAAM,CAAC,WAAW,EAAEhB,YAAY,CAAC;AAEhC,MAAMiB,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAG;EACtBE,OAAOA,CAACC,IAAY,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,EAAE;IAC/C,OAAO,IAAA1B,cAAK,EAACwB,IAAI,CAAC,CAACG,IAAI,CAAC,CAAC;EAC3B,CAAC;EAEDC,sBAAsBA,CAACJ,IAAqB,EAAE;IAC5C,OAAO,IAAAxB,cAAK,EAACwB,IAAI,CAAC,CAACJ,MAAM,CAAC,WAAW,CAAC,CAACS,OAAO,CAAC,IAAI,CAAC;EACtD,CAAC;EAEDC,UAAUA,CAACN,IAAqB,EAAEO,MAAM,GAAG,QAAQ,EAAE;IACnD,OAAO,IAAA/B,cAAK,EAACwB,IAAI,CAAC,CAACO,MAAM,CAACA,MAAM,CAAC;EACnC,CAAC;EAEDC,QAAQA,CAACC,KAAa,EAAE;IACtB,OAAO,IAAAjC,cAAK,EAAC,CAAC,CAACiC,KAAK,CAACA,KAAK,CAAC,CAACF,MAAM,CAAC,MAAM,CAAC;EAC5C,CAAC;EAEDG,oBAAoBA,CAACV,IAAqB,EAAE;IAC1C,OAAO,IAAAxB,cAAK,EAACwB,IAAI,CAAC,CAACW,QAAQ,CAAC,IAAAnC,cAAK,EAAC,CAAC,CAACoC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;EAC1D;AACF,CAAC"}
1
+ {"version":3,"names":["_dayjs","_interopRequireDefault","require","_en","_relativeTime","_updateLocale","e","__esModule","default","dayjs","extend","relativeTime","updateLocale","localeObject","englishLocale","name","future","past","s","m","mm","h","hh","d","dd","M","MM","y","yy","locale","DateUtil","exports","getYear","date","Date","toISOString","year","getRelativeDateFromNow","fromNow","formatDate","format","getMonth","month","isMoreThanOneWeekAgo","isBefore","subtract"],"sourceRoot":"../../../src","sources":["utils/DateUtil.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,GAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,aAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,aAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAAwD,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAExDG,cAAK,CAACC,MAAM,CAACC,qBAAY,CAAC;AAC1BF,cAAK,CAACC,MAAM,CAACE,qBAAY,CAAC;AAE1B,MAAMC,YAAY,GAAG;EACnB,GAAGC,WAAa;EAChBC,IAAI,EAAE,eAAe;EACrBJ,YAAY,EAAE;IACZK,MAAM,EAAE,OAAO;IACfC,IAAI,EAAE,QAAQ;IACdC,CAAC,EAAE,QAAQ;IACXC,CAAC,EAAE,OAAO;IACVC,EAAE,EAAE,QAAQ;IACZC,CAAC,EAAE,MAAM;IACTC,EAAE,EAAE,QAAQ;IACZC,CAAC,EAAE,KAAK;IACRC,EAAE,EAAE,MAAM;IACVC,CAAC,EAAE,MAAM;IACTC,EAAE,EAAE,OAAO;IACXC,CAAC,EAAE,MAAM;IACTC,EAAE,EAAE;EACN;AACF,CAAC;AAEDnB,cAAK,CAACoB,MAAM,CAAC,WAAW,EAAEhB,YAAY,CAAC;AAEhC,MAAMiB,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAG;EACtBE,OAAOA,CAACC,IAAY,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,EAAE;IAC/C,OAAO,IAAA1B,cAAK,EAACwB,IAAI,CAAC,CAACG,IAAI,CAAC,CAAC;EAC3B,CAAC;EAEDC,sBAAsBA,CAACJ,IAAqB,EAAE;IAC5C,OAAO,IAAAxB,cAAK,EAACwB,IAAI,CAAC,CAACJ,MAAM,CAAC,WAAW,CAAC,CAACS,OAAO,CAAC,IAAI,CAAC;EACtD,CAAC;EAEDC,UAAUA,CAACN,IAAqB,EAAEO,MAAM,GAAG,QAAQ,EAAE;IACnD,OAAO,IAAA/B,cAAK,EAACwB,IAAI,CAAC,CAACO,MAAM,CAACA,MAAM,CAAC;EACnC,CAAC;EAEDC,QAAQA,CAACC,KAAa,EAAE;IACtB,OAAO,IAAAjC,cAAK,EAAC,CAAC,CAACiC,KAAK,CAACA,KAAK,CAAC,CAACF,MAAM,CAAC,MAAM,CAAC;EAC5C,CAAC;EAEDG,oBAAoBA,CAACV,IAAqB,EAAE;IAC1C,OAAO,IAAAxB,cAAK,EAACwB,IAAI,CAAC,CAACW,QAAQ,CAAC,IAAAnC,cAAK,EAAC,CAAC,CAACoC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;EAC1D;AACF,CAAC"}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.NumberUtil = void 0;
7
7
  var BigNumber = _interopRequireWildcard(require("bignumber.js"));
8
8
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
9
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
9
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
10
10
  const NumberUtil = exports.NumberUtil = {
11
11
  bigNumber(value) {
12
12
  if (typeof value === 'string') {
@@ -43,19 +43,29 @@ const NumberUtil = exports.NumberUtil = {
43
43
  * @returns
44
44
  */
45
45
  formatNumberToLocalString(value, decimals = 2) {
46
+ const options = {
47
+ maximumFractionDigits: decimals
48
+ // Omit minimumFractionDigits to remove trailing zeros
49
+ };
50
+
46
51
  if (value === undefined) {
47
- return '0.00';
52
+ // Use undefined locale to get system default
53
+ return 0 .toLocaleString(undefined, options);
54
+ }
55
+ let numberValue;
56
+ if (typeof value === 'string') {
57
+ // Attempt to parse the string, handling potential locale-specific formats might be complex here,
58
+ // assuming parseFloat works for common cases after removing grouping separators might be needed if issues arise.
59
+ // For now, stick to parseFloat as it was.
60
+ numberValue = parseFloat(value);
61
+ } else {
62
+ numberValue = value;
48
63
  }
49
- if (typeof value === 'number') {
50
- return value.toLocaleString('en-US', {
51
- maximumFractionDigits: decimals,
52
- minimumFractionDigits: decimals
53
- });
64
+ if (isNaN(numberValue)) {
65
+ // Handle cases where parsing might fail, return a default or based on requirements
66
+ return 0 .toLocaleString(undefined, options);
54
67
  }
55
- return parseFloat(value).toLocaleString('en-US', {
56
- maximumFractionDigits: decimals,
57
- minimumFractionDigits: decimals
58
- });
68
+ return numberValue.toLocaleString(undefined, options);
59
69
  },
60
70
  /**
61
71
  * Parse a formatted local string back to a number
@@ -63,12 +73,37 @@ const NumberUtil = exports.NumberUtil = {
63
73
  * @returns
64
74
  */
65
75
  parseLocalStringToNumber(value) {
66
- if (value === undefined) {
76
+ if (value === undefined || value === null || value.trim() === '') {
67
77
  return 0;
68
78
  }
79
+ const decimalSeparator = this.getLocaleDecimalSeparator();
80
+ let processedValue = value;
81
+ if (decimalSeparator === ',') {
82
+ // If locale uses COMMA for decimal:
83
+ // 1. Remove all period characters (thousand separators)
84
+ processedValue = processedValue.replace(/\./g, '');
85
+ // 2. Replace the comma decimal separator with a period
86
+ processedValue = processedValue.replace(/,/g, '.');
87
+ } else {
88
+ // If locale uses PERIOD for decimal (or anything else):
89
+ // 1. Remove all comma characters (thousand separators)
90
+ processedValue = processedValue.replace(/,/g, '');
91
+ // 2. Period decimal separator is already correct
92
+ }
69
93
 
70
- // Remove any commas used as thousand separators and parse the float
71
- return parseFloat(value.replace(/,/gu, ''));
94
+ // Parse the cleaned string which should now use '.' as decimal and no thousand separators
95
+ const result = parseFloat(processedValue);
96
+
97
+ // Return the parsed number, or 0 if parsing failed (NaN)
98
+ return isNaN(result) ? 0 : result;
99
+ },
100
+ /**
101
+ * Determines the decimal separator based on the user's locale.
102
+ * @returns The locale's decimal separator (e.g., '.' or ',').
103
+ */
104
+ getLocaleDecimalSeparator() {
105
+ // Format a known decimal number and extract the second character
106
+ return 1.1.toLocaleString().substring(1, 2);
72
107
  }
73
108
  };
74
109
  //# sourceMappingURL=NumberUtil.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BigNumber","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","NumberUtil","exports","bigNumber","value","replace","multiply","b","undefined","aBigNumber","bBigNumber","multipliedBy","roundNumber","number","threshold","fixed","roundedNumber","toString","length","Number","toFixed","nextMultipleOfTen","amount","Math","max","ceil","formatNumberToLocalString","decimals","toLocaleString","maximumFractionDigits","minimumFractionDigits","parseFloat","parseLocalStringToNumber"],"sourceRoot":"../../../src","sources":["utils/NumberUtil.ts"],"mappings":"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"}
1
+ {"version":3,"names":["BigNumber","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","NumberUtil","exports","bigNumber","value","replace","multiply","b","undefined","aBigNumber","bBigNumber","multipliedBy","roundNumber","number","threshold","fixed","roundedNumber","toString","length","Number","toFixed","nextMultipleOfTen","amount","Math","max","ceil","formatNumberToLocalString","decimals","options","maximumFractionDigits","toLocaleString","numberValue","parseFloat","isNaN","parseLocalStringToNumber","trim","decimalSeparator","getLocaleDecimalSeparator","processedValue","result","substring"],"sourceRoot":"../../../src","sources":["utils/NumberUtil.ts"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export const ConstantsUtil = {
2
- VERSION: '0.0.0-feat-onramp-20250311164912',
2
+ VERSION: '0.0.0-feat-onramp-20250401173834',
3
3
  EIP155: 'eip155',
4
4
  ADD_CHAIN_METHOD: 'wallet_addEthereumChain',
5
5
  WC_NAME_SUFFIX: '.reown.id',
@@ -35,19 +35,29 @@ export const NumberUtil = {
35
35
  * @returns
36
36
  */
37
37
  formatNumberToLocalString(value, decimals = 2) {
38
+ const options = {
39
+ maximumFractionDigits: decimals
40
+ // Omit minimumFractionDigits to remove trailing zeros
41
+ };
42
+
38
43
  if (value === undefined) {
39
- return '0.00';
44
+ // Use undefined locale to get system default
45
+ return 0 .toLocaleString(undefined, options);
46
+ }
47
+ let numberValue;
48
+ if (typeof value === 'string') {
49
+ // Attempt to parse the string, handling potential locale-specific formats might be complex here,
50
+ // assuming parseFloat works for common cases after removing grouping separators might be needed if issues arise.
51
+ // For now, stick to parseFloat as it was.
52
+ numberValue = parseFloat(value);
53
+ } else {
54
+ numberValue = value;
40
55
  }
41
- if (typeof value === 'number') {
42
- return value.toLocaleString('en-US', {
43
- maximumFractionDigits: decimals,
44
- minimumFractionDigits: decimals
45
- });
56
+ if (isNaN(numberValue)) {
57
+ // Handle cases where parsing might fail, return a default or based on requirements
58
+ return 0 .toLocaleString(undefined, options);
46
59
  }
47
- return parseFloat(value).toLocaleString('en-US', {
48
- maximumFractionDigits: decimals,
49
- minimumFractionDigits: decimals
50
- });
60
+ return numberValue.toLocaleString(undefined, options);
51
61
  },
52
62
  /**
53
63
  * Parse a formatted local string back to a number
@@ -55,12 +65,37 @@ export const NumberUtil = {
55
65
  * @returns
56
66
  */
57
67
  parseLocalStringToNumber(value) {
58
- if (value === undefined) {
68
+ if (value === undefined || value === null || value.trim() === '') {
59
69
  return 0;
60
70
  }
71
+ const decimalSeparator = this.getLocaleDecimalSeparator();
72
+ let processedValue = value;
73
+ if (decimalSeparator === ',') {
74
+ // If locale uses COMMA for decimal:
75
+ // 1. Remove all period characters (thousand separators)
76
+ processedValue = processedValue.replace(/\./g, '');
77
+ // 2. Replace the comma decimal separator with a period
78
+ processedValue = processedValue.replace(/,/g, '.');
79
+ } else {
80
+ // If locale uses PERIOD for decimal (or anything else):
81
+ // 1. Remove all comma characters (thousand separators)
82
+ processedValue = processedValue.replace(/,/g, '');
83
+ // 2. Period decimal separator is already correct
84
+ }
61
85
 
62
- // Remove any commas used as thousand separators and parse the float
63
- return parseFloat(value.replace(/,/gu, ''));
86
+ // Parse the cleaned string which should now use '.' as decimal and no thousand separators
87
+ const result = parseFloat(processedValue);
88
+
89
+ // Return the parsed number, or 0 if parsing failed (NaN)
90
+ return isNaN(result) ? 0 : result;
91
+ },
92
+ /**
93
+ * Determines the decimal separator based on the user's locale.
94
+ * @returns The locale's decimal separator (e.g., '.' or ',').
95
+ */
96
+ getLocaleDecimalSeparator() {
97
+ // Format a known decimal number and extract the second character
98
+ return 1.1.toLocaleString().substring(1, 2);
64
99
  }
65
100
  };
66
101
  //# sourceMappingURL=NumberUtil.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BigNumber","NumberUtil","bigNumber","value","replace","multiply","a","b","undefined","aBigNumber","bBigNumber","multipliedBy","roundNumber","number","threshold","fixed","roundedNumber","toString","length","Number","toFixed","nextMultipleOfTen","amount","Math","max","ceil","formatNumberToLocalString","decimals","toLocaleString","maximumFractionDigits","minimumFractionDigits","parseFloat","parseLocalStringToNumber"],"sourceRoot":"../../../src","sources":["utils/NumberUtil.ts"],"mappings":"AAAA,OAAO,KAAKA,SAAS,MAAM,cAAc;AAEzC,OAAO,MAAMC,UAAU,GAAG;EACxBC,SAASA,CAACC,KAAgC,EAAE;IAC1C,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,OAAO,IAAIH,SAAS,CAACA,SAAS,CAACG,KAAK,CAACC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACzD;IAEA,OAAO,IAAIJ,SAAS,CAACA,SAAS,CAACG,KAAK,CAAC;EACvC,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEE,QAAQA,CAACC,CAAwC,EAAEC,CAAwC,EAAE;IAC3F,IAAID,CAAC,KAAKE,SAAS,IAAID,CAAC,KAAKC,SAAS,EAAE;MACtC,OAAOR,SAAS,CAACA,SAAS,CAAC,CAAC,CAAC;IAC/B;IAEA,MAAMS,UAAU,GAAG,IAAIT,SAAS,CAACA,SAAS,CAAC,OAAOM,CAAC,KAAK,QAAQ,GAAGA,CAAC,CAACF,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAGE,CAAC,CAAC;IAC5F,MAAMI,UAAU,GAAG,IAAIV,SAAS,CAACA,SAAS,CAAC,OAAOO,CAAC,KAAK,QAAQ,GAAGA,CAAC,CAACH,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAGG,CAAC,CAAC;IAE5F,OAAOE,UAAU,CAACE,YAAY,CAACD,UAAU,CAAC;EAC5C,CAAC;EAEDE,WAAWA,CAACC,MAAc,EAAEC,SAAiB,EAAEC,KAAa,EAAE;IAC5D,MAAMC,aAAa,GACjBH,MAAM,CAACI,QAAQ,CAAC,CAAC,CAACC,MAAM,IAAIJ,SAAS,GAAGK,MAAM,CAACN,MAAM,CAAC,CAACO,OAAO,CAACL,KAAK,CAAC,GAAGF,MAAM;IAEhF,OAAOG,aAAa;EACtB,CAAC;EAEDK,iBAAiBA,CAACC,MAAe,EAAE;IACjC,IAAI,CAACA,MAAM,EAAE,OAAO,EAAE;IAEtB,OAAOC,IAAI,CAACC,GAAG,CAACD,IAAI,CAACE,IAAI,CAACH,MAAM,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;EAClD,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEI,yBAAyBA,CAACvB,KAAkC,EAAEwB,QAAQ,GAAG,CAAC,EAAE;IAC1E,IAAIxB,KAAK,KAAKK,SAAS,EAAE;MACvB,OAAO,MAAM;IACf;IAEA,IAAI,OAAOL,KAAK,KAAK,QAAQ,EAAE;MAC7B,OAAOA,KAAK,CAACyB,cAAc,CAAC,OAAO,EAAE;QACnCC,qBAAqB,EAAEF,QAAQ;QAC/BG,qBAAqB,EAAEH;MACzB,CAAC,CAAC;IACJ;IAEA,OAAOI,UAAU,CAAC5B,KAAK,CAAC,CAACyB,cAAc,CAAC,OAAO,EAAE;MAC/CC,qBAAqB,EAAEF,QAAQ;MAC/BG,qBAAqB,EAAEH;IACzB,CAAC,CAAC;EACJ,CAAC;EACD;AACF;AACA;AACA;AACA;EACEK,wBAAwBA,CAAC7B,KAAyB,EAAE;IAClD,IAAIA,KAAK,KAAKK,SAAS,EAAE;MACvB,OAAO,CAAC;IACV;;IAEA;IACA,OAAOuB,UAAU,CAAC5B,KAAK,CAACC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;EAC7C;AACF,CAAC"}
1
+ {"version":3,"names":["BigNumber","NumberUtil","bigNumber","value","replace","multiply","a","b","undefined","aBigNumber","bBigNumber","multipliedBy","roundNumber","number","threshold","fixed","roundedNumber","toString","length","Number","toFixed","nextMultipleOfTen","amount","Math","max","ceil","formatNumberToLocalString","decimals","options","maximumFractionDigits","toLocaleString","numberValue","parseFloat","isNaN","parseLocalStringToNumber","trim","decimalSeparator","getLocaleDecimalSeparator","processedValue","result","substring"],"sourceRoot":"../../../src","sources":["utils/NumberUtil.ts"],"mappings":"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"}
@@ -23,5 +23,10 @@ export declare const NumberUtil: {
23
23
  * @returns
24
24
  */
25
25
  parseLocalStringToNumber(value: string | undefined): number;
26
+ /**
27
+ * Determines the decimal separator based on the user's locale.
28
+ * @returns The locale's decimal separator (e.g., '.' or ',').
29
+ */
30
+ getLocaleDecimalSeparator(): string;
26
31
  };
27
32
  //# sourceMappingURL=NumberUtil.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NumberUtil.d.ts","sourceRoot":"","sources":["../../../src/utils/NumberUtil.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAE1C,eAAO,MAAM,UAAU;qBACJ,mBAAmB,CAAC,KAAK;IAQ1C;;;;;OAKG;gBACS,mBAAmB,CAAC,KAAK,GAAG,SAAS,KAAK,mBAAmB,CAAC,KAAK,GAAG,SAAS;wBAWvE,MAAM,aAAa,MAAM,SAAS,MAAM;+BAOjC,MAAM;IAMjC;;;;;OAKG;qCAC8B,MAAM,GAAG,MAAM,GAAG,SAAS;IAiB5D;;;;OAIG;oCAC6B,MAAM,GAAG,SAAS;CAQnD,CAAC"}
1
+ {"version":3,"file":"NumberUtil.d.ts","sourceRoot":"","sources":["../../../src/utils/NumberUtil.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAE1C,eAAO,MAAM,UAAU;qBACJ,mBAAmB,CAAC,KAAK;IAQ1C;;;;;OAKG;gBACS,mBAAmB,CAAC,KAAK,GAAG,SAAS,KAAK,mBAAmB,CAAC,KAAK,GAAG,SAAS;wBAWvE,MAAM,aAAa,MAAM,SAAS,MAAM;+BAOjC,MAAM;IAMjC;;;;;OAKG;qCAC8B,MAAM,GAAG,MAAM,GAAG,SAAS;IA4B5D;;;;OAIG;oCAC6B,MAAM,GAAG,SAAS,GAAG,MAAM;IA4B3D;;;OAGG;iCAC0B,MAAM;CAIpC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reown/appkit-common-react-native",
3
- "version": "0.0.0-feat-onramp-20250311164912",
3
+ "version": "0.0.0-feat-onramp-20250401173834",
4
4
  "main": "lib/commonjs/index.js",
5
5
  "types": "lib/typescript/index.d.ts",
6
6
  "module": "lib/module/index.js",
@@ -1,5 +1,5 @@
1
1
  export const ConstantsUtil = {
2
- VERSION: '0.0.0-feat-onramp-20250311164912',
2
+ VERSION: '0.0.0-feat-onramp-20250401173834',
3
3
 
4
4
  EIP155: 'eip155',
5
5
  ADD_CHAIN_METHOD: 'wallet_addEthereumChain',
@@ -46,33 +46,72 @@ export const NumberUtil = {
46
46
  * @returns
47
47
  */
48
48
  formatNumberToLocalString(value: string | number | undefined, decimals = 2) {
49
+ const options: Intl.NumberFormatOptions = {
50
+ maximumFractionDigits: decimals
51
+ // Omit minimumFractionDigits to remove trailing zeros
52
+ };
53
+
49
54
  if (value === undefined) {
50
- return '0.00';
55
+ // Use undefined locale to get system default
56
+ return (0).toLocaleString(undefined, options);
57
+ }
58
+
59
+ let numberValue: number;
60
+ if (typeof value === 'string') {
61
+ // Attempt to parse the string, handling potential locale-specific formats might be complex here,
62
+ // assuming parseFloat works for common cases after removing grouping separators might be needed if issues arise.
63
+ // For now, stick to parseFloat as it was.
64
+ numberValue = parseFloat(value);
65
+ } else {
66
+ numberValue = value;
51
67
  }
52
68
 
53
- if (typeof value === 'number') {
54
- return value.toLocaleString('en-US', {
55
- maximumFractionDigits: decimals,
56
- minimumFractionDigits: decimals
57
- });
69
+ if (isNaN(numberValue)) {
70
+ // Handle cases where parsing might fail, return a default or based on requirements
71
+ return (0).toLocaleString(undefined, options);
58
72
  }
59
73
 
60
- return parseFloat(value).toLocaleString('en-US', {
61
- maximumFractionDigits: decimals,
62
- minimumFractionDigits: decimals
63
- });
74
+ return numberValue.toLocaleString(undefined, options);
64
75
  },
65
76
  /**
66
77
  * Parse a formatted local string back to a number
67
78
  * @param value - The formatted string to parse
68
79
  * @returns
69
80
  */
70
- parseLocalStringToNumber(value: string | undefined) {
71
- if (value === undefined) {
81
+ parseLocalStringToNumber(value: string | undefined): number {
82
+ if (value === undefined || value === null || value.trim() === '') {
72
83
  return 0;
73
84
  }
74
85
 
75
- // Remove any commas used as thousand separators and parse the float
76
- return parseFloat(value.replace(/,/gu, ''));
86
+ const decimalSeparator = this.getLocaleDecimalSeparator();
87
+ let processedValue = value;
88
+
89
+ if (decimalSeparator === ',') {
90
+ // If locale uses COMMA for decimal:
91
+ // 1. Remove all period characters (thousand separators)
92
+ processedValue = processedValue.replace(/\./g, '');
93
+ // 2. Replace the comma decimal separator with a period
94
+ processedValue = processedValue.replace(/,/g, '.');
95
+ } else {
96
+ // If locale uses PERIOD for decimal (or anything else):
97
+ // 1. Remove all comma characters (thousand separators)
98
+ processedValue = processedValue.replace(/,/g, '');
99
+ // 2. Period decimal separator is already correct
100
+ }
101
+
102
+ // Parse the cleaned string which should now use '.' as decimal and no thousand separators
103
+ const result = parseFloat(processedValue);
104
+
105
+ // Return the parsed number, or 0 if parsing failed (NaN)
106
+ return isNaN(result) ? 0 : result;
107
+ },
108
+
109
+ /**
110
+ * Determines the decimal separator based on the user's locale.
111
+ * @returns The locale's decimal separator (e.g., '.' or ',').
112
+ */
113
+ getLocaleDecimalSeparator(): string {
114
+ // Format a known decimal number and extract the second character
115
+ return (1.1).toLocaleString().substring(1, 2);
77
116
  }
78
117
  };