@talken/talkenkit 2.3.13 → 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 (180) 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 +29 -29
  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-KN4I4DKC.js +0 -157
  115. package/dist/wallets/walletConnectors/chunk-KNK6YFEK.js +0 -63
  116. package/dist/wallets/walletConnectors/chunk-KSKNDJYL.js +0 -63
  117. package/dist/wallets/walletConnectors/chunk-KYA553D7.js +0 -371
  118. package/dist/wallets/walletConnectors/chunk-L57JYRQZ.js +0 -63
  119. package/dist/wallets/walletConnectors/chunk-LB3ISYMC.js +0 -44
  120. package/dist/wallets/walletConnectors/chunk-LLFZ4GNK.js +0 -266
  121. package/dist/wallets/walletConnectors/chunk-LLJELGMX.js +0 -63
  122. package/dist/wallets/walletConnectors/chunk-LTX3ZSQI.js +0 -39
  123. package/dist/wallets/walletConnectors/chunk-MF46Q5RP.js +0 -44
  124. package/dist/wallets/walletConnectors/chunk-MGPMSUFB.js +0 -372
  125. package/dist/wallets/walletConnectors/chunk-MK45L6B7.js +0 -123
  126. package/dist/wallets/walletConnectors/chunk-MOJC7LE6.js +0 -63
  127. package/dist/wallets/walletConnectors/chunk-N6CRHH2H.js +0 -400
  128. package/dist/wallets/walletConnectors/chunk-N6QHQDQP.js +0 -381
  129. package/dist/wallets/walletConnectors/chunk-NALBGCUS.js +0 -63
  130. package/dist/wallets/walletConnectors/chunk-NOD2A4Q7.js +0 -430
  131. package/dist/wallets/walletConnectors/chunk-NOL7MBZU.js +0 -1683
  132. package/dist/wallets/walletConnectors/chunk-OA5K3AQN.js +0 -370
  133. package/dist/wallets/walletConnectors/chunk-Q3LW5UK5.js +0 -135
  134. package/dist/wallets/walletConnectors/chunk-QDCXRBX6.js +0 -63
  135. package/dist/wallets/walletConnectors/chunk-QHHR2DQK.js +0 -269
  136. package/dist/wallets/walletConnectors/chunk-QIDXRXV6.js +0 -63
  137. package/dist/wallets/walletConnectors/chunk-QNY3A52P.js +0 -156
  138. package/dist/wallets/walletConnectors/chunk-QQEXHPNE.js +0 -385
  139. package/dist/wallets/walletConnectors/chunk-RASK6XWI.js +0 -436
  140. package/dist/wallets/walletConnectors/chunk-RFMJC64I.js +0 -364
  141. package/dist/wallets/walletConnectors/chunk-RVJ32DTM.js +0 -373
  142. package/dist/wallets/walletConnectors/chunk-S64JWSGA.js +0 -63
  143. package/dist/wallets/walletConnectors/chunk-SG6KN7NJ.js +0 -377
  144. package/dist/wallets/walletConnectors/chunk-SGLHM6AU.js +0 -157
  145. package/dist/wallets/walletConnectors/chunk-SK2XYNK4.js +0 -44
  146. package/dist/wallets/walletConnectors/chunk-SKBQVOZL.js +0 -1683
  147. package/dist/wallets/walletConnectors/chunk-SQAILDYS.js +0 -1683
  148. package/dist/wallets/walletConnectors/chunk-SRTBTRBU.js +0 -372
  149. package/dist/wallets/walletConnectors/chunk-T23ZNPHL.js +0 -269
  150. package/dist/wallets/walletConnectors/chunk-T3AL3VAQ.js +0 -44
  151. package/dist/wallets/walletConnectors/chunk-T4QIWLWU.js +0 -357
  152. package/dist/wallets/walletConnectors/chunk-THQEUSX4.js +0 -63
  153. package/dist/wallets/walletConnectors/chunk-TLJSBPMQ.js +0 -63
  154. package/dist/wallets/walletConnectors/chunk-TPGMXU6M.js +0 -63
  155. package/dist/wallets/walletConnectors/chunk-UBDYVLI4.js +0 -370
  156. package/dist/wallets/walletConnectors/chunk-UH6AUMQQ.js +0 -63
  157. package/dist/wallets/walletConnectors/chunk-UTPJPY4R.js +0 -44
  158. package/dist/wallets/walletConnectors/chunk-VIH2AOMF.js +0 -63
  159. package/dist/wallets/walletConnectors/chunk-VIRHJPFQ.js +0 -269
  160. package/dist/wallets/walletConnectors/chunk-VQI2B7XW.js +0 -269
  161. package/dist/wallets/walletConnectors/chunk-VQYANLI2.js +0 -44
  162. package/dist/wallets/walletConnectors/chunk-VRTDF4O3.js +0 -63
  163. package/dist/wallets/walletConnectors/chunk-VRUPSQK4.js +0 -269
  164. package/dist/wallets/walletConnectors/chunk-VWZP7KJD.js +0 -157
  165. package/dist/wallets/walletConnectors/chunk-VZCI2K6Y.js +0 -124
  166. package/dist/wallets/walletConnectors/chunk-WIZH35IC.js +0 -39
  167. package/dist/wallets/walletConnectors/chunk-WOZ5REMN.js +0 -436
  168. package/dist/wallets/walletConnectors/chunk-WPEGBCDE.js +0 -157
  169. package/dist/wallets/walletConnectors/chunk-WPJESUNP.js +0 -379
  170. package/dist/wallets/walletConnectors/chunk-WZ322AWR.js +0 -44
  171. package/dist/wallets/walletConnectors/chunk-WZAIQD3G.js +0 -156
  172. package/dist/wallets/walletConnectors/chunk-XC5EXBMU.js +0 -385
  173. package/dist/wallets/walletConnectors/chunk-XWCS76ZC.js +0 -1683
  174. package/dist/wallets/walletConnectors/chunk-Y5677NVB.js +0 -285
  175. package/dist/wallets/walletConnectors/chunk-YC73LM6F.js +0 -63
  176. package/dist/wallets/walletConnectors/chunk-YHWQOKFW.js +0 -39
  177. package/dist/wallets/walletConnectors/chunk-YIB6VMOF.js +0 -156
  178. package/dist/wallets/walletConnectors/chunk-YPL4NJGA.js +0 -156
  179. package/dist/wallets/walletConnectors/chunk-YQP7DZ7T.js +0 -269
  180. package/dist/wallets/walletConnectors/chunk-ZBMGJDJA.js +0 -436
@@ -1,377 +0,0 @@
1
- "use client";
2
- import {
3
- secure_default
4
- } from "./chunk-G2LI5MVX.js";
5
- import {
6
- getSolanaNetwork
7
- } from "./chunk-VZCI2K6Y.js";
8
-
9
- // src/wallets/walletConnectors/abcWallet/abcSolProvider.ts
10
- import { 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
- this.walletData = parsed.solanaWallet;
83
- return this.walletData;
84
- }
85
- }
86
- throw new Error("No Solana wallet data available");
87
- }
88
- async signMessage(message, _encoding) {
89
- const walletData = this.getWalletData();
90
- const accessToken = localStorage.getItem("talkenkit_abc_access_token");
91
- if (!accessToken) {
92
- throw new Error("No ABC WaaS access token");
93
- }
94
- const messageStr = new TextDecoder().decode(message);
95
- const messageBase64 = Buffer.from(messageStr, "utf8").toString("base64");
96
- const signBody = {
97
- curve: "ed25519",
98
- key_id: walletData.key_id,
99
- encrypted_share: walletData.encrypted_share,
100
- secret_store: walletData.secret_store || "",
101
- message: messageBase64
102
- // Base64 encoded message
103
- };
104
- console.log("[AbcSolProvider] \u{1F680} Signing message with v3 API");
105
- const response = await fetch(
106
- `${process.env.NEXT_PUBLIC_ABC_WAAS_URL}/v3/wallet/sign`,
107
- {
108
- method: "POST",
109
- headers: {
110
- Authorization: `Bearer ${accessToken}`,
111
- "Content-Type": "application/json"
112
- },
113
- body: JSON.stringify(signBody)
114
- }
115
- );
116
- if (!response.ok) {
117
- const errorText = await response.text();
118
- console.error("[AbcSolProvider] \u274C Sign API error:", errorText);
119
- throw new Error(`ABC WaaS sign failed: ${errorText}`);
120
- }
121
- const result = await response.json();
122
- console.log("[AbcSolProvider] \u{1F4E6} Sign API response:", result);
123
- const signatureHex = result.result?.signature || result.signature || result.data?.signature;
124
- if (!signatureHex) {
125
- console.error("[AbcSolProvider] \u274C No signature in response:", result);
126
- throw new Error("No signature in ABC WaaS response");
127
- }
128
- const signatureBytes = new Uint8Array(
129
- signatureHex.match(/.{1,2}/g)?.map((byte) => Number.parseInt(byte, 16)) || []
130
- );
131
- console.log("[AbcSolProvider] \u2705 Message signed successfully");
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
- };
157
- const txResponse = await fetch(
158
- `${process.env.NEXT_PUBLIC_ABC_WAAS_URL}/wapi/v2/solana/tx/generateTransferSOLTransaction`,
159
- {
160
- method: "POST",
161
- headers: {
162
- Authorization: `Bearer ${accessToken}`,
163
- "Content-Type": "application/json"
164
- },
165
- body: JSON.stringify(requestBody)
166
- }
167
- );
168
- if (!txResponse.ok) {
169
- const errorText = await txResponse.text();
170
- console.error("[AbcSolProvider] \u274C API error:", errorText);
171
- throw new Error(
172
- `Transaction generation failed (${txResponse.status}): ${errorText}`
173
- );
174
- }
175
- const txData = await txResponse.json();
176
- const serializedTxHex = txData.result?.data?.serialized_tx || txData.data?.serialized_tx;
177
- if (!serializedTxHex) {
178
- console.error(
179
- "[AbcSolProvider] \u274C No serialized_tx in response:",
180
- txData
181
- );
182
- throw new Error("No serialized transaction in response");
183
- }
184
- const signResponse = await fetch(
185
- `${process.env.NEXT_PUBLIC_ABC_WAAS_URL}/v3/wallet/sign`,
186
- {
187
- method: "POST",
188
- headers: {
189
- Authorization: `Bearer ${accessToken}`,
190
- "Content-Type": "application/json"
191
- },
192
- body: JSON.stringify({
193
- ...walletData,
194
- message: serializedTxHex
195
- })
196
- }
197
- );
198
- if (!signResponse.ok) {
199
- const errorText = await signResponse.text();
200
- console.error("[AbcSolProvider] \u274C Sign API error:", errorText);
201
- throw new Error(`Sign failed: ${errorText}`);
202
- }
203
- const signResult = await signResponse.json();
204
- const signatureHex = signResult.signature || signResult.result?.signature;
205
- if (!signatureHex) {
206
- console.error(
207
- "[AbcSolProvider] \u274C No signature in response:",
208
- signResult
209
- );
210
- throw new Error("No signature in ABC WaaS response");
211
- }
212
- const signatureBytes = new Uint8Array(
213
- signatureHex.match(/.{1,2}/g)?.map((byte) => Number.parseInt(byte, 16)) || []
214
- );
215
- const mockTransaction = transaction;
216
- mockTransaction.signatures = [
217
- {
218
- signature: Buffer.from(signatureBytes),
219
- publicKey: this.publicKey
220
- }
221
- ];
222
- const serializedTxBytes = new Uint8Array(
223
- serializedTxHex.match(/.{1,2}/g)?.map((byte) => Number.parseInt(byte, 16)) || []
224
- );
225
- const serializedTxBase64 = Buffer.from(serializedTxBytes).toString("base64");
226
- mockTransaction._abcSerializedTx = serializedTxBase64;
227
- return mockTransaction;
228
- }
229
- /**
230
- * Send (broadcast) signed Solana transaction to network
231
- * - Transaction generation: v2 API (application/json)
232
- * - Transaction signing: v3 API (Ed25519 MPC)
233
- * - Transaction broadcast: v2 API
234
- */
235
- async sendTransaction(params) {
236
- const walletData = this.getWalletData();
237
- const accessToken = localStorage.getItem("talkenkit_abc_access_token");
238
- if (!accessToken) {
239
- throw new Error("No ABC WaaS access token");
240
- }
241
- const pin = await this.requestPin();
242
- const STORAGE_PREFIX = "talkenkit_abc_";
243
- const storedPinHash = localStorage.getItem(`${STORAGE_PREFIX}pin_hash`);
244
- if (!storedPinHash) {
245
- throw new Error("PIN not set. Please login again.");
246
- }
247
- const enteredPinHash = await hashPin(pin);
248
- if (enteredPinHash !== storedPinHash) {
249
- throw new Error("Incorrect PIN. Transaction cancelled.");
250
- }
251
- const solanaNetwork = getSolanaNetwork();
252
- const generateBody = {
253
- network: solanaNetwork,
254
- fromAddress: walletData.address,
255
- toAddress: params.toAddress,
256
- amount: params.amount * 1e9,
257
- // Convert SOL to lamports
258
- feePayerAddress: walletData.address
259
- // Fee payer is the sender
260
- };
261
- const generateResponse = await fetch(
262
- `${process.env.NEXT_PUBLIC_ABC_WAAS_URL}/wapi/v2/solana/tx/generateTransferSOLTransaction`,
263
- {
264
- method: "POST",
265
- headers: {
266
- Authorization: `Bearer ${accessToken}`,
267
- "Content-Type": "application/json"
268
- },
269
- body: JSON.stringify(generateBody)
270
- }
271
- );
272
- if (!generateResponse.ok) {
273
- const errorText = await generateResponse.text();
274
- console.error("[AbcSolProvider] \u274C Generate TX error:", errorText);
275
- throw new Error(`Transaction generation failed: ${errorText}`);
276
- }
277
- const txData = await generateResponse.json();
278
- 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;
279
- if (!serializedTxHex) {
280
- console.error(
281
- "[AbcSolProvider] \u274C Cannot find serialized_tx in response:",
282
- {
283
- hasResult: !!txData.result,
284
- hasData: !!txData.data,
285
- hasResultData: !!txData.result?.data,
286
- resultKeys: txData.result ? Object.keys(txData.result) : [],
287
- dataKeys: txData.data ? Object.keys(txData.data) : [],
288
- topLevelKeys: Object.keys(txData),
289
- fullResponse: txData
290
- }
291
- );
292
- throw new Error("No serialized transaction in response");
293
- }
294
- const txBytes = new Uint8Array(
295
- serializedTxHex.match(/.{1,2}/g)?.map((byte) => Number.parseInt(byte, 16)) || []
296
- );
297
- const txBase64 = Buffer.from(txBytes).toString("base64");
298
- const signBody = {
299
- curve: "ed25519",
300
- key_id: walletData.key_id,
301
- encrypted_share: walletData.encrypted_share,
302
- secret_store: walletData.secret_store || "",
303
- message: txBase64
304
- // Base64 encoded transaction
305
- };
306
- console.log("[AbcSolProvider] \u{1F680} Signing transaction with v3 API");
307
- const signResponse = await fetch(
308
- `${process.env.NEXT_PUBLIC_ABC_WAAS_URL}/v3/wallet/sign`,
309
- {
310
- method: "POST",
311
- headers: {
312
- Authorization: `Bearer ${accessToken}`,
313
- "Content-Type": "application/json"
314
- },
315
- body: JSON.stringify(signBody)
316
- }
317
- );
318
- if (!signResponse.ok) {
319
- const errorText = await signResponse.text();
320
- console.error("[AbcSolProvider] \u274C Sign error:", errorText);
321
- throw new Error(`Sign failed: ${errorText}`);
322
- }
323
- const signResult = await signResponse.json();
324
- console.log("[AbcSolProvider] \u{1F4E6} Sign API response:", signResult);
325
- const signatureHex = signResult.result?.signature || signResult.signature || signResult.data?.signature;
326
- if (!signatureHex) {
327
- console.error(
328
- "[AbcSolProvider] \u274C No signature in response:",
329
- signResult
330
- );
331
- throw new Error("No signature in ABC WaaS response");
332
- }
333
- const sendResponse = await fetch(
334
- `${process.env.NEXT_PUBLIC_ABC_WAAS_URL}/wapi/v2/solana/tx/sendTransaction`,
335
- {
336
- method: "POST",
337
- headers: {
338
- Authorization: `Bearer ${accessToken}`,
339
- "Content-Type": "application/json"
340
- },
341
- body: JSON.stringify({
342
- network: solanaNetwork,
343
- serializedTX: serializedTxHex,
344
- signatures: [signatureHex]
345
- })
346
- }
347
- );
348
- if (!sendResponse.ok) {
349
- const errorText = await sendResponse.text();
350
- console.error("[AbcSolProvider] \u274C Broadcast error:", {
351
- status: sendResponse.status,
352
- statusText: sendResponse.statusText,
353
- error: errorText
354
- });
355
- try {
356
- const errorData = JSON.parse(errorText);
357
- if (errorData.message?.includes("insufficient") || errorData.message?.includes("InsufficientFunds")) {
358
- throw new Error("Insufficient SOL balance to send transaction");
359
- }
360
- } catch (_parseError) {
361
- }
362
- throw new Error(
363
- `Transaction broadcast failed (${sendResponse.status}): ${errorText}`
364
- );
365
- }
366
- const sendResult = await sendResponse.json();
367
- const txHash = sendResult.result?.data || sendResult.data || sendResult.txHash;
368
- return {
369
- signature: signatureHex,
370
- txHash: txHash || signatureHex
371
- };
372
- }
373
- };
374
-
375
- export {
376
- AbcSolProvider
377
- };
@@ -1,157 +0,0 @@
1
- "use client";
2
- import {
3
- BaseApiClient
4
- } from "./chunk-NX5MQHSQ.js";
5
- import {
6
- getSolanaNetwork
7
- } from "./chunk-VZCI2K6Y.js";
8
- import {
9
- createAbcError
10
- } from "./chunk-UV5HHESJ.js";
11
-
12
- // src/wallets/walletConnectors/abcWallet/api/SolanaApi.ts
13
- var SolanaApi = class extends BaseApiClient {
14
- /**
15
- * Generate Solana wallet (Ed25519)
16
- * Uses V3 API with Ed25519 curve
17
- *
18
- * @param pin - Hashed PIN (SHA-256)
19
- * @param isRecover - Whether to recover existing wallet (default: false)
20
- * @returns Solana wallet information
21
- */
22
- async generateSolanaWallet(pin, isRecover = false) {
23
- const endpoint = `/v3/wallet/${isRecover ? "recover" : "generate"}`;
24
- const response = await this.request(endpoint, {
25
- method: "POST",
26
- contentType: "json",
27
- body: {
28
- curve: "ed25519",
29
- password: pin,
30
- network: "solana"
31
- }
32
- });
33
- if (response.status !== "success" || !response.result) {
34
- throw createAbcError(
35
- "WALLET_NOT_FOUND" /* WALLET_NOT_FOUND */,
36
- `Failed to ${isRecover ? "recover" : "generate"} Solana wallet`,
37
- response
38
- );
39
- }
40
- const result = response.result;
41
- const address = this.deriveAddressFromPublicKey(result.public_key);
42
- const network = getSolanaNetwork();
43
- return {
44
- uid: result.uid || "",
45
- sessionId: result.share_id,
46
- shareId: result.share_id,
47
- publicKey: result.public_key,
48
- address,
49
- keyId: result.key_id || result.share_id,
50
- encryptedShare: result.encrypted_share || "",
51
- secretStore: result.secret_store || "",
52
- network
53
- };
54
- }
55
- /**
56
- * Recover Solana wallet (alias for generateSolanaWallet with isRecover=true)
57
- *
58
- * @param pin - Hashed PIN (SHA-256)
59
- * @returns Recovered Solana wallet information
60
- */
61
- async recoverSolanaWallet(pin) {
62
- return this.generateSolanaWallet(pin, true);
63
- }
64
- /**
65
- * Derive Solana address from Ed25519 public key
66
- * Converts hex public key to base58-encoded Solana address
67
- *
68
- * @param publicKey - Ed25519 public key (hex)
69
- * @returns Solana address (base58)
70
- */
71
- deriveAddressFromPublicKey(publicKey) {
72
- const cleanKey = publicKey.startsWith("0x") ? publicKey.slice(2) : publicKey;
73
- return cleanKey;
74
- }
75
- /**
76
- * Sign Solana transaction with Ed25519
77
- * Reference: /v3/wallet/sign API requires only 5 fields
78
- */
79
- async signSolanaTransaction(params) {
80
- const response = await this.request("/v3/wallet/sign", {
81
- method: "POST",
82
- contentType: "json",
83
- body: {
84
- curve: "ed25519",
85
- key_id: params.keyId,
86
- encrypted_share: params.encryptedShare,
87
- secret_store: params.secretStore || "",
88
- message: params.message
89
- }
90
- });
91
- if (response.status !== "success" || !response.result?.signature) {
92
- throw createAbcError(
93
- "SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
94
- "Failed to sign Solana transaction",
95
- response
96
- );
97
- }
98
- return {
99
- signature: response.result.signature
100
- };
101
- }
102
- /**
103
- * Sign Solana message with Ed25519
104
- * Reference: /v3/wallet/sign API requires only 5 fields
105
- */
106
- async signSolanaMessage(params) {
107
- const response = await this.request("/v3/wallet/sign", {
108
- method: "POST",
109
- contentType: "json",
110
- body: {
111
- curve: "ed25519",
112
- key_id: params.keyId,
113
- encrypted_share: params.encryptedShare,
114
- secret_store: params.secretStore || "",
115
- message: params.message
116
- }
117
- });
118
- if (response.status !== "success" || !response.result?.signature) {
119
- throw createAbcError(
120
- "SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
121
- "Failed to sign Solana message",
122
- response
123
- );
124
- }
125
- return {
126
- signature: response.result.signature
127
- };
128
- }
129
- /**
130
- * Send Solana transaction
131
- */
132
- async sendSolanaTransaction(params) {
133
- const response = await this.request("/wapi/v2/solana/tx/sendTransaction", {
134
- method: "POST",
135
- contentType: "json",
136
- body: {
137
- network: params.network,
138
- serializedTX: params.serializedTX,
139
- signatures: params.signatures
140
- }
141
- });
142
- if (response.status !== "success" || !response.result?.data) {
143
- throw createAbcError(
144
- "NETWORK_ERROR" /* NETWORK_ERROR */,
145
- "Failed to send Solana transaction",
146
- response
147
- );
148
- }
149
- return {
150
- txHash: response.result.data
151
- };
152
- }
153
- };
154
-
155
- export {
156
- SolanaApi
157
- };
@@ -1,44 +0,0 @@
1
- "use client";
2
- import {
3
- abcConnector
4
- } from "./chunk-DU6M25IR.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
- };