@talken/talkenkit 2.4.18 → 2.4.19

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.
package/dist/index.js CHANGED
@@ -46,7 +46,7 @@ import {
46
46
  networkNameToChainKey,
47
47
  networkToChainId,
48
48
  networks_exports
49
- } from "./chunk-6G2FPET7.js";
49
+ } from "./chunk-GTFQJSXY.js";
50
50
  import {
51
51
  en_US_default
52
52
  } from "./chunk-X4GSACNW.js";
@@ -132,7 +132,7 @@ function useBitcoinWallet() {
132
132
  });
133
133
  return;
134
134
  }
135
- const { AbcBitcoinProvider, createAbcWaasApiClient: createAbcWaasApiClient2 } = await import("./abcWallet-7XAGJUQT.js");
135
+ const { AbcBitcoinProvider, createAbcWaasApiClient: createAbcWaasApiClient2 } = await import("./abcWallet-JWLGBJVW.js");
136
136
  const client = createAbcWaasApiClient2({
137
137
  waasUrl: "",
138
138
  // All operations routed through TalkenApiClient
@@ -6983,7 +6983,7 @@ function setRainbowKitVersion({ version }) {
6983
6983
  }
6984
6984
  function useFingerprint() {
6985
6985
  const fingerprint = useCallback13(() => {
6986
- setRainbowKitVersion({ version: "2.4.18" });
6986
+ setRainbowKitVersion({ version: "2.4.19" });
6987
6987
  }, []);
6988
6988
  useEffect16(() => {
6989
6989
  fingerprint();
@@ -16722,7 +16722,7 @@ function useSolanaWallet() {
16722
16722
  });
16723
16723
  return;
16724
16724
  }
16725
- const { AbcSolanaProvider, createAbcWaasApiClient: createAbcWaasApiClient2 } = await import("./abcWallet-7XAGJUQT.js");
16725
+ const { AbcSolanaProvider, createAbcWaasApiClient: createAbcWaasApiClient2 } = await import("./abcWallet-JWLGBJVW.js");
16726
16726
  const client = createAbcWaasApiClient2({
16727
16727
  waasUrl: "",
16728
16728
  // All operations routed through TalkenApiClient
@@ -17061,7 +17061,7 @@ function useTronWallet() {
17061
17061
  });
17062
17062
  return;
17063
17063
  }
17064
- const { AbcTronProvider, createAbcWaasApiClient: createAbcWaasApiClient2 } = await import("./abcWallet-7XAGJUQT.js");
17064
+ const { AbcTronProvider, createAbcWaasApiClient: createAbcWaasApiClient2 } = await import("./abcWallet-JWLGBJVW.js");
17065
17065
  const client = createAbcWaasApiClient2({
17066
17066
  waasUrl: "",
17067
17067
  // All operations routed through TalkenApiClient
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import {
3
3
  abcConnector
4
- } from "../chunk-C6G5FPD6.js";
5
- import "../chunk-F5C6OZYF.js";
4
+ } from "../chunk-37X7LFZU.js";
6
5
  import "../chunk-BDM7TUVM.js";
7
6
  import "../chunk-O4AU63LK.js";
7
+ import "../chunk-F5C6OZYF.js";
8
8
  import "../chunk-7QHCSJDN.js";
9
9
  import "../chunk-6LH6ZME2.js";
10
10
  import "../chunk-D5EFTEOM.js";
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import {
3
3
  abcWallet
4
- } from "../chunk-QA3NATYL.js";
4
+ } from "../chunk-PYL7NUFJ.js";
5
5
  import "../chunk-BBD77PEX.js";
6
- import "../chunk-C6G5FPD6.js";
7
- import "../chunk-F5C6OZYF.js";
6
+ import "../chunk-37X7LFZU.js";
8
7
  import "../chunk-BDM7TUVM.js";
9
8
  import "../chunk-O4AU63LK.js";
9
+ import "../chunk-F5C6OZYF.js";
10
10
  import "../chunk-7QHCSJDN.js";
11
11
  import "../chunk-6LH6ZME2.js";
12
12
  import "../chunk-D5EFTEOM.js";
@@ -2,16 +2,16 @@
2
2
  import {
3
3
  AbcWaasApiClient,
4
4
  createAbcWaasApiClient
5
- } from "../../chunk-6BVNBUEI.js";
5
+ } from "../../chunk-W7EGSTIU.js";
6
6
  import {
7
7
  TransactionApi
8
8
  } from "../../chunk-NBEDPUHX.js";
9
- import {
10
- WalletApi
11
- } from "../../chunk-QHCLOJYA.js";
12
9
  import {
13
10
  TronApi
14
11
  } from "../../chunk-RS36ZX4P.js";
12
+ import {
13
+ WalletApi
14
+ } from "../../chunk-QHCLOJYA.js";
15
15
  import {
16
16
  WalletscanApi
17
17
  } from "../../chunk-7MDXHYMB.js";
@@ -2,11 +2,18 @@
2
2
  import {
3
3
  AbcWaasApiClient,
4
4
  createAbcWaasApiClient
5
- } from "../chunk-6BVNBUEI.js";
5
+ } from "../chunk-W7EGSTIU.js";
6
6
  import "../chunk-NBEDPUHX.js";
7
- import "../chunk-QHCLOJYA.js";
8
7
  import "../chunk-RS36ZX4P.js";
8
+ import "../chunk-QHCLOJYA.js";
9
9
  import "../chunk-7MDXHYMB.js";
10
+ import {
11
+ SessionExpiredError,
12
+ dispatchSessionExpired,
13
+ fetchWithSessionCheck,
14
+ handleUnauthorizedResponse,
15
+ refreshAccessToken
16
+ } from "../chunk-YRDNIP2H.js";
10
17
  import {
11
18
  generateMpcWallets,
12
19
  recoverMpcWallets,
@@ -15,18 +22,8 @@ import {
15
22
  import "../chunk-O47OQDRJ.js";
16
23
  import "../chunk-CPAYLZZL.js";
17
24
  import "../chunk-IX6DQDRE.js";
18
- import {
19
- AbcTronProvider,
20
- TRON_NETWORKS,
21
- TronProviderError
22
- } from "../chunk-H2RCMAOR.js";
23
- import {
24
- SessionExpiredError,
25
- dispatchSessionExpired,
26
- fetchWithSessionCheck,
27
- handleUnauthorizedResponse,
28
- refreshAccessToken
29
- } from "../chunk-YRDNIP2H.js";
25
+ import "../chunk-C4L5XI6N.js";
26
+ import "../chunk-7ZCM4DCC.js";
30
27
  import {
31
28
  AbcBitcoinConnector,
32
29
  createAbcBitcoinConnector
@@ -40,20 +37,18 @@ import {
40
37
  AbcSolanaProvider,
41
38
  SolanaProviderError
42
39
  } from "../chunk-7RSNIMBB.js";
43
- import "../chunk-C4L5XI6N.js";
44
- import "../chunk-7ZCM4DCC.js";
40
+ import {
41
+ AbcTronProvider,
42
+ TRON_NETWORKS,
43
+ TronProviderError
44
+ } from "../chunk-H2RCMAOR.js";
45
45
  import {
46
46
  abcWallet
47
- } from "../chunk-QA3NATYL.js";
47
+ } from "../chunk-PYL7NUFJ.js";
48
48
  import "../chunk-BBD77PEX.js";
49
49
  import {
50
50
  abcConnector
51
- } from "../chunk-C6G5FPD6.js";
52
- import {
53
- AbcEvmProvider,
54
- createAbcEvmProvider,
55
- createAbcProvider
56
- } from "../chunk-F5C6OZYF.js";
51
+ } from "../chunk-37X7LFZU.js";
57
52
  import {
58
53
  AbcWaasClient,
59
54
  createAbcWaasClient
@@ -67,6 +62,11 @@ import {
67
62
  getSolanaNetwork,
68
63
  getTronNetwork
69
64
  } from "../chunk-O4AU63LK.js";
65
+ import {
66
+ AbcEvmProvider,
67
+ createAbcEvmProvider,
68
+ createAbcProvider
69
+ } from "../chunk-F5C6OZYF.js";
70
70
  import "../chunk-7QHCSJDN.js";
71
71
  import {
72
72
  calculateExpiryTimestamp,
@@ -0,0 +1,302 @@
1
+ "use client";
2
+ import {
3
+ createAbcWaasClient
4
+ } from "./chunk-BDM7TUVM.js";
5
+ import {
6
+ setGlobalDefaultBitcoinNetwork,
7
+ setGlobalDefaultChainId,
8
+ setGlobalDefaultSolanaNetwork
9
+ } from "./chunk-O4AU63LK.js";
10
+ import {
11
+ createAbcEvmProvider
12
+ } from "./chunk-F5C6OZYF.js";
13
+ import {
14
+ clearAuthState,
15
+ clearEncryptedTokens,
16
+ clearStorage,
17
+ loadAuthState,
18
+ loadFromStorage,
19
+ saveAuthState
20
+ } from "./chunk-6LH6ZME2.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
+ };