@talken/talkenkit 2.4.16 → 2.4.17

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 (233) hide show
  1. package/dist/abcWallet-54KUGWUZ.js +192 -0
  2. package/dist/abcWallet-KZHOADBJ.js +192 -0
  3. package/dist/abcWallet-NZAVB4PI.js +190 -0
  4. package/dist/chunk-5X3ROW3U.js +8777 -0
  5. package/dist/chunk-DKA3NVFM.js +8497 -0
  6. package/dist/chunk-QNZ5HSPM.js +8339 -0
  7. package/dist/chunk-VE53ZNZV.js +331 -0
  8. package/dist/components/ConfirmationModal/ApproveSection.css.d.ts +16 -0
  9. package/dist/components/ConfirmationModal/ApproveSection.d.ts +8 -0
  10. package/dist/components/ConfirmationModal/NFTPlaceholder.css.d.ts +7 -0
  11. package/dist/components/ConfirmationModal/NFTPlaceholder.d.ts +8 -0
  12. package/dist/components/ConfirmationModal/NftApprovalSection.css.d.ts +10 -0
  13. package/dist/components/ConfirmationModal/NftApprovalSection.d.ts +7 -0
  14. package/dist/components/ConfirmationModal/SignConfirmationModal.css.d.ts +35 -0
  15. package/dist/components/ConfirmationModal/SignConfirmationModal.d.ts +17 -0
  16. package/dist/components/ConfirmationModal/SwapSection.css.d.ts +17 -0
  17. package/dist/components/ConfirmationModal/SwapSection.d.ts +7 -0
  18. package/dist/components/ConfirmationModal/TransactionConfirmationModal.css.d.ts +49 -0
  19. package/dist/components/ConfirmationModal/TransactionConfirmationModal.d.ts +12 -0
  20. package/dist/components/ConfirmationModal/TransferSection.css.d.ts +17 -0
  21. package/dist/components/ConfirmationModal/TransferSection.d.ts +7 -0
  22. package/dist/components/ConfirmationModal/commonStyles.css.d.ts +37 -0
  23. package/dist/components/ConfirmationModal/constants.d.ts +16 -0
  24. package/dist/components/ConfirmationModal/index.d.ts +9 -0
  25. package/dist/components/ConfirmationModal/modalTheme.css.d.ts +20 -0
  26. package/dist/components/ConfirmationModal/transactionUIRegistry.d.ts +134 -0
  27. package/dist/components/ConfirmationModal/utils.d.ts +37 -0
  28. package/dist/components/ConnectOptions/AbcWaasAuth/AbcWaasAuthSections.css.d.ts +1 -0
  29. package/dist/components/ConnectOptions/AbcWaasAuth/AbcWaasAuthSections.d.ts +1 -1
  30. package/dist/components/ConnectOptions/AbcWaasAuth/hooks/useAbcWaasAuth.d.ts +2 -25
  31. package/dist/components/ConnectOptions/AbcWaasAuth/hooks/useAbcWaasSocial.d.ts +1 -47
  32. package/dist/components/ConnectOptions/PinAuth/hooks/useWalletGeneration.d.ts +4 -21
  33. package/dist/components/GasFeeModal/GasFeeEditModal.css.d.ts +32 -0
  34. package/dist/components/GasFeeModal/GasFeeEditModal.d.ts +21 -0
  35. package/dist/components/GasFeeModal/index.d.ts +3 -0
  36. package/dist/components/GasFeeModal/modalTheme.css.d.ts +19 -0
  37. package/dist/components/Icons/Close2.d.ts +7 -0
  38. package/dist/components/Icons/Copy2.d.ts +4 -0
  39. package/dist/components/Icons/Dropdown2.d.ts +4 -0
  40. package/dist/components/Icons/Edit.d.ts +4 -0
  41. package/dist/components/Icons/InfoCircle.d.ts +4 -0
  42. package/dist/components/Icons/Kakao.d.ts +2 -0
  43. package/dist/components/Icons/Minus.d.ts +4 -0
  44. package/dist/components/Icons/Plus.d.ts +4 -0
  45. package/dist/components/Icons/SettingsGear.d.ts +4 -0
  46. package/dist/components/Icons/SpeedHigh.d.ts +4 -0
  47. package/dist/components/Icons/SpeedLow.d.ts +4 -0
  48. package/dist/components/Icons/SpeedMedium.d.ts +4 -0
  49. package/dist/components/RainbowKitProvider/InternalPinProvider.d.ts +7 -9
  50. package/dist/components/RainbowKitProvider/RainbowKitProvider.d.ts +7 -1
  51. package/dist/components/Toast/Toast.css.d.ts +2 -0
  52. package/dist/components/Toast/Toast.d.ts +6 -0
  53. package/dist/components/Toast/index.d.ts +4 -0
  54. package/dist/components/Toast/useToast.d.ts +10 -0
  55. package/dist/config/networks.d.ts +10 -0
  56. package/dist/css/sprinkles.css.d.ts +1 -1
  57. package/dist/hooks/useSolanaWallet.d.ts +5 -23
  58. package/dist/hooks/useTronWallet.d.ts +63 -0
  59. package/dist/index.css +1903 -236
  60. package/dist/index.d.ts +8 -3
  61. package/dist/index.js +7970 -4015
  62. package/dist/klipWallet-RD5Y4UEK.js +8 -0
  63. package/dist/providers/SignConfirmationProvider/SignConfirmationProvider.d.ts +22 -0
  64. package/dist/providers/SignConfirmationProvider/index.d.ts +6 -0
  65. package/dist/providers/SignConfirmationProvider/requestParsers.d.ts +24 -0
  66. package/dist/providers/SignConfirmationProvider/types.d.ts +91 -0
  67. package/dist/providers/SignConfirmationProvider/useApiClient.d.ts +15 -0
  68. package/dist/providers/SignConfirmationProvider/useTransactionResolver.d.ts +18 -0
  69. package/dist/secure-AEBFSVWE.js +8 -0
  70. package/dist/services/AbcAgenticWalletService.d.ts +111 -0
  71. package/dist/services/AbcAuthService.d.ts +26 -20
  72. package/dist/types/index.d.ts +3 -0
  73. package/dist/types/token.d.ts +82 -0
  74. package/dist/utils/abi/abiDecoder.d.ts +144 -0
  75. package/dist/utils/apiClientFactory.d.ts +21 -0
  76. package/dist/utils/blockies.d.ts +12 -0
  77. package/dist/utils/tokenMapper.d.ts +10 -0
  78. package/dist/wallets/walletConnectors/abcWallet/abcApi.d.ts +4 -1
  79. package/dist/wallets/walletConnectors/abcWallet/abcApi.js +7 -7
  80. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinConnector.js +5 -5
  81. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.d.ts +6 -8
  82. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.js +1 -1
  83. package/dist/wallets/walletConnectors/abcWallet/abcConnector.js +9 -9
  84. package/dist/wallets/walletConnectors/abcWallet/abcProvider.d.ts +17 -6
  85. package/dist/wallets/walletConnectors/abcWallet/abcProvider.js +5 -4
  86. package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.d.ts +11 -34
  87. package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.js +1 -1
  88. package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.d.ts +3 -11
  89. package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.js +17 -80
  90. package/dist/wallets/walletConnectors/abcWallet/abcTronProvider.d.ts +112 -0
  91. package/dist/wallets/walletConnectors/abcWallet/abcTronProvider.js +11 -0
  92. package/dist/wallets/walletConnectors/abcWallet/abcWallet.d.ts +2 -0
  93. package/dist/wallets/walletConnectors/abcWallet/abcWallet.js +11 -10
  94. package/dist/wallets/walletConnectors/abcWallet/api/AuthApi.d.ts +9 -11
  95. package/dist/wallets/walletConnectors/abcWallet/api/AuthApi.js +6 -6
  96. package/dist/wallets/walletConnectors/abcWallet/api/BaseApiClient.d.ts +1 -1
  97. package/dist/wallets/walletConnectors/abcWallet/api/BaseApiClient.js +5 -5
  98. package/dist/wallets/walletConnectors/abcWallet/api/BitcoinApi.js +6 -6
  99. package/dist/wallets/walletConnectors/abcWallet/api/GasApi.d.ts +45 -0
  100. package/dist/wallets/walletConnectors/abcWallet/api/GasApi.js +12 -0
  101. package/dist/wallets/walletConnectors/abcWallet/api/SigningApi.js +7 -7
  102. package/dist/wallets/walletConnectors/abcWallet/api/SolanaApi.d.ts +9 -1
  103. package/dist/wallets/walletConnectors/abcWallet/api/SolanaApi.js +7 -7
  104. package/dist/wallets/walletConnectors/abcWallet/api/TalkenApiClient.d.ts +333 -0
  105. package/dist/wallets/walletConnectors/abcWallet/api/TalkenApiClient.js +11 -0
  106. package/dist/wallets/walletConnectors/abcWallet/api/TalkenApiSingleton.d.ts +18 -0
  107. package/dist/wallets/walletConnectors/abcWallet/api/TalkenApiSingleton.js +14 -0
  108. package/dist/wallets/walletConnectors/abcWallet/api/TransactionApi.d.ts +2 -2
  109. package/dist/wallets/walletConnectors/abcWallet/api/TransactionApi.js +7 -7
  110. package/dist/wallets/walletConnectors/abcWallet/api/TronApi.d.ts +102 -0
  111. package/dist/wallets/walletConnectors/abcWallet/api/TronApi.js +12 -0
  112. package/dist/wallets/walletConnectors/abcWallet/api/WalletApi.d.ts +4 -2
  113. package/dist/wallets/walletConnectors/abcWallet/api/WalletApi.js +7 -7
  114. package/dist/wallets/walletConnectors/abcWallet/api/WalletscanApi.d.ts +60 -0
  115. package/dist/wallets/walletConnectors/abcWallet/api/WalletscanApi.js +12 -0
  116. package/dist/wallets/walletConnectors/abcWallet/api/index.d.ts +24 -0
  117. package/dist/wallets/walletConnectors/abcWallet/api/index.js +35 -17
  118. package/dist/wallets/walletConnectors/abcWallet/constants.d.ts +39 -1
  119. package/dist/wallets/walletConnectors/abcWallet/constants.js +5 -1
  120. package/dist/wallets/walletConnectors/abcWallet/googleAuth.d.ts +6 -0
  121. package/dist/wallets/walletConnectors/abcWallet/googleAuth.js +37 -1
  122. package/dist/wallets/walletConnectors/abcWallet/index.d.ts +5 -3
  123. package/dist/wallets/walletConnectors/abcWallet/index.js +44 -31
  124. package/dist/wallets/walletConnectors/abcWallet/kakaoAuth.d.ts +27 -0
  125. package/dist/wallets/walletConnectors/abcWallet/kakaoAuth.js +290 -0
  126. package/dist/wallets/walletConnectors/abcWallet/networkConfig.d.ts +39 -3
  127. package/dist/wallets/walletConnectors/abcWallet/networkConfig.js +11 -3
  128. package/dist/wallets/walletConnectors/abcWallet/secure.js +2 -2
  129. package/dist/wallets/walletConnectors/abcWallet/sessionUtils.js +1 -1
  130. package/dist/wallets/walletConnectors/abcWallet/types.d.ts +369 -7
  131. package/dist/wallets/walletConnectors/abcWallet/types.js +5 -3
  132. package/dist/wallets/walletConnectors/abcWallet/utils.js +3 -3
  133. package/dist/wallets/walletConnectors/abcWallet/walletGeneration.d.ts +10 -19
  134. package/dist/wallets/walletConnectors/abcWallet/walletGeneration.js +2 -2
  135. package/dist/wallets/walletConnectors/berasigWallet/berasigWallet.js +2 -2
  136. package/dist/wallets/walletConnectors/bifrostWallet/bifrostWallet.js +2 -2
  137. package/dist/wallets/walletConnectors/binanceWallet/binanceWallet.js +2 -2
  138. package/dist/wallets/walletConnectors/bitgetWallet/bitgetWallet.js +2 -2
  139. package/dist/wallets/walletConnectors/bybitWallet/bybitWallet.js +2 -2
  140. package/dist/wallets/walletConnectors/chunk-25V3FW3O.js +282 -0
  141. package/dist/wallets/walletConnectors/chunk-27346T3J.js +134 -0
  142. package/dist/wallets/walletConnectors/chunk-5CNLMOB2.js +75 -0
  143. package/dist/wallets/walletConnectors/chunk-5K45TCAM.js +333 -0
  144. package/dist/wallets/walletConnectors/chunk-5VDSMZC4.js +286 -0
  145. package/dist/wallets/walletConnectors/chunk-5W7RBMPH.js +351 -0
  146. package/dist/wallets/walletConnectors/chunk-5XORKEWE.js +326 -0
  147. package/dist/wallets/walletConnectors/chunk-63WBO52A.js +77 -0
  148. package/dist/wallets/walletConnectors/chunk-7IRF225N.js +75 -0
  149. package/dist/wallets/walletConnectors/chunk-7QHCSJDN.js +726 -0
  150. package/dist/wallets/walletConnectors/chunk-A27H6PEU.js +739 -0
  151. package/dist/wallets/walletConnectors/chunk-A4WR3CFN.js +130 -0
  152. package/dist/wallets/walletConnectors/chunk-A6FUNQWF.js +572 -0
  153. package/dist/wallets/walletConnectors/chunk-AF4OCS7N.js +46 -0
  154. package/dist/wallets/walletConnectors/chunk-AFWBXEEC.js +66 -0
  155. package/dist/wallets/walletConnectors/chunk-AUGP2LJR.js +182 -0
  156. package/dist/wallets/walletConnectors/chunk-AWLDVQXC.js +317 -0
  157. package/dist/wallets/walletConnectors/chunk-BLEKTKBN.js +479 -0
  158. package/dist/wallets/walletConnectors/chunk-BVL6G5HI.js +1757 -0
  159. package/dist/wallets/walletConnectors/chunk-CMTGEHDI.js +485 -0
  160. package/dist/wallets/walletConnectors/chunk-D5EFTEOM.js +56 -0
  161. package/dist/wallets/walletConnectors/chunk-DM5NLSWD.js +346 -0
  162. package/dist/wallets/walletConnectors/chunk-EBGI4D2T.js +69 -0
  163. package/dist/wallets/walletConnectors/chunk-EEH2HMFG.js +47 -0
  164. package/dist/wallets/walletConnectors/chunk-F5JWDBKK.js +47 -0
  165. package/dist/wallets/walletConnectors/chunk-FN67MIIH.js +75 -0
  166. package/dist/wallets/walletConnectors/chunk-FWYVBX5F.js +75 -0
  167. package/dist/wallets/walletConnectors/chunk-GH6ZDY4K.js +58 -0
  168. package/dist/wallets/walletConnectors/chunk-GIJZMIBD.js +63 -0
  169. package/dist/wallets/walletConnectors/chunk-GO6OLTNF.js +479 -0
  170. package/dist/wallets/walletConnectors/chunk-HKXBK3NY.js +75 -0
  171. package/dist/wallets/walletConnectors/chunk-HMD2WWFQ.js +75 -0
  172. package/dist/wallets/walletConnectors/chunk-HO5Z2CTL.js +280 -0
  173. package/dist/wallets/walletConnectors/chunk-I3GFVK5O.js +151 -0
  174. package/dist/wallets/walletConnectors/chunk-IUHZ5ZCE.js +121 -0
  175. package/dist/wallets/walletConnectors/chunk-JODNZWWG.js +330 -0
  176. package/dist/wallets/walletConnectors/chunk-JTST3KMW.js +75 -0
  177. package/dist/wallets/walletConnectors/chunk-KH2L3ONV.js +1599 -0
  178. package/dist/wallets/walletConnectors/chunk-LHV22375.js +182 -0
  179. package/dist/wallets/walletConnectors/chunk-LZZE462U.js +315 -0
  180. package/dist/wallets/walletConnectors/chunk-MGCRUAHX.js +276 -0
  181. package/dist/wallets/walletConnectors/chunk-MURSKRMJ.js +63 -0
  182. package/dist/wallets/walletConnectors/chunk-NG7PSAPX.js +115 -0
  183. package/dist/wallets/walletConnectors/chunk-NHP6D6AH.js +204 -0
  184. package/dist/wallets/walletConnectors/chunk-O4AU63LK.js +181 -0
  185. package/dist/wallets/walletConnectors/chunk-OBS74J5N.js +221 -0
  186. package/dist/wallets/walletConnectors/chunk-ON4U54WO.js +115 -0
  187. package/dist/wallets/walletConnectors/chunk-PPYBE5TV.js +276 -0
  188. package/dist/wallets/walletConnectors/chunk-PWWSAM4G.js +309 -0
  189. package/dist/wallets/walletConnectors/chunk-QB5GDLRU.js +330 -0
  190. package/dist/wallets/walletConnectors/chunk-QMLG7MAP.js +107 -0
  191. package/dist/wallets/walletConnectors/chunk-RGIB7FFH.js +47 -0
  192. package/dist/wallets/walletConnectors/chunk-SHJBMDP4.js +278 -0
  193. package/dist/wallets/walletConnectors/chunk-SOBJYYIX.js +484 -0
  194. package/dist/wallets/walletConnectors/chunk-T66U3ADD.js +58 -0
  195. package/dist/wallets/walletConnectors/chunk-THCKLFSJ.js +75 -0
  196. package/dist/wallets/walletConnectors/chunk-TS466TDR.js +286 -0
  197. package/dist/wallets/walletConnectors/chunk-UJGFYQEV.js +459 -0
  198. package/dist/wallets/walletConnectors/chunk-UXNEBBUV.js +224 -0
  199. package/dist/wallets/walletConnectors/chunk-VRCNFVPM.js +276 -0
  200. package/dist/wallets/walletConnectors/chunk-WODNUC65.js +333 -0
  201. package/dist/wallets/walletConnectors/chunk-X6A2FSHK.js +484 -0
  202. package/dist/wallets/walletConnectors/chunk-XVRNEES5.js +1541 -0
  203. package/dist/wallets/walletConnectors/chunk-XWVM2Y5A.js +306 -0
  204. package/dist/wallets/walletConnectors/chunk-XXG7ABSJ.js +328 -0
  205. package/dist/wallets/walletConnectors/chunk-YJH4BHSB.js +254 -0
  206. package/dist/wallets/walletConnectors/chunk-YRDNIP2H.js +90 -0
  207. package/dist/wallets/walletConnectors/chunk-YTPAWPCA.js +156 -0
  208. package/dist/wallets/walletConnectors/chunk-ZCSHD7UG.js +562 -0
  209. package/dist/wallets/walletConnectors/chunk-ZZCZ3RJU.js +272 -0
  210. package/dist/wallets/walletConnectors/clvWallet/clvWallet.js +2 -2
  211. package/dist/wallets/walletConnectors/coin98Wallet/coin98Wallet.js +2 -2
  212. package/dist/wallets/walletConnectors/coreWallet/coreWallet.js +2 -2
  213. package/dist/wallets/walletConnectors/foxWallet/foxWallet.js +2 -2
  214. package/dist/wallets/walletConnectors/frontierWallet/frontierWallet.js +2 -2
  215. package/dist/wallets/walletConnectors/gateWallet/gateWallet.js +2 -2
  216. package/dist/wallets/walletConnectors/index.js +57 -56
  217. package/dist/wallets/walletConnectors/iopayWallet/iopayWallet.js +2 -2
  218. package/dist/wallets/walletConnectors/kaiaWallet/kaiaWallet.js +2 -2
  219. package/dist/wallets/walletConnectors/kaikasWallet/kaikasWallet.js +2 -2
  220. package/dist/wallets/walletConnectors/klipWallet/klipWallet.d.ts +3 -0
  221. package/dist/wallets/walletConnectors/klipWallet/klipWallet.js +8 -0
  222. package/dist/wallets/walletConnectors/klipWallet-PPTYYB5G.js +7 -0
  223. package/dist/wallets/walletConnectors/metaMaskWallet/metaMaskWallet.js +2 -2
  224. package/dist/wallets/walletConnectors/okxWallet/okxWallet.js +2 -2
  225. package/dist/wallets/walletConnectors/rainbowWallet/rainbowWallet.js +2 -2
  226. package/dist/wallets/walletConnectors/roninWallet/roninWallet.js +2 -2
  227. package/dist/wallets/walletConnectors/safepalWallet/safepalWallet.js +2 -2
  228. package/dist/wallets/walletConnectors/subWallet/subWallet.js +2 -2
  229. package/dist/wallets/walletConnectors/tokenPocketWallet/tokenPocketWallet.js +2 -2
  230. package/dist/wallets/walletConnectors/trustWallet/trustWallet.js +2 -2
  231. package/dist/wallets/walletConnectors/zealWallet/zealWallet.js +2 -2
  232. package/dist/wallets/walletConnectors/zerionWallet/zerionWallet.js +2 -2
  233. package/package.json +2 -1
@@ -0,0 +1,306 @@
1
+ "use client";
2
+ import {
3
+ secure_default
4
+ } from "./chunk-ON4U54WO.js";
5
+ import {
6
+ calculateExpiryTimestamp,
7
+ createAbcError,
8
+ isTokenExpired,
9
+ loadFromStorage,
10
+ parseApiError,
11
+ removeFromStorage,
12
+ saveToStorage
13
+ } from "./chunk-BLEKTKBN.js";
14
+ import {
15
+ ABC_ENDPOINTS,
16
+ DEFAULT_HEADERS,
17
+ REQUEST_TIMEOUT
18
+ } from "./chunk-OBS74J5N.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
+ * Set tokens in client instance (useful when restoring from storage or state)
43
+ * Call this before making API requests if tokens are managed externally
44
+ */
45
+ setTokens(accessToken, refreshToken, expiresAt) {
46
+ this.accessToken = accessToken;
47
+ this.refreshToken = refreshToken;
48
+ this.expiresAt = expiresAt;
49
+ }
50
+ /**
51
+ * Save tokens to storage
52
+ */
53
+ saveTokens(accessToken, refreshToken, expiresIn) {
54
+ this.accessToken = accessToken;
55
+ this.refreshToken = refreshToken;
56
+ this.expiresAt = calculateExpiryTimestamp(expiresIn);
57
+ saveToStorage("access_token" /* ACCESS_TOKEN */, accessToken);
58
+ saveToStorage("refresh_token" /* REFRESH_TOKEN */, refreshToken);
59
+ saveToStorage("expires_at" /* EXPIRES_AT */, this.expiresAt);
60
+ }
61
+ /**
62
+ * Clear tokens
63
+ */
64
+ clearTokens() {
65
+ this.accessToken = null;
66
+ this.refreshToken = null;
67
+ this.expiresAt = null;
68
+ removeFromStorage("access_token" /* ACCESS_TOKEN */);
69
+ removeFromStorage("refresh_token" /* REFRESH_TOKEN */);
70
+ removeFromStorage("expires_at" /* EXPIRES_AT */);
71
+ }
72
+ /**
73
+ * Check if access token is expired
74
+ */
75
+ isTokenExpired() {
76
+ return isTokenExpired(this.expiresAt);
77
+ }
78
+ /**
79
+ * Get current access token
80
+ */
81
+ getAccessToken() {
82
+ return this.accessToken;
83
+ }
84
+ /**
85
+ * Set access token manually
86
+ */
87
+ setAccessToken(token) {
88
+ this.accessToken = token;
89
+ }
90
+ /**
91
+ * Get base URL
92
+ */
93
+ getBaseURL() {
94
+ return this.baseURL;
95
+ }
96
+ /**
97
+ * Get configuration
98
+ */
99
+ getConfig() {
100
+ return this.config;
101
+ }
102
+ /**
103
+ * Refresh access token
104
+ */
105
+ async refreshAccessToken() {
106
+ if (this.isRefreshing) {
107
+ if (this.refreshPromise) {
108
+ await this.refreshPromise;
109
+ }
110
+ return;
111
+ }
112
+ if (!this.refreshToken) {
113
+ throw createAbcError(
114
+ "TOKEN_EXPIRED" /* TOKEN_EXPIRED */,
115
+ "No refresh token available"
116
+ );
117
+ }
118
+ this.isRefreshing = true;
119
+ this.refreshPromise = (async () => {
120
+ try {
121
+ const isIframe = typeof window !== "undefined" && window.self !== window.top;
122
+ const talkenApiUrl = process.env.NEXT_PUBLIC_API_SERVER || "https://dev.walletapi.talken.io";
123
+ const isProd = this.config.environment === "production";
124
+ const headers = { ...DEFAULT_HEADERS };
125
+ if (isProd) {
126
+ headers["User-Agent"] = "Android";
127
+ }
128
+ const response = await fetch(
129
+ `${talkenApiUrl}${ABC_ENDPOINTS.REFRESH_TOKEN}`,
130
+ {
131
+ method: "POST",
132
+ headers,
133
+ credentials: "include",
134
+ body: new URLSearchParams({
135
+ refresh_token: this.refreshToken || "",
136
+ isIframe: String(isIframe)
137
+ }).toString()
138
+ }
139
+ );
140
+ const text = await response.text();
141
+ const data = text ? JSON.parse(text) : {};
142
+ if (response.ok && data.access_token) {
143
+ const expiresIn = data.expire_in || 3600;
144
+ this.saveTokens(
145
+ data.access_token,
146
+ data.refresh_token || this.refreshToken,
147
+ expiresIn
148
+ );
149
+ } else {
150
+ throw createAbcError(
151
+ "TOKEN_EXPIRED" /* TOKEN_EXPIRED */,
152
+ "Failed to refresh token"
153
+ );
154
+ }
155
+ } finally {
156
+ this.isRefreshing = false;
157
+ this.refreshPromise = null;
158
+ }
159
+ })();
160
+ await this.refreshPromise;
161
+ }
162
+ /**
163
+ * Make HTTP request with automatic token refresh
164
+ */
165
+ async request(endpoint, options = {}) {
166
+ const {
167
+ method = "GET",
168
+ body,
169
+ headers = {},
170
+ skipAuth = false,
171
+ isRetry = false,
172
+ contentType = "form"
173
+ // Default to form-encoded for backward compatibility
174
+ } = options;
175
+ if (!skipAuth && this.isTokenExpired() && this.refreshToken) {
176
+ await this.refreshAccessToken();
177
+ }
178
+ const url = `${this.baseURL}${endpoint}`;
179
+ const requestHeaders = {
180
+ ...DEFAULT_HEADERS,
181
+ ...headers
182
+ };
183
+ if (contentType === "json") {
184
+ requestHeaders["Content-Type"] = "application/json";
185
+ requestHeaders["Accept"] = "application/json";
186
+ }
187
+ if (this.config.environment === "production") {
188
+ requestHeaders["User-Agent"] = "Android";
189
+ }
190
+ if (!skipAuth && this.accessToken) {
191
+ requestHeaders.Authorization = `Bearer ${this.accessToken}`;
192
+ }
193
+ if (this.config.apiKey) {
194
+ requestHeaders["X-API-Key"] = this.config.apiKey;
195
+ }
196
+ try {
197
+ const controller = new AbortController();
198
+ const timeoutId = setTimeout(() => controller.abort(), REQUEST_TIMEOUT);
199
+ const requestBody = body ? contentType === "json" ? JSON.stringify(body) : new URLSearchParams(body).toString() : void 0;
200
+ const response = await fetch(url, {
201
+ method,
202
+ headers: requestHeaders,
203
+ body: requestBody,
204
+ signal: controller.signal
205
+ });
206
+ clearTimeout(timeoutId);
207
+ const text = await response.text();
208
+ let data;
209
+ if (text) {
210
+ try {
211
+ data = JSON.parse(text);
212
+ } catch (parseError) {
213
+ console.error("[BaseApiClient] \u274C JSON parse error:", {
214
+ url,
215
+ method,
216
+ status: response.status,
217
+ responseText: text.substring(0, 200)
218
+ });
219
+ throw createAbcError(
220
+ "UNKNOWN_ERROR" /* UNKNOWN_ERROR */,
221
+ "Invalid JSON response from server",
222
+ { text, parseError }
223
+ );
224
+ }
225
+ } else {
226
+ data = { status: "success" };
227
+ }
228
+ if (response.status === 401 && !skipAuth && this.refreshToken && !isRetry) {
229
+ try {
230
+ await this.refreshAccessToken();
231
+ return await this.request(endpoint, {
232
+ ...options,
233
+ isRetry: true
234
+ });
235
+ } catch (refreshError) {
236
+ console.error("Token refresh failed:", refreshError);
237
+ throw parseApiError({
238
+ response: {
239
+ status: response.status,
240
+ data
241
+ }
242
+ });
243
+ }
244
+ }
245
+ if (!response.ok) {
246
+ if (response.status !== 409) {
247
+ console.error("[BaseApiClient] \u274C API Error:", {
248
+ url,
249
+ method,
250
+ status: response.status,
251
+ statusText: response.statusText,
252
+ data
253
+ });
254
+ }
255
+ throw parseApiError({
256
+ response: {
257
+ status: response.status,
258
+ data
259
+ }
260
+ });
261
+ }
262
+ return data;
263
+ } catch (error) {
264
+ if (error.response?.status !== 409 && error.code !== "WALLET_ALREADY_EXISTS") {
265
+ console.error("[BaseApiClient] \u274C Request failed:", {
266
+ url,
267
+ method,
268
+ error: error.message
269
+ });
270
+ }
271
+ if (error.name === "AbortError") {
272
+ throw createAbcError(
273
+ "NETWORK_ERROR" /* NETWORK_ERROR */,
274
+ "Request timeout",
275
+ error
276
+ );
277
+ }
278
+ if (error.code && error.message) {
279
+ throw error;
280
+ }
281
+ throw parseApiError(error);
282
+ }
283
+ }
284
+ /**
285
+ * Check if user is authenticated
286
+ */
287
+ isAuthenticated() {
288
+ return !!this.accessToken && !this.isTokenExpired();
289
+ }
290
+ /**
291
+ * Logout (clear tokens)
292
+ */
293
+ async logout() {
294
+ this.clearTokens();
295
+ }
296
+ /**
297
+ * Get secure service instance
298
+ */
299
+ getSecureService() {
300
+ return this.secure;
301
+ }
302
+ };
303
+
304
+ export {
305
+ BaseApiClient
306
+ };
@@ -0,0 +1,328 @@
1
+ "use client";
2
+ import {
3
+ BaseApiClient
4
+ } from "./chunk-25V3FW3O.js";
5
+ import {
6
+ createAbcError
7
+ } from "./chunk-GO6OLTNF.js";
8
+
9
+ // src/wallets/walletConnectors/abcWallet/api/TronApi.ts
10
+ import { getTalkenApiClient } from "@talken/talkenkit";
11
+ var TronApi = class extends BaseApiClient {
12
+ /**
13
+ * Get TRON address from TalkenApiClient unified addresses endpoint.
14
+ *
15
+ * @param _publicKey - Compressed public key (unused, TalkenApiClient resolves internally)
16
+ * @param _network - TRON network (unused, TalkenApiClient resolves internally)
17
+ * @returns TRON address (starts with 'T')
18
+ */
19
+ async getTronAddress(_publicKey, _network) {
20
+ const api = getTalkenApiClient();
21
+ if (!api)
22
+ throw new Error("TalkenApiClient not initialized");
23
+ const addresses = await api.wallet.getAddresses();
24
+ if (!addresses.tron) {
25
+ throw createAbcError(
26
+ "WALLET_NOT_FOUND" /* WALLET_NOT_FOUND */,
27
+ "TRON address not found in TalkenApiClient response"
28
+ );
29
+ }
30
+ return addresses.tron;
31
+ }
32
+ /**
33
+ * Create unsigned TRX native transfer transaction
34
+ *
35
+ * @param params - Transfer parameters
36
+ * @returns Unsigned transaction with raw_data and txID
37
+ */
38
+ async transfer(params) {
39
+ const url = `${this.baseURL}/wapi/v2/tron/transfer`;
40
+ console.log("[TronApi] \u{1F4B8} Creating TRX transfer...", {
41
+ from: `${params.fromAddress.substring(0, 6)}...`,
42
+ to: `${params.toAddress.substring(0, 6)}...`,
43
+ amount: params.amount
44
+ });
45
+ const response = await fetch(url, {
46
+ method: "POST",
47
+ headers: {
48
+ "Content-Type": "application/json",
49
+ ...this.accessToken ? { Authorization: `Bearer ${this.accessToken}` } : {}
50
+ },
51
+ body: JSON.stringify({
52
+ network: params.network,
53
+ from_address: params.fromAddress,
54
+ to_address: params.toAddress,
55
+ amount: params.amount
56
+ })
57
+ });
58
+ const data = await response.json();
59
+ if (!response.ok || data.status && data.status !== "success") {
60
+ console.error("[TronApi] \u274C Transfer creation failed:", data);
61
+ throw createAbcError(
62
+ "NETWORK_ERROR" /* NETWORK_ERROR */,
63
+ "Failed to create TRX transfer",
64
+ data
65
+ );
66
+ }
67
+ const result = data.result || data;
68
+ const txData = result.transaction || result;
69
+ const rawData = txData.raw_data;
70
+ const txID = txData.txID;
71
+ if (!rawData || !txID) {
72
+ throw createAbcError(
73
+ "NETWORK_ERROR" /* NETWORK_ERROR */,
74
+ "Invalid TRX transfer response: missing raw_data or txID",
75
+ data
76
+ );
77
+ }
78
+ console.log(
79
+ "[TronApi] \u2705 TRX transfer created:",
80
+ `${txID.substring(0, 16)}...`
81
+ );
82
+ return { txID, rawData };
83
+ }
84
+ /**
85
+ * Create unsigned TRC20 token transfer transaction
86
+ *
87
+ * @param params - TRC20 transfer parameters
88
+ * @returns Unsigned transaction with raw_data and txID
89
+ */
90
+ async trc20Transfer(params) {
91
+ const url = `${this.baseURL}/wapi/v2/tron/trc20/transfer`;
92
+ console.log("[TronApi] \u{1F4B8} Creating TRC20 transfer...", {
93
+ from: `${params.fromAddress.substring(0, 6)}...`,
94
+ to: `${params.toAddress.substring(0, 6)}...`,
95
+ contract: `${params.contractAddress.substring(0, 6)}...`
96
+ });
97
+ const response = await fetch(url, {
98
+ method: "POST",
99
+ headers: {
100
+ "Content-Type": "application/json",
101
+ ...this.accessToken ? { Authorization: `Bearer ${this.accessToken}` } : {}
102
+ },
103
+ body: JSON.stringify({
104
+ network: params.network,
105
+ from_address: params.fromAddress,
106
+ to_address: params.toAddress,
107
+ amount: params.amount,
108
+ contract_address: params.contractAddress,
109
+ fee_limit: params.feeLimit || 1e8
110
+ })
111
+ });
112
+ const data = await response.json();
113
+ if (!response.ok || data.status && data.status !== "success") {
114
+ console.error("[TronApi] \u274C TRC20 transfer creation failed:", data);
115
+ throw createAbcError(
116
+ "NETWORK_ERROR" /* NETWORK_ERROR */,
117
+ "Failed to create TRC20 transfer",
118
+ data
119
+ );
120
+ }
121
+ const result = data.result || data;
122
+ const txData = result.transaction || result;
123
+ const rawData = txData.raw_data;
124
+ const txID = txData.txID;
125
+ if (!rawData || !txID) {
126
+ throw createAbcError(
127
+ "NETWORK_ERROR" /* NETWORK_ERROR */,
128
+ "Invalid TRC20 transfer response: missing raw_data or txID",
129
+ data
130
+ );
131
+ }
132
+ console.log(
133
+ "[TronApi] \u2705 TRC20 transfer created:",
134
+ `${txID.substring(0, 16)}...`
135
+ );
136
+ return { txID, rawData };
137
+ }
138
+ /**
139
+ * Sign transaction hash using Secure Channel (V2 sign/hash API)
140
+ * Same signing flow as Bitcoin - uses EVM wallet credentials via Secure Channel encryption
141
+ *
142
+ * @param hash - Transaction hash (txID) to sign
143
+ * @param wallet - EVM wallet credentials (uid, sid, wid, pvencstr, encryptDevicePassword)
144
+ * @param pinHash - Hashed PIN (SHA-256)
145
+ * @param secureService - SecureService instance for ECDH encryption
146
+ * @returns Array of signature strings (r + s without 0x prefix)
147
+ */
148
+ async signHash(hash, wallet, pinHash, secureService) {
149
+ console.log(
150
+ "[TronApi] \u{1F510} Signing hash:",
151
+ `${hash.substring(0, 20)}...`
152
+ );
153
+ if (!wallet.wid || !wallet.pvencstr) {
154
+ console.error("[TronApi] \u274C Missing signing fields:", {
155
+ hasWid: !!wallet.wid,
156
+ hasPvencstr: !!wallet.pvencstr,
157
+ hasSid: !!wallet.sid,
158
+ hasUid: !!wallet.uid
159
+ });
160
+ throw createAbcError(
161
+ "WALLET_NOT_FOUND" /* WALLET_NOT_FOUND */,
162
+ "Wallet missing required fields for TRON signing (wid, pvencstr)",
163
+ { hasWid: !!wallet.wid, hasPvencstr: !!wallet.pvencstr }
164
+ );
165
+ }
166
+ const encryptDevicePassword = await secureService.getEncryptPlain(
167
+ wallet.encryptDevicePassword || pinHash
168
+ );
169
+ const pvencstr = await secureService.getEncryptPlain(wallet.pvencstr);
170
+ const wid = await secureService.getEncryptPlain(wallet.wid);
171
+ const secureChannelId = await secureService.getSecureChannelId();
172
+ const params = new URLSearchParams({
173
+ uid: wallet.uid,
174
+ sid: wallet.sid || "",
175
+ hash,
176
+ pvencstr,
177
+ wid,
178
+ encryptDevicePassword,
179
+ network: "tron"
180
+ });
181
+ const url = `${this.baseURL}/wapi/v2/sign/hash`;
182
+ const response = await fetch(url, {
183
+ method: "POST",
184
+ headers: {
185
+ "Content-Type": "application/x-www-form-urlencoded",
186
+ "Secure-Channel": secureChannelId,
187
+ ...this.accessToken ? { Authorization: `Bearer ${this.accessToken}` } : {}
188
+ },
189
+ body: params.toString()
190
+ });
191
+ const responseText = await response.text();
192
+ if (!responseText) {
193
+ throw createAbcError(
194
+ "NETWORK_ERROR" /* NETWORK_ERROR */,
195
+ "Empty response from sign hash API",
196
+ { status: response.status }
197
+ );
198
+ }
199
+ let data;
200
+ try {
201
+ data = JSON.parse(responseText);
202
+ } catch (parseError) {
203
+ console.error("[TronApi] \u274C JSON parse error:", parseError);
204
+ throw createAbcError(
205
+ "NETWORK_ERROR" /* NETWORK_ERROR */,
206
+ "Invalid JSON response from sign hash API",
207
+ { responseText, parseError }
208
+ );
209
+ }
210
+ if (!response.ok || data.iserr === true || !data.signstr) {
211
+ const errorDetails = data.errmsg || data.errors?.[0] || data.message || data;
212
+ console.error("[TronApi] \u274C Sign failed:", errorDetails);
213
+ throw createAbcError(
214
+ "SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
215
+ `Failed to sign hash: ${JSON.stringify(errorDetails)}`,
216
+ data
217
+ );
218
+ }
219
+ const signstr = JSON.parse(data.signstr);
220
+ const sigList = signstr.sig_list;
221
+ const signatures = [];
222
+ for (const sig of sigList) {
223
+ const r = sig.r.startsWith("0x") ? sig.r.substring(2) : sig.r;
224
+ const s = sig.s.startsWith("0x") ? sig.s.substring(2) : sig.s;
225
+ const v = (27 + (sig.vsource || 0)).toString(16);
226
+ signatures.push(r + s + v);
227
+ }
228
+ console.log(
229
+ "[TronApi] \u2705 Signature generated:",
230
+ `${signatures[0].length / 2} bytes,`,
231
+ `${signatures[0].substring(0, 16)}...${signatures[0].substring(signatures[0].length - 4)}`
232
+ );
233
+ return signatures;
234
+ }
235
+ /**
236
+ * Broadcast signed TRON transaction
237
+ *
238
+ * @param rawData - Raw transaction data from transfer/trc20Transfer
239
+ * @param signatures - Signatures from signHash
240
+ * @param network - TRON network
241
+ * @returns Transaction hash (txid)
242
+ */
243
+ async broadcast(rawData, signatures, network) {
244
+ const url = `${this.baseURL}/wapi/v2/tron/send/transaction`;
245
+ console.log("[TronApi] \u{1F4E1} Broadcasting TRON transaction...");
246
+ const response = await fetch(url, {
247
+ method: "POST",
248
+ headers: {
249
+ "Content-Type": "application/json",
250
+ ...this.accessToken ? { Authorization: `Bearer ${this.accessToken}` } : {}
251
+ },
252
+ body: JSON.stringify({
253
+ network,
254
+ raw_data: rawData,
255
+ signature: signatures
256
+ })
257
+ });
258
+ const data = await response.json();
259
+ if (!response.ok || data.status && data.status !== "success") {
260
+ console.error("[TronApi] \u274C Broadcast failed:", data);
261
+ throw createAbcError(
262
+ "NETWORK_ERROR" /* NETWORK_ERROR */,
263
+ "Failed to broadcast TRON transaction",
264
+ data
265
+ );
266
+ }
267
+ const txHash = data.txid || data.txID || data.tx_hash;
268
+ if (!txHash) {
269
+ console.error("[TronApi] \u274C No txid in response:", data);
270
+ throw createAbcError(
271
+ "NETWORK_ERROR" /* NETWORK_ERROR */,
272
+ "Transaction hash not found in broadcast response",
273
+ data
274
+ );
275
+ }
276
+ console.log("[TronApi] \u2705 Transaction broadcasted:", txHash);
277
+ return txHash;
278
+ }
279
+ /**
280
+ * Send TRON transaction (Complete flow: transfer/trc20Transfer -> signHash -> broadcast)
281
+ * High-level API that handles all 3 steps
282
+ *
283
+ * @param params - Transaction parameters
284
+ * @param wallet - EVM wallet credentials
285
+ * @param pinHash - Hashed PIN
286
+ * @param secureService - SecureService instance
287
+ * @returns Transaction hash
288
+ */
289
+ async sendTransaction(params, wallet, pinHash, secureService) {
290
+ console.log("[TronApi] \u{1F4B8} Starting TRON transaction flow...");
291
+ let txID;
292
+ let rawData;
293
+ if (params.type === "TRC20" && params.contractAddress) {
294
+ const result = await this.trc20Transfer({
295
+ fromAddress: params.fromAddress,
296
+ toAddress: params.toAddress,
297
+ amount: params.amount,
298
+ contractAddress: params.contractAddress,
299
+ feeLimit: params.feeLimit,
300
+ network: params.network
301
+ });
302
+ txID = result.txID;
303
+ rawData = result.rawData;
304
+ } else {
305
+ const result = await this.transfer({
306
+ fromAddress: params.fromAddress,
307
+ toAddress: params.toAddress,
308
+ amount: Number(params.amount),
309
+ network: params.network
310
+ });
311
+ txID = result.txID;
312
+ rawData = result.rawData;
313
+ }
314
+ const signatures = await this.signHash(
315
+ txID,
316
+ wallet,
317
+ pinHash,
318
+ secureService
319
+ );
320
+ const txHash = await this.broadcast(rawData, signatures, params.network);
321
+ console.log("[TronApi] \u2705 Transaction complete:", txHash);
322
+ return txHash;
323
+ }
324
+ };
325
+
326
+ export {
327
+ TronApi
328
+ };