@talken/talkenkit 2.3.7 → 2.3.9

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 (219) hide show
  1. package/dist/Arc-ILTINY4C.js +8 -0
  2. package/dist/Brave-4L5B7JJR.js +8 -0
  3. package/dist/Browser-XMB4J5WD.js +8 -0
  4. package/dist/Chrome-6ZDQIHC5.js +8 -0
  5. package/dist/Edge-OAWCEU7H.js +8 -0
  6. package/dist/Firefox-O66FZK3V.js +8 -0
  7. package/dist/Linux-NUJF4EPC.js +8 -0
  8. package/dist/Macos-46EJ2NPK.js +8 -0
  9. package/dist/Opera-KTUB3UWN.js +8 -0
  10. package/dist/Safari-A3Q6PIT2.js +8 -0
  11. package/dist/Windows-NL32NG52.js +8 -0
  12. package/dist/abcWallet-ES4OPRSK.js +8 -0
  13. package/dist/ar_AR-YBBYUEGS.js +8 -0
  14. package/dist/arbitrum-D2TUFPZI.js +8 -0
  15. package/dist/argentWallet-A5HM5FRP.js +8 -0
  16. package/dist/assets-4NDWRKXE.js +8 -0
  17. package/dist/avalanche-BOOSH35S.js +8 -0
  18. package/dist/base-3JMRS35B.js +8 -0
  19. package/dist/berasigWallet-6IOU73YL.js +8 -0
  20. package/dist/bestWallet-6LJUU6OL.js +8 -0
  21. package/dist/bifrostWallet-SLPPXZ2K.js +8 -0
  22. package/dist/binanceWallet-Z67J7362.js +8 -0
  23. package/dist/bitgetWallet-DLLOWMCI.js +8 -0
  24. package/dist/bitskiWallet-CPOXGABT.js +8 -0
  25. package/dist/bitverseWallet-SAK4MIS6.js +8 -0
  26. package/dist/blast-4GF24NR7.js +8 -0
  27. package/dist/bloomWallet-YIRCNQZJ.js +8 -0
  28. package/dist/braveWallet-PNBKQKJC.js +8 -0
  29. package/dist/bsc-KU6MBOYR.js +8 -0
  30. package/dist/bybitWallet-GCDBAJKO.js +8 -0
  31. package/dist/celo-5A5VXMPX.js +8 -0
  32. package/dist/chunk-M2CMB5B2.js +93 -0
  33. package/dist/chunk-TJX4M23U.js +27 -0
  34. package/dist/clvWallet-R6YRCMZO.js +8 -0
  35. package/dist/coin98Wallet-4Y3ROAGP.js +8 -0
  36. package/dist/coinbaseWallet-L4QDZB5W.js +8 -0
  37. package/dist/compassWallet-NNBX35AV.js +8 -0
  38. package/dist/components/AbcLoginModal/AbcAuthModal.d.ts +11 -1
  39. package/dist/components/ConnectButton/ConnectButtonRenderer.d.ts +1 -1
  40. package/dist/components/ConnectOptions/CompactMobileOptions.css.d.ts +26 -0
  41. package/dist/components/ConnectOptions/CompactMobileOptions.d.ts +19 -0
  42. package/dist/components/ConnectOptions/DesktopOptions.d.ts +9 -2
  43. package/dist/components/RainbowKitProvider/RainbowKitConfigProvider.d.ts +20 -0
  44. package/dist/components/RainbowKitProvider/RainbowKitProvider.d.ts +17 -2
  45. package/dist/config/networks.d.ts +125 -0
  46. package/dist/connect-Q2RLUT5B.js +8 -0
  47. package/dist/contexts/index.d.ts +2 -2
  48. package/dist/coreWallet-PN2LMNGN.js +8 -0
  49. package/dist/create-HQ4QXTKY.js +8 -0
  50. package/dist/cronos-KZAB32FC.js +8 -0
  51. package/dist/dawnWallet-AMO43DL3.js +8 -0
  52. package/dist/de_DE-RUWMVYCQ.js +8 -0
  53. package/dist/desigWallet-AD335WX5.js +8 -0
  54. package/dist/en_US-NQ25CUR4.js +8 -0
  55. package/dist/encryption-3YHRI3PA.js +14 -0
  56. package/dist/enkryptWallet-OOP27GE2.js +8 -0
  57. package/dist/es_419-HKJPYJRI.js +8 -0
  58. package/dist/ethereum-WAFT6DML.js +8 -0
  59. package/dist/flow-XANNOAPJ.js +8 -0
  60. package/dist/foxWallet-UDUWOW52.js +8 -0
  61. package/dist/fr_FR-2O5ZDLPQ.js +1356 -0
  62. package/dist/frameWallet-BEABTFIT.js +8 -0
  63. package/dist/frontierWallet-RG47M3C5.js +8 -0
  64. package/dist/gateWallet-XOP74BMB.js +8 -0
  65. package/dist/gnosis-7GFI4V27.js +8 -0
  66. package/dist/hardhat-6HKZWC4T.js +8 -0
  67. package/dist/hi_IN-XRZ4YIUW.js +8 -0
  68. package/dist/hooks/useDeviceType.d.ts +9 -0
  69. package/dist/id_ID-REEY4CSS.js +8 -0
  70. package/dist/imTokenWallet-LTPKXYUD.js +8 -0
  71. package/dist/index.d.ts +9 -1
  72. package/dist/index.js +1960 -1040
  73. package/dist/injectedWallet-YCFZTULL.js +8 -0
  74. package/dist/iopayWallet-XS37QAUO.js +8 -0
  75. package/dist/ja_JP-2OPCVN6X.js +8 -0
  76. package/dist/kaia-DQ3OSYXE.js +8 -0
  77. package/dist/kaiaWallet-2XZDQZ63.js +8 -0
  78. package/dist/kaikasWallet-V2GCFPEB.js +8 -0
  79. package/dist/ko_KR-DDXBZTYT.js +8 -0
  80. package/dist/krakenWallet-3VM7ZM2O.js +8 -0
  81. package/dist/kresusWallet-4MXFQP4P.js +8 -0
  82. package/dist/ledgerWallet-YC3HF3NJ.js +8 -0
  83. package/dist/login-DGIK764Z.js +8 -0
  84. package/dist/magicEden-BLYGUG47.js +8 -0
  85. package/dist/manta-OEF3QP66.js +8 -0
  86. package/dist/mantle-EYIH4GGM.js +8 -0
  87. package/dist/metaMaskWallet-ZZMFVM52.js +8 -0
  88. package/dist/mewWallet-D6JN37EZ.js +8 -0
  89. package/dist/ms_MY-PX7G4XTD.js +8 -0
  90. package/dist/nestWallet-X3CDHKNV.js +8 -0
  91. package/dist/oktoWallet-ZYLL2RLN.js +8 -0
  92. package/dist/okxWallet-FLICEG4S.js +8 -0
  93. package/dist/omniWallet-DAQHKHUN.js +8 -0
  94. package/dist/oneInchWallet-BRGGUXND.js +8 -0
  95. package/dist/oneKeyWallet-KDU2JIFD.js +8 -0
  96. package/dist/optimism-6GXRYJDW.js +8 -0
  97. package/dist/paraSwapWallet-7UHWT54G.js +8 -0
  98. package/dist/phantomWallet-BSCGZT6L.js +8 -0
  99. package/dist/polygon-YNJM552P.js +8 -0
  100. package/dist/pt_BR-A5R4SBSC.js +8 -0
  101. package/dist/rabbyWallet-RZIUL3YN.js +8 -0
  102. package/dist/rainbowWallet-4ALDT5ZL.js +8 -0
  103. package/dist/ramperWallet-IB3JRE2F.js +8 -0
  104. package/dist/refresh-R5NYTT3S.js +8 -0
  105. package/dist/ronin-LU7LZPWA.js +8 -0
  106. package/dist/roninWallet-BS7VDK7U.js +8 -0
  107. package/dist/ru_RU-4QDZLRSW.js +1356 -0
  108. package/dist/safeWallet-5NR62MJV.js +8 -0
  109. package/dist/safeheronWallet-7ELUSU44.js +8 -0
  110. package/dist/safepalWallet-CZJABQ5N.js +8 -0
  111. package/dist/scan-BVZ7DVJ4.js +8 -0
  112. package/dist/scroll-XRP46UTI.js +8 -0
  113. package/dist/secure-GEK7TTJY.js +8 -0
  114. package/dist/seifWallet-XLBMTX4R.js +8 -0
  115. package/dist/sign-PREOQ4RR.js +8 -0
  116. package/dist/solana/SolanaWalletProvider.d.ts +1 -1
  117. package/dist/subWallet-47USA4OE.js +8 -0
  118. package/dist/tahoWallet-N3XXJ3NW.js +8 -0
  119. package/dist/talismanWallet-SV3B42TQ.js +8 -0
  120. package/dist/th_TH-4TWPYDKX.js +1356 -0
  121. package/dist/themes/baseTheme.js +1 -0
  122. package/dist/themes/darkTheme.js +1 -0
  123. package/dist/themes/lightTheme.js +1 -0
  124. package/dist/themes/midnightTheme.js +1 -0
  125. package/dist/tokenPocketWallet-7IYW3MIL.js +8 -0
  126. package/dist/tokenaryWallet-7D2LN65X.js +8 -0
  127. package/dist/tr_TR-C37KIU7M.js +1356 -0
  128. package/dist/trustWallet-HJQBMBC6.js +8 -0
  129. package/dist/uk_UA-I77HS4GO.js +1356 -0
  130. package/dist/uniswapWallet-JZ2ULELN.js +8 -0
  131. package/dist/utils/abcWaasAdapter.d.ts +75 -0
  132. package/dist/valoraWallet-PCTL6UBB.js +8 -0
  133. package/dist/vi_VN-KVPDLW26.js +8 -0
  134. package/dist/walletConnectWallet-AJ36XVBT.js +8 -0
  135. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinConnector.d.ts +11 -8
  136. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinConnector.js +1 -1
  137. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.d.ts +4 -11
  138. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.js +1 -1
  139. package/dist/wallets/walletConnectors/abcWallet/api/BitcoinApi.d.ts +1 -19
  140. package/dist/wallets/walletConnectors/abcWallet/api/BitcoinApi.js +1 -1
  141. package/dist/wallets/walletConnectors/abcWallet/api/index.js +5 -5
  142. package/dist/wallets/walletConnectors/abcWallet/index.js +5 -5
  143. package/dist/wallets/walletConnectors/abcWallet/types.d.ts +2 -0
  144. package/dist/wallets/walletConnectors/chunk-2GIBC7XF.js +39 -0
  145. package/dist/wallets/walletConnectors/chunk-2J66VMY5.js +152 -0
  146. package/dist/wallets/walletConnectors/chunk-34WMJDUY.js +481 -0
  147. package/dist/wallets/walletConnectors/chunk-3J3XZMJ7.js +39 -0
  148. package/dist/wallets/walletConnectors/chunk-3WVSOTC4.js +63 -0
  149. package/dist/wallets/walletConnectors/chunk-43LOEA55.js +63 -0
  150. package/dist/wallets/walletConnectors/chunk-4IRVZPIN.js +63 -0
  151. package/dist/wallets/walletConnectors/chunk-4NLOE5S3.js +63 -0
  152. package/dist/wallets/walletConnectors/chunk-5MSMALF7.js +63 -0
  153. package/dist/wallets/walletConnectors/chunk-5OFAP55G.js +44 -0
  154. package/dist/wallets/walletConnectors/chunk-6KOHIL7T.js +63 -0
  155. package/dist/wallets/walletConnectors/chunk-6YPK343Z.js +63 -0
  156. package/dist/wallets/walletConnectors/chunk-7FFIZE76.js +63 -0
  157. package/dist/wallets/walletConnectors/chunk-7P5HZGEV.js +627 -0
  158. package/dist/wallets/walletConnectors/chunk-A6LBRVGP.js +63 -0
  159. package/dist/wallets/walletConnectors/chunk-BKXPGZMQ.js +228 -0
  160. package/dist/wallets/walletConnectors/chunk-CNHVIXPV.js +228 -0
  161. package/dist/wallets/walletConnectors/chunk-DAZZIITX.js +1678 -0
  162. package/dist/wallets/walletConnectors/chunk-ESRU5KCF.js +151 -0
  163. package/dist/wallets/walletConnectors/chunk-F4JFONDA.js +601 -0
  164. package/dist/wallets/walletConnectors/chunk-GXHCAEWR.js +63 -0
  165. package/dist/wallets/walletConnectors/chunk-HDYBRMYW.js +194 -0
  166. package/dist/wallets/walletConnectors/chunk-HOE4UOHR.js +514 -0
  167. package/dist/wallets/walletConnectors/chunk-HS2FAOAJ.js +63 -0
  168. package/dist/wallets/walletConnectors/chunk-IA4EQFSS.js +474 -0
  169. package/dist/wallets/walletConnectors/chunk-IHM7I7D5.js +63 -0
  170. package/dist/wallets/walletConnectors/chunk-JJAJOFZI.js +63 -0
  171. package/dist/wallets/walletConnectors/chunk-KFIUFVQH.js +624 -0
  172. package/dist/wallets/walletConnectors/chunk-KFROJI25.js +535 -0
  173. package/dist/wallets/walletConnectors/chunk-KHVILXGK.js +514 -0
  174. package/dist/wallets/walletConnectors/chunk-LGT7LQAJ.js +63 -0
  175. package/dist/wallets/walletConnectors/chunk-LHBQ2Z3Q.js +63 -0
  176. package/dist/wallets/walletConnectors/chunk-M76GLEFL.js +63 -0
  177. package/dist/wallets/walletConnectors/chunk-MFIE6UCG.js +63 -0
  178. package/dist/wallets/walletConnectors/chunk-NA5G3LSC.js +63 -0
  179. package/dist/wallets/walletConnectors/chunk-NASGGIUS.js +63 -0
  180. package/dist/wallets/walletConnectors/chunk-NKJLO4QH.js +39 -0
  181. package/dist/wallets/walletConnectors/chunk-NURTFXQU.js +568 -0
  182. package/dist/wallets/walletConnectors/chunk-NVM3JZ4L.js +63 -0
  183. package/dist/wallets/walletConnectors/chunk-NWDLOM7Q.js +646 -0
  184. package/dist/wallets/walletConnectors/chunk-OHRTTVNJ.js +44 -0
  185. package/dist/wallets/walletConnectors/chunk-OMYDLPUM.js +63 -0
  186. package/dist/wallets/walletConnectors/chunk-P2MTINFI.js +280 -0
  187. package/dist/wallets/walletConnectors/chunk-PLL7P7HY.js +63 -0
  188. package/dist/wallets/walletConnectors/chunk-PUFQKZA7.js +63 -0
  189. package/dist/wallets/walletConnectors/chunk-RLBGBBIO.js +309 -0
  190. package/dist/wallets/walletConnectors/chunk-RUZBOPMI.js +63 -0
  191. package/dist/wallets/walletConnectors/chunk-S2B56ZVJ.js +481 -0
  192. package/dist/wallets/walletConnectors/chunk-SFP47DS6.js +63 -0
  193. package/dist/wallets/walletConnectors/chunk-SNZL5LJ6.js +637 -0
  194. package/dist/wallets/walletConnectors/chunk-SPR4W5TG.js +474 -0
  195. package/dist/wallets/walletConnectors/chunk-SSDCG5BG.js +63 -0
  196. package/dist/wallets/walletConnectors/chunk-SUXK3JW6.js +280 -0
  197. package/dist/wallets/walletConnectors/chunk-TUUNSVKZ.js +345 -0
  198. package/dist/wallets/walletConnectors/chunk-U2CUEL35.js +240 -0
  199. package/dist/wallets/walletConnectors/chunk-VLEVJVJR.js +63 -0
  200. package/dist/wallets/walletConnectors/chunk-W2VDZD74.js +478 -0
  201. package/dist/wallets/walletConnectors/chunk-WAO3KL5U.js +285 -0
  202. package/dist/wallets/walletConnectors/chunk-WYSKBMHW.js +280 -0
  203. package/dist/wallets/walletConnectors/chunk-XDRZSWHB.js +63 -0
  204. package/dist/wallets/walletConnectors/chunk-XKVRDEDK.js +63 -0
  205. package/dist/wallets/walletConnectors/chunk-XYAAXWWU.js +63 -0
  206. package/dist/wallets/walletConnectors/chunk-XYPR4BAF.js +436 -0
  207. package/dist/wallets/walletConnectors/index.js +68 -68
  208. package/dist/wigwamWallet-D3MVGB5Z.js +8 -0
  209. package/dist/xdc-5NQHQJE5.js +8 -0
  210. package/dist/xdefiWallet-B4O6HAIP.js +8 -0
  211. package/dist/zealWallet-6SPNICRX.js +8 -0
  212. package/dist/zerionWallet-XZ3JCAOO.js +8 -0
  213. package/dist/zetachain-U6IILKZJ.js +8 -0
  214. package/dist/zh_CN-KGLAIP3N.js +8 -0
  215. package/dist/zh_HK-AEXEN6P6.js +8 -0
  216. package/dist/zh_TW-6C7R5V3K.js +8 -0
  217. package/dist/zkSync-TMPB52ZN.js +8 -0
  218. package/dist/zora-S46CHEOU.js +8 -0
  219. package/package.json +1 -1
@@ -0,0 +1,285 @@
1
+ "use client";
2
+ import {
3
+ secure_default
4
+ } from "./chunk-G2LI5MVX.js";
5
+ import {
6
+ calculateExpiryTimestamp,
7
+ createAbcError,
8
+ isTokenExpired,
9
+ loadFromStorage,
10
+ parseApiError,
11
+ removeFromStorage,
12
+ saveToStorage
13
+ } from "./chunk-W2VDZD74.js";
14
+ import {
15
+ ABC_ENDPOINTS,
16
+ DEFAULT_HEADERS,
17
+ REQUEST_TIMEOUT
18
+ } from "./chunk-VETRBBA2.js";
19
+
20
+ // src/wallets/walletConnectors/abcWallet/api/BaseApiClient.ts
21
+ var BaseApiClient = class {
22
+ constructor(config) {
23
+ this.accessToken = null;
24
+ this.refreshToken = null;
25
+ this.expiresAt = null;
26
+ this.isRefreshing = false;
27
+ this.refreshPromise = null;
28
+ this.config = config;
29
+ this.baseURL = config.waasUrl;
30
+ this.secure = new secure_default(this.baseURL);
31
+ this.loadTokens();
32
+ }
33
+ /**
34
+ * Load tokens from storage
35
+ */
36
+ loadTokens() {
37
+ this.accessToken = loadFromStorage("access_token" /* ACCESS_TOKEN */);
38
+ this.refreshToken = loadFromStorage("refresh_token" /* REFRESH_TOKEN */);
39
+ this.expiresAt = loadFromStorage("expires_at" /* EXPIRES_AT */);
40
+ }
41
+ /**
42
+ * Save tokens to storage
43
+ */
44
+ saveTokens(accessToken, refreshToken, expiresIn) {
45
+ this.accessToken = accessToken;
46
+ this.refreshToken = refreshToken;
47
+ this.expiresAt = calculateExpiryTimestamp(expiresIn);
48
+ saveToStorage("access_token" /* ACCESS_TOKEN */, accessToken);
49
+ saveToStorage("refresh_token" /* REFRESH_TOKEN */, refreshToken);
50
+ saveToStorage("expires_at" /* EXPIRES_AT */, this.expiresAt);
51
+ }
52
+ /**
53
+ * Clear tokens
54
+ */
55
+ clearTokens() {
56
+ this.accessToken = null;
57
+ this.refreshToken = null;
58
+ this.expiresAt = null;
59
+ removeFromStorage("access_token" /* ACCESS_TOKEN */);
60
+ removeFromStorage("refresh_token" /* REFRESH_TOKEN */);
61
+ removeFromStorage("expires_at" /* EXPIRES_AT */);
62
+ }
63
+ /**
64
+ * Check if access token is expired
65
+ */
66
+ isTokenExpired() {
67
+ return isTokenExpired(this.expiresAt);
68
+ }
69
+ /**
70
+ * Get current access token
71
+ */
72
+ getAccessToken() {
73
+ return this.accessToken;
74
+ }
75
+ /**
76
+ * Set access token manually
77
+ */
78
+ setAccessToken(token) {
79
+ this.accessToken = token;
80
+ }
81
+ /**
82
+ * Get base URL
83
+ */
84
+ getBaseURL() {
85
+ return this.baseURL;
86
+ }
87
+ /**
88
+ * Get configuration
89
+ */
90
+ getConfig() {
91
+ return this.config;
92
+ }
93
+ /**
94
+ * Refresh access token
95
+ */
96
+ async refreshAccessToken() {
97
+ if (this.isRefreshing) {
98
+ if (this.refreshPromise) {
99
+ await this.refreshPromise;
100
+ }
101
+ return;
102
+ }
103
+ if (!this.refreshToken) {
104
+ throw createAbcError(
105
+ "TOKEN_EXPIRED" /* TOKEN_EXPIRED */,
106
+ "No refresh token available"
107
+ );
108
+ }
109
+ this.isRefreshing = true;
110
+ this.refreshPromise = (async () => {
111
+ try {
112
+ const isIframe = typeof window !== "undefined" && window.self !== window.top;
113
+ const talkenApiUrl = process.env.NEXT_PUBLIC_API_SERVER || "https://dev.walletapi.talken.io";
114
+ const response = await fetch(
115
+ `${talkenApiUrl}${ABC_ENDPOINTS.REFRESH_TOKEN}`,
116
+ {
117
+ method: "POST",
118
+ headers: DEFAULT_HEADERS,
119
+ credentials: "include",
120
+ body: new URLSearchParams({
121
+ refresh_token: this.refreshToken || "",
122
+ isIframe: String(isIframe)
123
+ }).toString()
124
+ }
125
+ );
126
+ const text = await response.text();
127
+ const data = text ? JSON.parse(text) : {};
128
+ if (response.ok && data.access_token) {
129
+ const expiresIn = data.expire_in || 3600;
130
+ this.saveTokens(
131
+ data.access_token,
132
+ data.refresh_token || this.refreshToken,
133
+ expiresIn
134
+ );
135
+ } else {
136
+ throw createAbcError(
137
+ "TOKEN_EXPIRED" /* TOKEN_EXPIRED */,
138
+ "Failed to refresh token"
139
+ );
140
+ }
141
+ } finally {
142
+ this.isRefreshing = false;
143
+ this.refreshPromise = null;
144
+ }
145
+ })();
146
+ await this.refreshPromise;
147
+ }
148
+ /**
149
+ * Make HTTP request with automatic token refresh
150
+ */
151
+ async request(endpoint, options = {}) {
152
+ const {
153
+ method = "GET",
154
+ body,
155
+ headers = {},
156
+ skipAuth = false,
157
+ isRetry = false,
158
+ contentType = "form"
159
+ // Default to form-encoded for backward compatibility
160
+ } = options;
161
+ if (!skipAuth && this.isTokenExpired() && this.refreshToken) {
162
+ await this.refreshAccessToken();
163
+ }
164
+ const url = `${this.baseURL}${endpoint}`;
165
+ const requestHeaders = {
166
+ ...DEFAULT_HEADERS,
167
+ ...headers
168
+ };
169
+ if (contentType === "json") {
170
+ requestHeaders["Content-Type"] = "application/json";
171
+ requestHeaders["Accept"] = "application/json";
172
+ }
173
+ if (!skipAuth && this.accessToken) {
174
+ requestHeaders.Authorization = `Bearer ${this.accessToken}`;
175
+ }
176
+ if (this.config.apiKey) {
177
+ requestHeaders["X-API-Key"] = this.config.apiKey;
178
+ }
179
+ try {
180
+ const controller = new AbortController();
181
+ const timeoutId = setTimeout(() => controller.abort(), REQUEST_TIMEOUT);
182
+ const requestBody = body ? contentType === "json" ? JSON.stringify(body) : new URLSearchParams(body).toString() : void 0;
183
+ const response = await fetch(url, {
184
+ method,
185
+ headers: requestHeaders,
186
+ body: requestBody,
187
+ signal: controller.signal
188
+ });
189
+ clearTimeout(timeoutId);
190
+ const text = await response.text();
191
+ let data;
192
+ if (text) {
193
+ try {
194
+ data = JSON.parse(text);
195
+ } catch (parseError) {
196
+ console.error("[BaseApiClient] \u274C JSON parse error:", {
197
+ url,
198
+ method,
199
+ status: response.status,
200
+ responseText: text.substring(0, 200)
201
+ });
202
+ throw createAbcError(
203
+ "UNKNOWN_ERROR" /* UNKNOWN_ERROR */,
204
+ "Invalid JSON response from server",
205
+ { text, parseError }
206
+ );
207
+ }
208
+ } else {
209
+ data = { status: "success" };
210
+ }
211
+ if (response.status === 401 && !skipAuth && this.refreshToken && !isRetry) {
212
+ try {
213
+ await this.refreshAccessToken();
214
+ return await this.request(endpoint, {
215
+ ...options,
216
+ isRetry: true
217
+ });
218
+ } catch (refreshError) {
219
+ console.error("Token refresh failed:", refreshError);
220
+ throw parseApiError({
221
+ response: {
222
+ status: response.status,
223
+ data
224
+ }
225
+ });
226
+ }
227
+ }
228
+ if (!response.ok) {
229
+ console.error("[BaseApiClient] \u274C API Error:", {
230
+ url,
231
+ method,
232
+ status: response.status,
233
+ statusText: response.statusText,
234
+ data
235
+ });
236
+ throw parseApiError({
237
+ response: {
238
+ status: response.status,
239
+ data
240
+ }
241
+ });
242
+ }
243
+ return data;
244
+ } catch (error) {
245
+ console.error("[BaseApiClient] \u274C Request failed:", {
246
+ url,
247
+ method,
248
+ error: error.message
249
+ });
250
+ if (error.name === "AbortError") {
251
+ throw createAbcError(
252
+ "NETWORK_ERROR" /* NETWORK_ERROR */,
253
+ "Request timeout",
254
+ error
255
+ );
256
+ }
257
+ if (error.code && error.message) {
258
+ throw error;
259
+ }
260
+ throw parseApiError(error);
261
+ }
262
+ }
263
+ /**
264
+ * Check if user is authenticated
265
+ */
266
+ isAuthenticated() {
267
+ return !!this.accessToken && !this.isTokenExpired();
268
+ }
269
+ /**
270
+ * Logout (clear tokens)
271
+ */
272
+ async logout() {
273
+ this.clearTokens();
274
+ }
275
+ /**
276
+ * Get secure service instance
277
+ */
278
+ getSecureService() {
279
+ return this.secure;
280
+ }
281
+ };
282
+
283
+ export {
284
+ BaseApiClient
285
+ };
@@ -0,0 +1,280 @@
1
+ "use client";
2
+ import {
3
+ loadAuthState,
4
+ saveAuthState
5
+ } from "./chunk-W23N7VC4.js";
6
+
7
+ // src/wallets/walletConnectors/abcWallet/abcBitcoinConnector.ts
8
+ var AbcBitcoinConnector = class {
9
+ constructor(config) {
10
+ this.wallet = null;
11
+ this.connected = false;
12
+ // Event listeners
13
+ this.connectListeners = /* @__PURE__ */ new Set();
14
+ this.disconnectListeners = /* @__PURE__ */ new Set();
15
+ this.accountsChangedListeners = /* @__PURE__ */ new Set();
16
+ this.networkChangedListeners = /* @__PURE__ */ new Set();
17
+ this.client = config.client;
18
+ this.provider = config.provider;
19
+ this.setupProviderListeners();
20
+ }
21
+ /**
22
+ * Setup provider event listeners
23
+ */
24
+ setupProviderListeners() {
25
+ this.provider.on("connect", () => {
26
+ this.connected = true;
27
+ if (this.wallet) {
28
+ for (const listener of this.connectListeners) {
29
+ listener(this.wallet);
30
+ }
31
+ }
32
+ });
33
+ this.provider.on("disconnect", () => {
34
+ this.connected = false;
35
+ this.wallet = null;
36
+ for (const listener of this.disconnectListeners) {
37
+ listener();
38
+ }
39
+ });
40
+ this.provider.on("accountsChanged", (accounts) => {
41
+ for (const listener of this.accountsChangedListeners) {
42
+ listener(accounts);
43
+ }
44
+ });
45
+ this.provider.on("networkChanged", (network) => {
46
+ for (const listener of this.networkChangedListeners) {
47
+ listener(network);
48
+ }
49
+ });
50
+ }
51
+ /**
52
+ * Connect Bitcoin wallet
53
+ */
54
+ async connect() {
55
+ try {
56
+ const authState = loadAuthState();
57
+ console.log("[BitcoinConnector] \u{1F527} connect() called:", {
58
+ hasAuthState: !!authState,
59
+ isAuthenticated: authState?.isAuthenticated,
60
+ hasBitcoinWallet: !!authState?.bitcoinWallet,
61
+ bitcoinAddress: authState?.bitcoinWallet?.address
62
+ });
63
+ if (!authState || !authState.isAuthenticated || !authState.bitcoinWallet) {
64
+ throw new Error("BITCOIN_LOGIN_REQUIRED");
65
+ }
66
+ this.wallet = authState.bitcoinWallet;
67
+ this.provider.setWallet(authState.bitcoinWallet);
68
+ this.provider.setRequestPinCallback(async () => {
69
+ if (!authState.pin) {
70
+ console.error("[BitcoinConnector] \u274C PIN not available in authState");
71
+ throw new Error("PIN not available");
72
+ }
73
+ return authState.pin;
74
+ });
75
+ console.log("[BitcoinConnector] \u2705 Wallet and PIN callback set:", {
76
+ address: authState.bitcoinWallet.address,
77
+ publicKey: authState.bitcoinWallet.publicKey,
78
+ addressType: authState.bitcoinWallet.addressType,
79
+ network: authState.bitcoinWallet.network,
80
+ hasPIN: !!authState.pin
81
+ });
82
+ this.connected = true;
83
+ return {
84
+ address: authState.bitcoinWallet.address,
85
+ publicKey: authState.bitcoinWallet.publicKey,
86
+ network: authState.bitcoinWallet.network
87
+ };
88
+ } catch (error) {
89
+ if (error.message === "BITCOIN_LOGIN_REQUIRED") {
90
+ throw error;
91
+ }
92
+ console.error("[BitcoinConnector] \u274C connect error:", error);
93
+ throw error;
94
+ }
95
+ }
96
+ /**
97
+ * Disconnect Bitcoin wallet
98
+ */
99
+ async disconnect() {
100
+ try {
101
+ this.provider.clearWallet();
102
+ this.wallet = null;
103
+ this.connected = false;
104
+ console.log("[BitcoinConnector] \u2705 Wallet disconnected");
105
+ } catch (error) {
106
+ console.error("[BitcoinConnector] \u274C disconnect error:", error);
107
+ throw error;
108
+ }
109
+ }
110
+ /**
111
+ * Get Bitcoin address
112
+ */
113
+ async getAddress() {
114
+ return this.provider.getAddress();
115
+ }
116
+ /**
117
+ * Get compressed public key (33 bytes)
118
+ */
119
+ async getPublicKey() {
120
+ return this.provider.getPublicKey();
121
+ }
122
+ /**
123
+ * Get address type (bech32, p2pkh, etc.)
124
+ */
125
+ getAddressType() {
126
+ return this.provider.getAddressType();
127
+ }
128
+ /**
129
+ * Get UTXOs
130
+ */
131
+ async getUtxos(forceRefresh = false) {
132
+ return this.provider.getUtxos(forceRefresh);
133
+ }
134
+ /**
135
+ * Get balance (in satoshis)
136
+ */
137
+ async getBalance(forceRefresh = false) {
138
+ return this.provider.getBalance(forceRefresh);
139
+ }
140
+ /**
141
+ * Estimate transaction fee
142
+ */
143
+ async estimateFee(targetBlocks = 6) {
144
+ return this.provider.estimateFee(targetBlocks);
145
+ }
146
+ /**
147
+ * Sign Bitcoin message (BIP-322)
148
+ * NOTE: Currently not supported - Bitcoin uses v2 API which doesn't have message signing endpoint
149
+ */
150
+ async signMessage(message) {
151
+ return this.provider.signMessage(message);
152
+ }
153
+ /**
154
+ * Send Bitcoin transaction (high-level API)
155
+ * Creates, signs, and broadcasts transaction
156
+ */
157
+ async sendTransaction(params) {
158
+ return this.provider.sendTransaction(params);
159
+ }
160
+ /**
161
+ * Broadcast signed transaction to network (low-level API)
162
+ */
163
+ async broadcastTransaction(rawTransaction, psbt) {
164
+ return this.provider.broadcastTransaction(rawTransaction, psbt);
165
+ }
166
+ /**
167
+ * Check if authorized (has valid session)
168
+ */
169
+ async isAuthorized() {
170
+ try {
171
+ const authState = loadAuthState();
172
+ if (!authState || !authState.isAuthenticated) {
173
+ return false;
174
+ }
175
+ if (!authState.bitcoinWallet) {
176
+ return false;
177
+ }
178
+ return !this.client.auth.isTokenExpired();
179
+ } catch {
180
+ return false;
181
+ }
182
+ }
183
+ /**
184
+ * Check if connected
185
+ */
186
+ isConnected() {
187
+ return this.connected && this.provider.isConnected();
188
+ }
189
+ /**
190
+ * Get current wallet
191
+ */
192
+ getWallet() {
193
+ return this.wallet;
194
+ }
195
+ /**
196
+ * Get provider
197
+ */
198
+ getProvider() {
199
+ return this.provider;
200
+ }
201
+ /**
202
+ * Get wallet info
203
+ */
204
+ getWalletInfo() {
205
+ return this.provider.getWalletInfo();
206
+ }
207
+ /**
208
+ * Switch network
209
+ */
210
+ async switchNetwork(network) {
211
+ this.provider.setNetwork(network);
212
+ const authState = loadAuthState();
213
+ if (authState?.bitcoinWallet) {
214
+ authState.bitcoinWallet.network = network === "mainnet" ? "bitcoin" : "bitcoin_testnet";
215
+ saveAuthState(authState);
216
+ }
217
+ console.log("[BitcoinConnector] \u{1F504} Network switched to:", network);
218
+ }
219
+ /**
220
+ * Get current network
221
+ */
222
+ getNetwork() {
223
+ return this.provider.getNetwork().type;
224
+ }
225
+ /**
226
+ * Refresh UTXO cache
227
+ */
228
+ async refreshUtxos() {
229
+ return this.provider.refreshUtxos();
230
+ }
231
+ on(event, listener) {
232
+ switch (event) {
233
+ case "connect":
234
+ this.connectListeners.add(listener);
235
+ break;
236
+ case "disconnect":
237
+ this.disconnectListeners.add(listener);
238
+ break;
239
+ case "accountsChanged":
240
+ this.accountsChangedListeners.add(listener);
241
+ break;
242
+ case "networkChanged":
243
+ this.networkChangedListeners.add(listener);
244
+ break;
245
+ }
246
+ }
247
+ off(event, listener) {
248
+ switch (event) {
249
+ case "connect":
250
+ this.connectListeners.delete(listener);
251
+ break;
252
+ case "disconnect":
253
+ this.disconnectListeners.delete(listener);
254
+ break;
255
+ case "accountsChanged":
256
+ this.accountsChangedListeners.delete(listener);
257
+ break;
258
+ case "networkChanged":
259
+ this.networkChangedListeners.delete(listener);
260
+ break;
261
+ }
262
+ }
263
+ /**
264
+ * Remove all listeners
265
+ */
266
+ removeAllListeners() {
267
+ this.connectListeners.clear();
268
+ this.disconnectListeners.clear();
269
+ this.accountsChangedListeners.clear();
270
+ this.networkChangedListeners.clear();
271
+ }
272
+ };
273
+ function createAbcBitcoinConnector(config) {
274
+ return new AbcBitcoinConnector(config);
275
+ }
276
+
277
+ export {
278
+ AbcBitcoinConnector,
279
+ createAbcBitcoinConnector
280
+ };
@@ -0,0 +1,63 @@
1
+ "use client";
2
+ import {
3
+ WalletApi
4
+ } from "./chunk-ESRU5KCF.js";
5
+ import {
6
+ AuthApi
7
+ } from "./chunk-RLBGBBIO.js";
8
+ import {
9
+ BitcoinApi
10
+ } from "./chunk-IA4EQFSS.js";
11
+ import {
12
+ SigningApi
13
+ } from "./chunk-TUUNSVKZ.js";
14
+ import {
15
+ SolanaApi
16
+ } from "./chunk-2J66VMY5.js";
17
+ import {
18
+ TransactionApi
19
+ } from "./chunk-HDYBRMYW.js";
20
+
21
+ // src/wallets/walletConnectors/abcWallet/api/index.ts
22
+ var AbcWaasApiClient = class {
23
+ constructor(config) {
24
+ this.auth = new AuthApi(config);
25
+ this.wallet = new WalletApi(config);
26
+ this.transaction = new TransactionApi(config);
27
+ this.signing = new SigningApi(config);
28
+ this.solana = new SolanaApi(config);
29
+ this.bitcoin = new BitcoinApi(config);
30
+ }
31
+ /**
32
+ * Check if user is authenticated
33
+ */
34
+ isAuthenticated() {
35
+ return this.auth.isAuthenticated();
36
+ }
37
+ /**
38
+ * Check if access token is expired
39
+ */
40
+ isTokenExpired() {
41
+ return this.auth.isTokenExpired();
42
+ }
43
+ /**
44
+ * Get current access token
45
+ */
46
+ getAccessToken() {
47
+ return this.auth.getAccessToken();
48
+ }
49
+ /**
50
+ * Logout (clear tokens)
51
+ */
52
+ async logout() {
53
+ await this.auth.logout();
54
+ }
55
+ };
56
+ function createAbcWaasApiClient(config) {
57
+ return new AbcWaasApiClient(config);
58
+ }
59
+
60
+ export {
61
+ AbcWaasApiClient,
62
+ createAbcWaasApiClient
63
+ };
@@ -0,0 +1,63 @@
1
+ "use client";
2
+ import {
3
+ SolanaApi
4
+ } from "./chunk-DMRM7XAS.js";
5
+ import {
6
+ AuthApi
7
+ } from "./chunk-W7R3JGSC.js";
8
+ import {
9
+ SigningApi
10
+ } from "./chunk-4UGXLYKP.js";
11
+ import {
12
+ BitcoinApi
13
+ } from "./chunk-SPR4W5TG.js";
14
+ import {
15
+ TransactionApi
16
+ } from "./chunk-KD2OAMDA.js";
17
+ import {
18
+ WalletApi
19
+ } from "./chunk-JBRW4UTW.js";
20
+
21
+ // src/wallets/walletConnectors/abcWallet/api/index.ts
22
+ var AbcWaasApiClient = class {
23
+ constructor(config) {
24
+ this.auth = new AuthApi(config);
25
+ this.wallet = new WalletApi(config);
26
+ this.transaction = new TransactionApi(config);
27
+ this.signing = new SigningApi(config);
28
+ this.solana = new SolanaApi(config);
29
+ this.bitcoin = new BitcoinApi(config);
30
+ }
31
+ /**
32
+ * Check if user is authenticated
33
+ */
34
+ isAuthenticated() {
35
+ return this.auth.isAuthenticated();
36
+ }
37
+ /**
38
+ * Check if access token is expired
39
+ */
40
+ isTokenExpired() {
41
+ return this.auth.isTokenExpired();
42
+ }
43
+ /**
44
+ * Get current access token
45
+ */
46
+ getAccessToken() {
47
+ return this.auth.getAccessToken();
48
+ }
49
+ /**
50
+ * Logout (clear tokens)
51
+ */
52
+ async logout() {
53
+ await this.auth.logout();
54
+ }
55
+ };
56
+ function createAbcWaasApiClient(config) {
57
+ return new AbcWaasApiClient(config);
58
+ }
59
+
60
+ export {
61
+ AbcWaasApiClient,
62
+ createAbcWaasApiClient
63
+ };