@funkit/connect 9.27.1 → 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 (69) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/dist/clients/{chunk-UBBBMSKL.js → chunk-4O4YAFYK.js} +65 -6
  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-E36JOYL4.js → chunk-TQVRP3Z2.js} +1 -1
  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/usePaymentSources.d.ts +1 -1
  19. package/dist/hooks/useStartBitcoinLightning.d.ts +11 -0
  20. package/dist/index.css +7 -1
  21. package/dist/index.js +603 -721
  22. package/dist/modals/CheckoutModal/InputAmount/state.d.ts +4 -9
  23. package/dist/modals/CheckoutModal/TransferToken/DirectExecutionNotification.d.ts +1 -3
  24. package/dist/modals/CheckoutModal/TransferToken/TransferToken.d.ts +1 -1
  25. package/dist/modals/WithdrawalModal/LighterWithdrawal.d.ts +6 -0
  26. package/dist/providers/FunkitCheckoutContext/types.d.ts +0 -2
  27. package/dist/utils/checkout.d.ts +0 -10
  28. package/dist/utils/withdrawal.d.ts +12 -0
  29. package/dist/wallets/walletConnectors/bifrostWallet/bifrostWallet.js +2 -2
  30. package/dist/wallets/walletConnectors/bitgetWallet/bitgetWallet.js +2 -2
  31. package/dist/wallets/walletConnectors/bybitWallet/bybitWallet.js +2 -2
  32. package/dist/wallets/walletConnectors/clvWallet/clvWallet.js +2 -2
  33. package/dist/wallets/walletConnectors/coin98Wallet/coin98Wallet.js +2 -2
  34. package/dist/wallets/walletConnectors/coreWallet/coreWallet.js +2 -2
  35. package/dist/wallets/walletConnectors/foxWallet/foxWallet.js +2 -2
  36. package/dist/wallets/walletConnectors/frontierWallet/frontierWallet.js +2 -2
  37. package/dist/wallets/walletConnectors/gateWallet/gateWallet.js +2 -2
  38. package/dist/wallets/walletConnectors/index.js +65 -65
  39. package/dist/wallets/walletConnectors/metaMaskWallet/metaMaskWallet.js +2 -2
  40. package/dist/wallets/walletConnectors/okxWallet/okxWallet.js +2 -2
  41. package/dist/wallets/walletConnectors/rainbowWallet/rainbowWallet.js +2 -2
  42. package/dist/wallets/walletConnectors/roninWallet/roninWallet.js +2 -2
  43. package/dist/wallets/walletConnectors/safepalWallet/safepalWallet.js +2 -2
  44. package/dist/wallets/walletConnectors/subWallet/subWallet.js +2 -2
  45. package/dist/wallets/walletConnectors/tokenPocketWallet/tokenPocketWallet.js +2 -2
  46. package/dist/wallets/walletConnectors/trustWallet/trustWallet.js +2 -2
  47. package/dist/wallets/walletConnectors/zerionWallet/zerionWallet.js +2 -2
  48. package/package.json +4 -4
  49. package/dist/clients/chunk-ZEXZQOAO.js +0 -96
  50. package/dist/clients/polymarket/usePolymarketAccountBalances.js +0 -12
  51. package/dist/{clients/polymarket → hooks}/usePolymarketAccountBalances.d.ts +0 -0
  52. package/dist/wallets/walletConnectors/{chunk-W2LCLDPX.js → chunk-2VP2F6EK.js} +3 -3
  53. package/dist/wallets/walletConnectors/{chunk-IULPZP2Q.js → chunk-4T6ZSRJF.js} +3 -3
  54. package/dist/wallets/walletConnectors/{chunk-WAHGI5L7.js → chunk-6BW3HLBG.js} +3 -3
  55. package/dist/wallets/walletConnectors/{chunk-YO2K4MBH.js → chunk-CCQV2ZET.js} +3 -3
  56. package/dist/wallets/walletConnectors/{chunk-TKB2OY6G.js → chunk-CPI4TD43.js} +3 -3
  57. package/dist/wallets/walletConnectors/{chunk-OX37G4YT.js → chunk-F5XEEVG6.js} +3 -3
  58. package/dist/wallets/walletConnectors/{chunk-JPN6TWIT.js → chunk-HNRB7KJU.js} +3 -3
  59. package/dist/wallets/walletConnectors/{chunk-WKNQMP4A.js → chunk-HTHAK6XB.js} +3 -3
  60. package/dist/wallets/walletConnectors/{chunk-GUQM4QSL.js → chunk-MIQTHJ6X.js} +3 -3
  61. package/dist/wallets/walletConnectors/{chunk-4NV5BYRP.js → chunk-RB3HR4R2.js} +3 -3
  62. package/dist/wallets/walletConnectors/{chunk-SWFF3TWJ.js → chunk-RVOY537T.js} +3 -3
  63. package/dist/wallets/walletConnectors/{chunk-KI5Y2BBF.js → chunk-STVVP43G.js} +3 -3
  64. package/dist/wallets/walletConnectors/{chunk-OEEGYENV.js → chunk-UK7C2JXW.js} +3 -3
  65. package/dist/wallets/walletConnectors/{chunk-YQFGVZGR.js → chunk-VAPGUPHO.js} +3 -3
  66. package/dist/wallets/walletConnectors/{chunk-XCNHV3HS.js → chunk-VTM6EECM.js} +3 -3
  67. package/dist/wallets/walletConnectors/{chunk-NR2OGDHQ.js → chunk-X6CGV36L.js} +3 -3
  68. package/dist/wallets/walletConnectors/{chunk-AVDUNQUW.js → chunk-YEZM4CK4.js} +3 -3
  69. package/dist/wallets/walletConnectors/{chunk-KCRO2AGO.js → chunk-ZNX4EMPB.js} +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,54 @@
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
+
3
52
  ## 9.27.1
4
53
 
5
54
  ### Patch 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,11 +15,11 @@ import {
18
15
  import {
19
16
  POLYMARKET_PERPS_ROUTING_ID,
20
17
  POLYMARKET_PREDICTIONS_ROUTING_ID
21
- } from "./chunk-E36JOYL4.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";
@@ -318,6 +315,68 @@ var AnimatedCaretDownIcon = ({
318
315
  );
319
316
  };
320
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
+
321
380
  // src/components/FunNoResults/FunNoResults.tsx
322
381
  import React6 from "react";
323
382
 
@@ -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,7 +8,7 @@ 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
14
  import { encodeFunctionData, erc20Abi, getAddress, maxUint256 } from "viem";
@@ -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-UBBBMSKL.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-E36JOYL4.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-E36JOYL4.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-UBBBMSKL.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-E36JOYL4.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;
@@ -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;
package/dist/index.css CHANGED
@@ -16541,7 +16541,7 @@
16541
16541
  animation-name: stgjxld;
16542
16542
  }
16543
16543
 
16544
- /* 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 */
16544
+ /* 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 */
16545
16545
  [data-rk] .zue0i60 {
16546
16546
  transition: all 150ms cubic-bezier(0.3, 0, 0.06, 1);
16547
16547
  }
@@ -16561,6 +16561,7 @@
16561
16561
  border: none;
16562
16562
  outline: none;
16563
16563
  width: 100%;
16564
+ font-family: inherit;
16564
16565
  transition: all 150ms cubic-bezier(0.3, 0, 0.06, 1);
16565
16566
  }
16566
16567
  [data-rk] .zue0i64::-moz-placeholder {
@@ -16574,6 +16575,7 @@
16574
16575
  border: none;
16575
16576
  outline: none;
16576
16577
  width: 100%;
16578
+ font-family: inherit;
16577
16579
  }
16578
16580
  [data-rk] .zue0i66::-moz-placeholder {
16579
16581
  color: var(--rk-colors-secondaryText);
@@ -16586,6 +16588,7 @@
16586
16588
  border: none;
16587
16589
  outline: none;
16588
16590
  width: 100%;
16591
+ font-family: inherit;
16589
16592
  transition: all 150ms cubic-bezier(0.3, 0, 0.06, 1);
16590
16593
  opacity: 0.5;
16591
16594
  }
@@ -16600,6 +16603,7 @@
16600
16603
  border: none;
16601
16604
  outline: none;
16602
16605
  width: 100%;
16606
+ font-family: inherit;
16603
16607
  opacity: 0.5;
16604
16608
  }
16605
16609
  [data-rk] .zue0i6a::-moz-placeholder {
@@ -16613,6 +16617,7 @@
16613
16617
  border: none;
16614
16618
  outline: none;
16615
16619
  width: 100%;
16620
+ font-family: inherit;
16616
16621
  transition: all 150ms cubic-bezier(0.3, 0, 0.06, 1);
16617
16622
  }
16618
16623
  [data-rk] .zue0i6c::-moz-placeholder {
@@ -16636,6 +16641,7 @@
16636
16641
  border: none;
16637
16642
  outline: none;
16638
16643
  width: 100%;
16644
+ font-family: inherit;
16639
16645
  }
16640
16646
  [data-rk] .zue0i6f::-moz-placeholder {
16641
16647
  color: var(--rk-colors-secondaryText);