@talken/talkenkit 2.4.12 → 2.4.14

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 (213) hide show
  1. package/dist/abcWallet-25AKGPRG.js +184 -0
  2. package/dist/abcWallet-2SXWQ2M6.js +184 -0
  3. package/dist/abcWallet-3E6Y5QS4.js +184 -0
  4. package/dist/abcWallet-3HKYSDOS.js +184 -0
  5. package/dist/abcWallet-4Y7KXZBE.js +184 -0
  6. package/dist/abcWallet-6VIUP4H3.js +184 -0
  7. package/dist/abcWallet-7CXDTXHX.js +184 -0
  8. package/dist/abcWallet-A3PX6AEW.js +184 -0
  9. package/dist/abcWallet-A6CRIFP2.js +184 -0
  10. package/dist/abcWallet-ACAOT2F3.js +184 -0
  11. package/dist/abcWallet-AWALYVJ7.js +184 -0
  12. package/dist/abcWallet-CEW3E2AX.js +184 -0
  13. package/dist/abcWallet-CEZAQ3ES.js +184 -0
  14. package/dist/abcWallet-CURD64AW.js +184 -0
  15. package/dist/abcWallet-E2A433S3.js +184 -0
  16. package/dist/abcWallet-ER37COEQ.js +184 -0
  17. package/dist/abcWallet-ETWMKZKD.js +184 -0
  18. package/dist/abcWallet-F6JAVHHQ.js +184 -0
  19. package/dist/abcWallet-GEHOIOZN.js +184 -0
  20. package/dist/abcWallet-H22OANDE.js +184 -0
  21. package/dist/abcWallet-H5BBPLGS.js +184 -0
  22. package/dist/abcWallet-I5BENZSH.js +184 -0
  23. package/dist/abcWallet-KPGRZYCP.js +184 -0
  24. package/dist/abcWallet-LABFRLNR.js +184 -0
  25. package/dist/abcWallet-MB2IAXV5.js +184 -0
  26. package/dist/abcWallet-MH6OGFBO.js +184 -0
  27. package/dist/abcWallet-NJGYOH52.js +184 -0
  28. package/dist/abcWallet-NTVWBYWF.js +184 -0
  29. package/dist/abcWallet-OG6ZQORS.js +184 -0
  30. package/dist/abcWallet-OJ7VCWHZ.js +184 -0
  31. package/dist/abcWallet-PBEQA5UT.js +184 -0
  32. package/dist/abcWallet-PMJEDGRW.js +184 -0
  33. package/dist/abcWallet-S7EO644R.js +184 -0
  34. package/dist/abcWallet-SX35BIXB.js +184 -0
  35. package/dist/abcWallet-TQTXUPJZ.js +184 -0
  36. package/dist/abcWallet-VKVKBQYN.js +184 -0
  37. package/dist/abcWallet-W6OZE7QD.js +184 -0
  38. package/dist/abcWallet-WH2J2YAV.js +184 -0
  39. package/dist/abcWallet-XA5DX7XK.js +184 -0
  40. package/dist/abcWallet-XANCTLMU.js +184 -0
  41. package/dist/abcWallet-XDP764EW.js +184 -0
  42. package/dist/abcWallet-Y3DONK5H.js +184 -0
  43. package/dist/abcWallet-YLBGJ5K6.js +184 -0
  44. package/dist/abcWallet-ZSL4HH7M.js +184 -0
  45. package/dist/chunk-2D6TXDN2.js +7450 -0
  46. package/dist/chunk-3K7INMEV.js +7470 -0
  47. package/dist/chunk-5FE4YAGR.js +7423 -0
  48. package/dist/chunk-5LD4QGWP.js +7423 -0
  49. package/dist/chunk-64RMUCRE.js +7447 -0
  50. package/dist/chunk-6KTOC6CY.js +7464 -0
  51. package/dist/chunk-6QW7GFF5.js +7450 -0
  52. package/dist/chunk-6RCVLZFG.js +7462 -0
  53. package/dist/chunk-7Y3M3LG3.js +7446 -0
  54. package/dist/chunk-A3EBU637.js +7441 -0
  55. package/dist/chunk-BVBWXZCX.js +7450 -0
  56. package/dist/chunk-CAXCHVY2.js +7469 -0
  57. package/dist/chunk-CBJW7X7O.js +7382 -0
  58. package/dist/chunk-CD36XA5S.js +7417 -0
  59. package/dist/chunk-EAKUQPJO.js +7463 -0
  60. package/dist/chunk-ER7H33CO.js +7450 -0
  61. package/dist/chunk-FCENPWP5.js +7452 -0
  62. package/dist/chunk-FPMB7NJE.js +7366 -0
  63. package/dist/chunk-GG57EUYL.js +7132 -0
  64. package/dist/chunk-GWIJVQBX.js +7420 -0
  65. package/dist/chunk-HGOFSTGT.js +7474 -0
  66. package/dist/chunk-JJ4CTD2J.js +7428 -0
  67. package/dist/chunk-JMBGLDYV.js +7368 -0
  68. package/dist/chunk-KBMHNBKL.js +7449 -0
  69. package/dist/chunk-KZRFIJW2.js +7452 -0
  70. package/dist/chunk-L6TCA4IF.js +7378 -0
  71. package/dist/chunk-LTRXFRER.js +7472 -0
  72. package/dist/chunk-MLJXZ6R2.js +7130 -0
  73. package/dist/chunk-MRLTYAPE.js +7451 -0
  74. package/dist/chunk-N3QOWEYR.js +7393 -0
  75. package/dist/chunk-NII34OZB.js +7442 -0
  76. package/dist/chunk-NWF5NI55.js +7130 -0
  77. package/dist/chunk-OAHLI7TU.js +7368 -0
  78. package/dist/chunk-RFJBWB7F.js +7467 -0
  79. package/dist/chunk-SBRDMKB6.js +7408 -0
  80. package/dist/chunk-SDRSLETV.js +7428 -0
  81. package/dist/chunk-SWO7BZQD.js +7463 -0
  82. package/dist/chunk-TR4Q6WOC.js +7427 -0
  83. package/dist/chunk-UBBAWTXE.js +7370 -0
  84. package/dist/chunk-VEOSJOVN.js +7377 -0
  85. package/dist/chunk-VGF34W25.js +7370 -0
  86. package/dist/chunk-VXSGQUAL.js +7458 -0
  87. package/dist/chunk-Z3FKXPV6.js +7430 -0
  88. package/dist/chunk-ZRBHEE5W.js +7130 -0
  89. package/dist/hooks/useSolanaWallet.d.ts +33 -1
  90. package/dist/index.css +24 -24
  91. package/dist/index.js +1837 -1570
  92. package/dist/wallets/walletConnectors/abcWallet/abcApi.d.ts +8 -0
  93. package/dist/wallets/walletConnectors/abcWallet/abcApi.js +1 -1
  94. package/dist/wallets/walletConnectors/abcWallet/abcConnector.js +3 -3
  95. package/dist/wallets/walletConnectors/abcWallet/abcProvider.d.ts +4 -0
  96. package/dist/wallets/walletConnectors/abcWallet/abcProvider.js +1 -1
  97. package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.d.ts +52 -4
  98. package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.js +1 -1
  99. package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.js +2 -2
  100. package/dist/wallets/walletConnectors/abcWallet/abcWallet.js +4 -4
  101. package/dist/wallets/walletConnectors/abcWallet/api/SolanaApi.d.ts +52 -1
  102. package/dist/wallets/walletConnectors/abcWallet/api/SolanaApi.js +1 -1
  103. package/dist/wallets/walletConnectors/abcWallet/api/index.js +5 -5
  104. package/dist/wallets/walletConnectors/abcWallet/index.js +8 -8
  105. package/dist/wallets/walletConnectors/abcWallet/types.d.ts +2 -2
  106. package/dist/wallets/walletConnectors/chunk-2FUWP3CE.js +330 -0
  107. package/dist/wallets/walletConnectors/chunk-2HZI5GNW.js +422 -0
  108. package/dist/wallets/walletConnectors/chunk-2KHZAE46.js +47 -0
  109. package/dist/wallets/walletConnectors/chunk-2NHQTZGS.js +276 -0
  110. package/dist/wallets/walletConnectors/chunk-2OTYM5YW.js +461 -0
  111. package/dist/wallets/walletConnectors/chunk-2PVZZB7V.js +179 -0
  112. package/dist/wallets/walletConnectors/chunk-2SKUK3XZ.js +336 -0
  113. package/dist/wallets/walletConnectors/chunk-2THGB26Q.js +483 -0
  114. package/dist/wallets/walletConnectors/chunk-353AHAZG.js +420 -0
  115. package/dist/wallets/walletConnectors/chunk-3AV4L2Z3.js +63 -0
  116. package/dist/wallets/walletConnectors/chunk-3DMYAF74.js +495 -0
  117. package/dist/wallets/walletConnectors/chunk-3EVUNPYA.js +63 -0
  118. package/dist/wallets/walletConnectors/chunk-45FLFWVV.js +473 -0
  119. package/dist/wallets/walletConnectors/chunk-4JRATGCT.js +484 -0
  120. package/dist/wallets/walletConnectors/chunk-4Q7XTNTE.js +63 -0
  121. package/dist/wallets/walletConnectors/chunk-4SCX34NL.js +276 -0
  122. package/dist/wallets/walletConnectors/chunk-5AL2CK6V.js +336 -0
  123. package/dist/wallets/walletConnectors/chunk-5FSXV7UD.js +63 -0
  124. package/dist/wallets/walletConnectors/chunk-5JHX6GDO.js +63 -0
  125. package/dist/wallets/walletConnectors/chunk-5QGNWYOO.js +63 -0
  126. package/dist/wallets/walletConnectors/chunk-6I7AIIUA.js +330 -0
  127. package/dist/wallets/walletConnectors/chunk-A2AVZXFM.js +467 -0
  128. package/dist/wallets/walletConnectors/chunk-AB6IIS4Y.js +359 -0
  129. package/dist/wallets/walletConnectors/chunk-AB6NV5DJ.js +469 -0
  130. package/dist/wallets/walletConnectors/chunk-AYAW5CRA.js +459 -0
  131. package/dist/wallets/walletConnectors/chunk-B6GPEHW7.js +47 -0
  132. package/dist/wallets/walletConnectors/chunk-BCO6YLPB.js +505 -0
  133. package/dist/wallets/walletConnectors/chunk-BK65Y46D.js +494 -0
  134. package/dist/wallets/walletConnectors/chunk-BKJVG4GQ.js +463 -0
  135. package/dist/wallets/walletConnectors/chunk-BWVC6F6J.js +467 -0
  136. package/dist/wallets/walletConnectors/chunk-CZ7WCJW5.js +63 -0
  137. package/dist/wallets/walletConnectors/chunk-D3USECVX.js +333 -0
  138. package/dist/wallets/walletConnectors/chunk-DCBHTSF2.js +63 -0
  139. package/dist/wallets/walletConnectors/chunk-DNSC37SU.js +47 -0
  140. package/dist/wallets/walletConnectors/chunk-DSTCYPGN.js +314 -0
  141. package/dist/wallets/walletConnectors/chunk-DWPUUKA4.js +63 -0
  142. package/dist/wallets/walletConnectors/chunk-E33VQYPO.js +302 -0
  143. package/dist/wallets/walletConnectors/chunk-EBBETASF.js +424 -0
  144. package/dist/wallets/walletConnectors/chunk-EN5R4RRF.js +47 -0
  145. package/dist/wallets/walletConnectors/chunk-FCRLSDVW.js +513 -0
  146. package/dist/wallets/walletConnectors/chunk-FLCBPO5T.js +276 -0
  147. package/dist/wallets/walletConnectors/chunk-GMEXP6OH.js +314 -0
  148. package/dist/wallets/walletConnectors/chunk-HB7QT3ZB.js +332 -0
  149. package/dist/wallets/walletConnectors/chunk-HDXQ7BO6.js +314 -0
  150. package/dist/wallets/walletConnectors/chunk-HIRSPIIU.js +1760 -0
  151. package/dist/wallets/walletConnectors/chunk-HQQESMZJ.js +299 -0
  152. package/dist/wallets/walletConnectors/chunk-HWWFK52B.js +63 -0
  153. package/dist/wallets/walletConnectors/chunk-HYADQWNX.js +47 -0
  154. package/dist/wallets/walletConnectors/chunk-I56RJQOO.js +63 -0
  155. package/dist/wallets/walletConnectors/chunk-JKDAQWPW.js +47 -0
  156. package/dist/wallets/walletConnectors/chunk-JY4WWUAC.js +503 -0
  157. package/dist/wallets/walletConnectors/chunk-K42FR6F7.js +513 -0
  158. package/dist/wallets/walletConnectors/chunk-K7WCM7JL.js +513 -0
  159. package/dist/wallets/walletConnectors/chunk-KIKTI2QW.js +313 -0
  160. package/dist/wallets/walletConnectors/chunk-KPXEV65I.js +481 -0
  161. package/dist/wallets/walletConnectors/chunk-KXRUCXYG.js +63 -0
  162. package/dist/wallets/walletConnectors/chunk-L2ICV2P2.js +276 -0
  163. package/dist/wallets/walletConnectors/chunk-L3ZUQ2FT.js +494 -0
  164. package/dist/wallets/walletConnectors/chunk-LKM4HFVX.js +63 -0
  165. package/dist/wallets/walletConnectors/chunk-LKSMH5O4.js +63 -0
  166. package/dist/wallets/walletConnectors/chunk-MOQSXFIP.js +47 -0
  167. package/dist/wallets/walletConnectors/chunk-MSK4NN2E.js +47 -0
  168. package/dist/wallets/walletConnectors/chunk-NSAHMWXK.js +468 -0
  169. package/dist/wallets/walletConnectors/chunk-NY3HZ7C7.js +428 -0
  170. package/dist/wallets/walletConnectors/chunk-OA6D52JF.js +303 -0
  171. package/dist/wallets/walletConnectors/chunk-OSJ2GO4U.js +63 -0
  172. package/dist/wallets/walletConnectors/chunk-OYDALF2T.js +63 -0
  173. package/dist/wallets/walletConnectors/chunk-P5CZ24LM.js +312 -0
  174. package/dist/wallets/walletConnectors/chunk-PE6CXY5F.js +513 -0
  175. package/dist/wallets/walletConnectors/chunk-PER2ACFG.js +443 -0
  176. package/dist/wallets/walletConnectors/chunk-PGPH245S.js +63 -0
  177. package/dist/wallets/walletConnectors/chunk-PNE3IGZM.js +63 -0
  178. package/dist/wallets/walletConnectors/chunk-PQDQUIIL.js +276 -0
  179. package/dist/wallets/walletConnectors/chunk-Q2WYW3LQ.js +63 -0
  180. package/dist/wallets/walletConnectors/chunk-Q3KCTIZB.js +458 -0
  181. package/dist/wallets/walletConnectors/chunk-Q3W2LKFS.js +498 -0
  182. package/dist/wallets/walletConnectors/chunk-QAD7DCJI.js +473 -0
  183. package/dist/wallets/walletConnectors/chunk-QG6HVKA7.js +458 -0
  184. package/dist/wallets/walletConnectors/chunk-QHCY3K35.js +466 -0
  185. package/dist/wallets/walletConnectors/chunk-QHRV2IC7.js +63 -0
  186. package/dist/wallets/walletConnectors/chunk-QOZL4BMA.js +513 -0
  187. package/dist/wallets/walletConnectors/chunk-QWEA3UTQ.js +313 -0
  188. package/dist/wallets/walletConnectors/chunk-QYUVI6LM.js +500 -0
  189. package/dist/wallets/walletConnectors/chunk-RFNPDZJ5.js +299 -0
  190. package/dist/wallets/walletConnectors/chunk-RWJX5CRR.js +276 -0
  191. package/dist/wallets/walletConnectors/chunk-S6LSALLS.js +47 -0
  192. package/dist/wallets/walletConnectors/chunk-SUBWGTWM.js +459 -0
  193. package/dist/wallets/walletConnectors/chunk-TASM5LUN.js +276 -0
  194. package/dist/wallets/walletConnectors/chunk-U4DSASHD.js +63 -0
  195. package/dist/wallets/walletConnectors/chunk-UCKLTSEQ.js +467 -0
  196. package/dist/wallets/walletConnectors/chunk-UWC6AXPI.js +63 -0
  197. package/dist/wallets/walletConnectors/chunk-UX4IUIRD.js +515 -0
  198. package/dist/wallets/walletConnectors/chunk-V5LV4P2L.js +63 -0
  199. package/dist/wallets/walletConnectors/chunk-VP6SWGCN.js +63 -0
  200. package/dist/wallets/walletConnectors/chunk-W4MD4LZF.js +464 -0
  201. package/dist/wallets/walletConnectors/chunk-WCHG2Q2N.js +276 -0
  202. package/dist/wallets/walletConnectors/chunk-XHNXMXXX.js +493 -0
  203. package/dist/wallets/walletConnectors/chunk-XHOWI6QG.js +399 -0
  204. package/dist/wallets/walletConnectors/chunk-XKNVF62K.js +276 -0
  205. package/dist/wallets/walletConnectors/chunk-YDCQB2MV.js +309 -0
  206. package/dist/wallets/walletConnectors/chunk-Z2IWGNDA.js +515 -0
  207. package/dist/wallets/walletConnectors/chunk-Z34L5C76.js +1760 -0
  208. package/dist/wallets/walletConnectors/chunk-Z4LE4R6P.js +63 -0
  209. package/dist/wallets/walletConnectors/chunk-ZE3USY6D.js +156 -0
  210. package/dist/wallets/walletConnectors/chunk-ZHHPZPSF.js +489 -0
  211. package/dist/wallets/walletConnectors/chunk-ZOJTTG4G.js +63 -0
  212. package/dist/wallets/walletConnectors/index.js +46 -46
  213. package/package.json +2 -1
@@ -0,0 +1,312 @@
1
+ "use client";
2
+ import {
3
+ BaseApiClient
4
+ } from "./chunk-MPFE6GP2.js";
5
+ import {
6
+ getSolanaNetwork
7
+ } from "./chunk-A7FIBI6X.js";
8
+ import {
9
+ createAbcError
10
+ } from "./chunk-5RSS3SRV.js";
11
+
12
+ // src/wallets/walletConnectors/abcWallet/api/SolanaApi.ts
13
+ import { PublicKey } from "@solana/web3.js";
14
+ var SolanaApi = class extends BaseApiClient {
15
+ /**
16
+ * Generate Solana wallet (Ed25519)
17
+ * Uses V3 API with Ed25519 curve
18
+ *
19
+ * @param pin - Hashed PIN (SHA-256)
20
+ * @param isRecover - Whether to recover existing wallet (default: false)
21
+ * @returns Solana wallet information
22
+ */
23
+ async generateSolanaWallet(pin, isRecover = false) {
24
+ const endpoint = `/v3/wallet/${isRecover ? "recover" : "generate"}`;
25
+ const network = getSolanaNetwork();
26
+ const response = await this.request(endpoint, {
27
+ method: "POST",
28
+ contentType: "json",
29
+ body: {
30
+ curve: "ed25519",
31
+ password: pin,
32
+ network
33
+ }
34
+ });
35
+ let result;
36
+ if (response.status === "success" && response.result) {
37
+ result = response.result;
38
+ } else if (response.encrypted_share && response.key_id) {
39
+ result = response;
40
+ } else {
41
+ throw createAbcError(
42
+ "WALLET_NOT_FOUND" /* WALLET_NOT_FOUND */,
43
+ `Failed to ${isRecover ? "recover" : "generate"} Solana wallet`,
44
+ response
45
+ );
46
+ }
47
+ let address;
48
+ try {
49
+ address = this.deriveAddressFromPublicKey(result.public_key);
50
+ } catch (_error) {
51
+ address = result.public_key.startsWith("0x") ? result.public_key.slice(2) : result.public_key;
52
+ }
53
+ return {
54
+ uid: result.uid || "",
55
+ sessionId: result.share_id,
56
+ shareId: result.share_id,
57
+ publicKey: result.public_key,
58
+ address,
59
+ keyId: result.key_id || result.share_id,
60
+ // API returns snake_case key_id
61
+ encryptedShare: result.encrypted_share || "",
62
+ // API returns snake_case encrypted_share
63
+ secretStore: result.secret_store || "",
64
+ // API returns snake_case secret_store
65
+ network
66
+ // Use network from request (already has correct value)
67
+ };
68
+ }
69
+ /**
70
+ * Recover Solana wallet (alias for generateSolanaWallet with isRecover=true)
71
+ *
72
+ * @param pin - Hashed PIN (SHA-256)
73
+ * @returns Recovered Solana wallet information
74
+ */
75
+ async recoverSolanaWallet(pin) {
76
+ return this.generateSolanaWallet(pin, true);
77
+ }
78
+ /**
79
+ * Derive Solana address from Ed25519 public key
80
+ * @param publicKey - Ed25519 public key (hex)
81
+ * @returns Solana address (base58)
82
+ */
83
+ deriveAddressFromPublicKey(publicKey) {
84
+ const cleanKey = publicKey.startsWith("0x") ? publicKey.slice(2) : publicKey;
85
+ const bytes = new Uint8Array(
86
+ cleanKey.match(/.{1,2}/g)?.map((byte) => Number.parseInt(byte, 16)) || []
87
+ );
88
+ try {
89
+ const pubkey = new PublicKey(bytes);
90
+ return pubkey.toBase58();
91
+ } catch (error) {
92
+ console.error("[SolanaApi] Failed to encode address:", error);
93
+ return cleanKey;
94
+ }
95
+ }
96
+ /**
97
+ * Sign Solana transaction with Ed25519
98
+ * Reference: /v3/wallet/sign API requires only 5 fields
99
+ */
100
+ async signSolanaTransaction(params) {
101
+ const network = getSolanaNetwork();
102
+ const response = await this.request("/v3/wallet/sign", {
103
+ method: "POST",
104
+ contentType: "json",
105
+ body: {
106
+ curve: "ed25519",
107
+ network,
108
+ key_id: params.keyId,
109
+ encrypted_share: params.encryptedShare,
110
+ secret_store: params.secretStore || "",
111
+ message: params.message
112
+ }
113
+ });
114
+ let signature;
115
+ if (response.status === "success" && response.result?.signature) {
116
+ signature = response.result.signature;
117
+ } else if (response.signature) {
118
+ signature = response.signature;
119
+ } else {
120
+ throw createAbcError(
121
+ "SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
122
+ "Failed to sign Solana transaction",
123
+ response
124
+ );
125
+ }
126
+ return {
127
+ signature
128
+ };
129
+ }
130
+ /**
131
+ * Sign Solana message with Ed25519
132
+ * Reference: /v3/wallet/sign API requires only 5 fields
133
+ */
134
+ async signSolanaMessage(params) {
135
+ const network = getSolanaNetwork();
136
+ const response = await this.request("/v3/wallet/sign", {
137
+ method: "POST",
138
+ contentType: "json",
139
+ body: {
140
+ curve: "ed25519",
141
+ network,
142
+ key_id: params.keyId,
143
+ encrypted_share: params.encryptedShare,
144
+ secret_store: params.secretStore || "",
145
+ message: params.message
146
+ }
147
+ });
148
+ let signature;
149
+ if (response.status === "success" && response.result?.signature) {
150
+ signature = response.result.signature;
151
+ } else if (response.signature) {
152
+ signature = response.signature;
153
+ } else {
154
+ throw createAbcError(
155
+ "SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
156
+ "Failed to sign Solana message",
157
+ response
158
+ );
159
+ }
160
+ return {
161
+ signature
162
+ };
163
+ }
164
+ /**
165
+ * Generate Solana transfer transaction via ABC WaaS API
166
+ * This ensures the transaction uses the same RPC and blockhash as the server
167
+ */
168
+ async generateTransferTransaction(params) {
169
+ const response = await this.request(
170
+ "/wapi/v2/solana/tx/generateTransferSOLTransaction",
171
+ {
172
+ method: "POST",
173
+ contentType: "json",
174
+ body: {
175
+ network: params.network,
176
+ amount: params.amount,
177
+ fromAddress: params.fromAddress,
178
+ toAddress: params.toAddress,
179
+ feePayerAddress: params.feePayerAddress
180
+ }
181
+ }
182
+ );
183
+ const responseData = response;
184
+ const serializedTx = responseData.data?.serialized_tx || response.status === "success" && response.result?.data?.serialized_tx;
185
+ if (!serializedTx) {
186
+ throw createAbcError(
187
+ "NETWORK_ERROR" /* NETWORK_ERROR */,
188
+ "Failed to generate Solana transaction",
189
+ response
190
+ );
191
+ }
192
+ return {
193
+ serialized_tx: serializedTx
194
+ };
195
+ }
196
+ /**
197
+ * Send Solana transaction
198
+ * Sends a fully signed and serialized transaction to the Solana network
199
+ */
200
+ async sendSolanaTransaction(params) {
201
+ const response = await this.request(
202
+ "/wapi/v2/solana/tx/sendTransaction",
203
+ {
204
+ method: "POST",
205
+ contentType: "json",
206
+ body: {
207
+ network: params.network,
208
+ serializedTX: params.serializedTX,
209
+ signatures: params.signatures
210
+ }
211
+ }
212
+ );
213
+ const responseData = response;
214
+ const txHash = responseData.data || response.status === "success" && response.result?.data;
215
+ if (!txHash || typeof txHash !== "string") {
216
+ throw createAbcError(
217
+ "NETWORK_ERROR" /* NETWORK_ERROR */,
218
+ "Failed to send Solana transaction",
219
+ response
220
+ );
221
+ }
222
+ return {
223
+ txHash
224
+ };
225
+ }
226
+ /**
227
+ * Generate SPL token transfer transaction via ABC WaaS API
228
+ *
229
+ * @param params - SPL transfer parameters
230
+ * @returns Serialized transaction
231
+ */
232
+ async generateSPLTransferTransaction(params) {
233
+ console.log("[SolanaApi] \u{1F4DD} generateSPLTransferTransaction request:", {
234
+ network: params.network,
235
+ feePayerAddress: params.feePayerAddress,
236
+ fromTokenAccount: params.fromTokenAccount,
237
+ toTokenAccount: params.toTokenAccount,
238
+ owner: params.owner,
239
+ amount: params.amount
240
+ });
241
+ const response = await this.request(
242
+ "/wapi/v2/solana/tx/generateTransferFTTransaction",
243
+ {
244
+ method: "POST",
245
+ contentType: "json",
246
+ body: {
247
+ network: params.network,
248
+ feePayerAddress: params.feePayerAddress,
249
+ fromTokenAccount: params.fromTokenAccount,
250
+ toTokenAccount: params.toTokenAccount,
251
+ owner: params.owner,
252
+ amount: params.amount,
253
+ ...params.latestBlockhash && {
254
+ latestBlockhash: params.latestBlockhash
255
+ }
256
+ }
257
+ }
258
+ );
259
+ console.log("[SolanaApi] \u2705 generateSPLTransferTransaction response:", response);
260
+ const responseData = response;
261
+ const data = responseData.data || response.status === "success" && response.result;
262
+ if (!data?.serialized_tx) {
263
+ throw createAbcError(
264
+ "NETWORK_ERROR" /* NETWORK_ERROR */,
265
+ "Failed to generate SPL transfer transaction",
266
+ response
267
+ );
268
+ }
269
+ return {
270
+ serialized_tx: data.serialized_tx,
271
+ estimated_fee: data.estimated_fee || { context: { Slot: 0 }, value: 0 },
272
+ latest_blockhash: data.latest_blockhash || ""
273
+ };
274
+ }
275
+ /**
276
+ * Get SPL token supply information
277
+ *
278
+ * @param params - Token query parameters
279
+ * @returns Token supply information
280
+ */
281
+ async getTokenInfo(params) {
282
+ const response = await this.request(
283
+ "/wapi/v2/solana/token/getTokenSupply",
284
+ {
285
+ method: "POST",
286
+ contentType: "json",
287
+ body: {
288
+ network: params.network,
289
+ tokenAddress: params.tokenAddress
290
+ }
291
+ }
292
+ );
293
+ const responseData = response;
294
+ const value = responseData.data?.value || response.status === "success" && response.result?.data?.value;
295
+ if (!value || typeof value.decimals !== "number") {
296
+ throw createAbcError(
297
+ "NETWORK_ERROR" /* NETWORK_ERROR */,
298
+ "Failed to get token info",
299
+ response
300
+ );
301
+ }
302
+ return {
303
+ amount: value.amount,
304
+ decimals: value.decimals,
305
+ uiAmountString: value.uiAmountString
306
+ };
307
+ }
308
+ };
309
+
310
+ export {
311
+ SolanaApi
312
+ };