@talken/talkenkit 2.3.14 → 2.3.15

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 (181) hide show
  1. package/LICENSE +9 -0
  2. package/dist/chunk-UWHLB4MJ.js +226 -0
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.js +151 -335
  5. package/dist/secure-SSSSQ4NA.js +8 -0
  6. package/dist/wallets/walletConnectors/abcWallet/abcApi.js +2 -2
  7. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinConnector.js +1 -1
  8. package/dist/wallets/walletConnectors/abcWallet/abcConnector.js +3 -3
  9. package/dist/wallets/walletConnectors/abcWallet/abcSolProvider.js +2 -2
  10. package/dist/wallets/walletConnectors/abcWallet/abcSolanaWallet.js +3 -3
  11. package/dist/wallets/walletConnectors/abcWallet/abcWallet.d.ts +7 -0
  12. package/dist/wallets/walletConnectors/abcWallet/abcWallet.js +4 -4
  13. package/dist/wallets/walletConnectors/abcWallet/api/SigningApi.js +1 -1
  14. package/dist/wallets/walletConnectors/abcWallet/api/SolanaApi.js +2 -2
  15. package/dist/wallets/walletConnectors/abcWallet/api/WalletApi.js +2 -2
  16. package/dist/wallets/walletConnectors/abcWallet/api/index.js +5 -5
  17. package/dist/wallets/walletConnectors/abcWallet/index.d.ts +1 -0
  18. package/dist/wallets/walletConnectors/abcWallet/index.js +21 -10
  19. package/dist/wallets/walletConnectors/abcWallet/networkConfig.d.ts +45 -30
  20. package/dist/wallets/walletConnectors/abcWallet/networkConfig.js +9 -5
  21. package/dist/wallets/walletConnectors/abcWallet/types.d.ts +6 -0
  22. package/dist/wallets/walletConnectors/{chunk-4H6TSGD7.js → chunk-2XZBPMQJ.js} +1 -1
  23. package/dist/wallets/walletConnectors/{chunk-4QPXFUDC.js → chunk-3ZE57J3R.js} +4 -1
  24. package/dist/wallets/walletConnectors/{chunk-5AAIZIND.js → chunk-3ZZXE7EL.js} +1 -1
  25. package/dist/wallets/walletConnectors/{chunk-636QKXSN.js → chunk-4MF5RSML.js} +4 -1
  26. package/dist/wallets/walletConnectors/{chunk-4VO5XDCV.js → chunk-4N6JD6LY.js} +9 -9
  27. package/dist/wallets/walletConnectors/{chunk-2RVWT7N7.js → chunk-4YJWX7I3.js} +4 -1
  28. package/dist/wallets/walletConnectors/chunk-5CCU7PNU.js +194 -0
  29. package/dist/wallets/walletConnectors/chunk-5TDZSXJ4.js +345 -0
  30. package/dist/wallets/walletConnectors/{chunk-4YKA5OIT.js → chunk-75RN2RLT.js} +5 -5
  31. package/dist/wallets/walletConnectors/{chunk-JXPLBYVW.js → chunk-7DEZCGNV.js} +1 -1
  32. package/dist/wallets/walletConnectors/{chunk-ZX6LABEF.js → chunk-A7FIBI6X.js} +30 -13
  33. package/dist/wallets/walletConnectors/{chunk-2E2TVL4A.js → chunk-AVPBPELO.js} +6 -6
  34. package/dist/wallets/walletConnectors/{chunk-F2LC3G36.js → chunk-BJHGC546.js} +18 -3
  35. package/dist/wallets/walletConnectors/{chunk-BPLIASJE.js → chunk-BL57XWJY.js} +4 -1
  36. package/dist/wallets/walletConnectors/{chunk-AKYC5VZG.js → chunk-BSBRWKNG.js} +7 -7
  37. package/dist/wallets/walletConnectors/{chunk-DPL5VRGJ.js → chunk-CYYBGUSO.js} +1 -1
  38. package/dist/wallets/walletConnectors/{chunk-F5Q4VDER.js → chunk-EEY5CXKO.js} +2 -2
  39. package/dist/wallets/walletConnectors/{chunk-MT2QHWYE.js → chunk-EGOIRXTV.js} +1 -1
  40. package/dist/wallets/walletConnectors/chunk-F5P2INHS.js +474 -0
  41. package/dist/wallets/walletConnectors/chunk-G7PEFBL6.js +309 -0
  42. package/dist/wallets/walletConnectors/{chunk-XZHB7HU4.js → chunk-GHLLVM7O.js} +1 -1
  43. package/dist/wallets/walletConnectors/{chunk-2XFKRGDK.js → chunk-GXGRTWJM.js} +10 -10
  44. package/dist/wallets/walletConnectors/chunk-H2MX4NAL.js +293 -0
  45. package/dist/wallets/walletConnectors/{chunk-75NE2OUD.js → chunk-HVPQO6ZG.js} +16 -1
  46. package/dist/wallets/walletConnectors/{chunk-LOP2R3QJ.js → chunk-JR2C4XXX.js} +2 -52
  47. package/dist/wallets/walletConnectors/{chunk-V3XKL7AD.js → chunk-KKPINUPY.js} +1 -1
  48. package/dist/wallets/walletConnectors/{chunk-5VL7T6AY.js → chunk-LENPUTNQ.js} +18 -3
  49. package/dist/wallets/walletConnectors/{chunk-25LLSYLN.js → chunk-N4FOYXQD.js} +5 -5
  50. package/dist/wallets/walletConnectors/{chunk-CNI3U6UK.js → chunk-NEXFU6BZ.js} +4 -4
  51. package/dist/wallets/walletConnectors/chunk-O6EAIC4G.js +482 -0
  52. package/dist/wallets/walletConnectors/{chunk-KZG5KU7A.js → chunk-OC2O4BHA.js} +1 -1
  53. package/dist/wallets/walletConnectors/{chunk-DU6M25IR.js → chunk-P2GV6NQG.js} +16 -1
  54. package/dist/wallets/walletConnectors/{chunk-CGLM5KXH.js → chunk-PPIFAF7N.js} +7 -7
  55. package/dist/wallets/walletConnectors/{chunk-76O6JH3T.js → chunk-QEHZXKRF.js} +1 -1
  56. package/dist/wallets/walletConnectors/{chunk-A7KV643A.js → chunk-QI2VB7LL.js} +4 -4
  57. package/dist/wallets/walletConnectors/chunk-RLR4Y5WO.js +481 -0
  58. package/dist/wallets/walletConnectors/chunk-T6KJZAPR.js +47 -0
  59. package/dist/wallets/walletConnectors/chunk-UBCMBPX3.js +58 -0
  60. package/dist/wallets/walletConnectors/chunk-UGQXI3RN.js +284 -0
  61. package/dist/wallets/walletConnectors/{chunk-2PDAR5KA.js → chunk-X4WUD7PF.js} +5 -5
  62. package/dist/wallets/walletConnectors/{chunk-T7NXVYE6.js → chunk-XPSCFUX6.js} +1 -1
  63. package/dist/wallets/walletConnectors/chunk-Y3LWEDF6.js +63 -0
  64. package/dist/wallets/walletConnectors/index.js +21 -21
  65. package/package.json +11 -12
  66. package/dist/wallets/walletConnectors/chunk-2GODJ6NU.js +0 -398
  67. package/dist/wallets/walletConnectors/chunk-2ZFMD7GF.js +0 -419
  68. package/dist/wallets/walletConnectors/chunk-3OYZYIBX.js +0 -361
  69. package/dist/wallets/walletConnectors/chunk-3WRALPTT.js +0 -403
  70. package/dist/wallets/walletConnectors/chunk-43LPUTHW.js +0 -157
  71. package/dist/wallets/walletConnectors/chunk-4OPIMV4N.js +0 -376
  72. package/dist/wallets/walletConnectors/chunk-4TFDVNMF.js +0 -370
  73. package/dist/wallets/walletConnectors/chunk-5KCTAEQB.js +0 -391
  74. package/dist/wallets/walletConnectors/chunk-5OKJZU3F.js +0 -63
  75. package/dist/wallets/walletConnectors/chunk-5PBZRTEM.js +0 -63
  76. package/dist/wallets/walletConnectors/chunk-5SLXMCS2.js +0 -34
  77. package/dist/wallets/walletConnectors/chunk-62ZC3BGR.js +0 -39
  78. package/dist/wallets/walletConnectors/chunk-6DMWYDIO.js +0 -390
  79. package/dist/wallets/walletConnectors/chunk-6KO5WQ5C.js +0 -156
  80. package/dist/wallets/walletConnectors/chunk-6URAISNZ.js +0 -388
  81. package/dist/wallets/walletConnectors/chunk-6V3335LE.js +0 -63
  82. package/dist/wallets/walletConnectors/chunk-7UHZX522.js +0 -369
  83. package/dist/wallets/walletConnectors/chunk-ADMITKUE.js +0 -63
  84. package/dist/wallets/walletConnectors/chunk-AL7R7JQU.js +0 -124
  85. package/dist/wallets/walletConnectors/chunk-AY4TMZG6.js +0 -39
  86. package/dist/wallets/walletConnectors/chunk-AZRYTD6J.js +0 -63
  87. package/dist/wallets/walletConnectors/chunk-B23AX3U3.js +0 -269
  88. package/dist/wallets/walletConnectors/chunk-CB4CSXNY.js +0 -63
  89. package/dist/wallets/walletConnectors/chunk-CSLAM3IH.js +0 -39
  90. package/dist/wallets/walletConnectors/chunk-CTSR4YUH.js +0 -376
  91. package/dist/wallets/walletConnectors/chunk-D6MSZOEN.js +0 -357
  92. package/dist/wallets/walletConnectors/chunk-DA7TFV7F.js +0 -1683
  93. package/dist/wallets/walletConnectors/chunk-DHVD2NUK.js +0 -156
  94. package/dist/wallets/walletConnectors/chunk-DSEWXHE6.js +0 -44
  95. package/dist/wallets/walletConnectors/chunk-E3PO2XKJ.js +0 -433
  96. package/dist/wallets/walletConnectors/chunk-E5YF2QC2.js +0 -63
  97. package/dist/wallets/walletConnectors/chunk-ENAFVPRZ.js +0 -374
  98. package/dist/wallets/walletConnectors/chunk-ENHE6LS7.js +0 -368
  99. package/dist/wallets/walletConnectors/chunk-EPUITAK3.js +0 -63
  100. package/dist/wallets/walletConnectors/chunk-EQZ6IAAM.js +0 -39
  101. package/dist/wallets/walletConnectors/chunk-F5HCFRTK.js +0 -1683
  102. package/dist/wallets/walletConnectors/chunk-GUUGKRZB.js +0 -63
  103. package/dist/wallets/walletConnectors/chunk-GZ55OZIT.js +0 -157
  104. package/dist/wallets/walletConnectors/chunk-H7SRDBPI.js +0 -384
  105. package/dist/wallets/walletConnectors/chunk-HDXHEBGM.js +0 -403
  106. package/dist/wallets/walletConnectors/chunk-HGI3FA2A.js +0 -157
  107. package/dist/wallets/walletConnectors/chunk-HMSFBY7V.js +0 -39
  108. package/dist/wallets/walletConnectors/chunk-IABRLMSP.js +0 -63
  109. package/dist/wallets/walletConnectors/chunk-IL52SYJK.js +0 -44
  110. package/dist/wallets/walletConnectors/chunk-IXPVDDZD.js +0 -365
  111. package/dist/wallets/walletConnectors/chunk-JNKT32C7.js +0 -63
  112. package/dist/wallets/walletConnectors/chunk-JW4RQLJT.js +0 -156
  113. package/dist/wallets/walletConnectors/chunk-K6BNM6VP.js +0 -63
  114. package/dist/wallets/walletConnectors/chunk-KEV4GPRY.js +0 -63
  115. package/dist/wallets/walletConnectors/chunk-KN4I4DKC.js +0 -157
  116. package/dist/wallets/walletConnectors/chunk-KNK6YFEK.js +0 -63
  117. package/dist/wallets/walletConnectors/chunk-KSKNDJYL.js +0 -63
  118. package/dist/wallets/walletConnectors/chunk-KYA553D7.js +0 -371
  119. package/dist/wallets/walletConnectors/chunk-L57JYRQZ.js +0 -63
  120. package/dist/wallets/walletConnectors/chunk-LB3ISYMC.js +0 -44
  121. package/dist/wallets/walletConnectors/chunk-LLFZ4GNK.js +0 -266
  122. package/dist/wallets/walletConnectors/chunk-LLJELGMX.js +0 -63
  123. package/dist/wallets/walletConnectors/chunk-LTX3ZSQI.js +0 -39
  124. package/dist/wallets/walletConnectors/chunk-MF46Q5RP.js +0 -44
  125. package/dist/wallets/walletConnectors/chunk-MGPMSUFB.js +0 -372
  126. package/dist/wallets/walletConnectors/chunk-MK45L6B7.js +0 -123
  127. package/dist/wallets/walletConnectors/chunk-MOJC7LE6.js +0 -63
  128. package/dist/wallets/walletConnectors/chunk-N6CRHH2H.js +0 -400
  129. package/dist/wallets/walletConnectors/chunk-N6QHQDQP.js +0 -381
  130. package/dist/wallets/walletConnectors/chunk-NALBGCUS.js +0 -63
  131. package/dist/wallets/walletConnectors/chunk-NOD2A4Q7.js +0 -430
  132. package/dist/wallets/walletConnectors/chunk-NOL7MBZU.js +0 -1683
  133. package/dist/wallets/walletConnectors/chunk-OA5K3AQN.js +0 -370
  134. package/dist/wallets/walletConnectors/chunk-Q3LW5UK5.js +0 -135
  135. package/dist/wallets/walletConnectors/chunk-QDCXRBX6.js +0 -63
  136. package/dist/wallets/walletConnectors/chunk-QHHR2DQK.js +0 -269
  137. package/dist/wallets/walletConnectors/chunk-QIDXRXV6.js +0 -63
  138. package/dist/wallets/walletConnectors/chunk-QNY3A52P.js +0 -156
  139. package/dist/wallets/walletConnectors/chunk-QQEXHPNE.js +0 -385
  140. package/dist/wallets/walletConnectors/chunk-RASK6XWI.js +0 -436
  141. package/dist/wallets/walletConnectors/chunk-RFMJC64I.js +0 -364
  142. package/dist/wallets/walletConnectors/chunk-RVJ32DTM.js +0 -373
  143. package/dist/wallets/walletConnectors/chunk-S64JWSGA.js +0 -63
  144. package/dist/wallets/walletConnectors/chunk-SG6KN7NJ.js +0 -377
  145. package/dist/wallets/walletConnectors/chunk-SGLHM6AU.js +0 -157
  146. package/dist/wallets/walletConnectors/chunk-SK2XYNK4.js +0 -44
  147. package/dist/wallets/walletConnectors/chunk-SKBQVOZL.js +0 -1683
  148. package/dist/wallets/walletConnectors/chunk-SQAILDYS.js +0 -1683
  149. package/dist/wallets/walletConnectors/chunk-SRTBTRBU.js +0 -372
  150. package/dist/wallets/walletConnectors/chunk-T23ZNPHL.js +0 -269
  151. package/dist/wallets/walletConnectors/chunk-T3AL3VAQ.js +0 -44
  152. package/dist/wallets/walletConnectors/chunk-T4QIWLWU.js +0 -357
  153. package/dist/wallets/walletConnectors/chunk-THQEUSX4.js +0 -63
  154. package/dist/wallets/walletConnectors/chunk-TLJSBPMQ.js +0 -63
  155. package/dist/wallets/walletConnectors/chunk-TPGMXU6M.js +0 -63
  156. package/dist/wallets/walletConnectors/chunk-UBDYVLI4.js +0 -370
  157. package/dist/wallets/walletConnectors/chunk-UH6AUMQQ.js +0 -63
  158. package/dist/wallets/walletConnectors/chunk-UTPJPY4R.js +0 -44
  159. package/dist/wallets/walletConnectors/chunk-VIH2AOMF.js +0 -63
  160. package/dist/wallets/walletConnectors/chunk-VIRHJPFQ.js +0 -269
  161. package/dist/wallets/walletConnectors/chunk-VQI2B7XW.js +0 -269
  162. package/dist/wallets/walletConnectors/chunk-VQYANLI2.js +0 -44
  163. package/dist/wallets/walletConnectors/chunk-VRTDF4O3.js +0 -63
  164. package/dist/wallets/walletConnectors/chunk-VRUPSQK4.js +0 -269
  165. package/dist/wallets/walletConnectors/chunk-VWZP7KJD.js +0 -157
  166. package/dist/wallets/walletConnectors/chunk-VZCI2K6Y.js +0 -124
  167. package/dist/wallets/walletConnectors/chunk-WIZH35IC.js +0 -39
  168. package/dist/wallets/walletConnectors/chunk-WOZ5REMN.js +0 -436
  169. package/dist/wallets/walletConnectors/chunk-WPEGBCDE.js +0 -157
  170. package/dist/wallets/walletConnectors/chunk-WPJESUNP.js +0 -379
  171. package/dist/wallets/walletConnectors/chunk-WZ322AWR.js +0 -44
  172. package/dist/wallets/walletConnectors/chunk-WZAIQD3G.js +0 -156
  173. package/dist/wallets/walletConnectors/chunk-XC5EXBMU.js +0 -385
  174. package/dist/wallets/walletConnectors/chunk-XWCS76ZC.js +0 -1683
  175. package/dist/wallets/walletConnectors/chunk-Y5677NVB.js +0 -285
  176. package/dist/wallets/walletConnectors/chunk-YC73LM6F.js +0 -63
  177. package/dist/wallets/walletConnectors/chunk-YHWQOKFW.js +0 -39
  178. package/dist/wallets/walletConnectors/chunk-YIB6VMOF.js +0 -156
  179. package/dist/wallets/walletConnectors/chunk-YPL4NJGA.js +0 -156
  180. package/dist/wallets/walletConnectors/chunk-YQP7DZ7T.js +0 -269
  181. package/dist/wallets/walletConnectors/chunk-ZBMGJDJA.js +0 -436
@@ -1,372 +0,0 @@
1
- "use client";
2
- import {
3
- secure_default
4
- } from "./chunk-G2LI5MVX.js";
5
- import {
6
- getSolanaNetwork
7
- } from "./chunk-ZX6LABEF.js";
8
-
9
- // src/wallets/walletConnectors/abcWallet/abcSolProvider.ts
10
- import { Transaction, PublicKey } from "@solana/web3.js";
11
-
12
- // src/utils/encryption.ts
13
- async function hashPin(pin) {
14
- const encoder = new TextEncoder();
15
- const data = encoder.encode(pin);
16
- const hash = await crypto.subtle.digest("SHA-256", data);
17
- return Array.from(new Uint8Array(hash)).map((b) => b.toString(16).padStart(2, "0")).join("");
18
- }
19
-
20
- // src/wallets/walletConnectors/abcWallet/abcSolProvider.ts
21
- var AbcSolProvider = class {
22
- constructor(address, walletData) {
23
- this.name = "ABC WaaS";
24
- this.publicKey = null;
25
- this.walletData = null;
26
- if (address) {
27
- this.publicKey = new PublicKey(address);
28
- }
29
- if (walletData) {
30
- this.walletData = walletData;
31
- } else if (address) {
32
- this.loadWalletDataFromStorage();
33
- }
34
- const baseURL = process.env.NEXT_PUBLIC_ABC_WAAS_URL || "";
35
- this.secure = new secure_default(baseURL);
36
- }
37
- /**
38
- * Set PIN request callback
39
- */
40
- setRequestPinCallback(callback) {
41
- this.requestPinCallback = callback;
42
- }
43
- /**
44
- * Request PIN from user via callback or global callback
45
- */
46
- async requestPin() {
47
- if (this.requestPinCallback) {
48
- return this.requestPinCallback();
49
- }
50
- const globalCallback = window.__TALKENKIT_REQUEST_PIN__;
51
- if (globalCallback) {
52
- return globalCallback("transaction");
53
- }
54
- throw new Error("PIN request callback not configured");
55
- }
56
- /**
57
- * Load wallet data from localStorage
58
- */
59
- loadWalletDataFromStorage() {
60
- try {
61
- const authState = localStorage.getItem("talkenkit_abc_auth_state");
62
- if (authState) {
63
- const parsed = JSON.parse(authState);
64
- if (parsed.solanaWallet) {
65
- this.walletData = parsed.solanaWallet;
66
- }
67
- }
68
- } catch (_error) {
69
- }
70
- }
71
- /**
72
- * Get wallet data (from internal storage or localStorage)
73
- */
74
- getWalletData() {
75
- if (this.walletData) {
76
- return this.walletData;
77
- }
78
- const authState = localStorage.getItem("talkenkit_abc_auth_state");
79
- if (authState) {
80
- const parsed = JSON.parse(authState);
81
- if (parsed.solanaWallet) {
82
- const wallet = { ...parsed.solanaWallet };
83
- if (!wallet.uid && parsed.user?.uid) {
84
- wallet.uid = parsed.user.uid;
85
- }
86
- if (!wallet.shareId && wallet.key_id) {
87
- wallet.shareId = wallet.key_id;
88
- }
89
- this.walletData = wallet;
90
- return this.walletData;
91
- }
92
- }
93
- throw new Error("No Solana wallet data available");
94
- }
95
- async signMessage(message, _encoding) {
96
- const walletData = this.getWalletData();
97
- const accessToken = localStorage.getItem("talkenkit_abc_access_token");
98
- if (!accessToken) {
99
- throw new Error("No ABC WaaS access token");
100
- }
101
- const messageHex = Buffer.from(message).toString("hex");
102
- const signBody = {
103
- curve: walletData.curve,
104
- encrypted_share: walletData.encrypted_share,
105
- key_id: walletData.key_id,
106
- message: messageHex,
107
- secret_store: walletData.secret_store
108
- };
109
- const response = await fetch(
110
- `${process.env.NEXT_PUBLIC_ABC_WAAS_URL}/v3/wallet/sign`,
111
- {
112
- method: "POST",
113
- headers: {
114
- Authorization: `Bearer ${accessToken}`,
115
- "Content-Type": "application/json"
116
- },
117
- body: JSON.stringify(signBody)
118
- }
119
- );
120
- if (!response.ok) {
121
- const errorText = await response.text();
122
- throw new Error(`ABC WaaS sign failed: ${errorText}`);
123
- }
124
- const result = await response.json();
125
- const signatureHex = result.result?.signature || result.signature || result.data?.signature;
126
- if (!signatureHex) {
127
- throw new Error("No signature in ABC WaaS response");
128
- }
129
- const signatureBytes = new Uint8Array(
130
- signatureHex.match(/.{1,2}/g)?.map((byte) => Number.parseInt(byte, 16)) || []
131
- );
132
- return { signature: signatureBytes };
133
- }
134
- async signTransaction(transaction, params) {
135
- const walletData = this.getWalletData();
136
- const accessToken = localStorage.getItem("talkenkit_abc_access_token");
137
- if (!accessToken) {
138
- throw new Error("No ABC WaaS access token");
139
- }
140
- let toAddress;
141
- let amount;
142
- if (params) {
143
- toAddress = params.toAddress;
144
- amount = params.amount * 1e9;
145
- } else {
146
- const transferInstruction = transaction.instructions[0];
147
- toAddress = transferInstruction.keys[1]?.pubkey.toString();
148
- amount = 1e5;
149
- }
150
- const solanaNetwork = getSolanaNetwork();
151
- const requestBody = {
152
- network: solanaNetwork,
153
- fromAddress: walletData.address,
154
- toAddress,
155
- amount,
156
- feePayerAddress: walletData.address
157
- };
158
- const txResponse = await fetch(
159
- `${process.env.NEXT_PUBLIC_ABC_WAAS_URL}/wapi/v2/solana/tx/generateTransferSOLTransaction`,
160
- {
161
- method: "POST",
162
- headers: {
163
- Authorization: `Bearer ${accessToken}`,
164
- "Content-Type": "application/json"
165
- },
166
- body: JSON.stringify(requestBody)
167
- }
168
- );
169
- if (!txResponse.ok) {
170
- const errorText = await txResponse.text();
171
- console.error("[AbcSolProvider] \u274C API error:", errorText);
172
- throw new Error(
173
- `Transaction generation failed (${txResponse.status}): ${errorText}`
174
- );
175
- }
176
- const txData = await txResponse.json();
177
- const serializedTxHex = txData.result?.data?.serialized_tx || txData.data?.serialized_tx;
178
- if (!serializedTxHex) {
179
- console.error(
180
- "[AbcSolProvider] \u274C No serialized_tx in response:",
181
- txData
182
- );
183
- throw new Error("No serialized transaction in response");
184
- }
185
- const signResponse = await fetch(
186
- `${process.env.NEXT_PUBLIC_ABC_WAAS_URL}/v3/wallet/sign`,
187
- {
188
- method: "POST",
189
- headers: {
190
- Authorization: `Bearer ${accessToken}`,
191
- "Content-Type": "application/json"
192
- },
193
- body: JSON.stringify({
194
- curve: walletData.curve,
195
- encrypted_share: walletData.encrypted_share,
196
- key_id: walletData.key_id,
197
- message: serializedTxHex,
198
- secret_store: walletData.secret_store
199
- })
200
- }
201
- );
202
- if (!signResponse.ok) {
203
- const errorText = await signResponse.text();
204
- console.error("[AbcSolProvider] \u274C Sign API error:", errorText);
205
- throw new Error(`Sign failed: ${errorText}`);
206
- }
207
- const signResult = await signResponse.json();
208
- const signatureHex = signResult.signature || signResult.result?.signature;
209
- if (!signatureHex) {
210
- console.error(
211
- "[AbcSolProvider] \u274C No signature in response:",
212
- signResult
213
- );
214
- throw new Error("No signature in ABC WaaS response");
215
- }
216
- const signatureBytes = new Uint8Array(
217
- signatureHex.match(/.{1,2}/g)?.map((byte) => Number.parseInt(byte, 16)) || []
218
- );
219
- const serializedTxBytes = new Uint8Array(
220
- serializedTxHex.match(/.{1,2}/g)?.map((byte) => Number.parseInt(byte, 16)) || []
221
- );
222
- const signedTransaction = Transaction.from(serializedTxBytes);
223
- if (!signedTransaction.signatures || signedTransaction.signatures.length === 0) {
224
- signedTransaction.addSignature(
225
- this.publicKey,
226
- Buffer.from(signatureBytes)
227
- );
228
- }
229
- return signedTransaction;
230
- }
231
- /**
232
- * Send (broadcast) signed Solana transaction to network
233
- * - Transaction generation: v2 API (application/json)
234
- * - Transaction signing: v3 API (Ed25519 MPC)
235
- * - Transaction broadcast: v2 API
236
- */
237
- async sendTransaction(params) {
238
- const walletData = this.getWalletData();
239
- const accessToken = localStorage.getItem("talkenkit_abc_access_token");
240
- if (!accessToken) {
241
- throw new Error("No ABC WaaS access token");
242
- }
243
- const pin = await this.requestPin();
244
- const STORAGE_PREFIX = "talkenkit_abc_";
245
- const storedPinHash = localStorage.getItem(`${STORAGE_PREFIX}pin_hash`);
246
- if (!storedPinHash) {
247
- throw new Error("PIN not set. Please login again.");
248
- }
249
- const enteredPinHash = await hashPin(pin);
250
- if (enteredPinHash !== storedPinHash) {
251
- throw new Error("Incorrect PIN. Transaction cancelled.");
252
- }
253
- const solanaNetwork = getSolanaNetwork();
254
- const generateBody = {
255
- network: solanaNetwork,
256
- fromAddress: walletData.address,
257
- toAddress: params.toAddress,
258
- amount: params.amount * 1e9,
259
- // Convert SOL to lamports
260
- feePayerAddress: walletData.address
261
- // Fee payer is the sender
262
- };
263
- const generateResponse = await fetch(
264
- `${process.env.NEXT_PUBLIC_ABC_WAAS_URL}/wapi/v2/solana/tx/generateTransferSOLTransaction`,
265
- {
266
- method: "POST",
267
- headers: {
268
- Authorization: `Bearer ${accessToken}`,
269
- "Content-Type": "application/json"
270
- },
271
- body: JSON.stringify(generateBody)
272
- }
273
- );
274
- if (!generateResponse.ok) {
275
- const errorText = await generateResponse.text();
276
- console.error("[AbcSolProvider] \u274C Generate TX error:", errorText);
277
- throw new Error(`Transaction generation failed: ${errorText}`);
278
- }
279
- const txData = await generateResponse.json();
280
- const serializedTxHex = txData.result?.data?.serialized_tx || txData.data?.serialized_tx || txData.result?.serialized_tx || txData.serialized_tx || txData.result?.data?.serializedTX || txData.data?.serializedTX;
281
- if (!serializedTxHex) {
282
- console.error(
283
- "[AbcSolProvider] \u274C Cannot find serialized_tx in response:",
284
- {
285
- hasResult: !!txData.result,
286
- hasData: !!txData.data,
287
- hasResultData: !!txData.result?.data,
288
- resultKeys: txData.result ? Object.keys(txData.result) : [],
289
- dataKeys: txData.data ? Object.keys(txData.data) : [],
290
- topLevelKeys: Object.keys(txData),
291
- fullResponse: txData
292
- }
293
- );
294
- throw new Error("No serialized transaction in response");
295
- }
296
- const signBody = {
297
- curve: walletData.curve,
298
- encrypted_share: walletData.encrypted_share,
299
- key_id: walletData.key_id,
300
- message: serializedTxHex,
301
- secret_store: walletData.secret_store
302
- };
303
- const signResponse = await fetch(
304
- `${process.env.NEXT_PUBLIC_ABC_WAAS_URL}/v3/wallet/sign`,
305
- {
306
- method: "POST",
307
- headers: {
308
- Authorization: `Bearer ${accessToken}`,
309
- "Content-Type": "application/json"
310
- },
311
- body: JSON.stringify(signBody)
312
- }
313
- );
314
- if (!signResponse.ok) {
315
- const errorText = await signResponse.text();
316
- console.error("[AbcSolProvider] \u274C Sign error:", errorText);
317
- throw new Error(`Sign failed: ${errorText}`);
318
- }
319
- const signResult = await signResponse.json();
320
- const signatureHex = signResult.signature || signResult.result?.signature || signResult.data?.signature;
321
- if (!signatureHex) {
322
- console.error(
323
- "[AbcSolProvider] \u274C No signature in response:",
324
- signResult
325
- );
326
- throw new Error("No signature in ABC WaaS response");
327
- }
328
- const sendResponse = await fetch(
329
- `${process.env.NEXT_PUBLIC_ABC_WAAS_URL}/wapi/v2/solana/tx/sendTransaction`,
330
- {
331
- method: "POST",
332
- headers: {
333
- Authorization: `Bearer ${accessToken}`,
334
- "Content-Type": "application/json"
335
- },
336
- body: JSON.stringify({
337
- network: solanaNetwork,
338
- serializedTX: serializedTxHex,
339
- signatures: [signatureHex]
340
- })
341
- }
342
- );
343
- if (!sendResponse.ok) {
344
- const errorText = await sendResponse.text();
345
- console.error("[AbcSolProvider] \u274C Broadcast error:", {
346
- status: sendResponse.status,
347
- statusText: sendResponse.statusText,
348
- error: errorText
349
- });
350
- try {
351
- const errorData = JSON.parse(errorText);
352
- if (errorData.message?.includes("insufficient") || errorData.message?.includes("InsufficientFunds")) {
353
- throw new Error("Insufficient SOL balance to send transaction");
354
- }
355
- } catch (_parseError) {
356
- }
357
- throw new Error(
358
- `Transaction broadcast failed (${sendResponse.status}): ${errorText}`
359
- );
360
- }
361
- const sendResult = await sendResponse.json();
362
- const txHash = sendResult.result?.data || sendResult.data || sendResult.txHash;
363
- return {
364
- signature: signatureHex,
365
- txHash: txHash || signatureHex
366
- };
367
- }
368
- };
369
-
370
- export {
371
- AbcSolProvider
372
- };
@@ -1,269 +0,0 @@
1
- "use client";
2
- import {
3
- createAbcWaasClient
4
- } from "./chunk-CGLM5KXH.js";
5
- import {
6
- createAbcEvmProvider
7
- } from "./chunk-ZIYAL44B.js";
8
- import {
9
- clearAuthState,
10
- clearEncryptedTokens,
11
- clearStorage,
12
- loadAuthState,
13
- loadFromStorage,
14
- saveAuthState
15
- } from "./chunk-UV5HHESJ.js";
16
-
17
- // src/wallets/walletConnectors/abcWallet/abcConnector.ts
18
- import { createConnector } from "wagmi";
19
- function abcConnector(options) {
20
- const { config } = options;
21
- return createConnector((wagmiConfig) => {
22
- const client = createAbcWaasClient(config);
23
- const provider = createAbcEvmProvider(client);
24
- let accountsChangedHandler;
25
- let chainChangedHandler;
26
- let disconnectHandler;
27
- return {
28
- id: "abc",
29
- name: "ABC Wallet",
30
- type: "abc",
31
- /**
32
- * Connect wallet
33
- */
34
- async connect() {
35
- try {
36
- const authState = loadAuthState();
37
- console.log("\u{1F527} ABC Connector connect() called:", {
38
- hasAuthState: !!authState,
39
- isAuthenticated: authState?.isAuthenticated,
40
- hasWallet: !!authState?.wallet,
41
- walletAddress: authState?.wallet?.address
42
- });
43
- if (!authState || !authState.isAuthenticated || !authState.wallet) {
44
- throw new Error("ABC_LOGIN_REQUIRED");
45
- }
46
- provider.setWallet(authState.wallet);
47
- console.log("\u2705 Provider wallet set:", {
48
- address: authState.wallet.address,
49
- hasPIN: !!authState.pin
50
- });
51
- const accounts = await provider.request({
52
- method: "eth_requestAccounts"
53
- });
54
- const currentChainId = await provider.request({
55
- method: "eth_chainId"
56
- });
57
- if (accountsChangedHandler) {
58
- provider.removeListener("accountsChanged", accountsChangedHandler);
59
- }
60
- accountsChangedHandler = (accounts2) => {
61
- wagmiConfig.emitter.emit("change", {
62
- accounts: accounts2
63
- });
64
- };
65
- provider.on("accountsChanged", accountsChangedHandler);
66
- if (chainChangedHandler) {
67
- provider.removeListener("chainChanged", chainChangedHandler);
68
- }
69
- chainChangedHandler = (chainId) => {
70
- wagmiConfig.emitter.emit("change", {
71
- chainId: Number(chainId)
72
- });
73
- };
74
- provider.on("chainChanged", chainChangedHandler);
75
- if (disconnectHandler) {
76
- provider.removeListener("disconnect", disconnectHandler);
77
- }
78
- disconnectHandler = () => {
79
- wagmiConfig.emitter.emit("disconnect");
80
- this.onDisconnect();
81
- };
82
- provider.on("disconnect", disconnectHandler);
83
- console.log("\u2705 ABC Connector connected successfully:", {
84
- accounts: accounts.length,
85
- chainId: Number(currentChainId)
86
- });
87
- wagmiConfig.emitter.emit("connect", {
88
- accounts,
89
- chainId: Number(currentChainId)
90
- });
91
- return {
92
- accounts,
93
- chainId: Number(currentChainId)
94
- };
95
- } catch (error) {
96
- console.error("\u274C ABC Connector connect() failed:", {
97
- message: error.message,
98
- code: error.code,
99
- error
100
- });
101
- if (error.message === "ABC_LOGIN_REQUIRED") {
102
- throw error;
103
- }
104
- throw error;
105
- }
106
- },
107
- /**
108
- * Disconnect wallet
109
- */
110
- async disconnect() {
111
- if (accountsChangedHandler) {
112
- provider.removeListener("accountsChanged", accountsChangedHandler);
113
- accountsChangedHandler = void 0;
114
- }
115
- if (chainChangedHandler) {
116
- provider.removeListener("chainChanged", chainChangedHandler);
117
- chainChangedHandler = void 0;
118
- }
119
- if (disconnectHandler) {
120
- provider.removeListener("disconnect", disconnectHandler);
121
- disconnectHandler = void 0;
122
- }
123
- provider.clearWallet();
124
- await client.logout();
125
- let savedPinHash = null;
126
- let savedEmail = null;
127
- if (typeof window !== "undefined") {
128
- savedPinHash = localStorage.getItem("talkenkit_abc_pin_hash");
129
- savedEmail = localStorage.getItem("talkenkit_abc_saved_email");
130
- }
131
- clearAuthState();
132
- clearEncryptedTokens();
133
- if (typeof window !== "undefined") {
134
- localStorage.removeItem("talkenkit_abc_enc_salt");
135
- localStorage.removeItem("talkenkit_abc_enc_tokens");
136
- if (savedPinHash) {
137
- localStorage.setItem("talkenkit_abc_pin_hash", savedPinHash);
138
- }
139
- if (savedEmail) {
140
- localStorage.setItem("talkenkit_abc_saved_email", savedEmail);
141
- }
142
- }
143
- console.log("\u2705 ABC Wallet disconnected (PIN preserved)");
144
- },
145
- /**
146
- * Get accounts
147
- */
148
- async getAccounts() {
149
- const accounts = await provider.request({
150
- method: "eth_accounts"
151
- });
152
- return accounts.map((account) => account);
153
- },
154
- /**
155
- * Get chain ID
156
- */
157
- async getChainId() {
158
- const chainId = await provider.request({
159
- method: "eth_chainId"
160
- });
161
- return Number(chainId);
162
- },
163
- /**
164
- * Get provider
165
- */
166
- async getProvider() {
167
- return provider;
168
- },
169
- /**
170
- * Check if authorized (has valid session)
171
- * Auto-refreshes access token if expired but refresh token is valid
172
- */
173
- async isAuthorized() {
174
- try {
175
- const authState = loadAuthState();
176
- if (!authState || !authState.isAuthenticated) {
177
- return false;
178
- }
179
- if (!authState.wallet) {
180
- return false;
181
- }
182
- if (client.isAuthenticated()) {
183
- return true;
184
- }
185
- const refreshToken = loadFromStorage(
186
- "refresh_token" /* REFRESH_TOKEN */
187
- );
188
- if (!refreshToken) {
189
- clearStorage();
190
- return false;
191
- }
192
- try {
193
- await client.refreshTokens(refreshToken);
194
- const updatedState = loadAuthState();
195
- return updatedState?.isAuthenticated ?? false;
196
- } catch (error) {
197
- console.error("[AbcConnector] Token refresh failed:", error);
198
- clearStorage();
199
- return false;
200
- }
201
- } catch (error) {
202
- console.error(
203
- "[AbcConnector] Unexpected error in isAuthorized:",
204
- error
205
- );
206
- return false;
207
- }
208
- },
209
- /**
210
- * Switch chain
211
- */
212
- async switchChain({ chainId }) {
213
- await provider.request({
214
- method: "wallet_switchEthereumChain",
215
- params: [{ chainId: `0x${chainId.toString(16)}` }]
216
- });
217
- const newChainId = await this.getChainId();
218
- const authState = loadAuthState();
219
- if (authState?.wallet) {
220
- authState.wallet.chainId = newChainId;
221
- saveAuthState(authState);
222
- }
223
- return wagmiConfig.chains.find((x) => x.id === chainId) ?? {
224
- id: chainId,
225
- name: `Chain ${chainId}`,
226
- nativeCurrency: {
227
- name: "Ether",
228
- decimals: 18,
229
- symbol: "ETH"
230
- },
231
- rpcUrls: {
232
- default: { http: [""] }
233
- }
234
- };
235
- },
236
- /**
237
- * Handle accounts changed
238
- */
239
- onAccountsChanged(accounts) {
240
- if (accounts.length === 0) {
241
- this.onDisconnect();
242
- } else {
243
- wagmiConfig.emitter.emit("change", {
244
- accounts
245
- });
246
- }
247
- },
248
- /**
249
- * Handle chain changed
250
- */
251
- onChainChanged(chain) {
252
- const chainId = Number(chain);
253
- wagmiConfig.emitter.emit("change", { chainId });
254
- },
255
- /**
256
- * Handle disconnect
257
- */
258
- onDisconnect(_error) {
259
- provider.clearWallet();
260
- clearAuthState();
261
- wagmiConfig.emitter.emit("disconnect");
262
- }
263
- };
264
- });
265
- }
266
-
267
- export {
268
- abcConnector
269
- };
@@ -1,44 +0,0 @@
1
- "use client";
2
- import {
3
- abcConnector
4
- } from "./chunk-T23ZNPHL.js";
5
- import {
6
- ABC_WALLET_METADATA
7
- } from "./chunk-VETRBBA2.js";
8
-
9
- // src/wallets/walletConnectors/abcWallet/abcWallet.ts
10
- var abcWallet = (specificOptions) => ({ projectId }) => {
11
- const waasUrl = specificOptions?.waasUrl || process.env.NEXT_PUBLIC_ABC_WAAS_URL || process.env.VITE_ABC_WAAS_URL;
12
- if (!waasUrl) {
13
- throw new Error(
14
- 'ABC WaaS URL is required. Please provide it via:\n1. abcWallet({ waasUrl: "..." }) options, or\n2. NEXT_PUBLIC_ABC_WAAS_URL environment variable, or\n3. VITE_ABC_WAAS_URL environment variable'
15
- );
16
- }
17
- const config = {
18
- waasUrl,
19
- apiKey: specificOptions?.apiKey,
20
- plain: specificOptions?.plain || "",
21
- // Deprecated - not used (secure.ts uses random generation)
22
- environment: specificOptions?.environment || "development",
23
- projectId
24
- };
25
- return {
26
- id: ABC_WALLET_METADATA.id,
27
- name: ABC_WALLET_METADATA.name,
28
- rdns: ABC_WALLET_METADATA.rdns,
29
- iconUrl: async () => (await import("./abcWallet-AYWSIGAG.js")).default,
30
- iconBackground: ABC_WALLET_METADATA.iconBackground,
31
- // Embedded wallet - no installation required
32
- installed: void 0,
33
- // No download URLs for embedded wallet
34
- downloadUrls: void 0,
35
- // Create connector - wrapper function required by Wallet type
36
- createConnector: (_walletDetails) => abcConnector({ config }),
37
- // Embedded wallet always available
38
- hidden: () => false
39
- };
40
- };
41
-
42
- export {
43
- abcWallet
44
- };