@coinlist-co/react 0.12.2-rc.aa91ce3 → 0.12.2-rc.bc20f5b

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/README.md +10 -0
  2. package/dist/{chunk-QRVIBG6H.js → chunk-3WW5FLT7.js} +2 -2
  3. package/dist/{chunk-IAY3F42Q.js → chunk-C6GF7MDF.js} +125 -158
  4. package/dist/chunk-C6GF7MDF.js.map +1 -0
  5. package/dist/{chunk-3OTYQADF.js → chunk-IZJ4JSSC.js} +2 -2
  6. package/dist/chunk-IZJ4JSSC.js.map +1 -0
  7. package/dist/client/index.cjs +4469 -3149
  8. package/dist/client/index.cjs.map +1 -1
  9. package/dist/client/index.d.cts +939 -167
  10. package/dist/client/index.d.ts +939 -167
  11. package/dist/client/index.js +3867 -2555
  12. package/dist/client/index.js.map +1 -1
  13. package/dist/server/index.cjs +40 -49
  14. package/dist/server/index.cjs.map +1 -1
  15. package/dist/server/index.d.cts +3 -6
  16. package/dist/server/index.d.ts +3 -6
  17. package/dist/server/index.js +2 -2
  18. package/dist/server/index.js.map +1 -1
  19. package/dist/{time-DyjvzWso.d.cts → time-CVZpAkGY.d.cts} +276 -318
  20. package/dist/{time-DyjvzWso.d.ts → time-CVZpAkGY.d.ts} +276 -318
  21. package/dist/{token-registry-snapshot-Bldj1r5X.d.ts → token-registry-snapshot-BkwA8KmD.d.ts} +1 -1
  22. package/dist/{token-registry-snapshot-CbNCYP_5.d.cts → token-registry-snapshot-bR14QehS.d.cts} +1 -1
  23. package/dist/universal/index.cjs +26 -60
  24. package/dist/universal/index.cjs.map +1 -1
  25. package/dist/universal/index.d.cts +7 -12
  26. package/dist/universal/index.d.ts +7 -12
  27. package/dist/universal/index.js +2 -4
  28. package/package.json +1 -1
  29. package/dist/chunk-3OTYQADF.js.map +0 -1
  30. package/dist/chunk-IAY3F42Q.js.map +0 -1
  31. /package/dist/{chunk-QRVIBG6H.js.map → chunk-3WW5FLT7.js.map} +0 -0
@@ -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, a as CentrifugeNamespace, E as EthereumChain, b as AssetSymbol, c as CentrifugeClaimDirection, B as BlockchainAmount, d as CentrifugeNamespaceImpl, e as Erc20Namespace, f as EvmContractAddress, g as CoinListTokenSaleNamespace, O as OfferId, h as OfferOptionId, i as AssetId, P as Participation, j as CoinListTokenSaleNamespaceImpl, U as UniversalNamespaceContext, k as OndoNamespace, l as OfferSwapContract, m as OndoBuyTransaction, n as OndoSellTransaction, o as OndoSwapTransactionCore, p as OrderBookSide, q as OndoNamespaceImpl, S as SuperstateSwapNamespace, r as WalletsNamespace, s as Bps, t as EvmWalletAddress, u as SuperstateSwapNamespaceImpl, R as RequirementsNamespace, v as Requirement, w as RequirementsNamespaceImpl, x as Config, y as OAuthAccessToken, z as OffersNamespace, T as TokensNamespace, D as StablecoinSymbol, F as Erc20Asset, G as OfferDetail, H as TokenMetadata, I as CentrifugeVaultOfferDetail, J as OfferType, K as OndoSwapOfferDetail, M as CoinListTokenSaleOfferDetail, N as SuperstateSwapOfferDetail, Q as CentrifugeVaultLegId, V as Seconds, X as AsyncOfferType, Y as AsyncOfferDetail, Z as Offer, _ as RequirementStatusInfo, $ as RequirementType, a0 as RequirementStatusValue, a1 as OfferOptionAddress, a2 as RequirementId, a3 as KycLevelName, a4 as DocumentSubmission, a5 as WalletChallengeType, a6 as PinoLoggerOptions, a7 as CentrifugeOrderReason, a8 as CentrifugeOrderability, a9 as CentrifugeVaultQuote, aa as OndoTradingStatus, ab as AssetDecimals, ac as BuildOndoBuyParams, ad as BuildOndoSellParams, ae as OndoQuote, af as OndoQuoteSize, ag as TokenIdentifier, ah as CentrifugeVaultLeg, ai as OfferOptionAddressId, aj as CentrifugeVaultStatus, ak as TokenLogo } from '../time-DyjvzWso.cjs';
4
- export { al as DebugEvent, am as FrontlineEventId, an as HttpError, ao as HttpResponse, ap as KycToken, aq as LogBinding, ar as LogBindings, as as LogCause, at as LogLevel, au as LogScope, av as LogValue, aw as ProductionLogLevel, ax as RedactedWalletError, ay as RequestId, az as RpcFailureReason, aA as SafeEvent, aB as SafeFields, aC as UnredactedFields } from '../time-DyjvzWso.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, W as WalletSelection, c as WalletLabelResolver, C as ConnectWallet, N as NonEmptyArray, d as TokenRegistrySnapshot } from '../token-registry-snapshot-CbNCYP_5.cjs';
6
- export { B as BroadcastTxParams, e as EvmSigner, f as ExternalWalletAdapter, g as WriteContractParams } from '../token-registry-snapshot-CbNCYP_5.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 CentrifugeNamespace, d as AssetSymbol, O as OfferVaultContract, e as CentrifugeVaultBuyTransaction, f as CentrifugeClaimDirection, g as CentrifugeNamespaceImpl, U as UniversalNamespaceContext, h as CoinListTokenSaleNamespace, i as OfferId, j as OfferOptionId, k as AssetId, P as Participation, l as CoinListTokenSaleNamespaceImpl, m as OndoNamespace, n as OfferSwapContract, o as OndoBuyTransaction, p as OndoSellTransaction, q as OndoSwapTransactionCore, r as OrderBookSide, s as OndoNamespaceImpl, S as SuperstateSwapNamespace, t as WalletsNamespace, u as Bps, v as EvmWalletAddress, w as SuperstateSwapNamespaceImpl, R as RequirementsNamespace, x as Requirement, y as RequirementsNamespaceImpl, z as Config, D as OAuthAccessToken, F as OffersNamespace, T as TokensNamespace, G as StablecoinSymbol, H as Erc20Asset, I as OfferDetail, J as TokenMetadata, K as CentrifugeVaultOfferDetail, M as OfferType, N as OndoSwapOfferDetail, Q as CoinListTokenSaleOfferDetail, V as SuperstateSwapOfferDetail, X as CentrifugeVaultLegId, Y as Seconds, Z as AsyncOfferType, _ as AsyncOfferDetail, $ as Offer, a0 as RequirementStatusInfo, a1 as RequirementType, a2 as RequirementStatusValue, a3 as OfferOptionAddress, a4 as RequirementId, a5 as KycLevelName, a6 as DocumentSubmission, a7 as WalletChallengeType, a8 as PinoLoggerOptions, a9 as AssetDecimals, aa as BuildCentrifugeVaultBuyParams, ab as CentrifugeOrderReason, ac as CentrifugeOrderability, ad as OndoTradingStatus, ae as BuildOndoBuyParams, af as BuildOndoSellParams, ag as OndoQuote, ah as OndoQuoteSize, ai as TokenIdentifier, aj as CentrifugeVaultLeg, ak as OfferOptionAddressId, al as CentrifugeVaultStatus, am as TokenLogo } from '../time-CVZpAkGY.cjs';
4
+ export { an as DebugEvent, ao as FrontlineEventId, ap as HttpError, aq as HttpResponse, ar as KycToken, as as LogBinding, at as LogBindings, au as LogCause, av as LogLevel, aw as LogScope, ax as LogValue, ay as ProductionLogLevel, az as RedactedWalletError, aA as RequestId, aB as RpcFailureReason, aC as SafeEvent, aD as SafeFields, aE as UnredactedFields } from '../time-CVZpAkGY.cjs';
5
+ import { P as PKCEConfig, E as EvmWallet, S as SwapQuote, A as AssetIconUrl, F as FormattedAmountAssetUi, a as ShortenedWalletAddress, b as FormattedPercentUi, T as TxExplorerUrl, W as WalletSelection, c as WalletLabelResolver, C as ConnectWallet, N as NonEmptyArray, d as TokenRegistrySnapshot } from '../token-registry-snapshot-bR14QehS.cjs';
6
+ export { B as BroadcastTxParams, e as EvmSigner, f as ExternalWalletAdapter, g as WriteContractParams } from '../token-registry-snapshot-bR14QehS.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';
@@ -114,6 +114,204 @@ declare class ClientAuthNamespaceImpl implements ClientAuthNamespace {
114
114
  private readOauthCallback;
115
115
  }
116
116
 
117
+ type Erc20AllowancePhase = 'checking-allowance' | 'resetting-allowance' | 'confirming-allowance-reset' | 'approving' | 'confirming-approval';
118
+ type Erc20AllowanceResult = {
119
+ type: 'success';
120
+ } | {
121
+ type: 'error';
122
+ error: Erc20AllowanceError;
123
+ };
124
+ type Erc20AllowanceError = {
125
+ step: 'allowance-check';
126
+ } | Erc20ApprovalError;
127
+ declare function ensureErc20Allowance({ erc20, chain, tokenAddress, amount, wallet, spender, onProgress, }: {
128
+ erc20: Erc20Namespace;
129
+ chain: EthereumChain;
130
+ tokenAddress: EvmContractAddress;
131
+ amount: BlockchainAmount;
132
+ wallet: EvmWallet;
133
+ spender: EvmContractAddress;
134
+ onProgress?: (phase: Erc20AllowancePhase) => void;
135
+ }): Promise<Erc20AllowanceResult>;
136
+ /** A step-tagged reason {@link submitErc20Approval} failed. */
137
+ type Erc20ApprovalError = {
138
+ step: 'approval';
139
+ cause: WalletError;
140
+ } | {
141
+ step: 'approval-reverted';
142
+ };
143
+ type SubmitErc20ApprovalResult = {
144
+ type: 'ok';
145
+ txHash: Hash;
146
+ } | {
147
+ type: 'error';
148
+ error: Erc20ApprovalError;
149
+ };
150
+ /**
151
+ * Submits an ERC-20 `approve()` and waits for it to mine successfully. The
152
+ * `pending`/`confirming` phases are generic so each flow can report progress
153
+ * with its own phase vocabulary (e.g. `approving` vs `resetting-allowance`).
154
+ * Returns the mined transaction hash so callers can forward it (e.g. to record
155
+ * a participation).
156
+ */
157
+ declare function submitErc20Approval<Phase extends string>(args: {
158
+ wallet: EvmWallet;
159
+ tokenAddress: EvmContractAddress;
160
+ spender: EvmContractAddress;
161
+ chain: EthereumChain;
162
+ value: bigint;
163
+ pending: Phase;
164
+ confirming: Phase;
165
+ emit: (phase: Phase) => void;
166
+ }): Promise<SubmitErc20ApprovalResult>;
167
+
168
+ /**
169
+ * Progress phases emitted while a request is being prepared, in order. An
170
+ * allowance that already covers the deposit skips the approval phases.
171
+ */
172
+ type CentrifugeBuyPreparationPhase = Erc20AllowancePhase | 'building-transaction';
173
+ /**
174
+ * A step-tagged reason a preparation failed.
175
+ *
176
+ * `insufficient-allowance` is the one with a remedy that is not a new
177
+ * approval: the approval this flow just mined is not the one frontline sees,
178
+ * usually because its node is a block behind. Retrying reads it again.
179
+ */
180
+ type CentrifugeBuyPreparationError = {
181
+ step: 'unsupported-chain';
182
+ chain: EthereumChain;
183
+ } | Erc20AllowanceError | {
184
+ step: 'insufficient-allowance';
185
+ } | {
186
+ step: 'build-transaction';
187
+ };
188
+ type CentrifugeBuyPreparationResult = {
189
+ type: 'success';
190
+ transaction: CentrifugeVaultBuyTransaction;
191
+ } | {
192
+ type: 'error';
193
+ error: CentrifugeBuyPreparationError;
194
+ };
195
+ type PrepareCentrifugeBuyParams = {
196
+ centrifuge: CentrifugeNamespace;
197
+ erc20: Erc20Namespace;
198
+ wallet: EvmWallet;
199
+ /** The vault's share token symbol, e.g. `deJTRSY`. */
200
+ symbol: AssetSymbol;
201
+ chain: EthereumChain;
202
+ /**
203
+ * The offer's `vault_contracts`. The proxy is the spender, and it has to be
204
+ * known before the buy response arrives: the approval mines first, and
205
+ * `tx.to` comes too late to approve against.
206
+ */
207
+ vaultContracts: OfferVaultContract[];
208
+ /** The funding token being spent. Approval only; frontline resolves its own. */
209
+ tokenAddress: EvmContractAddress;
210
+ /** How much of the funding token to deposit, in its base units. */
211
+ amount: BlockchainAmount;
212
+ onProgress?: (phase: CentrifugeBuyPreparationPhase) => void;
213
+ };
214
+ /**
215
+ * Gets a deposit ready to broadcast: ensures the vault proxy may pull
216
+ * `amount` of the funding token, then builds the calldata that queues the
217
+ * request.
218
+ *
219
+ * The review step runs this when the user places the request, not when they
220
+ * confirm the amount. Approving on the amount step would make them sign
221
+ * again if they edit the amount. The allowance still has to land before the
222
+ * build: frontline refuses calldata the proxy cannot pull.
223
+ *
224
+ * Total: every failure is returned step-tagged rather than thrown.
225
+ */
226
+ declare function prepareCentrifugeBuy(params: PrepareCentrifugeBuyParams): Promise<CentrifugeBuyPreparationResult>;
227
+ /** Progress phases emitted by {@link placeCentrifugeRequest}, in order. */
228
+ type CentrifugeBuyPlacementPhase = 'broadcasting-request' | 'confirming-request';
229
+ /**
230
+ * A step-tagged reason {@link placeCentrifugeRequest} failed.
231
+ *
232
+ * `request-expired` is a refusal to broadcast: the deadline is inside the
233
+ * calldata, so sending it would revert and cost gas. A null deadline never
234
+ * takes this arm.
235
+ *
236
+ * `request` means the wallet never sent it, so placing again is safe.
237
+ * `request-unconfirmed` means it was sent and the receipt wait failed: the
238
+ * deposit may still mine, and placing again can queue a second one.
239
+ */
240
+ type CentrifugeBuyPlacementError = {
241
+ step: 'request-expired';
242
+ } | {
243
+ step: 'request';
244
+ cause: WalletError;
245
+ } | {
246
+ step: 'request-unconfirmed';
247
+ txHash: Hash;
248
+ cause: WalletError;
249
+ } | {
250
+ step: 'request-reverted';
251
+ };
252
+ type CentrifugeBuyPlacementResult = {
253
+ type: 'success';
254
+ txHash: Hash;
255
+ transaction: CentrifugeVaultBuyTransaction;
256
+ } | {
257
+ type: 'error';
258
+ error: CentrifugeBuyPlacementError;
259
+ };
260
+ type PlaceCentrifugeRequestParams = {
261
+ wallet: EvmWallet;
262
+ /**
263
+ * The request to place, from {@link prepareCentrifugeBuy}. Broadcasting it
264
+ * queues the deposit. It does not buy shares.
265
+ */
266
+ transaction: CentrifugeVaultBuyTransaction;
267
+ /** The chain it was built for. The response does not say. */
268
+ chain: EthereumChain;
269
+ /**
270
+ * Now, as the caller sees it. A parameter so the expiry check is testable.
271
+ */
272
+ now?: Date;
273
+ onProgress?: (phase: CentrifugeBuyPlacementPhase) => void;
274
+ };
275
+ /**
276
+ * Broadcasts a built deposit request and waits for it to mine.
277
+ *
278
+ * A transaction with no deadline (`expiresAt === null`) is broadcast as-is.
279
+ * One with a deadline that has passed is refused before the wallet is asked.
280
+ */
281
+ declare function placeCentrifugeRequest(params: PlaceCentrifugeRequestParams): Promise<CentrifugeBuyPlacementResult>;
282
+ /**
283
+ * Every phase {@link buyCentrifuge} can emit, in order. An allowance that
284
+ * already covers the deposit skips the approval phases.
285
+ */
286
+ type CentrifugeBuyPhase = CentrifugeBuyPreparationPhase | CentrifugeBuyPlacementPhase;
287
+ /** A step-tagged reason {@link buyCentrifuge} failed. The step says which half. */
288
+ type CentrifugeBuyError = CentrifugeBuyPreparationError | CentrifugeBuyPlacementError;
289
+ type CentrifugeBuyResult = {
290
+ type: 'success';
291
+ txHash: Hash;
292
+ transaction: CentrifugeVaultBuyTransaction;
293
+ } | {
294
+ type: 'error';
295
+ error: CentrifugeBuyError;
296
+ };
297
+ type BuyCentrifugeParams = Omit<PrepareCentrifugeBuyParams, 'onProgress'> & Pick<PlaceCentrifugeRequestParams, 'now'> & {
298
+ onProgress?: (phase: CentrifugeBuyPhase) => void;
299
+ };
300
+ /**
301
+ * Places a deposit request end to end: approves the vault proxy for `amount`,
302
+ * builds the calldata, and broadcasts it.
303
+ *
304
+ * The one call for a partner driving this from their own screen. The checkout
305
+ * keeps the two halves, because it has to drop a build that finishes after
306
+ * the user has left and must not broadcast it.
307
+ *
308
+ * Success means the request was placed. The fund fulfils it later.
309
+ * Broadcasting it does not buy shares.
310
+ *
311
+ * Total: every failure is returned step-tagged rather than thrown.
312
+ */
313
+ declare function buyCentrifuge(params: BuyCentrifugeParams): Promise<CentrifugeBuyResult>;
314
+
117
315
  /** Progress phases emitted by {@link claimCentrifugeVault}, in order. */
118
316
  type CentrifugeClaimPhase = 'preparing' | 'awaiting-wallet' | 'confirming';
119
317
  /**
@@ -181,11 +379,38 @@ type ClaimCentrifugeVaultParams = {
181
379
  declare function claimCentrifugeVault(params: ClaimCentrifugeVaultParams): Promise<CentrifugeClaimResult>;
182
380
 
183
381
  /**
184
- * The Centrifuge namespace plus the half of a vault trade that needs a wallet:
185
- * claiming what a fill made claimable, and so cannot live on the shared
186
- * namespace.
382
+ * The Centrifuge namespace plus the halves of a vault trade that need a
383
+ * wallet - placing a request and claiming what a fill made claimable - and so
384
+ * cannot live on the shared namespace.
385
+ *
386
+ * {@link ClientCentrifugeNamespace.buy} is the one call: approve, build, and
387
+ * broadcast. The two halves stay beside it. The checkout runs them itself so
388
+ * it can drop a build that finishes after the user has left, and a host that
389
+ * wants to show the calldata before broadcasting can do the same. The amount
390
+ * step calls neither. The request settles later. Broadcasting it does not
391
+ * buy shares.
187
392
  */
188
393
  interface ClientCentrifugeNamespace extends CentrifugeNamespace {
394
+ /**
395
+ * Approves the vault proxy for `amount`, builds the request, and broadcasts
396
+ * it. Returns a step-tagged result rather than throwing.
397
+ *
398
+ * Success means the request was placed. The fund fulfils it later.
399
+ */
400
+ buy(params: Omit<BuyCentrifugeParams, 'centrifuge' | 'erc20'>): Promise<CentrifugeBuyResult>;
401
+ /**
402
+ * Approves the vault proxy to pull `amount` of the funding token, then
403
+ * builds the request that spends it. Returns a step-tagged result rather
404
+ * than throwing.
405
+ */
406
+ prepareBuy(params: Omit<PrepareCentrifugeBuyParams, 'centrifuge' | 'erc20'>): Promise<CentrifugeBuyPreparationResult>;
407
+ /**
408
+ * Broadcasts a built request and waits for it to mine, refusing one whose
409
+ * deadline has passed. Returns a step-tagged result rather than throwing.
410
+ *
411
+ * Success means the request was placed. The fund fulfils it later.
412
+ */
413
+ placeRequest(params: PlaceCentrifugeRequestParams): Promise<CentrifugeBuyPlacementResult>;
189
414
  /**
190
415
  * Claims everything the wallet has claimable on one side of the vault and
191
416
  * waits for it to mine. Returns a step-tagged result rather than throwing.
@@ -193,60 +418,14 @@ interface ClientCentrifugeNamespace extends CentrifugeNamespace {
193
418
  claim(params: Omit<ClaimCentrifugeVaultParams, 'centrifuge'>): Promise<CentrifugeClaimResult>;
194
419
  }
195
420
  declare class ClientCentrifugeNamespaceImpl extends CentrifugeNamespaceImpl implements ClientCentrifugeNamespace {
421
+ private readonly erc20;
422
+ constructor(ctx: UniversalNamespaceContext, erc20: Erc20Namespace);
423
+ buy(params: Omit<BuyCentrifugeParams, 'centrifuge' | 'erc20'>): Promise<CentrifugeBuyResult>;
424
+ prepareBuy(params: Omit<PrepareCentrifugeBuyParams, 'centrifuge' | 'erc20'>): Promise<CentrifugeBuyPreparationResult>;
425
+ placeRequest(params: PlaceCentrifugeRequestParams): Promise<CentrifugeBuyPlacementResult>;
196
426
  claim(params: Omit<ClaimCentrifugeVaultParams, 'centrifuge'>): Promise<CentrifugeClaimResult>;
197
427
  }
198
428
 
199
- type Erc20AllowancePhase = 'checking-allowance' | 'resetting-allowance' | 'confirming-allowance-reset' | 'approving' | 'confirming-approval';
200
- type Erc20AllowanceResult = {
201
- type: 'success';
202
- } | {
203
- type: 'error';
204
- error: Erc20AllowanceError;
205
- };
206
- type Erc20AllowanceError = {
207
- step: 'allowance-check';
208
- } | Erc20ApprovalError;
209
- declare function ensureErc20Allowance({ erc20, chain, tokenAddress, amount, wallet, spender, onProgress, }: {
210
- erc20: Erc20Namespace;
211
- chain: EthereumChain;
212
- tokenAddress: EvmContractAddress;
213
- amount: BlockchainAmount;
214
- wallet: EvmWallet;
215
- spender: EvmContractAddress;
216
- onProgress?: (phase: Erc20AllowancePhase) => void;
217
- }): Promise<Erc20AllowanceResult>;
218
- /** A step-tagged reason {@link submitErc20Approval} failed. */
219
- type Erc20ApprovalError = {
220
- step: 'approval';
221
- cause: WalletError;
222
- } | {
223
- step: 'approval-reverted';
224
- };
225
- type SubmitErc20ApprovalResult = {
226
- type: 'ok';
227
- txHash: Hash;
228
- } | {
229
- type: 'error';
230
- error: Erc20ApprovalError;
231
- };
232
- /**
233
- * Submits an ERC-20 `approve()` and waits for it to mine successfully. The
234
- * `pending`/`confirming` phases are generic so each flow can report progress
235
- * with its own phase vocabulary (e.g. `approving` vs `resetting-allowance`).
236
- * Returns the mined transaction hash so callers can forward it (e.g. to record
237
- * a participation).
238
- */
239
- declare function submitErc20Approval<Phase extends string>(args: {
240
- wallet: EvmWallet;
241
- tokenAddress: EvmContractAddress;
242
- spender: EvmContractAddress;
243
- chain: EthereumChain;
244
- value: bigint;
245
- pending: Phase;
246
- confirming: Phase;
247
- emit: (phase: Phase) => void;
248
- }): Promise<SubmitErc20ApprovalResult>;
249
-
250
429
  /**
251
430
  * Progress phases emitted by {@link executeTokenSale}, in the order they occur.
252
431
  * The `resetting-allowance`/`confirming-allowance-reset` phases only occur when
@@ -887,13 +1066,12 @@ interface CoinListClient {
887
1066
  */
888
1067
  readonly ondo: ClientOndoNamespace;
889
1068
  /**
890
- * Centrifuge vault reads and claims: an indicative quote, the vault-wide
891
- * ordering gate, each wallet's position, and the claim that settles a
892
- * filled request - e.g. `coinlist.centrifuge.getQuote({ ... })`.
1069
+ * Centrifuge vault deposits and claims: the vault-wide ordering gate, each
1070
+ * wallet's position, the two halves of placing a request, and the claim
1071
+ * that settles a filled one.
893
1072
  *
894
- * The reads are free to poll. The quote has no expiry: it is indicative,
895
- * the fund prices fulfilment later, and a countdown would imply a
896
- * commitment the API does not make.
1073
+ * The reads are free to poll. `prepareBuy` and `placeRequest` are not.
1074
+ * Broadcasting places a request. It does not buy shares.
897
1075
  */
898
1076
  readonly centrifuge: ClientCentrifugeNamespace;
899
1077
  /**
@@ -1065,6 +1243,23 @@ interface CoinListSignInCardViewProps {
1065
1243
  */
1066
1244
  declare function CoinListSignInCardView({ state, onEvent, className, }: CoinListSignInCardViewProps): ReactNode;
1067
1245
 
1246
+ /**
1247
+ * A deposit request that has been broadcast and mined.
1248
+ *
1249
+ * Named without `Buy` so it does not collide with the dialog component when
1250
+ * both are re-exported from the client barrel.
1251
+ *
1252
+ * Success means the request was placed. The fund fulfils it later, at a price
1253
+ * set then.
1254
+ */
1255
+ type CentrifugeOrderPlaced = {
1256
+ wallet: EvmWallet;
1257
+ /** What the request deposits, in the funding token's base units. */
1258
+ amount: BlockchainAmount;
1259
+ transaction: CentrifugeVaultBuyTransaction;
1260
+ txHash: Hash;
1261
+ };
1262
+
1068
1263
  /**
1069
1264
  * A filled Ondo order, as the confirmation dialog and the host's
1070
1265
  * `onOrderConfirmed` callback need it.
@@ -1371,6 +1566,23 @@ type CheckoutSelectableInputAssetUi = {
1371
1566
  rawBalance: bigint;
1372
1567
  selected: boolean;
1373
1568
  };
1569
+ /**
1570
+ * One fundable stablecoin as the amount step's pay-with row.
1571
+ *
1572
+ * `balance` is `null` before the first read settles and after one that
1573
+ * failed. It renders as zero; the field above says why the CTA does not
1574
+ * treat that as a genuine empty wallet.
1575
+ *
1576
+ * `selected` is a parameter because a step with one funding asset is always
1577
+ * selected, and a step with several has to say which.
1578
+ */
1579
+ declare function toInputAssetUi({ symbol, balance, selected, networkName, locale, }: {
1580
+ symbol: StablecoinSymbol;
1581
+ balance: bigint | null;
1582
+ selected: boolean;
1583
+ networkName: string;
1584
+ locale: string;
1585
+ }): CheckoutSelectableInputAssetUi;
1374
1586
 
1375
1587
  /**
1376
1588
  * Step 3 of the Superstate checkout: what the swap comes to, the slippage it
@@ -1678,12 +1890,33 @@ type CoinListTokenSaleCheckoutConfig = {
1678
1890
  render: (offer: CoinListTokenSaleOfferDetail) => ReactNode;
1679
1891
  };
1680
1892
  /**
1681
- * The SDK ships no Centrifuge vault UI yet, so the host supplies it, as it
1682
- * does for {@link CoinListTokenSaleCheckoutConfig} and for the same reason
1683
- * takes the offer. A host that never lists vault offers returns `null`.
1893
+ * What a Centrifuge vault deposit needs that the offer cannot tell it.
1894
+ *
1895
+ * The share symbol is per-asset and this config is per-integration, so
1896
+ * `symbol` takes the offer. It is called only for a `centrifuge::vault`
1897
+ * offer, when that branch is mounted.
1684
1898
  */
1685
1899
  type CentrifugeVaultCheckoutConfig = {
1686
- render: (offer: CentrifugeVaultOfferDetail) => ReactNode;
1900
+ /**
1901
+ * The share token symbol, e.g. `deJTRSY`.
1902
+ *
1903
+ * The SDK cannot read it off the offer: the symbol a vault trades under is
1904
+ * the provider's, and it can disagree with `offer.asset.code`. A host whose
1905
+ * catalogue does agree can return `AssetSymbol(offer.asset.code)`.
1906
+ */
1907
+ symbol: (offer: CentrifugeVaultOfferDetail) => AssetSymbol;
1908
+ /**
1909
+ * The fund the token tracks. Frontline does not send this yet. Omit it, or
1910
+ * return `null`, and the asset-details row stays hidden.
1911
+ */
1912
+ underlyingFund?: (offer: CentrifugeVaultOfferDetail) => string | null;
1913
+ /**
1914
+ * Trailing yield as display copy, e.g. `3.60%`. Omit it, or return `null`,
1915
+ * and the corner stays empty.
1916
+ */
1917
+ apy?: (offer: CentrifugeVaultOfferDetail) => string | null;
1918
+ /** Fired once the request has mined. The dialog shows either way. */
1919
+ onOrderPlaced?: (order: CentrifugeOrderPlaced) => void;
1687
1920
  };
1688
1921
  /**
1689
1922
  * The parts of {@link CheckoutConfig} only the host can know.
@@ -1707,7 +1940,9 @@ type RequiredCheckoutConfig = Pick<CheckoutConfig, 'ondo::swap' | 'coinlist::tok
1707
1940
  * side: () => 'buy',
1708
1941
  * },
1709
1942
  * 'coinlist::token_sale': { render: (offer) => <MyTokenSalePage offer={offer} /> },
1710
- * 'centrifuge::vault': { render: () => null },
1943
+ * 'centrifuge::vault': {
1944
+ * symbol: (offer) => AssetSymbol(offer.asset.code),
1945
+ * },
1711
1946
  * });
1712
1947
  * ```
1713
1948
  */
@@ -1797,7 +2032,9 @@ interface CheckoutContainerProps {
1797
2032
  * const config = defaultCheckoutConfig({
1798
2033
  * 'ondo::swap': { symbol: (o) => AssetSymbol(o.asset.code), side: () => 'sell' },
1799
2034
  * 'coinlist::token_sale': { render: (o) => <MyTokenSalePage offer={o} /> },
1800
- * 'centrifuge::vault': { render: () => null },
2035
+ * 'centrifuge::vault': {
2036
+ * symbol: (offer) => AssetSymbol(offer.asset.code),
2037
+ * },
1801
2038
  * });
1802
2039
  * ```
1803
2040
  *
@@ -1807,42 +2044,394 @@ interface CheckoutContainerProps {
1807
2044
  *
1808
2045
  * ### A buy/sell toggle on one page
1809
2046
  *
1810
- * Also supported, but **React state alone will not switch it**: `side` is
1811
- * latched at mount, so a re-render with a new answer is ignored by design. Put
1812
- * the direction in the `key` and the toggle works, because the container
1813
- * remounts rather than reassigns.
2047
+ * Also supported, but **React state alone will not switch it**: `side` is
2048
+ * latched at mount, so a re-render with a new answer is ignored by design. Put
2049
+ * the direction in the `key` and the toggle works, because the container
2050
+ * remounts rather than reassigns.
2051
+ *
2052
+ * ```tsx
2053
+ * const [side, setSide] = useState<OrderBookSide>('buy');
2054
+ *
2055
+ * <BuySellTabs value={side} onChange={setSide} />
2056
+ * <CheckoutContainer
2057
+ * key={`${offer.id}:${chain}:${side}`} // `side` in the key, or the toggle is inert
2058
+ * offer={offer}
2059
+ * chain={chain}
2060
+ * wallets={wallets}
2061
+ * config={{
2062
+ * ...config,
2063
+ * 'ondo::swap': { ...config['ondo::swap'], side: () => side },
2064
+ * }}
2065
+ * />
2066
+ * ```
2067
+ *
2068
+ * Rebuilding the config object on every render costs nothing here: `side` is
2069
+ * called once per mount, so the thunk's identity never matters.
2070
+ *
2071
+ * Two things a host owns rather than the SDK:
2072
+ *
2073
+ * - **The remount clears the flow** — chosen wallet, entered amount, granted
2074
+ * approval. That is the point, but it is visible, so expect the card to reset
2075
+ * under a user who flips the tabs half way down it.
2076
+ * - **A swap already in flight is not cancelled by unmounting it.** It still
2077
+ * mines; the UI just stops following it, and `onOrderConfirmed` never fires
2078
+ * for it. The container cannot tell a host that one is in flight, so gate the
2079
+ * toggle where it can reach an executing flow — disable the tabs once the
2080
+ * user is past the amount step, or confirm before switching.
2081
+ */
2082
+ declare function CheckoutContainer({ offer, chain, wallets, config, enabled, className, }: CheckoutContainerProps): ReactNode;
2083
+
2084
+ /**
2085
+ * Step 2 of the Centrifuge checkout: how much of the funding token to deposit.
2086
+ *
2087
+ * Nothing here touches the chain. Confirming checks the amount in memory and
2088
+ * hands it up. The review step approves and places the request together.
2089
+ */
2090
+ type CentrifugeBuyAmountUiState = {
2091
+ type: 'incomplete';
2092
+ } | {
2093
+ type: 'active';
2094
+ /** Exactly what the user has typed. `'1.'` is a legal thing to hold. */
2095
+ amountInput: string;
2096
+ walletAddress: ShortenedWalletAddress;
2097
+ inputAssets: CheckoutSelectableInputAssetUi[];
2098
+ confirmCta: CheckoutCtaUi;
2099
+ error: string | null;
2100
+ } | {
2101
+ type: 'complete';
2102
+ inputAsset: CheckoutAssetUi;
2103
+ amountFormatted: FormattedAmountAssetUi;
2104
+ };
2105
+ type CentrifugeBuyAmountUiEvent = {
2106
+ type: 'ON_AMOUNT_CHANGE';
2107
+ value: string;
2108
+ } | {
2109
+ type: 'ON_MAX_AMOUNT_CLICK';
2110
+ } | {
2111
+ type: 'ON_SELECT_PAY_WITH';
2112
+ value: AssetSymbol;
2113
+ } | {
2114
+ type: 'ON_CONFIRM_AMOUNT';
2115
+ } | {
2116
+ type: 'ON_EDIT_AMOUNT';
2117
+ };
2118
+
2119
+ interface CentrifugeBuyAmountViewProps {
2120
+ state: CentrifugeBuyAmountUiState;
2121
+ onEvent: (event: CentrifugeBuyAmountUiEvent) => void;
2122
+ className?: string;
2123
+ }
2124
+ /**
2125
+ * Step 2 of the Centrifuge checkout. Pure: amounts arrive already formatted, and
2126
+ * every interaction leaves through `onEvent`.
2127
+ *
2128
+ * Self-scoped: renders fully styled on its own, with no `CoinListStyleScope`
2129
+ * needed around it.
2130
+ */
2131
+ declare function CentrifugeBuyAmountView(props: CentrifugeBuyAmountViewProps): ReactNode;
2132
+
2133
+ interface CentrifugeBuyCheckoutContainerProps {
2134
+ /** The vault being deposited into: names the asset and supplies its logo. */
2135
+ offer: CentrifugeVaultOfferDetail;
2136
+ /** Share token symbol, e.g. `deJTRSY`. */
2137
+ symbol: AssetSymbol;
2138
+ chain: EthereumChain;
2139
+ wallets: CheckoutWalletSelection;
2140
+ /**
2141
+ * Default `true`. `false` turns off every request and timer, for a checkout
2142
+ * that is mounted but not on screen yet.
2143
+ */
2144
+ enabled?: boolean;
2145
+ /** Fired once the request has mined. The dialog shows either way. */
2146
+ onOrderPlaced?: (order: CentrifugeOrderPlaced) => void;
2147
+ /**
2148
+ * The fund the token tracks, e.g. `Janus Henderson Treasury Fund`.
2149
+ * Frontline does not send this yet, so pass `null` and the row stays hidden.
2150
+ */
2151
+ underlyingFund: string | null;
2152
+ /**
2153
+ * Trailing yield as display copy, e.g. `3.60%`. Frontline does not send
2154
+ * this yet, so pass `null` and the corner stays empty.
2155
+ */
2156
+ apy: string | null;
2157
+ className?: string;
2158
+ }
2159
+ /**
2160
+ * The Centrifuge buy checkout a host mounts.
2161
+ *
2162
+ * Renders {@link CentrifugeBuyCheckoutView} from
2163
+ * {@link useCentrifugeBuyCheckoutViewModel}. Placing a request does not buy
2164
+ * shares. The fund fulfils it later.
2165
+ */
2166
+ declare function CentrifugeBuyCheckoutContainer({ offer, symbol, chain, wallets, enabled, onOrderPlaced, underlyingFund, apy, className, }: CentrifugeBuyCheckoutContainerProps): ReactNode;
2167
+
2168
+ /**
2169
+ * Step 3 of the Centrifuge checkout: confirming the deposit and placing it.
2170
+ *
2171
+ * Placing the request does not buy shares. The fund prices the fill later.
2172
+ */
2173
+ type CentrifugeBuyReviewUiState = {
2174
+ type: 'incomplete';
2175
+ } | {
2176
+ type: 'active';
2177
+ /** The funding token, shown beside the amount being deposited. */
2178
+ inputAsset: CheckoutAssetUi;
2179
+ /** What the request deposits, e.g. `100.00 USDC`. */
2180
+ investAmount: FormattedAmountAssetUi;
2181
+ /** Where the shares land — the wallet confirmed in step 1. */
2182
+ recipientAddress: ShortenedWalletAddress;
2183
+ /**
2184
+ * Always a formatted zero. This product charges no CoinList fee, and
2185
+ * the row stays so the total is the amount invested.
2186
+ */
2187
+ coinlistFee: FormattedAmountAssetUi;
2188
+ /** What the user pays. Equal to {@link investAmount}: no fee comes off. */
2189
+ total: FormattedAmountAssetUi;
2190
+ placeRequestCta: CheckoutCtaUi;
2191
+ error: string | null;
2192
+ };
2193
+ type CentrifugeBuyReviewUiEvent = {
2194
+ type: 'ON_PLACE_REQUEST';
2195
+ };
2196
+
2197
+ /**
2198
+ * Why a Centrifuge checkout cannot run right now, as opposed to a step of it
2199
+ * failing.
2200
+ */
2201
+ type CentrifugeCheckoutErrorReason =
2202
+ /**
2203
+ * The offer names no vault proxy on the chain the host asked for, so there
2204
+ * is no spender to approve and nothing to broadcast to.
2205
+ */
2206
+ 'unsupported-chain'
2207
+ /**
2208
+ * The vault is known to be unable to take a request: halted, unlinked, or
2209
+ * not permissioned. Known from a status whose orderability is blocked.
2210
+ * Loading and failed statuses are unknown, and unknown does not block.
2211
+ *
2212
+ * Shown only while the user is still choosing a wallet and no request-placed
2213
+ * dialog is up. Past that, a pause belongs to the step it interrupts.
2214
+ */
2215
+ | 'not-orderable';
2216
+ declare const CentrifugeCheckoutErrorReason: {
2217
+ /**
2218
+ * Which reason, if any, replaces the whole checkout. `null` means the steps
2219
+ * render.
2220
+ */
2221
+ of: ({ depositableHere, notOrderable, atEntry, }: {
2222
+ depositableHere: boolean;
2223
+ notOrderable: boolean;
2224
+ atEntry: boolean;
2225
+ }) => CentrifugeCheckoutErrorReason | null;
2226
+ };
2227
+
2228
+ /**
2229
+ * The asset panel beside the Centrifuge checkout.
2230
+ *
2231
+ * Read-only. The identity and the minimum come from the offer. Yield and
2232
+ * the fund the token tracks are `null` until frontline publishes them, and
2233
+ * a `null` hides its row.
2234
+ */
2235
+ type CentrifugeSidebarUiState = {
2236
+ asset: CheckoutAssetUi;
2237
+ /** The share token's symbol, e.g. `deJTRSY`. The same one under the name. */
2238
+ ticker: string;
2239
+ /**
2240
+ * The fund the token tracks, e.g. `Janus Henderson Treasury Fund`.
2241
+ * Frontline does not publish this yet. `null` hides the row.
2242
+ */
2243
+ underlyingFund: string | null;
2244
+ /**
2245
+ * What kind of instrument it is, in the supplier's own vocabulary, e.g.
2246
+ * `Tokenized Notes`. `null` hides the row.
2247
+ */
2248
+ assetType: string | null;
2249
+ minimumInvestment: CentrifugeSidebarMinimumUi;
2250
+ /** Display name of the chain the token lives on, e.g. `Ethereum`. */
2251
+ networkName: string;
2252
+ /** Who issues the token, e.g. `Centrifuge`. `null` hides the row. */
2253
+ issuer: string | null;
2254
+ /**
2255
+ * Trailing yield, already formatted, e.g. `3.60%`. The caption "APY" is
2256
+ * the view's. Frontline does not publish this yet. `null` leaves the
2257
+ * corner empty.
2258
+ */
2259
+ apy: FormattedPercentUi | null;
2260
+ };
2261
+ /**
2262
+ * The minimum deposit, from the offer.
2263
+ *
2264
+ * A vault that sets no minimum is `none`: the row is dropped rather than
2265
+ * dashed. `loading` stays for a caller that has not resolved the offer yet.
2266
+ */
2267
+ type CentrifugeSidebarMinimumUi = {
2268
+ type: 'loading';
2269
+ } | {
2270
+ type: 'known';
2271
+ amount: FormattedAmountAssetUi;
2272
+ } | {
2273
+ type: 'none';
2274
+ };
2275
+
2276
+ /**
2277
+ * Step 1 of the Centrifuge checkout: which wallet funds the deposit.
2278
+ *
2279
+ * There is no `inactive` arm. This step is the first one, so it is either being
2280
+ * filled in or already answered — it is never waiting on a step above it.
2281
+ *
2282
+ * Nothing is allow-listed: the user picks a wallet and confirms, and confirming
2283
+ * is synchronous. Hence a plain `confirmEnabled`.
2284
+ */
2285
+ type CentrifugeWalletSelectUiState = {
2286
+ type: 'active';
2287
+ /** The user's CoinList wallets. Empty when they have none. */
2288
+ embeddedWallets: CheckoutEmbeddedWalletUi[];
2289
+ /** `null` until an external wallet is connected. The row still renders. */
2290
+ externalWallet: CheckoutWalletUi | null;
2291
+ /** Whether the connected external wallet may be disconnected here. */
2292
+ canDisconnect: boolean;
2293
+ confirmEnabled: boolean;
2294
+ /** Copy for a failed connect, e.g. the user rejected the wallet prompt. */
2295
+ error: string | null;
2296
+ } | {
2297
+ type: 'completed';
2298
+ wallet: CheckoutConfirmedWalletUi;
2299
+ };
2300
+ type CentrifugeWalletSelectUiEvent = {
2301
+ type: 'ON_SELECT_WALLET';
2302
+ value: CheckoutWalletTypeUi;
2303
+ }
2304
+ /**
2305
+ * Tapping the external row while nothing is connected. Split from
2306
+ * `ON_SELECT_WALLET` because it opens the host's wallet connector rather than
2307
+ * changing the selection.
2308
+ */
2309
+ | {
2310
+ type: 'ON_CONNECT_WALLET';
2311
+ } | {
2312
+ type: 'ON_DISCONNECT_WALLET';
2313
+ } | {
2314
+ type: 'ON_CONFIRM_WALLET';
2315
+ } | {
2316
+ type: 'ON_EDIT_WALLET';
2317
+ };
2318
+
2319
+ /**
2320
+ * The whole Centrifuge buy checkout: three steps, the asset panel, and the
2321
+ * dialog that says the request was placed.
2322
+ */
2323
+ type CentrifugeBuyCheckoutUiState = {
2324
+ type: 'content';
2325
+ wallet: CentrifugeWalletSelectUiState;
2326
+ amount: CentrifugeBuyAmountUiState;
2327
+ review: CentrifugeBuyReviewUiState;
2328
+ sidebar: CentrifugeSidebarUiState;
2329
+ orderPlaced: CentrifugeOrderPlacedUiState;
2330
+ } | {
2331
+ type: 'error';
2332
+ reason: CentrifugeCheckoutErrorReason;
2333
+ };
2334
+ type CentrifugeBuyCheckoutUiEvent = CentrifugeWalletSelectUiEvent | CentrifugeBuyAmountUiEvent | CentrifugeBuyReviewUiEvent | CentrifugeOrderPlacedUiEvent;
2335
+ /**
2336
+ * The dialog that closes the checkout once the request has mined.
2337
+ *
2338
+ * It reports that the request was placed. It does not report a fill.
2339
+ */
2340
+ type CentrifugeOrderPlacedUiState = {
2341
+ type: 'hidden';
2342
+ } | {
2343
+ type: 'visible';
2344
+ outputAsset: CheckoutAssetUi;
2345
+ totalCost: FormattedAmountAssetUi;
2346
+ recipientAddress: ShortenedWalletAddress;
2347
+ txExplorerUrl: TxExplorerUrl;
2348
+ };
2349
+ type CentrifugeOrderPlacedUiEvent = {
2350
+ type: 'ON_CLOSE_ORDER_PLACED';
2351
+ };
2352
+
2353
+ interface CentrifugeBuyCheckoutViewProps {
2354
+ state: CentrifugeBuyCheckoutUiState;
2355
+ onEvent: (event: CentrifugeBuyCheckoutUiEvent) => void;
2356
+ className?: string;
2357
+ }
2358
+ /**
2359
+ * The whole Centrifuge buy checkout: three step cards, the asset panel, and
2360
+ * the dialog that says the request was placed.
1814
2361
  *
1815
- * ```tsx
1816
- * const [side, setSide] = useState<OrderBookSide>('buy');
2362
+ * The panel leads on a phone and moves to the right column from `md` up.
2363
+ */
2364
+ declare function CentrifugeBuyCheckoutView({ state, onEvent, className, }: CentrifugeBuyCheckoutViewProps): ReactNode;
2365
+
2366
+ interface CentrifugeBuyOrderPlacedProps {
2367
+ state: CentrifugeOrderPlacedUiState;
2368
+ onEvent: (event: CentrifugeOrderPlacedUiEvent) => void;
2369
+ className?: string;
2370
+ }
2371
+ /**
2372
+ * The dialog that closes the checkout once the request has mined.
1817
2373
  *
1818
- * <BuySellTabs value={side} onChange={setSide} />
1819
- * <CheckoutContainer
1820
- * key={`${offer.id}:${chain}:${side}`} // `side` in the key, or the toggle is inert
1821
- * offer={offer}
1822
- * chain={chain}
1823
- * wallets={wallets}
1824
- * config={{
1825
- * ...config,
1826
- * 'ondo::swap': { ...config['ondo::swap'], side: () => side },
1827
- * }}
1828
- * />
1829
- * ```
2374
+ * It says the request was placed. The fund fulfils it later.
2375
+ */
2376
+ declare function CentrifugeBuyOrderPlaced({ state, onEvent, className, }: CentrifugeBuyOrderPlacedProps): ReactNode;
2377
+
2378
+ interface CentrifugeBuyReviewViewProps {
2379
+ state: CentrifugeBuyReviewUiState;
2380
+ onEvent: (event: CentrifugeBuyReviewUiEvent) => void;
2381
+ className?: string;
2382
+ }
2383
+ /**
2384
+ * Step 3 of the Centrifuge checkout. Pure: every number arrives formatted, and
2385
+ * whether the order can be placed is decided by `placeRequestCta`.
1830
2386
  *
1831
- * Rebuilding the config object on every render costs nothing here: `side` is
1832
- * called once per mount, so the thunk's identity never matters.
2387
+ * Self-scoped: renders fully styled on its own, with no `CoinListStyleScope`
2388
+ * needed around it.
2389
+ */
2390
+ declare function CentrifugeBuyReviewView(props: CentrifugeBuyReviewViewProps): ReactNode;
2391
+
2392
+ interface CentrifugeCheckoutErrorProps {
2393
+ reason: CentrifugeCheckoutErrorReason;
2394
+ className?: string;
2395
+ }
2396
+ /**
2397
+ * What the checkout renders when there is no deposit to place, or the vault
2398
+ * is known to be unable to take one.
2399
+ */
2400
+ declare function CentrifugeCheckoutError({ reason, className, }: CentrifugeCheckoutErrorProps): ReactNode;
2401
+
2402
+ interface CentrifugeSidebarViewProps {
2403
+ state: CentrifugeSidebarUiState;
2404
+ className?: string;
2405
+ }
2406
+ /**
2407
+ * The asset panel beside the Centrifuge checkout. Read-only.
2408
+ */
2409
+ declare function CentrifugeSidebarView({ state, className, }: CentrifugeSidebarViewProps): ReactNode;
2410
+
2411
+ interface CentrifugeWalletSelectViewProps {
2412
+ state: CentrifugeWalletSelectUiState;
2413
+ onEvent: (event: CentrifugeWalletSelectUiEvent) => void;
2414
+ /**
2415
+ * The line under the heading. Defaults to the buy copy.
2416
+ *
2417
+ * A plain string rather than a slot: the sentence says what the wallet is for.
2418
+ */
2419
+ description?: string;
2420
+ className?: string;
2421
+ }
2422
+ /**
2423
+ * The wallet step of a Centrifuge checkout: which wallet funds the deposit.
2424
+ * Pure - the wallets arrive already shaped, and every interaction leaves
2425
+ * through `onEvent`.
1833
2426
  *
1834
- * Two things a host owns rather than the SDK:
2427
+ * Nothing about choosing a wallet is allow-listed: confirming is a local
2428
+ * decision. The sentence under the heading is the only copy that names what
2429
+ * the wallet is for.
1835
2430
  *
1836
- * - **The remount clears the flow** — chosen wallet, entered amount, granted
1837
- * approval. That is the point, but it is visible, so expect the card to reset
1838
- * under a user who flips the tabs half way down it.
1839
- * - **A swap already in flight is not cancelled by unmounting it.** It still
1840
- * mines; the UI just stops following it, and `onOrderConfirmed` never fires
1841
- * for it. The container cannot tell a host that one is in flight, so gate the
1842
- * toggle where it can reach an executing flow — disable the tabs once the
1843
- * user is past the amount step, or confirm before switching.
2431
+ * Self-scoped: renders fully styled on its own, with no `CoinListStyleScope`
2432
+ * needed around it.
1844
2433
  */
1845
- declare function CheckoutContainer({ offer, chain, wallets, config, enabled, className, }: CheckoutContainerProps): ReactNode;
2434
+ declare function CentrifugeWalletSelectView(props: CentrifugeWalletSelectViewProps): ReactNode;
1846
2435
 
1847
2436
  /**
1848
2437
  * Step 2 of the Ondo checkout: how much to spend, and which asset to spend.
@@ -4815,28 +5404,61 @@ interface UseCompleteOAuthOptions {
4815
5404
  */
4816
5405
  declare function useCompleteOAuth(options: UseCompleteOAuthOptions): void;
4817
5406
 
5407
+ type CentrifugeBuyAmountConfirmed = {
5408
+ amount: BlockchainAmount;
5409
+ inputAsset: StablecoinSymbol;
5410
+ };
5411
+ type CentrifugeBuyAmountStepInput = {
5412
+ type: 'incomplete';
5413
+ } | {
5414
+ type: 'active';
5415
+ wallet: EvmWallet;
5416
+ /**
5417
+ * Set when the vault is known to be unable to take a request. Unknown
5418
+ * and failed statuses leave this null: they do not block a deposit.
5419
+ */
5420
+ depositBlockedMessage: string | null;
5421
+ /** The offer's minimum, in dollars. `null` when the offer sets none. */
5422
+ minimumPurchaseUsd: number | null;
5423
+ } | {
5424
+ type: 'complete';
5425
+ wallet: EvmWallet;
5426
+ amount: BlockchainAmount;
5427
+ inputAsset: StablecoinSymbol;
5428
+ };
5429
+ interface UseCentrifugeBuyAmountViewModelOptions {
5430
+ stepInput: CentrifugeBuyAmountStepInput;
5431
+ chain: EthereumChain;
5432
+ enabled?: boolean;
5433
+ onComplete: (confirmed: CentrifugeBuyAmountConfirmed) => void;
5434
+ onEdit: () => void;
5435
+ }
5436
+ interface UseCentrifugeBuyAmountViewModelResult {
5437
+ state: CentrifugeBuyAmountUiState;
5438
+ onEvent: (event: CentrifugeBuyAmountUiEvent) => void;
5439
+ }
4818
5440
  /**
4819
- * User-facing copy for each `can_order` reason F-0 publishes.
5441
+ * Drives step 2: how much to deposit.
4820
5442
  *
4821
- * A record keyed by the closed set, so a new reason fails to compile here
4822
- * until it has a sentence. The View (or a viewmodel mapping into one) should
4823
- * render this rather than the wire token.
4824
- *
4825
- * Status never returns `below_minimum`; a quote can. Both call this with
4826
- * whichever subset they actually hold.
4827
- */
4828
- declare const CENTRIFUGE_VAULT_ORDER_REASON_MESSAGES: Record<CentrifugeOrderReason, string>;
4829
- declare function centrifugeVaultOrderReasonMessage(reason: CentrifugeOrderReason): string;
4830
- /**
4831
- * The most blocking reason in `reasons`, or `null` when the list is empty.
4832
- */
4833
- declare function primaryCentrifugeVaultOrderReason<T extends CentrifugeOrderReason>(reasons: readonly T[]): T | null;
4834
- /**
4835
- * The sentence to show for an {@link CentrifugeOrderability}, or `null` when
4836
- * the request can proceed. Accepts a quote's full reason set or a status's
4837
- * narrower one.
5443
+ * Confirming validates the amount in memory and hands it up. The estimate
5444
+ * for that amount is polled for the review step. Nothing here is signed.
4838
5445
  */
4839
- declare function centrifugeVaultOrderingMessage<R extends CentrifugeOrderReason>(orderability: CentrifugeOrderability<R>): string | null;
5446
+ declare function useCentrifugeBuyAmountViewModel({ stepInput, chain, enabled, onComplete, onEdit, }: UseCentrifugeBuyAmountViewModelOptions): UseCentrifugeBuyAmountViewModelResult;
5447
+ type CentrifugeBuyAmountValidation = {
5448
+ valid: true;
5449
+ amount: BlockchainAmount;
5450
+ } | {
5451
+ valid: false;
5452
+ error: string;
5453
+ };
5454
+ declare function validateCentrifugeBuyAmount({ input, decimals, balance, symbol, minimum, locale, }: {
5455
+ input: string;
5456
+ decimals: AssetDecimals;
5457
+ balance: bigint | null;
5458
+ symbol: AssetSymbol;
5459
+ minimum: BlockchainAmount | null;
5460
+ locale: string;
5461
+ }): CentrifugeBuyAmountValidation;
4840
5462
 
4841
5463
  /**
4842
5464
  * Why a Centrifuge read failed, in the only two flavours a UI acts on
@@ -4850,75 +5472,225 @@ type CentrifugeLoadErrorReason = 'not-authenticated' | 'generic-error';
4850
5472
  declare function centrifugeLoadErrorReason(error: unknown): CentrifugeLoadErrorReason;
4851
5473
 
4852
5474
  /**
4853
- * The state of the indicative-quote poll.
4854
- *
4855
- * - `LOADING`: no quote yet (initial, or the provider is still initializing).
4856
- * - `ERROR`: no quote could be fetched at all.
4857
- * - `CONTENT`: a quote is in hand; `isRefreshing` says whether a newer one
4858
- * is on the way.
5475
+ * The built deposit request a review step can place.
4859
5476
  *
4860
- * A poll that fails with a quote already in hand stays `CONTENT`: the last
4861
- * quote is worth more to a user than a blank panel, and the next tick retries
4862
- * within seconds. `ERROR` therefore means "never got one".
4863
- *
4864
- * There is no expiry on this quote. It is indicative, the fund prices
4865
- * fulfilment later, and a countdown would imply a commitment the API does
4866
- * not make. Freshness is the poll interval, not a TTL.
5477
+ * `isRefreshing` rides on `CONTENT` so a rebuild never blanks the numbers on
5478
+ * screen. A failed rebuild keeps them and says why.
4867
5479
  */
4868
- type LoadCentrifugeQuoteState = {
5480
+ type LoadCentrifugeBuyTransactionState = {
4869
5481
  type: 'LOADING';
4870
5482
  } | {
4871
5483
  type: 'ERROR';
4872
5484
  reason: CentrifugeLoadErrorReason;
4873
5485
  } | {
4874
5486
  type: 'CONTENT';
4875
- quote: CentrifugeVaultQuote;
5487
+ transaction: CentrifugeVaultBuyTransaction;
4876
5488
  isRefreshing: boolean;
5489
+ refreshError: CentrifugeLoadErrorReason | null;
4877
5490
  };
4878
- interface UseCentrifugeQuoteOptions {
4879
- /** Share token symbol of the vault, e.g. `deJTRSY`. */
5491
+ interface UseCentrifugeBuyTransactionOptions {
5492
+ /**
5493
+ * The request to build, or `null` before an amount is confirmed. A `null`
5494
+ * request fetches nothing.
5495
+ */
5496
+ request: BuildCentrifugeVaultBuyParams | null;
5497
+ /**
5498
+ * A request the caller already holds, typically the one `prepareBuy`
5499
+ * returned. When present the hook adopts it and skips the initial build.
5500
+ * `refetch` still builds.
5501
+ */
5502
+ data?: CentrifugeVaultBuyTransaction;
5503
+ /** When false, the hook does not build. */
5504
+ enabled: boolean;
5505
+ }
5506
+ interface UseCentrifugeBuyTransactionResult {
5507
+ state: LoadCentrifugeBuyTransactionState;
5508
+ /** Builds a fresh request for the same deposit. */
5509
+ refetch: () => void;
5510
+ }
5511
+ /**
5512
+ * Holds the deposit request the review step places, and rebuilds it when
5513
+ * asked.
5514
+ *
5515
+ * **Never polls.** A request is built once, when the user confirms an amount.
5516
+ */
5517
+ declare function useCentrifugeBuyTransaction(options: UseCentrifugeBuyTransactionOptions): UseCentrifugeBuyTransactionResult;
5518
+
5519
+ type CentrifugeBuyReviewStepInput = {
5520
+ type: 'incomplete';
5521
+ } | {
5522
+ type: 'active';
5523
+ wallet: EvmWallet;
5524
+ amount: BlockchainAmount;
5525
+ inputAsset: StablecoinSymbol;
5526
+ /** Known vault block. Unknown status leaves this null. */
5527
+ depositBlockedMessage: string | null;
5528
+ };
5529
+ interface UseCentrifugeBuyReviewViewModelOptions {
5530
+ stepInput: CentrifugeBuyReviewStepInput;
4880
5531
  symbol: AssetSymbol;
4881
5532
  chain: EthereumChain;
4882
- /** The spend to price, in the funding token's base units. */
4883
- amount: BlockchainAmount;
4884
- /** How often to refresh. Defaults to {@link CENTRIFUGE_POLL_INTERVAL_MS}. */
4885
- pollIntervalMs?: number;
5533
+ /** The offer's vault proxies. The spender the approval is written to. */
5534
+ vaultContracts: OfferVaultContract[];
4886
5535
  /**
4887
- * A quote the caller already holds, typically fetched server-side, used as
4888
- * the state the hook opens on so a server-rendered panel needs no loading
4889
- * pass.
5536
+ * When false, placing the request does nothing. Defaults to true.
4890
5537
  *
4891
- * It seeds the first render only: the poll still fetches immediately. A
4892
- * quote is worth as much as it is fresh, and the amount being priced
4893
- * changes as the flow advances, so a seed that suppressed the first read
4894
- * would be offering the server's answer - or another amount's - as this
4895
- * one's.
5538
+ * The step being `incomplete` is not the same thing: a checkout switched
5539
+ * off mid-flow leaves this step `active`, with the amount still here.
4896
5540
  */
4897
- data?: CentrifugeVaultQuote;
4898
- /** When false, the hook neither fetches nor polls. */
4899
- enabled: boolean;
5541
+ enabled?: boolean;
5542
+ onComplete: (order: CentrifugeOrderPlaced) => void;
5543
+ }
5544
+ interface UseCentrifugeBuyReviewViewModelResult {
5545
+ state: CentrifugeBuyReviewUiState;
5546
+ onEvent: (event: CentrifugeBuyReviewUiEvent) => void;
5547
+ }
5548
+ /**
5549
+ * Drives step 3: confirming the deposit and placing the request.
5550
+ *
5551
+ * Placing approves the vault proxy when the allowance is short, builds the
5552
+ * request, and broadcasts it. None of that runs on the amount step, so a
5553
+ * user who edits the amount has not already signed an approval for the old
5554
+ * one.
5555
+ */
5556
+ declare function useCentrifugeBuyReviewViewModel({ stepInput, symbol, chain, vaultContracts, enabled, onComplete, }: UseCentrifugeBuyReviewViewModelOptions): UseCentrifugeBuyReviewViewModelResult;
5557
+
5558
+ type CentrifugeBuyStep = {
5559
+ type: 'wallet';
5560
+ } | {
5561
+ type: 'amount';
5562
+ wallet: EvmWallet;
5563
+ } | {
5564
+ type: 'review';
5565
+ wallet: EvmWallet;
5566
+ amount: BlockchainAmount;
5567
+ inputAsset: StablecoinSymbol;
5568
+ };
5569
+ interface UseCentrifugeBuyCheckoutViewModelOptions {
5570
+ offer: CentrifugeVaultOfferDetail;
5571
+ /** Share token symbol, e.g. `deJTRSY`. */
5572
+ symbol: AssetSymbol;
5573
+ chain: EthereumChain;
5574
+ wallets: CheckoutWalletSelection;
5575
+ enabled?: boolean;
5576
+ /** Fired once the request has mined. The dialog shows either way. */
5577
+ onOrderPlaced?: (order: CentrifugeOrderPlaced) => void;
5578
+ /**
5579
+ * The fund the token tracks. Frontline does not send this yet, so pass
5580
+ * `null` and the asset-details row stays hidden.
5581
+ */
5582
+ underlyingFund: string | null;
5583
+ /**
5584
+ * Trailing yield as display copy, e.g. `3.60%`. Frontline does not send
5585
+ * this yet, so pass `null` and the corner stays empty.
5586
+ */
5587
+ apy: string | null;
4900
5588
  }
4901
- interface UseCentrifugeQuoteResult {
4902
- state: LoadCentrifugeQuoteState;
5589
+ interface UseCentrifugeBuyCheckoutViewModelResult {
5590
+ state: CentrifugeBuyCheckoutUiState;
5591
+ onEvent: (event: CentrifugeBuyCheckoutUiEvent) => void;
4903
5592
  }
4904
5593
  /**
4905
- * Polls Centrifuge's indicative quote for `amount` of `symbol` on `chain`.
5594
+ * Drives the Centrifuge buy checkout.
4906
5595
  *
4907
- * Free to poll: this quote spends no attestation and commits nothing, which
4908
- * is why it may run while the user is still deciding. It also cannot be
4909
- * executed - committing a request is `coinlist.centrifuge` invest, which is
4910
- * not this hook.
5596
+ * The container mounts this hook only. It composes the wallet, amount,
5597
+ * review, and sidebar steps. The status poll lives here. The amount step
5598
+ * only validates.
4911
5599
  *
4912
- * Disabled (or before the provider is ready) it neither fetches nor holds a
4913
- * timer, and stays on whatever state it opened with - `LOADING`, or the
4914
- * `data` seed - rather than reporting an error.
5600
+ * A vault that is known to be blocked replaces the checkout only at the
5601
+ * wallet step. A status that is still loading, or that failed, does not.
5602
+ */
5603
+ declare function useCentrifugeBuyCheckoutViewModel({ offer, symbol, chain, wallets, enabled, onOrderPlaced, underlyingFund, apy, }: UseCentrifugeBuyCheckoutViewModelOptions): UseCentrifugeBuyCheckoutViewModelResult;
5604
+
5605
+ /**
5606
+ * User-facing copy for each `can_order` reason F-0 publishes.
5607
+ *
5608
+ * A record keyed by the closed set, so a new reason fails to compile here
5609
+ * until it has a sentence. The View (or a viewmodel mapping into one) should
5610
+ * render this rather than the wire token.
5611
+ *
5612
+ * Status never returns `below_minimum`. The copy stays so the closed set
5613
+ * still has a sentence for every reason.
5614
+ */
5615
+ declare const CENTRIFUGE_VAULT_ORDER_REASON_MESSAGES: Record<CentrifugeOrderReason, string>;
5616
+ declare function centrifugeVaultOrderReasonMessage(reason: CentrifugeOrderReason): string;
5617
+ /**
5618
+ * The most blocking reason in `reasons`, or `null` when the list is empty.
5619
+ */
5620
+ declare function primaryCentrifugeVaultOrderReason<T extends CentrifugeOrderReason>(reasons: readonly T[]): T | null;
5621
+ /**
5622
+ * The sentence to show for an {@link CentrifugeOrderability}, or `null` when
5623
+ * the request can proceed.
5624
+ */
5625
+ declare function centrifugeVaultOrderingMessage<R extends CentrifugeOrderReason>(orderability: CentrifugeOrderability<R>): string | null;
5626
+
5627
+ interface UseCentrifugeSidebarViewModelOptions {
5628
+ offer: CentrifugeVaultOfferDetail;
5629
+ symbol: AssetSymbol;
5630
+ chain: EthereumChain;
5631
+ tokenMetadata: TokenMetadata | null;
5632
+ /**
5633
+ * The fund the token tracks. Frontline does not send this yet, so callers
5634
+ * pass `null` and the row stays hidden.
5635
+ */
5636
+ underlyingFund: string | null;
5637
+ /**
5638
+ * Trailing yield as display copy, e.g. `3.60%`. Frontline does not send
5639
+ * this yet, so callers pass `null` and the corner stays empty.
5640
+ */
5641
+ apy: string | null;
5642
+ }
5643
+ interface UseCentrifugeSidebarViewModelResult {
5644
+ state: CentrifugeSidebarUiState;
5645
+ }
5646
+ /**
5647
+ * Drives the asset panel beside the Centrifuge checkout.
5648
+ *
5649
+ * The minimum is the offer's. Yield and the underlying fund are arguments:
5650
+ * frontline does not publish either yet, so callers pass `null`.
5651
+ */
5652
+ declare function useCentrifugeSidebarViewModel({ offer, symbol, chain, tokenMetadata, underlyingFund, apy, }: UseCentrifugeSidebarViewModelOptions): UseCentrifugeSidebarViewModelResult;
5653
+
5654
+ /**
5655
+ * Whether step 1 is being filled in or already answered.
5656
+ *
5657
+ * There is no `incomplete` arm: this is the first step, so it is never waiting
5658
+ * on one above it.
5659
+ */
5660
+ type CentrifugeWalletSelectStepInput = {
5661
+ type: 'active';
5662
+ } | {
5663
+ type: 'completed';
5664
+ wallet: EvmWallet;
5665
+ };
5666
+ interface UseCentrifugeWalletSelectViewModelOptions {
5667
+ stepInput: CentrifugeWalletSelectStepInput;
5668
+ /** The host's wallets, and the lambdas that connect and disconnect one. */
5669
+ wallets: CheckoutWalletSelection;
5670
+ /** The chain the order executes on, which names the network on each row. */
5671
+ chain: EthereumChain;
5672
+ /** Called with the wallet the user settled on. */
5673
+ onComplete: (wallet: EvmWallet) => void;
5674
+ /** Called when the user reopens this step from a later one. */
5675
+ onEdit: () => void;
5676
+ }
5677
+ interface UseCentrifugeWalletSelectViewModelResult {
5678
+ state: CentrifugeWalletSelectUiState;
5679
+ onEvent: (event: CentrifugeWalletSelectUiEvent) => void;
5680
+ }
5681
+ /**
5682
+ * Drives step 1 of the Centrifuge checkout: which wallet funds the deposit.
5683
+ *
5684
+ * Nothing here touches the network. A wallet is not allow-listed, so confirming
5685
+ * is a local decision the viewmodel makes on its own - which is why the step's
5686
+ * CTA is a plain `confirmEnabled`.
4915
5687
  *
4916
- * A `data` quote opens the state instead of `LOADING` and is otherwise left
4917
- * to the poll: the first tick fires as it always does, and only replaces the
4918
- * seed once it has a quote of its own. Until it does the state is `CONTENT`
4919
- * with `isRefreshing` set, which is what that flag is for.
5688
+ * Connecting an external wallet is the host's job: `connectExternal` opens
5689
+ * whatever connector it ships, and the result is read from `wallets.external`
5690
+ * on the next render rather than from a return value, so a connector that
5691
+ * redirects works as well as one that opens a modal.
4920
5692
  */
4921
- declare function useCentrifugeQuote(options: UseCentrifugeQuoteOptions): UseCentrifugeQuoteResult;
5693
+ declare function useCentrifugeWalletSelectViewModel({ stepInput, wallets, chain, onComplete, onEdit, }: UseCentrifugeWalletSelectViewModelOptions): UseCentrifugeWalletSelectViewModelResult;
4922
5694
 
4923
5695
  type LoadParticipationsReason = 'not-authenticated' | 'generic-error';
4924
5696
  type LoadParticipationsState = {
@@ -7420,4 +8192,4 @@ declare function useCountdown({ until, tickMs, enabled, }: UseCountdownOptions):
7420
8192
  */
7421
8193
  declare function usePageVisible(): boolean;
7422
8194
 
7423
- export { type AuthState, type AuthorizeWalletParams, CENTRIFUGE_VAULT_ORDER_REASON_MESSAGES, 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 CentrifugePositionVault, type CentrifugeStatusVault, type CentrifugeVaultCheckoutConfig, type CentrifugeVaultClaimConfig, CentrifugeVaultClaimContainer, type CentrifugeVaultClaimContainerProps, CentrifugeVaultClaimDialog, type CentrifugeVaultClaimDialogProps, CentrifugeVaultClaimRow, type CentrifugeVaultClaimRowProps, type CentrifugeVaultClaimUiEvent, type CentrifugeVaultClaimUiState, CentrifugeVaultClaimView, type CentrifugeVaultClaimViewProps, type CentrifugeVaultClaimed, 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 ClaimCentrifugeVaultParams, type ClaimConfig, ClaimContainer, type ClaimContainerProps, type ClaimExternalWalletUi, type ClientAuthConfig, type ClientAuthNamespace, ClientAuthNamespaceImpl, type ClientAuthSession, type ClientCentrifugeNamespace, ClientCentrifugeNamespaceImpl, 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, type ExternalWalletRequestUi, IdentityVerificationContainer, type IdentityVerificationContainerProps, type IdentityVerificationUiEvent, type IdentityVerificationUiState, IdentityVerificationView, type IdentityVerificationViewProps, KycLevelName, type KycTokenErrorReason, type KycTokenState, type LoadCentrifugeQuoteState, type LoadCentrifugeVaultPositionsState, type LoadCentrifugeVaultStatusState, 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, 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 UseCentrifugeClaimResult, type UseCentrifugeQuoteOptions, type UseCentrifugeQuoteResult, type UseCentrifugeVaultClaimViewModelOptions, type UseCentrifugeVaultClaimViewModelResult, type UseCentrifugeVaultPositionsOptions, type UseCentrifugeVaultPositionsResult, type UseCentrifugeVaultStatusOptions, type UseCentrifugeVaultStatusResult, type UseCentrifugeVaultStatusesOptions, type UseCentrifugeVaultStatusesResult, 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, WalletLabelResolver, WalletSelection, type WalletsStatus, authorizeWallet, centrifugeLoadErrorReason, centrifugeVaultOrderReasonMessage, centrifugeVaultOrderingMessage, claimCentrifugeVault, classifyWalletError, connectExternalWalletFlow, createCoinListClient, defaultCheckoutConfig, ensureErc20Allowance, executeOndoSwap, executeSwap, executeTokenSale, formatCountdown, formatMonthYear, formatSaleCardCountdown, isNotTradable, offerAssetIconUrl, offerIconUrl, offerTokenIdentifier, ondoLoadErrorReason, pinoClientLogger, prepareOndoBuy, prepareOndoSell, primaryCentrifugeVaultOrderReason, quoteIsStale, quoteOverAsks, stablecoinIconUrl, submitErc20Approval, tokenLogoSrcSet, tokenLogoUrl, tokenMetadataOf, useCentrifugeClaim, useCentrifugeQuote, useCentrifugeVaultClaimViewModel, useCentrifugeVaultPositions, useCentrifugeVaultStatus, useCentrifugeVaultStatuses, 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, usePageVisible, useParticipations, useRequirements, useRequirementsChecklistViewModel, useSuperstateAmountViewModel, useSuperstateReviewViewModel, useSuperstateSidebarViewModel, useSuperstateSwapCheckoutViewModel, useSuperstateWalletViewModel, useSwapOutputToken, useSwapQuote, useTaxDocument, useTaxDocumentModalViewModel, useTokenMetadata, useTokenRegistry, validateAmount, validateSellAmount, validateSuperstateAmount };
8195
+ export { type AuthState, type AuthorizeWalletParams, type BuyCentrifugeParams, CENTRIFUGE_VAULT_ORDER_REASON_MESSAGES, type CentrifugeBuyAmountConfirmed, type CentrifugeBuyAmountStepInput, type CentrifugeBuyAmountUiEvent, type CentrifugeBuyAmountUiState, type CentrifugeBuyAmountValidation, CentrifugeBuyAmountView, type CentrifugeBuyAmountViewProps, CentrifugeBuyCheckoutContainer, type CentrifugeBuyCheckoutContainerProps, type CentrifugeBuyCheckoutUiEvent, type CentrifugeBuyCheckoutUiState, CentrifugeBuyCheckoutView, type CentrifugeBuyCheckoutViewProps, type CentrifugeBuyError, CentrifugeBuyOrderPlaced, type CentrifugeBuyOrderPlacedProps, type CentrifugeBuyPhase, type CentrifugeBuyPlacementError, type CentrifugeBuyPlacementPhase, type CentrifugeBuyPlacementResult, type CentrifugeBuyPreparationError, type CentrifugeBuyPreparationPhase, type CentrifugeBuyPreparationResult, type CentrifugeBuyResult, type CentrifugeBuyReviewStepInput, type CentrifugeBuyReviewUiEvent, type CentrifugeBuyReviewUiState, CentrifugeBuyReviewView, type CentrifugeBuyReviewViewProps, type CentrifugeBuyStep, CentrifugeCheckoutError, type CentrifugeCheckoutErrorProps, 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 CentrifugePositionVault, type CentrifugeSidebarMinimumUi, type CentrifugeSidebarUiState, CentrifugeSidebarView, type CentrifugeSidebarViewProps, type CentrifugeStatusVault, type CentrifugeVaultCheckoutConfig, type CentrifugeVaultClaimConfig, CentrifugeVaultClaimContainer, type CentrifugeVaultClaimContainerProps, CentrifugeVaultClaimDialog, type CentrifugeVaultClaimDialogProps, CentrifugeVaultClaimRow, type CentrifugeVaultClaimRowProps, type CentrifugeVaultClaimUiEvent, type CentrifugeVaultClaimUiState, CentrifugeVaultClaimView, type CentrifugeVaultClaimViewProps, type CentrifugeVaultClaimed, type CentrifugeWalletSelectStepInput, type CentrifugeWalletSelectUiEvent, type CentrifugeWalletSelectUiState, CentrifugeWalletSelectView, type CentrifugeWalletSelectViewProps, 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 ClaimCentrifugeVaultParams, type ClaimConfig, ClaimContainer, type ClaimContainerProps, type ClaimExternalWalletUi, type ClientAuthConfig, type ClientAuthNamespace, ClientAuthNamespaceImpl, type ClientAuthSession, type ClientCentrifugeNamespace, ClientCentrifugeNamespaceImpl, 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, type ExternalWalletRequestUi, IdentityVerificationContainer, type IdentityVerificationContainerProps, type IdentityVerificationUiEvent, type IdentityVerificationUiState, IdentityVerificationView, type IdentityVerificationViewProps, KycLevelName, type KycTokenErrorReason, type KycTokenState, type LoadCentrifugeBuyTransactionState, type LoadCentrifugeVaultPositionsState, type LoadCentrifugeVaultStatusState, 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, 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 PlaceCentrifugeRequestParams, type PrepareCentrifugeBuyParams, 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 UseCentrifugeBuyAmountViewModelOptions, type UseCentrifugeBuyAmountViewModelResult, type UseCentrifugeBuyCheckoutViewModelOptions, type UseCentrifugeBuyCheckoutViewModelResult, type UseCentrifugeBuyReviewViewModelOptions, type UseCentrifugeBuyReviewViewModelResult, type UseCentrifugeBuyTransactionOptions, type UseCentrifugeBuyTransactionResult, type UseCentrifugeClaimResult, type UseCentrifugeSidebarViewModelOptions, type UseCentrifugeSidebarViewModelResult, type UseCentrifugeVaultClaimViewModelOptions, type UseCentrifugeVaultClaimViewModelResult, type UseCentrifugeVaultPositionsOptions, type UseCentrifugeVaultPositionsResult, type UseCentrifugeVaultStatusOptions, type UseCentrifugeVaultStatusResult, type UseCentrifugeVaultStatusesOptions, type UseCentrifugeVaultStatusesResult, type UseCentrifugeWalletSelectViewModelOptions, type UseCentrifugeWalletSelectViewModelResult, 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, WalletLabelResolver, WalletSelection, type WalletsStatus, authorizeWallet, buyCentrifuge, centrifugeLoadErrorReason, centrifugeVaultOrderReasonMessage, centrifugeVaultOrderingMessage, claimCentrifugeVault, classifyWalletError, connectExternalWalletFlow, createCoinListClient, defaultCheckoutConfig, ensureErc20Allowance, executeOndoSwap, executeSwap, executeTokenSale, formatCountdown, formatMonthYear, formatSaleCardCountdown, isNotTradable, offerAssetIconUrl, offerIconUrl, offerTokenIdentifier, ondoLoadErrorReason, pinoClientLogger, placeCentrifugeRequest, prepareCentrifugeBuy, prepareOndoBuy, prepareOndoSell, primaryCentrifugeVaultOrderReason, quoteIsStale, quoteOverAsks, stablecoinIconUrl, submitErc20Approval, toInputAssetUi, tokenLogoSrcSet, tokenLogoUrl, tokenMetadataOf, useCentrifugeBuyAmountViewModel, useCentrifugeBuyCheckoutViewModel, useCentrifugeBuyReviewViewModel, useCentrifugeBuyTransaction, useCentrifugeClaim, useCentrifugeSidebarViewModel, useCentrifugeVaultClaimViewModel, useCentrifugeVaultPositions, useCentrifugeVaultStatus, useCentrifugeVaultStatuses, useCentrifugeWalletSelectViewModel, 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, usePageVisible, useParticipations, useRequirements, useRequirementsChecklistViewModel, useSuperstateAmountViewModel, useSuperstateReviewViewModel, useSuperstateSidebarViewModel, useSuperstateSwapCheckoutViewModel, useSuperstateWalletViewModel, useSwapOutputToken, useSwapQuote, useTaxDocument, useTaxDocumentModalViewModel, useTokenMetadata, useTokenRegistry, validateAmount, validateCentrifugeBuyAmount, validateSellAmount, validateSuperstateAmount };