@talken/talkenkit 2.3.15 → 2.4.5

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 (195) 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/berasigWallet/berasigWallet.js +2 -2
  43. package/dist/wallets/walletConnectors/bifrostWallet/bifrostWallet.js +2 -2
  44. package/dist/wallets/walletConnectors/binanceWallet/binanceWallet.js +2 -2
  45. package/dist/wallets/walletConnectors/bitgetWallet/bitgetWallet.js +2 -2
  46. package/dist/wallets/walletConnectors/bybitWallet/bybitWallet.js +2 -2
  47. package/dist/wallets/walletConnectors/chunk-2GNL2GNB.js +154 -0
  48. package/dist/wallets/walletConnectors/{chunk-5DDAV4BZ.js → chunk-2NAY6X3G.js} +1 -1
  49. package/dist/wallets/walletConnectors/{chunk-ZIYAL44B.js → chunk-2NVHWZUE.js} +1 -1
  50. package/dist/wallets/walletConnectors/{chunk-LENPUTNQ.js → chunk-36J4NGMW.js} +12 -20
  51. package/dist/wallets/walletConnectors/{chunk-4MF5RSML.js → chunk-3CTIR723.js} +1 -1
  52. package/dist/wallets/walletConnectors/{chunk-AVPBPELO.js → chunk-3WLUH24A.js} +10 -10
  53. package/dist/wallets/walletConnectors/{chunk-YEHCPL4R.js → chunk-53LPTQ6J.js} +2 -2
  54. package/dist/wallets/walletConnectors/{chunk-GXGRTWJM.js → chunk-5CZGFT24.js} +10 -10
  55. package/dist/wallets/walletConnectors/{chunk-BJHGC546.js → chunk-5JIPWC5W.js} +12 -24
  56. package/dist/wallets/walletConnectors/{chunk-4N6JD6LY.js → chunk-5LPD35BU.js} +9 -9
  57. package/dist/wallets/walletConnectors/{chunk-UV5HHESJ.js → chunk-5RSS3SRV.js} +29 -12
  58. package/dist/wallets/walletConnectors/{chunk-3ZE57J3R.js → chunk-64TRAZ6V.js} +1 -1
  59. package/dist/wallets/walletConnectors/{chunk-KKPINUPY.js → chunk-6BAXMYSN.js} +2 -2
  60. package/dist/wallets/walletConnectors/{chunk-PPIFAF7N.js → chunk-7MOCKWA7.js} +65 -19
  61. package/dist/wallets/walletConnectors/{chunk-75RN2RLT.js → chunk-7TYZCXIR.js} +12 -12
  62. package/dist/wallets/walletConnectors/{chunk-HVPQO6ZG.js → chunk-7UIXGYOT.js} +5 -20
  63. package/dist/wallets/walletConnectors/{chunk-BL57XWJY.js → chunk-7UQQKSV7.js} +1 -1
  64. package/dist/wallets/walletConnectors/{chunk-FGBDWBWQ.js → chunk-AIKTQX6B.js} +2 -2
  65. package/dist/wallets/walletConnectors/chunk-AO24PU7X.js +104 -0
  66. package/dist/wallets/walletConnectors/{chunk-4YJWX7I3.js → chunk-APLOMU6R.js} +1 -1
  67. package/dist/wallets/walletConnectors/chunk-AZAV5URB.js +267 -0
  68. package/dist/wallets/walletConnectors/chunk-BO6OI7XU.js +63 -0
  69. package/dist/wallets/walletConnectors/{chunk-P2GV6NQG.js → chunk-BV3DCJXA.js} +12 -20
  70. package/dist/wallets/walletConnectors/{chunk-KJHOGJ3A.js → chunk-CNRPEVLV.js} +16 -4
  71. package/dist/wallets/walletConnectors/{chunk-OC2O4BHA.js → chunk-COPAK5YT.js} +2 -2
  72. package/dist/wallets/walletConnectors/chunk-CZVBS7QE.js +436 -0
  73. package/dist/wallets/walletConnectors/{chunk-QKUFFUM5.js → chunk-DA5J6GHZ.js} +14 -4
  74. package/dist/wallets/walletConnectors/chunk-FMDSZ2CE.js +63 -0
  75. package/dist/wallets/walletConnectors/{chunk-5CCU7PNU.js → chunk-FQTLYAWT.js} +2 -2
  76. package/dist/wallets/walletConnectors/chunk-FUOQBONI.js +47 -0
  77. package/dist/wallets/walletConnectors/chunk-FWCS4HBL.js +1695 -0
  78. package/dist/wallets/walletConnectors/chunk-FY7UDC3W.js +63 -0
  79. package/dist/wallets/walletConnectors/chunk-GZUP3M2X.js +63 -0
  80. package/dist/wallets/walletConnectors/chunk-H52W4ZFE.js +272 -0
  81. package/dist/wallets/walletConnectors/chunk-HEQZLRTH.js +309 -0
  82. package/dist/wallets/walletConnectors/{chunk-ISAMATTH.js → chunk-HFC4AK72.js} +2 -2
  83. package/dist/wallets/walletConnectors/chunk-HKIV22NT.js +63 -0
  84. package/dist/wallets/walletConnectors/chunk-HLC24OGS.js +63 -0
  85. package/dist/wallets/walletConnectors/{chunk-5TDZSXJ4.js → chunk-HTD7IRKM.js} +2 -2
  86. package/dist/wallets/walletConnectors/chunk-IQJWD4IN.js +269 -0
  87. package/dist/wallets/walletConnectors/chunk-IZUAJRJ4.js +311 -0
  88. package/dist/wallets/walletConnectors/{chunk-NX5MQHSQ.js → chunk-J6VUIOSE.js} +23 -2
  89. package/dist/wallets/walletConnectors/chunk-JH2SJPEY.js +63 -0
  90. package/dist/wallets/walletConnectors/chunk-JQ57SCY6.js +313 -0
  91. package/dist/wallets/walletConnectors/{chunk-F5P2INHS.js → chunk-KB7OGAUC.js} +14 -4
  92. package/dist/wallets/walletConnectors/chunk-KXEAFXAA.js +226 -0
  93. package/dist/wallets/walletConnectors/{chunk-JR2C4XXX.js → chunk-LLWI2QWC.js} +74 -18
  94. package/dist/wallets/walletConnectors/{chunk-H2MX4NAL.js → chunk-LQ2U33WM.js} +29 -16
  95. package/dist/wallets/walletConnectors/{chunk-BNSBK5PQ.js → chunk-M7KXDTM6.js} +14 -4
  96. package/dist/wallets/walletConnectors/{chunk-CYYBGUSO.js → chunk-MKAXMNZM.js} +4 -4
  97. package/dist/wallets/walletConnectors/chunk-MNRRJSFM.js +272 -0
  98. package/dist/wallets/walletConnectors/chunk-MPFE6GP2.js +306 -0
  99. package/dist/wallets/walletConnectors/{chunk-EEY5CXKO.js → chunk-MPNSYA4E.js} +2 -2
  100. package/dist/wallets/walletConnectors/chunk-NDLQSZ2F.js +63 -0
  101. package/dist/wallets/walletConnectors/{chunk-G2LI5MVX.js → chunk-NDYGTKP5.js} +0 -2
  102. package/dist/wallets/walletConnectors/chunk-NLBRSN6Q.js +63 -0
  103. package/dist/wallets/walletConnectors/{chunk-BSBRWKNG.js → chunk-NPF7NOA7.js} +69 -23
  104. package/dist/wallets/walletConnectors/{chunk-7DEZCGNV.js → chunk-NUJ6VD2U.js} +82 -16
  105. package/dist/wallets/walletConnectors/chunk-PSRATZTN.js +47 -0
  106. package/dist/wallets/walletConnectors/{chunk-MZOFZ2NQ.js → chunk-QCIIXMAZ.js} +2 -2
  107. package/dist/wallets/walletConnectors/{chunk-GHLLVM7O.js → chunk-RCI7QYCZ.js} +82 -18
  108. package/dist/wallets/walletConnectors/{chunk-QI2VB7LL.js → chunk-RHQXGWIW.js} +82 -16
  109. package/dist/wallets/walletConnectors/chunk-RPOLRZ4N.js +276 -0
  110. package/dist/wallets/walletConnectors/{chunk-5UEBEMEE.js → chunk-RQIUWXDF.js} +2 -1
  111. package/dist/wallets/walletConnectors/{chunk-RLR4Y5WO.js → chunk-SCD35IRD.js} +4 -0
  112. package/dist/wallets/walletConnectors/{chunk-EGOIRXTV.js → chunk-SOCVQ5N3.js} +2 -2
  113. package/dist/wallets/walletConnectors/chunk-TTRSCIGA.js +194 -0
  114. package/dist/wallets/walletConnectors/chunk-TYUEB4VT.js +477 -0
  115. package/dist/wallets/walletConnectors/{chunk-WTYSUOKN.js → chunk-UZXTNCDO.js} +17 -5
  116. package/dist/wallets/walletConnectors/chunk-V33I7JGZ.js +156 -0
  117. package/dist/wallets/walletConnectors/chunk-V4Q3GNBX.js +484 -0
  118. package/dist/wallets/walletConnectors/chunk-VCCTIYUJ.js +63 -0
  119. package/dist/wallets/walletConnectors/chunk-VGOISIH3.js +223 -0
  120. package/dist/wallets/walletConnectors/chunk-XFGVJOQL.js +223 -0
  121. package/dist/wallets/walletConnectors/chunk-XIOPKI2F.js +47 -0
  122. package/dist/wallets/walletConnectors/{chunk-O6EAIC4G.js → chunk-XJ4SP35I.js} +4 -1
  123. package/dist/wallets/walletConnectors/chunk-XKGUE56S.js +226 -0
  124. package/dist/wallets/walletConnectors/chunk-XQEAXENJ.js +63 -0
  125. package/dist/wallets/walletConnectors/{chunk-RY4RAB3D.js → chunk-YCZ4CZQ6.js} +106 -66
  126. package/dist/wallets/walletConnectors/chunk-Z2DC2J7S.js +345 -0
  127. package/dist/wallets/walletConnectors/chunk-Z2K3RHWK.js +47 -0
  128. package/dist/wallets/walletConnectors/chunk-ZASMSEC3.js +63 -0
  129. package/dist/wallets/walletConnectors/{chunk-G7PEFBL6.js → chunk-ZNBWRE3K.js} +2 -2
  130. package/dist/wallets/walletConnectors/chunk-ZNVFM2J2.js +156 -0
  131. package/dist/wallets/walletConnectors/chunk-ZQLQELFC.js +309 -0
  132. package/dist/wallets/walletConnectors/chunk-ZR7CEF64.js +63 -0
  133. package/dist/wallets/walletConnectors/chunk-ZSGFDK77.js +63 -0
  134. package/dist/wallets/walletConnectors/chunk-ZUIY2TRJ.js +1695 -0
  135. package/dist/wallets/walletConnectors/clvWallet/clvWallet.js +2 -2
  136. package/dist/wallets/walletConnectors/coin98Wallet/coin98Wallet.js +2 -2
  137. package/dist/wallets/walletConnectors/coreWallet/coreWallet.js +2 -2
  138. package/dist/wallets/walletConnectors/foxWallet/foxWallet.js +2 -2
  139. package/dist/wallets/walletConnectors/frontierWallet/frontierWallet.js +2 -2
  140. package/dist/wallets/walletConnectors/gateWallet/gateWallet.js +2 -2
  141. package/dist/wallets/walletConnectors/index.js +55 -55
  142. package/dist/wallets/walletConnectors/iopayWallet/iopayWallet.js +2 -2
  143. package/dist/wallets/walletConnectors/kaiaWallet/kaiaWallet.js +2 -2
  144. package/dist/wallets/walletConnectors/kaikasWallet/kaikasWallet.js +2 -2
  145. package/dist/wallets/walletConnectors/metaMaskWallet/metaMaskWallet.js +2 -2
  146. package/dist/wallets/walletConnectors/okxWallet/okxWallet.js +2 -2
  147. package/dist/wallets/walletConnectors/rainbowWallet/rainbowWallet.js +2 -2
  148. package/dist/wallets/walletConnectors/roninWallet/roninWallet.js +2 -2
  149. package/dist/wallets/walletConnectors/safepalWallet/safepalWallet.js +2 -2
  150. package/dist/wallets/walletConnectors/subWallet/subWallet.js +2 -2
  151. package/dist/wallets/walletConnectors/tokenPocketWallet/tokenPocketWallet.js +2 -2
  152. package/dist/wallets/walletConnectors/trustWallet/trustWallet.js +2 -2
  153. package/dist/wallets/walletConnectors/zealWallet/zealWallet.js +2 -2
  154. package/dist/wallets/walletConnectors/zerionWallet/zerionWallet.js +2 -2
  155. package/package.json +12 -11
  156. package/LICENSE +0 -9
  157. package/dist/solana/hooks/index.d.ts +0 -12
  158. package/dist/solana/hooks/useSolanaAccount.d.ts +0 -98
  159. package/dist/solana/hooks/useSolanaConnection.d.ts +0 -72
  160. package/dist/solana/hooks/useSolanaSendTransaction.d.ts +0 -98
  161. package/dist/solana/hooks/useSolanaSignMessage.d.ts +0 -82
  162. package/dist/wallets/walletConnectors/abcWallet/abcSolProvider.d.ts +0 -45
  163. package/dist/wallets/walletConnectors/abcWallet/abcSolProvider.js +0 -10
  164. package/dist/wallets/walletConnectors/abcWallet/abcSolanaConnector.d.ts +0 -115
  165. package/dist/wallets/walletConnectors/abcWallet/abcSolanaConnector.js +0 -12
  166. package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.d.ts +0 -143
  167. package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.js +0 -13
  168. package/dist/wallets/walletConnectors/abcWallet/abcSolanaWallet.d.ts +0 -18
  169. package/dist/wallets/walletConnectors/abcWallet/abcSolanaWallet.js +0 -15
  170. package/dist/wallets/walletConnectors/chunk-2XZBPMQJ.js +0 -39
  171. package/dist/wallets/walletConnectors/chunk-3SVPZCA6.js +0 -71
  172. package/dist/wallets/walletConnectors/chunk-3ZZXE7EL.js +0 -39
  173. package/dist/wallets/walletConnectors/chunk-5QEUEPNY.js +0 -94
  174. package/dist/wallets/walletConnectors/chunk-75W4VLFA.js +0 -482
  175. package/dist/wallets/walletConnectors/chunk-B6JLYR3I.js +0 -66
  176. package/dist/wallets/walletConnectors/chunk-FROV5VDF.js +0 -346
  177. package/dist/wallets/walletConnectors/chunk-HKWBR5B7.js +0 -102
  178. package/dist/wallets/walletConnectors/chunk-K4APJ4PE.js +0 -96
  179. package/dist/wallets/walletConnectors/chunk-LJ2B47VF.js +0 -108
  180. package/dist/wallets/walletConnectors/chunk-LXINMUQC.js +0 -186
  181. package/dist/wallets/walletConnectors/chunk-MORUEOYX.js +0 -76
  182. package/dist/wallets/walletConnectors/chunk-MQTXA63X.js +0 -27
  183. package/dist/wallets/walletConnectors/chunk-N4FOYXQD.js +0 -63
  184. package/dist/wallets/walletConnectors/chunk-NEXFU6BZ.js +0 -39
  185. package/dist/wallets/walletConnectors/chunk-PMZJGS7X.js +0 -73
  186. package/dist/wallets/walletConnectors/chunk-QEHZXKRF.js +0 -39
  187. package/dist/wallets/walletConnectors/chunk-T6KJZAPR.js +0 -47
  188. package/dist/wallets/walletConnectors/chunk-UBCMBPX3.js +0 -58
  189. package/dist/wallets/walletConnectors/chunk-UGQXI3RN.js +0 -284
  190. package/dist/wallets/walletConnectors/chunk-WZZVA3LW.js +0 -101
  191. package/dist/wallets/walletConnectors/chunk-X4WUD7PF.js +0 -63
  192. package/dist/wallets/walletConnectors/chunk-XOQNQKZE.js +0 -98
  193. package/dist/wallets/walletConnectors/chunk-XPSCFUX6.js +0 -372
  194. package/dist/wallets/walletConnectors/chunk-Y3LWEDF6.js +0 -63
  195. package/dist/wallets/walletConnectors/chunk-ZJ6OFFD5.js +0 -95
@@ -1,15 +1,16 @@
1
1
  "use client";
2
2
  import {
3
3
  BaseApiClient
4
- } from "./chunk-H2MX4NAL.js";
4
+ } from "./chunk-J6VUIOSE.js";
5
5
  import {
6
6
  getSolanaNetwork
7
7
  } from "./chunk-A7FIBI6X.js";
8
8
  import {
9
9
  createAbcError
10
- } from "./chunk-UV5HHESJ.js";
10
+ } from "./chunk-5RSS3SRV.js";
11
11
 
12
12
  // src/wallets/walletConnectors/abcWallet/api/SolanaApi.ts
13
+ import { PublicKey } from "@solana/web3.js";
13
14
  var SolanaApi = class extends BaseApiClient {
14
15
  /**
15
16
  * Generate Solana wallet (Ed25519)
@@ -21,25 +22,34 @@ var SolanaApi = class extends BaseApiClient {
21
22
  */
22
23
  async generateSolanaWallet(pin, isRecover = false) {
23
24
  const endpoint = `/v3/wallet/${isRecover ? "recover" : "generate"}`;
25
+ const network = getSolanaNetwork();
24
26
  const response = await this.request(endpoint, {
25
27
  method: "POST",
26
28
  contentType: "json",
27
29
  body: {
28
30
  curve: "ed25519",
29
31
  password: pin,
30
- network: "solana"
32
+ network
31
33
  }
32
34
  });
33
- if (response.status !== "success" || !response.result) {
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 {
34
41
  throw createAbcError(
35
42
  "WALLET_NOT_FOUND" /* WALLET_NOT_FOUND */,
36
43
  `Failed to ${isRecover ? "recover" : "generate"} Solana wallet`,
37
44
  response
38
45
  );
39
46
  }
40
- const result = response.result;
41
- const address = this.deriveAddressFromPublicKey(result.public_key);
42
- const network = getSolanaNetwork();
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
+ }
43
53
  return {
44
54
  uid: result.uid || "",
45
55
  sessionId: result.share_id,
@@ -47,9 +57,13 @@ var SolanaApi = class extends BaseApiClient {
47
57
  publicKey: result.public_key,
48
58
  address,
49
59
  keyId: result.key_id || result.share_id,
60
+ // API returns snake_case key_id
50
61
  encryptedShare: result.encrypted_share || "",
62
+ // API returns snake_case encrypted_share
51
63
  secretStore: result.secret_store || "",
64
+ // API returns snake_case secret_store
52
65
  network
66
+ // Use network from request (already has correct value)
53
67
  };
54
68
  }
55
69
  /**
@@ -63,32 +77,46 @@ var SolanaApi = class extends BaseApiClient {
63
77
  }
64
78
  /**
65
79
  * Derive Solana address from Ed25519 public key
66
- * Converts hex public key to base58-encoded Solana address
67
- *
68
80
  * @param publicKey - Ed25519 public key (hex)
69
81
  * @returns Solana address (base58)
70
82
  */
71
83
  deriveAddressFromPublicKey(publicKey) {
72
84
  const cleanKey = publicKey.startsWith("0x") ? publicKey.slice(2) : publicKey;
73
- return cleanKey;
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
+ }
74
95
  }
75
96
  /**
76
97
  * Sign Solana transaction with Ed25519
77
98
  * Reference: /v3/wallet/sign API requires only 5 fields
78
99
  */
79
100
  async signSolanaTransaction(params) {
101
+ const network = getSolanaNetwork();
80
102
  const response = await this.request("/v3/wallet/sign", {
81
103
  method: "POST",
82
104
  contentType: "json",
83
105
  body: {
84
106
  curve: "ed25519",
107
+ network,
85
108
  key_id: params.keyId,
86
109
  encrypted_share: params.encryptedShare,
87
110
  secret_store: params.secretStore || "",
88
111
  message: params.message
89
112
  }
90
113
  });
91
- if (response.status !== "success" || !response.result?.signature) {
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 {
92
120
  throw createAbcError(
93
121
  "SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
94
122
  "Failed to sign Solana transaction",
@@ -96,7 +124,7 @@ var SolanaApi = class extends BaseApiClient {
96
124
  );
97
125
  }
98
126
  return {
99
- signature: response.result.signature
127
+ signature
100
128
  };
101
129
  }
102
130
  /**
@@ -104,18 +132,25 @@ var SolanaApi = class extends BaseApiClient {
104
132
  * Reference: /v3/wallet/sign API requires only 5 fields
105
133
  */
106
134
  async signSolanaMessage(params) {
135
+ const network = getSolanaNetwork();
107
136
  const response = await this.request("/v3/wallet/sign", {
108
137
  method: "POST",
109
138
  contentType: "json",
110
139
  body: {
111
140
  curve: "ed25519",
141
+ network,
112
142
  key_id: params.keyId,
113
143
  encrypted_share: params.encryptedShare,
114
144
  secret_store: params.secretStore || "",
115
145
  message: params.message
116
146
  }
117
147
  });
118
- if (response.status !== "success" || !response.result?.signature) {
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 {
119
154
  throw createAbcError(
120
155
  "SIGNATURE_FAILED" /* SIGNATURE_FAILED */,
121
156
  "Failed to sign Solana message",
@@ -123,7 +158,36 @@ var SolanaApi = class extends BaseApiClient {
123
158
  );
124
159
  }
125
160
  return {
126
- signature: response.result.signature
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("/wapi/v2/solana/tx/generateTransferSOLTransaction", {
170
+ method: "POST",
171
+ contentType: "json",
172
+ body: {
173
+ network: params.network,
174
+ amount: params.amount,
175
+ fromAddress: params.fromAddress,
176
+ toAddress: params.toAddress,
177
+ feePayerAddress: params.feePayerAddress
178
+ }
179
+ });
180
+ const responseData = response;
181
+ const serializedTx = responseData.data?.serialized_tx || response.status === "success" && response.result?.data?.serialized_tx;
182
+ if (!serializedTx) {
183
+ throw createAbcError(
184
+ "NETWORK_ERROR" /* NETWORK_ERROR */,
185
+ "Failed to generate Solana transaction",
186
+ response
187
+ );
188
+ }
189
+ return {
190
+ serialized_tx: serializedTx
127
191
  };
128
192
  }
129
193
  /**
@@ -139,7 +203,9 @@ var SolanaApi = class extends BaseApiClient {
139
203
  signatures: params.signatures
140
204
  }
141
205
  });
142
- if (response.status !== "success" || !response.result?.data) {
206
+ const responseData = response;
207
+ const txHash = responseData.data || response.status === "success" && response.result?.data;
208
+ if (!txHash || typeof txHash !== "string") {
143
209
  throw createAbcError(
144
210
  "NETWORK_ERROR" /* NETWORK_ERROR */,
145
211
  "Failed to send Solana transaction",
@@ -147,7 +213,7 @@ var SolanaApi = class extends BaseApiClient {
147
213
  );
148
214
  }
149
215
  return {
150
- txHash: response.result.data
216
+ txHash
151
217
  };
152
218
  }
153
219
  };
@@ -0,0 +1,276 @@
1
+ "use client";
2
+ import {
3
+ createAbcEvmProvider
4
+ } from "./chunk-2NVHWZUE.js";
5
+ import {
6
+ createAbcWaasClient
7
+ } from "./chunk-FWCS4HBL.js";
8
+ import {
9
+ setGlobalDefaultBitcoinNetwork,
10
+ setGlobalDefaultChainId,
11
+ setGlobalDefaultSolanaNetwork
12
+ } from "./chunk-A7FIBI6X.js";
13
+ import {
14
+ clearAuthState,
15
+ clearEncryptedTokens,
16
+ clearStorage,
17
+ loadAuthState,
18
+ loadFromStorage,
19
+ saveAuthState
20
+ } from "./chunk-5RSS3SRV.js";
21
+
22
+ // src/wallets/walletConnectors/abcWallet/abcConnector.ts
23
+ import { createConnector } from "wagmi";
24
+ function abcConnector(options) {
25
+ const { config } = options;
26
+ if (config.defaultChainId) {
27
+ setGlobalDefaultChainId(config.defaultChainId);
28
+ }
29
+ if (config.defaultSolanaNetwork) {
30
+ setGlobalDefaultSolanaNetwork(config.defaultSolanaNetwork);
31
+ }
32
+ if (config.defaultBitcoinNetwork) {
33
+ setGlobalDefaultBitcoinNetwork(config.defaultBitcoinNetwork);
34
+ }
35
+ return createConnector((wagmiConfig) => {
36
+ const client = createAbcWaasClient(config);
37
+ const provider = createAbcEvmProvider(client);
38
+ let accountsChangedHandler;
39
+ let chainChangedHandler;
40
+ let disconnectHandler;
41
+ return {
42
+ id: "abc",
43
+ name: "ABC Wallet",
44
+ type: "abc",
45
+ /**
46
+ * Connect wallet
47
+ */
48
+ async connect() {
49
+ try {
50
+ const authState = loadAuthState();
51
+ if (!authState || !authState.isAuthenticated || !authState.wallet) {
52
+ throw new Error("ABC_LOGIN_REQUIRED");
53
+ }
54
+ provider.setWallet(authState.wallet);
55
+ if (authState.accessToken && authState.refreshToken && authState.expiresAt) {
56
+ client.setTokens(
57
+ authState.accessToken,
58
+ authState.refreshToken,
59
+ authState.expiresAt
60
+ );
61
+ }
62
+ const accounts = await provider.request({
63
+ method: "eth_requestAccounts"
64
+ });
65
+ const currentChainId = await provider.request({
66
+ method: "eth_chainId"
67
+ });
68
+ if (accountsChangedHandler) {
69
+ provider.removeListener("accountsChanged", accountsChangedHandler);
70
+ }
71
+ accountsChangedHandler = (accounts2) => {
72
+ wagmiConfig.emitter.emit("change", {
73
+ accounts: accounts2
74
+ });
75
+ };
76
+ provider.on("accountsChanged", accountsChangedHandler);
77
+ if (chainChangedHandler) {
78
+ provider.removeListener("chainChanged", chainChangedHandler);
79
+ }
80
+ chainChangedHandler = (chainId) => {
81
+ wagmiConfig.emitter.emit("change", {
82
+ chainId: Number(chainId)
83
+ });
84
+ };
85
+ provider.on("chainChanged", chainChangedHandler);
86
+ if (disconnectHandler) {
87
+ provider.removeListener("disconnect", disconnectHandler);
88
+ }
89
+ disconnectHandler = () => {
90
+ wagmiConfig.emitter.emit("disconnect");
91
+ this.onDisconnect();
92
+ };
93
+ provider.on("disconnect", disconnectHandler);
94
+ wagmiConfig.emitter.emit("connect", {
95
+ accounts,
96
+ chainId: Number(currentChainId)
97
+ });
98
+ return {
99
+ accounts,
100
+ chainId: Number(currentChainId)
101
+ };
102
+ } catch (error) {
103
+ console.error("\u274C ABC Connector connect() failed:", {
104
+ message: error.message,
105
+ code: error.code,
106
+ error
107
+ });
108
+ if (error.message === "ABC_LOGIN_REQUIRED") {
109
+ throw error;
110
+ }
111
+ throw error;
112
+ }
113
+ },
114
+ /**
115
+ * Disconnect wallet
116
+ */
117
+ async disconnect() {
118
+ if (accountsChangedHandler) {
119
+ provider.removeListener("accountsChanged", accountsChangedHandler);
120
+ accountsChangedHandler = void 0;
121
+ }
122
+ if (chainChangedHandler) {
123
+ provider.removeListener("chainChanged", chainChangedHandler);
124
+ chainChangedHandler = void 0;
125
+ }
126
+ if (disconnectHandler) {
127
+ provider.removeListener("disconnect", disconnectHandler);
128
+ disconnectHandler = void 0;
129
+ }
130
+ provider.clearWallet();
131
+ await client.logout();
132
+ let savedPinHash = null;
133
+ let savedEmail = null;
134
+ if (typeof window !== "undefined") {
135
+ savedPinHash = localStorage.getItem("talkenkit_abc_pin_hash");
136
+ savedEmail = localStorage.getItem("talkenkit_abc_saved_email");
137
+ }
138
+ clearAuthState();
139
+ clearEncryptedTokens();
140
+ if (typeof window !== "undefined") {
141
+ localStorage.removeItem("talkenkit_abc_enc_salt");
142
+ localStorage.removeItem("talkenkit_abc_enc_tokens");
143
+ if (savedPinHash) {
144
+ localStorage.setItem("talkenkit_abc_pin_hash", savedPinHash);
145
+ }
146
+ if (savedEmail) {
147
+ localStorage.setItem("talkenkit_abc_saved_email", savedEmail);
148
+ }
149
+ }
150
+ console.log("\u2705 ABC Wallet disconnected (PIN preserved)");
151
+ },
152
+ /**
153
+ * Get accounts
154
+ */
155
+ async getAccounts() {
156
+ const accounts = await provider.request({
157
+ method: "eth_accounts"
158
+ });
159
+ return accounts.map((account) => account);
160
+ },
161
+ /**
162
+ * Get chain ID
163
+ */
164
+ async getChainId() {
165
+ const chainId = await provider.request({
166
+ method: "eth_chainId"
167
+ });
168
+ return Number(chainId);
169
+ },
170
+ /**
171
+ * Get provider
172
+ */
173
+ async getProvider() {
174
+ return provider;
175
+ },
176
+ /**
177
+ * Check if authorized (has valid session)
178
+ * Auto-refreshes access token if expired but refresh token is valid
179
+ */
180
+ async isAuthorized() {
181
+ try {
182
+ const authState = loadAuthState();
183
+ if (!authState || !authState.isAuthenticated) {
184
+ return false;
185
+ }
186
+ if (!authState.wallet) {
187
+ return false;
188
+ }
189
+ if (client.isAuthenticated()) {
190
+ return true;
191
+ }
192
+ const refreshToken = loadFromStorage(
193
+ "refresh_token" /* REFRESH_TOKEN */
194
+ );
195
+ if (!refreshToken) {
196
+ clearStorage();
197
+ return false;
198
+ }
199
+ try {
200
+ await client.refreshTokens(refreshToken);
201
+ const updatedState = loadAuthState();
202
+ return updatedState?.isAuthenticated ?? false;
203
+ } catch (error) {
204
+ console.error("[AbcConnector] Token refresh failed:", error);
205
+ clearStorage();
206
+ return false;
207
+ }
208
+ } catch (error) {
209
+ console.error(
210
+ "[AbcConnector] Unexpected error in isAuthorized:",
211
+ error
212
+ );
213
+ return false;
214
+ }
215
+ },
216
+ /**
217
+ * Switch chain
218
+ */
219
+ async switchChain({ chainId }) {
220
+ await provider.request({
221
+ method: "wallet_switchEthereumChain",
222
+ params: [{ chainId: `0x${chainId.toString(16)}` }]
223
+ });
224
+ const newChainId = await this.getChainId();
225
+ const authState = loadAuthState();
226
+ if (authState?.wallet) {
227
+ authState.wallet.chainId = newChainId;
228
+ saveAuthState(authState);
229
+ }
230
+ return wagmiConfig.chains.find((x) => x.id === chainId) ?? {
231
+ id: chainId,
232
+ name: `Chain ${chainId}`,
233
+ nativeCurrency: {
234
+ name: "Ether",
235
+ decimals: 18,
236
+ symbol: "ETH"
237
+ },
238
+ rpcUrls: {
239
+ default: { http: [""] }
240
+ }
241
+ };
242
+ },
243
+ /**
244
+ * Handle accounts changed
245
+ */
246
+ onAccountsChanged(accounts) {
247
+ if (accounts.length === 0) {
248
+ this.onDisconnect();
249
+ } else {
250
+ wagmiConfig.emitter.emit("change", {
251
+ accounts
252
+ });
253
+ }
254
+ },
255
+ /**
256
+ * Handle chain changed
257
+ */
258
+ onChainChanged(chain) {
259
+ const chainId = Number(chain);
260
+ wagmiConfig.emitter.emit("change", { chainId });
261
+ },
262
+ /**
263
+ * Handle disconnect
264
+ */
265
+ onDisconnect(_error) {
266
+ provider.clearWallet();
267
+ clearAuthState();
268
+ wagmiConfig.emitter.emit("disconnect");
269
+ }
270
+ };
271
+ });
272
+ }
273
+
274
+ export {
275
+ abcConnector
276
+ };
@@ -29,11 +29,12 @@ var AbcErrorCode = /* @__PURE__ */ ((AbcErrorCode2) => {
29
29
  return AbcErrorCode2;
30
30
  })(AbcErrorCode || {});
31
31
  var AbcError = class extends Error {
32
- constructor(code, message, details) {
32
+ constructor(code, message, details, statusCode) {
33
33
  super(message);
34
34
  this.name = "AbcError";
35
35
  this.code = code;
36
36
  this.details = details;
37
+ this.statusCode = statusCode;
37
38
  }
38
39
  };
39
40
 
@@ -106,6 +106,10 @@ var AbcBitcoinProvider = class extends EventEmitter {
106
106
  address: wallet.address,
107
107
  network: this.network.type
108
108
  });
109
+ console.log(
110
+ "[BitcoinProvider] \u2705 Wallet connected:",
111
+ `${wallet.address.substring(0, 6)}...${wallet.address.substring(wallet.address.length - 4)}`
112
+ );
109
113
  }
110
114
  /**
111
115
  * Clear wallet (disconnect)
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
  import {
3
3
  BaseApiClient
4
- } from "./chunk-NX5MQHSQ.js";
4
+ } from "./chunk-J6VUIOSE.js";
5
5
  import {
6
6
  getSolanaNetwork
7
7
  } from "./chunk-A7FIBI6X.js";
8
8
  import {
9
9
  createAbcError
10
- } from "./chunk-UV5HHESJ.js";
10
+ } from "./chunk-5RSS3SRV.js";
11
11
  import {
12
12
  ABC_ENDPOINTS,
13
13
  DEFAULT_HEADERS