@talken/talkenkit 2.4.23 → 2.4.24

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.
Files changed (228) hide show
  1. package/dist/AbcCredentialManager-E723A55X.js +7 -0
  2. package/dist/AbcCredentialManager-GUV5JQ2V.js +7 -0
  3. package/dist/AbcCredentialManager-Z7GDJHYR.js +7 -0
  4. package/dist/abcWallet-3PWHJXWR.js +181 -0
  5. package/dist/abcWallet-3XPV7ATY.js +185 -0
  6. package/dist/abcWallet-3XSSUDLJ.js +155 -0
  7. package/dist/abcWallet-53HAU4MH.js +155 -0
  8. package/dist/abcWallet-5B2YHZGY.js +155 -0
  9. package/dist/abcWallet-664AHBNM.js +183 -0
  10. package/dist/abcWallet-BV7HK3OX.js +181 -0
  11. package/dist/abcWallet-CRKQ3O6J.js +155 -0
  12. package/dist/abcWallet-H4JOSC4N.js +155 -0
  13. package/dist/abcWallet-HM7KZIMP.js +155 -0
  14. package/dist/abcWallet-I5DVALAS.js +155 -0
  15. package/dist/abcWallet-IF3EOKHC.js +183 -0
  16. package/dist/abcWallet-IUG22ZE3.js +155 -0
  17. package/dist/abcWallet-IYC3CKEO.js +155 -0
  18. package/dist/abcWallet-JE6UR4QF.js +181 -0
  19. package/dist/abcWallet-KPKVEGNP.js +185 -0
  20. package/dist/abcWallet-MZAL5NXP.js +181 -0
  21. package/dist/abcWallet-N2UADRNR.js +155 -0
  22. package/dist/abcWallet-OGHORNUW.js +181 -0
  23. package/dist/abcWallet-QSK6VJFU.js +181 -0
  24. package/dist/abcWallet-RKT3W3FX.js +155 -0
  25. package/dist/abcWallet-VHXTAARP.js +155 -0
  26. package/dist/abcWallet-YFYTW2JH.js +155 -0
  27. package/dist/abcWallet-ZPVQY4XE.js +155 -0
  28. package/dist/chunk-3VPMUBCL.js +5196 -0
  29. package/dist/chunk-5SDWPKKX.js +5322 -0
  30. package/dist/chunk-6RBGFYAF.js +5076 -0
  31. package/dist/chunk-7L2ANWBB.js +5139 -0
  32. package/dist/chunk-7VIEAJAM.js +5172 -0
  33. package/dist/chunk-BY6GTSWI.js +5059 -0
  34. package/dist/chunk-DWE3CZEL.js +5171 -0
  35. package/dist/chunk-J6P2IT7Z.js +5465 -0
  36. package/dist/chunk-JIRBQUIB.js +5348 -0
  37. package/dist/chunk-K6CLOFGV.js +5129 -0
  38. package/dist/chunk-KYTIQ23P.js +5390 -0
  39. package/dist/chunk-MARFD3QV.js +5164 -0
  40. package/dist/chunk-MRRWKS2W.js +348 -0
  41. package/dist/chunk-PILL2YTG.js +5075 -0
  42. package/dist/chunk-QW7D53VM.js +5129 -0
  43. package/dist/chunk-RAWLCGOW.js +5058 -0
  44. package/dist/chunk-SHUPSYR2.js +5004 -0
  45. package/dist/chunk-UIGQOSRS.js +5174 -0
  46. package/dist/chunk-UINIIZCG.js +5098 -0
  47. package/dist/chunk-VOQSYTG3.js +5419 -0
  48. package/dist/chunk-VT5Q2XKZ.js +5193 -0
  49. package/dist/chunk-VXQYKPGQ.js +5476 -0
  50. package/dist/chunk-VYLJNEKY.js +5129 -0
  51. package/dist/chunk-X24B5DJR.js +323 -0
  52. package/dist/chunk-X3C73JWU.js +5370 -0
  53. package/dist/chunk-XIDK5P36.js +288 -0
  54. package/dist/chunk-ZHRI7SGC.js +5359 -0
  55. package/dist/components/ConnectOptions/AbcWaasAuth/AbcWaasAuthFlow.d.ts +1 -2
  56. package/dist/components/RainbowKitProvider/InternalPinProvider.d.ts +1 -1
  57. package/dist/contexts/MultiChainContext.d.ts +2 -2
  58. package/dist/hooks/internal/abcEmbeddedWallet.d.ts +26 -0
  59. package/dist/hooks/useSolanaWallet.d.ts +4 -0
  60. package/dist/index.d.ts +1 -1
  61. package/dist/index.js +10379 -10417
  62. package/dist/providers/AbcAuthProvider.d.ts +3 -1
  63. package/dist/utils/encryption.d.ts +0 -4
  64. package/dist/wallets/walletConnectors/abcWallet/AbcCredentialManager.d.ts +49 -0
  65. package/dist/wallets/walletConnectors/abcWallet/AbcCredentialManager.js +8 -0
  66. package/dist/wallets/walletConnectors/abcWallet/AbcEvmAutoConnector.d.ts +4 -0
  67. package/dist/wallets/walletConnectors/abcWallet/AbcEvmAutoConnector.js +12 -15
  68. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinConnector.js +3 -3
  69. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.d.ts +2 -0
  70. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.js +3 -1
  71. package/dist/wallets/walletConnectors/abcWallet/abcConnector.js +6 -5
  72. package/dist/wallets/walletConnectors/abcWallet/abcProvider.d.ts +25 -1
  73. package/dist/wallets/walletConnectors/abcWallet/abcProvider.js +4 -3
  74. package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.js +3 -1
  75. package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.js +12 -7
  76. package/dist/wallets/walletConnectors/abcWallet/abcTronProvider.d.ts +3 -2
  77. package/dist/wallets/walletConnectors/abcWallet/abcTronProvider.js +3 -1
  78. package/dist/wallets/walletConnectors/abcWallet/abcWallet.js +7 -6
  79. package/dist/wallets/walletConnectors/abcWallet/api/TalkenApiClient.d.ts +1 -0
  80. package/dist/wallets/walletConnectors/abcWallet/api/TalkenApiClient.js +3 -2
  81. package/dist/wallets/walletConnectors/abcWallet/api/index.js +6 -5
  82. package/dist/wallets/walletConnectors/abcWallet/backfillMissingWallets.d.ts +3 -0
  83. package/dist/wallets/walletConnectors/abcWallet/backfillMissingWallets.js +16 -0
  84. package/dist/wallets/walletConnectors/abcWallet/index.d.ts +2 -1
  85. package/dist/wallets/walletConnectors/abcWallet/index.js +22 -48
  86. package/dist/wallets/walletConnectors/abcWallet/sessionUtils.js +2 -1
  87. package/dist/wallets/walletConnectors/abcWallet/types.d.ts +6 -9
  88. package/dist/wallets/walletConnectors/abcWallet/types.js +1 -1
  89. package/dist/wallets/walletConnectors/abcWallet/utils.d.ts +0 -83
  90. package/dist/wallets/walletConnectors/abcWallet/utils.js +2 -40
  91. package/dist/wallets/walletConnectors/abcWallet/walletGeneration.d.ts +9 -3
  92. package/dist/wallets/walletConnectors/abcWallet/walletGeneration.js +5 -2
  93. package/dist/wallets/walletConnectors/berasigWallet/berasigWallet.js +2 -2
  94. package/dist/wallets/walletConnectors/bifrostWallet/bifrostWallet.js +2 -2
  95. package/dist/wallets/walletConnectors/binanceWallet/binanceWallet.js +2 -2
  96. package/dist/wallets/walletConnectors/bitgetWallet/bitgetWallet.js +2 -2
  97. package/dist/wallets/walletConnectors/bybitWallet/bybitWallet.js +2 -2
  98. package/dist/wallets/walletConnectors/chunk-2XX4LJSQ.js +1387 -0
  99. package/dist/wallets/walletConnectors/chunk-3BUGPUMD.js +151 -0
  100. package/dist/wallets/walletConnectors/chunk-3H7YKUJZ.js +1407 -0
  101. package/dist/wallets/walletConnectors/chunk-3OWQ6MEU.js +54 -0
  102. package/dist/wallets/walletConnectors/chunk-3VDYWOS4.js +300 -0
  103. package/dist/wallets/walletConnectors/chunk-3XOXT4AM.js +314 -0
  104. package/dist/wallets/walletConnectors/chunk-42D2UPKR.js +439 -0
  105. package/dist/wallets/walletConnectors/chunk-42MF6LUP.js +563 -0
  106. package/dist/wallets/walletConnectors/chunk-4LIJB776.js +273 -0
  107. package/dist/wallets/walletConnectors/chunk-4P3SPC44.js +51 -0
  108. package/dist/wallets/walletConnectors/chunk-4RZVAQQ4.js +574 -0
  109. package/dist/wallets/walletConnectors/chunk-53UTBIKF.js +209 -0
  110. package/dist/wallets/walletConnectors/chunk-54KVT46V.js +1477 -0
  111. package/dist/wallets/walletConnectors/chunk-5UBUX5BT.js +440 -0
  112. package/dist/wallets/walletConnectors/chunk-5ZBV5WE2.js +94 -0
  113. package/dist/wallets/walletConnectors/chunk-6EUOVOQK.js +151 -0
  114. package/dist/wallets/walletConnectors/chunk-6YUJPIJ5.js +351 -0
  115. package/dist/wallets/walletConnectors/chunk-77YYMCMD.js +273 -0
  116. package/dist/wallets/walletConnectors/chunk-7EQNUYV2.js +482 -0
  117. package/dist/wallets/walletConnectors/chunk-7K77YGQN.js +54 -0
  118. package/dist/wallets/walletConnectors/chunk-7MMVOEZF.js +393 -0
  119. package/dist/wallets/walletConnectors/chunk-7RDMH4SD.js +54 -0
  120. package/dist/wallets/walletConnectors/chunk-7S4N4DRT.js +306 -0
  121. package/dist/wallets/walletConnectors/chunk-7SWRH3EI.js +96 -0
  122. package/dist/wallets/walletConnectors/chunk-A3OJZTDV.js +54 -0
  123. package/dist/wallets/walletConnectors/chunk-AJBRO3VA.js +300 -0
  124. package/dist/wallets/walletConnectors/chunk-BKVGLYLI.js +194 -0
  125. package/dist/wallets/walletConnectors/chunk-C3FPON5L.js +213 -0
  126. package/dist/wallets/walletConnectors/chunk-CBIDNYV4.js +1407 -0
  127. package/dist/wallets/walletConnectors/chunk-DD6KK4BR.js +54 -0
  128. package/dist/wallets/walletConnectors/chunk-DSNVWCPD.js +131 -0
  129. package/dist/wallets/walletConnectors/chunk-DULGAYBU.js +785 -0
  130. package/dist/wallets/walletConnectors/chunk-DZUXOGSA.js +54 -0
  131. package/dist/wallets/walletConnectors/chunk-EVJIFLSY.js +93 -0
  132. package/dist/wallets/walletConnectors/chunk-EVW3ZB3Q.js +386 -0
  133. package/dist/wallets/walletConnectors/chunk-F2UWSAMX.js +54 -0
  134. package/dist/wallets/walletConnectors/chunk-FBVPR472.js +314 -0
  135. package/dist/wallets/walletConnectors/chunk-FKS2YLVW.js +273 -0
  136. package/dist/wallets/walletConnectors/chunk-FOGNJZPY.js +54 -0
  137. package/dist/wallets/walletConnectors/chunk-FSSV6JY3.js +54 -0
  138. package/dist/wallets/walletConnectors/chunk-GFLJ2MAG.js +54 -0
  139. package/dist/wallets/walletConnectors/chunk-GGPJJ6KS.js +1407 -0
  140. package/dist/wallets/walletConnectors/chunk-GMAYKJEI.js +508 -0
  141. package/dist/wallets/walletConnectors/chunk-H3OWNM73.js +300 -0
  142. package/dist/wallets/walletConnectors/chunk-INT6LGH7.js +180 -0
  143. package/dist/wallets/walletConnectors/chunk-ITZ42A33.js +273 -0
  144. package/dist/wallets/walletConnectors/chunk-J4IF6BFF.js +300 -0
  145. package/dist/wallets/walletConnectors/chunk-JAMJLNYQ.js +54 -0
  146. package/dist/wallets/walletConnectors/chunk-JDJUIRGF.js +439 -0
  147. package/dist/wallets/walletConnectors/chunk-JEWCPQJZ.js +300 -0
  148. package/dist/wallets/walletConnectors/chunk-JK7LJ4B6.js +1407 -0
  149. package/dist/wallets/walletConnectors/chunk-JPOSJU2D.js +594 -0
  150. package/dist/wallets/walletConnectors/chunk-JUFEPIO4.js +1479 -0
  151. package/dist/wallets/walletConnectors/chunk-JV4IC5Z7.js +54 -0
  152. package/dist/wallets/walletConnectors/chunk-MP3WVXPS.js +273 -0
  153. package/dist/wallets/walletConnectors/chunk-MTC2HJPF.js +96 -0
  154. package/dist/wallets/walletConnectors/chunk-MTJF3SVB.js +1487 -0
  155. package/dist/wallets/walletConnectors/chunk-NBVPVTJZ.js +192 -0
  156. package/dist/wallets/walletConnectors/chunk-NISMGNEE.js +223 -0
  157. package/dist/wallets/walletConnectors/chunk-NY5O2OBG.js +1477 -0
  158. package/dist/wallets/walletConnectors/chunk-OYF6AQOW.js +194 -0
  159. package/dist/wallets/walletConnectors/chunk-PBOCVGUC.js +782 -0
  160. package/dist/wallets/walletConnectors/chunk-PJSN4YRI.js +1387 -0
  161. package/dist/wallets/walletConnectors/chunk-PVIO7FM7.js +314 -0
  162. package/dist/wallets/walletConnectors/chunk-PWJOXYDF.js +54 -0
  163. package/dist/wallets/walletConnectors/chunk-PYBSONED.js +771 -0
  164. package/dist/wallets/walletConnectors/chunk-PYKECUZ3.js +54 -0
  165. package/dist/wallets/walletConnectors/chunk-Q42NO7WB.js +46 -0
  166. package/dist/wallets/walletConnectors/chunk-Q7XBI5F6.js +300 -0
  167. package/dist/wallets/walletConnectors/chunk-QHUBLT7N.js +156 -0
  168. package/dist/wallets/walletConnectors/chunk-RMV23JXO.js +300 -0
  169. package/dist/wallets/walletConnectors/chunk-S3L2SA4J.js +300 -0
  170. package/dist/wallets/walletConnectors/chunk-S466OQOC.js +393 -0
  171. package/dist/wallets/walletConnectors/chunk-SA7IXAFG.js +54 -0
  172. package/dist/wallets/walletConnectors/chunk-SDB6BBHX.js +585 -0
  173. package/dist/wallets/walletConnectors/chunk-SFGVPX2G.js +351 -0
  174. package/dist/wallets/walletConnectors/chunk-SFQKJ6X6.js +314 -0
  175. package/dist/wallets/walletConnectors/chunk-SKLRJRER.js +1464 -0
  176. package/dist/wallets/walletConnectors/chunk-SQVWIBWR.js +351 -0
  177. package/dist/wallets/walletConnectors/chunk-SSLHXCOX.js +439 -0
  178. package/dist/wallets/walletConnectors/chunk-SU6LV3EO.js +314 -0
  179. package/dist/wallets/walletConnectors/chunk-SU7IEZE2.js +300 -0
  180. package/dist/wallets/walletConnectors/chunk-TMRB5SCL.js +167 -0
  181. package/dist/wallets/walletConnectors/chunk-TMUPUOQR.js +54 -0
  182. package/dist/wallets/walletConnectors/chunk-TNZ7QKXH.js +771 -0
  183. package/dist/wallets/walletConnectors/chunk-TT2NLKIU.js +1465 -0
  184. package/dist/wallets/walletConnectors/chunk-U3WGMWTH.js +585 -0
  185. package/dist/wallets/walletConnectors/chunk-UAV4SI4Y.js +408 -0
  186. package/dist/wallets/walletConnectors/chunk-UAWWPNS7.js +54 -0
  187. package/dist/wallets/walletConnectors/chunk-UXRJASPW.js +785 -0
  188. package/dist/wallets/walletConnectors/chunk-UY5TAYLM.js +54 -0
  189. package/dist/wallets/walletConnectors/chunk-VB5IZDY7.js +300 -0
  190. package/dist/wallets/walletConnectors/chunk-VIKJNKJZ.js +219 -0
  191. package/dist/wallets/walletConnectors/chunk-VVEXF6KG.js +273 -0
  192. package/dist/wallets/walletConnectors/chunk-W2YIRNMB.js +300 -0
  193. package/dist/wallets/walletConnectors/chunk-W7L2SBIG.js +138 -0
  194. package/dist/wallets/walletConnectors/chunk-WS5FG53X.js +54 -0
  195. package/dist/wallets/walletConnectors/chunk-WVRGC2YL.js +300 -0
  196. package/dist/wallets/walletConnectors/chunk-X33WL7R7.js +300 -0
  197. package/dist/wallets/walletConnectors/chunk-XG2R64B7.js +785 -0
  198. package/dist/wallets/walletConnectors/chunk-Y2BWF42Z.js +54 -0
  199. package/dist/wallets/walletConnectors/chunk-Y446VZWI.js +585 -0
  200. package/dist/wallets/walletConnectors/chunk-YROAFC7Z.js +54 -0
  201. package/dist/wallets/walletConnectors/chunk-Z4WVT3G2.js +1416 -0
  202. package/dist/wallets/walletConnectors/chunk-ZK3PZIAH.js +300 -0
  203. package/dist/wallets/walletConnectors/chunk-ZPJLV3E7.js +151 -0
  204. package/dist/wallets/walletConnectors/chunk-ZQ3LCYGH.js +408 -0
  205. package/dist/wallets/walletConnectors/chunk-ZX6HMX7N.js +1468 -0
  206. package/dist/wallets/walletConnectors/chunk-ZXN465CA.js +209 -0
  207. package/dist/wallets/walletConnectors/clvWallet/clvWallet.js +2 -2
  208. package/dist/wallets/walletConnectors/coin98Wallet/coin98Wallet.js +2 -2
  209. package/dist/wallets/walletConnectors/coreWallet/coreWallet.js +2 -2
  210. package/dist/wallets/walletConnectors/foxWallet/foxWallet.js +2 -2
  211. package/dist/wallets/walletConnectors/frontierWallet/frontierWallet.js +2 -2
  212. package/dist/wallets/walletConnectors/gateWallet/gateWallet.js +2 -2
  213. package/dist/wallets/walletConnectors/index.js +89 -88
  214. package/dist/wallets/walletConnectors/iopayWallet/iopayWallet.js +2 -2
  215. package/dist/wallets/walletConnectors/kaiaWallet/kaiaWallet.js +2 -2
  216. package/dist/wallets/walletConnectors/kaikasWallet/kaikasWallet.js +2 -2
  217. package/dist/wallets/walletConnectors/metaMaskWallet/metaMaskWallet.js +2 -2
  218. package/dist/wallets/walletConnectors/okxWallet/okxWallet.js +2 -2
  219. package/dist/wallets/walletConnectors/rainbowWallet/rainbowWallet.js +2 -2
  220. package/dist/wallets/walletConnectors/roninWallet/roninWallet.js +2 -2
  221. package/dist/wallets/walletConnectors/safepalWallet/safepalWallet.js +2 -2
  222. package/dist/wallets/walletConnectors/subWallet/subWallet.js +2 -2
  223. package/dist/wallets/walletConnectors/tokenPocketWallet/tokenPocketWallet.js +2 -2
  224. package/dist/wallets/walletConnectors/trustWallet/trustWallet.js +2 -2
  225. package/dist/wallets/walletConnectors/zealWallet/zealWallet.js +2 -2
  226. package/dist/wallets/walletConnectors/zerionWallet/zerionWallet.js +2 -2
  227. package/package.json +12 -11
  228. package/LICENSE +0 -9
@@ -0,0 +1,408 @@
1
+ "use client";
2
+ import {
3
+ AbcError
4
+ } from "./chunk-UAWWPNS7.js";
5
+ import {
6
+ PIN_CONFIG,
7
+ STORAGE_PREFIX,
8
+ TOKEN_EXPIRY
9
+ } from "./chunk-TQXCRSMS.js";
10
+
11
+ // src/wallets/walletConnectors/abcWallet/utils.ts
12
+ async function hashPin(pin) {
13
+ if (typeof window === "undefined" || !window.crypto?.subtle) {
14
+ return btoa(pin);
15
+ }
16
+ const encoder = new TextEncoder();
17
+ const data = encoder.encode(pin);
18
+ const hashBuffer = await window.crypto.subtle.digest("SHA-256", data);
19
+ const hashArray = Array.from(new Uint8Array(hashBuffer));
20
+ const hashHex = hashArray.map((b) => b.toString(16).padStart(2, "0")).join("");
21
+ return hashHex;
22
+ }
23
+ function validatePin(pin) {
24
+ if (!pin || typeof pin !== "string") {
25
+ return false;
26
+ }
27
+ const pinLength = pin.length;
28
+ if (pinLength < PIN_CONFIG.MIN_LENGTH || pinLength > PIN_CONFIG.MAX_LENGTH) {
29
+ return false;
30
+ }
31
+ return /^\d+$/.test(pin);
32
+ }
33
+ function validateEmail(email) {
34
+ if (!email || typeof email !== "string") {
35
+ return false;
36
+ }
37
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
38
+ return emailRegex.test(email);
39
+ }
40
+ function getStorageKey(key) {
41
+ return `${STORAGE_PREFIX}${key}`;
42
+ }
43
+ function saveToStorage(key, value) {
44
+ if (typeof window === "undefined")
45
+ return;
46
+ try {
47
+ const storageKey = getStorageKey(key);
48
+ const serialized = JSON.stringify(value);
49
+ localStorage.setItem(storageKey, serialized);
50
+ } catch (error) {
51
+ console.error("Failed to save to storage:", error);
52
+ }
53
+ }
54
+ function loadFromStorage(key) {
55
+ if (typeof window === "undefined")
56
+ return null;
57
+ try {
58
+ const storageKey = getStorageKey(key);
59
+ const serialized = localStorage.getItem(storageKey);
60
+ if (!serialized)
61
+ return null;
62
+ try {
63
+ return JSON.parse(serialized);
64
+ } catch {
65
+ return serialized;
66
+ }
67
+ } catch (error) {
68
+ console.error("Failed to load from storage:", error);
69
+ return null;
70
+ }
71
+ }
72
+ function removeFromStorage(key) {
73
+ if (typeof window === "undefined")
74
+ return;
75
+ try {
76
+ const storageKey = getStorageKey(key);
77
+ localStorage.removeItem(storageKey);
78
+ } catch (error) {
79
+ console.error("Failed to remove from storage:", error);
80
+ }
81
+ }
82
+ function clearStorage() {
83
+ if (typeof window === "undefined")
84
+ return;
85
+ const keysToRemove = [];
86
+ for (let i = 0; i < localStorage.length; i++) {
87
+ const key = localStorage.key(i);
88
+ if (key?.startsWith(STORAGE_PREFIX)) {
89
+ keysToRemove.push(key);
90
+ }
91
+ }
92
+ for (const key of keysToRemove) {
93
+ localStorage.removeItem(key);
94
+ }
95
+ }
96
+ function isTokenExpired(expiresAt) {
97
+ if (!expiresAt)
98
+ return true;
99
+ return Date.now() >= expiresAt - TOKEN_EXPIRY.REFRESH_BUFFER;
100
+ }
101
+ function calculateExpiryTimestamp(expiresIn) {
102
+ return Date.now() + expiresIn * 1e3;
103
+ }
104
+ function saveAuthState(state) {
105
+ saveToStorage("auth_state" /* AUTH_STATE */, state);
106
+ if (state.user) {
107
+ saveToStorage("user" /* USER */, state.user);
108
+ }
109
+ if (state.wallet) {
110
+ saveToStorage("wallet" /* WALLET */, state.wallet);
111
+ }
112
+ if (state.solanaWallet) {
113
+ saveToStorage("solana_wallet" /* SOLANA_WALLET */, state.solanaWallet);
114
+ }
115
+ if (state.bitcoinWallet) {
116
+ saveToStorage("bitcoin_wallet" /* BITCOIN_WALLET */, state.bitcoinWallet);
117
+ }
118
+ if (state.tronWallet) {
119
+ saveToStorage("tron_wallet" /* TRON_WALLET */, state.tronWallet);
120
+ }
121
+ if (state.accessToken) {
122
+ saveToStorage("access_token" /* ACCESS_TOKEN */, state.accessToken);
123
+ }
124
+ if (state.refreshToken) {
125
+ saveToStorage("refresh_token" /* REFRESH_TOKEN */, state.refreshToken);
126
+ }
127
+ if (state.expiresAt) {
128
+ saveToStorage("expires_at" /* EXPIRES_AT */, state.expiresAt);
129
+ }
130
+ }
131
+ function hydrateAuthStateFromIndividualStorage(state) {
132
+ const user = loadFromStorage("user" /* USER */);
133
+ const wallet = loadFromStorage("wallet" /* WALLET */);
134
+ const solanaWallet = loadFromStorage("solana_wallet" /* SOLANA_WALLET */);
135
+ const bitcoinWallet = loadFromStorage("bitcoin_wallet" /* BITCOIN_WALLET */);
136
+ const tronWallet = loadFromStorage("tron_wallet" /* TRON_WALLET */);
137
+ const accessToken = loadFromStorage("access_token" /* ACCESS_TOKEN */);
138
+ const refreshToken = loadFromStorage("refresh_token" /* REFRESH_TOKEN */);
139
+ const expiresAt = loadFromStorage("expires_at" /* EXPIRES_AT */);
140
+ const nextState = {
141
+ ...state,
142
+ user: state.user || user || null,
143
+ wallet: state.wallet || wallet || null,
144
+ solanaWallet: state.solanaWallet || solanaWallet || null,
145
+ bitcoinWallet: state.bitcoinWallet || bitcoinWallet || null,
146
+ tronWallet: state.tronWallet || tronWallet || null,
147
+ accessToken: state.accessToken || accessToken || null,
148
+ refreshToken: state.refreshToken || refreshToken || null,
149
+ expiresAt: state.expiresAt || expiresAt || null
150
+ };
151
+ const wasHydrated = nextState.user !== state.user || nextState.wallet !== state.wallet || nextState.solanaWallet !== state.solanaWallet || nextState.bitcoinWallet !== state.bitcoinWallet || nextState.tronWallet !== state.tronWallet || nextState.accessToken !== state.accessToken || nextState.refreshToken !== state.refreshToken || nextState.expiresAt !== state.expiresAt;
152
+ if (wasHydrated) {
153
+ saveToStorage("auth_state" /* AUTH_STATE */, nextState);
154
+ }
155
+ return nextState;
156
+ }
157
+ function loadAuthState() {
158
+ const state = loadFromStorage("auth_state" /* AUTH_STATE */);
159
+ if (state) {
160
+ if (state.accessToken && isTokenExpired(state.expiresAt)) {
161
+ clearStorage();
162
+ return null;
163
+ }
164
+ return hydrateAuthStateFromIndividualStorage(state);
165
+ }
166
+ const user = loadFromStorage("user" /* USER */);
167
+ const wallet = loadFromStorage("wallet" /* WALLET */);
168
+ const solanaWallet = loadFromStorage("solana_wallet" /* SOLANA_WALLET */);
169
+ const accessToken = loadFromStorage("access_token" /* ACCESS_TOKEN */);
170
+ const refreshToken = loadFromStorage("refresh_token" /* REFRESH_TOKEN */);
171
+ const expiresAt = loadFromStorage("expires_at" /* EXPIRES_AT */);
172
+ if (!user || !accessToken) {
173
+ return null;
174
+ }
175
+ const bitcoinWallet = loadFromStorage("bitcoin_wallet" /* BITCOIN_WALLET */);
176
+ const tronWallet = loadFromStorage("tron_wallet" /* TRON_WALLET */);
177
+ return {
178
+ isAuthenticated: true,
179
+ user,
180
+ wallet,
181
+ solanaWallet,
182
+ bitcoinWallet,
183
+ tronWallet,
184
+ accessToken,
185
+ refreshToken,
186
+ expiresAt
187
+ };
188
+ }
189
+ function clearAuthState() {
190
+ clearStorage();
191
+ }
192
+ function getChainType(chainId) {
193
+ if (chainId === 900)
194
+ return "solana";
195
+ if (chainId === 800)
196
+ return "bitcoin";
197
+ return "evm";
198
+ }
199
+ function formatAddress(address, startLength = 6, endLength = 4) {
200
+ if (!address || address.length <= startLength + endLength) {
201
+ return address;
202
+ }
203
+ const start = address.substring(0, startLength);
204
+ const end = address.substring(address.length - endLength);
205
+ return `${start}...${end}`;
206
+ }
207
+ function createAbcError(code, message, details, statusCode) {
208
+ return new AbcError(code, message, details, statusCode);
209
+ }
210
+ function sleep(ms) {
211
+ return new Promise((resolve) => setTimeout(resolve, ms));
212
+ }
213
+ async function retry(fn, maxRetries = 3, delay = 1e3, backoffMultiplier = 2) {
214
+ let lastError = null;
215
+ for (let attempt = 0; attempt < maxRetries; attempt++) {
216
+ try {
217
+ return await fn();
218
+ } catch (error) {
219
+ lastError = error;
220
+ if (attempt < maxRetries - 1) {
221
+ const waitTime = delay * backoffMultiplier ** attempt;
222
+ await sleep(waitTime);
223
+ }
224
+ }
225
+ }
226
+ throw lastError || new Error("Retry failed");
227
+ }
228
+ function parseApiError(error) {
229
+ if (error instanceof AbcError) {
230
+ return error;
231
+ }
232
+ if (!error.response) {
233
+ return createAbcError(
234
+ "NETWORK_ERROR" /* NETWORK_ERROR */,
235
+ "Network error occurred",
236
+ error
237
+ );
238
+ }
239
+ const response = error.response;
240
+ const data = response.data;
241
+ const statusCode = response.status;
242
+ if (statusCode === 401) {
243
+ return createAbcError(
244
+ "TOKEN_EXPIRED" /* TOKEN_EXPIRED */,
245
+ "Authentication token expired",
246
+ data,
247
+ 401
248
+ );
249
+ }
250
+ if (statusCode === 409) {
251
+ return createAbcError(
252
+ "WALLET_NOT_FOUND" /* WALLET_NOT_FOUND */,
253
+ // Will trigger recovery
254
+ data?.error || "Resource already exists",
255
+ data,
256
+ 409
257
+ );
258
+ }
259
+ if (typeof data === "object" && "iserr" in data) {
260
+ const bitcoinData = data;
261
+ if (bitcoinData.iserr === true) {
262
+ return createAbcError(
263
+ "SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
264
+ bitcoinData.errmsg || "Bitcoin signature failed",
265
+ data,
266
+ statusCode
267
+ );
268
+ }
269
+ if (!bitcoinData.signstr) {
270
+ return createAbcError(
271
+ "SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
272
+ "Bitcoin signature missing in response",
273
+ data,
274
+ statusCode
275
+ );
276
+ }
277
+ return createAbcError(
278
+ "UNKNOWN_ERROR" /* UNKNOWN_ERROR */,
279
+ "Unexpected success response in error parser",
280
+ data,
281
+ statusCode
282
+ );
283
+ }
284
+ if (data?.error) {
285
+ return createAbcError(
286
+ "UNKNOWN_ERROR" /* UNKNOWN_ERROR */,
287
+ data.error.message || data.error || "API error occurred",
288
+ data,
289
+ statusCode
290
+ );
291
+ }
292
+ if (data?.message) {
293
+ return createAbcError(
294
+ "UNKNOWN_ERROR" /* UNKNOWN_ERROR */,
295
+ data.message.text || "API error occurred",
296
+ data,
297
+ statusCode
298
+ );
299
+ }
300
+ return createAbcError(
301
+ "UNKNOWN_ERROR" /* UNKNOWN_ERROR */,
302
+ "An unknown error occurred",
303
+ error,
304
+ statusCode
305
+ );
306
+ }
307
+ function isBrowser() {
308
+ return typeof window !== "undefined";
309
+ }
310
+ function isWeb3Available() {
311
+ return isBrowser() && typeof window.ethereum !== "undefined";
312
+ }
313
+ function generateId() {
314
+ return `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
315
+ }
316
+ function deepClone(obj) {
317
+ return JSON.parse(JSON.stringify(obj));
318
+ }
319
+ function isEmpty(obj) {
320
+ if (obj == null)
321
+ return true;
322
+ if (Array.isArray(obj))
323
+ return obj.length === 0;
324
+ if (typeof obj === "object")
325
+ return Object.keys(obj).length === 0;
326
+ return false;
327
+ }
328
+ function debounce(func, wait) {
329
+ let timeout = null;
330
+ return function(...args) {
331
+ if (timeout) {
332
+ clearTimeout(timeout);
333
+ }
334
+ timeout = setTimeout(() => {
335
+ func.apply(this, args);
336
+ }, wait);
337
+ };
338
+ }
339
+ function throttle(func, limit) {
340
+ let inThrottle = false;
341
+ return function(...args) {
342
+ if (!inThrottle) {
343
+ func.apply(this, args);
344
+ inThrottle = true;
345
+ setTimeout(() => {
346
+ inThrottle = false;
347
+ }, limit);
348
+ }
349
+ };
350
+ }
351
+ function hexToNumber(hex) {
352
+ return Number.parseInt(hex, 16);
353
+ }
354
+ function numberToHex(num) {
355
+ return `0x${num.toString(16)}`;
356
+ }
357
+ function isValidEthereumAddress(address) {
358
+ return /^0x[a-fA-F0-9]{40}$/.test(address);
359
+ }
360
+ function isValidSolanaAddress(address) {
361
+ return /^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(address);
362
+ }
363
+ function getExplorerUrl(chainId, txHash) {
364
+ const explorers = {
365
+ 1: "https://etherscan.io/tx/",
366
+ 5: "https://goerli.etherscan.io/tx/",
367
+ 137: "https://polygonscan.com/tx/",
368
+ 56: "https://bscscan.com/tx/",
369
+ 900: "https://explorer.solana.com/tx/"
370
+ // Solana
371
+ };
372
+ const baseUrl = explorers[chainId];
373
+ return baseUrl ? `${baseUrl}${txHash}` : null;
374
+ }
375
+
376
+ export {
377
+ hashPin,
378
+ validatePin,
379
+ validateEmail,
380
+ getStorageKey,
381
+ saveToStorage,
382
+ loadFromStorage,
383
+ removeFromStorage,
384
+ clearStorage,
385
+ isTokenExpired,
386
+ calculateExpiryTimestamp,
387
+ saveAuthState,
388
+ loadAuthState,
389
+ clearAuthState,
390
+ getChainType,
391
+ formatAddress,
392
+ createAbcError,
393
+ sleep,
394
+ retry,
395
+ parseApiError,
396
+ isBrowser,
397
+ isWeb3Available,
398
+ generateId,
399
+ deepClone,
400
+ isEmpty,
401
+ debounce,
402
+ throttle,
403
+ hexToNumber,
404
+ numberToHex,
405
+ isValidEthereumAddress,
406
+ isValidSolanaAddress,
407
+ getExplorerUrl
408
+ };