@funkit/connect 9.27.0 → 9.28.0

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 (72) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/dist/clients/{chunk-4IWQ2UT5.js → chunk-4O4YAFYK.js} +69 -7
  3. package/dist/clients/{chunk-O5CTDT3L.js → chunk-7LKK5QMZ.js} +1 -1
  4. package/dist/clients/{chunk-VT3ERWXE.js → chunk-CGHPNWIF.js} +1 -1
  5. package/dist/clients/{chunk-F4SCUKY6.js → chunk-TQVRP3Z2.js} +10 -6
  6. package/dist/clients/lighter.css +7 -1
  7. package/dist/clients/lighter.js +2 -2
  8. package/dist/clients/polymarket/PolymarketDepositAccountDropdown.css +7 -1
  9. package/dist/clients/polymarket/PolymarketDepositAccountDropdown.js +5 -6
  10. package/dist/clients/polymarket/createPolymarketDepositConfig.js +2 -2
  11. package/dist/clients/polymarket/index.css +7 -1
  12. package/dist/clients/polymarket/index.js +5 -6
  13. package/dist/clients/polymarket/polymarket.js +1 -1
  14. package/dist/components/BitcoinLightningBanner/BitcoinLightningBanner.d.ts +12 -0
  15. package/dist/domains/clientMetadata.d.ts +2 -3
  16. package/dist/domains/quoteMode/types.d.ts +0 -1
  17. package/dist/hooks/queries/useRecentDeposits.d.ts +1 -1
  18. package/dist/hooks/useInjectedAssetHoldings.d.ts +10 -13
  19. package/dist/hooks/usePaymentSources.d.ts +1 -1
  20. package/dist/hooks/useStartBitcoinLightning.d.ts +11 -0
  21. package/dist/hooks/useXstockAssetHoldings.d.ts +3 -1
  22. package/dist/index.css +7 -1
  23. package/dist/index.js +659 -770
  24. package/dist/modals/CheckoutModal/InputAmount/state.d.ts +4 -9
  25. package/dist/modals/CheckoutModal/TransferToken/DirectExecutionNotification.d.ts +1 -3
  26. package/dist/modals/CheckoutModal/TransferToken/TransferToken.d.ts +1 -1
  27. package/dist/modals/PolymarketPerpsTransfer/PolymarketPerpsTransferScreen.d.ts +1 -1
  28. package/dist/modals/WithdrawalModal/LighterWithdrawal.d.ts +6 -0
  29. package/dist/providers/FunkitCheckoutContext/types.d.ts +0 -2
  30. package/dist/utils/checkout.d.ts +0 -10
  31. package/dist/utils/withdrawal.d.ts +12 -0
  32. package/dist/wallets/walletConnectors/bifrostWallet/bifrostWallet.js +2 -2
  33. package/dist/wallets/walletConnectors/bitgetWallet/bitgetWallet.js +2 -2
  34. package/dist/wallets/walletConnectors/bybitWallet/bybitWallet.js +2 -2
  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 +51 -51
  42. package/dist/wallets/walletConnectors/metaMaskWallet/metaMaskWallet.js +2 -2
  43. package/dist/wallets/walletConnectors/okxWallet/okxWallet.js +2 -2
  44. package/dist/wallets/walletConnectors/rainbowWallet/rainbowWallet.js +2 -2
  45. package/dist/wallets/walletConnectors/roninWallet/roninWallet.js +2 -2
  46. package/dist/wallets/walletConnectors/safepalWallet/safepalWallet.js +2 -2
  47. package/dist/wallets/walletConnectors/subWallet/subWallet.js +2 -2
  48. package/dist/wallets/walletConnectors/tokenPocketWallet/tokenPocketWallet.js +2 -2
  49. package/dist/wallets/walletConnectors/trustWallet/trustWallet.js +2 -2
  50. package/dist/wallets/walletConnectors/zerionWallet/zerionWallet.js +2 -2
  51. package/package.json +5 -5
  52. package/dist/clients/chunk-ZEXZQOAO.js +0 -96
  53. package/dist/clients/polymarket/usePolymarketAccountBalances.js +0 -12
  54. package/dist/{clients/polymarket → hooks}/usePolymarketAccountBalances.d.ts +0 -0
  55. package/dist/wallets/walletConnectors/{chunk-W2LCLDPX.js → chunk-2VP2F6EK.js} +3 -3
  56. package/dist/wallets/walletConnectors/{chunk-IULPZP2Q.js → chunk-4T6ZSRJF.js} +3 -3
  57. package/dist/wallets/walletConnectors/{chunk-WAHGI5L7.js → chunk-6BW3HLBG.js} +3 -3
  58. package/dist/wallets/walletConnectors/{chunk-YO2K4MBH.js → chunk-CCQV2ZET.js} +3 -3
  59. package/dist/wallets/walletConnectors/{chunk-TKB2OY6G.js → chunk-CPI4TD43.js} +3 -3
  60. package/dist/wallets/walletConnectors/{chunk-OX37G4YT.js → chunk-F5XEEVG6.js} +3 -3
  61. package/dist/wallets/walletConnectors/{chunk-JPN6TWIT.js → chunk-HNRB7KJU.js} +3 -3
  62. package/dist/wallets/walletConnectors/{chunk-WKNQMP4A.js → chunk-HTHAK6XB.js} +3 -3
  63. package/dist/wallets/walletConnectors/{chunk-GUQM4QSL.js → chunk-MIQTHJ6X.js} +3 -3
  64. package/dist/wallets/walletConnectors/{chunk-4NV5BYRP.js → chunk-RB3HR4R2.js} +3 -3
  65. package/dist/wallets/walletConnectors/{chunk-SWFF3TWJ.js → chunk-RVOY537T.js} +3 -3
  66. package/dist/wallets/walletConnectors/{chunk-KI5Y2BBF.js → chunk-STVVP43G.js} +3 -3
  67. package/dist/wallets/walletConnectors/{chunk-OEEGYENV.js → chunk-UK7C2JXW.js} +3 -3
  68. package/dist/wallets/walletConnectors/{chunk-YQFGVZGR.js → chunk-VAPGUPHO.js} +3 -3
  69. package/dist/wallets/walletConnectors/{chunk-XCNHV3HS.js → chunk-VTM6EECM.js} +3 -3
  70. package/dist/wallets/walletConnectors/{chunk-NR2OGDHQ.js → chunk-X6CGV36L.js} +3 -3
  71. package/dist/wallets/walletConnectors/{chunk-AVDUNQUW.js → chunk-YEZM4CK4.js} +3 -3
  72. package/dist/wallets/walletConnectors/{chunk-KCRO2AGO.js → chunk-ZNX4EMPB.js} +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,64 @@
1
1
  # @funkit/connect
2
2
 
3
+ ## 9.28.0
4
+
5
+ ### Minor Changes
6
+
7
+ - c3d2458: Remove the vault deposit feature: dropped `finalizedToken` from `FunkitCheckoutConfig`, `finalizedTokenRate` from `DynamicTargetAssetCandidate`, and all associated UI/quote branches (`isVaultDepositCheckout`, `computeDisplayDestinationToken`). The only consumer (HyperBeat) was removed in March 2026 and no active integrators reference these fields, so this is shipped as `minor` rather than `major`.
8
+ - cb77d5c: feat(withdrawal): config-first default chain for withdrawal only
9
+
10
+ `useTokenAndChainDropdown` resolves the default chain config-first when `isWithdrawal` is set: a `withdrawalconfig` chain marked `isDefault` beats the caller-supplied source chain. Deposit/transfer stay caller-first, so a deep-linked `udaParams.defaultChainId` still wins over the deposit config's `isDefault`.
11
+
12
+ - 99812aa: feat(withdrawal): resolve token addresses from config, drop the per-symbol API lookup
13
+
14
+ The withdrawal screen no longer resolves token addresses with a `getAssetErc20ByChainAndSymbol` round-trip; the addresses already live in config.
15
+
16
+ - `@funkit/connect-core`: `resolveTokenTransferConfig` adds `addressBySymbolByChainId` (`chainId → symbol/alias → original-case address`), preserving casing (checksummed EVM, base58 Solana/Tron).
17
+ - `@funkit/connect`: `WithdrawalContent` reads the destination address from that map and the Lighter Secure source address from a hardcoded map in `LighterWithdrawal.tsx`, pricing both via `useAssetAddressPrice`. Removes all `useAssetSymbolPrice` usage from the withdrawal flow (hooks left for a follow-up cleanup).
18
+ - `@funkit/connect-rn`: test-only fixture update.
19
+
20
+ ### Patch Changes
21
+
22
+ - 4bd782b: chore(connect): update btc lightning wording / icons
23
+ - a395c4c: chore: retire the `faster-notifications` flag now that it is fully rolled out
24
+
25
+ The gate is treated as permanently on and every branch collapses to its enabled path:
26
+
27
+ - `@funkit/api-base`: `getDirectExecutionsByUserId` always calls `/direct-execution/userId/{userId}/deposit-events`; the `isFasterNotificationsEnabled` field is removed from `GetDirectExecutionsByUserIdRequest`.
28
+ - `@funkit/connect-core`: `RecentDepositsApiQueryParams` drops the `isFasterNotificationsEnabled` field.
29
+ - `@funkit/connect`: deposit notifications always use the faster copy; removes the gate read and the dead Lighter/legacy notification branches.
30
+
31
+ - 21bdcd2: fix(connect): fix FunInput input text falling back to the UA-default font on hosts without a form-control CSS reset
32
+ - b8a7aaa: feat(connect): add BTC Lightning banner in Transfer Crypto step
33
+ - 043781a: Move `usePolymarketAccountBalances` from `~/clients/polymarket/` to `~/hooks/` so main-bundle code no longer imports from a customer-scoped entry point. Internal-only — not a public export.
34
+ - ce05191: rename `isTokenAddressEquivalent` → `isEVMAddressEquivalent`
35
+
36
+ The helper does a case-insensitive equality check on two EVM addresses; the new name reflects that it compares wallet/contract addresses generally, not just token addresses. **Migration:** replace `isTokenAddressEquivalent(...)` with `isEVMAddressEquivalent(...)` — the signature is unchanged. `@funkit/connect` and `@funkit/connect-core` are call-site updates only (no API change).
37
+
38
+ - 202c15b: Add `USDG` to the `stablecoinsymbols` dynamic-config fallback. `useIsStablecoin` substring-matches against this list, so USDG now displays 1:1 (price forced to `1`) on the quote input / confirmation screens regardless of its live market price. The Statsig source-of-truth config was updated first; this regenerates only the `stablecoinsymbols` fallback entry.
39
+ - 6f67939: Add unit test coverage for the withdrawal recipient address validators (per chain family). Test-only; no runtime change.
40
+ - 736141a: Add unit test coverage for the hasRisk Chainalysis screening decision logic. Test-only; no runtime change.
41
+ - 7cfc267: fix(withdrawal): block same-address self-transfers before quoting
42
+ - Updated dependencies [a395c4c]
43
+ - Updated dependencies [c3d2458]
44
+ - Updated dependencies [ce05191]
45
+ - Updated dependencies [b8a7aaa]
46
+ - Updated dependencies [202c15b]
47
+ - Updated dependencies [99812aa]
48
+ - @funkit/api-base@5.2.0
49
+ - @funkit/connect-core@1.5.0
50
+ - @funkit/utils@4.0.0
51
+
52
+ ## 9.27.1
53
+
54
+ ### Patch Changes
55
+
56
+ - 2277277: Checksum the Polymarket deposit recipient (predictions/perps) so a lowercased integrator-supplied address can't cause a downstream recipient mismatch.
57
+ - d59ac5d: Fix a layout jump on the checkout asset list for xStock (Nado) targets by resolving the wrapper-token address once at the `useWalletAssetHoldings` seam and awaiting it, so the list paints with the wrapper already recognized. Also bumps the wrapper-address query `staleTime` to 1h.
58
+ - 7604174: fix(polymarket): lower Polymarket Perps minimum deposit from $10 to $5 (matches the updated `ExchangeV1.supportedAssets` on-chain minimum)
59
+ - Updated dependencies [7880a7b]
60
+ - @funkit/fun-relay@2.9.0
61
+
3
62
  ## 9.27.0
4
63
 
5
64
  ### Minor Changes
@@ -1,12 +1,9 @@
1
1
  "use client";
2
- import {
3
- usePolymarketAccountBalances
4
- } from "./chunk-ZEXZQOAO.js";
5
2
  import {
6
3
  FunInput,
7
4
  FunSkeletonBlock,
8
5
  TooltipAnchorRefContext
9
- } from "./chunk-VT3ERWXE.js";
6
+ } from "./chunk-CGHPNWIF.js";
10
7
  import {
11
8
  Box,
12
9
  Text,
@@ -18,17 +15,18 @@ import {
18
15
  import {
19
16
  POLYMARKET_PERPS_ROUTING_ID,
20
17
  POLYMARKET_PREDICTIONS_ROUTING_ID
21
- } from "./chunk-F4SCUKY6.js";
18
+ } from "./chunk-TQVRP3Z2.js";
22
19
  import {
23
20
  POLYGON_USDCE,
24
21
  PUSD_TOKEN
25
- } from "./chunk-O5CTDT3L.js";
22
+ } from "./chunk-7LKK5QMZ.js";
26
23
  import {
27
24
  logger
28
25
  } from "./chunk-AHYOV7AV.js";
29
26
 
30
27
  // src/clients/polymarket/PolymarketDepositAccountDropdown.tsx
31
28
  import React12 from "react";
29
+ import { getAddress } from "viem";
32
30
  import { polygon } from "viem/chains";
33
31
 
34
32
  // src/components/Dropdown/AccountSelectDropdown.tsx
@@ -317,6 +315,68 @@ var AnimatedCaretDownIcon = ({
317
315
  );
318
316
  };
319
317
 
318
+ // src/hooks/usePolymarketAccountBalances.ts
319
+ import {
320
+ skipToken,
321
+ useQuery,
322
+ useQueryClient
323
+ } from "@tanstack/react-query";
324
+ import * as dnum2 from "dnum";
325
+ var DEFAULT_BALANCE_REFETCH_MS = 1e3;
326
+ var polymarketAccountBalanceQueryKey = (address) => ["polymarket", "accountBalanceUsd", address ?? null];
327
+ var polymarketBalanceSettleUntilQueryKey = (address) => ["polymarket", "accountBalanceSettleUntil", address];
328
+ async function fetchAccountBalance(queryClient, getBalanceUsd, queryKey) {
329
+ const [, , address] = queryKey;
330
+ if (address === null) {
331
+ throw new Error("polymarket balance query ran without an address");
332
+ }
333
+ try {
334
+ const serverUsd = await getBalanceUsd();
335
+ const settleUntil = queryClient.getQueryData(
336
+ polymarketBalanceSettleUntilQueryKey(address)
337
+ );
338
+ const displayedUsd = queryClient.getQueryData(
339
+ polymarketAccountBalanceQueryKey(address)
340
+ );
341
+ if (settleUntil !== void 0 && Date.now() < settleUntil && displayedUsd !== void 0) {
342
+ return displayedUsd;
343
+ }
344
+ return serverUsd;
345
+ } catch (error) {
346
+ logger.warn("polymarket:accountBalance:fetchFailed", {
347
+ address,
348
+ error: String(error)
349
+ });
350
+ throw error;
351
+ }
352
+ }
353
+ function useAccountBalance(account, refetchIntervalMs) {
354
+ const queryClient = useQueryClient();
355
+ const getBalanceUsd = account?.getBalanceUsd;
356
+ const address = account?.address;
357
+ const query = useQuery({
358
+ queryKey: polymarketAccountBalanceQueryKey(address),
359
+ // `skipToken` disables the query when the account isn't configured (the
360
+ // perps-transfer config is optional). It is *not* a fallback for a missing
361
+ // balance — the getter is the single source of truth.
362
+ queryFn: getBalanceUsd && address ? ({ queryKey }) => fetchAccountBalance(queryClient, getBalanceUsd, queryKey) : skipToken,
363
+ refetchInterval: refetchIntervalMs,
364
+ // The poll interval is the freshness contract: a reader mounting within it
365
+ // (e.g. navigating between the deposit picker and the transfer step) reads
366
+ // the cached balance as-is instead of kicking off an extra mount fetch —
367
+ // that's what makes the navigation flash-free *and* fetch-free.
368
+ staleTime: refetchIntervalMs
369
+ });
370
+ return { balanceUsd: query.data };
371
+ }
372
+ function usePolymarketAccountBalances(accounts, options) {
373
+ const refetchIntervalMs = options?.refetchIntervalMs ?? DEFAULT_BALANCE_REFETCH_MS;
374
+ return {
375
+ predictions: useAccountBalance(accounts.predictions, refetchIntervalMs),
376
+ perps: useAccountBalance(accounts.perps, refetchIntervalMs)
377
+ };
378
+ }
379
+
320
380
  // src/components/FunNoResults/FunNoResults.tsx
321
381
  import React6 from "react";
322
382
 
@@ -1065,7 +1125,9 @@ function PolymarketDepositAccountDropdown({
1065
1125
  applyDynamicTargetAssetCandidate?.(
1066
1126
  accountCandidate(
1067
1127
  isPerps ? POLYMARKET_PERPS_ROUTING_ID : POLYMARKET_PREDICTIONS_ROUTING_ID,
1068
- isPerps ? perps.address : predictions.address
1128
+ // Checksum so the recipient agrees with createPolymarketDepositConfig's
1129
+ // initial customRecipient (integrator addresses aren't guaranteed EIP-55).
1130
+ isPerps ? getAddress(perps.address) : getAddress(predictions.address)
1069
1131
  )
1070
1132
  );
1071
1133
  };
@@ -296,7 +296,7 @@ function createPaymentMethodInfo(params) {
296
296
  case PaymentMethod.BITCOIN_LIGHTNING:
297
297
  return {
298
298
  paymentMethod: PaymentMethod.BITCOIN_LIGHTNING,
299
- title: "Bitcoin on Cash App",
299
+ title: "Bitcoin Lightning",
300
300
  description: ""
301
301
  };
302
302
  case PaymentMethod.VIRTUAL_BANK:
@@ -24,7 +24,7 @@ var DEFAULT_TEXT_CUSTOMIZATIONS = {
24
24
  sourceMethodTitle: "Your source",
25
25
  tokensListTitle: "Your tokens",
26
26
  transferTokens: "Transfer Crypto",
27
- bitcoinLightning: "Bitcoin on Cash App",
27
+ bitcoinLightning: "Bitcoin Lightning",
28
28
  receiveDropdownTitle: "",
29
29
  // Default to empty
30
30
  receiveDropdownLabel: "Asset to Receive",
@@ -8,10 +8,10 @@ import {
8
8
  VAULT_DEPOSITOR_ABI,
9
9
  VAULT_DEPOSITOR_POLYGON,
10
10
  createPerpsGenerateActionParams
11
- } from "./chunk-O5CTDT3L.js";
11
+ } from "./chunk-7LKK5QMZ.js";
12
12
 
13
13
  // src/clients/polymarket/createPolymarketDepositConfig.ts
14
- import { encodeFunctionData, erc20Abi, maxUint256 } from "viem";
14
+ import { encodeFunctionData, erc20Abi, getAddress, maxUint256 } from "viem";
15
15
  import { polygon } from "viem/chains";
16
16
  var POLYMARKET_PREDICTIONS_ROUTING_ID = "POLYMARKET_PREDICTIONS";
17
17
  var POLYMARKET_PERPS_ROUTING_ID = "POLYMARKET_PERPS";
@@ -47,7 +47,7 @@ function createPredictionsGenerateActionParams(config) {
47
47
  ];
48
48
  };
49
49
  }
50
- var PERPS_MIN_DEPOSIT_USD = 10;
50
+ var PERPS_MIN_DEPOSIT_USD = 5;
51
51
  function createPolymarketDepositConfig({
52
52
  predictions,
53
53
  perps,
@@ -57,6 +57,8 @@ function createPolymarketDepositConfig({
57
57
  }) {
58
58
  const isPerpsRoute = (routingId) => routingId === POLYMARKET_PERPS_ROUTING_ID;
59
59
  const defaultsToPerps = defaultAccount === "perps";
60
+ const predictionsRecipient = getAddress(predictions.address);
61
+ const perpsRecipient = getAddress(perps.address);
60
62
  return {
61
63
  targetChain: polygon.id.toString(),
62
64
  targetAsset: POLYGON_USDCE,
@@ -68,13 +70,15 @@ function createPolymarketDepositConfig({
68
70
  // The preselected destination (the "Deposit to" dropdown derives its
69
71
  // selection from `dynamicRoutingId`, so both fields must agree).
70
72
  dynamicRoutingId: defaultsToPerps ? POLYMARKET_PERPS_ROUTING_ID : POLYMARKET_PREDICTIONS_ROUTING_ID,
71
- customRecipient: defaultsToPerps ? perps.address : predictions.address,
73
+ customRecipient: defaultsToPerps ? perpsRecipient : predictionsRecipient,
72
74
  modalTitle: ({ dynamicRoutingId }) => isPerpsRoute(dynamicRoutingId) ? modalTitles?.perps ?? "Deposit (Perps)" : modalTitles?.predictions ?? "Deposit (Predictions)",
73
75
  getMinDepositUSD: ({ dynamicRoutingId }) => isPerpsRoute(dynamicRoutingId) ? PERPS_MIN_DEPOSIT_USD : 0,
74
76
  generateActionsParams: (_targetAssetAmount, outputConfig) => isPerpsRoute(
75
77
  outputConfig?.dynamicRoutingId
76
- ) ? createPerpsGenerateActionParams({ recipientAddress: perps.address })() : createPredictionsGenerateActionParams({
77
- recipientAddress: predictions.address
78
+ ) ? createPerpsGenerateActionParams({
79
+ recipientAddress: perpsRecipient
80
+ })() : createPredictionsGenerateActionParams({
81
+ recipientAddress: predictionsRecipient
78
82
  })(),
79
83
  // Both transfer directions are integrator-owned; the step picks the source
80
84
  // account's transfer. The accounts already have exactly the handle shape
@@ -16588,7 +16588,7 @@
16588
16588
  outline-color: var(--rk-colors-tertiaryText);
16589
16589
  }
16590
16590
 
16591
- /* vanilla-extract-css-ns:src/components/FunInput/FunInput.css.ts.vanilla.css?source=#H4sIAAAAAAAAA82Uz04CMRDG7zzFXEww2W66CsSUeBEPPoA346F_BmjYnW66LQjGdze7KKwQjBFIOLb9-s3vmzaTriJyO-Dw3gEIXlJlg3UkQOY5ZH1eVKCjspopXFn0XZ7eJsAT4CkfJJBdDzsfnXTtke15kCNsCW6EYAtUMxuYiwE9q0pLTMUQHCWwL7JEP0VNgUL6iSUBfNgB-JbKskTpJWncr_oSliXeUywU-tfGghVu9duVXqNSUs8m3kUyTLvcebHOVkqPFOriynmD_vs2gIsht4TbjYU1YSog4_xqeHR7e0KUudQ4dblB3xB-Yc2l7zLmZ2vMilWoHRnpl8_4FtoWg3Pk2rofD3h3QY0HcKXUNiwF8LTfhvxzTqnrmqN68WgrqXI07bTyPGkPYMtTYesLeqQt1PGfz5xkBh4025kxXEzdHP1GvxmA2c7BgW7vxooVjhwR6oDmYaN-qq3agOOzjoDx_1_hE18g1-OJBgAA */
16591
+ /* vanilla-extract-css-ns:src/components/FunInput/FunInput.css.ts.vanilla.css?source=#H4sIAAAAAAAAA9VUzU7DMAy-7yl8QRpSU6X8TCgTF8aBB-CGOLipt0VrncpNgQ7x7qgdbGXTEGIIxDHJ5-_Hjhwva9JupOF5ABAEuXLBeTaAeQ7JuS4qsHXqrEpp6UiGOj6NQEegYz2KIDkeD14G8Yoj2eFgz9QDnBijHilduKB8HUhUVTpWaR2C5wh2QY75I6gTKFBmjg3o8QDgHYplSSjIlnZV70JT0iXXRUpy31Gowi8_KznrUCnaxUx8zZmyPvdiVtlKFOLQiqdeMpL3agBfh9wxbS4eXRbmBhKtj9rj1HNQUyxc3hhwPCdxHc9hbT8zpszR0tznGUnn_M3uA8pQKVms7FeqIus5Q2lu6Sn0KUa_mXejerjxi38wKABfonWhMaDj8775L-dH22pO2sO1qzDNKet3AX-3C3vi4E_Fsf9gqBuzh3_i7Ed2716yrd2mzdw_kKzx68WbbD3smcJ2rLqiiWcmGyi7WqNvWqq-wemfrJjp96fzCplzuQIZBwAA */
16592
16592
  [data-rk] .zue0i60 {
16593
16593
  transition: all 150ms cubic-bezier(0.3, 0, 0.06, 1);
16594
16594
  }
@@ -16608,6 +16608,7 @@
16608
16608
  border: none;
16609
16609
  outline: none;
16610
16610
  width: 100%;
16611
+ font-family: inherit;
16611
16612
  transition: all 150ms cubic-bezier(0.3, 0, 0.06, 1);
16612
16613
  }
16613
16614
  [data-rk] .zue0i64::-moz-placeholder {
@@ -16621,6 +16622,7 @@
16621
16622
  border: none;
16622
16623
  outline: none;
16623
16624
  width: 100%;
16625
+ font-family: inherit;
16624
16626
  }
16625
16627
  [data-rk] .zue0i66::-moz-placeholder {
16626
16628
  color: var(--rk-colors-secondaryText);
@@ -16633,6 +16635,7 @@
16633
16635
  border: none;
16634
16636
  outline: none;
16635
16637
  width: 100%;
16638
+ font-family: inherit;
16636
16639
  transition: all 150ms cubic-bezier(0.3, 0, 0.06, 1);
16637
16640
  opacity: 0.5;
16638
16641
  }
@@ -16647,6 +16650,7 @@
16647
16650
  border: none;
16648
16651
  outline: none;
16649
16652
  width: 100%;
16653
+ font-family: inherit;
16650
16654
  opacity: 0.5;
16651
16655
  }
16652
16656
  [data-rk] .zue0i6a::-moz-placeholder {
@@ -16660,6 +16664,7 @@
16660
16664
  border: none;
16661
16665
  outline: none;
16662
16666
  width: 100%;
16667
+ font-family: inherit;
16663
16668
  transition: all 150ms cubic-bezier(0.3, 0, 0.06, 1);
16664
16669
  }
16665
16670
  [data-rk] .zue0i6c::-moz-placeholder {
@@ -16683,6 +16688,7 @@
16683
16688
  border: none;
16684
16689
  outline: none;
16685
16690
  width: 100%;
16691
+ font-family: inherit;
16686
16692
  }
16687
16693
  [data-rk] .zue0i6f::-moz-placeholder {
16688
16694
  color: var(--rk-colors-secondaryText);
@@ -4,11 +4,11 @@ import {
4
4
  } from "./chunk-2NBYHUIW.js";
5
5
  import {
6
6
  useFunkitConfig
7
- } from "./chunk-VT3ERWXE.js";
7
+ } from "./chunk-CGHPNWIF.js";
8
+ import "./chunk-UPZNKPYU.js";
8
9
  import {
9
10
  Box
10
11
  } from "./chunk-LUHEVXPD.js";
11
- import "./chunk-UPZNKPYU.js";
12
12
  import {
13
13
  useFunkitTranslation
14
14
  } from "./chunk-STLOQEN7.js";
@@ -16491,7 +16491,7 @@
16491
16491
  animation-name: stgjxld;
16492
16492
  }
16493
16493
 
16494
- /* vanilla-extract-css-ns:src/components/FunInput/FunInput.css.ts.vanilla.css?source=#H4sIAAAAAAAAA82Uz04CMRDG7zzFXEww2W66CsSUeBEPPoA346F_BmjYnW66LQjGdze7KKwQjBFIOLb9-s3vmzaTriJyO-Dw3gEIXlJlg3UkQOY5ZH1eVKCjspopXFn0XZ7eJsAT4CkfJJBdDzsfnXTtke15kCNsCW6EYAtUMxuYiwE9q0pLTMUQHCWwL7JEP0VNgUL6iSUBfNgB-JbKskTpJWncr_oSliXeUywU-tfGghVu9duVXqNSUs8m3kUyTLvcebHOVkqPFOriynmD_vs2gIsht4TbjYU1YSog4_xqeHR7e0KUudQ4dblB3xB-Yc2l7zLmZ2vMilWoHRnpl8_4FtoWg3Pk2rofD3h3QY0HcKXUNiwF8LTfhvxzTqnrmqN68WgrqXI07bTyPGkPYMtTYesLeqQt1PGfz5xkBh4025kxXEzdHP1GvxmA2c7BgW7vxooVjhwR6oDmYaN-qq3agOOzjoDx_1_hE18g1-OJBgAA */
16494
+ /* vanilla-extract-css-ns:src/components/FunInput/FunInput.css.ts.vanilla.css?source=#H4sIAAAAAAAAA9VUzU7DMAy-7yl8QRpSU6X8TCgTF8aBB-CGOLipt0VrncpNgQ7x7qgdbGXTEGIIxDHJ5-_Hjhwva9JupOF5ABAEuXLBeTaAeQ7JuS4qsHXqrEpp6UiGOj6NQEegYz2KIDkeD14G8Yoj2eFgz9QDnBijHilduKB8HUhUVTpWaR2C5wh2QY75I6gTKFBmjg3o8QDgHYplSSjIlnZV70JT0iXXRUpy31Gowi8_KznrUCnaxUx8zZmyPvdiVtlKFOLQiqdeMpL3agBfh9wxbS4eXRbmBhKtj9rj1HNQUyxc3hhwPCdxHc9hbT8zpszR0tznGUnn_M3uA8pQKVms7FeqIus5Q2lu6Sn0KUa_mXejerjxi38wKABfonWhMaDj8775L-dH22pO2sO1qzDNKet3AX-3C3vi4E_Fsf9gqBuzh3_i7Ed2716yrd2mzdw_kKzx68WbbD3smcJ2rLqiiWcmGyi7WqNvWqq-wemfrJjp96fzCplzuQIZBwAA */
16495
16495
  [data-rk] .zue0i60 {
16496
16496
  transition: all 150ms cubic-bezier(0.3, 0, 0.06, 1);
16497
16497
  }
@@ -16511,6 +16511,7 @@
16511
16511
  border: none;
16512
16512
  outline: none;
16513
16513
  width: 100%;
16514
+ font-family: inherit;
16514
16515
  transition: all 150ms cubic-bezier(0.3, 0, 0.06, 1);
16515
16516
  }
16516
16517
  [data-rk] .zue0i64::-moz-placeholder {
@@ -16524,6 +16525,7 @@
16524
16525
  border: none;
16525
16526
  outline: none;
16526
16527
  width: 100%;
16528
+ font-family: inherit;
16527
16529
  }
16528
16530
  [data-rk] .zue0i66::-moz-placeholder {
16529
16531
  color: var(--rk-colors-secondaryText);
@@ -16536,6 +16538,7 @@
16536
16538
  border: none;
16537
16539
  outline: none;
16538
16540
  width: 100%;
16541
+ font-family: inherit;
16539
16542
  transition: all 150ms cubic-bezier(0.3, 0, 0.06, 1);
16540
16543
  opacity: 0.5;
16541
16544
  }
@@ -16550,6 +16553,7 @@
16550
16553
  border: none;
16551
16554
  outline: none;
16552
16555
  width: 100%;
16556
+ font-family: inherit;
16553
16557
  opacity: 0.5;
16554
16558
  }
16555
16559
  [data-rk] .zue0i6a::-moz-placeholder {
@@ -16563,6 +16567,7 @@
16563
16567
  border: none;
16564
16568
  outline: none;
16565
16569
  width: 100%;
16570
+ font-family: inherit;
16566
16571
  transition: all 150ms cubic-bezier(0.3, 0, 0.06, 1);
16567
16572
  }
16568
16573
  [data-rk] .zue0i6c::-moz-placeholder {
@@ -16586,6 +16591,7 @@
16586
16591
  border: none;
16587
16592
  outline: none;
16588
16593
  width: 100%;
16594
+ font-family: inherit;
16589
16595
  }
16590
16596
  [data-rk] .zue0i6f::-moz-placeholder {
16591
16597
  color: var(--rk-colors-secondaryText);
@@ -1,14 +1,13 @@
1
1
  "use client";
2
2
  import {
3
3
  PolymarketDepositAccountDropdown
4
- } from "../chunk-4IWQ2UT5.js";
5
- import "../chunk-ZEXZQOAO.js";
6
- import "../chunk-VT3ERWXE.js";
7
- import "../chunk-LUHEVXPD.js";
4
+ } from "../chunk-4O4YAFYK.js";
5
+ import "../chunk-CGHPNWIF.js";
8
6
  import "../chunk-UPZNKPYU.js";
7
+ import "../chunk-LUHEVXPD.js";
9
8
  import "../chunk-STLOQEN7.js";
10
- import "../chunk-F4SCUKY6.js";
11
- import "../chunk-O5CTDT3L.js";
9
+ import "../chunk-TQVRP3Z2.js";
10
+ import "../chunk-7LKK5QMZ.js";
12
11
  import "../chunk-AHYOV7AV.js";
13
12
  export {
14
13
  PolymarketDepositAccountDropdown
@@ -4,8 +4,8 @@ import {
4
4
  POLYMARKET_PREDICTIONS_ROUTING_ID,
5
5
  createPolymarketDepositConfig,
6
6
  createPredictionsGenerateActionParams
7
- } from "../chunk-F4SCUKY6.js";
8
- import "../chunk-O5CTDT3L.js";
7
+ } from "../chunk-TQVRP3Z2.js";
8
+ import "../chunk-7LKK5QMZ.js";
9
9
  import "../chunk-AHYOV7AV.js";
10
10
  export {
11
11
  POLYMARKET_PERPS_ROUTING_ID,
@@ -16491,7 +16491,7 @@
16491
16491
  animation-name: stgjxld;
16492
16492
  }
16493
16493
 
16494
- /* vanilla-extract-css-ns:src/components/FunInput/FunInput.css.ts.vanilla.css?source=#H4sIAAAAAAAAA82Uz04CMRDG7zzFXEww2W66CsSUeBEPPoA346F_BmjYnW66LQjGdze7KKwQjBFIOLb9-s3vmzaTriJyO-Dw3gEIXlJlg3UkQOY5ZH1eVKCjspopXFn0XZ7eJsAT4CkfJJBdDzsfnXTtke15kCNsCW6EYAtUMxuYiwE9q0pLTMUQHCWwL7JEP0VNgUL6iSUBfNgB-JbKskTpJWncr_oSliXeUywU-tfGghVu9duVXqNSUs8m3kUyTLvcebHOVkqPFOriynmD_vs2gIsht4TbjYU1YSog4_xqeHR7e0KUudQ4dblB3xB-Yc2l7zLmZ2vMilWoHRnpl8_4FtoWg3Pk2rofD3h3QY0HcKXUNiwF8LTfhvxzTqnrmqN68WgrqXI07bTyPGkPYMtTYesLeqQt1PGfz5xkBh4025kxXEzdHP1GvxmA2c7BgW7vxooVjhwR6oDmYaN-qq3agOOzjoDx_1_hE18g1-OJBgAA */
16494
+ /* vanilla-extract-css-ns:src/components/FunInput/FunInput.css.ts.vanilla.css?source=#H4sIAAAAAAAAA9VUzU7DMAy-7yl8QRpSU6X8TCgTF8aBB-CGOLipt0VrncpNgQ7x7qgdbGXTEGIIxDHJ5-_Hjhwva9JupOF5ABAEuXLBeTaAeQ7JuS4qsHXqrEpp6UiGOj6NQEegYz2KIDkeD14G8Yoj2eFgz9QDnBijHilduKB8HUhUVTpWaR2C5wh2QY75I6gTKFBmjg3o8QDgHYplSSjIlnZV70JT0iXXRUpy31Gowi8_KznrUCnaxUx8zZmyPvdiVtlKFOLQiqdeMpL3agBfh9wxbS4eXRbmBhKtj9rj1HNQUyxc3hhwPCdxHc9hbT8zpszR0tznGUnn_M3uA8pQKVms7FeqIus5Q2lu6Sn0KUa_mXejerjxi38wKABfonWhMaDj8775L-dH22pO2sO1qzDNKet3AX-3C3vi4E_Fsf9gqBuzh3_i7Ed2716yrd2mzdw_kKzx68WbbD3smcJ2rLqiiWcmGyi7WqNvWqq-wemfrJjp96fzCplzuQIZBwAA */
16495
16495
  [data-rk] .zue0i60 {
16496
16496
  transition: all 150ms cubic-bezier(0.3, 0, 0.06, 1);
16497
16497
  }
@@ -16511,6 +16511,7 @@
16511
16511
  border: none;
16512
16512
  outline: none;
16513
16513
  width: 100%;
16514
+ font-family: inherit;
16514
16515
  transition: all 150ms cubic-bezier(0.3, 0, 0.06, 1);
16515
16516
  }
16516
16517
  [data-rk] .zue0i64::-moz-placeholder {
@@ -16524,6 +16525,7 @@
16524
16525
  border: none;
16525
16526
  outline: none;
16526
16527
  width: 100%;
16528
+ font-family: inherit;
16527
16529
  }
16528
16530
  [data-rk] .zue0i66::-moz-placeholder {
16529
16531
  color: var(--rk-colors-secondaryText);
@@ -16536,6 +16538,7 @@
16536
16538
  border: none;
16537
16539
  outline: none;
16538
16540
  width: 100%;
16541
+ font-family: inherit;
16539
16542
  transition: all 150ms cubic-bezier(0.3, 0, 0.06, 1);
16540
16543
  opacity: 0.5;
16541
16544
  }
@@ -16550,6 +16553,7 @@
16550
16553
  border: none;
16551
16554
  outline: none;
16552
16555
  width: 100%;
16556
+ font-family: inherit;
16553
16557
  opacity: 0.5;
16554
16558
  }
16555
16559
  [data-rk] .zue0i6a::-moz-placeholder {
@@ -16563,6 +16567,7 @@
16563
16567
  border: none;
16564
16568
  outline: none;
16565
16569
  width: 100%;
16570
+ font-family: inherit;
16566
16571
  transition: all 150ms cubic-bezier(0.3, 0, 0.06, 1);
16567
16572
  }
16568
16573
  [data-rk] .zue0i6c::-moz-placeholder {
@@ -16586,6 +16591,7 @@
16586
16591
  border: none;
16587
16592
  outline: none;
16588
16593
  width: 100%;
16594
+ font-family: inherit;
16589
16595
  }
16590
16596
  [data-rk] .zue0i6f::-moz-placeholder {
16591
16597
  color: var(--rk-colors-secondaryText);
@@ -1,18 +1,17 @@
1
1
  "use client";
2
2
  import {
3
3
  PolymarketDepositAccountDropdown
4
- } from "../chunk-4IWQ2UT5.js";
5
- import "../chunk-ZEXZQOAO.js";
6
- import "../chunk-VT3ERWXE.js";
7
- import "../chunk-LUHEVXPD.js";
4
+ } from "../chunk-4O4YAFYK.js";
5
+ import "../chunk-CGHPNWIF.js";
8
6
  import "../chunk-UPZNKPYU.js";
7
+ import "../chunk-LUHEVXPD.js";
9
8
  import "../chunk-STLOQEN7.js";
10
9
  import {
11
10
  POLYMARKET_PERPS_ROUTING_ID,
12
11
  POLYMARKET_PREDICTIONS_ROUTING_ID,
13
12
  createPolymarketDepositConfig,
14
13
  createPredictionsGenerateActionParams
15
- } from "../chunk-F4SCUKY6.js";
14
+ } from "../chunk-TQVRP3Z2.js";
16
15
  import {
17
16
  AMOUNT_PLACEHOLDER,
18
17
  COLLATERAL_ONRAMP_ABI,
@@ -23,7 +22,7 @@ import {
23
22
  VAULT_DEPOSITOR_POLYGON,
24
23
  createPerpsGenerateActionParams,
25
24
  createPolymarketWithdrawalConfig
26
- } from "../chunk-O5CTDT3L.js";
25
+ } from "../chunk-7LKK5QMZ.js";
27
26
  import "../chunk-AHYOV7AV.js";
28
27
  export {
29
28
  AMOUNT_PLACEHOLDER,
@@ -9,7 +9,7 @@ import {
9
9
  VAULT_DEPOSITOR_POLYGON,
10
10
  createPerpsGenerateActionParams,
11
11
  createPolymarketWithdrawalConfig
12
- } from "../chunk-O5CTDT3L.js";
12
+ } from "../chunk-7LKK5QMZ.js";
13
13
  import "../chunk-AHYOV7AV.js";
14
14
  export {
15
15
  AMOUNT_PLACEHOLDER,
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ export interface BitcoinLightningBannerProps {
3
+ /** Navigates into the Bitcoin Lightning flow (Input Amount step). */
4
+ onClick: () => void;
5
+ }
6
+ /**
7
+ * Promotional banner whose "Try it now" link drops the user straight into the
8
+ * Bitcoin Lightning checkout flow. Purely presentational — the caller decides
9
+ * whether to render it (the Transfer Crypto screen gates it on
10
+ * `isLightningEnabled` and the user not being geoblocked).
11
+ */
12
+ export declare const BitcoinLightningBanner: ({ onClick, }: BitcoinLightningBannerProps) => React.JSX.Element;
@@ -17,9 +17,8 @@ type SerializedCandidate = Omit<DynamicTargetAssetCandidate, 'generateActionsPar
17
17
  * Historical Checkout Configuration stored in the server
18
18
  * This is similar to FunkitCheckoutConfig but with some fields changed to serializable types
19
19
  * */
20
- export type ServerCheckoutConfig = Omit<DeepSerialize<FunkitCheckoutConfig>, 'dynamicTargetAssetCandidates' | 'finalizedToken'> & {
20
+ export type ServerCheckoutConfig = Omit<DeepSerialize<FunkitCheckoutConfig>, 'dynamicTargetAssetCandidates'> & {
21
21
  dynamicTargetAssetCandidates?: SerializedCandidate[];
22
- finalizedToken?: SerializedCandidate;
23
22
  };
24
23
  type HistoricalCheckoutItemKey = 'id' | 'startTimestampMs' | 'finalDollarValue' | 'latestQuote' | 'depositAddress' | 'selectedSourceAssetInfo' | 'selectedPaymentMethodInfo';
25
24
  /**
@@ -37,7 +36,7 @@ export interface HistoricalCheckoutItem extends Pick<FunkitActiveCheckoutItem, H
37
36
  * Build the checkout config for a deposit re-started from history (the
38
37
  * "New deposit" CTA). Serialized history can't carry closures, so every
39
38
  * function-valued field is only restorable from the live config:
40
- * - candidates' per-route `generateActionsParams` (and `finalizedToken`) are
39
+ * - candidates' per-route `generateActionsParams` are
41
40
  * stripped on serialize, so the still-active checkout takes the
42
41
  * function-bearing candidates from `liveConfig` — otherwise a destination
43
42
  * switch would re-bind `dynamicRoutingId` without its post-action; a
@@ -112,7 +112,6 @@ export interface QuoteBuilder {
112
112
  hasKnownAmountBeforeQuote(config: {
113
113
  targetAssetAmount?: number;
114
114
  targetAssetTicker: string;
115
- finalizedToken?: unknown;
116
115
  }): boolean;
117
116
  /** Compute the token/fiat amount for a quick-option percentage button.
118
117
  * Returns the action to dispatch to the state reducer. */
@@ -2,7 +2,7 @@ import type { DirectExecution } from '@funkit/api-base';
2
2
  import { type RecentDepositsApiQueryParams } from '@funkit/connect-core';
3
3
  import type { UseQueryResult } from '@tanstack/react-query';
4
4
  import { type PurifiedCheckoutHistoryItem } from '../../utils/purifyCheckoutHistoryItem';
5
- type RecentDepositsApiQuery = Omit<RecentDepositsApiQueryParams, 'isFasterNotificationsEnabled' | 'logger'>;
5
+ type RecentDepositsApiQuery = Omit<RecentDepositsApiQueryParams, 'logger'>;
6
6
  type DefaultDEQueryKey = 'apiKey' | 'userId' | 'refreshIntervalMs';
7
7
  export type RecentDEQuerySimplified = {
8
8
  isVisible: boolean;
@@ -1,22 +1,19 @@
1
+ import type { Address } from 'viem';
2
+ import type { AssetHoldingsMap } from '../domains/wallet';
1
3
  /**
2
- * Note: this hook right now is only used for xStock targets for Nado.
3
- * Backend will add support here, at which point this can be retired.
4
+ * Merges payable sources the wallet-assets API doesn't index an xStock the
5
+ * user holds + its wrapper into the holdings map.
4
6
  *
5
- * Merges payable sources the wallet-assets API doesn't index ones the user
6
- * already holds and can deposit directly (an xStock + its wrapper) — into the
7
- * holdings map.
7
+ * Note: xStock/Nado-only today; possibly deprecate once backend supports these natively.
8
8
  *
9
- * - Gated by the `enable-rpc-xstock-assets` feature gate (off by default): when
10
- * off, no RPC reads fire and nothing is injected.
11
- * - Single seam composed into `useWalletAssetHoldings`, so every consumer sees
12
- * the same map and keys can't drift across call sites.
13
- * - Injects only what the API doesn't already list, so we never clobber the API's
14
- * price/USD with our on-chain read. Customer/asset gating lives upstream.
9
+ * - Gated by `enable-rpc-xstock-assets` (off by default) → no RPC reads, nothing injected.
10
+ * - Single seam in `useWalletAssetHoldings` so keys can't drift across consumers.
11
+ * - Injects only what the API omits (never clobbers its price/USD); gating lives upstream.
15
12
  */
16
- import type { AssetHoldingsMap } from '../domains/wallet';
17
- export declare function useInjectedAssetHoldings({ targetChainId, existingHoldings, }: {
13
+ export declare function useInjectedAssetHoldings({ targetChainId, existingHoldings, xstockWrappedTokenAddress, }: {
18
14
  targetChainId: string;
19
15
  existingHoldings: AssetHoldingsMap | undefined;
16
+ xstockWrappedTokenAddress?: Address;
20
17
  }): {
21
18
  holdings: AssetHoldingsMap;
22
19
  isLoading: boolean;
@@ -14,7 +14,7 @@ export type UnavailablePaymentSource = {
14
14
  };
15
15
  export declare const usePaymentSources: (currentPaymentMethodInfo: ConnectablePaymentMethodInfo | null, targetChainId: string) => {
16
16
  isFallback: boolean;
17
- preferred: PaymentMethod[] | (import("../domains/paymentMethods").PaymentMethodBrokerageInfo | import("../domains/paymentMethods").PaymentMethodAccountInfo | import("../domains/paymentMethods").PaymentMethodVirtualBankInfo)[];
17
+ preferred: (import("../domains/paymentMethods").PaymentMethodBrokerageInfo | import("../domains/paymentMethods").PaymentMethodAccountInfo | import("../domains/paymentMethods").PaymentMethodVirtualBankInfo)[] | PaymentMethod[];
18
18
  moreSources: PaymentMethod[];
19
19
  unavailable: UnavailablePaymentSource[];
20
20
  hasUsableBalance: boolean;
@@ -0,0 +1,11 @@
1
+ import { type PaymentMethodBitcoinLightningInfo } from '../domains/paymentMethods';
2
+ /**
3
+ * Enters the Bitcoin Lightning checkout flow: builds the Bitcoin Lightning
4
+ * payment method info and sets it, plus the BTC source asset, on the checkout
5
+ * context. Mirrors the selection path in `SourceChange` so any entry point
6
+ * (e.g. the Transfer Crypto banner) lands the user in the same flow.
7
+ *
8
+ * Returns the built `paymentMethodInfo` so the caller can navigate to the next
9
+ * step (Input Amount, which then routes to the Lightning Invoice screen).
10
+ */
11
+ export declare function useStartBitcoinLightning(): () => PaymentMethodBitcoinLightningInfo;
@@ -5,9 +5,11 @@
5
5
  * - Fetch only. Scoped to xStock targets (`assetClass === 'xstock'`) so we don't
6
6
  * fire RPC reads when there's nothing to read.
7
7
  */
8
+ import type { Address } from 'viem';
8
9
  import type { AssetHoldingsItem } from '../domains/wallet';
9
- export declare function useXstockAssetHoldings({ targetChainId, enabled, }: {
10
+ export declare function useXstockAssetHoldings({ targetChainId, wrappedTokenAddress, enabled, }: {
10
11
  targetChainId: string;
12
+ wrappedTokenAddress?: Address;
11
13
  enabled?: boolean;
12
14
  }): {
13
15
  data: AssetHoldingsItem[];