@coinlist-co/react 0.12.1-rc.73e7e17 → 0.12.1-rc.9aec85a

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 (31) hide show
  1. package/dist/{chunk-3ZZCK4IT.js → chunk-DCW7NQXH.js} +129 -3
  2. package/dist/chunk-DCW7NQXH.js.map +1 -0
  3. package/dist/{chunk-D42IQHQZ.js → chunk-MOE5S6CE.js} +1345 -257
  4. package/dist/chunk-MOE5S6CE.js.map +1 -0
  5. package/dist/{chunk-ZUVVNZJJ.js → chunk-VH34YC3Q.js} +72 -330
  6. package/dist/chunk-VH34YC3Q.js.map +1 -0
  7. package/dist/client/index.cjs +9477 -8125
  8. package/dist/client/index.cjs.map +1 -1
  9. package/dist/client/index.d.cts +398 -166
  10. package/dist/client/index.d.ts +398 -166
  11. package/dist/client/index.js +4959 -4544
  12. package/dist/client/index.js.map +1 -1
  13. package/dist/server/index.cjs +1458 -263
  14. package/dist/server/index.cjs.map +1 -1
  15. package/dist/server/index.d.cts +1 -1
  16. package/dist/server/index.d.ts +1 -1
  17. package/dist/server/index.js +5 -3
  18. package/dist/server/index.js.map +1 -1
  19. package/dist/{collections-CMoojQ9M.d.ts → token-registry-snapshot-BNBNuDu1.d.ts} +65 -2
  20. package/dist/{collections-koI4cjYa.d.cts → token-registry-snapshot-CqI6dXM_.d.cts} +65 -2
  21. package/dist/{config-BmK0t-XO.d.cts → tokens-namespace-CIWBtgt2.d.cts} +463 -229
  22. package/dist/{config-BmK0t-XO.d.ts → tokens-namespace-CIWBtgt2.d.ts} +463 -229
  23. package/dist/universal/index.cjs +1275 -450
  24. package/dist/universal/index.cjs.map +1 -1
  25. package/dist/universal/index.d.cts +431 -54
  26. package/dist/universal/index.d.ts +431 -54
  27. package/dist/universal/index.js +26 -16
  28. package/package.json +1 -1
  29. package/dist/chunk-3ZZCK4IT.js.map +0 -1
  30. package/dist/chunk-D42IQHQZ.js.map +0 -1
  31. package/dist/chunk-ZUVVNZJJ.js.map +0 -1
@@ -1,9 +1,9 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode, ButtonHTMLAttributes } from 'react';
3
- import { A as AuthorizationCode, C as CodeVerifier, L as Logger, W as WalletError, E as Erc20Namespace, a as EthereumChain, b as EvmContractAddress, B as BlockchainAmount, c as CoinListTokenSaleNamespace, O as OfferId, d as OfferOptionId, e as AssetId, P as Participation, f as CoinListTokenSaleNamespaceImpl, U as UniversalNamespaceContext, g as OndoNamespace, h as AssetSymbol, i as OfferSwapContract, j as OndoBuyTransaction, k as OndoSellTransaction, l as OndoSwapTransactionCore, m as OrderBookSide, n as OndoNamespaceImpl, S as SuperstateSwapNamespace, o as WalletsNamespace, p as Bps, q as EvmWalletAddress, r as SuperstateSwapNamespaceImpl, R as RequirementsNamespace, s as Requirement, t as RequirementsNamespaceImpl, u as Config, v as OAuthAccessToken, w as OffersNamespace, T as TokensNamespace, x as StablecoinSymbol, y as Erc20Asset, z as OfferDetail, D as TokenMetadata, F as OfferType, G as Offer, H as RequirementStatusInfo, I as RequirementType, J as RequirementStatusValue, K as OfferOptionAddress, M as RequirementId, N as KycLevelName, Q as DocumentSubmission, V as WalletChallengeType, X as PinoLoggerOptions, Y as OndoTradingStatus, Z as AssetDecimals, _ as BuildOndoBuyParams, $ as BuildOndoSellParams, a0 as OndoQuote, a1 as OndoQuoteSize, a2 as TokenIdentifier, a3 as OfferOptionAddressId, a4 as TokenLogo } from '../config-BmK0t-XO.cjs';
4
- export { a5 as DebugEvent, a6 as FrontlineEventId, a7 as HttpError, a8 as HttpResponse, a9 as KycToken, aa as LogBinding, ab as LogBindings, ac as LogCause, ad as LogLevel, ae as LogScope, af as LogValue, ag as ProductionLogLevel, ah as RedactedWalletError, ai as RequestId, aj as SafeEvent, ak as SafeFields, al as UnredactedFields } from '../config-BmK0t-XO.cjs';
5
- import { P as PKCEConfig, E as EvmWallet, S as SwapQuote, A as AssetIconUrl, a as ShortenedWalletAddress, F as FormattedAmountAssetUi, b as FormattedPercentUi, T as TxExplorerUrl, C as ConnectWallet, N as NonEmptyArray } from '../collections-koI4cjYa.cjs';
6
- export { B as BroadcastTxParams, c as EvmSigner, W as WriteContractParams } from '../collections-koI4cjYa.cjs';
3
+ import { A as AuthorizationCode, C as CodeVerifier, L as Logger, W as WalletError, E as Erc20Namespace, a as EthereumChain, b as EvmContractAddress, B as BlockchainAmount, c as CoinListTokenSaleNamespace, O as OfferId, d as OfferOptionId, e as AssetId, P as Participation, f as CoinListTokenSaleNamespaceImpl, U as UniversalNamespaceContext, g as OndoNamespace, h as AssetSymbol, i as OfferSwapContract, j as OndoBuyTransaction, k as OndoSellTransaction, l as OndoSwapTransactionCore, m as OrderBookSide, n as OndoNamespaceImpl, S as SuperstateSwapNamespace, o as WalletsNamespace, p as Bps, q as EvmWalletAddress, r as SuperstateSwapNamespaceImpl, R as RequirementsNamespace, s as Requirement, t as RequirementsNamespaceImpl, u as Config, v as OAuthAccessToken, w as OffersNamespace, T as TokensNamespace, x as StablecoinSymbol, y as Erc20Asset, z as OfferDetail, D as TokenMetadata, F as OfferType, G as OndoSwapOfferDetail, H as CoinListTokenSaleOfferDetail, I as SuperstateSwapOfferDetail, J as Offer, K as RequirementStatusInfo, M as RequirementType, N as RequirementStatusValue, Q as OfferOptionAddress, V as RequirementId, X as KycLevelName, Y as DocumentSubmission, Z as WalletChallengeType, _ as PinoLoggerOptions, $ as OndoTradingStatus, a0 as AssetDecimals, a1 as BuildOndoBuyParams, a2 as BuildOndoSellParams, a3 as OndoQuote, a4 as OndoQuoteSize, a5 as TokenIdentifier, a6 as OfferOptionAddressId, a7 as TokenLogo } from '../tokens-namespace-CIWBtgt2.cjs';
4
+ export { a8 as DebugEvent, a9 as FrontlineEventId, aa as HttpError, ab as HttpResponse, ac as KycToken, ad as LogBinding, ae as LogBindings, af as LogCause, ag as LogLevel, ah as LogScope, ai as LogValue, aj as ProductionLogLevel, ak as RedactedWalletError, al as RequestId, am as RpcFailureReason, an as SafeEvent, ao as SafeFields, ap as UnredactedFields } from '../tokens-namespace-CIWBtgt2.cjs';
5
+ import { P as PKCEConfig, E as EvmWallet, S as SwapQuote, A as AssetIconUrl, a as ShortenedWalletAddress, F as FormattedAmountAssetUi, b as FormattedPercentUi, T as TxExplorerUrl, C as ConnectWallet, N as NonEmptyArray, c as TokenRegistrySnapshot } from '../token-registry-snapshot-CqI6dXM_.cjs';
6
+ export { B as BroadcastTxParams, d as EvmSigner, W as WriteContractParams } from '../token-registry-snapshot-CqI6dXM_.cjs';
7
7
  import { Hash } from 'viem';
8
8
  import * as class_variance_authority_types from 'class-variance-authority/types';
9
9
  import { VariantProps } from 'class-variance-authority';
@@ -508,6 +508,14 @@ type SwapExecutionPhase = 'checking-status' | 'checking-allowance' | 'resetting-
508
508
  /** A step-tagged reason {@link executeSwap} failed. */
509
509
  type SwapExecutionError = {
510
510
  step: 'status-check';
511
+ }
512
+ /**
513
+ * The contract has suspended swapping and may resume. Distinct from
514
+ * `swap-stopped`, which is permanent, so a host can say "try again shortly"
515
+ * to one and "this swap has closed" to the other.
516
+ */
517
+ | {
518
+ step: 'swap-paused';
511
519
  } | {
512
520
  step: 'swap-stopped';
513
521
  } | Erc20AllowanceError | {
@@ -1507,13 +1515,10 @@ type OndoCheckoutConfig = {
1507
1515
  * catalogue does agree can return `AssetSymbol(offer.asset.code)`; one whose
1508
1516
  * does not maps the exceptions.
1509
1517
  *
1510
- * Must be total. Ondo's viewmodel is called for every offer - React hooks
1511
- * cannot be called conditionally - so this runs for Superstate and
1512
- * token-sale offers too, where its result is passed to a viewmodel that is
1513
- * `enabled: false` and never reads it. Throwing on an offer you do not
1514
- * recognise would take down a checkout Ondo has no part in; return anything.
1518
+ * Called only for an `ondo::swap` offer, when that branch is mounted. A
1519
+ * Superstate or token-sale checkout never runs it.
1515
1520
  */
1516
- symbol: (offer: OfferDetail) => AssetSymbol;
1521
+ symbol: (offer: OndoSwapOfferDetail) => AssetSymbol;
1517
1522
  /**
1518
1523
  * Which way the trade runs: `buy` invests in the asset, `sell` liquidates a
1519
1524
  * holding of it.
@@ -1524,10 +1529,8 @@ type OndoCheckoutConfig = {
1524
1529
  * page rather than of the catalogue. A host closes over whatever selects the
1525
1530
  * direction - a route, a tab - and returns it.
1526
1531
  *
1527
- * Still called for every offer, Superstate's and the token sale's included,
1528
- * because both Ondo viewmodels are called unconditionally; on those its
1529
- * answer is handed to a viewmodel that is `enabled: false` and never reads
1530
- * it. Nothing to be total over, so nothing to get wrong.
1532
+ * Called only for an `ondo::swap` offer, when that branch is mounted. A
1533
+ * Superstate or token-sale checkout never runs it.
1531
1534
  *
1532
1535
  * Required, with no default. The wire parameter behind it defaults to `buy`
1533
1536
  * silently, and the day sell ships an unstated direction should be a compile
@@ -1561,7 +1564,7 @@ type SuperstateCheckoutConfig = {
1561
1564
  * offers returns `null`.
1562
1565
  */
1563
1566
  type CoinListTokenSaleCheckoutConfig = {
1564
- render: (offer: OfferDetail) => ReactNode;
1567
+ render: (offer: CoinListTokenSaleOfferDetail) => ReactNode;
1565
1568
  };
1566
1569
  /**
1567
1570
  * The parts of {@link CheckoutConfig} only the host can know.
@@ -1613,8 +1616,8 @@ interface CheckoutContainerProps {
1613
1616
  /** What each offer type needs beyond the offer itself. */
1614
1617
  config: CheckoutConfig;
1615
1618
  /**
1616
- * Default `true`. `false` turns off every request and timer in every
1617
- * provider, for a checkout that is mounted but not on screen yet.
1619
+ * Default `true`. `false` turns off every request and timer in the mounted
1620
+ * provider, for a checkout that is on the tree but not on screen yet.
1618
1621
  */
1619
1622
  enabled?: boolean;
1620
1623
  className?: string;
@@ -1623,11 +1626,10 @@ interface CheckoutContainerProps {
1623
1626
  * The plug-and-play checkout: hand it an offer and it renders the right
1624
1627
  * provider's flow.
1625
1628
  *
1626
- * Every provider's viewmodel is called on every render, because React hooks
1627
- * cannot be called conditionally — and both Ondo products, since `side` picks
1628
- * between them at the same level. Only the one matching `offer.type` and
1629
- * `side` is `enabled`, so the rest fetch nothing and run no timers — that
1630
- * `enabled` flag is why every checkout viewmodel has one.
1629
+ * Only the matching provider's container is mounted, so its viewmodel is the
1630
+ * only one that runs. `enabled` is forwarded as-is — a pause for a checkout
1631
+ * that is mounted but not on screen yet, not a stand-in for the offer-type
1632
+ * switch.
1631
1633
  *
1632
1634
  * The `switch` is exhaustive against `OfferType`, and the `default` branch
1633
1635
  * assigns to `const exhaustive: never`, so a new offer type is a compile error
@@ -2107,7 +2109,7 @@ declare function OndoBuyOrderConfirmed({ state, onEvent, className, }: OndoOrder
2107
2109
 
2108
2110
  interface OndoBuyCheckoutContainerProps {
2109
2111
  /** The offer being bought: names the asset and supplies its logo. */
2110
- offer: OfferDetail;
2112
+ offer: OndoSwapOfferDetail;
2111
2113
  /**
2112
2114
  * Ondo's API symbol for the asset, e.g. `AAPLon`.
2113
2115
  *
@@ -2129,8 +2131,8 @@ interface OndoBuyCheckoutContainerProps {
2129
2131
  */
2130
2132
  wallets: CheckoutWalletSelection;
2131
2133
  /**
2132
- * Default `true`. `false` turns off every request and timer, which is what
2133
- * `CheckoutContainer` uses to call each provider's checkout unconditionally.
2134
+ * Default `true`. `false` turns off every request and timer, for a checkout
2135
+ * that is mounted but not on screen yet.
2134
2136
  */
2135
2137
  enabled?: boolean;
2136
2138
  /** Fired once the swap has mined. The dialog shows either way. */
@@ -2539,7 +2541,7 @@ declare function OndoSellOrderConfirmed({ state, onEvent, className, }: OndoSell
2539
2541
 
2540
2542
  interface OndoSellCheckoutContainerProps {
2541
2543
  /** The offer being sold: names the asset and supplies its logo. */
2542
- offer: OfferDetail;
2544
+ offer: OndoSwapOfferDetail;
2543
2545
  /**
2544
2546
  * Ondo's API symbol for the asset, e.g. `TSLAon`.
2545
2547
  *
@@ -2566,8 +2568,8 @@ interface OndoSellCheckoutContainerProps {
2566
2568
  */
2567
2569
  wallets: CheckoutWalletSelection;
2568
2570
  /**
2569
- * Default `true`. `false` turns off every request and timer, which is what
2570
- * `CheckoutContainer` uses to call each provider's checkout unconditionally.
2571
+ * Default `true`. `false` turns off every request and timer, for a checkout
2572
+ * that is mounted but not on screen yet.
2571
2573
  */
2572
2574
  enabled?: boolean;
2573
2575
  /** Fired once the swap has mined. The dialog shows either way. */
@@ -3092,7 +3094,7 @@ declare function SuperstateReviewView(props: SuperstateReviewViewProps): ReactNo
3092
3094
 
3093
3095
  interface SuperstateSwapCheckoutContainerProps {
3094
3096
  /** The offer being bought: names the asset, the window and the minimum. */
3095
- offer: OfferDetail;
3097
+ offer: SuperstateSwapOfferDetail;
3096
3098
  /**
3097
3099
  * The chain the order executes on: the balance reads, the approval and the
3098
3100
  * swap. The swap contract is looked up from it, so a chain with none
@@ -3106,8 +3108,8 @@ interface SuperstateSwapCheckoutContainerProps {
3106
3108
  */
3107
3109
  wallets: CheckoutWalletSelection;
3108
3110
  /**
3109
- * Default `true`. `false` turns off every request and timer, which is what
3110
- * `CheckoutContainer` uses to call each provider's checkout unconditionally.
3111
+ * Default `true`. `false` turns off every request and timer, for a checkout
3112
+ * that is mounted but not on screen yet.
3111
3113
  */
3112
3114
  enabled?: boolean;
3113
3115
  /** Fired once the swap has mined. The dialog shows either way. */
@@ -3186,24 +3188,71 @@ interface SuperstateWalletViewProps {
3186
3188
  */
3187
3189
  declare function SuperstateWalletView(props: SuperstateWalletViewProps): ReactNode;
3188
3190
 
3191
+ /**
3192
+ * One image as an `<img>` renders it: a `src` for a consumer that takes a
3193
+ * single URL, and the `srcSet` candidates for one that also knows the size
3194
+ * it renders at. `srcSet` is absent for a vector logo and for the offer's own
3195
+ * artwork, neither of which offers the browser a choice.
3196
+ */
3197
+ type LogoImageUi = {
3198
+ src: string;
3199
+ srcSet?: string;
3200
+ };
3201
+ /**
3202
+ * The logo a catalogue card renders for an offer, with the registry's
3203
+ * dark-theme counterpart when it configures one.
3204
+ *
3205
+ * `dark` is `null` rather than absent so a renderer has to decide what to do
3206
+ * without one: fall back to `light`, which is the registry's own rule.
3207
+ */
3208
+ type OfferLogoUi = {
3209
+ light: LogoImageUi;
3210
+ dark: LogoImageUi | null;
3211
+ };
3212
+ declare const OfferLogoUi: {
3213
+ /**
3214
+ * The registry's logo for the token an offer is about, or the offer's own
3215
+ * artwork otherwise, or `null` when neither exists.
3216
+ *
3217
+ * The registry wins when both exist because it is the token's real artwork
3218
+ * where `Offer.logoUrl` is catalogue artwork, and because a swap publishes
3219
+ * without artwork more often than not - which is why `logoUrl` is `null`
3220
+ * on the swap variants.
3221
+ */
3222
+ fromOffer: (offer: {
3223
+ logoUrl: string | null;
3224
+ }, tokenMetadata: TokenMetadata | null) => OfferLogoUi | null;
3225
+ };
3226
+
3189
3227
  /**
3190
3228
  * An offer as {@link OfferAssetCard} renders it. Browse chrome: circular
3191
- * `logoUrl`, company `name`, and asset `symbol` (`asset.code`). No wordmark.
3192
- * `fromOffer` omits `name` and `symbol` — the list payload has neither — so a
3193
- * list-mapped card is honest about being logo-only. Prefer
3194
- * {@link OfferAssetCardUi.fromDetail} when the host has detail.
3229
+ * `logo`, `name`, and asset `symbol`. No wordmark.
3230
+ *
3231
+ * All three come from the public token registry when the caller hands over
3232
+ * the metadata of the token the offer is about. Without it, `fromOffer`
3233
+ * omits `name` and `symbol` - the list payload has neither - so a list-mapped
3234
+ * card is honest about being logo-only, and `fromDetail` reads them from the
3235
+ * detail payload (`name`, `asset.code`).
3195
3236
  */
3196
3237
  type OfferAssetCardUi = {
3197
3238
  id: OfferId;
3198
- /** Absent when the list payload has no display name. */
3239
+ /** Absent when neither the registry nor a detail payload names the offer. */
3199
3240
  name?: string;
3200
- /** Absent when the list payload has no asset. Display form of `asset.code`. */
3241
+ /** Absent when neither the registry nor a detail payload carries a ticker. */
3201
3242
  symbol?: string;
3202
- logoUrl: string;
3243
+ /** `null` when neither the registry nor the offer carries artwork. */
3244
+ logo: OfferLogoUi | null;
3203
3245
  };
3204
3246
  declare const OfferAssetCardUi: {
3205
- fromOffer: (offer: Offer) => OfferAssetCardUi;
3206
- fromDetail: (detail: OfferDetail) => OfferAssetCardUi;
3247
+ /**
3248
+ * `tokenMetadata` is the registry's entry for the token the offer is about
3249
+ * (`TokenRegistrySnapshot.forOffer`), or `null` when it lists none. The
3250
+ * registry names win over the offer's own where both exist: they are the
3251
+ * token's canonical name, ticker and artwork, where the offer's are
3252
+ * catalogue copy.
3253
+ */
3254
+ fromOffer: (offer: Offer, tokenMetadata?: TokenMetadata | null) => OfferAssetCardUi;
3255
+ fromDetail: (detail: OfferDetail, tokenMetadata?: TokenMetadata | null) => OfferAssetCardUi;
3207
3256
  };
3208
3257
 
3209
3258
  interface OffersAssetGridProps {
@@ -3228,66 +3277,42 @@ interface OffersAssetGridProps {
3228
3277
  */
3229
3278
  declare function OffersAssetGrid({ offers, onOfferClick, maxColumns, className, containerClassName, }: OffersAssetGridProps): ReactNode;
3230
3279
 
3231
- interface OffersGridContainerProps {
3232
- /** Maximum number of columns to render when horizontal space allows. */
3233
- maxColumns?: number;
3234
- /** Optional className applied to the grid element. */
3235
- className?: string;
3236
- /** Optional className applied to the outer wrapper element. */
3237
- containerClassName?: string;
3238
- /** Optional loading slot shown while offers are being fetched. */
3239
- loading?: ReactNode;
3240
- /** Optional error slot shown when loading offers fails. */
3241
- error?: ReactNode;
3242
- /** Optional empty state slot shown when there are no available offers. */
3243
- emptyState?: ReactNode;
3244
- /** Optional per-offer click handler; when omitted, cards are not clickable. */
3245
- onOfferClick?: (offer: Offer) => void;
3246
- /**
3247
- * Offers pre-fetched on the server (e.g. via `CoinListServer#offers.list()`).
3248
- * When provided, the component uses this data as-is and skips the client-side
3249
- * fetch entirely.
3250
- */
3251
- data?: Offer[];
3252
- }
3253
- /**
3254
- * Displays a responsive live-sale grid of {@link OfferSaleCard}, backed by
3255
- * {@link useOffersGridViewModel}. List offers have no display name — the card
3256
- * shows logo + tagline until the host maps from detail. For equities /
3257
- * past-sales browse rows, compose {@link OffersAssetGrid} instead.
3258
- *
3259
- * Pass `data` (pre-fetched server-side) to use that data as-is and skip the
3260
- * client-side fetch entirely. Uses the `loading` / `error` / `emptyState` slots
3261
- * when provided; otherwise renders the standard fallbacks. Cards are
3262
- * interactive only when `onOfferClick` is provided.
3263
- *
3264
- * Self-scoped: renders fully styled on its own, with no `CoinListStyleScope`
3265
- * needed.
3266
- */
3267
- declare function OffersGridContainer({ data, onOfferClick, ...viewProps }?: OffersGridContainerProps): ReactNode;
3268
-
3269
3280
  /**
3270
3281
  * An offer as {@link OfferSaleCard} renders it. Countdown copy is derived in
3271
3282
  * the leaf from `startsAt` / `endsAt` so it can tick; the mapper does not
3272
- * invent a name, price, FDV, unlock schedule, banner overlay, or wordmark.
3273
- * `fromOffer` omits `name` because the list payload has none — do not derive
3274
- * one from `slug`, and do not expect a wordmark. The card pairs `logoUrl` with
3275
- * `name` as an h2 and renders the h2 only when the field is present. Prefer
3276
- * {@link OfferSaleCardUi.fromDetail} when the host has a name. Missing logo
3277
- * omits the icon — name and tagline only.
3283
+ * invent a price, FDV, unlock schedule, banner overlay, or wordmark.
3284
+ *
3285
+ * `name` and `logo` come from the public token registry when the caller
3286
+ * hands over the metadata of the token the offer is about, and from the
3287
+ * offer otherwise. The list payload carries no name, so `fromOffer` leaves
3288
+ * `name` absent without registry metadata - do not derive one from `slug`.
3289
+ * The card pairs `logo` with `name` as an h2 and renders each only when
3290
+ * present. Prefer {@link OfferSaleCardUi.fromDetail} when the host has a
3291
+ * name and no registry answer.
3292
+ *
3293
+ * `tagline` and `startsAt` are null for an offer that runs no sale window, an
3294
+ * Ondo swap: the card then omits the tagline and, with nothing to count down
3295
+ * to, reads as live.
3278
3296
  */
3279
3297
  type OfferSaleCardUi = {
3280
3298
  id: OfferId;
3281
- /** Absent when the list payload has no display name; only `fromDetail` sets it. */
3299
+ /** Absent when neither the registry nor a detail payload names the offer. */
3282
3300
  name?: string;
3283
- tagline: string;
3284
- logoUrl: string;
3285
- startsAt: Date;
3301
+ tagline: string | null;
3302
+ /** `null` when neither the registry nor the offer carries artwork. */
3303
+ logo: OfferLogoUi | null;
3304
+ startsAt: Date | null;
3286
3305
  endsAt: Date | null;
3287
3306
  };
3288
3307
  declare const OfferSaleCardUi: {
3289
- fromOffer: (offer: Offer) => OfferSaleCardUi;
3290
- fromDetail: (detail: OfferDetail) => OfferSaleCardUi;
3308
+ /**
3309
+ * `tokenMetadata` is the registry's entry for the token the offer is about
3310
+ * (`TokenRegistrySnapshot.forOffer`), or `null` when it lists none. The
3311
+ * registry names win over the offer's own where both exist: they are the
3312
+ * token's canonical name and artwork, where the offer's are catalogue copy.
3313
+ */
3314
+ fromOffer: (offer: Offer, tokenMetadata?: TokenMetadata | null) => OfferSaleCardUi;
3315
+ fromDetail: (detail: OfferDetail, tokenMetadata?: TokenMetadata | null) => OfferSaleCardUi;
3291
3316
  };
3292
3317
 
3293
3318
  type OffersGridUiState = {
@@ -3308,6 +3333,96 @@ type OffersGridUiEvent = {
3308
3333
  offerId: OfferId;
3309
3334
  };
3310
3335
 
3336
+ /**
3337
+ * What the grid fetches, pre-fetched on the server instead. Each half is
3338
+ * independent: seed `offers` (via `CoinListServer#offers.list()`) and the
3339
+ * client still fetches the registry, seed `tokens` (via
3340
+ * `CoinListServer#tokens.list()`) and it still fetches the offers, seed both
3341
+ * and the grid makes no request of its own.
3342
+ */
3343
+ interface OffersGridData {
3344
+ offers?: Offer[];
3345
+ tokens?: TokenMetadata[];
3346
+ }
3347
+ interface UseOffersGridViewModelOptions {
3348
+ /** See {@link OffersGridData}. */
3349
+ data?: OffersGridData;
3350
+ /**
3351
+ * Default `true`. When `false` nothing is fetched, so the hook can be called
3352
+ * unconditionally while the grid is not needed yet.
3353
+ */
3354
+ enabled?: boolean;
3355
+ /** Called with the domain offer behind the card the user clicked. */
3356
+ onOfferClick?: (offer: Offer) => void;
3357
+ }
3358
+ interface UseOffersGridViewModelResult {
3359
+ state: OffersGridUiState;
3360
+ onEvent: (event: OffersGridUiEvent) => void;
3361
+ }
3362
+ /**
3363
+ * Drives {@link OffersGridView}: loads the offers and the public token
3364
+ * registry, formats each offer for its card - registry name and logo where
3365
+ * the registry lists its token, the offer's own fields otherwise - and
3366
+ * resolves a clicked card back to its domain offer for the host callback.
3367
+ *
3368
+ * The grid waits for both loads before showing content, so a card paints
3369
+ * once with its final artwork rather than flashing the catalogue logo and
3370
+ * then the registry's. A registry failure degrades rather than blanks: every
3371
+ * card falls back to the offer's own fields.
3372
+ *
3373
+ * Pass `enabled: false` to skip both fetches when the hook must be called but
3374
+ * the grid is not needed yet.
3375
+ */
3376
+ declare function useOffersGridViewModel(options?: UseOffersGridViewModelOptions): UseOffersGridViewModelResult;
3377
+
3378
+ interface OffersGridContainerProps {
3379
+ /** Maximum number of columns to render when horizontal space allows. */
3380
+ maxColumns?: number;
3381
+ /** Optional className applied to the grid element. */
3382
+ className?: string;
3383
+ /** Optional className applied to the outer wrapper element. */
3384
+ containerClassName?: string;
3385
+ /** Optional loading slot shown while offers are being fetched. */
3386
+ loading?: ReactNode;
3387
+ /** Optional error slot shown when loading offers fails. */
3388
+ error?: ReactNode;
3389
+ /** Optional empty state slot shown when there are no available offers. */
3390
+ emptyState?: ReactNode;
3391
+ /** Optional per-offer click handler; when omitted, cards are not clickable. */
3392
+ onOfferClick?: (offer: Offer) => void;
3393
+ /**
3394
+ * What the grid would otherwise fetch, pre-fetched on the server: `offers`
3395
+ * via `CoinListServer#offers.list()`, `tokens` via
3396
+ * `CoinListServer#tokens.list()`. Each half skips its own client-side
3397
+ * fetch; pass both for a grid that makes no request of its own.
3398
+ */
3399
+ data?: OffersGridData;
3400
+ /**
3401
+ * Default `true`. When `false` nothing is fetched, so the container can be
3402
+ * mounted while the grid is not needed yet.
3403
+ */
3404
+ enabled?: boolean;
3405
+ }
3406
+ /**
3407
+ * Displays a responsive live-sale grid of {@link OfferSaleCard}, backed by
3408
+ * {@link useOffersGridViewModel}. Each card is named and illustrated by the
3409
+ * public token registry where it lists the offer's token, and by the offer's
3410
+ * own fields otherwise - list offers carry no display name, so an unlisted
3411
+ * one shows logo + tagline until the host maps from detail. For equities /
3412
+ * past-sales browse rows, compose {@link OffersAssetGrid} instead.
3413
+ *
3414
+ * Pass `data` (offers and tokens pre-fetched server-side) to use them as-is
3415
+ * and skip the client-side fetches. Pass `enabled={false}` to skip the fetches
3416
+ * when the container is mounted but the grid is not needed yet. Uses the
3417
+ * `loading` / `error` / `emptyState` slots when provided; otherwise renders
3418
+ * the standard fallbacks. Cards are interactive only when `onOfferClick` is
3419
+ * provided.
3420
+ *
3421
+ * Self-scoped: renders fully styled on its own, with no `CoinListStyleScope`
3422
+ * needed.
3423
+ */
3424
+ declare function OffersGridContainer({ data, onOfferClick, enabled, ...viewProps }?: OffersGridContainerProps): ReactNode;
3425
+
3311
3426
  interface OffersGridViewProps {
3312
3427
  state: OffersGridUiState;
3313
3428
  onEvent: (event: OffersGridUiEvent) => void;
@@ -3346,8 +3461,10 @@ interface OfferAssetCardProps {
3346
3461
  containerClassName?: string;
3347
3462
  }
3348
3463
  /**
3349
- * Light browse-row catalogue card. Self-scoped. Header is API `logoUrl`
3350
- * beside company `name` (h2) and asset `symbol` under it — not a wordmark.
3464
+ * Light browse-row catalogue card. Self-scoped. Header is the offer's `logo`
3465
+ * (the token registry's where it lists the token, with its dark-theme
3466
+ * variant, the catalogue's otherwise) beside `name` (h2) and asset `symbol`
3467
+ * under it — not a wordmark.
3351
3468
  * Responsive hug: tighter pad / logo / type below `md`, desktop keeps the
3352
3469
  * H4 + 48px logo row. Hosts compose this beside {@link OfferSaleCard}; the
3353
3470
  * card does not pick a variant itself.
@@ -3364,8 +3481,9 @@ interface OfferSaleCardProps {
3364
3481
  containerClassName?: string;
3365
3482
  }
3366
3483
  /**
3367
- * Dark live-sale catalogue card. Self-scoped. Header is API `logoUrl` beside
3368
- * the company `name` as an h2, then the tagline — not a wordmark. The same
3484
+ * Dark live-sale catalogue card. Self-scoped. Header is the offer's `logo`
3485
+ * (the token registry's where it lists the token, the catalogue's otherwise)
3486
+ * beside the `name` as an h2, then the tagline — not a wordmark. The same
3369
3487
  * logo is painted as a faint right-shifted watermark over the gradient.
3370
3488
  * Responsive hug layout; View offer always renders. No token price, FDV or unlock.
3371
3489
  */
@@ -3373,16 +3491,23 @@ declare function OfferSaleCard({ offer, onClick, className, containerClassName,
3373
3491
 
3374
3492
  type RequirementsChecklistUiState = {
3375
3493
  type: 'loading';
3376
- } | {
3377
- type: 'not-authenticated';
3494
+ title: string;
3495
+ description: string;
3378
3496
  } | {
3379
3497
  type: 'error';
3498
+ title: string;
3380
3499
  } | {
3381
3500
  type: 'content';
3382
3501
  title: string;
3383
3502
  description: string;
3384
3503
  items: RequirementsChecklistItemUi[];
3385
3504
  ineligible: boolean;
3505
+ /**
3506
+ * Unsupported jurisdiction, once the country is known. When set, the
3507
+ * description, rows, and Continue are replaced by this neutral banner.
3508
+ * Absent otherwise.
3509
+ */
3510
+ blockedMessage?: string;
3386
3511
  /** `null` when the host passed no `onContinue`, so no button is shown. */
3387
3512
  continueAction: {
3388
3513
  enabled: boolean;
@@ -3458,6 +3583,14 @@ type RequirementItemUi = {
3458
3583
  multiWallet: boolean;
3459
3584
  /** The user's connected wallets. Single-slot requirements have at most one. */
3460
3585
  connectedWallets: ConnectedWalletUi[];
3586
+ /** Absent means the shared verification sentences. */
3587
+ statusMessages?: {
3588
+ /** Absent for tax documentation: `in_progress` stays a required step. */
3589
+ pending?: string;
3590
+ completed: string;
3591
+ /** Full sentence. "Contact support" inside it is the support link. */
3592
+ rejected: string;
3593
+ };
3461
3594
  };
3462
3595
  declare const RequirementItemUi: {
3463
3596
  fromDomain(req: Requirement, statusInfo: RequirementStatusInfo | undefined, label: string, description: string, addresses?: OfferOptionAddress[]): RequirementItemUi;
@@ -3610,13 +3743,19 @@ interface RequirementItemProps {
3610
3743
  */
3611
3744
  walletsStatus?: WalletsStatus;
3612
3745
  onContactSupport?: (() => void) | null;
3746
+ /**
3747
+ * 16px under the open section, so its button does not sit on the next row's
3748
+ * divider. The last row omits this: the checklist's own gap is the space
3749
+ * before the footer.
3750
+ */
3751
+ spaceBeforeNextRow?: boolean;
3613
3752
  }
3614
3753
  /**
3615
3754
  * A single requirement row (label, status, expandable action zone). Self-scoped:
3616
3755
  * renders fully styled on its own, with no `CoinListStyleScope` needed. Also composed
3617
3756
  * by {@link RequirementsChecklist}.
3618
3757
  */
3619
- declare function RequirementItem({ ui, expanded, onToggle, className, onAction, onRemoveWallet, walletsStatus, onContactSupport, }: RequirementItemProps): react.JSX.Element;
3758
+ declare function RequirementItem({ ui, expanded, onToggle, className, onAction, onRemoveWallet, walletsStatus, onContactSupport, spaceBeforeNextRow, }: RequirementItemProps): react.JSX.Element;
3620
3759
 
3621
3760
  type LoadRequirementsReason = 'not-authenticated' | 'generic-error';
3622
3761
  type LoadRequirementsState = {
@@ -3641,6 +3780,12 @@ interface UseRequirementsOptions {
3641
3780
  * Calling `refetch()` will still trigger a fresh fetch.
3642
3781
  */
3643
3782
  data?: RequirementsData;
3783
+ /**
3784
+ * When `false`, the hook sends no request. A seeded or already-fetched
3785
+ * `CONTENT` survives; otherwise the hook stays `LOADING`. Defaults to `true`.
3786
+ * `refetch()` is a no-op while disabled.
3787
+ */
3788
+ enabled?: boolean;
3644
3789
  }
3645
3790
  interface UseRequirementsResult {
3646
3791
  requirementsState: LoadRequirementsState;
@@ -3653,6 +3798,8 @@ interface UseRequirementsResult {
3653
3798
  *
3654
3799
  * Pass `data` (pre-fetched server-side) to use that data as-is and skip
3655
3800
  * the initial client-side fetch. Calling `refetch()` will still trigger a fresh fetch.
3801
+ * Pass `enabled: false` to skip the fetch when the hook must be called but
3802
+ * the data is not needed yet.
3656
3803
  *
3657
3804
  * Returns `LOADING` while CoinList is initializing or while data is being fetched.
3658
3805
  * Returns `CONTENT` with requirements and statuses on success.
@@ -3704,12 +3851,8 @@ interface RequirementsChecklistContainerProps {
3704
3851
  /** Optional loading slot. */
3705
3852
  loading?: ReactNode;
3706
3853
  /**
3707
- * Rendered when the user is not authenticated. Defaults to
3708
- * {@link CoinListSignInCardContainer}, which prompts the user to sign in and starts
3709
- * the CoinList OAuth flow. Pass `null` to render nothing.
3854
+ * Replaces the error banner under the title. The title still renders.
3710
3855
  */
3711
- unauthenticatedState?: ReactNode;
3712
- /** Optional error slot. */
3713
3856
  error?: ReactNode;
3714
3857
  className?: string;
3715
3858
  /**
@@ -3720,6 +3863,11 @@ interface RequirementsChecklistContainerProps {
3720
3863
  * not part of `RequirementsData` and are always fetched client-side.
3721
3864
  */
3722
3865
  data?: RequirementsData;
3866
+ /**
3867
+ * Default `true`. When `false` nothing is fetched, so the container can be
3868
+ * mounted while the checklist is not needed yet.
3869
+ */
3870
+ enabled?: boolean;
3723
3871
  /**
3724
3872
  * Options for the inline Sumsub verification flow, shown when
3725
3873
  * `onRequirementActionOverride` is not provided. The flow starts whenever
@@ -3740,11 +3888,11 @@ interface RequirementsChecklistContainerProps {
3740
3888
  * specified option.
3741
3889
  *
3742
3890
  * Pass `data` (pre-fetched server-side) to use that data as-is and skip the
3743
- * initial client-side fetch.
3891
+ * initial client-side fetch. Pass `enabled={false}` to skip fetches when the
3892
+ * container is mounted but the checklist is not needed yet.
3744
3893
  *
3745
- * When the user is not authenticated, renders a sign-in card instead of the
3746
- * checklist - without fetching. Pass `unauthenticatedState` to customize that
3747
- * state, or `null` to render nothing.
3894
+ * A logged-out session renders the error state and does not fetch. The host
3895
+ * should not mount the checklist when it already knows the user is logged out.
3748
3896
  *
3749
3897
  * By default, clicking a requirement's action button opens the corresponding
3750
3898
  * CoinList page in a new tab via {@link CoinListClient#requirements.handle}. It
@@ -3754,26 +3902,21 @@ interface RequirementsChecklistContainerProps {
3754
3902
  *
3755
3903
  * Self-scoped: renders fully styled on its own, with no `CoinListStyleScope` needed.
3756
3904
  */
3757
- declare function RequirementsChecklistContainer({ loading, error, unauthenticatedState, className, ...options }: RequirementsChecklistContainerProps): ReactNode;
3905
+ declare function RequirementsChecklistContainer({ loading, error, className, enabled, ...options }: RequirementsChecklistContainerProps): ReactNode;
3758
3906
 
3759
3907
  interface RequirementsChecklistViewProps {
3760
3908
  state: RequirementsChecklistUiState;
3761
3909
  onEvent: (event: RequirementsChecklistUiEvent) => void;
3762
3910
  /** Optional loading slot. */
3763
3911
  loading?: ReactNode;
3764
- /** Optional error slot. */
3912
+ /** Replaces the error banner under the title. The title still renders. */
3765
3913
  error?: ReactNode;
3766
- /**
3767
- * Rendered when the user is not authenticated. Nothing is rendered when
3768
- * omitted; `RequirementsChecklistContainer` passes a connected sign-in card.
3769
- */
3770
- unauthenticatedState?: ReactNode;
3771
3914
  className?: string;
3772
3915
  }
3773
3916
  /**
3774
- * Renders the requirements checklist: its header, one row per requirement, the
3775
- * eligibility banner and the continue action. Pure: the rows arrive already
3776
- * shaped in `state`, and every interaction leaves through `onEvent`.
3917
+ * Renders the requirements checklist: its header, one row per requirement, and
3918
+ * the continue row. Pure: the rows arrive already shaped in `state`, and every
3919
+ * interaction leaves through `onEvent`.
3777
3920
  *
3778
3921
  * The flows the checklist can open (tax document, wallet connect, identity
3779
3922
  * verification) are composed by `RequirementsChecklistContainer`, which owns
@@ -4207,6 +4350,11 @@ interface UseParticipationsOptions {
4207
4350
  * When provided, the hook uses this data as-is and skips the client-side fetch entirely.
4208
4351
  */
4209
4352
  data?: Participation[];
4353
+ /**
4354
+ * When `false`, the hook sends no request. A seeded or already-fetched
4355
+ * `CONTENT` survives; otherwise the hook stays `LOADING`. Defaults to `true`.
4356
+ */
4357
+ enabled?: boolean;
4210
4358
  }
4211
4359
  interface UseParticipationsResult {
4212
4360
  participationsState: LoadParticipationsState;
@@ -4216,7 +4364,8 @@ interface UseParticipationsResult {
4216
4364
  * Optionally filters by offer when `offerId` is provided.
4217
4365
  *
4218
4366
  * Pass `data` (pre-fetched server-side) to use that data as-is and skip
4219
- * the client-side fetch entirely.
4367
+ * the client-side fetch entirely. Pass `enabled: false` to skip the fetch
4368
+ * when the hook must be called but the data is not needed yet.
4220
4369
  *
4221
4370
  * Returns `LOADING` while CoinList is initializing or while participations are being fetched.
4222
4371
  * Returns `CONTENT` with all participations when `fetchParticipations()` succeeds.
@@ -4441,7 +4590,7 @@ interface UseOndoBuyReviewViewModelOptions {
4441
4590
  * agrees with the reference panel beside it and a dropped poll cannot leave
4442
4591
  * the review unable to say what was bought.
4443
4592
  */
4444
- offer: OfferDetail;
4593
+ offer: OndoSwapOfferDetail;
4445
4594
  /**
4446
4595
  * Registry metadata for the bought asset; `null` falls back to the offer's
4447
4596
  * logo.
@@ -4471,10 +4620,8 @@ interface UseOndoBuyReviewViewModelResult {
4471
4620
  * price holds, and placing it.
4472
4621
  *
4473
4622
  * The quote is firm and short-lived, so most of this is about time. The
4474
- * countdown drives the line above the CTA, and a quote inside
4475
- * {@link ONDO_QUOTE_EXPIRY_THRESHOLD_MS} of its deadline is treated as already
4476
- * gone: placing an order is not instant, and a transaction that arrives after
4477
- * the deadline reverts at the user's expense.
4623
+ * countdown drives the line above the CTA. The SDK offers the quote for at
4624
+ * most {@link ONDO_QUOTE_MAX_TTL_MS}.
4478
4625
  *
4479
4626
  * Refreshing is always something the user asks for. Each refresh builds a new
4480
4627
  * transaction, which spends an attestation, so nothing here is on a timer.
@@ -4509,7 +4656,7 @@ interface UseOndoBuyCheckoutViewModelOptions {
4509
4656
  * Fixed for the lifetime of the hook — see the note on
4510
4657
  * {@link useOndoBuyCheckoutViewModel} about switching offers.
4511
4658
  */
4512
- offer: OfferDetail;
4659
+ offer: OndoSwapOfferDetail;
4513
4660
  /**
4514
4661
  * Ondo's API symbol for the asset, e.g. `AAPLon`.
4515
4662
  *
@@ -4530,8 +4677,8 @@ interface UseOndoBuyCheckoutViewModelOptions {
4530
4677
  /** The host's wallets, and the lambdas that connect and disconnect one. */
4531
4678
  wallets: CheckoutWalletSelection;
4532
4679
  /**
4533
- * Default `true`. When `false` nothing is fetched and no timer runs, so the
4534
- * hook can be called unconditionally beside other providers' viewmodels.
4680
+ * Default `true`. When `false` nothing is fetched and no timer runs, for a
4681
+ * checkout that is mounted but not on screen yet.
4535
4682
  */
4536
4683
  enabled?: boolean;
4537
4684
  /**
@@ -4644,7 +4791,7 @@ interface UseOndoSellAmountViewModelOptions {
4644
4791
  * The offer being sold: supplies the asset's display name and its fallback
4645
4792
  * artwork.
4646
4793
  */
4647
- offer: OfferDetail;
4794
+ offer: OndoSwapOfferDetail;
4648
4795
  /**
4649
4796
  * Registry metadata for the sold asset; `null` falls back to the offer's
4650
4797
  * logo.
@@ -4835,10 +4982,9 @@ interface UseOndoSellReviewViewModelResult {
4835
4982
  * long the price holds, and placing it.
4836
4983
  *
4837
4984
  * The same shape as its buy counterpart, and the same reasoning about time: the
4838
- * quote is firm and short-lived, a quote inside
4839
- * {@link ONDO_QUOTE_EXPIRY_THRESHOLD_MS} of its deadline is treated as already
4840
- * gone, and refreshing is always something the user asks for because each
4841
- * refresh spends an attestation.
4985
+ * SDK offers the quote for at most {@link ONDO_QUOTE_MAX_TTL_MS}, and
4986
+ * refreshing is always something the user asks for because each refresh spends
4987
+ * an attestation.
4842
4988
  *
4843
4989
  * What differs is what it reads off the transaction. A sale has no
4844
4990
  * `notionalValue` and therefore no total to render; it publishes an expected
@@ -4883,7 +5029,7 @@ interface UseOndoSellCheckoutViewModelOptions {
4883
5029
  * Fixed for the lifetime of the hook — see the note on
4884
5030
  * {@link useOndoSellCheckoutViewModel} about switching offers.
4885
5031
  */
4886
- offer: OfferDetail;
5032
+ offer: OndoSwapOfferDetail;
4887
5033
  /**
4888
5034
  * Ondo's API symbol for the asset, e.g. `TSLAon`.
4889
5035
  *
@@ -4913,8 +5059,8 @@ interface UseOndoSellCheckoutViewModelOptions {
4913
5059
  */
4914
5060
  wallets: CheckoutWalletSelection;
4915
5061
  /**
4916
- * Default `true`. When `false` nothing is fetched and no timer runs, so the
4917
- * hook can be called unconditionally beside other providers' viewmodels.
5062
+ * Default `true`. When `false` nothing is fetched and no timer runs, for a
5063
+ * checkout that is mounted but not on screen yet.
4918
5064
  */
4919
5065
  enabled?: boolean;
4920
5066
  /**
@@ -5108,7 +5254,7 @@ declare function useOndoTradingStatus(options: UseOndoTradingStatusOptions): Use
5108
5254
 
5109
5255
  interface UseOndoSidebarViewModelOptions {
5110
5256
  /** Where the asset's identity comes from: name and logo. */
5111
- offer: OfferDetail;
5257
+ offer: OndoSwapOfferDetail;
5112
5258
  /** Ondo's API symbol, e.g. `AAPLon`. */
5113
5259
  ondoSymbol: AssetSymbol;
5114
5260
  /** The chain the order executes on, and so the network shown. */
@@ -5275,7 +5421,9 @@ interface UseCheckoutOfferTokenMetadataResult {
5275
5421
  * its chain; a `distribution` entry names the same token for a sale product,
5276
5422
  * so it is accepted as the fallback. `funding` entries name what a swap is
5277
5423
  * paid with, never what it sells, so they are skipped — the funding row has
5278
- * its own icon source in `stablecoinIconUrl`.
5424
+ * its own icon source in `stablecoinIconUrl`. That ordering is
5425
+ * `offerDisplayTokens`', shared with the catalogue's any-chain lookup; the
5426
+ * checkout adds only the chain it executes on.
5279
5427
  */
5280
5428
  declare function offerTokenIdentifier(offer: OfferDetail, chain: EthereumChain): TokenIdentifier | null;
5281
5429
  /**
@@ -5474,7 +5622,7 @@ declare function useSwapQuote(options: UseSwapQuoteOptions): UseSwapQuoteResult;
5474
5622
 
5475
5623
  interface UseSuperstateSidebarViewModelOptions {
5476
5624
  /** The offer being bought: names the asset, the window and the minimum. */
5477
- offer: OfferDetail;
5625
+ offer: SuperstateSwapOfferDetail;
5478
5626
  /** The chain the token lives on, which names the network row. */
5479
5627
  chain: EthereumChain;
5480
5628
  /**
@@ -5538,7 +5686,7 @@ interface UseSuperstateSwapCheckoutViewModelOptions {
5538
5686
  * Fixed for the lifetime of the hook — see the note on
5539
5687
  * {@link useSuperstateSwapCheckoutViewModel} about switching offers.
5540
5688
  */
5541
- offer: OfferDetail;
5689
+ offer: SuperstateSwapOfferDetail;
5542
5690
  /**
5543
5691
  * The chain the order executes on: the balance reads, the approval and the
5544
5692
  * swap. The swap contract is looked up from it; a chain with none deployed
@@ -5550,8 +5698,8 @@ interface UseSuperstateSwapCheckoutViewModelOptions {
5550
5698
  /** The host's wallets, and the lambdas that connect and disconnect one. */
5551
5699
  wallets: CheckoutWalletSelection;
5552
5700
  /**
5553
- * Default `true`. When `false` nothing is fetched and no timer runs, so the
5554
- * hook can be called unconditionally beside other providers' viewmodels.
5701
+ * Default `true`. When `false` nothing is fetched and no timer runs, for a
5702
+ * checkout that is mounted but not on screen yet.
5555
5703
  */
5556
5704
  enabled?: boolean;
5557
5705
  /**
@@ -5660,6 +5808,11 @@ interface UseOfferDetailsOptions {
5660
5808
  * When provided, the hook uses this data as-is and skips the client-side fetch entirely.
5661
5809
  */
5662
5810
  data?: OfferDetail;
5811
+ /**
5812
+ * When `false`, the hook sends no request. A seeded or already-fetched
5813
+ * `CONTENT` survives; otherwise the hook stays `LOADING`. Defaults to `true`.
5814
+ */
5815
+ enabled?: boolean;
5663
5816
  }
5664
5817
  interface UseOfferDetailsResult {
5665
5818
  offerDetailsState: LoadOfferDetailsState;
@@ -5668,7 +5821,8 @@ interface UseOfferDetailsResult {
5668
5821
  * Loads CoinList offer details for a given offer id and exposes a UI-friendly state.
5669
5822
  *
5670
5823
  * Pass `data` (pre-fetched server-side) to use that data as-is and skip
5671
- * the client-side fetch entirely.
5824
+ * the client-side fetch entirely. Pass `enabled: false` to skip the fetch
5825
+ * when the hook must be called but the data is not needed yet.
5672
5826
  *
5673
5827
  * Returns `LOADING` while CoinList is initializing or while details are being fetched.
5674
5828
  * Returns `CONTENT` with the offer when `offers.get()` succeeds.
@@ -5694,6 +5848,11 @@ interface UseOffersOptions {
5694
5848
  * When provided, the hook uses this data as-is and skips the client-side fetch entirely.
5695
5849
  */
5696
5850
  data?: Offer[];
5851
+ /**
5852
+ * When `false`, the hook sends no request. A seeded or already-fetched
5853
+ * `CONTENT` survives; otherwise the hook stays `LOADING`. Defaults to `true`.
5854
+ */
5855
+ enabled?: boolean;
5697
5856
  }
5698
5857
  interface UseOffersResult {
5699
5858
  offersState: LoadOffersState;
@@ -5702,7 +5861,8 @@ interface UseOffersResult {
5702
5861
  * Loads all CoinList offers for the current user and exposes a UI-friendly state.
5703
5862
  *
5704
5863
  * Pass `data` (pre-fetched server-side) to use that data as-is and skip
5705
- * the client-side fetch entirely.
5864
+ * the client-side fetch entirely. Pass `enabled: false` to skip the fetch
5865
+ * when the hook must be called but the data is not needed yet.
5706
5866
  *
5707
5867
  * Returns `LOADING` while CoinList is initializing or while offers are being fetched.
5708
5868
  * Returns `CONTENT` with all offers when `fetchOffers()` succeeds.
@@ -5712,25 +5872,6 @@ interface UseOffersResult {
5712
5872
  */
5713
5873
  declare function useOffers(options?: UseOffersOptions): UseOffersResult;
5714
5874
 
5715
- interface UseOffersGridViewModelOptions {
5716
- /**
5717
- * Offers pre-fetched on the server (e.g. via `CoinListServer#offers.list()`).
5718
- * When provided, the client-side fetch is skipped entirely.
5719
- */
5720
- data?: Offer[];
5721
- /** Called with the domain offer behind the card the user clicked. */
5722
- onOfferClick?: (offer: Offer) => void;
5723
- }
5724
- interface UseOffersGridViewModelResult {
5725
- state: OffersGridUiState;
5726
- onEvent: (event: OffersGridUiEvent) => void;
5727
- }
5728
- /**
5729
- * Drives {@link OffersGridView}: loads the offers, formats them for the cards,
5730
- * and resolves a clicked card back to its domain offer for the host callback.
5731
- */
5732
- declare function useOffersGridViewModel(options?: UseOffersGridViewModelOptions): UseOffersGridViewModelResult;
5733
-
5734
5875
  /**
5735
5876
  * A display-ready connect-wallet error: the core flow's machine-readable code
5736
5877
  * and `retryable` flag, plus copy for the UI.
@@ -6022,6 +6163,11 @@ interface UseRequirementsChecklistViewModelOptions {
6022
6163
  getDescription?: (requirement: Requirement) => string | null;
6023
6164
  /** Requirements pre-fetched on the server. */
6024
6165
  data?: RequirementsData;
6166
+ /**
6167
+ * Default `true`. When `false` nothing is fetched, so the hook can be called
6168
+ * unconditionally while the checklist is not needed yet.
6169
+ */
6170
+ enabled?: boolean;
6025
6171
  /** Options for the inline Sumsub verification flow. */
6026
6172
  identityVerificationOptions?: {
6027
6173
  levelName?: KycLevelName;
@@ -6036,6 +6182,9 @@ interface UseRequirementsChecklistViewModelResult {
6036
6182
  * Drives {@link RequirementsChecklistView}: loads the requirements and their
6037
6183
  * statuses for one offer option, shapes each row, and owns the three flows the
6038
6184
  * checklist can open (tax document, wallet connect, identity verification).
6185
+ *
6186
+ * Pass `enabled: false` to skip fetches when the hook must be called but
6187
+ * the checklist is not needed yet.
6039
6188
  */
6040
6189
  declare function useRequirementsChecklistViewModel(options: UseRequirementsChecklistViewModelOptions): UseRequirementsChecklistViewModelResult;
6041
6190
 
@@ -6165,6 +6314,65 @@ interface UseErc20TokenBalancesResult {
6165
6314
  */
6166
6315
  declare function useErc20TokenBalances(options: UseErc20TokenBalancesOptions): UseErc20TokenBalancesResult;
6167
6316
 
6317
+ /**
6318
+ * The state of a token-registry snapshot load.
6319
+ *
6320
+ * `CONTENT` holds the whole snapshot, indexed: ask it
6321
+ * `TokenRegistrySnapshot.forOffer(registry, offer)` per card. `ERROR` means
6322
+ * the snapshot could not be read - the registry always publishes it, so this
6323
+ * is an outage or a blocked request, and callers render their own display
6324
+ * defaults for every offer rather than nothing. `DISABLED` means the hook was
6325
+ * switched off before an answer arrived, so there is nothing to render a
6326
+ * loading UI for. No `not-authenticated` reason: the registry is public.
6327
+ */
6328
+ type LoadTokenRegistryState = {
6329
+ type: 'DISABLED';
6330
+ } | {
6331
+ type: 'LOADING';
6332
+ } | {
6333
+ type: 'ERROR';
6334
+ reason: 'generic-error';
6335
+ } | {
6336
+ type: 'CONTENT';
6337
+ registry: TokenRegistrySnapshot;
6338
+ };
6339
+ interface UseTokenRegistryOptions {
6340
+ /**
6341
+ * The snapshot pre-fetched on the server (via `CoinListServer#tokens.list()`).
6342
+ * When provided, the hook indexes it as-is and skips the initial
6343
+ * client-side fetch; {@link UseTokenRegistryResult.refetch} still fetches.
6344
+ */
6345
+ data?: TokenMetadata[];
6346
+ /** When false: no request; see {@link LoadTokenRegistryState}. Default true. */
6347
+ enabled?: boolean;
6348
+ }
6349
+ interface UseTokenRegistryResult {
6350
+ state: LoadTokenRegistryState;
6351
+ /**
6352
+ * Fetches again: the recovery path after a transient `ERROR`, and the way
6353
+ * past a server seed (`data`), which only the first fetch honours. No-op
6354
+ * while disabled.
6355
+ */
6356
+ refetch: () => void;
6357
+ }
6358
+ /**
6359
+ * Loads the complete public token registry - every token on every chain the
6360
+ * SDK models, in one request - and indexes it for per-offer lookups. This is
6361
+ * what a catalogue mounts once, where `useTokenMetadata` is what a single
6362
+ * screen mounts for one token.
6363
+ *
6364
+ * No polling: registry content is immutable per version, so the answer does
6365
+ * not change under the page. `refetch` exists for error recovery and for
6366
+ * bypassing a server seed, not for freshness.
6367
+ *
6368
+ * Disabled without an answer in hand it reports `DISABLED` rather than
6369
+ * `LOADING` (nothing is in flight, so a spinner would wait forever) and
6370
+ * rather than an empty `CONTENT` (an empty snapshot asserts "the registry
6371
+ * lists nothing" - an answer this hook would not actually have). A seeded or
6372
+ * already-fetched `CONTENT` survives disabling.
6373
+ */
6374
+ declare function useTokenRegistry(options?: UseTokenRegistryOptions): UseTokenRegistryResult;
6375
+
6168
6376
  interface UseCoinListResult {
6169
6377
  /**
6170
6378
  * Indicates whether the CoinList client has been initialized and ready to use.
@@ -6217,11 +6425,12 @@ declare function stablecoinIconUrl(symbol: StablecoinSymbol): AssetIconUrl;
6217
6425
  * The artwork an offer carries for the asset it sells, or `null` where it
6218
6426
  * carries none.
6219
6427
  *
6220
- * Frontline publishes a missing logo as an empty string rather than omitting
6221
- * the field, so the absent case has to be recognised rather than merely
6222
- * falsy-checked into a `""` that renders as a broken image. Every consumer
6223
- * wants the same answer, and writing the convention out at each of them is how
6224
- * one of them ends up disagreeing.
6428
+ * A swap publishes without artwork, which `OfferDetail.fromDto` maps to
6429
+ * `null`. The empty string frontline has sent in its place is recognised here
6430
+ * too, because an `OfferDetail` need not have come through `fromDto` - a host
6431
+ * may build one - and a `""` that reaches an `<img>` renders as a broken
6432
+ * image. Every consumer wants the same answer, and writing the convention out
6433
+ * at each of them is how one of them ends up disagreeing.
6225
6434
  *
6226
6435
  * Absence is ordinary, not an error: `AssetIcon` renders a neutral placeholder
6227
6436
  * for `null`, which is what the offers grid already does.
@@ -6244,6 +6453,29 @@ declare function offerIconUrl(offer: OfferDetail): AssetIconUrl | null;
6244
6453
  * edge length `AssetIcon` renders a checkout asset at.
6245
6454
  */
6246
6455
  declare function tokenLogoUrl(logo: TokenLogo, minWidth?: number): AssetIconUrl | null;
6456
+ /**
6457
+ * The `srcset` candidates for a registry logo, or `null` when the browser has
6458
+ * nothing to choose between.
6459
+ *
6460
+ * A raster logo ships webp variants at ascending widths (32, 64, 128, 256,
6461
+ * 512, capped at the source width), and listing every one with its width
6462
+ * descriptor lets the browser pick the smallest that covers the rendered size
6463
+ * at the screen's pixel density - a choice `tokenLogoUrl` can only make for
6464
+ * one width, and only at 1x. The registry's contract is that the variants
6465
+ * *are* the complete candidate list and the original is never merged in: the
6466
+ * largest variant already is the original's width (capped at 512), sharing
6467
+ * its URL below that. Candidates are listed by ascending width whatever order
6468
+ * the wire used. A vector logo scales itself and offers no candidates.
6469
+ *
6470
+ * A raster logo with no variants is unrepresentable under that contract, but
6471
+ * the type allows it, so the original stands in as the one candidate rather
6472
+ * than an empty `srcset` that would render nothing.
6473
+ *
6474
+ * The companion of `tokenLogoUrl`, not a replacement: `src` still carries the
6475
+ * one-width answer for a consumer that takes a single URL, and `srcset` is
6476
+ * only ever meaningful next to a `sizes` the renderer knows.
6477
+ */
6478
+ declare function tokenLogoSrcSet(logo: TokenLogo): string | null;
6247
6479
  /**
6248
6480
  * The artwork a checkout shows for the asset an offer sells.
6249
6481
  *
@@ -6357,4 +6589,4 @@ interface UseCountdownOptions {
6357
6589
  */
6358
6590
  declare function useCountdown({ until, tickMs, enabled, }: UseCountdownOptions): number | null;
6359
6591
 
6360
- export { type AuthState, type AuthorizeWalletParams, ChecklistStatus, CheckoutAssetUi, type CheckoutConfig, type CheckoutConfirmedWalletUi, CheckoutContainer, type CheckoutContainerProps, type CheckoutCtaUi, type CheckoutEmbeddedWalletUi, type CheckoutNetworkUi, type CheckoutSelectableInputAssetUi, type CheckoutStatusUi, type CheckoutWalletSelection, type CheckoutWalletTypeUi, type CheckoutWalletUi, type ClientAuthConfig, type ClientAuthNamespace, ClientAuthNamespaceImpl, type ClientAuthSession, type ClientCoinListTokenSaleNamespace, ClientCoinListTokenSaleNamespaceImpl, type ClientConfig, type ClientOndoNamespace, ClientOndoNamespaceImpl, type ClientRequirementsNamespace, ClientRequirementsNamespaceImpl, type ClientSuperstateSwapNamespace, ClientSuperstateSwapNamespaceImpl, type ClientSupportNamespace, ClientSupportNamespaceImpl, type CoinListClient, CoinListClientInitializationError, CoinListContext, CoinListContextProvider, type CoinListContextValue, CoinListProvider, type CoinListProviderProps, CoinListSignInButton, CoinListSignInCardContainer, type CoinListSignInCardContainerProps, type CoinListSignInCardUiEvent, type CoinListSignInCardUiState, CoinListSignInCardView, type CoinListSignInCardViewProps, CoinListStyleScope, type CoinListStyleScopeProps, type CoinListTokenSaleCheckoutConfig, type CompleteOAuthFailureReason, ConnectWallet, type ConnectWalletError, type ConnectWalletErrorCode, type ConnectWalletFlowError, type ConnectWalletFlowParams, type ConnectWalletFlowResult, ConnectWalletModalContainer, type ConnectWalletModalContainerProps, type ConnectWalletModalUiEvent, type ConnectWalletModalUiState, ConnectWalletModalView, type ConnectWalletModalViewProps, type ConnectWalletPhase, type ConnectWalletScreenUi, type ConnectWalletSignState, type ConnectWalletState, ConnectedWalletList, type ConnectedWalletListProps, type ConnectedWalletUi, ERC20_BALANCE_POLL_INTERVAL_MS, type Erc20AllowanceError, type Erc20AllowancePhase, type Erc20AllowanceResult, type Erc20ApprovalError, EvmWallet, type ExecuteOndoSwapParams, type ExecuteSwapParams, type ExecuteTokenSaleParams, IdentityVerificationContainer, type IdentityVerificationContainerProps, type IdentityVerificationUiEvent, type IdentityVerificationUiState, IdentityVerificationView, type IdentityVerificationViewProps, KycLevelName, type KycTokenErrorReason, type KycTokenState, type LoadOfferDetailsReason, type LoadOfferDetailsState, type LoadOffersReason, type LoadOffersState, type LoadOndoBuyTransactionState, type LoadOndoPriceState, type LoadOndoSellTransactionState, type LoadOndoTradingStatusState, type LoadOptionAddressesReason, type LoadOptionAddressesState, type LoadParticipationsReason, type LoadParticipationsState, type LoadRequirementsReason, type LoadRequirementsState, type LoadTokenMetadataState, Logger, OAUTH_CODE_VERIFIER_KEY, OAUTH_STATE_KEY, type OauthClientErrorReason, type OauthClientResult, OfferAssetCard, type OfferAssetCardProps, OfferAssetCardUi, OfferSaleCard, type OfferSaleCardProps, OfferSaleCardUi, OffersAssetGrid, type OffersAssetGridProps, OffersGridContainer, type OffersGridContainerProps, type OffersGridUiEvent, type OffersGridUiState, OffersGridView, type OffersGridViewProps, type OndoBuyAmountConfirmed, type OndoBuyAmountStepInput, type OndoBuyAmountUiEvent, type OndoBuyAmountUiState, type OndoBuyAmountValidation, OndoBuyAmountView, type OndoBuyAmountViewProps, OndoBuyCheckoutContainer, type OndoBuyCheckoutContainerProps, type OndoBuyCheckoutUiEvent, type OndoBuyCheckoutUiState, OndoBuyCheckoutView, type OndoBuyCheckoutViewProps, type OndoBuyExecutionResult, OndoBuyOrderConfirmed, type OndoBuyOrderPlaced, type OndoBuyOrderTerms, type OndoBuyPreparationResult, type OndoBuyQuoteStatusUi, type OndoBuyReviewStepInput, type OndoBuyReviewUiEvent, type OndoBuyReviewUiState, OndoBuyReviewView, type OndoBuyReviewViewProps, type OndoBuyStep, type OndoCheckoutConfig, OndoCheckoutError, type OndoCheckoutErrorProps, type OndoCheckoutErrorReason, type OndoLoadErrorReason, type OndoOrderConfirmedProps, type OndoOrderConfirmedUiEvent, type OndoOrderConfirmedUiState, type OndoOrderPlaced, type OndoOrderPlacedCore, type OndoSellAmountConfirmed, type OndoSellAmountStepInput, type OndoSellAmountUiEvent, type OndoSellAmountUiState, type OndoSellAmountValidation, OndoSellAmountView, type OndoSellAmountViewProps, type OndoSellAsset, type OndoSellBalanceUi, OndoSellCheckoutContainer, type OndoSellCheckoutContainerProps, type OndoSellCheckoutUiEvent, type OndoSellCheckoutUiState, OndoSellCheckoutView, type OndoSellCheckoutViewProps, type OndoSellExecutionResult, OndoSellOrderConfirmed, type OndoSellOrderConfirmedProps, type OndoSellOrderConfirmedUiEvent, type OndoSellOrderConfirmedUiState, type OndoSellOrderPlaced, type OndoSellOrderTerms, type OndoSellOutcomeUi, type OndoSellPreparationResult, type OndoSellQuoteStatusUi, type OndoSellReviewStepInput, type OndoSellReviewUiEvent, type OndoSellReviewUiState, OndoSellReviewView, type OndoSellReviewViewProps, type OndoSellSourceWalletUi, type OndoSellStep, type OndoSidebarPriceUi, type OndoSidebarUiState, OndoSidebarView, type OndoSidebarViewProps, type OndoSwapExecutionError, type OndoSwapExecutionPhase, type OndoSwapExecutionResult, type OndoSwapPreparationError, type OndoSwapPreparationPhase, type OndoSwapPreparationResult, type OndoWalletSelectStepInput, type OndoWalletSelectUiEvent, type OndoWalletSelectUiState, OndoWalletSelectView, type OndoWalletSelectViewProps, PinoLoggerOptions, type PrepareOndoBuyParams, type PrepareOndoSellParams, type PrepareOndoSwapParamsCore, type RequiredCheckoutConfig, RequirementItem, type RequirementItemProps, RequirementItemUi, RequirementStatus, RequirementVariant, RequirementsChecklistContainer, type RequirementsChecklistContainerProps, type RequirementsChecklistItemUi, type RequirementsChecklistUiEvent, type RequirementsChecklistUiState, RequirementsChecklistView, type RequirementsChecklistViewProps, type RequirementsData, type RequirementsVerificationUi, type SignState, SlippagePicker, type SlippagePickerProps, type SubmitErc20ApprovalResult, type SuperstateAmountConfirmed, type SuperstateAmountStepInput, type SuperstateAmountUiEvent, type SuperstateAmountUiState, type SuperstateAmountValidation, SuperstateAmountView, type SuperstateAmountViewProps, type SuperstateCheckoutConfig, SuperstateOrderConfirmed, type SuperstateOrderConfirmedProps, type SuperstateOrderConfirmedUiEvent, type SuperstateOrderConfirmedUiState, type SuperstateOrderPlaced, type SuperstateReviewStepInput, type SuperstateReviewUiEvent, type SuperstateReviewUiState, SuperstateReviewView, type SuperstateReviewViewProps, type SuperstateSidebarPriceUi, type SuperstateSidebarUiState, SuperstateSidebarView, type SuperstateSidebarViewProps, type SuperstateSlippageOptionUi, type SuperstateSlippageUi, SuperstateSwapCheckoutContainer, type SuperstateSwapCheckoutContainerProps, type SuperstateSwapCheckoutRetryUiEvent, type SuperstateSwapCheckoutUiEvent, type SuperstateSwapCheckoutUiState, SuperstateSwapCheckoutView, type SuperstateSwapCheckoutViewProps, type SuperstateSwapLoadErrorReason, type SuperstateSwapStep, type SuperstateWalletStepInput, type SuperstateWalletUiEvent, type SuperstateWalletUiState, SuperstateWalletView, type SuperstateWalletViewProps, type SwapExecutionError, type SwapExecutionPhase, type SwapExecutionResult, type SwapOutputTokenState, type TaxDocumentAddressParts, type TaxDocumentFieldUi, type TaxDocumentFields, TaxDocumentModalContainer, type TaxDocumentModalContainerProps, type TaxDocumentModalUiEvent, type TaxDocumentModalUiState, TaxDocumentModalView, type TaxDocumentModalViewProps, type TaxDocumentScreenUi, type TaxDocumentState, type TokenSaleExecutionError, type TokenSaleExecutionPhase, type TokenSaleExecutionResult, USDC_ICON_URL, USDT_ICON_URL, type UseCheckoutOfferTokenMetadataOptions, type UseCheckoutOfferTokenMetadataResult, type UseCoinListResult, type UseCoinListSignInCardViewModelOptions, type UseCoinListSignInCardViewModelResult, type UseCompleteOAuthOptions, type UseConnectWalletModalViewModelOptions, type UseConnectWalletModalViewModelResult, type UseConnectWalletOptions, type UseConnectWalletResult, type UseCountdownOptions, type UseErc20BalanceOptions, type UseErc20BalanceResult, type UseErc20TokenBalancesOptions, type UseErc20TokenBalancesResult, type UseIdentityVerificationViewModelOptions, type UseIdentityVerificationViewModelResult, type UseKycTokenResult, type UseOfferDetailsOptions, type UseOfferDetailsResult, type UseOffersGridViewModelOptions, type UseOffersGridViewModelResult, type UseOffersOptions, type UseOffersResult, type UseOndoBuyAmountViewModelOptions, type UseOndoBuyAmountViewModelResult, type UseOndoBuyCheckoutViewModelOptions, type UseOndoBuyCheckoutViewModelResult, type UseOndoBuyReviewViewModelOptions, type UseOndoBuyReviewViewModelResult, type UseOndoBuyTransactionOptions, type UseOndoBuyTransactionResult, type UseOndoPriceOptions, type UseOndoPriceResult, type UseOndoSellAmountViewModelOptions, type UseOndoSellAmountViewModelResult, type UseOndoSellCheckoutViewModelOptions, type UseOndoSellCheckoutViewModelResult, type UseOndoSellReviewViewModelOptions, type UseOndoSellReviewViewModelResult, type UseOndoSellTransactionOptions, type UseOndoSellTransactionResult, type UseOndoSidebarViewModelOptions, type UseOndoSidebarViewModelResult, type UseOndoTradingStatusOptions, type UseOndoTradingStatusResult, type UseOndoWalletSelectViewModelOptions, type UseOndoWalletSelectViewModelResult, type UseOptionAddressesOptions, type UseOptionAddressesResult, type UseParticipationsOptions, type UseParticipationsResult, type UseRequirementsChecklistViewModelOptions, type UseRequirementsChecklistViewModelResult, type UseRequirementsOptions, type UseRequirementsResult, type UseSuperstateAmountViewModelOptions, type UseSuperstateAmountViewModelResult, type UseSuperstateReviewViewModelOptions, type UseSuperstateReviewViewModelResult, type UseSuperstateSidebarViewModelOptions, type UseSuperstateSidebarViewModelResult, type UseSuperstateSwapCheckoutViewModelOptions, type UseSuperstateSwapCheckoutViewModelResult, type UseSuperstateWalletViewModelOptions, type UseSuperstateWalletViewModelResult, type UseSwapOutputTokenOptions, type UseSwapOutputTokenResult, type UseSwapQuoteOptions, type UseSwapQuoteResult, type UseTaxDocumentModalViewModelOptions, type UseTaxDocumentModalViewModelResult, type UseTaxDocumentOptions, type UseTaxDocumentResult, type UseTokenMetadataOptions, type UseTokenMetadataResult, VerificationOverlay, type VerificationOverlayProps, type WalletAuthorizationError, type WalletAuthorizationPhase, type WalletAuthorizationResult, WalletError, type WalletsStatus, authorizeWallet, classifyWalletError, connectExternalWalletFlow, createCoinListClient, defaultCheckoutConfig, ensureErc20Allowance, executeOndoSwap, executeSwap, executeTokenSale, formatCountdown, formatMonthYear, formatSaleCardCountdown, offerAssetIconUrl, offerIconUrl, offerTokenIdentifier, ondoLoadErrorReason, pinoClientLogger, prepareOndoBuy, prepareOndoSell, quoteIsStale, quoteOverAsks, stablecoinIconUrl, submitErc20Approval, tokenLogoUrl, tokenMetadataOf, useCheckoutOfferTokenMetadata, useCoinList, useCoinListSignInCardViewModel, useCompleteOAuth, useConnectWallet, useConnectWalletModalViewModel, useCountdown, useErc20Balance, useErc20TokenBalances, useIdentityVerificationViewModel, useKycToken, useOfferDetails, useOffers, useOffersGridViewModel, useOndoBuyAmountViewModel, useOndoBuyCheckoutViewModel, useOndoBuyReviewViewModel, useOndoBuyTransaction, useOndoPrice, useOndoSellAmountViewModel, useOndoSellCheckoutViewModel, useOndoSellReviewViewModel, useOndoSellTransaction, useOndoSidebarViewModel, useOndoTradingStatus, useOndoWalletSelectViewModel, useOptionAddresses, useParticipations, useRequirements, useRequirementsChecklistViewModel, useSuperstateAmountViewModel, useSuperstateReviewViewModel, useSuperstateSidebarViewModel, useSuperstateSwapCheckoutViewModel, useSuperstateWalletViewModel, useSwapOutputToken, useSwapQuote, useTaxDocument, useTaxDocumentModalViewModel, useTokenMetadata, validateAmount, validateSellAmount, validateSuperstateAmount };
6592
+ export { type AuthState, type AuthorizeWalletParams, ChecklistStatus, CheckoutAssetUi, type CheckoutConfig, type CheckoutConfirmedWalletUi, CheckoutContainer, type CheckoutContainerProps, type CheckoutCtaUi, type CheckoutEmbeddedWalletUi, type CheckoutNetworkUi, type CheckoutSelectableInputAssetUi, type CheckoutStatusUi, type CheckoutWalletSelection, type CheckoutWalletTypeUi, type CheckoutWalletUi, type ClientAuthConfig, type ClientAuthNamespace, ClientAuthNamespaceImpl, type ClientAuthSession, type ClientCoinListTokenSaleNamespace, ClientCoinListTokenSaleNamespaceImpl, type ClientConfig, type ClientOndoNamespace, ClientOndoNamespaceImpl, type ClientRequirementsNamespace, ClientRequirementsNamespaceImpl, type ClientSuperstateSwapNamespace, ClientSuperstateSwapNamespaceImpl, type ClientSupportNamespace, ClientSupportNamespaceImpl, type CoinListClient, CoinListClientInitializationError, CoinListContext, CoinListContextProvider, type CoinListContextValue, CoinListProvider, type CoinListProviderProps, CoinListSignInButton, CoinListSignInCardContainer, type CoinListSignInCardContainerProps, type CoinListSignInCardUiEvent, type CoinListSignInCardUiState, CoinListSignInCardView, type CoinListSignInCardViewProps, CoinListStyleScope, type CoinListStyleScopeProps, type CoinListTokenSaleCheckoutConfig, type CompleteOAuthFailureReason, ConnectWallet, type ConnectWalletError, type ConnectWalletErrorCode, type ConnectWalletFlowError, type ConnectWalletFlowParams, type ConnectWalletFlowResult, ConnectWalletModalContainer, type ConnectWalletModalContainerProps, type ConnectWalletModalUiEvent, type ConnectWalletModalUiState, ConnectWalletModalView, type ConnectWalletModalViewProps, type ConnectWalletPhase, type ConnectWalletScreenUi, type ConnectWalletSignState, type ConnectWalletState, ConnectedWalletList, type ConnectedWalletListProps, type ConnectedWalletUi, ERC20_BALANCE_POLL_INTERVAL_MS, type Erc20AllowanceError, type Erc20AllowancePhase, type Erc20AllowanceResult, type Erc20ApprovalError, EvmWallet, type ExecuteOndoSwapParams, type ExecuteSwapParams, type ExecuteTokenSaleParams, IdentityVerificationContainer, type IdentityVerificationContainerProps, type IdentityVerificationUiEvent, type IdentityVerificationUiState, IdentityVerificationView, type IdentityVerificationViewProps, KycLevelName, type KycTokenErrorReason, type KycTokenState, type LoadOfferDetailsReason, type LoadOfferDetailsState, type LoadOffersReason, type LoadOffersState, type LoadOndoBuyTransactionState, type LoadOndoPriceState, type LoadOndoSellTransactionState, type LoadOndoTradingStatusState, type LoadOptionAddressesReason, type LoadOptionAddressesState, type LoadParticipationsReason, type LoadParticipationsState, type LoadRequirementsReason, type LoadRequirementsState, type LoadTokenMetadataState, type LoadTokenRegistryState, Logger, type LogoImageUi, OAUTH_CODE_VERIFIER_KEY, OAUTH_STATE_KEY, type OauthClientErrorReason, type OauthClientResult, OfferAssetCard, type OfferAssetCardProps, OfferAssetCardUi, OfferLogoUi, OfferSaleCard, type OfferSaleCardProps, OfferSaleCardUi, OffersAssetGrid, type OffersAssetGridProps, OffersGridContainer, type OffersGridContainerProps, type OffersGridData, type OffersGridUiEvent, type OffersGridUiState, OffersGridView, type OffersGridViewProps, type OndoBuyAmountConfirmed, type OndoBuyAmountStepInput, type OndoBuyAmountUiEvent, type OndoBuyAmountUiState, type OndoBuyAmountValidation, OndoBuyAmountView, type OndoBuyAmountViewProps, OndoBuyCheckoutContainer, type OndoBuyCheckoutContainerProps, type OndoBuyCheckoutUiEvent, type OndoBuyCheckoutUiState, OndoBuyCheckoutView, type OndoBuyCheckoutViewProps, type OndoBuyExecutionResult, OndoBuyOrderConfirmed, type OndoBuyOrderPlaced, type OndoBuyOrderTerms, type OndoBuyPreparationResult, type OndoBuyQuoteStatusUi, type OndoBuyReviewStepInput, type OndoBuyReviewUiEvent, type OndoBuyReviewUiState, OndoBuyReviewView, type OndoBuyReviewViewProps, type OndoBuyStep, type OndoCheckoutConfig, OndoCheckoutError, type OndoCheckoutErrorProps, type OndoCheckoutErrorReason, type OndoLoadErrorReason, type OndoOrderConfirmedProps, type OndoOrderConfirmedUiEvent, type OndoOrderConfirmedUiState, type OndoOrderPlaced, type OndoOrderPlacedCore, type OndoSellAmountConfirmed, type OndoSellAmountStepInput, type OndoSellAmountUiEvent, type OndoSellAmountUiState, type OndoSellAmountValidation, OndoSellAmountView, type OndoSellAmountViewProps, type OndoSellAsset, type OndoSellBalanceUi, OndoSellCheckoutContainer, type OndoSellCheckoutContainerProps, type OndoSellCheckoutUiEvent, type OndoSellCheckoutUiState, OndoSellCheckoutView, type OndoSellCheckoutViewProps, type OndoSellExecutionResult, OndoSellOrderConfirmed, type OndoSellOrderConfirmedProps, type OndoSellOrderConfirmedUiEvent, type OndoSellOrderConfirmedUiState, type OndoSellOrderPlaced, type OndoSellOrderTerms, type OndoSellOutcomeUi, type OndoSellPreparationResult, type OndoSellQuoteStatusUi, type OndoSellReviewStepInput, type OndoSellReviewUiEvent, type OndoSellReviewUiState, OndoSellReviewView, type OndoSellReviewViewProps, type OndoSellSourceWalletUi, type OndoSellStep, type OndoSidebarPriceUi, type OndoSidebarUiState, OndoSidebarView, type OndoSidebarViewProps, type OndoSwapExecutionError, type OndoSwapExecutionPhase, type OndoSwapExecutionResult, type OndoSwapPreparationError, type OndoSwapPreparationPhase, type OndoSwapPreparationResult, type OndoWalletSelectStepInput, type OndoWalletSelectUiEvent, type OndoWalletSelectUiState, OndoWalletSelectView, type OndoWalletSelectViewProps, PinoLoggerOptions, type PrepareOndoBuyParams, type PrepareOndoSellParams, type PrepareOndoSwapParamsCore, type RequiredCheckoutConfig, RequirementItem, type RequirementItemProps, RequirementItemUi, RequirementStatus, RequirementVariant, RequirementsChecklistContainer, type RequirementsChecklistContainerProps, type RequirementsChecklistItemUi, type RequirementsChecklistUiEvent, type RequirementsChecklistUiState, RequirementsChecklistView, type RequirementsChecklistViewProps, type RequirementsData, type RequirementsVerificationUi, type SignState, SlippagePicker, type SlippagePickerProps, type SubmitErc20ApprovalResult, type SuperstateAmountConfirmed, type SuperstateAmountStepInput, type SuperstateAmountUiEvent, type SuperstateAmountUiState, type SuperstateAmountValidation, SuperstateAmountView, type SuperstateAmountViewProps, type SuperstateCheckoutConfig, SuperstateOrderConfirmed, type SuperstateOrderConfirmedProps, type SuperstateOrderConfirmedUiEvent, type SuperstateOrderConfirmedUiState, type SuperstateOrderPlaced, type SuperstateReviewStepInput, type SuperstateReviewUiEvent, type SuperstateReviewUiState, SuperstateReviewView, type SuperstateReviewViewProps, type SuperstateSidebarPriceUi, type SuperstateSidebarUiState, SuperstateSidebarView, type SuperstateSidebarViewProps, type SuperstateSlippageOptionUi, type SuperstateSlippageUi, SuperstateSwapCheckoutContainer, type SuperstateSwapCheckoutContainerProps, type SuperstateSwapCheckoutRetryUiEvent, type SuperstateSwapCheckoutUiEvent, type SuperstateSwapCheckoutUiState, SuperstateSwapCheckoutView, type SuperstateSwapCheckoutViewProps, type SuperstateSwapLoadErrorReason, type SuperstateSwapStep, type SuperstateWalletStepInput, type SuperstateWalletUiEvent, type SuperstateWalletUiState, SuperstateWalletView, type SuperstateWalletViewProps, type SwapExecutionError, type SwapExecutionPhase, type SwapExecutionResult, type SwapOutputTokenState, type TaxDocumentAddressParts, type TaxDocumentFieldUi, type TaxDocumentFields, TaxDocumentModalContainer, type TaxDocumentModalContainerProps, type TaxDocumentModalUiEvent, type TaxDocumentModalUiState, TaxDocumentModalView, type TaxDocumentModalViewProps, type TaxDocumentScreenUi, type TaxDocumentState, type TokenSaleExecutionError, type TokenSaleExecutionPhase, type TokenSaleExecutionResult, USDC_ICON_URL, USDT_ICON_URL, type UseCheckoutOfferTokenMetadataOptions, type UseCheckoutOfferTokenMetadataResult, type UseCoinListResult, type UseCoinListSignInCardViewModelOptions, type UseCoinListSignInCardViewModelResult, type UseCompleteOAuthOptions, type UseConnectWalletModalViewModelOptions, type UseConnectWalletModalViewModelResult, type UseConnectWalletOptions, type UseConnectWalletResult, type UseCountdownOptions, type UseErc20BalanceOptions, type UseErc20BalanceResult, type UseErc20TokenBalancesOptions, type UseErc20TokenBalancesResult, type UseIdentityVerificationViewModelOptions, type UseIdentityVerificationViewModelResult, type UseKycTokenResult, type UseOfferDetailsOptions, type UseOfferDetailsResult, type UseOffersGridViewModelOptions, type UseOffersGridViewModelResult, type UseOffersOptions, type UseOffersResult, type UseOndoBuyAmountViewModelOptions, type UseOndoBuyAmountViewModelResult, type UseOndoBuyCheckoutViewModelOptions, type UseOndoBuyCheckoutViewModelResult, type UseOndoBuyReviewViewModelOptions, type UseOndoBuyReviewViewModelResult, type UseOndoBuyTransactionOptions, type UseOndoBuyTransactionResult, type UseOndoPriceOptions, type UseOndoPriceResult, type UseOndoSellAmountViewModelOptions, type UseOndoSellAmountViewModelResult, type UseOndoSellCheckoutViewModelOptions, type UseOndoSellCheckoutViewModelResult, type UseOndoSellReviewViewModelOptions, type UseOndoSellReviewViewModelResult, type UseOndoSellTransactionOptions, type UseOndoSellTransactionResult, type UseOndoSidebarViewModelOptions, type UseOndoSidebarViewModelResult, type UseOndoTradingStatusOptions, type UseOndoTradingStatusResult, type UseOndoWalletSelectViewModelOptions, type UseOndoWalletSelectViewModelResult, type UseOptionAddressesOptions, type UseOptionAddressesResult, type UseParticipationsOptions, type UseParticipationsResult, type UseRequirementsChecklistViewModelOptions, type UseRequirementsChecklistViewModelResult, type UseRequirementsOptions, type UseRequirementsResult, type UseSuperstateAmountViewModelOptions, type UseSuperstateAmountViewModelResult, type UseSuperstateReviewViewModelOptions, type UseSuperstateReviewViewModelResult, type UseSuperstateSidebarViewModelOptions, type UseSuperstateSidebarViewModelResult, type UseSuperstateSwapCheckoutViewModelOptions, type UseSuperstateSwapCheckoutViewModelResult, type UseSuperstateWalletViewModelOptions, type UseSuperstateWalletViewModelResult, type UseSwapOutputTokenOptions, type UseSwapOutputTokenResult, type UseSwapQuoteOptions, type UseSwapQuoteResult, type UseTaxDocumentModalViewModelOptions, type UseTaxDocumentModalViewModelResult, type UseTaxDocumentOptions, type UseTaxDocumentResult, type UseTokenMetadataOptions, type UseTokenMetadataResult, type UseTokenRegistryOptions, type UseTokenRegistryResult, VerificationOverlay, type VerificationOverlayProps, type WalletAuthorizationError, type WalletAuthorizationPhase, type WalletAuthorizationResult, WalletError, type WalletsStatus, authorizeWallet, classifyWalletError, connectExternalWalletFlow, createCoinListClient, defaultCheckoutConfig, ensureErc20Allowance, executeOndoSwap, executeSwap, executeTokenSale, formatCountdown, formatMonthYear, formatSaleCardCountdown, offerAssetIconUrl, offerIconUrl, offerTokenIdentifier, ondoLoadErrorReason, pinoClientLogger, prepareOndoBuy, prepareOndoSell, quoteIsStale, quoteOverAsks, stablecoinIconUrl, submitErc20Approval, tokenLogoSrcSet, tokenLogoUrl, tokenMetadataOf, useCheckoutOfferTokenMetadata, useCoinList, useCoinListSignInCardViewModel, useCompleteOAuth, useConnectWallet, useConnectWalletModalViewModel, useCountdown, useErc20Balance, useErc20TokenBalances, useIdentityVerificationViewModel, useKycToken, useOfferDetails, useOffers, useOffersGridViewModel, useOndoBuyAmountViewModel, useOndoBuyCheckoutViewModel, useOndoBuyReviewViewModel, useOndoBuyTransaction, useOndoPrice, useOndoSellAmountViewModel, useOndoSellCheckoutViewModel, useOndoSellReviewViewModel, useOndoSellTransaction, useOndoSidebarViewModel, useOndoTradingStatus, useOndoWalletSelectViewModel, useOptionAddresses, useParticipations, useRequirements, useRequirementsChecklistViewModel, useSuperstateAmountViewModel, useSuperstateReviewViewModel, useSuperstateSidebarViewModel, useSuperstateSwapCheckoutViewModel, useSuperstateWalletViewModel, useSwapOutputToken, useSwapQuote, useTaxDocument, useTaxDocumentModalViewModel, useTokenMetadata, useTokenRegistry, validateAmount, validateSellAmount, validateSuperstateAmount };