@coinlist-co/react 0.12.2-rc.3de3751 → 0.12.2-rc.4cc3d7e

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.
@@ -1,24 +1,23 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode, MouseEventHandler } from 'react';
3
- import { A as AuthorizationCode, C as CodeVerifier, W as WalletError, E as EthereumChain, a as AssetSymbol, O as OfferVaultContract, b as EvmContractAddress, B as BlockchainAmount, c as CentrifugeVaultBuyTransaction, d as CentrifugeClaimDirection, e as CentrifugeNamespace, f as OfferId, g as OfferOptionId, h as AssetId, P as Participation, i as CoinListTokenSaleNamespace, j as OfferSwapContract, k as OndoBuyTransaction, l as OndoSellTransaction, m as OndoNamespace, n as OndoSwapTransactionCore, o as OrderBookSide, S as SwapQuote, p as Bps, q as EvmWalletAddress, r as SuperstateSwapNamespace, R as RequirementsNamespace, s as Requirement, t as WalletChallengeType, u as OfferOptionAddress, v as WalletsNamespace, w as Config, x as OAuthAccessToken, y as OffersNamespace, z as Erc20Namespace, T as TokensNamespace, D as Offer, F as TokenMetadata, G as OfferDetail, H as StablecoinSymbol, I as Erc20Asset, J as CoinListTokenSaleOfferDetail, K as CentrifugeVaultLegId, L as CentrifugeVaultOfferDetail, M as Seconds, N as AsyncOfferDetail, Q as RequirementStatusInfo, U as KycLevelName, V as RequirementType, X as RequirementStatusValue, Y as RequirementId, Z as PinoLoggerOptions, _ as Logger, $ as CentrifugeVaultStatus, a0 as CentrifugeVaultRef, a1 as BuildOndoBuyParams, a2 as OndoSwapOfferDetail, a3 as BuildOndoSellParams, a4 as OndoQuote, a5 as OndoQuoteSize, a6 as OndoTradingStatus, a7 as AssetDecimals, a8 as SuperstateSwapOfferDetail, a9 as CentrifugeVaultLeg, aa as CentrifugeVault, ab as OfferOptionAddressId, ac as DocumentSubmission, ad as TokenIdentifier } from '../time-DkU7jivQ.js';
3
+ import { A as AuthorizationGrant, W as WalletError, E as EthereumChain, a as AssetSymbol, O as OfferVaultContract, b as EvmContractAddress, B as BlockchainAmount, C as CentrifugeVaultBuyTransaction, c as CentrifugeClaimDirection, d as CentrifugeNamespace, e as CoinListTokenSaleOfferDetail, f as OfferOptionId, S as StablecoinSymbol, P as Participation, g as CoinListTokenSaleNamespace, h as OfferSwapContract, i as OndoBuyTransaction, j as OndoSellTransaction, k as OndoNamespace, l as OndoSwapTransactionCore, m as OrderBookSide, n as OfferId, o as SwapQuote, p as Bps, q as EvmWalletAddress, r as SuperstateSwapNamespace, R as RequirementsNamespace, s as Requirement, t as WalletChallengeType, u as OfferOptionAddress, v as WalletsNamespace, w as Config, x as OAuthAccessToken, y as OffersNamespace, z as Erc20Namespace, T as TokensNamespace, D as Offer, F as TokenMetadata, G as OfferDetail, H as Erc20Asset, I as CentrifugeVaultLegId, J as CentrifugeVaultOfferDetail, K as Seconds, L as AsyncOfferDetail, M as RequirementStatusInfo, N as KycLevelName, Q as RequirementType, U as RequirementStatusValue, V as RequirementId, X as PinoLoggerOptions, Y as Logger, Z as AuthorizationCode, _ as CodeVerifier, $ as CentrifugeVaultStatus, a0 as CentrifugeVaultRef, a1 as BuildOndoBuyParams, a2 as OndoSwapOfferDetail, a3 as BuildOndoSellParams, a4 as OndoQuote, a5 as OndoQuoteSize, a6 as OndoTradingStatus, a7 as AssetDecimals, a8 as SuperstateSwapOfferDetail, a9 as CentrifugeVaultLeg, aa as CentrifugeVault, ab as OfferOptionAddressId, ac as DocumentSubmission, ad as TokenIdentifier } from '../time-BgR3LVER.js';
4
4
  import { Hash } from 'viem';
5
- import { E as EvmWallet, C as ConnectWallet, W as WalletSelection, F as FormattedAmountAssetUi, T as TxExplorerUrl, A as AssetIconUrl, a as WalletLabelResolver, S as ShortenedWalletAddress, b as FormattedPercentUi, N as NonEmptyArray, c as TokenRegistrySnapshot } from '../token-registry-snapshot-D0OWXMe4.js';
5
+ import { E as EvmWallet, C as ConnectWallet, W as WalletSelection, F as FormattedAmountAssetUi, T as TxExplorerUrl, A as AssetIconUrl, a as WalletLabelResolver, S as ShortenedWalletAddress, b as FormattedPercentUi, N as NonEmptyArray, c as TokenRegistrySnapshot } from '../token-registry-snapshot-CE21sVyi.js';
6
6
 
7
7
  type AuthState = 'unknown' | 'logged-in' | 'logged-out';
8
8
  /** Discriminated error reasons from {@link CoinListClient.completeOAuth}. */
9
9
  type OAuthClientErrorReason = 'user_canceled' | 'missing_state' | 'invalid_state' | 'missing_code' | 'missing_code_verifier';
10
- type OAuthClientResult = {
10
+ type OAuthClientResult = ({
11
11
  type: 'ok';
12
- code: AuthorizationCode;
13
- codeVerifier: CodeVerifier;
14
- } | {
12
+ } & AuthorizationGrant) | {
15
13
  type: 'error';
16
14
  reason: OAuthClientErrorReason;
17
15
  };
18
16
 
19
17
  /**
20
18
  * Everything the browser half of the SDK knows about the current user's
21
- * session, and the OAuth 2.0 + PKCE flow that establishes one.
19
+ * session, and the OAuth 2.0 + PKCE flow that establishes one - e.g.
20
+ * `coinlist.auth.getState()` or `coinlist.auth.startOAuth()`.
22
21
  *
23
22
  * The SDK never holds a client secret in the browser: {@link startOAuth}
24
23
  * redirects the user to CoinList, and {@link completeOAuth} only parses and
@@ -311,8 +310,8 @@ type ClaimCentrifugeVaultParams = {
311
310
  * broadcast. The two halves stay beside it. The checkout runs them itself so
312
311
  * it can drop a build that finishes after the user has left, and a host that
313
312
  * wants to show the calldata before broadcasting can do the same. The amount
314
- * step calls neither. The request settles later. Broadcasting it does not
315
- * buy shares.
313
+ * step calls neither, and like the builders they wrap they are not free to
314
+ * poll. The request settles later. Broadcasting it does not buy shares.
316
315
  *
317
316
  * @alpha
318
317
  */
@@ -354,6 +353,10 @@ type TokenSaleExecutionPhase = 'checking-allowance' | 'resetting-allowance' | 'c
354
353
  /**
355
354
  * A step-tagged reason `ClientCoinListTokenSaleNamespace.execute` failed.
356
355
  *
356
+ * The first three are refusals before anything is signed: the offer names no
357
+ * funding contract on the chain, does not accept the coin there, or has no
358
+ * option with that id.
359
+ *
357
360
  * The reset-to-zero step (`allowance-reset` / `allowance-reset-reverted`) is
358
361
  * reported distinctly from the main approval (`approval` /
359
362
  * `approval-reverted`, reused from {@link Erc20ApprovalError}) so consumers can
@@ -361,6 +364,12 @@ type TokenSaleExecutionPhase = 'checking-allowance' | 'resetting-allowance' | 'c
361
364
  * reverted on-chain.
362
365
  */
363
366
  type TokenSaleExecutionError = {
367
+ step: 'unsupported-chain';
368
+ } | {
369
+ step: 'unsupported-asset';
370
+ } | {
371
+ step: 'unknown-option';
372
+ } | {
364
373
  step: 'allowance-check';
365
374
  } | {
366
375
  step: 'allowance-reset';
@@ -379,25 +388,44 @@ type TokenSaleExecutionResult = {
379
388
  type: 'error';
380
389
  error: TokenSaleExecutionError;
381
390
  };
391
+ /**
392
+ * Which approval a participation is recorded against.
393
+ *
394
+ * `fresh` sends a new one, which is what every first attempt does. `mined`
395
+ * reuses one that already mined for this amount - the `approvalTxHash` of a
396
+ * `participation` failure - so retrying the write asks the wallet for nothing.
397
+ */
398
+ type TokenSaleApproval = {
399
+ type: 'fresh';
400
+ } | {
401
+ type: 'mined';
402
+ txHash: Hash;
403
+ };
382
404
  type ExecuteTokenSaleParams = {
383
405
  wallet: EvmWallet;
384
- offerId: OfferId;
385
- offerOptionId: OfferOptionId;
386
- assetId: AssetId;
387
- /** ERC-20 the user pays with (e.g. USDC/USDT). */
388
- paymentTokenAddress: EvmContractAddress;
389
- /** Contract that pulls the payment — the `approve()` spender. */
390
- fundingContractAddress: EvmContractAddress;
406
+ /**
407
+ * The sale being bought into. The funding contract, the coin's address and
408
+ * its asset id are all read off it, so the caller never supplies one.
409
+ */
410
+ offer: CoinListTokenSaleOfferDetail;
411
+ /** The option being bought, which sets the price. */
412
+ optionId: OfferOptionId;
391
413
  chain: EthereumChain;
414
+ /** The coin the user pays in. It must be one of the offer's funding assets. */
415
+ inputAsset: StablecoinSymbol;
416
+ /** How much of `inputAsset` to commit, in its base units. */
392
417
  amount: BlockchainAmount;
418
+ /** Defaults to `{ type: 'fresh' }`. */
419
+ approval?: TokenSaleApproval;
393
420
  onProgress?: (phase: TokenSaleExecutionPhase) => void;
394
421
  };
395
422
 
396
423
  /**
397
424
  * The client-side token-sale namespace: everything the shared
398
425
  * {@link CoinListTokenSaleNamespace} reads/writes over the API, plus the
399
- * on-chain flow that drives a wallet (`execute`). The flow takes the wallet
400
- * and addresses per call; the namespace supplies the participation writes and
426
+ * on-chain flow that drives a caller-supplied `EvmWallet` (`execute`) -
427
+ * e.g. `coinlist.tokenSale.execute({ ... })`. The flow takes the wallet and
428
+ * addresses per call; the namespace supplies the participation writes and
401
429
  * (via the ERC-20 namespace) the allowance read it depends on.
402
430
  */
403
431
  interface ClientCoinListTokenSaleNamespace extends CoinListTokenSaleNamespace {
@@ -536,7 +564,12 @@ type ExecuteOndoSwapParams<T> = {
536
564
 
537
565
  /**
538
566
  * The Ondo namespace plus the halves of placing an order that need a wallet,
539
- * and so cannot live on the shared namespace.
567
+ * and so cannot live on the shared namespace: `prepareBuy` / `prepareSell`
568
+ * (approve, then commit a firm quote) and `executeSwap` (broadcast it).
569
+ *
570
+ * Like the builders they wrap, the prepare methods spend an attestation, so
571
+ * unlike the reads they are not free to poll: call one when the user commits
572
+ * to an amount, never on a timer.
540
573
  *
541
574
  * Preparing and executing are two calls rather than one because the flow is
542
575
  * two user decisions: the trader commits to an amount (approving the spend),
@@ -705,7 +738,8 @@ type AuthorizeWalletParams = {
705
738
  /**
706
739
  * The client-side swap namespace: everything the shared
707
740
  * {@link SuperstateSwapNamespace} reads/writes over the API, plus the on-chain flows
708
- * that drive a wallet (`execute`, `authorizeWallet`). The flows take the
741
+ * that drive a caller-supplied wallet (`execute`, `authorizeWallet`) and
742
+ * return a step-tagged result rather than throwing. The flows take the
709
743
  * wallet and addresses per call; the namespace itself supplies the API reads
710
744
  * they depend on.
711
745
  */
@@ -746,7 +780,7 @@ interface ClientRequirementsNamespace extends RequirementsNamespace {
746
780
  }
747
781
 
748
782
  /**
749
- * Getting the user to a human at CoinList.
783
+ * Getting the user to a human at CoinList - `coinlist.support.contact()`.
750
784
  *
751
785
  * This namespace is client-only: it opens a browser tab and has no
752
786
  * `CoinListServer` counterpart. No method here requires authentication.
@@ -807,7 +841,8 @@ type ConnectWalletParams = {
807
841
 
808
842
  /**
809
843
  * The wallets namespace plus the one operation that needs the host's wallet:
810
- * proving ownership of it and binding it to an offer option, in one call.
844
+ * proving ownership of it and binding it to an offer option, in one call -
845
+ * `coinlist.wallets.connect({ wallet, offerId, offerOptionId })`.
811
846
  *
812
847
  * The shared {@link WalletsNamespace} already has both halves -
813
848
  * `createOwnershipChallenge` and `connectExternal` - but a signature has to
@@ -866,96 +901,27 @@ interface ClientConfig extends Config {
866
901
  * when the user is not authenticated.
867
902
  */
868
903
  interface CoinListClient {
869
- /**
870
- * Authentication: the current {@link AuthState}, and the browser half of the
871
- * OAuth 2.0 + PKCE flow — e.g. `coinlist.auth.startOAuth()`.
872
- */
904
+ /** Auth state and the browser half of OAuth - see {@link ClientAuthNamespace}. */
873
905
  readonly auth: ClientAuthNamespace;
874
- /**
875
- * The offer catalogue: listing offers and reading one in full — e.g.
876
- * `coinlist.offers.get(offerId)`.
877
- */
906
+ /** The offer catalogue, e.g. `coinlist.offers.get(offerId)` - see {@link OffersNamespace}. */
878
907
  readonly offers: OffersNamespace;
879
- /**
880
- * What the user must satisfy before participating in an offer: the
881
- * checklist and its statuses, identity verification (KYC), and tax-document
882
- * signing — e.g. `coinlist.requirements.statuses(offerId)`.
883
- *
884
- * Also exposes `handle(requirement)`, which sends the user to the CoinList
885
- * page that satisfies a requirement.
886
- */
908
+ /** What a user must satisfy to participate - see {@link ClientRequirementsNamespace}. */
887
909
  readonly requirements: ClientRequirementsNamespace;
888
- /**
889
- * The user's external wallets: proving ownership, binding a wallet to an
890
- * offer option, and managing those bindings — e.g.
891
- * `coinlist.wallets.connect({ wallet, offerId, offerOptionId })`.
892
- */
910
+ /** Wallet ownership proofs and offer-option bindings - see {@link ClientWalletsNamespace}. */
893
911
  readonly wallets: ClientWalletsNamespace;
894
- /**
895
- * Generic ERC-20 reads (token allowance and balance) shared across the
896
- * on-chain flows — e.g. `coinlist.erc20.getBalance({ ... })`.
897
- */
912
+ /** Generic ERC-20 allowance and balance reads - see {@link Erc20Namespace}. */
898
913
  readonly erc20: Erc20Namespace;
899
- /**
900
- * Token-sale operations: listing/reading/recording participations, plus the
901
- * on-chain `execute` flow that submits the ERC-20 approval and records the
902
- * participation over a caller-supplied {@link EvmWallet} — e.g.
903
- * `coinlist.tokenSale.execute({ ... })`.
904
- *
905
- * `execute` drives a caller-supplied wallet and returns a step-tagged result
906
- * rather than throwing.
907
- */
914
+ /** Token-sale participations and the on-chain purchase - see {@link ClientCoinListTokenSaleNamespace}. */
908
915
  readonly tokenSale: ClientCoinListTokenSaleNamespace;
909
- /**
910
- * On-chain swap operations: quoting a swap, reading swap-contract state, and
911
- * allow-listing a proven wallet — e.g.
912
- * `coinlist.superstate.getOutputToken({ contractAddress, chain })`.
913
- *
914
- * The on-chain flows (`execute`, `authorizeWallet`) additionally drive a
915
- * caller-supplied wallet.
916
- */
916
+ /** Superstate swaps - see {@link ClientSuperstateSwapNamespace}. */
917
917
  readonly superstate: ClientSuperstateSwapNamespace;
918
- /**
919
- * Ondo swaps: whether an asset is tradable right now and what it costs - e.g.
920
- * `coinlist.ondo.getQuote({ ... })` - plus placing an order, in the two
921
- * halves the flow actually has: `prepareBuy` / `prepareSell` (approve, then
922
- * commit a firm quote) and `executeSwap` (broadcast it).
923
- *
924
- * Preparing is two methods because the directions approve different tokens -
925
- * the funding coin on a purchase, the asset on a sale - and commit to
926
- * different terms; broadcasting is one, because it reads calldata and a
927
- * deadline and knows about neither.
928
- *
929
- * The reads are free to poll while the user edits an order. Preparing is
930
- * not: committing a quote spends an attestation.
931
- *
932
- * No CoinList fee is applied to a read quote; see
933
- * {@link ClientOndoNamespace}.
934
- */
918
+ /** Ondo swap quotes and orders - see {@link ClientOndoNamespace}. */
935
919
  readonly ondo: ClientOndoNamespace;
936
- /**
937
- * Centrifuge vault deposits and claims: the vault-wide ordering gate, each
938
- * wallet's position, the two halves of placing a request, and the claim
939
- * that settles a filled one.
940
- *
941
- * The reads are free to poll. `prepareBuy` and `placeRequest` are not.
942
- * Broadcasting places a request. It does not buy shares.
943
- */
920
+ /** Centrifuge vault requests and claims - see {@link ClientCentrifugeNamespace}. */
944
921
  readonly centrifuge: ClientCentrifugeNamespace;
945
- /**
946
- * Token display metadata (name, symbol, decimals, logos) from CoinList's
947
- * public token registry, keyed by chain + contract address — e.g.
948
- * `coinlist.tokens.get({ chain, address })` for an entry of
949
- * `Offer.tokens`, or `coinlist.tokens.list()` for the whole
950
- * catalogue in one request.
951
- *
952
- * Public and unauthenticated: unlike the other namespaces, its methods never
953
- * require a logged-in user.
954
- */
922
+ /** Public token display metadata - see {@link TokensNamespace}. */
955
923
  readonly tokens: TokensNamespace;
956
- /**
957
- * Contacting CoinList support — `coinlist.support.contact()`.
958
- */
924
+ /** Contacting CoinList support - see {@link ClientSupportNamespace}. */
959
925
  readonly support: ClientSupportNamespace;
960
926
  /**
961
927
  * Calls the provided {@link ClientConfig.getAccessToken} lambda to determine
@@ -1286,6 +1252,27 @@ type CentrifugeOrderPlaced = {
1286
1252
  txHash: Hash;
1287
1253
  };
1288
1254
 
1255
+ /**
1256
+ * A token-sale order the checkout placed: the approval mined and the
1257
+ * participation is recorded.
1258
+ *
1259
+ * It is a commitment, not a purchase. The sale pulls the payment through the
1260
+ * approval and allocates tokens when it settles, so `participation.status`
1261
+ * starts out pending.
1262
+ *
1263
+ * @alpha
1264
+ */
1265
+ type TokenSaleOrderPlaced = {
1266
+ /** The wallet that approved the payment, and that receives the tokens. */
1267
+ wallet: EvmWallet;
1268
+ /** What was committed, in `inputAsset`'s base units. */
1269
+ amount: BlockchainAmount;
1270
+ inputAsset: StablecoinSymbol;
1271
+ participation: Participation;
1272
+ /** The approval the participation was recorded against. */
1273
+ approvalTxHash: Hash;
1274
+ };
1275
+
1289
1276
  /**
1290
1277
  * A filled Ondo order, as the confirmation dialog and the host's
1291
1278
  * `onOrderConfirmed` callback need it.
@@ -1423,10 +1410,8 @@ type SuperstateOrderPlaced = {
1423
1410
  *
1424
1411
  * Keyed by `OfferType` rather than by provider name. Every entry is optional,
1425
1412
  * and so is the whole object: a host that says nothing about a provider gets
1426
- * its defaults, and a token sale with no entry renders nothing, since the SDK
1427
- * ships no token-sale UI of its own. A new provider that needs config cannot be
1428
- * wired up without a key here, since its branch in {@link CheckoutContainer}
1429
- * has to index one.
1413
+ * its defaults. A new provider that needs config cannot be wired up without a
1414
+ * key here, since its branch in {@link CheckoutContainer} has to index one.
1430
1415
  *
1431
1416
  * Everything here is per-*integration*: a host builds it once and passes the
1432
1417
  * same object for every offer it renders. Which way the order runs is
@@ -1452,19 +1437,20 @@ type SuperstateCheckoutConfig = {
1452
1437
  onOrderConfirmed?: (order: SuperstateOrderPlaced) => void;
1453
1438
  };
1454
1439
  /**
1455
- * The SDK ships no token-sale UI, so the host supplies it.
1456
- *
1457
- * A render function rather than a `ReactNode`, because the container knows
1458
- * which offer it is being asked about and a host with a working token-sale page
1459
- * of its own needs that offer to render it. Without this entry a token-sale
1460
- * offer renders nothing.
1461
- *
1462
- * Alpha: may change once the SDK ships its own token-sale checkout.
1440
+ * What a CoinList token-sale checkout can be configured with. Nothing is
1441
+ * required: the funding contract, the coins and the price are all read off
1442
+ * the offer. Which option is bought is per-render, so it is a prop - see
1443
+ * {@link CheckoutContainerProps.optionId}.
1463
1444
  *
1464
1445
  * @alpha
1465
1446
  */
1466
1447
  type CoinListTokenSaleCheckoutConfig = {
1467
- render: (offer: CoinListTokenSaleOfferDetail) => ReactNode;
1448
+ /**
1449
+ * Fired once the participation is recorded. The dialog shows either way.
1450
+ * The order is a commitment: the sale collects the payment and allocates
1451
+ * the tokens when it settles.
1452
+ */
1453
+ onOrderPlaced?: (order: TokenSaleOrderPlaced) => void;
1468
1454
  };
1469
1455
  /**
1470
1456
  * What a Centrifuge vault checkout can be configured with.
@@ -1511,6 +1497,18 @@ interface CheckoutContainerProps {
1511
1497
  * remount with a `key` - see {@link CheckoutContainer}.
1512
1498
  */
1513
1499
  side?: OrderBookSide;
1500
+ /**
1501
+ * Which of a token sale's options is bought - each sets its own price,
1502
+ * minimum and sale agreement. Default: the offer's first option. Every
1503
+ * other provider buys its offer's only option and ignores it.
1504
+ *
1505
+ * A prop rather than a config entry for the same reason as `side`: it is
1506
+ * per-render, chosen on the host's offer page.
1507
+ *
1508
+ * **Read once, at mount**, as `side` is. To switch options, remount with a
1509
+ * `key` covering it.
1510
+ */
1511
+ optionId?: OfferOptionId;
1514
1512
  /**
1515
1513
  * The wallets the buyer can spend from, and the host's connector for an
1516
1514
  * external one. The SDK ships no wallet stack, so this is how a host plugs
@@ -1530,8 +1528,8 @@ interface CheckoutContainerProps {
1530
1528
  * };
1531
1529
  * ```
1532
1530
  *
1533
- * Every provider honours `wallets.preselected`. Ondo (buy and sell) and
1534
- * Centrifuge skip their wallet step and open on the amount, renumbering the
1531
+ * Every provider honours `wallets.preselected`. Ondo (buy and sell),
1532
+ * Centrifuge and the token sale skip their wallet step and open on the amount, renumbering the
1535
1533
  * cards that remain. Superstate never skips it, because that step
1536
1534
  * allow-lists the wallet on-chain: it opens the step with the preselected
1537
1535
  * wallet's row already selected instead. Read once, at mount - see below.
@@ -1539,7 +1537,7 @@ interface CheckoutContainerProps {
1539
1537
  wallets: CheckoutWalletSelection;
1540
1538
  /**
1541
1539
  * What each offer type needs beyond the offer itself. Default `{}`: every
1542
- * provider runs on its defaults, and a token sale renders nothing.
1540
+ * provider runs on its defaults.
1543
1541
  */
1544
1542
  config?: CheckoutConfig;
1545
1543
  /**
@@ -1564,7 +1562,7 @@ interface CheckoutContainerProps {
1564
1562
  *
1565
1563
  * ## One mount, one offer, one chain, one side, one preselected wallet
1566
1564
  *
1567
- * `offer`, `chain`, the `side` and `wallets.preselected` are read as fixed for
1565
+ * `offer`, `chain`, the `side`, the `optionId` and `wallets.preselected` are read as fixed for
1568
1566
  * the lifetime of the mount. Each provider's viewmodel owns a step machine -
1569
1567
  * which wallet was authorized, how much is being spent - and that progress is
1570
1568
  * bound to the order it was made against: a Superstate wallet authorization
@@ -1581,7 +1579,7 @@ interface CheckoutContainerProps {
1581
1579
  * follows is granted by that wallet. The rest of `wallets` stays live - a
1582
1580
  * newly connected external wallet appears as a row without a remount.
1583
1581
  *
1584
- * **To render a different offer, chain, side or preselected wallet, remount
1582
+ * **To render a different offer, chain, side, option or preselected wallet, remount
1585
1583
  * rather than reassign** - give the container a `key` that changes with them
1586
1584
  * (add `wallets.preselected?.address` to it if the host's preselection can
1587
1585
  * change on one page):
@@ -1609,7 +1607,7 @@ interface CheckoutContainerProps {
1609
1607
  *
1610
1608
  * ```tsx
1611
1609
  * const config: CheckoutConfig = {
1612
- * 'coinlist::token_sale': { render: (o) => <MyTokenSalePage offer={o} /> },
1610
+ * 'ondo::swap': { onOrderConfirmed: (order) => track(order) },
1613
1611
  * };
1614
1612
  *
1615
1613
  * // The sell page. The buy page leaves `side` out.
@@ -1653,7 +1651,7 @@ interface CheckoutContainerProps {
1653
1651
  * toggle where it can reach an executing flow — disable the tabs once the
1654
1652
  * user is past the amount step, or confirm before switching.
1655
1653
  */
1656
- declare function CheckoutContainer({ offer, chain, side, wallets, config, enabled, className, }: CheckoutContainerProps): ReactNode;
1654
+ declare function CheckoutContainer({ offer, chain, side, optionId, wallets, config, enabled, className, }: CheckoutContainerProps): ReactNode;
1657
1655
 
1658
1656
  /**
1659
1657
  * The claim card.
@@ -3237,6 +3235,183 @@ interface UseParticipationsResult {
3237
3235
  */
3238
3236
  declare function useParticipations(offerId?: OfferId, options?: UseParticipationsOptions): UseParticipationsResult;
3239
3237
 
3238
+ /**
3239
+ * The last step of the token-sale checkout: confirming the commitment and
3240
+ * placing it.
3241
+ *
3242
+ * Placing approves the payment to the sale's funding contract and records the
3243
+ * participation. Nothing is spent yet: the sale pulls the payment and
3244
+ * allocates the tokens when it settles, so the quantity shown is an estimate.
3245
+ *
3246
+ * @alpha
3247
+ */
3248
+ type TokenSaleReviewUiState = {
3249
+ type: 'incomplete';
3250
+ } | {
3251
+ type: 'active';
3252
+ /** The token being bought. */
3253
+ outputAsset: CheckoutAssetUi;
3254
+ /** How many tokens the payment buys at the option's price, e.g. `200.00 TKN`. */
3255
+ estimatedTokens: FormattedAmountAssetUi;
3256
+ /** The option's price for one whole token, e.g. `$0.50`. */
3257
+ pricePerToken: FormattedAmountAssetUi;
3258
+ /** What the user commits, e.g. `100.00 USDC`. No fee comes off it. */
3259
+ payAmount: FormattedAmountAssetUi;
3260
+ /** Where the tokens land - the wallet that approves the payment. */
3261
+ recipientAddress: ShortenedWalletAddress;
3262
+ /** The option's sale agreement, which the order is placed under. */
3263
+ saleAgreementUrl: string | null;
3264
+ placeOrderCta: CheckoutCtaUi;
3265
+ error: string | null;
3266
+ };
3267
+ /** @alpha */
3268
+ type TokenSaleReviewUiEvent = {
3269
+ type: 'ON_PLACE_ORDER';
3270
+ };
3271
+
3272
+ /**
3273
+ * Why a token-sale checkout cannot run at all, as opposed to a step of it
3274
+ * failing. Every one of them is a fact about the offer and the host's props,
3275
+ * so none clears on its own:
3276
+ *
3277
+ * - `unsupported-chain`: the sale names no funding contract on the chain.
3278
+ * - `unknown-option`: the host's `optionId` is not one of the offer's options.
3279
+ * - `no-price`: the option has no fixed price - an auction, which the SDK
3280
+ * does not run.
3281
+ * - `no-payable-asset`: the sale accepts no coin the SDK can pay with on the
3282
+ * chain.
3283
+ *
3284
+ * @alpha
3285
+ */
3286
+ type TokenSaleCheckoutErrorReason = CheckoutBlockedReason<'unknown-option' | 'no-price' | 'no-payable-asset'>;
3287
+
3288
+ /**
3289
+ * The reference panel beside the token-sale checkout: which token is being
3290
+ * bought, what one costs, whether the sale is running, and the terms that do
3291
+ * not move while the order is filled in.
3292
+ *
3293
+ * Read-only, so there is no `UiEvent`. Everything is known from the offer the
3294
+ * moment the checkout renders, so the state is a product rather than a union.
3295
+ *
3296
+ * @alpha
3297
+ */
3298
+ type TokenSaleSidebarUiState = {
3299
+ asset: CheckoutAssetUi;
3300
+ /** Whether the sale is running: a live countdown, or why it is not. */
3301
+ sale: CheckoutStatusUi;
3302
+ /** The option's price for one whole token, e.g. `$0.50`. */
3303
+ pricePerToken: FormattedAmountAssetUi;
3304
+ /**
3305
+ * The price times the option's total token supply, e.g. `$500,000,000.00`.
3306
+ * `-` when the option publishes no supply.
3307
+ */
3308
+ fullyDilutedValuation: FormattedAmountAssetUi;
3309
+ /** Display name of the chain the sale is paid on, e.g. `Ethereum`. */
3310
+ networkName: string;
3311
+ /** What the sale can be paid in, e.g. `USDC, USDT`. */
3312
+ purchaseOptionsLabel: string;
3313
+ /** The option's minimum, e.g. `$100.00`. `-` when it publishes none. */
3314
+ minPurchase: FormattedAmountAssetUi;
3315
+ };
3316
+
3317
+ /**
3318
+ * The whole CoinList token-sale checkout: three steps, the sale panel, and the
3319
+ * dialog that says the order was placed.
3320
+ *
3321
+ * @alpha
3322
+ */
3323
+ type CoinListTokenSaleCheckoutUiState = {
3324
+ type: 'content';
3325
+ /**
3326
+ * The wallet step, or `null` when the host preselected a wallet and the
3327
+ * flow skipped it. The later steps are numbered from it.
3328
+ */
3329
+ wallet: CheckoutWalletSelectUiState | null;
3330
+ amount: CheckoutAmountUiState;
3331
+ review: TokenSaleReviewUiState;
3332
+ sidebar: TokenSaleSidebarUiState;
3333
+ orderPlaced: TokenSaleOrderPlacedUiState;
3334
+ } | {
3335
+ type: 'error';
3336
+ reason: TokenSaleCheckoutErrorReason;
3337
+ };
3338
+ /** @alpha */
3339
+ type CoinListTokenSaleCheckoutUiEvent = CheckoutWalletSelectUiEvent | CheckoutAmountUiEvent | TokenSaleReviewUiEvent | TokenSaleOrderPlacedUiEvent;
3340
+ /**
3341
+ * The dialog that closes the checkout once the order is recorded.
3342
+ *
3343
+ * It reports a commitment, not a purchase: the sale allocates the tokens and
3344
+ * pulls the payment when it settles. The explorer link is the approval's,
3345
+ * the one transaction the order sent.
3346
+ *
3347
+ * @alpha
3348
+ */
3349
+ type TokenSaleOrderPlacedUiState = {
3350
+ type: 'hidden';
3351
+ } | ({
3352
+ type: 'visible';
3353
+ outputAsset: CheckoutAssetUi;
3354
+ /** What was committed, e.g. `100.00 USDC`. */
3355
+ payAmount: FormattedAmountAssetUi;
3356
+ /** How many tokens it buys at the option's price, e.g. `200.00 TKN`. */
3357
+ estimatedTokens: FormattedAmountAssetUi;
3358
+ } & CheckoutReceiptUi);
3359
+ /** @alpha */
3360
+ type TokenSaleOrderPlacedUiEvent = {
3361
+ type: 'ON_CLOSE_ORDER_PLACED';
3362
+ };
3363
+
3364
+ /** @alpha */
3365
+ interface UseCoinListTokenSaleCheckoutViewModelOptions {
3366
+ offer: CoinListTokenSaleOfferDetail;
3367
+ /** The chain the order is paid on. The sale must name a funding contract there. */
3368
+ chain: EthereumChain;
3369
+ /**
3370
+ * The option being bought, which sets the price, the minimum and the sale
3371
+ * agreement. Defaults to the offer's first option.
3372
+ *
3373
+ * **Read once, at mount**: the price, minimum and agreement the steps were
3374
+ * filled in against are this option's. A host whose selection can change
3375
+ * remounts with a `key` covering it.
3376
+ */
3377
+ optionId?: OfferOptionId;
3378
+ /**
3379
+ * The host's wallets, its connector for an external one if any, and
3380
+ * optionally the wallet it has already settled on.
3381
+ *
3382
+ * `wallets.preselected` is read **once**, to seed the step machine: set, the
3383
+ * flow has no wallet step and opens on the amount. A host that changes it
3384
+ * mid-flow is ignored, because the approval the review grants is granted by
3385
+ * one specific wallet.
3386
+ */
3387
+ wallets: CheckoutWalletSelection;
3388
+ enabled?: boolean;
3389
+ /** Fired once the participation is recorded. The dialog shows either way. */
3390
+ onOrderPlaced?: (order: TokenSaleOrderPlaced) => void;
3391
+ }
3392
+ /** @alpha */
3393
+ interface UseCoinListTokenSaleCheckoutViewModelResult {
3394
+ state: CoinListTokenSaleCheckoutUiState;
3395
+ onEvent: (event: CoinListTokenSaleCheckoutUiEvent) => void;
3396
+ }
3397
+ /**
3398
+ * Drives the CoinList token-sale checkout.
3399
+ *
3400
+ * The container mounts this hook only. It composes the shared wallet and
3401
+ * amount steps, the review that places the order, and the sale panel. The
3402
+ * amount step only validates; the review approves the payment to the sale's
3403
+ * funding contract and records the participation.
3404
+ *
3405
+ * A sale that cannot take an order on this chain at all - no funding
3406
+ * contract, no such option, no fixed price, no coin the SDK can pay with -
3407
+ * replaces the whole checkout. A sale outside its window blocks the amount
3408
+ * and review steps instead, and the panel says when it opens or that it
3409
+ * ended.
3410
+ *
3411
+ * @alpha
3412
+ */
3413
+ declare function useCoinListTokenSaleCheckoutViewModel({ offer, chain, optionId: initialOptionId, wallets, enabled, onOrderPlaced, }: UseCoinListTokenSaleCheckoutViewModelOptions): UseCoinListTokenSaleCheckoutViewModelResult;
3414
+
3240
3415
  /**
3241
3416
  * Step 2 of the Ondo checkout: how much to spend, and which asset to spend.
3242
3417
  *
@@ -5409,4 +5584,4 @@ declare class CoinListClientInitializationError extends Error {
5409
5584
  constructor(message?: string);
5410
5585
  }
5411
5586
 
5412
- export { type ApproveThenBuildError, type ApproveThenBuildPhase, type ApproveThenBuildResult, type AuthState, type AuthorizeWalletParams, type BuyCentrifugeParams, type CentrifugeBuyCheckoutUiEvent, type CentrifugeBuyCheckoutUiState, type CentrifugeBuyError, type CentrifugeBuyPhase, type CentrifugeBuyPlacementError, type CentrifugeBuyPlacementPhase, type CentrifugeBuyPlacementResult, type CentrifugeBuyPreparationError, type CentrifugeBuyPreparationPhase, type CentrifugeBuyPreparationResult, type CentrifugeBuyResult, type CentrifugeBuyReviewUiEvent, type CentrifugeBuyReviewUiState, type CentrifugeCheckoutErrorReason, type CentrifugeClaimActionUi, type CentrifugeClaimBlockedReasonUi, type CentrifugeClaimDialogUi, type CentrifugeClaimError, type CentrifugeClaimFailureUi, type CentrifugeClaimParams, type CentrifugeClaimPhase, type CentrifugeClaimProgressUi, type CentrifugeClaimResult, type CentrifugeClaimRowUi, type CentrifugeClaimState, type CentrifugeClaimStepUi, type CentrifugeLoadErrorReason, type CentrifugeOrderPlaced, type CentrifugeOrderPlacedUiEvent, type CentrifugeOrderPlacedUiState, type CentrifugeSidebarMinimumUi, type CentrifugeSidebarUiState, type CentrifugeVaultCheckoutConfig, type CentrifugeVaultClaimConfig, type CentrifugeVaultClaimUiEvent, type CentrifugeVaultClaimUiState, type CentrifugeVaultClaimed, ChecklistStatus, type CheckoutAmountAdornmentUi, type CheckoutAmountUiEvent, type CheckoutAmountUiState, CheckoutAssetUi, type CheckoutBlockedReason, type CheckoutConfig, type CheckoutConfirmedWalletUi, CheckoutContainer, type CheckoutContainerProps, type CheckoutCtaUi, type CheckoutEmbeddedWalletUi, CheckoutExternalWalletUi, type CheckoutNetworkUi, type CheckoutReceiptUi, type CheckoutSelectableInputAssetUi, type CheckoutStatusUi, type CheckoutWalletSelectUiEvent, type CheckoutWalletSelectUiState, type CheckoutWalletSelection, type CheckoutWalletTypeUi, type CheckoutWalletUi, type ClaimCentrifugeVaultParams, type ClaimConfig, ClaimContainer, type ClaimContainerProps, type ClaimExternalWalletUi, type ClientAuthNamespace, type ClientCentrifugeNamespace, type ClientCoinListTokenSaleNamespace, type ClientConfig, type ClientOndoNamespace, type ClientRequirementsNamespace, type ClientSuperstateSwapNamespace, type ClientSupportNamespace, type ClientWalletsNamespace, type CoinListClient, CoinListClientInitializationError, CoinListProvider, type CoinListProviderProps, CoinListSignInButton, type CoinListSignInButtonProps, CoinListSignInCardContainer, type CoinListSignInCardContainerProps, type CoinListSignInCardUiEvent, type CoinListSignInCardUiState, CoinListStyleScope, type CoinListStyleScopeProps, type CoinListTokenSaleCheckoutConfig, type CompleteOAuthFailureReason, type ConnectWalletError, type ConnectWalletErrorCode, type ConnectWalletFlowError, type ConnectWalletFlowResult, type ConnectWalletParams, type ConnectWalletPhase, type ConnectWalletSignState, type ConnectWalletState, type ConnectedWalletUi, type Erc20AllowanceError, type Erc20AllowancePhase, type Erc20ApprovalError, type ExecuteOndoSwapParams, type ExecuteSwapParams, type ExecuteTokenSaleParams, type ExternalWalletRequestUi, type KycTokenErrorReason, type KycTokenState, type LoadCentrifugeClaimPositionsState, type LoadCentrifugeVaultStatusState, type LoadErc20BalanceState, type LoadErc20TokenBalancesState, type LoadErrorReason, type LoadFirmTransactionState, 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 LoadSwapOutputTokenState, type LoadSwapQuoteState, type LoadTokenMetadataState, type LoadTokenRegistryState, type LogoImageUi, type OAuthClientErrorReason, type OAuthClientResult, OfferAssetCard, type OfferAssetCardProps, OfferAssetCardUi, OfferLogoUi, OfferSaleCard, type OfferSaleCardProps, OfferSaleCardUi, OffersGridContainer, type OffersGridContainerProps, type OffersGridData, type OndoBuyAmountUiEvent, type OndoBuyAmountUiState, type OndoBuyCheckoutUiEvent, type OndoBuyCheckoutUiState, type OndoBuyOrderPlaced, type OndoBuyOrderTerms, type OndoBuyPreparationResult, type OndoBuyReviewUiEvent, type OndoBuyReviewUiState, type OndoCheckoutConfig, type OndoCheckoutErrorReason, type OndoLoadErrorReason, type OndoOrderConfirmedUiEvent, type OndoOrderConfirmedUiState, type OndoOrderPlaced, type OndoOrderPlacedCore, type OndoQuoteStatusUi, type OndoSellAmountUiEvent, type OndoSellAmountUiState, type OndoSellBalanceUi, type OndoSellCheckoutUiEvent, type OndoSellCheckoutUiState, type OndoSellOrderConfirmedUiEvent, type OndoSellOrderConfirmedUiState, type OndoSellOrderPlaced, type OndoSellOrderTerms, type OndoSellOutcomeUi, type OndoSellPreparationResult, type OndoSellReviewUiEvent, type OndoSellReviewUiState, type OndoSellSourceWalletUi, type OndoSidebarPriceUi, type OndoSidebarUiState, type OndoSwapExecutionError, type OndoSwapExecutionPhase, type OndoSwapExecutionResult, type OndoSwapPreparationError, type OndoSwapPreparationPhase, type OndoSwapPreparationResult, type PlaceCentrifugeRequestParams, type PrepareCentrifugeBuyParams, type PrepareOndoBuyParams, type PrepareOndoSellParams, type PrepareOndoSwapParamsCore, RequirementItemUi, RequirementStatus, RequirementVariant, RequirementsChecklistContainer, type RequirementsChecklistContainerProps, type RequirementsChecklistItemUi, type RequirementsChecklistUiEvent, type RequirementsChecklistUiState, RequirementsChecklistView, type RequirementsChecklistViewProps, type RequirementsData, type RequirementsVerificationUi, type ResetThenApprovePhase, type SignState, type SuperstateCheckoutConfig, type SuperstateOrderConfirmedUiEvent, type SuperstateOrderConfirmedUiState, type SuperstateOrderPlaced, type SuperstateReviewUiEvent, type SuperstateReviewUiState, type SuperstateSidebarPriceUi, type SuperstateSidebarUiState, type SuperstateSlippageOptionUi, type SuperstateSlippageUi, type SuperstateSwapCheckoutRetryUiEvent, type SuperstateSwapCheckoutUiEvent, type SuperstateSwapCheckoutUiState, type SuperstateSwapLoadErrorReason, type SuperstateWalletUiEvent, type SuperstateWalletUiState, type SwapExecutionError, type SwapExecutionPhase, type SwapExecutionResult, type TaxDocumentAddressParts, type TaxDocumentFields, type TaxDocumentState, type TokenSaleExecutionError, type TokenSaleExecutionPhase, type TokenSaleExecutionResult, type UseCentrifugeBuyCheckoutViewModelOptions, type UseCentrifugeBuyCheckoutViewModelResult, type UseCentrifugeClaimPositionsOptions, type UseCentrifugeClaimPositionsResult, type UseCentrifugeClaimResult, type UseCentrifugeVaultClaimViewModelOptions, type UseCentrifugeVaultClaimViewModelResult, type UseCentrifugeVaultStatusOptions, type UseCentrifugeVaultStatusResult, type UseCentrifugeVaultStatusesOptions, type UseCentrifugeVaultStatusesResult, type UseCoinListResult, type UseCoinListSignInCardViewModelOptions, type UseCoinListSignInCardViewModelResult, type UseCompleteOAuthOptions, type UseConnectWalletOptions, type UseConnectWalletResult, type UseErc20BalanceOptions, type UseErc20BalanceResult, type UseErc20TokenBalancesOptions, type UseErc20TokenBalancesResult, type UseKycTokenResult, type UseOfferDetailsOptions, type UseOfferDetailsResult, type UseOffersOptions, type UseOffersResult, type UseOndoBuyCheckoutViewModelOptions, type UseOndoBuyCheckoutViewModelResult, type UseOndoBuyTransactionOptions, type UseOndoBuyTransactionResult, type UseOndoPriceOptions, type UseOndoPriceResult, type UseOndoSellCheckoutViewModelOptions, type UseOndoSellCheckoutViewModelResult, type UseOndoSellTransactionOptions, type UseOndoSellTransactionResult, type UseOndoTradingStatusOptions, type UseOndoTradingStatusResult, type UseOptionAddressesOptions, type UseOptionAddressesResult, type UseParticipationsOptions, type UseParticipationsResult, type UseRequirementsChecklistViewModelOptions, type UseRequirementsChecklistViewModelResult, type UseRequirementsOptions, type UseRequirementsResult, type UseSuperstateSwapCheckoutViewModelOptions, type UseSuperstateSwapCheckoutViewModelResult, type UseSwapOutputTokenOptions, type UseSwapOutputTokenResult, type UseSwapQuoteOptions, type UseSwapQuoteResult, type UseTaxDocumentOptions, type UseTaxDocumentResult, type UseTokenMetadataOptions, type UseTokenMetadataResult, type UseTokenRegistryOptions, type UseTokenRegistryResult, type WalletAuthorizationError, type WalletAuthorizationPhase, type WalletAuthorizationResult, type WalletsStatus, createCoinListClient, isNotTradable, pinoClientLogger, useCentrifugeBuyCheckoutViewModel, useCentrifugeClaim, useCentrifugeClaimPositions, useCentrifugeVaultClaimViewModel, useCentrifugeVaultStatus, useCentrifugeVaultStatuses, useCoinList, useCoinListSignInCardViewModel, useCompleteOAuth, useConnectWallet, useErc20Balance, useErc20TokenBalances, useKycToken, useOfferDetails, useOffers, useOndoBuyCheckoutViewModel, useOndoBuyTransaction, useOndoPrice, useOndoSellCheckoutViewModel, useOndoSellTransaction, useOndoTradingStatus, useOptionAddresses, useParticipations, useRequirements, useRequirementsChecklistViewModel, useSuperstateSwapCheckoutViewModel, useSwapOutputToken, useSwapQuote, useTaxDocument, useTokenMetadata, useTokenRegistry };
5587
+ export { type ApproveThenBuildError, type ApproveThenBuildPhase, type ApproveThenBuildResult, type AuthState, type AuthorizeWalletParams, type BuyCentrifugeParams, type CentrifugeBuyCheckoutUiEvent, type CentrifugeBuyCheckoutUiState, type CentrifugeBuyError, type CentrifugeBuyPhase, type CentrifugeBuyPlacementError, type CentrifugeBuyPlacementPhase, type CentrifugeBuyPlacementResult, type CentrifugeBuyPreparationError, type CentrifugeBuyPreparationPhase, type CentrifugeBuyPreparationResult, type CentrifugeBuyResult, type CentrifugeBuyReviewUiEvent, type CentrifugeBuyReviewUiState, type CentrifugeCheckoutErrorReason, type CentrifugeClaimActionUi, type CentrifugeClaimBlockedReasonUi, type CentrifugeClaimDialogUi, type CentrifugeClaimError, type CentrifugeClaimFailureUi, type CentrifugeClaimParams, type CentrifugeClaimPhase, type CentrifugeClaimProgressUi, type CentrifugeClaimResult, type CentrifugeClaimRowUi, type CentrifugeClaimState, type CentrifugeClaimStepUi, type CentrifugeLoadErrorReason, type CentrifugeOrderPlaced, type CentrifugeOrderPlacedUiEvent, type CentrifugeOrderPlacedUiState, type CentrifugeSidebarMinimumUi, type CentrifugeSidebarUiState, type CentrifugeVaultCheckoutConfig, type CentrifugeVaultClaimConfig, type CentrifugeVaultClaimUiEvent, type CentrifugeVaultClaimUiState, type CentrifugeVaultClaimed, ChecklistStatus, type CheckoutAmountAdornmentUi, type CheckoutAmountUiEvent, type CheckoutAmountUiState, CheckoutAssetUi, type CheckoutBlockedReason, type CheckoutConfig, type CheckoutConfirmedWalletUi, CheckoutContainer, type CheckoutContainerProps, type CheckoutCtaUi, type CheckoutEmbeddedWalletUi, CheckoutExternalWalletUi, type CheckoutNetworkUi, type CheckoutReceiptUi, type CheckoutSelectableInputAssetUi, type CheckoutStatusUi, type CheckoutWalletSelectUiEvent, type CheckoutWalletSelectUiState, type CheckoutWalletSelection, type CheckoutWalletTypeUi, type CheckoutWalletUi, type ClaimCentrifugeVaultParams, type ClaimConfig, ClaimContainer, type ClaimContainerProps, type ClaimExternalWalletUi, type ClientAuthNamespace, type ClientCentrifugeNamespace, type ClientCoinListTokenSaleNamespace, type ClientConfig, type ClientOndoNamespace, type ClientRequirementsNamespace, type ClientSuperstateSwapNamespace, type ClientSupportNamespace, type ClientWalletsNamespace, type CoinListClient, CoinListClientInitializationError, CoinListProvider, type CoinListProviderProps, CoinListSignInButton, type CoinListSignInButtonProps, CoinListSignInCardContainer, type CoinListSignInCardContainerProps, type CoinListSignInCardUiEvent, type CoinListSignInCardUiState, CoinListStyleScope, type CoinListStyleScopeProps, type CoinListTokenSaleCheckoutConfig, type CoinListTokenSaleCheckoutUiEvent, type CoinListTokenSaleCheckoutUiState, type CompleteOAuthFailureReason, type ConnectWalletError, type ConnectWalletErrorCode, type ConnectWalletFlowError, type ConnectWalletFlowResult, type ConnectWalletParams, type ConnectWalletPhase, type ConnectWalletSignState, type ConnectWalletState, type ConnectedWalletUi, type Erc20AllowanceError, type Erc20AllowancePhase, type Erc20ApprovalError, type ExecuteOndoSwapParams, type ExecuteSwapParams, type ExecuteTokenSaleParams, type ExternalWalletRequestUi, type KycTokenErrorReason, type KycTokenState, type LoadCentrifugeClaimPositionsState, type LoadCentrifugeVaultStatusState, type LoadErc20BalanceState, type LoadErc20TokenBalancesState, type LoadErrorReason, type LoadFirmTransactionState, 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 LoadSwapOutputTokenState, type LoadSwapQuoteState, type LoadTokenMetadataState, type LoadTokenRegistryState, type LogoImageUi, type OAuthClientErrorReason, type OAuthClientResult, OfferAssetCard, type OfferAssetCardProps, OfferAssetCardUi, OfferLogoUi, OfferSaleCard, type OfferSaleCardProps, OfferSaleCardUi, OffersGridContainer, type OffersGridContainerProps, type OffersGridData, type OndoBuyAmountUiEvent, type OndoBuyAmountUiState, type OndoBuyCheckoutUiEvent, type OndoBuyCheckoutUiState, type OndoBuyOrderPlaced, type OndoBuyOrderTerms, type OndoBuyPreparationResult, type OndoBuyReviewUiEvent, type OndoBuyReviewUiState, type OndoCheckoutConfig, type OndoCheckoutErrorReason, type OndoLoadErrorReason, type OndoOrderConfirmedUiEvent, type OndoOrderConfirmedUiState, type OndoOrderPlaced, type OndoOrderPlacedCore, type OndoQuoteStatusUi, type OndoSellAmountUiEvent, type OndoSellAmountUiState, type OndoSellBalanceUi, type OndoSellCheckoutUiEvent, type OndoSellCheckoutUiState, type OndoSellOrderConfirmedUiEvent, type OndoSellOrderConfirmedUiState, type OndoSellOrderPlaced, type OndoSellOrderTerms, type OndoSellOutcomeUi, type OndoSellPreparationResult, type OndoSellReviewUiEvent, type OndoSellReviewUiState, type OndoSellSourceWalletUi, type OndoSidebarPriceUi, type OndoSidebarUiState, type OndoSwapExecutionError, type OndoSwapExecutionPhase, type OndoSwapExecutionResult, type OndoSwapPreparationError, type OndoSwapPreparationPhase, type OndoSwapPreparationResult, type PlaceCentrifugeRequestParams, type PrepareCentrifugeBuyParams, type PrepareOndoBuyParams, type PrepareOndoSellParams, type PrepareOndoSwapParamsCore, RequirementItemUi, RequirementStatus, RequirementVariant, RequirementsChecklistContainer, type RequirementsChecklistContainerProps, type RequirementsChecklistItemUi, type RequirementsChecklistUiEvent, type RequirementsChecklistUiState, RequirementsChecklistView, type RequirementsChecklistViewProps, type RequirementsData, type RequirementsVerificationUi, type ResetThenApprovePhase, type SignState, type SuperstateCheckoutConfig, type SuperstateOrderConfirmedUiEvent, type SuperstateOrderConfirmedUiState, type SuperstateOrderPlaced, type SuperstateReviewUiEvent, type SuperstateReviewUiState, type SuperstateSidebarPriceUi, type SuperstateSidebarUiState, type SuperstateSlippageOptionUi, type SuperstateSlippageUi, type SuperstateSwapCheckoutRetryUiEvent, type SuperstateSwapCheckoutUiEvent, type SuperstateSwapCheckoutUiState, type SuperstateSwapLoadErrorReason, type SuperstateWalletUiEvent, type SuperstateWalletUiState, type SwapExecutionError, type SwapExecutionPhase, type SwapExecutionResult, type TaxDocumentAddressParts, type TaxDocumentFields, type TaxDocumentState, type TokenSaleApproval, type TokenSaleCheckoutErrorReason, type TokenSaleExecutionError, type TokenSaleExecutionPhase, type TokenSaleExecutionResult, type TokenSaleOrderPlaced, type TokenSaleOrderPlacedUiEvent, type TokenSaleOrderPlacedUiState, type TokenSaleReviewUiEvent, type TokenSaleReviewUiState, type TokenSaleSidebarUiState, type UseCentrifugeBuyCheckoutViewModelOptions, type UseCentrifugeBuyCheckoutViewModelResult, type UseCentrifugeClaimPositionsOptions, type UseCentrifugeClaimPositionsResult, type UseCentrifugeClaimResult, type UseCentrifugeVaultClaimViewModelOptions, type UseCentrifugeVaultClaimViewModelResult, type UseCentrifugeVaultStatusOptions, type UseCentrifugeVaultStatusResult, type UseCentrifugeVaultStatusesOptions, type UseCentrifugeVaultStatusesResult, type UseCoinListResult, type UseCoinListSignInCardViewModelOptions, type UseCoinListSignInCardViewModelResult, type UseCoinListTokenSaleCheckoutViewModelOptions, type UseCoinListTokenSaleCheckoutViewModelResult, type UseCompleteOAuthOptions, type UseConnectWalletOptions, type UseConnectWalletResult, type UseErc20BalanceOptions, type UseErc20BalanceResult, type UseErc20TokenBalancesOptions, type UseErc20TokenBalancesResult, type UseKycTokenResult, type UseOfferDetailsOptions, type UseOfferDetailsResult, type UseOffersOptions, type UseOffersResult, type UseOndoBuyCheckoutViewModelOptions, type UseOndoBuyCheckoutViewModelResult, type UseOndoBuyTransactionOptions, type UseOndoBuyTransactionResult, type UseOndoPriceOptions, type UseOndoPriceResult, type UseOndoSellCheckoutViewModelOptions, type UseOndoSellCheckoutViewModelResult, type UseOndoSellTransactionOptions, type UseOndoSellTransactionResult, type UseOndoTradingStatusOptions, type UseOndoTradingStatusResult, type UseOptionAddressesOptions, type UseOptionAddressesResult, type UseParticipationsOptions, type UseParticipationsResult, type UseRequirementsChecklistViewModelOptions, type UseRequirementsChecklistViewModelResult, type UseRequirementsOptions, type UseRequirementsResult, type UseSuperstateSwapCheckoutViewModelOptions, type UseSuperstateSwapCheckoutViewModelResult, type UseSwapOutputTokenOptions, type UseSwapOutputTokenResult, type UseSwapQuoteOptions, type UseSwapQuoteResult, type UseTaxDocumentOptions, type UseTaxDocumentResult, type UseTokenMetadataOptions, type UseTokenMetadataResult, type UseTokenRegistryOptions, type UseTokenRegistryResult, type WalletAuthorizationError, type WalletAuthorizationPhase, type WalletAuthorizationResult, type WalletsStatus, createCoinListClient, isNotTradable, pinoClientLogger, useCentrifugeBuyCheckoutViewModel, useCentrifugeClaim, useCentrifugeClaimPositions, useCentrifugeVaultClaimViewModel, useCentrifugeVaultStatus, useCentrifugeVaultStatuses, useCoinList, useCoinListSignInCardViewModel, useCoinListTokenSaleCheckoutViewModel, useCompleteOAuth, useConnectWallet, useErc20Balance, useErc20TokenBalances, useKycToken, useOfferDetails, useOffers, useOndoBuyCheckoutViewModel, useOndoBuyTransaction, useOndoPrice, useOndoSellCheckoutViewModel, useOndoSellTransaction, useOndoTradingStatus, useOptionAddresses, useParticipations, useRequirements, useRequirementsChecklistViewModel, useSuperstateSwapCheckoutViewModel, useSwapOutputToken, useSwapQuote, useTaxDocument, useTokenMetadata, useTokenRegistry };