@talken/talkenkit 2.4.20 → 2.4.22

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 (175) hide show
  1. package/LICENSE +9 -0
  2. package/dist/abcWallet-4RS3B4ZG.js +188 -0
  3. package/dist/abcWallet-EBOW2RJB.js +188 -0
  4. package/dist/abcWallet-RS4EOJ4I.js +188 -0
  5. package/dist/abcWallet-SNEZVK7V.js +188 -0
  6. package/dist/abcWallet-TC7M2JYX.js +188 -0
  7. package/dist/abcWallet-VZMW2DR3.js +188 -0
  8. package/dist/abcWallet-XJ3WSUVI.js +188 -0
  9. package/dist/abcWallet-XNCBZAIQ.js +188 -0
  10. package/dist/chunk-6FLQAAC4.js +7213 -0
  11. package/dist/chunk-7GIIMIPN.js +7213 -0
  12. package/dist/chunk-IBFA37SC.js +7228 -0
  13. package/dist/chunk-O5ZOC4NJ.js +7215 -0
  14. package/dist/chunk-OPOAKGEX.js +7216 -0
  15. package/dist/chunk-OTIHVCVR.js +7213 -0
  16. package/dist/chunk-P77BVZZF.js +7369 -0
  17. package/dist/chunk-RFLXXSQH.js +7139 -0
  18. package/dist/components/ConfirmationModal/NonEvmConfirmationModal.css.d.ts +11 -0
  19. package/dist/components/ConfirmationModal/NonEvmSignConfirmationModal.d.ts +9 -0
  20. package/dist/components/ConfirmationModal/NonEvmTransferConfirmationModal.d.ts +9 -0
  21. package/dist/components/ConfirmationModal/SignConfirmationModal.css.d.ts +1 -19
  22. package/dist/components/ConfirmationModal/TransactionConfirmationModal.css.d.ts +1 -20
  23. package/dist/components/ConfirmationModal/commonStyles.css.d.ts +19 -0
  24. package/dist/components/ConfirmationModal/index.d.ts +2 -0
  25. package/dist/components/ConfirmationModal/utils.d.ts +2 -1
  26. package/dist/hooks/useWalletCapabilities.d.ts +2 -0
  27. package/dist/index.css +227 -307
  28. package/dist/index.d.ts +4 -2
  29. package/dist/index.js +2007 -1067
  30. package/dist/providers/SignConfirmationProvider/NonEvmConfirmationContext.d.ts +6 -0
  31. package/dist/providers/SignConfirmationProvider/index.d.ts +2 -1
  32. package/dist/providers/SignConfirmationProvider/requestParsers.d.ts +6 -1
  33. package/dist/providers/SignConfirmationProvider/types.d.ts +35 -1
  34. package/dist/wallets/capabilities/detectCapabilities.d.ts +7 -0
  35. package/dist/wallets/capabilities/requestWalletAction.d.ts +8 -0
  36. package/dist/wallets/capabilities/types.d.ts +50 -0
  37. package/dist/wallets/walletConnectors/abcWallet/abcApi.js +3 -3
  38. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinConnector.js +3 -3
  39. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.d.ts +10 -0
  40. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.js +1 -1
  41. package/dist/wallets/walletConnectors/abcWallet/abcConnector.js +5 -5
  42. package/dist/wallets/walletConnectors/abcWallet/abcProvider.d.ts +9 -0
  43. package/dist/wallets/walletConnectors/abcWallet/abcProvider.js +3 -3
  44. package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.d.ts +10 -0
  45. package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.js +1 -1
  46. package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.d.ts +16 -0
  47. package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.js +115 -33
  48. package/dist/wallets/walletConnectors/abcWallet/abcTronProvider.d.ts +16 -0
  49. package/dist/wallets/walletConnectors/abcWallet/abcTronProvider.js +1 -1
  50. package/dist/wallets/walletConnectors/abcWallet/abcWallet.js +7 -7
  51. package/dist/wallets/walletConnectors/abcWallet/api/AuthApi.js +4 -4
  52. package/dist/wallets/walletConnectors/abcWallet/api/BaseApiClient.js +3 -3
  53. package/dist/wallets/walletConnectors/abcWallet/api/BitcoinApi.js +4 -4
  54. package/dist/wallets/walletConnectors/abcWallet/api/GasApi.js +4 -4
  55. package/dist/wallets/walletConnectors/abcWallet/api/SolanaApi.js +4 -4
  56. package/dist/wallets/walletConnectors/abcWallet/api/TalkenApiClient.d.ts +9 -4
  57. package/dist/wallets/walletConnectors/abcWallet/api/TalkenApiClient.js +2 -2
  58. package/dist/wallets/walletConnectors/abcWallet/api/TransactionApi.js +4 -4
  59. package/dist/wallets/walletConnectors/abcWallet/api/TronApi.js +4 -4
  60. package/dist/wallets/walletConnectors/abcWallet/api/WalletApi.js +4 -4
  61. package/dist/wallets/walletConnectors/abcWallet/api/WalletscanApi.js +4 -4
  62. package/dist/wallets/walletConnectors/abcWallet/api/index.js +17 -17
  63. package/dist/wallets/walletConnectors/abcWallet/constants.d.ts +5 -4
  64. package/dist/wallets/walletConnectors/abcWallet/constants.js +1 -1
  65. package/dist/wallets/walletConnectors/abcWallet/index.js +21 -21
  66. package/dist/wallets/walletConnectors/abcWallet/types.d.ts +31 -1
  67. package/dist/wallets/walletConnectors/abcWallet/utils.js +2 -2
  68. package/dist/wallets/walletConnectors/berasigWallet/berasigWallet.js +2 -2
  69. package/dist/wallets/walletConnectors/bifrostWallet/bifrostWallet.js +2 -2
  70. package/dist/wallets/walletConnectors/binanceWallet/binanceWallet.js +2 -2
  71. package/dist/wallets/walletConnectors/bitgetWallet/bitgetWallet.js +2 -2
  72. package/dist/wallets/walletConnectors/bybitWallet/bybitWallet.js +2 -2
  73. package/dist/wallets/walletConnectors/chunk-2IZBLAHI.js +52 -0
  74. package/dist/wallets/walletConnectors/chunk-32IJ3ILH.js +71 -0
  75. package/dist/wallets/walletConnectors/chunk-3AX66UHT.js +479 -0
  76. package/dist/wallets/walletConnectors/chunk-3BVPV64G.js +36 -0
  77. package/dist/wallets/walletConnectors/chunk-3DGFHWI3.js +302 -0
  78. package/dist/wallets/walletConnectors/chunk-4FKUVQCM.js +655 -0
  79. package/dist/wallets/walletConnectors/chunk-56SF4VRC.js +640 -0
  80. package/dist/wallets/walletConnectors/chunk-5KOE7NJW.js +52 -0
  81. package/dist/wallets/walletConnectors/chunk-6CVXZ3ZW.js +771 -0
  82. package/dist/wallets/walletConnectors/chunk-6GCWEPU7.js +643 -0
  83. package/dist/wallets/walletConnectors/chunk-6YFP3Q2I.js +118 -0
  84. package/dist/wallets/walletConnectors/chunk-7EEPPULA.js +118 -0
  85. package/dist/wallets/walletConnectors/chunk-7QL42XTB.js +302 -0
  86. package/dist/wallets/walletConnectors/chunk-A7ZSPSFX.js +577 -0
  87. package/dist/wallets/walletConnectors/chunk-AI3CT254.js +302 -0
  88. package/dist/wallets/walletConnectors/chunk-AMNVH7CZ.js +151 -0
  89. package/dist/wallets/walletConnectors/chunk-AOREXGRM.js +350 -0
  90. package/dist/wallets/walletConnectors/chunk-BLO7E54F.js +302 -0
  91. package/dist/wallets/walletConnectors/chunk-BNRH5PYS.js +52 -0
  92. package/dist/wallets/walletConnectors/chunk-BOV5FXU6.js +151 -0
  93. package/dist/wallets/walletConnectors/chunk-BR25RFNF.js +260 -0
  94. package/dist/wallets/walletConnectors/chunk-BXQ2UWJ3.js +91 -0
  95. package/dist/wallets/walletConnectors/chunk-CAMPW7O2.js +874 -0
  96. package/dist/wallets/walletConnectors/chunk-CLMFCNP7.js +52 -0
  97. package/dist/wallets/walletConnectors/chunk-DSZOE65L.js +107 -0
  98. package/dist/wallets/walletConnectors/chunk-DU6RCLWT.js +272 -0
  99. package/dist/wallets/walletConnectors/chunk-ENN6UGGA.js +421 -0
  100. package/dist/wallets/walletConnectors/chunk-EXWDLN5V.js +204 -0
  101. package/dist/wallets/walletConnectors/chunk-FFU26Y5Y.js +272 -0
  102. package/dist/wallets/walletConnectors/chunk-FGS2WHVA.js +118 -0
  103. package/dist/wallets/walletConnectors/chunk-FJJ3QI4R.js +91 -0
  104. package/dist/wallets/walletConnectors/chunk-FS2OOQYF.js +204 -0
  105. package/dist/wallets/walletConnectors/chunk-G5X3COSW.js +205 -0
  106. package/dist/wallets/walletConnectors/chunk-H53R4SFZ.js +204 -0
  107. package/dist/wallets/walletConnectors/chunk-J4QGDATF.js +71 -0
  108. package/dist/wallets/walletConnectors/chunk-JIJNCMJR.js +874 -0
  109. package/dist/wallets/walletConnectors/chunk-JSGZYU4A.js +52 -0
  110. package/dist/wallets/walletConnectors/chunk-JVT7R2GZ.js +771 -0
  111. package/dist/wallets/walletConnectors/chunk-K3JNN5UK.js +71 -0
  112. package/dist/wallets/walletConnectors/chunk-KBHPY3NA.js +302 -0
  113. package/dist/wallets/walletConnectors/chunk-KEX6WS23.js +640 -0
  114. package/dist/wallets/walletConnectors/chunk-KHYKVVR7.js +52 -0
  115. package/dist/wallets/walletConnectors/chunk-LOL7ZZ3S.js +302 -0
  116. package/dist/wallets/walletConnectors/chunk-LOSXI36Y.js +479 -0
  117. package/dist/wallets/walletConnectors/chunk-M2U5QGM7.js +260 -0
  118. package/dist/wallets/walletConnectors/chunk-M73AWLIV.js +107 -0
  119. package/dist/wallets/walletConnectors/chunk-MAUC46AE.js +302 -0
  120. package/dist/wallets/walletConnectors/chunk-MBRXYEQC.js +272 -0
  121. package/dist/wallets/walletConnectors/chunk-MDDD4LG2.js +874 -0
  122. package/dist/wallets/walletConnectors/chunk-MMR2QAEU.js +642 -0
  123. package/dist/wallets/walletConnectors/chunk-MNZZRFUC.js +302 -0
  124. package/dist/wallets/walletConnectors/chunk-OIRY24PH.js +302 -0
  125. package/dist/wallets/walletConnectors/chunk-ORBX4JE2.js +52 -0
  126. package/dist/wallets/walletConnectors/chunk-OXJFFDW7.js +761 -0
  127. package/dist/wallets/walletConnectors/chunk-QD3PPWTN.js +272 -0
  128. package/dist/wallets/walletConnectors/chunk-RCIABMG5.js +259 -0
  129. package/dist/wallets/walletConnectors/chunk-RHC4SVLB.js +71 -0
  130. package/dist/wallets/walletConnectors/chunk-S2CB4KFC.js +71 -0
  131. package/dist/wallets/walletConnectors/chunk-S6HZD4XZ.js +302 -0
  132. package/dist/wallets/walletConnectors/chunk-S72LCNVX.js +272 -0
  133. package/dist/wallets/walletConnectors/chunk-SCWE5EEX.js +91 -0
  134. package/dist/wallets/walletConnectors/chunk-TKEL4D4E.js +151 -0
  135. package/dist/wallets/walletConnectors/chunk-TKJEMEBZ.js +71 -0
  136. package/dist/wallets/walletConnectors/chunk-TZ44ZREA.js +302 -0
  137. package/dist/wallets/walletConnectors/chunk-UGQSI3US.js +547 -0
  138. package/dist/wallets/walletConnectors/chunk-UU4JYY3C.js +205 -0
  139. package/dist/wallets/walletConnectors/chunk-V5P5BL6Z.js +302 -0
  140. package/dist/wallets/walletConnectors/chunk-VH6DIRPF.js +71 -0
  141. package/dist/wallets/walletConnectors/chunk-VPNZAMW5.js +205 -0
  142. package/dist/wallets/walletConnectors/chunk-W6QN6QXO.js +52 -0
  143. package/dist/wallets/walletConnectors/chunk-WDULICVN.js +302 -0
  144. package/dist/wallets/walletConnectors/chunk-WGGHGODM.js +272 -0
  145. package/dist/wallets/walletConnectors/chunk-XUCMTLM3.js +52 -0
  146. package/dist/wallets/walletConnectors/chunk-Y5WAX6WO.js +52 -0
  147. package/dist/wallets/walletConnectors/chunk-Y62PFBWE.js +640 -0
  148. package/dist/wallets/walletConnectors/chunk-Z6ABK6G6.js +107 -0
  149. package/dist/wallets/walletConnectors/chunk-ZCA5QSIM.js +71 -0
  150. package/dist/wallets/walletConnectors/chunk-ZJDZJW55.js +479 -0
  151. package/dist/wallets/walletConnectors/chunk-ZOF7ZDGU.js +52 -0
  152. package/dist/wallets/walletConnectors/chunk-ZUU57RHO.js +36 -0
  153. package/dist/wallets/walletConnectors/chunk-ZWFGRREM.js +36 -0
  154. package/dist/wallets/walletConnectors/chunk-ZY5BCHP2.js +302 -0
  155. package/dist/wallets/walletConnectors/clvWallet/clvWallet.js +2 -2
  156. package/dist/wallets/walletConnectors/coin98Wallet/coin98Wallet.js +2 -2
  157. package/dist/wallets/walletConnectors/coreWallet/coreWallet.js +2 -2
  158. package/dist/wallets/walletConnectors/foxWallet/foxWallet.js +2 -2
  159. package/dist/wallets/walletConnectors/frontierWallet/frontierWallet.js +2 -2
  160. package/dist/wallets/walletConnectors/gateWallet/gateWallet.js +2 -2
  161. package/dist/wallets/walletConnectors/index.js +88 -88
  162. package/dist/wallets/walletConnectors/iopayWallet/iopayWallet.js +2 -2
  163. package/dist/wallets/walletConnectors/kaiaWallet/kaiaWallet.js +2 -2
  164. package/dist/wallets/walletConnectors/kaikasWallet/kaikasWallet.js +2 -2
  165. package/dist/wallets/walletConnectors/metaMaskWallet/metaMaskWallet.js +2 -2
  166. package/dist/wallets/walletConnectors/okxWallet/okxWallet.js +2 -2
  167. package/dist/wallets/walletConnectors/rainbowWallet/rainbowWallet.js +2 -2
  168. package/dist/wallets/walletConnectors/roninWallet/roninWallet.js +2 -2
  169. package/dist/wallets/walletConnectors/safepalWallet/safepalWallet.js +2 -2
  170. package/dist/wallets/walletConnectors/subWallet/subWallet.js +2 -2
  171. package/dist/wallets/walletConnectors/tokenPocketWallet/tokenPocketWallet.js +2 -2
  172. package/dist/wallets/walletConnectors/trustWallet/trustWallet.js +2 -2
  173. package/dist/wallets/walletConnectors/zealWallet/zealWallet.js +2 -2
  174. package/dist/wallets/walletConnectors/zerionWallet/zerionWallet.js +2 -2
  175. package/package.json +11 -12
@@ -0,0 +1,302 @@
1
+ "use client";
2
+ import {
3
+ createAbcEvmProvider
4
+ } from "./chunk-56SF4VRC.js";
5
+ import {
6
+ setGlobalDefaultBitcoinNetwork,
7
+ setGlobalDefaultChainId,
8
+ setGlobalDefaultSolanaNetwork
9
+ } from "./chunk-O4AU63LK.js";
10
+ import {
11
+ createAbcWaasClient
12
+ } from "./chunk-MDDD4LG2.js";
13
+ import {
14
+ clearAuthState,
15
+ clearEncryptedTokens,
16
+ clearStorage,
17
+ loadAuthState,
18
+ loadFromStorage,
19
+ saveAuthState
20
+ } from "./chunk-ZJDZJW55.js";
21
+
22
+ // src/wallets/walletConnectors/abcWallet/abcConnector.ts
23
+ import { getTalkenApiClient } from "@talken/talkenkit";
24
+ import { createConnector } from "wagmi";
25
+ function abcConnector(options) {
26
+ const { config } = options;
27
+ if (config.defaultChainId) {
28
+ setGlobalDefaultChainId(config.defaultChainId);
29
+ }
30
+ if (config.defaultSolanaNetwork) {
31
+ setGlobalDefaultSolanaNetwork(config.defaultSolanaNetwork);
32
+ }
33
+ if (config.defaultBitcoinNetwork) {
34
+ setGlobalDefaultBitcoinNetwork(config.defaultBitcoinNetwork);
35
+ }
36
+ return createConnector((wagmiConfig) => {
37
+ const client = createAbcWaasClient(config);
38
+ const provider = createAbcEvmProvider(client);
39
+ let accountsChangedHandler;
40
+ let chainChangedHandler;
41
+ let disconnectHandler;
42
+ return {
43
+ id: "abc",
44
+ name: "ABC Wallet",
45
+ type: "abc",
46
+ /**
47
+ * Connect wallet
48
+ */
49
+ async connect() {
50
+ try {
51
+ const authState = loadAuthState();
52
+ if (!authState || !authState.isAuthenticated || !authState.wallet) {
53
+ throw new Error("ABC_LOGIN_REQUIRED");
54
+ }
55
+ provider.setWallet(authState.wallet);
56
+ if (authState.accessToken && authState.refreshToken && authState.expiresAt) {
57
+ client.setTokens(
58
+ authState.accessToken,
59
+ authState.refreshToken,
60
+ authState.expiresAt
61
+ );
62
+ }
63
+ const accounts = await provider.request({
64
+ method: "eth_requestAccounts"
65
+ });
66
+ let currentChainId = await provider.request({
67
+ method: "eth_chainId"
68
+ });
69
+ const currentChainIdNumber = Number(currentChainId);
70
+ const isChainSupported = wagmiConfig.chains.some(
71
+ (c) => c.id === currentChainIdNumber
72
+ );
73
+ if (!isChainSupported && wagmiConfig.chains.length > 0) {
74
+ const fallbackChainId = wagmiConfig.chains[0].id;
75
+ await provider.request({
76
+ method: "wallet_switchEthereumChain",
77
+ params: [{ chainId: `0x${fallbackChainId.toString(16)}` }]
78
+ });
79
+ currentChainId = `0x${fallbackChainId.toString(16)}`;
80
+ if (authState.wallet) {
81
+ authState.wallet.chainId = fallbackChainId;
82
+ saveAuthState(authState);
83
+ }
84
+ }
85
+ if (accountsChangedHandler) {
86
+ provider.removeListener("accountsChanged", accountsChangedHandler);
87
+ }
88
+ accountsChangedHandler = (accounts2) => {
89
+ wagmiConfig.emitter.emit("change", {
90
+ accounts: accounts2
91
+ });
92
+ };
93
+ provider.on("accountsChanged", accountsChangedHandler);
94
+ if (chainChangedHandler) {
95
+ provider.removeListener("chainChanged", chainChangedHandler);
96
+ }
97
+ chainChangedHandler = (chainId) => {
98
+ wagmiConfig.emitter.emit("change", {
99
+ chainId: Number(chainId)
100
+ });
101
+ };
102
+ provider.on("chainChanged", chainChangedHandler);
103
+ if (disconnectHandler) {
104
+ provider.removeListener("disconnect", disconnectHandler);
105
+ }
106
+ disconnectHandler = () => {
107
+ wagmiConfig.emitter.emit("disconnect");
108
+ this.onDisconnect();
109
+ };
110
+ provider.on("disconnect", disconnectHandler);
111
+ wagmiConfig.emitter.emit("connect", {
112
+ accounts,
113
+ chainId: Number(currentChainId)
114
+ });
115
+ return {
116
+ accounts,
117
+ chainId: Number(currentChainId)
118
+ };
119
+ } catch (error) {
120
+ console.error("\u274C ABC Connector connect() failed:", {
121
+ message: error.message,
122
+ code: error.code,
123
+ error
124
+ });
125
+ if (error.message === "ABC_LOGIN_REQUIRED") {
126
+ throw error;
127
+ }
128
+ throw error;
129
+ }
130
+ },
131
+ /**
132
+ * Disconnect wallet
133
+ */
134
+ async disconnect() {
135
+ if (accountsChangedHandler) {
136
+ provider.removeListener("accountsChanged", accountsChangedHandler);
137
+ accountsChangedHandler = void 0;
138
+ }
139
+ if (chainChangedHandler) {
140
+ provider.removeListener("chainChanged", chainChangedHandler);
141
+ chainChangedHandler = void 0;
142
+ }
143
+ if (disconnectHandler) {
144
+ provider.removeListener("disconnect", disconnectHandler);
145
+ disconnectHandler = void 0;
146
+ }
147
+ provider.clearWallet();
148
+ await client.logout();
149
+ let savedPinHash = null;
150
+ let savedEmail = null;
151
+ if (typeof window !== "undefined") {
152
+ savedPinHash = localStorage.getItem("talkenkit_abc_pin_hash");
153
+ savedEmail = localStorage.getItem("talkenkit_abc_saved_email");
154
+ }
155
+ clearAuthState();
156
+ clearEncryptedTokens();
157
+ if (typeof window !== "undefined") {
158
+ localStorage.removeItem("talkenkit_abc_enc_salt");
159
+ localStorage.removeItem("talkenkit_abc_enc_tokens");
160
+ if (savedPinHash) {
161
+ localStorage.setItem("talkenkit_abc_pin_hash", savedPinHash);
162
+ }
163
+ if (savedEmail) {
164
+ localStorage.setItem("talkenkit_abc_saved_email", savedEmail);
165
+ }
166
+ }
167
+ },
168
+ /**
169
+ * Get accounts
170
+ */
171
+ async getAccounts() {
172
+ const accounts = await provider.request({
173
+ method: "eth_accounts"
174
+ });
175
+ return accounts.map((account) => account);
176
+ },
177
+ /**
178
+ * Get chain ID
179
+ */
180
+ async getChainId() {
181
+ const chainId = await provider.request({
182
+ method: "eth_chainId"
183
+ });
184
+ return Number(chainId);
185
+ },
186
+ /**
187
+ * Get provider
188
+ */
189
+ async getProvider() {
190
+ return provider;
191
+ },
192
+ /**
193
+ * Check if authorized (has valid session)
194
+ * Auto-refreshes access token if expired but refresh token is valid
195
+ */
196
+ async isAuthorized() {
197
+ try {
198
+ const authState = loadAuthState();
199
+ if (!authState || !authState.isAuthenticated) {
200
+ return false;
201
+ }
202
+ if (!authState.wallet) {
203
+ return false;
204
+ }
205
+ if (client.isAuthenticated()) {
206
+ return true;
207
+ }
208
+ const refreshToken = loadFromStorage(
209
+ "refresh_token" /* REFRESH_TOKEN */
210
+ );
211
+ if (!refreshToken) {
212
+ clearStorage();
213
+ return false;
214
+ }
215
+ try {
216
+ const api = getTalkenApiClient();
217
+ if (!api) {
218
+ clearStorage();
219
+ return false;
220
+ }
221
+ const res = await api.auth.refresh();
222
+ client.setTokens(
223
+ res.accessToken,
224
+ res.refreshToken,
225
+ Date.now() + res.expiresIn * 1e3
226
+ );
227
+ const updatedState = loadAuthState();
228
+ return updatedState?.isAuthenticated ?? false;
229
+ } catch (error) {
230
+ console.error("[AbcConnector] Token refresh failed:", error);
231
+ clearStorage();
232
+ return false;
233
+ }
234
+ } catch (error) {
235
+ console.error(
236
+ "[AbcConnector] Unexpected error in isAuthorized:",
237
+ error
238
+ );
239
+ return false;
240
+ }
241
+ },
242
+ /**
243
+ * Switch chain
244
+ */
245
+ async switchChain({ chainId }) {
246
+ await provider.request({
247
+ method: "wallet_switchEthereumChain",
248
+ params: [{ chainId: `0x${chainId.toString(16)}` }]
249
+ });
250
+ const newChainId = await this.getChainId();
251
+ const authState = loadAuthState();
252
+ if (authState?.wallet) {
253
+ authState.wallet.chainId = newChainId;
254
+ saveAuthState(authState);
255
+ }
256
+ return wagmiConfig.chains.find((x) => x.id === chainId) ?? {
257
+ id: chainId,
258
+ name: `Chain ${chainId}`,
259
+ nativeCurrency: {
260
+ name: "Ether",
261
+ decimals: 18,
262
+ symbol: "ETH"
263
+ },
264
+ rpcUrls: {
265
+ default: { http: [""] }
266
+ }
267
+ };
268
+ },
269
+ /**
270
+ * Handle accounts changed
271
+ */
272
+ onAccountsChanged(accounts) {
273
+ if (accounts.length === 0) {
274
+ this.onDisconnect();
275
+ } else {
276
+ wagmiConfig.emitter.emit("change", {
277
+ accounts
278
+ });
279
+ }
280
+ },
281
+ /**
282
+ * Handle chain changed
283
+ */
284
+ onChainChanged(chain) {
285
+ const chainId = Number(chain);
286
+ wagmiConfig.emitter.emit("change", { chainId });
287
+ },
288
+ /**
289
+ * Handle disconnect
290
+ */
291
+ onDisconnect(_error) {
292
+ provider.clearWallet();
293
+ clearAuthState();
294
+ wagmiConfig.emitter.emit("disconnect");
295
+ }
296
+ };
297
+ });
298
+ }
299
+
300
+ export {
301
+ abcConnector
302
+ };
@@ -0,0 +1,151 @@
1
+ "use client";
2
+ import {
3
+ BaseApiClient
4
+ } from "./chunk-FFU26Y5Y.js";
5
+
6
+ // src/wallets/walletConnectors/abcWallet/api/WalletscanApi.ts
7
+ import { getTalkenApiClient, networkNameToChainKey } from "@talken/talkenkit";
8
+ var WalletscanApi = class extends BaseApiClient {
9
+ /**
10
+ * Get token metadata via TalkenApiClient walletscan endpoint
11
+ *
12
+ * @param params - Contract address and networks
13
+ * @returns Token metadata or null if not found/failed
14
+ */
15
+ async getContractToken(params) {
16
+ const api = getTalkenApiClient();
17
+ if (!api)
18
+ throw new Error("TalkenApiClient not initialized");
19
+ try {
20
+ const tokens = await api.walletscan.getToken({
21
+ contractAddress: params.contractAddress,
22
+ chainKeys: networkNameToChainKey(params.networks)
23
+ });
24
+ return tokens.length > 0 ? tokens[0] : null;
25
+ } catch (error) {
26
+ console.warn(
27
+ "[WalletscanApi] TalkenApi getToken failed:",
28
+ params.contractAddress,
29
+ error
30
+ );
31
+ return null;
32
+ }
33
+ }
34
+ /**
35
+ * Get token metadata with timeout
36
+ *
37
+ * @param params - Contract address and networks
38
+ * @param timeoutMs - Timeout in milliseconds (default: 3000)
39
+ * @returns Token metadata or null if timeout/failed
40
+ */
41
+ async getContractTokenWithTimeout(params, timeoutMs = 3e3) {
42
+ try {
43
+ const result = await Promise.race([
44
+ this.getContractToken(params),
45
+ new Promise(
46
+ (resolve) => setTimeout(() => resolve(null), timeoutMs)
47
+ )
48
+ ]);
49
+ return result;
50
+ } catch (_error) {
51
+ console.warn(
52
+ "[WalletscanApi] Token metadata request timed out:",
53
+ params.contractAddress
54
+ );
55
+ return null;
56
+ }
57
+ }
58
+ /**
59
+ * Get native coin info via TalkenApiClient walletscan endpoint
60
+ *
61
+ * @param params - Wallet address and networks
62
+ * @returns Array of native coins or empty array if failed
63
+ */
64
+ async getNativeToken(params) {
65
+ const api = getTalkenApiClient();
66
+ if (!api)
67
+ throw new Error("TalkenApiClient not initialized");
68
+ try {
69
+ return await api.walletscan.getNativeTokens({
70
+ walletAddress: params.walletAddress,
71
+ chainKeys: networkNameToChainKey(params.networks)
72
+ });
73
+ } catch (error) {
74
+ console.warn("[WalletscanApi] TalkenApi getNativeTokens failed:", error);
75
+ return [];
76
+ }
77
+ }
78
+ /**
79
+ * Get native coin info with timeout
80
+ *
81
+ * @param params - Wallet address and networks
82
+ * @param timeoutMs - Timeout in milliseconds (default: 3000)
83
+ * @returns First native coin or null if timeout/failed
84
+ */
85
+ async getNativeTokenWithTimeout(params, timeoutMs = 3e3) {
86
+ try {
87
+ const natives = await Promise.race([
88
+ this.getNativeToken(params),
89
+ new Promise(
90
+ (resolve) => setTimeout(() => resolve([]), timeoutMs)
91
+ )
92
+ ]);
93
+ return natives.length > 0 ? natives[0] : null;
94
+ } catch (_error) {
95
+ console.warn("[WalletscanApi] Native coin request timed out");
96
+ return null;
97
+ }
98
+ }
99
+ /**
100
+ * Get NFT metadata via TalkenApiClient walletscan endpoint
101
+ *
102
+ * @param params - Contract address, wallet address, and networks
103
+ * @returns Array of NFT metadata or empty array if failed
104
+ */
105
+ async getNFT(params) {
106
+ const api = getTalkenApiClient();
107
+ if (!api)
108
+ throw new Error("TalkenApiClient not initialized");
109
+ try {
110
+ return await api.walletscan.getNfts({
111
+ chainKeys: networkNameToChainKey(params.networks),
112
+ walletAddress: params.walletAddress
113
+ });
114
+ } catch (error) {
115
+ console.warn(
116
+ "[WalletscanApi] TalkenApi getNfts failed:",
117
+ params.contractAddress,
118
+ error
119
+ );
120
+ return [];
121
+ }
122
+ }
123
+ /**
124
+ * Get NFT metadata with timeout
125
+ *
126
+ * @param params - Contract address, wallet address, and networks
127
+ * @param timeoutMs - Timeout in milliseconds (default: 3000)
128
+ * @returns First NFT or null if timeout/failed/empty
129
+ */
130
+ async getNFTWithTimeout(params, timeoutMs = 3e3) {
131
+ try {
132
+ const nfts = await Promise.race([
133
+ this.getNFT(params),
134
+ new Promise(
135
+ (resolve) => setTimeout(() => resolve([]), timeoutMs)
136
+ )
137
+ ]);
138
+ return nfts.length > 0 ? nfts[0] : null;
139
+ } catch (_error) {
140
+ console.warn(
141
+ "[WalletscanApi] NFT metadata request timed out:",
142
+ params.contractAddress
143
+ );
144
+ return null;
145
+ }
146
+ }
147
+ };
148
+
149
+ export {
150
+ WalletscanApi
151
+ };