@talken/talkenkit 2.3.15 → 2.4.4

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 (170) hide show
  1. package/dist/{chunk-UWHLB4MJ.js → chunk-RQ637EP3.js} +0 -2
  2. package/dist/components/ConnectOptions/ExternalWallets/EthereumWallet/EthereumWalletList.d.ts +4 -4
  3. package/dist/index.d.ts +6 -5
  4. package/dist/index.js +6783 -6571
  5. package/dist/{secure-SSSSQ4NA.js → secure-X6ZSGFOB.js} +1 -1
  6. package/dist/services/AbcAuthService.d.ts +1 -1
  7. package/dist/solana/AbcSolanaAutoConnector.d.ts +7 -0
  8. package/dist/solana/SolanaWalletProvider.d.ts +18 -2
  9. package/dist/solana/config.d.ts +26 -0
  10. package/dist/wallets/walletConnectors/abcWallet/AbcEvmAutoConnector.d.ts +7 -0
  11. package/dist/wallets/walletConnectors/abcWallet/AbcEvmAutoConnector.js +37 -0
  12. package/dist/wallets/walletConnectors/abcWallet/abcApi.js +4 -4
  13. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinConnector.js +3 -3
  14. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.js +1 -1
  15. package/dist/wallets/walletConnectors/abcWallet/abcConnector.js +6 -6
  16. package/dist/wallets/walletConnectors/abcWallet/abcProvider.js +3 -3
  17. package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.d.ts +166 -0
  18. package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.js +725 -0
  19. package/dist/wallets/walletConnectors/abcWallet/abcWallet.js +7 -7
  20. package/dist/wallets/walletConnectors/abcWallet/api/AuthApi.js +5 -5
  21. package/dist/wallets/walletConnectors/abcWallet/api/BaseApiClient.d.ts +5 -0
  22. package/dist/wallets/walletConnectors/abcWallet/api/BaseApiClient.js +4 -4
  23. package/dist/wallets/walletConnectors/abcWallet/api/BitcoinApi.js +5 -5
  24. package/dist/wallets/walletConnectors/abcWallet/api/SigningApi.js +5 -5
  25. package/dist/wallets/walletConnectors/abcWallet/api/SolanaApi.d.ts +16 -5
  26. package/dist/wallets/walletConnectors/abcWallet/api/SolanaApi.js +5 -5
  27. package/dist/wallets/walletConnectors/abcWallet/api/TransactionApi.js +5 -5
  28. package/dist/wallets/walletConnectors/abcWallet/api/WalletApi.js +5 -5
  29. package/dist/wallets/walletConnectors/abcWallet/api/index.js +13 -13
  30. package/dist/wallets/walletConnectors/abcWallet/googleAuth.d.ts +1 -1
  31. package/dist/wallets/walletConnectors/abcWallet/googleAuth.js +5 -7
  32. package/dist/wallets/walletConnectors/abcWallet/index.d.ts +3 -7
  33. package/dist/wallets/walletConnectors/abcWallet/index.js +36 -46
  34. package/dist/wallets/walletConnectors/abcWallet/secure.js +1 -1
  35. package/dist/wallets/walletConnectors/abcWallet/sessionUtils.d.ts +38 -0
  36. package/dist/wallets/walletConnectors/abcWallet/sessionUtils.js +15 -0
  37. package/dist/wallets/walletConnectors/abcWallet/types.d.ts +34 -1
  38. package/dist/wallets/walletConnectors/abcWallet/types.js +1 -1
  39. package/dist/wallets/walletConnectors/abcWallet/utils.d.ts +1 -1
  40. package/dist/wallets/walletConnectors/abcWallet/utils.js +2 -2
  41. package/dist/wallets/walletConnectors/abcWallet/walletGeneration.js +2 -2
  42. package/dist/wallets/walletConnectors/chunk-2GNL2GNB.js +154 -0
  43. package/dist/wallets/walletConnectors/{chunk-5DDAV4BZ.js → chunk-2NAY6X3G.js} +1 -1
  44. package/dist/wallets/walletConnectors/{chunk-ZIYAL44B.js → chunk-2NVHWZUE.js} +1 -1
  45. package/dist/wallets/walletConnectors/{chunk-LENPUTNQ.js → chunk-36J4NGMW.js} +12 -20
  46. package/dist/wallets/walletConnectors/{chunk-4MF5RSML.js → chunk-3CTIR723.js} +1 -1
  47. package/dist/wallets/walletConnectors/{chunk-AVPBPELO.js → chunk-3WLUH24A.js} +10 -10
  48. package/dist/wallets/walletConnectors/{chunk-YEHCPL4R.js → chunk-53LPTQ6J.js} +2 -2
  49. package/dist/wallets/walletConnectors/{chunk-GXGRTWJM.js → chunk-5CZGFT24.js} +10 -10
  50. package/dist/wallets/walletConnectors/{chunk-BJHGC546.js → chunk-5JIPWC5W.js} +12 -24
  51. package/dist/wallets/walletConnectors/{chunk-4N6JD6LY.js → chunk-5LPD35BU.js} +9 -9
  52. package/dist/wallets/walletConnectors/{chunk-UV5HHESJ.js → chunk-5RSS3SRV.js} +29 -12
  53. package/dist/wallets/walletConnectors/{chunk-3ZE57J3R.js → chunk-64TRAZ6V.js} +1 -1
  54. package/dist/wallets/walletConnectors/{chunk-KKPINUPY.js → chunk-6BAXMYSN.js} +2 -2
  55. package/dist/wallets/walletConnectors/{chunk-PPIFAF7N.js → chunk-7MOCKWA7.js} +65 -19
  56. package/dist/wallets/walletConnectors/{chunk-75RN2RLT.js → chunk-7TYZCXIR.js} +12 -12
  57. package/dist/wallets/walletConnectors/{chunk-HVPQO6ZG.js → chunk-7UIXGYOT.js} +5 -20
  58. package/dist/wallets/walletConnectors/{chunk-BL57XWJY.js → chunk-7UQQKSV7.js} +1 -1
  59. package/dist/wallets/walletConnectors/{chunk-FGBDWBWQ.js → chunk-AIKTQX6B.js} +2 -2
  60. package/dist/wallets/walletConnectors/chunk-AO24PU7X.js +104 -0
  61. package/dist/wallets/walletConnectors/{chunk-4YJWX7I3.js → chunk-APLOMU6R.js} +1 -1
  62. package/dist/wallets/walletConnectors/chunk-AZAV5URB.js +267 -0
  63. package/dist/wallets/walletConnectors/chunk-BO6OI7XU.js +63 -0
  64. package/dist/wallets/walletConnectors/{chunk-P2GV6NQG.js → chunk-BV3DCJXA.js} +12 -20
  65. package/dist/wallets/walletConnectors/{chunk-KJHOGJ3A.js → chunk-CNRPEVLV.js} +16 -4
  66. package/dist/wallets/walletConnectors/{chunk-OC2O4BHA.js → chunk-COPAK5YT.js} +2 -2
  67. package/dist/wallets/walletConnectors/chunk-CZVBS7QE.js +436 -0
  68. package/dist/wallets/walletConnectors/{chunk-QKUFFUM5.js → chunk-DA5J6GHZ.js} +14 -4
  69. package/dist/wallets/walletConnectors/chunk-FMDSZ2CE.js +63 -0
  70. package/dist/wallets/walletConnectors/{chunk-5CCU7PNU.js → chunk-FQTLYAWT.js} +2 -2
  71. package/dist/wallets/walletConnectors/chunk-FUOQBONI.js +47 -0
  72. package/dist/wallets/walletConnectors/chunk-FWCS4HBL.js +1695 -0
  73. package/dist/wallets/walletConnectors/chunk-FY7UDC3W.js +63 -0
  74. package/dist/wallets/walletConnectors/chunk-GZUP3M2X.js +63 -0
  75. package/dist/wallets/walletConnectors/chunk-H52W4ZFE.js +272 -0
  76. package/dist/wallets/walletConnectors/chunk-HEQZLRTH.js +309 -0
  77. package/dist/wallets/walletConnectors/{chunk-ISAMATTH.js → chunk-HFC4AK72.js} +2 -2
  78. package/dist/wallets/walletConnectors/chunk-HKIV22NT.js +63 -0
  79. package/dist/wallets/walletConnectors/chunk-HLC24OGS.js +63 -0
  80. package/dist/wallets/walletConnectors/{chunk-5TDZSXJ4.js → chunk-HTD7IRKM.js} +2 -2
  81. package/dist/wallets/walletConnectors/chunk-IQJWD4IN.js +269 -0
  82. package/dist/wallets/walletConnectors/chunk-IZUAJRJ4.js +311 -0
  83. package/dist/wallets/walletConnectors/{chunk-NX5MQHSQ.js → chunk-J6VUIOSE.js} +23 -2
  84. package/dist/wallets/walletConnectors/chunk-JQ57SCY6.js +313 -0
  85. package/dist/wallets/walletConnectors/{chunk-F5P2INHS.js → chunk-KB7OGAUC.js} +14 -4
  86. package/dist/wallets/walletConnectors/chunk-KXEAFXAA.js +226 -0
  87. package/dist/wallets/walletConnectors/{chunk-JR2C4XXX.js → chunk-LLWI2QWC.js} +74 -18
  88. package/dist/wallets/walletConnectors/{chunk-H2MX4NAL.js → chunk-LQ2U33WM.js} +29 -16
  89. package/dist/wallets/walletConnectors/{chunk-BNSBK5PQ.js → chunk-M7KXDTM6.js} +14 -4
  90. package/dist/wallets/walletConnectors/{chunk-CYYBGUSO.js → chunk-MKAXMNZM.js} +4 -4
  91. package/dist/wallets/walletConnectors/chunk-MNRRJSFM.js +272 -0
  92. package/dist/wallets/walletConnectors/chunk-MPFE6GP2.js +306 -0
  93. package/dist/wallets/walletConnectors/{chunk-EEY5CXKO.js → chunk-MPNSYA4E.js} +2 -2
  94. package/dist/wallets/walletConnectors/chunk-NDLQSZ2F.js +63 -0
  95. package/dist/wallets/walletConnectors/{chunk-G2LI5MVX.js → chunk-NDYGTKP5.js} +0 -2
  96. package/dist/wallets/walletConnectors/chunk-NLBRSN6Q.js +63 -0
  97. package/dist/wallets/walletConnectors/{chunk-BSBRWKNG.js → chunk-NPF7NOA7.js} +69 -23
  98. package/dist/wallets/walletConnectors/{chunk-7DEZCGNV.js → chunk-NUJ6VD2U.js} +82 -16
  99. package/dist/wallets/walletConnectors/chunk-PSRATZTN.js +47 -0
  100. package/dist/wallets/walletConnectors/{chunk-MZOFZ2NQ.js → chunk-QCIIXMAZ.js} +2 -2
  101. package/dist/wallets/walletConnectors/{chunk-GHLLVM7O.js → chunk-RCI7QYCZ.js} +82 -18
  102. package/dist/wallets/walletConnectors/{chunk-QI2VB7LL.js → chunk-RHQXGWIW.js} +82 -16
  103. package/dist/wallets/walletConnectors/chunk-RPOLRZ4N.js +276 -0
  104. package/dist/wallets/walletConnectors/{chunk-5UEBEMEE.js → chunk-RQIUWXDF.js} +2 -1
  105. package/dist/wallets/walletConnectors/{chunk-RLR4Y5WO.js → chunk-SCD35IRD.js} +4 -0
  106. package/dist/wallets/walletConnectors/{chunk-EGOIRXTV.js → chunk-SOCVQ5N3.js} +2 -2
  107. package/dist/wallets/walletConnectors/chunk-TTRSCIGA.js +194 -0
  108. package/dist/wallets/walletConnectors/chunk-TYUEB4VT.js +477 -0
  109. package/dist/wallets/walletConnectors/{chunk-WTYSUOKN.js → chunk-UZXTNCDO.js} +17 -5
  110. package/dist/wallets/walletConnectors/chunk-V33I7JGZ.js +156 -0
  111. package/dist/wallets/walletConnectors/chunk-V4Q3GNBX.js +484 -0
  112. package/dist/wallets/walletConnectors/chunk-VCCTIYUJ.js +63 -0
  113. package/dist/wallets/walletConnectors/chunk-VGOISIH3.js +223 -0
  114. package/dist/wallets/walletConnectors/chunk-XFGVJOQL.js +223 -0
  115. package/dist/wallets/walletConnectors/chunk-XIOPKI2F.js +47 -0
  116. package/dist/wallets/walletConnectors/{chunk-O6EAIC4G.js → chunk-XJ4SP35I.js} +4 -1
  117. package/dist/wallets/walletConnectors/chunk-XKGUE56S.js +226 -0
  118. package/dist/wallets/walletConnectors/chunk-XQEAXENJ.js +63 -0
  119. package/dist/wallets/walletConnectors/{chunk-RY4RAB3D.js → chunk-YCZ4CZQ6.js} +106 -66
  120. package/dist/wallets/walletConnectors/chunk-Z2DC2J7S.js +345 -0
  121. package/dist/wallets/walletConnectors/chunk-Z2K3RHWK.js +47 -0
  122. package/dist/wallets/walletConnectors/chunk-ZASMSEC3.js +63 -0
  123. package/dist/wallets/walletConnectors/{chunk-G7PEFBL6.js → chunk-ZNBWRE3K.js} +2 -2
  124. package/dist/wallets/walletConnectors/chunk-ZNVFM2J2.js +156 -0
  125. package/dist/wallets/walletConnectors/chunk-ZQLQELFC.js +309 -0
  126. package/dist/wallets/walletConnectors/chunk-ZR7CEF64.js +63 -0
  127. package/dist/wallets/walletConnectors/chunk-ZSGFDK77.js +63 -0
  128. package/dist/wallets/walletConnectors/chunk-ZUIY2TRJ.js +1695 -0
  129. package/dist/wallets/walletConnectors/index.js +22 -22
  130. package/package.json +12 -11
  131. package/LICENSE +0 -9
  132. package/dist/solana/hooks/index.d.ts +0 -12
  133. package/dist/solana/hooks/useSolanaAccount.d.ts +0 -98
  134. package/dist/solana/hooks/useSolanaConnection.d.ts +0 -72
  135. package/dist/solana/hooks/useSolanaSendTransaction.d.ts +0 -98
  136. package/dist/solana/hooks/useSolanaSignMessage.d.ts +0 -82
  137. package/dist/wallets/walletConnectors/abcWallet/abcSolProvider.d.ts +0 -45
  138. package/dist/wallets/walletConnectors/abcWallet/abcSolProvider.js +0 -10
  139. package/dist/wallets/walletConnectors/abcWallet/abcSolanaConnector.d.ts +0 -115
  140. package/dist/wallets/walletConnectors/abcWallet/abcSolanaConnector.js +0 -12
  141. package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.d.ts +0 -143
  142. package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.js +0 -13
  143. package/dist/wallets/walletConnectors/abcWallet/abcSolanaWallet.d.ts +0 -18
  144. package/dist/wallets/walletConnectors/abcWallet/abcSolanaWallet.js +0 -15
  145. package/dist/wallets/walletConnectors/chunk-2XZBPMQJ.js +0 -39
  146. package/dist/wallets/walletConnectors/chunk-3SVPZCA6.js +0 -71
  147. package/dist/wallets/walletConnectors/chunk-3ZZXE7EL.js +0 -39
  148. package/dist/wallets/walletConnectors/chunk-5QEUEPNY.js +0 -94
  149. package/dist/wallets/walletConnectors/chunk-75W4VLFA.js +0 -482
  150. package/dist/wallets/walletConnectors/chunk-B6JLYR3I.js +0 -66
  151. package/dist/wallets/walletConnectors/chunk-FROV5VDF.js +0 -346
  152. package/dist/wallets/walletConnectors/chunk-HKWBR5B7.js +0 -102
  153. package/dist/wallets/walletConnectors/chunk-K4APJ4PE.js +0 -96
  154. package/dist/wallets/walletConnectors/chunk-LJ2B47VF.js +0 -108
  155. package/dist/wallets/walletConnectors/chunk-LXINMUQC.js +0 -186
  156. package/dist/wallets/walletConnectors/chunk-MORUEOYX.js +0 -76
  157. package/dist/wallets/walletConnectors/chunk-MQTXA63X.js +0 -27
  158. package/dist/wallets/walletConnectors/chunk-N4FOYXQD.js +0 -63
  159. package/dist/wallets/walletConnectors/chunk-NEXFU6BZ.js +0 -39
  160. package/dist/wallets/walletConnectors/chunk-PMZJGS7X.js +0 -73
  161. package/dist/wallets/walletConnectors/chunk-QEHZXKRF.js +0 -39
  162. package/dist/wallets/walletConnectors/chunk-T6KJZAPR.js +0 -47
  163. package/dist/wallets/walletConnectors/chunk-UBCMBPX3.js +0 -58
  164. package/dist/wallets/walletConnectors/chunk-UGQXI3RN.js +0 -284
  165. package/dist/wallets/walletConnectors/chunk-WZZVA3LW.js +0 -101
  166. package/dist/wallets/walletConnectors/chunk-X4WUD7PF.js +0 -63
  167. package/dist/wallets/walletConnectors/chunk-XOQNQKZE.js +0 -98
  168. package/dist/wallets/walletConnectors/chunk-XPSCFUX6.js +0 -372
  169. package/dist/wallets/walletConnectors/chunk-Y3LWEDF6.js +0 -63
  170. package/dist/wallets/walletConnectors/chunk-ZJ6OFFD5.js +0 -95
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import {
3
3
  BaseApiClient
4
- } from "./chunk-H2MX4NAL.js";
4
+ } from "./chunk-LQ2U33WM.js";
5
5
  import {
6
6
  createAbcError
7
- } from "./chunk-UV5HHESJ.js";
7
+ } from "./chunk-TYUEB4VT.js";
8
8
  import {
9
9
  DEFAULT_HEADERS
10
10
  } from "./chunk-VETRBBA2.js";
@@ -49,7 +49,10 @@ var BitcoinApi = class extends BaseApiClient {
49
49
  network,
50
50
  addressType
51
51
  );
52
- console.log("[BitcoinApi] \u2705 Bitcoin wallet generated:", addressResult);
52
+ console.log(
53
+ "[BitcoinApi] \u2705 Bitcoin wallet generated:",
54
+ `${addressResult.substring(0, 6)}...${addressResult.substring(addressResult.length - 4)}`
55
+ );
53
56
  return {
54
57
  uid: result.uid || "",
55
58
  sessionId: result.share_id,
@@ -100,7 +103,10 @@ var BitcoinApi = class extends BaseApiClient {
100
103
  network,
101
104
  addressType
102
105
  );
103
- console.log("[BitcoinApi] \u2705 Bitcoin wallet recovered:", addressResult);
106
+ console.log(
107
+ "[BitcoinApi] \u2705 Bitcoin wallet recovered:",
108
+ `${addressResult.substring(0, 6)}...${addressResult.substring(addressResult.length - 4)}`
109
+ );
104
110
  return {
105
111
  uid: result.uid || "",
106
112
  sessionId: result.share_id,
@@ -153,6 +159,10 @@ var BitcoinApi = class extends BaseApiClient {
153
159
  * @returns Array of UTXOs
154
160
  */
155
161
  async getUtxos(address, network) {
162
+ console.log(
163
+ "[BitcoinApi] \u{1F50D} Fetching UTXOs for:",
164
+ `${address.substring(0, 6)}...${address.substring(address.length - 4)}`
165
+ );
156
166
  const url = `${this.baseURL}/wapi/v2/bitcoin/utxo/list`;
157
167
  const params = new URLSearchParams({ network, address });
158
168
  console.log("[BitcoinApi] \u{1F50D} Fetching UTXOs for:", address);
@@ -0,0 +1,226 @@
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
+ */
199
+ async sendSolanaTransaction(params) {
200
+ const response = await this.request("/wapi/v2/solana/tx/sendTransaction", {
201
+ method: "POST",
202
+ contentType: "json",
203
+ body: {
204
+ network: params.network,
205
+ serializedTX: params.serializedTX,
206
+ signatures: params.signatures
207
+ }
208
+ });
209
+ const responseData = response;
210
+ const txHash = responseData.data || response.status === "success" && response.result?.data;
211
+ if (!txHash || typeof txHash !== "string") {
212
+ throw createAbcError(
213
+ "NETWORK_ERROR" /* NETWORK_ERROR */,
214
+ "Failed to send Solana transaction",
215
+ response
216
+ );
217
+ }
218
+ return {
219
+ txHash
220
+ };
221
+ }
222
+ };
223
+
224
+ export {
225
+ SolanaApi
226
+ };
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  secure_default
4
- } from "./chunk-G2LI5MVX.js";
4
+ } from "./chunk-NDYGTKP5.js";
5
5
  import {
6
6
  getSolanaNetwork
7
7
  } from "./chunk-A7FIBI6X.js";
@@ -13,7 +13,7 @@ import {
13
13
  parseApiError,
14
14
  removeFromStorage,
15
15
  saveToStorage
16
- } from "./chunk-UV5HHESJ.js";
16
+ } from "./chunk-5RSS3SRV.js";
17
17
  import {
18
18
  ABC_AUDIENCE,
19
19
  ABC_ENDPOINTS,
@@ -412,6 +412,7 @@ var AbcWaasClient = class {
412
412
  const talkenApiUrl = process.env.NEXT_PUBLIC_API_SERVER || "https://dev.walletapi.talken.io";
413
413
  const url = `${talkenApiUrl}/abc/emailCheck?email=${encodeURIComponent(email)}`;
414
414
  const method = "GET";
415
+ console.log("[AbcWaasClient] \u{1F4EC} Checking email");
415
416
  try {
416
417
  const response = await fetch(url, {
417
418
  method,
@@ -453,6 +454,7 @@ var AbcWaasClient = class {
453
454
  */
454
455
  async sendOtpCode(email) {
455
456
  const endpoint = `/member/mail-service/${encodeURIComponent(email)}/sendcode`;
457
+ console.log("[AbcWaasClient] \u{1F4E7} Sending OTP code");
456
458
  const response = await this.request(endpoint, {
457
459
  method: "GET",
458
460
  skipAuth: true
@@ -479,11 +481,13 @@ var AbcWaasClient = class {
479
481
  serviceid: ABC_AUDIENCE
480
482
  // 'https://mw.myabcwallet.com'
481
483
  };
484
+ console.log("[AbcWaasClient] \u{1F510} Verifying OTP code");
482
485
  const response = await this.request(endpoint, {
483
486
  method: "POST",
484
487
  body: requestBody,
485
488
  skipAuth: true
486
489
  });
490
+ console.log("[verifyOtpCodeSignup] Response:", response);
487
491
  const isSuccess = response.status === "success" || response.status === 200 || response.message === "success";
488
492
  if (isSuccess) {
489
493
  return response;
@@ -503,6 +507,7 @@ var AbcWaasClient = class {
503
507
  async snsLogin(params) {
504
508
  const talkenApiUrl = process.env.NEXT_PUBLIC_API_SERVER || "https://dev.walletapi.talken.io";
505
509
  const url = `${talkenApiUrl}/abc/snsLogin`;
510
+ console.log("[AbcWaasClient] \u{1F510} SNS Login");
506
511
  try {
507
512
  const response = await fetch(url, {
508
513
  method: "POST",
@@ -535,6 +540,7 @@ var AbcWaasClient = class {
535
540
  { service: params.service, response: data }
536
541
  );
537
542
  }
543
+ console.log("[AbcWaasClient] \u2705 SNS login successful");
538
544
  return {
539
545
  uid: "",
540
546
  // Will be fetched later via info() API
@@ -564,6 +570,7 @@ var AbcWaasClient = class {
564
570
  const talkenApiUrl = process.env.NEXT_PUBLIC_API_SERVER || "https://dev.walletapi.talken.io";
565
571
  const url = `${talkenApiUrl}/abc/adduser`;
566
572
  const method = "POST";
573
+ console.log("[AbcWaasClient] \u{1F4DD} Registering user");
567
574
  try {
568
575
  const response = await fetch(url, {
569
576
  method,
@@ -612,6 +619,7 @@ var AbcWaasClient = class {
612
619
  const talkenApiUrl = process.env.NEXT_PUBLIC_API_SERVER || "https://dev.walletapi.talken.io";
613
620
  const url = `${talkenApiUrl}/abc/snsAdduser`;
614
621
  const method = "POST";
622
+ console.log("[AbcWaasClient] \u{1F4DD} Registering SNS user");
615
623
  try {
616
624
  const response = await fetch(url, {
617
625
  method,
@@ -639,6 +647,7 @@ var AbcWaasClient = class {
639
647
  }
640
648
  });
641
649
  }
650
+ console.log("[AbcWaasClient] \u2705 SNS user registered successfully");
642
651
  return data;
643
652
  } catch (error) {
644
653
  if (error.name === "AbortError") {
@@ -660,6 +669,7 @@ var AbcWaasClient = class {
660
669
  const talkenApiUrl = process.env.NEXT_PUBLIC_API_SERVER || "https://dev.walletapi.talken.io";
661
670
  const url = `${talkenApiUrl}/abc/initpassword`;
662
671
  const method = "POST";
672
+ console.log("[AbcWaasClient] \u{1F510} Setting password");
663
673
  try {
664
674
  const response = await fetch(url, {
665
675
  method,
@@ -1466,24 +1476,55 @@ var AbcWaasClient = class {
1466
1476
  const response = await fetch(url, {
1467
1477
  method: "POST",
1468
1478
  headers: {
1469
- ...DEFAULT_HEADERS,
1479
+ "Content-Type": "application/json",
1480
+ // V3 API requires JSON, not form-urlencoded
1481
+ "Accept": "application/json",
1470
1482
  ...this.accessToken ? { Authorization: `Bearer ${this.accessToken}` } : {}
1471
1483
  },
1472
1484
  body: JSON.stringify({
1473
1485
  curve: "ed25519",
1474
1486
  password: pin
1475
1487
  // PIN will be encrypted by Secure Channel
1488
+ // Note: network parameter not needed for v3 API
1476
1489
  })
1477
1490
  });
1478
- const data = await response.json();
1479
- if (!response.ok || data.status !== "success") {
1491
+ let data;
1492
+ try {
1493
+ data = await response.json();
1494
+ } catch (e) {
1495
+ console.error(`[AbcWaasClient] Failed to parse response from ${url}:`, e);
1496
+ throw createAbcError(
1497
+ "WALLET_NOT_FOUND" /* WALLET_NOT_FOUND */,
1498
+ `Failed to ${isRecover ? "recover" : "generate"} Solana wallet - invalid response`,
1499
+ { status: response.status }
1500
+ );
1501
+ }
1502
+ if (!response.ok) {
1503
+ if (!isRecover && response.status === 409) {
1504
+ const error = createAbcError(
1505
+ "WALLET_NOT_FOUND" /* WALLET_NOT_FOUND */,
1506
+ "Wallet already exists",
1507
+ data
1508
+ );
1509
+ error.response = { status: 409 };
1510
+ throw error;
1511
+ }
1512
+ console.error(`[AbcWaasClient] ${isRecover ? "Recover" : "Generate"} failed:`, data);
1513
+ throw createAbcError(
1514
+ "WALLET_NOT_FOUND" /* WALLET_NOT_FOUND */,
1515
+ `Failed to ${isRecover ? "recover" : "generate"} Solana wallet`,
1516
+ data
1517
+ );
1518
+ }
1519
+ const result = data.result || data;
1520
+ if (!result.key_id || !result.public_key || !result.encrypted_share) {
1521
+ console.error("[AbcWaasClient] Invalid wallet response, missing required fields:", result);
1480
1522
  throw createAbcError(
1481
1523
  "WALLET_NOT_FOUND" /* WALLET_NOT_FOUND */,
1482
- "Failed to generate Solana wallet",
1524
+ `Invalid wallet response from ${isRecover ? "recover" : "generate"}`,
1483
1525
  data
1484
1526
  );
1485
1527
  }
1486
- const result = data.result;
1487
1528
  const solanaNetwork = getSolanaNetwork();
1488
1529
  const addressResult = await this.getSolanaAddress(
1489
1530
  result.public_key,
@@ -1491,12 +1532,13 @@ var AbcWaasClient = class {
1491
1532
  );
1492
1533
  return {
1493
1534
  uid: result.uid || "",
1494
- sessionId: result.share_id,
1495
- shareId: result.share_id,
1535
+ sessionId: result.share_id || result.key_id,
1536
+ shareId: result.share_id || result.key_id,
1496
1537
  publicKey: result.public_key,
1497
1538
  address: addressResult,
1498
- keyId: result.key_id || result.share_id,
1539
+ keyId: result.key_id,
1499
1540
  encryptedShare: result.encrypted_share || "",
1541
+ secretStore: result.secret_store || "",
1500
1542
  network: solanaNetwork
1501
1543
  };
1502
1544
  }
@@ -1506,16 +1548,18 @@ var AbcWaasClient = class {
1506
1548
  */
1507
1549
  async getSolanaAddress(publicKey, network) {
1508
1550
  const url = `${this.baseURL}/wapi/v2/solana/wallet/getAddress`;
1551
+ const body = new URLSearchParams({
1552
+ network,
1553
+ publicKey
1554
+ }).toString();
1509
1555
  const response = await fetch(url, {
1510
1556
  method: "POST",
1511
1557
  headers: {
1512
1558
  ...DEFAULT_HEADERS,
1559
+ // Contains 'Content-Type': 'application/x-www-form-urlencoded'
1513
1560
  ...this.accessToken ? { Authorization: `Bearer ${this.accessToken}` } : {}
1514
1561
  },
1515
- body: JSON.stringify({
1516
- network,
1517
- publicKey
1518
- })
1562
+ body
1519
1563
  });
1520
1564
  const data = await response.json();
1521
1565
  if (!response.ok || data.status !== "success") {
@@ -1536,16 +1580,22 @@ var AbcWaasClient = class {
1536
1580
  const response = await fetch(url, {
1537
1581
  method: "POST",
1538
1582
  headers: {
1539
- ...DEFAULT_HEADERS,
1583
+ "Content-Type": "application/json",
1584
+ Accept: "application/json",
1540
1585
  ...this.accessToken ? { Authorization: `Bearer ${this.accessToken}` } : {}
1541
1586
  },
1542
1587
  body: JSON.stringify({
1543
1588
  uid: params.uid,
1544
1589
  share_id: params.shareId,
1590
+ key_id: params.keyId,
1591
+ encrypted_share: params.encryptedShare,
1592
+ public_key: params.publicKey,
1545
1593
  message: params.message,
1546
1594
  // Hex-encoded transaction
1547
- password: params.pin
1595
+ password: params.pin,
1548
1596
  // PIN will be encrypted
1597
+ network: params.network
1598
+ // Required: 'solana' or 'solana_devnet'
1549
1599
  })
1550
1600
  });
1551
1601
  const data = await response.json();
@@ -1569,15 +1619,21 @@ var AbcWaasClient = class {
1569
1619
  const response = await fetch(url, {
1570
1620
  method: "POST",
1571
1621
  headers: {
1572
- ...DEFAULT_HEADERS,
1622
+ "Content-Type": "application/json",
1623
+ Accept: "application/json",
1573
1624
  ...this.accessToken ? { Authorization: `Bearer ${this.accessToken}` } : {}
1574
1625
  },
1575
1626
  body: JSON.stringify({
1576
1627
  uid: params.uid,
1577
1628
  share_id: params.shareId,
1629
+ key_id: params.keyId,
1630
+ encrypted_share: params.encryptedShare,
1631
+ public_key: params.publicKey,
1578
1632
  message: params.message,
1579
1633
  // Hex-encoded message
1580
- password: params.pin
1634
+ password: params.pin,
1635
+ network: params.network
1636
+ // Required: 'solana' or 'solana_devnet'
1581
1637
  })
1582
1638
  });
1583
1639
  const data = await response.json();
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  secure_default
4
- } from "./chunk-G2LI5MVX.js";
4
+ } from "./chunk-NDYGTKP5.js";
5
5
  import {
6
6
  calculateExpiryTimestamp,
7
7
  createAbcError,
@@ -10,7 +10,7 @@ import {
10
10
  parseApiError,
11
11
  removeFromStorage,
12
12
  saveToStorage
13
- } from "./chunk-UV5HHESJ.js";
13
+ } from "./chunk-TYUEB4VT.js";
14
14
  import {
15
15
  ABC_ENDPOINTS,
16
16
  DEFAULT_HEADERS,
@@ -38,6 +38,15 @@ var BaseApiClient = class {
38
38
  this.refreshToken = loadFromStorage("refresh_token" /* REFRESH_TOKEN */);
39
39
  this.expiresAt = loadFromStorage("expires_at" /* EXPIRES_AT */);
40
40
  }
41
+ /**
42
+ * Set tokens in client instance (useful when restoring from storage or state)
43
+ * Call this before making API requests if tokens are managed externally
44
+ */
45
+ setTokens(accessToken, refreshToken, expiresAt) {
46
+ this.accessToken = accessToken;
47
+ this.refreshToken = refreshToken;
48
+ this.expiresAt = expiresAt;
49
+ }
41
50
  /**
42
51
  * Save tokens to storage
43
52
  */
@@ -114,7 +123,7 @@ var BaseApiClient = class {
114
123
  const isProd = this.config.environment === "production";
115
124
  const headers = { ...DEFAULT_HEADERS };
116
125
  if (isProd) {
117
- headers["X-Client-Type"] = "Android";
126
+ headers["User-Agent"] = "Android";
118
127
  }
119
128
  const response = await fetch(
120
129
  `${talkenApiUrl}${ABC_ENDPOINTS.REFRESH_TOKEN}`,
@@ -176,7 +185,7 @@ var BaseApiClient = class {
176
185
  requestHeaders["Accept"] = "application/json";
177
186
  }
178
187
  if (this.config.environment === "production") {
179
- requestHeaders["X-Client-Type"] = "Android";
188
+ requestHeaders["User-Agent"] = "Android";
180
189
  }
181
190
  if (!skipAuth && this.accessToken) {
182
191
  requestHeaders.Authorization = `Bearer ${this.accessToken}`;
@@ -234,13 +243,15 @@ var BaseApiClient = class {
234
243
  }
235
244
  }
236
245
  if (!response.ok) {
237
- console.error("[BaseApiClient] \u274C API Error:", {
238
- url,
239
- method,
240
- status: response.status,
241
- statusText: response.statusText,
242
- data
243
- });
246
+ if (response.status !== 409) {
247
+ console.error("[BaseApiClient] \u274C API Error:", {
248
+ url,
249
+ method,
250
+ status: response.status,
251
+ statusText: response.statusText,
252
+ data
253
+ });
254
+ }
244
255
  throw parseApiError({
245
256
  response: {
246
257
  status: response.status,
@@ -250,11 +261,13 @@ var BaseApiClient = class {
250
261
  }
251
262
  return data;
252
263
  } catch (error) {
253
- console.error("[BaseApiClient] \u274C Request failed:", {
254
- url,
255
- method,
256
- error: error.message
257
- });
264
+ if (error.response?.status !== 409 && error.code !== "WALLET_ALREADY_EXISTS") {
265
+ console.error("[BaseApiClient] \u274C Request failed:", {
266
+ url,
267
+ method,
268
+ error: error.message
269
+ });
270
+ }
258
271
  if (error.name === "AbortError") {
259
272
  throw createAbcError(
260
273
  "NETWORK_ERROR" /* NETWORK_ERROR */,
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
  import {
3
3
  BaseApiClient
4
- } from "./chunk-KJHOGJ3A.js";
4
+ } from "./chunk-CNRPEVLV.js";
5
5
  import {
6
6
  createAbcError
7
- } from "./chunk-UV5HHESJ.js";
7
+ } from "./chunk-5RSS3SRV.js";
8
8
  import {
9
9
  DEFAULT_HEADERS
10
10
  } from "./chunk-VETRBBA2.js";
@@ -49,7 +49,10 @@ var BitcoinApi = class extends BaseApiClient {
49
49
  network,
50
50
  addressType
51
51
  );
52
- console.log("[BitcoinApi] \u2705 Bitcoin wallet generated:", addressResult);
52
+ console.log(
53
+ "[BitcoinApi] \u2705 Bitcoin wallet generated:",
54
+ `${addressResult.substring(0, 6)}...${addressResult.substring(addressResult.length - 4)}`
55
+ );
53
56
  return {
54
57
  uid: result.uid || "",
55
58
  sessionId: result.share_id,
@@ -100,7 +103,10 @@ var BitcoinApi = class extends BaseApiClient {
100
103
  network,
101
104
  addressType
102
105
  );
103
- console.log("[BitcoinApi] \u2705 Bitcoin wallet recovered:", addressResult);
106
+ console.log(
107
+ "[BitcoinApi] \u2705 Bitcoin wallet recovered:",
108
+ `${addressResult.substring(0, 6)}...${addressResult.substring(addressResult.length - 4)}`
109
+ );
104
110
  return {
105
111
  uid: result.uid || "",
106
112
  sessionId: result.share_id,
@@ -153,6 +159,10 @@ var BitcoinApi = class extends BaseApiClient {
153
159
  * @returns Array of UTXOs
154
160
  */
155
161
  async getUtxos(address, network) {
162
+ console.log(
163
+ "[BitcoinApi] \u{1F50D} Fetching UTXOs for:",
164
+ `${address.substring(0, 6)}...${address.substring(address.length - 4)}`
165
+ );
156
166
  const url = `${this.baseURL}/wapi/v2/bitcoin/utxo/list`;
157
167
  const params = new URLSearchParams({ network, address });
158
168
  console.log("[BitcoinApi] \u{1F50D} Fetching UTXOs for:", address);
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
  import {
3
3
  BaseApiClient
4
- } from "./chunk-KJHOGJ3A.js";
5
- import {
6
- createAbcError
7
- } from "./chunk-UV5HHESJ.js";
4
+ } from "./chunk-CNRPEVLV.js";
8
5
  import {
9
6
  getSolanaNetwork
10
7
  } from "./chunk-A7FIBI6X.js";
8
+ import {
9
+ createAbcError
10
+ } from "./chunk-5RSS3SRV.js";
11
11
  import {
12
12
  ABC_ENDPOINTS,
13
13
  DEFAULT_HEADERS