@talken/talkenkit 2.4.21 → 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 +2004 -1064
  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 +13 -13
  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 +91 -91
  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,118 @@
1
+ "use client";
2
+ import {
3
+ BaseApiClient
4
+ } from "./chunk-FFU26Y5Y.js";
5
+ import {
6
+ getSolanaNetwork
7
+ } from "./chunk-O4AU63LK.js";
8
+ import {
9
+ createAbcError
10
+ } from "./chunk-3AX66UHT.js";
11
+ import {
12
+ DEFAULT_HEADERS
13
+ } from "./chunk-RCIABMG5.js";
14
+
15
+ // src/wallets/walletConnectors/abcWallet/api/WalletApi.ts
16
+ import { getTalkenApiClient } from "@talken/talkenkit";
17
+ var WalletApi = class extends BaseApiClient {
18
+ /**
19
+ * Generate or recover EVM wallet
20
+ * Delegates to TalkenApiClient unified wallet API
21
+ */
22
+ async generateOrRecoverWallet(params) {
23
+ const api = getTalkenApiClient();
24
+ if (!api)
25
+ throw new Error("TalkenApiClient not initialized");
26
+ const response = await api.wallet.generate(params.pin);
27
+ const evm = response.evm;
28
+ return {
29
+ address: evm.address || "",
30
+ keyId: evm.keyId || "",
31
+ encryptedShare: evm.encryptedShare || "",
32
+ uid: evm.uid,
33
+ sid: evm.sid,
34
+ pubkey: evm.pubkey || null
35
+ };
36
+ }
37
+ /**
38
+ * Get wallet info
39
+ * Uses TalkenApiClient unified wallet info endpoint
40
+ */
41
+ async getWalletInfo(_uid) {
42
+ const api = getTalkenApiClient();
43
+ if (!api)
44
+ throw new Error("TalkenApiClient not initialized");
45
+ return api.wallet.getInfo();
46
+ }
47
+ /**
48
+ * Generate or recover Solana wallet (Ed25519)
49
+ */
50
+ async generateSolanaWallet(pin, isRecover = false) {
51
+ const url = `${this.baseURL}/v3/wallet/${isRecover ? "recover" : "generate"}`;
52
+ const response = await fetch(url, {
53
+ method: "POST",
54
+ headers: {
55
+ ...DEFAULT_HEADERS,
56
+ ...this.accessToken ? { Authorization: `Bearer ${this.accessToken}` } : {}
57
+ },
58
+ body: JSON.stringify({
59
+ curve: "ed25519",
60
+ password: pin
61
+ })
62
+ });
63
+ const data = await response.json();
64
+ if (!response.ok || data.status !== "success") {
65
+ throw createAbcError(
66
+ "WALLET_NOT_FOUND" /* WALLET_NOT_FOUND */,
67
+ "Failed to generate Solana wallet",
68
+ data
69
+ );
70
+ }
71
+ const result = data.result;
72
+ const solanaNetwork = getSolanaNetwork();
73
+ const addressResult = await this.getSolanaAddress(
74
+ result.public_key,
75
+ solanaNetwork
76
+ );
77
+ return {
78
+ uid: result.uid || "",
79
+ sessionId: result.share_id,
80
+ shareId: result.share_id,
81
+ publicKey: result.public_key,
82
+ address: addressResult,
83
+ keyId: result.key_id || result.share_id,
84
+ encryptedShare: result.encrypted_share || "",
85
+ network: solanaNetwork
86
+ };
87
+ }
88
+ /**
89
+ * Get Solana address from Ed25519 public key
90
+ */
91
+ async getSolanaAddress(publicKey, network) {
92
+ const url = `${this.baseURL}/wapi/v2/solana/wallet/getAddress`;
93
+ const response = await fetch(url, {
94
+ method: "POST",
95
+ headers: {
96
+ ...DEFAULT_HEADERS,
97
+ ...this.accessToken ? { Authorization: `Bearer ${this.accessToken}` } : {}
98
+ },
99
+ body: JSON.stringify({
100
+ network,
101
+ publicKey
102
+ })
103
+ });
104
+ const data = await response.json();
105
+ if (!response.ok || data.status !== "success") {
106
+ throw createAbcError(
107
+ "NETWORK_ERROR" /* NETWORK_ERROR */,
108
+ "Failed to get Solana address",
109
+ data
110
+ );
111
+ }
112
+ return data.result?.data?.address;
113
+ }
114
+ };
115
+
116
+ export {
117
+ WalletApi
118
+ };
@@ -0,0 +1,118 @@
1
+ "use client";
2
+ import {
3
+ BaseApiClient
4
+ } from "./chunk-QD3PPWTN.js";
5
+ import {
6
+ getSolanaNetwork
7
+ } from "./chunk-O4AU63LK.js";
8
+ import {
9
+ createAbcError
10
+ } from "./chunk-ZJDZJW55.js";
11
+ import {
12
+ DEFAULT_HEADERS
13
+ } from "./chunk-M2U5QGM7.js";
14
+
15
+ // src/wallets/walletConnectors/abcWallet/api/WalletApi.ts
16
+ import { getTalkenApiClient } from "@talken/talkenkit";
17
+ var WalletApi = class extends BaseApiClient {
18
+ /**
19
+ * Generate or recover EVM wallet
20
+ * Delegates to TalkenApiClient unified wallet API
21
+ */
22
+ async generateOrRecoverWallet(params) {
23
+ const api = getTalkenApiClient();
24
+ if (!api)
25
+ throw new Error("TalkenApiClient not initialized");
26
+ const response = await api.wallet.generate(params.pin);
27
+ const evm = response.evm;
28
+ return {
29
+ address: evm.address || "",
30
+ keyId: evm.keyId || "",
31
+ encryptedShare: evm.encryptedShare || "",
32
+ uid: evm.uid,
33
+ sid: evm.sid,
34
+ pubkey: evm.pubkey || null
35
+ };
36
+ }
37
+ /**
38
+ * Get wallet info
39
+ * Uses TalkenApiClient unified wallet info endpoint
40
+ */
41
+ async getWalletInfo(_uid) {
42
+ const api = getTalkenApiClient();
43
+ if (!api)
44
+ throw new Error("TalkenApiClient not initialized");
45
+ return api.wallet.getInfo();
46
+ }
47
+ /**
48
+ * Generate or recover Solana wallet (Ed25519)
49
+ */
50
+ async generateSolanaWallet(pin, isRecover = false) {
51
+ const url = `${this.baseURL}/v3/wallet/${isRecover ? "recover" : "generate"}`;
52
+ const response = await fetch(url, {
53
+ method: "POST",
54
+ headers: {
55
+ ...DEFAULT_HEADERS,
56
+ ...this.accessToken ? { Authorization: `Bearer ${this.accessToken}` } : {}
57
+ },
58
+ body: JSON.stringify({
59
+ curve: "ed25519",
60
+ password: pin
61
+ })
62
+ });
63
+ const data = await response.json();
64
+ if (!response.ok || data.status !== "success") {
65
+ throw createAbcError(
66
+ "WALLET_NOT_FOUND" /* WALLET_NOT_FOUND */,
67
+ "Failed to generate Solana wallet",
68
+ data
69
+ );
70
+ }
71
+ const result = data.result;
72
+ const solanaNetwork = getSolanaNetwork();
73
+ const addressResult = await this.getSolanaAddress(
74
+ result.public_key,
75
+ solanaNetwork
76
+ );
77
+ return {
78
+ uid: result.uid || "",
79
+ sessionId: result.share_id,
80
+ shareId: result.share_id,
81
+ publicKey: result.public_key,
82
+ address: addressResult,
83
+ keyId: result.key_id || result.share_id,
84
+ encryptedShare: result.encrypted_share || "",
85
+ network: solanaNetwork
86
+ };
87
+ }
88
+ /**
89
+ * Get Solana address from Ed25519 public key
90
+ */
91
+ async getSolanaAddress(publicKey, network) {
92
+ const url = `${this.baseURL}/wapi/v2/solana/wallet/getAddress`;
93
+ const response = await fetch(url, {
94
+ method: "POST",
95
+ headers: {
96
+ ...DEFAULT_HEADERS,
97
+ ...this.accessToken ? { Authorization: `Bearer ${this.accessToken}` } : {}
98
+ },
99
+ body: JSON.stringify({
100
+ network,
101
+ publicKey
102
+ })
103
+ });
104
+ const data = await response.json();
105
+ if (!response.ok || data.status !== "success") {
106
+ throw createAbcError(
107
+ "NETWORK_ERROR" /* NETWORK_ERROR */,
108
+ "Failed to get Solana address",
109
+ data
110
+ );
111
+ }
112
+ return data.result?.data?.address;
113
+ }
114
+ };
115
+
116
+ export {
117
+ WalletApi
118
+ };
@@ -0,0 +1,302 @@
1
+ "use client";
2
+ import {
3
+ createAbcEvmProvider
4
+ } from "./chunk-56SF4VRC.js";
5
+ import {
6
+ createAbcWaasClient
7
+ } from "./chunk-MDDD4LG2.js";
8
+ import {
9
+ setGlobalDefaultBitcoinNetwork,
10
+ setGlobalDefaultChainId,
11
+ setGlobalDefaultSolanaNetwork
12
+ } from "./chunk-O4AU63LK.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
+ };