@talken/talkenkit 2.4.26 → 2.4.29

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 (55) hide show
  1. package/dist/abcWallet-TLGPQAMU.js +161 -0
  2. package/dist/chunk-MI7TNBED.js +5458 -0
  3. package/dist/hooks/useEstimateFee.d.ts +21 -0
  4. package/dist/hooks/useProfile.d.ts +1 -1
  5. package/dist/index.css +9 -1
  6. package/dist/index.d.ts +2 -1
  7. package/dist/index.js +113 -220
  8. package/dist/services/AbcAuthService.d.ts +0 -3
  9. package/dist/wallets/walletConnectors/abcWallet/abcBitcoinProvider.js +1 -1
  10. package/dist/wallets/walletConnectors/abcWallet/abcConnector.js +2 -2
  11. package/dist/wallets/walletConnectors/abcWallet/abcSolanaProvider.js +3 -3
  12. package/dist/wallets/walletConnectors/abcWallet/abcSolanaWalletAdapter.js +1 -1
  13. package/dist/wallets/walletConnectors/abcWallet/abcTronProvider.d.ts +1 -1
  14. package/dist/wallets/walletConnectors/abcWallet/abcWallet.js +3 -3
  15. package/dist/wallets/walletConnectors/abcWallet/api/TalkenApiClient.js +1 -1
  16. package/dist/wallets/walletConnectors/abcWallet/api/WalletscanApi.d.ts +1 -0
  17. package/dist/wallets/walletConnectors/abcWallet/api/WalletscanApi.js +3 -1
  18. package/dist/wallets/walletConnectors/abcWallet/api/index.js +4 -4
  19. package/dist/wallets/walletConnectors/abcWallet/index.js +8 -8
  20. package/dist/wallets/walletConnectors/berasigWallet/berasigWallet.js +2 -2
  21. package/dist/wallets/walletConnectors/bifrostWallet/bifrostWallet.js +2 -2
  22. package/dist/wallets/walletConnectors/binanceWallet/binanceWallet.js +2 -2
  23. package/dist/wallets/walletConnectors/bitgetWallet/bitgetWallet.js +2 -2
  24. package/dist/wallets/walletConnectors/bybitWallet/bybitWallet.js +2 -2
  25. package/dist/wallets/walletConnectors/chunk-3LF7FVL6.js +595 -0
  26. package/dist/wallets/walletConnectors/chunk-5RDUTGDR.js +54 -0
  27. package/dist/wallets/walletConnectors/chunk-6HBDJDNH.js +300 -0
  28. package/dist/wallets/walletConnectors/chunk-BHEVY4QY.js +827 -0
  29. package/dist/wallets/walletConnectors/chunk-FBJ5H6PM.js +300 -0
  30. package/dist/wallets/walletConnectors/chunk-IN3HEGZM.js +446 -0
  31. package/dist/wallets/walletConnectors/chunk-J3YPHDHM.js +827 -0
  32. package/dist/wallets/walletConnectors/chunk-NULM3THX.js +241 -0
  33. package/dist/wallets/walletConnectors/chunk-UPYPPBXD.js +1485 -0
  34. package/dist/wallets/walletConnectors/chunk-VMCIDCO5.js +54 -0
  35. package/dist/wallets/walletConnectors/clvWallet/clvWallet.js +2 -2
  36. package/dist/wallets/walletConnectors/coin98Wallet/coin98Wallet.js +2 -2
  37. package/dist/wallets/walletConnectors/coreWallet/coreWallet.js +2 -2
  38. package/dist/wallets/walletConnectors/foxWallet/foxWallet.js +2 -2
  39. package/dist/wallets/walletConnectors/frontierWallet/frontierWallet.js +2 -2
  40. package/dist/wallets/walletConnectors/gateWallet/gateWallet.js +2 -2
  41. package/dist/wallets/walletConnectors/index.js +75 -75
  42. package/dist/wallets/walletConnectors/iopayWallet/iopayWallet.js +2 -2
  43. package/dist/wallets/walletConnectors/kaiaWallet/kaiaWallet.js +2 -2
  44. package/dist/wallets/walletConnectors/kaikasWallet/kaikasWallet.js +2 -2
  45. package/dist/wallets/walletConnectors/metaMaskWallet/metaMaskWallet.js +2 -2
  46. package/dist/wallets/walletConnectors/okxWallet/okxWallet.js +2 -2
  47. package/dist/wallets/walletConnectors/rainbowWallet/rainbowWallet.js +2 -2
  48. package/dist/wallets/walletConnectors/roninWallet/roninWallet.js +2 -2
  49. package/dist/wallets/walletConnectors/safepalWallet/safepalWallet.js +2 -2
  50. package/dist/wallets/walletConnectors/subWallet/subWallet.js +2 -2
  51. package/dist/wallets/walletConnectors/tokenPocketWallet/tokenPocketWallet.js +2 -2
  52. package/dist/wallets/walletConnectors/trustWallet/trustWallet.js +2 -2
  53. package/dist/wallets/walletConnectors/zealWallet/zealWallet.js +2 -2
  54. package/dist/wallets/walletConnectors/zerionWallet/zerionWallet.js +2 -2
  55. package/package.json +1 -1
@@ -0,0 +1,21 @@
1
+ /**
2
+ * useEstimateFee — Unified fee estimation hook for all chains
3
+ *
4
+ * Provides a single interface to estimate transaction fees
5
+ * across EVM, Bitcoin, Solana, and Tron chains via talken-api.
6
+ */
7
+ export interface EstimateFeeParams {
8
+ chain: 'evm' | 'bitcoin' | 'solana' | 'tron';
9
+ network: string;
10
+ fromAddress: string;
11
+ toAddress: string;
12
+ amount: string;
13
+ tokenAddress?: string;
14
+ data?: string;
15
+ }
16
+ export interface EstimateFeeResult {
17
+ fee: string;
18
+ }
19
+ export declare function useEstimateFee(): {
20
+ estimateFee: (params: EstimateFeeParams) => Promise<EstimateFeeResult>;
21
+ };
@@ -18,6 +18,6 @@ export declare const createNativeBalanceQueryKey: (address?: Address, chainId?:
18
18
  export declare function useProfile({ address, includeBalance }: UseProfileParameters): {
19
19
  ensName: string | null | undefined;
20
20
  ensAvatar: import("viem").GetEnsAvatarReturnType | undefined;
21
- balance: ProfileBalance | undefined;
21
+ balance: ProfileBalance | null | undefined;
22
22
  };
23
23
  export {};
package/dist/index.css CHANGED
@@ -3710,7 +3710,7 @@
3710
3710
  display: none;
3711
3711
  }
3712
3712
 
3713
- /* vanilla-extract-css-ns:src/components/ConnectOptions/AbcWaasAuth/AbcWaasAuthSections.css.ts.vanilla.css?source=#H4sIAAAAAAAAE62US3LiMBCG95yil7CQyyYhELHLzBHmAsJq7B5kySXJPGZq7j5l2YBsqIRKsoFyS/369XUnaF+9y1L4OwGQ5GolThy2Co/rCYR/Jsli7sloDrlRTaXbk0LUHLK0Pq4n/yZJFyS7H0QoKjQjj5XjkKP2aFvzxliJlkNWH8EZRRL2wk4ZszuWG2WsYwVqtEK9hYuzqw+zQlLjzvkBaiEl6aIzxD/P3flG5LvCmkbLLjS/SVUZKdTb5VpI5q3QjrrG+8ThNqTJ3AEKh3HvfGvyxrED+ZJ0ECL2uc0o8laKH+3HLIozD66tdByyWCZtNLbfpvGKNF4N1+Z4V3ItLGofns9ozxz9QQ7ZSyfFe/3/wqOfXfy2oiJ14kC6REs+0plZKkrPYTV4/TnntRI5lkZJtKGNj5L9pGrQO5fkxEah7Lwb60zo3DOhlDmgDALUIid/4pAmi8j5aeBTGxpz9oBeF456birS7EDSlxzmvelRun83ztP2xHKjPWofH8Vc9c3cRerpK3I8dxxdAZj3sxJMB+xecGOUfIeKIaMALXis7H2zKNvi/uSHJTGk5CXcPIva13QOeamxXTuutKR3HNJvkf1SwHI8YHeQGe2T8xa5v3w+tcduFtKIxJgRoVTMx7cweOdllrw0e7RcGz+9kDcLaoVqtsZWHFwuFE6zJF3MRvSt1p/deUsuck97fCh1mrwuhs5fmJLVeErObz2YkkWaPrw6PR7bxFToiL3/BzkpX2UHAAA= */
3713
+ /* vanilla-extract-css-ns:src/components/ConnectOptions/AbcWaasAuth/AbcWaasAuthSections.css.ts.vanilla.css?source=#H4sIAAAAAAAAE61VW27bMBD89yn2MwZKg3LiPJi/tEfoBWhxbW1NkQJJxXaL3r0Q9TCluI6RBAZkiORyd2dnRgt0T8FnHP7MABT5SsujgI3Gw/MM4j9T5DAPZI2A3Oq6NM3OVlYCMl4dnmd/Z4v2kuz8JVLT1jAKWHoBOZqArlleW6fQCciqA3irScGrdDeMuR3LrbbOsy0adFK/xIPzUwxzUlHt+/wAlVSKzLZdSB937f5a5ruts7VR7dXiTarSKqlfhmMxWXDSeGob7xLH08AXSw8oPaa9i43Na8/2FAoyEYg05m1GmTdQfG9e5sk9yxjaQCcgS2Ey1mDzbuugyeBp4dScaEuupEMT4visCczTbxSQ3bdQXOr/Jx7CfIjbyJL0UQCZAh2FBGfmaFsEAY+j6S+FqLTMsbBaoYttvJfsB5Wj3oUiL9caVRtdO29j54FJre0eVQSgkjmFowC+WI2C2R7XOwpM1sFuSOtv8N8tUdhXdJcOxGnGMvqttT0wX0hl9wJ4/GWcNyx7j0tAxmPEr78q4CGwJs1FOg7jGBFxQmVYcc5bNjIyzNYBuE9guR1BWVmayu8KGg3y6uRUkmF7UqEQsOyWrhX9r9oH2hxZbk1AE9KttMtuxmeVdvsZlty18jrpYtlZSFzaY0vstdXqgljG0gVo9MiKLjZLsq3OG2L0zrF47uPJHtSupv7KocbGjX3hyOwE8C+BfSjgYeo7ZygzsdneXM978ofs/Y1PT5iYckRqnfLjSzh4ZjIPrVcIY8PNwLx5RCtWs7GuFOBzqfEmW/DVfMK+x+ePfgoehMwDveJVqfniaTUO/oRKHqcq6Wc9UsmK86u/KNHx4jwS7v0DZ/agTXwIAAA= */
3714
3714
  [data-rk] .er9ts10 {
3715
3715
  display: flex;
3716
3716
  flex-direction: column;
@@ -3748,6 +3748,14 @@
3748
3748
  cursor: not-allowed;
3749
3749
  opacity: 0.5;
3750
3750
  }
3751
+ [data-rk] .er9ts12:-webkit-autofill,
3752
+ [data-rk] .er9ts12:-webkit-autofill:hover,
3753
+ [data-rk] .er9ts12:-webkit-autofill:focus {
3754
+ -webkit-box-shadow: 0 0 0 1000px var(--rk-colors-modalBackground) inset;
3755
+ -webkit-text-fill-color: var(--rk-colors-modalText);
3756
+ -webkit-transition: background-color 5000s ease-in-out 0s;
3757
+ transition: background-color 5000s ease-in-out 0s;
3758
+ }
3751
3759
  [data-rk] .er9ts13 {
3752
3760
  cursor: pointer;
3753
3761
  border: none;
package/dist/index.d.ts CHANGED
@@ -60,7 +60,8 @@ export { useSolanaWallet } from './hooks/useSolanaWallet';
60
60
  export type { SolanaTransferParams, UseSolanaWalletReturn, } from './hooks/useSolanaWallet';
61
61
  export { useTronWallet } from './hooks/useTronWallet';
62
62
  export type { UseTronWalletReturn } from './hooks/useTronWallet';
63
- export { getSecureChannel, encryptPlain, decrypt, getSecureChannelId, clearSecureChannel, } from './utils/secureChannel';
63
+ export { useEstimateFee } from './hooks/useEstimateFee';
64
+ export type { EstimateFeeParams, EstimateFeeResult, } from './hooks/useEstimateFee';
64
65
  export { createLogger, configureLogger, getLoggerConfig, Logger, } from './utils/logger';
65
66
  export { getTalkenApiClient, setTalkenApiClient, } from './wallets/walletConnectors/abcWallet/api/TalkenApiSingleton';
66
67
  export { TalkenApiClient, createTalkenApiClient, WalletscanApi, GasApi, ConfigApi, TokenApi, SolanaApi, } from './wallets/walletConnectors/abcWallet/api';
package/dist/index.js CHANGED
@@ -53,7 +53,7 @@ import {
53
53
  networkToChainId,
54
54
  resolveTalkenApiUrl,
55
55
  setTalkenApiClient
56
- } from "./chunk-RKEFBYBO.js";
56
+ } from "./chunk-MI7TNBED.js";
57
57
  import {
58
58
  STORAGE_PREFIX,
59
59
  getCredentialManager
@@ -158,7 +158,7 @@ function useBitcoinWallet() {
158
158
  wallet: bitcoinWallet,
159
159
  emptyState: emptyWalletState,
160
160
  requestInterceptor,
161
- importProvider: async () => (await import("./abcWallet-GFKDYN2Z.js")).AbcBitcoinProvider,
161
+ importProvider: async () => (await import("./abcWallet-TLGPQAMU.js")).AbcBitcoinProvider,
162
162
  mapState: (nextWallet, provider) => ({
163
163
  address: nextWallet.address,
164
164
  publicKey: nextWallet.publicKey,
@@ -1329,7 +1329,7 @@ function useSolanaWallet() {
1329
1329
  wallet: solanaWallet,
1330
1330
  emptyState: emptyWalletState,
1331
1331
  requestInterceptor,
1332
- importProvider: async () => (await import("./abcWallet-GFKDYN2Z.js")).AbcSolanaProvider,
1332
+ importProvider: async () => (await import("./abcWallet-TLGPQAMU.js")).AbcSolanaProvider,
1333
1333
  mapState: (nextWallet, provider) => ({
1334
1334
  address: nextWallet.address,
1335
1335
  publicKey: nextWallet.publicKey,
@@ -2002,7 +2002,7 @@ function useProfile({ address, includeBalance }) {
2002
2002
  queryKey: createNativeBalanceQueryKey(address, chainId),
2003
2003
  queryFn: async () => {
2004
2004
  if (!address || !chainId)
2005
- return void 0;
2005
+ return null;
2006
2006
  const walletscanApi = createWalletscanApi();
2007
2007
  const nativeToken = await walletscanApi.getNativeTokenWithTimeout(
2008
2008
  {
@@ -2013,7 +2013,7 @@ function useProfile({ address, includeBalance }) {
2013
2013
  3e3
2014
2014
  );
2015
2015
  if (!nativeToken)
2016
- return void 0;
2016
+ return null;
2017
2017
  const decimals = nativeToken.decimals ?? 18;
2018
2018
  const rawBalance = nativeToken.balance ?? 0;
2019
2019
  const value = BigInt(String(rawBalance));
@@ -2312,7 +2312,7 @@ function cssStringFromTheme(theme, options = {}) {
2312
2312
  }
2313
2313
 
2314
2314
  // src/providers/SignConfirmationProvider/SignConfirmationProvider.tsx
2315
- import { useWallet as useWallet3 } from "@solana/wallet-adapter-react";
2315
+ import { WalletContext } from "@solana/wallet-adapter-react";
2316
2316
  import React35, {
2317
2317
  createContext as createContext8,
2318
2318
  useContext as useContext7,
@@ -5585,7 +5585,7 @@ function NonEvmTransferConfirmationModal({
5585
5585
  /* @__PURE__ */ React34.createElement("span", { className: feeLabel }, "Estimated Gas Fee"),
5586
5586
  /* @__PURE__ */ React34.createElement("span", { className: feeLabel }, request.estimatedFee, " ", request.feeSymbol || "")
5587
5587
  ),
5588
- /* @__PURE__ */ React34.createElement("div", { className: actions }, /* @__PURE__ */ React34.createElement("button", { type: "button", onClick: onClose, className: cancelButton }, "Cancel"), /* @__PURE__ */ React34.createElement("button", { type: "button", onClick: onConfirm, className: confirmButton }, "Sign")),
5588
+ /* @__PURE__ */ React34.createElement("div", { className: actions }, /* @__PURE__ */ React34.createElement("button", { type: "button", onClick: onClose, className: cancelButton }, "Cancel"), /* @__PURE__ */ React34.createElement("button", { type: "button", onClick: onConfirm, className: confirmButton }, "Send")),
5589
5589
  /* @__PURE__ */ React34.createElement(Toast, { message: toastMessage, isVisible: toastVisible2 })
5590
5590
  )
5591
5591
  );
@@ -6710,7 +6710,12 @@ function SignConfirmationProvider({
6710
6710
  );
6711
6711
  const [nonEvmRejecter, setNonEvmRejecter] = useState18(null);
6712
6712
  const { connector, isConnected } = useAccount9();
6713
- const { wallets: solanaWallets } = useWallet3();
6713
+ const walletContextValue = useContext7(WalletContext);
6714
+ const hasSolanaProvider = !Object.getOwnPropertyDescriptor(
6715
+ walletContextValue,
6716
+ "wallets"
6717
+ )?.get;
6718
+ const solanaWallets = hasSolanaProvider ? walletContextValue.wallets : [];
6714
6719
  const { resolveTransaction } = useTransactionResolver();
6715
6720
  const rainbowKitChainsById = useRainbowKitChainsById();
6716
6721
  const resetState = useCallback13(() => {
@@ -7757,7 +7762,7 @@ var AbcSolanaWalletAdapter = class extends BaseMessageSignerWalletAdapter {
7757
7762
  var abcSolanaWalletAdapter_default = AbcSolanaWalletAdapter;
7758
7763
 
7759
7764
  // src/solana/AbcSolanaAutoConnector.tsx
7760
- import { useWallet as useWallet4 } from "@solana/wallet-adapter-react";
7765
+ import { useWallet as useWallet3 } from "@solana/wallet-adapter-react";
7761
7766
  import { useEffect as useEffect17, useRef as useRef9 } from "react";
7762
7767
 
7763
7768
  // src/solana/recentSolanaWalletIds.ts
@@ -7782,7 +7787,7 @@ function setRecentSolanaWallet(walletName2) {
7782
7787
 
7783
7788
  // src/solana/AbcSolanaAutoConnector.tsx
7784
7789
  function AbcSolanaAutoConnector() {
7785
- const { wallets, select, connected, wallet } = useWallet4();
7790
+ const { wallets, select, connected, wallet } = useWallet3();
7786
7791
  const isConnectingRef = useRef9(false);
7787
7792
  const hasAttemptedRef = useRef9(false);
7788
7793
  useEffect17(() => {
@@ -8033,7 +8038,7 @@ function setRainbowKitVersion({ version }) {
8033
8038
  }
8034
8039
  function useFingerprint() {
8035
8040
  const fingerprint = useCallback14(() => {
8036
- setRainbowKitVersion({ version: "2.4.26" });
8041
+ setRainbowKitVersion({ version: "2.4.29" });
8037
8042
  }, []);
8038
8043
  useEffect19(() => {
8039
8044
  fingerprint();
@@ -10036,7 +10041,7 @@ import { useAccount as useAccount16, useDisconnect as useDisconnect3 } from "wag
10036
10041
 
10037
10042
  // src/components/ConnectOptions/ConnectOptions.tsx
10038
10043
  import {
10039
- WalletContext
10044
+ WalletContext as WalletContext2
10040
10045
  } from "@solana/wallet-adapter-react";
10041
10046
  import React93, { useCallback as useCallback22, useContext as useContext24, useMemo as useMemo18, useState as useState35 } from "react";
10042
10047
 
@@ -10368,7 +10373,7 @@ function AbcWaasAuthSections(props) {
10368
10373
  setAbcWaasConfirmPassword
10369
10374
  } = props;
10370
10375
  const [email, setEmail] = useState24("");
10371
- const isTelegramMiniApp = typeof window !== "undefined" && !!window.Telegram?.WebApp && window.Telegram.WebApp.platform !== "unknown";
10376
+ const isTelegramMiniApp = typeof window !== "undefined" && (!!window.Telegram?.WebApp && window.Telegram.WebApp.platform !== "unknown" || window.location.hash.includes("tgWebAppData"));
10372
10377
  const isGoogleEnabled = !isTelegramMiniApp && typeof process !== "undefined" && process.env && process.env.NEXT_PUBLIC_GOOGLE_OAUTH_ENABLED === "true" && !!process.env.NEXT_PUBLIC_FIREBASE_API_KEY;
10373
10378
  const isAppleEnabled = !isTelegramMiniApp && typeof process !== "undefined" && process.env && process.env.NEXT_PUBLIC_APPLE_OAUTH_ENABLED === "true" && !!process.env.NEXT_PUBLIC_APPLE_OAUTH_CLIENT_ID;
10374
10379
  const isKakaoEnabled = !isTelegramMiniApp && typeof process !== "undefined" && process.env && process.env.NEXT_PUBLIC_KAKAO_OAUTH_ENABLED === "true" && !!process.env.NEXT_PUBLIC_KAKAO_JS_KEY;
@@ -10462,38 +10467,18 @@ function AbcWaasAuthSections(props) {
10462
10467
  style: { flexGrow: 1 }
10463
10468
  }
10464
10469
  )
10465
- )), abcWaasStep === "PASSWORD" /* Password */ && /* @__PURE__ */ React76.createElement(Box, { marginX: "6", marginBottom: "16" }, /* @__PURE__ */ React76.createElement(Box, { marginBottom: "12" }, /* @__PURE__ */ React76.createElement(Text, { color: "modalText", size: "16", weight: "semibold" }, "Enter your password"), /* @__PURE__ */ React76.createElement(Box, { marginTop: "4" }, /* @__PURE__ */ React76.createElement(Text, { color: "modalTextSecondary", size: "14", weight: "medium" }, abcWaasEmail))), /* @__PURE__ */ React76.createElement("form", { onSubmit: handlePasswordSubmit }, /* @__PURE__ */ React76.createElement(
10466
- Box,
10470
+ )), abcWaasStep === "PASSWORD" /* Password */ && /* @__PURE__ */ React76.createElement(Box, { marginX: "6", marginBottom: "16" }, /* @__PURE__ */ React76.createElement(Box, { marginBottom: "12" }, /* @__PURE__ */ React76.createElement(Text, { color: "modalText", size: "16", weight: "semibold" }, "Enter your password"), /* @__PURE__ */ React76.createElement(Box, { marginTop: "4" }, /* @__PURE__ */ React76.createElement(Text, { color: "modalTextSecondary", size: "14", weight: "medium" }, abcWaasEmail))), /* @__PURE__ */ React76.createElement("form", { onSubmit: handlePasswordSubmit }, /* @__PURE__ */ React76.createElement(Box, { marginBottom: "12" }, /* @__PURE__ */ React76.createElement("div", { className: emailFormContainer }, /* @__PURE__ */ React76.createElement(
10471
+ "input",
10467
10472
  {
10468
- marginBottom: "12",
10469
- style: {
10470
- padding: "12px 16px",
10471
- borderRadius: "12px",
10472
- backgroundColor: "#ffffff",
10473
- border: "1px solid #d1d5db"
10474
- }
10475
- },
10476
- /* @__PURE__ */ React76.createElement(
10477
- "input",
10478
- {
10479
- type: "password",
10480
- placeholder: "Enter password",
10481
- value: abcWaasPassword,
10482
- onChange: (e) => setAbcWaasPassword(e.target.value),
10483
- disabled: isAbcWaasLoading,
10484
- required: true,
10485
- style: {
10486
- width: "100%",
10487
- border: "none",
10488
- outline: "none",
10489
- background: "transparent",
10490
- fontSize: "16px",
10491
- color: "#111827",
10492
- fontFamily: "inherit"
10493
- }
10494
- }
10495
- )
10496
- ), /* @__PURE__ */ React76.createElement(Box, { display: "flex", gap: "12" }, /* @__PURE__ */ React76.createElement(
10473
+ type: "password",
10474
+ placeholder: "Enter password",
10475
+ value: abcWaasPassword,
10476
+ onChange: (e) => setAbcWaasPassword(e.target.value),
10477
+ disabled: isAbcWaasLoading,
10478
+ required: true,
10479
+ className: emailInputStyle
10480
+ }
10481
+ ))), /* @__PURE__ */ React76.createElement(Box, { display: "flex", gap: "12" }, /* @__PURE__ */ React76.createElement(
10497
10482
  Box,
10498
10483
  {
10499
10484
  as: "button",
@@ -10566,7 +10551,7 @@ function AbcWaasAuthSections(props) {
10566
10551
  color: themeVars.colors.modalText,
10567
10552
  fontFamily: "inherit",
10568
10553
  textAlign: "center",
10569
- letterSpacing: "0.3em"
10554
+ letterSpacing: "0.15em"
10570
10555
  }
10571
10556
  }
10572
10557
  )
@@ -10613,39 +10598,19 @@ function AbcWaasAuthSections(props) {
10613
10598
  }
10614
10599
  },
10615
10600
  "Verify"
10616
- ))), abcWaasError && /* @__PURE__ */ React76.createElement(Box, { marginTop: "8" }, /* @__PURE__ */ React76.createElement(Text, { color: "error", size: "14", weight: "medium" }, abcWaasError))), abcWaasStep === "PASSWORD_SETUP" /* PasswordSetup */ && /* @__PURE__ */ React76.createElement(Box, { marginX: "6", marginBottom: "16" }, /* @__PURE__ */ React76.createElement(Box, { marginBottom: "12" }, /* @__PURE__ */ React76.createElement(Text, { color: "modalText", size: "16", weight: "semibold" }, "Create a password"), /* @__PURE__ */ React76.createElement(Box, { marginTop: "4" }, /* @__PURE__ */ React76.createElement(Text, { color: "modalTextSecondary", size: "14", weight: "medium" }, "Must be at least 6 characters"))), /* @__PURE__ */ React76.createElement("form", { onSubmit: handlePasswordSetupSubmit }, /* @__PURE__ */ React76.createElement(
10617
- Box,
10601
+ ))), abcWaasError && /* @__PURE__ */ React76.createElement(Box, { marginTop: "8" }, /* @__PURE__ */ React76.createElement(Text, { color: "error", size: "14", weight: "medium" }, abcWaasError))), abcWaasStep === "PASSWORD_SETUP" /* PasswordSetup */ && /* @__PURE__ */ React76.createElement(Box, { marginX: "6", marginBottom: "16" }, /* @__PURE__ */ React76.createElement(Box, { marginBottom: "12" }, /* @__PURE__ */ React76.createElement(Text, { color: "modalText", size: "16", weight: "semibold" }, "Create a password"), /* @__PURE__ */ React76.createElement(Box, { marginTop: "4" }, /* @__PURE__ */ React76.createElement(Text, { color: "modalTextSecondary", size: "14", weight: "medium" }, "Must be at least 6 characters"))), /* @__PURE__ */ React76.createElement("form", { onSubmit: handlePasswordSetupSubmit }, /* @__PURE__ */ React76.createElement(Box, { marginBottom: "12" }, /* @__PURE__ */ React76.createElement("div", { className: emailFormContainer }, /* @__PURE__ */ React76.createElement(
10602
+ "input",
10618
10603
  {
10619
- marginBottom: "12",
10620
- style: {
10621
- padding: "12px 16px",
10622
- borderRadius: "12px",
10623
- backgroundColor: themeVars.colors.modalBackground,
10624
- border: `1px solid ${themeVars.colors.actionButtonBorder}`
10625
- }
10626
- },
10627
- /* @__PURE__ */ React76.createElement(
10628
- "input",
10629
- {
10630
- type: "password",
10631
- placeholder: "Enter password",
10632
- value: abcWaasNewPassword,
10633
- onChange: (e) => setAbcWaasNewPassword(e.target.value),
10634
- disabled: isAbcWaasLoading,
10635
- required: true,
10636
- minLength: 6,
10637
- style: {
10638
- width: "100%",
10639
- border: "none",
10640
- outline: "none",
10641
- background: "transparent",
10642
- fontSize: "16px",
10643
- color: themeVars.colors.modalText,
10644
- fontFamily: "inherit"
10645
- }
10646
- }
10647
- )
10648
- ), /* @__PURE__ */ React76.createElement(Box, { display: "flex", gap: "12" }, /* @__PURE__ */ React76.createElement(
10604
+ type: "password",
10605
+ placeholder: "Enter password",
10606
+ value: abcWaasNewPassword,
10607
+ onChange: (e) => setAbcWaasNewPassword(e.target.value),
10608
+ disabled: isAbcWaasLoading,
10609
+ required: true,
10610
+ minLength: 6,
10611
+ className: emailInputStyle
10612
+ }
10613
+ ))), /* @__PURE__ */ React76.createElement(Box, { display: "flex", gap: "12" }, /* @__PURE__ */ React76.createElement(
10649
10614
  Box,
10650
10615
  {
10651
10616
  as: "button",
@@ -10688,38 +10653,18 @@ function AbcWaasAuthSections(props) {
10688
10653
  }
10689
10654
  },
10690
10655
  "Continue"
10691
- ))), abcWaasError && /* @__PURE__ */ React76.createElement(Box, { marginTop: "8" }, /* @__PURE__ */ React76.createElement(Text, { color: "error", size: "14", weight: "medium" }, abcWaasError))), abcWaasStep === "PASSWORD_CONFIRM" /* PasswordConfirm */ && /* @__PURE__ */ React76.createElement(Box, { marginX: "6", marginBottom: "16" }, /* @__PURE__ */ React76.createElement(Box, { marginBottom: "12" }, /* @__PURE__ */ React76.createElement(Text, { color: "modalText", size: "16", weight: "semibold" }, "Confirm your password"), /* @__PURE__ */ React76.createElement(Box, { marginTop: "4" }, /* @__PURE__ */ React76.createElement(Text, { color: "modalTextSecondary", size: "14", weight: "medium" }, "Re-enter your password to confirm"))), /* @__PURE__ */ React76.createElement("form", { onSubmit: handlePasswordConfirmSubmit }, /* @__PURE__ */ React76.createElement(
10692
- Box,
10656
+ ))), abcWaasError && /* @__PURE__ */ React76.createElement(Box, { marginTop: "8" }, /* @__PURE__ */ React76.createElement(Text, { color: "error", size: "14", weight: "medium" }, abcWaasError))), abcWaasStep === "PASSWORD_CONFIRM" /* PasswordConfirm */ && /* @__PURE__ */ React76.createElement(Box, { marginX: "6", marginBottom: "16" }, /* @__PURE__ */ React76.createElement(Box, { marginBottom: "12" }, /* @__PURE__ */ React76.createElement(Text, { color: "modalText", size: "16", weight: "semibold" }, "Confirm your password"), /* @__PURE__ */ React76.createElement(Box, { marginTop: "4" }, /* @__PURE__ */ React76.createElement(Text, { color: "modalTextSecondary", size: "14", weight: "medium" }, "Re-enter your password to confirm"))), /* @__PURE__ */ React76.createElement("form", { onSubmit: handlePasswordConfirmSubmit }, /* @__PURE__ */ React76.createElement(Box, { marginBottom: "12" }, /* @__PURE__ */ React76.createElement("div", { className: emailFormContainer }, /* @__PURE__ */ React76.createElement(
10657
+ "input",
10693
10658
  {
10694
- marginBottom: "12",
10695
- style: {
10696
- padding: "12px 16px",
10697
- borderRadius: "12px",
10698
- backgroundColor: themeVars.colors.modalBackground,
10699
- border: `1px solid ${themeVars.colors.actionButtonBorder}`
10700
- }
10701
- },
10702
- /* @__PURE__ */ React76.createElement(
10703
- "input",
10704
- {
10705
- type: "password",
10706
- placeholder: "Confirm password",
10707
- value: abcWaasConfirmPassword,
10708
- onChange: (e) => setAbcWaasConfirmPassword(e.target.value),
10709
- disabled: isAbcWaasLoading,
10710
- required: true,
10711
- style: {
10712
- width: "100%",
10713
- border: "none",
10714
- outline: "none",
10715
- background: "transparent",
10716
- fontSize: "16px",
10717
- color: themeVars.colors.modalText,
10718
- fontFamily: "inherit"
10719
- }
10720
- }
10721
- )
10722
- ), /* @__PURE__ */ React76.createElement(Box, { display: "flex", gap: "12" }, /* @__PURE__ */ React76.createElement(
10659
+ type: "password",
10660
+ placeholder: "Confirm password",
10661
+ value: abcWaasConfirmPassword,
10662
+ onChange: (e) => setAbcWaasConfirmPassword(e.target.value),
10663
+ disabled: isAbcWaasLoading,
10664
+ required: true,
10665
+ className: emailInputStyle
10666
+ }
10667
+ ))), /* @__PURE__ */ React76.createElement(Box, { display: "flex", gap: "12" }, /* @__PURE__ */ React76.createElement(
10723
10668
  Box,
10724
10669
  {
10725
10670
  as: "button",
@@ -15328,7 +15273,7 @@ function ConnectOptions({ onClose }) {
15328
15273
  const { connector } = useContext24(WalletButtonContext);
15329
15274
  const multiChainContext = useContext24(MultiChainContext);
15330
15275
  const walletContext = useContext24(
15331
- WalletContext
15276
+ WalletContext2
15332
15277
  );
15333
15278
  const { solanaWallets, select, connecting } = useMemo18(() => {
15334
15279
  if (!multiChainContext) {
@@ -15460,7 +15405,7 @@ function ConnectOptions({ onClose }) {
15460
15405
  }
15461
15406
 
15462
15407
  // src/components/ConnectOptions/MultiChainConnectOptions.tsx
15463
- import { useWallet as useWallet6 } from "@solana/wallet-adapter-react";
15408
+ import { useWallet as useWallet5 } from "@solana/wallet-adapter-react";
15464
15409
  import React96, { useContext as useContext25, useCallback as useCallback24, useState as useState37 } from "react";
15465
15410
 
15466
15411
  // src/components/ChainSelector/ChainSelector.tsx
@@ -15526,7 +15471,7 @@ function ChainSelector({
15526
15471
  }
15527
15472
 
15528
15473
  // src/components/SolanaWalletList/SolanaWalletList.tsx
15529
- import { useWallet as useWallet5 } from "@solana/wallet-adapter-react";
15474
+ import { useWallet as useWallet4 } from "@solana/wallet-adapter-react";
15530
15475
  import React95, { useCallback as useCallback23, useState as useState36 } from "react";
15531
15476
 
15532
15477
  // src/components/SolanaWalletList/SolanaWalletList.css.ts
@@ -15543,7 +15488,7 @@ function SolanaWalletList2({
15543
15488
  onConnect,
15544
15489
  onError
15545
15490
  }) {
15546
- const { wallets, select, connect, connecting } = useWallet5();
15491
+ const { wallets, select, connect, connecting } = useWallet4();
15547
15492
  const [connectingWallet, setConnectingWallet] = useState36(null);
15548
15493
  const handleWalletClick = useCallback23(
15549
15494
  async (walletName2) => {
@@ -15646,7 +15591,7 @@ function MultiChainConnectOptions({
15646
15591
  return /* @__PURE__ */ React96.createElement(UnifiedWalletList, { onClose });
15647
15592
  }
15648
15593
  function UnifiedWalletList({ onClose }) {
15649
- const { wallets: solanaWallets, select, connecting } = useWallet6();
15594
+ const { wallets: solanaWallets, select, connecting } = useWallet5();
15650
15595
  const _multiChainContext = useContext25(MultiChainContext);
15651
15596
  const [connectingWallet, setConnectingWallet] = useState37(null);
15652
15597
  const handleSolanaWalletClick = useCallback24(
@@ -17483,7 +17428,7 @@ function useWalletCapabilities() {
17483
17428
  } finally {
17484
17429
  setIsLoading(false);
17485
17430
  }
17486
- }, [connector?.id, connector?.name, isConnected, walletClient]);
17431
+ }, [address, connector?.id, connector?.name, isConnected, walletClient]);
17487
17432
  useEffect35(() => {
17488
17433
  void refresh();
17489
17434
  }, [refresh]);
@@ -18001,7 +17946,7 @@ function useTronWallet() {
18001
17946
  wallet: tronWallet,
18002
17947
  emptyState: emptyWalletState,
18003
17948
  requestInterceptor,
18004
- importProvider: async () => (await import("./abcWallet-GFKDYN2Z.js")).AbcTronProvider,
17949
+ importProvider: async () => (await import("./abcWallet-TLGPQAMU.js")).AbcTronProvider,
18005
17950
  mapState: (nextWallet, provider) => ({
18006
17951
  address: nextWallet.address,
18007
17952
  publicKey: nextWallet.publicKey,
@@ -18052,107 +17997,59 @@ function useTronWallet() {
18052
17997
  };
18053
17998
  }
18054
17999
 
18055
- // src/utils/secureChannel.ts
18056
- import CryptoJS from "crypto-js";
18057
- import elliptic from "elliptic";
18058
- var EC = elliptic.ec;
18059
- var secureChannelCache = null;
18060
- var cacheTimestamp = null;
18061
- var CACHE_DURATION = 50 * 60 * 1e3;
18062
- async function getSecureChannel() {
18063
- if (secureChannelCache && cacheTimestamp) {
18064
- const now = Date.now();
18065
- if (now - cacheTimestamp < CACHE_DURATION) {
18066
- return secureChannelCache;
18067
- }
18068
- }
18069
- const plain = "testplaintext";
18070
- const ec = new EC("p256");
18071
- const mykey = ec.genKeyPair();
18072
- const pubkey = mykey.getPublic().encode("hex", false);
18073
- try {
18074
- const apiUrl = process.env.NEXT_PUBLIC_TALKEN_API_URL;
18075
- if (!apiUrl) {
18076
- throw new Error(
18077
- "NEXT_PUBLIC_TALKEN_API_URL environment variable is not set. Please add it to your .env.local file."
18078
- );
18079
- }
18080
- const response = await fetch(`${apiUrl}/auth/secure-channel`, {
18081
- method: "POST",
18082
- headers: {
18083
- "Content-Type": "application/x-www-form-urlencoded"
18084
- },
18085
- body: new URLSearchParams({
18086
- pubkey,
18087
- plain
18088
- })
18089
- });
18090
- if (!response.ok) {
18091
- const errorText = await response.text();
18092
- throw new Error(
18093
- `Failed to create secure channel: HTTP ${response.status} - ${errorText}`
18094
- );
18095
- }
18096
- const contentType = response.headers.get("content-type");
18097
- if (!contentType || !contentType.includes("application/json")) {
18098
- const responseText = await response.text();
18099
- throw new Error(
18100
- `Expected JSON response but got ${contentType}. Response: ${responseText.substring(0, 200)}`
18101
- );
18102
- }
18103
- const data = await response.json();
18104
- const serverKey = ec.keyFromPublic(data.publickey, "hex");
18105
- const sharedSecret = serverKey.getPublic().mul(mykey.getPrivate()).getX();
18106
- const secretKey = sharedSecret.toString(16).padStart(64, "0");
18107
- secureChannelCache = { response: data, mykey, secretKey };
18108
- cacheTimestamp = Date.now();
18109
- return secureChannelCache;
18110
- } catch (error2) {
18111
- console.error("Secure channel creation failed:", error2);
18112
- throw error2;
18113
- }
18114
- }
18115
- async function encryptPlain(plain) {
18116
- const secureChannel = await getSecureChannel();
18117
- const secretKey = secureChannel.secretKey;
18118
- const key = secretKey.substring(0, 32);
18119
- const iv = secretKey.substring(32);
18120
- const encrypted = CryptoJS.AES.encrypt(plain, CryptoJS.enc.Hex.parse(key), {
18121
- iv: CryptoJS.enc.Hex.parse(iv),
18122
- padding: CryptoJS.pad.Pkcs7,
18123
- mode: CryptoJS.mode.CBC
18124
- });
18125
- return {
18126
- encryptPlain: encrypted.toString(),
18127
- secureChannel: secureChannel.response.channelid
18128
- };
18129
- }
18130
- function decrypt(encrypted) {
18131
- if (!secureChannelCache) {
18132
- console.error("No secure channel information found");
18133
- return "";
18134
- }
18135
- const secretKey = secureChannelCache.secretKey;
18136
- const key = secretKey.substring(0, 32);
18137
- const iv = secretKey.substring(32);
18138
- const decrypted = CryptoJS.AES.decrypt(
18139
- encrypted,
18140
- CryptoJS.enc.Hex.parse(key),
18141
- {
18142
- iv: CryptoJS.enc.Hex.parse(iv),
18143
- padding: CryptoJS.pad.Pkcs7,
18144
- mode: CryptoJS.mode.CBC
18145
- }
18000
+ // src/hooks/useEstimateFee.ts
18001
+ import { useCallback as useCallback30 } from "react";
18002
+ var INPUT_PER_BYTE = 141;
18003
+ var BUFFER = 500;
18004
+ function useEstimateFee() {
18005
+ const estimateFee = useCallback30(
18006
+ async (params) => {
18007
+ switch (params.chain) {
18008
+ case "evm": {
18009
+ const api = getTalkenApiClient();
18010
+ if (!api)
18011
+ throw new Error("TalkenApiClient not initialized");
18012
+ const [gasEstimate, gasPriceResponse] = await Promise.all([
18013
+ api.evm.estimateGas({
18014
+ network: params.network,
18015
+ from: params.fromAddress || "",
18016
+ to: params.toAddress,
18017
+ value: params.amount,
18018
+ data: params.data
18019
+ }),
18020
+ api.evm.getGasPrice(params.network)
18021
+ ]);
18022
+ const gasLimit = BigInt(gasEstimate.result || "21000");
18023
+ const gasPrice = BigInt(gasPriceResponse.result || "0");
18024
+ const fee = (gasLimit * gasPrice).toString();
18025
+ return { fee };
18026
+ }
18027
+ case "bitcoin": {
18028
+ const api = getTalkenApiClient();
18029
+ if (!api)
18030
+ throw new Error("TalkenApiClient not initialized");
18031
+ const result = await api.bitcoin.getFeeRate(
18032
+ params.network
18033
+ );
18034
+ const feeRate = Number(result.feeRate) || 1;
18035
+ const fee = Math.floor(feeRate * 2 * INPUT_PER_BYTE + BUFFER);
18036
+ return { fee: String(fee) };
18037
+ }
18038
+ case "solana": {
18039
+ return { fee: "5000" };
18040
+ }
18041
+ case "tron": {
18042
+ const isTrc20 = !!params.tokenAddress;
18043
+ const fee = isTrc20 ? "13000000" : "1000000";
18044
+ return { fee };
18045
+ }
18046
+ default:
18047
+ throw new Error(`Unsupported chain: ${params.chain}`);
18048
+ }
18049
+ },
18050
+ []
18146
18051
  );
18147
- return decrypted.toString(CryptoJS.enc.Utf8);
18148
- }
18149
- async function getSecureChannelId() {
18150
- const secureChannel = await getSecureChannel();
18151
- return secureChannel.response.channelid;
18152
- }
18153
- function clearSecureChannel() {
18154
- secureChannelCache = null;
18155
- cacheTimestamp = null;
18052
+ return { estimateFee };
18156
18053
  }
18157
18054
 
18158
18055
  // src/utils/embeddedTxAdapter.ts
@@ -18258,7 +18155,6 @@ export {
18258
18155
  WalletscanApi,
18259
18156
  __private__,
18260
18157
  chainIdToNetwork,
18261
- clearSecureChannel,
18262
18158
  configureLogger,
18263
18159
  connectorsForWallets,
18264
18160
  createAbcSolanaAdapter,
@@ -18268,11 +18164,9 @@ export {
18268
18164
  cssObjectFromTheme,
18269
18165
  cssStringFromTheme,
18270
18166
  darkTheme,
18271
- decrypt,
18272
18167
  decryptWithPin,
18273
18168
  emailCheck,
18274
18169
  embeddedTxToWagmi,
18275
- encryptPlain,
18276
18170
  encryptWithPin,
18277
18171
  getBitcoinNetwork,
18278
18172
  getDefaultConfig,
@@ -18283,8 +18177,6 @@ export {
18283
18177
  getLoggerConfig,
18284
18178
  getNetworkByChainId,
18285
18179
  getNetworkByParam,
18286
- getSecureChannel,
18287
- getSecureChannelId,
18288
18180
  getSolanaConfig,
18289
18181
  getSolanaNetwork,
18290
18182
  getSupportedChainIds,
@@ -18313,6 +18205,7 @@ export {
18313
18205
  useChainModal,
18314
18206
  useConnectModal,
18315
18207
  useDeviceType,
18208
+ useEstimateFee,
18316
18209
  useMultiChain,
18317
18210
  useNonEvmConfirmation,
18318
18211
  usePin,
@@ -7,7 +7,6 @@ import type { AbcApiResponse, AbcSnsLoginResponse } from '../wallets/walletConne
7
7
  export interface RegisterUserParams {
8
8
  username: string;
9
9
  password: string;
10
- secureChannel: string;
11
10
  emailCode: string;
12
11
  name: string;
13
12
  refererUid?: string;
@@ -23,13 +22,11 @@ export interface RegisterSnsUserParams {
23
22
  export interface ResetPasswordParams {
24
23
  username: string;
25
24
  password: string;
26
- secureChannel: string;
27
25
  emailCode: string;
28
26
  }
29
27
  export interface LoginParams {
30
28
  username: string;
31
29
  password: string;
32
- secureChannel: string;
33
30
  isIframe?: boolean;
34
31
  }
35
32
  /**
@@ -3,7 +3,7 @@ import {
3
3
  AbcBitcoinProvider,
4
4
  BITCOIN_NETWORKS,
5
5
  BitcoinProviderError
6
- } from "../chunk-IM7DEERX.js";
6
+ } from "../chunk-3LF7FVL6.js";
7
7
  import "../chunk-6WF4SXLB.js";
8
8
  import "../chunk-DPTDOCWL.js";
9
9
  export {