@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.
- package/README.md +10 -0
- package/dist/{chunk-QRVIBG6H.js → chunk-3WW5FLT7.js} +2 -2
- package/dist/{chunk-IAY3F42Q.js → chunk-C6GF7MDF.js} +125 -158
- package/dist/chunk-C6GF7MDF.js.map +1 -0
- package/dist/{chunk-3OTYQADF.js → chunk-IZJ4JSSC.js} +2 -2
- package/dist/chunk-IZJ4JSSC.js.map +1 -0
- package/dist/client/index.cjs +4469 -3149
- package/dist/client/index.cjs.map +1 -1
- package/dist/client/index.d.cts +939 -167
- package/dist/client/index.d.ts +939 -167
- package/dist/client/index.js +3867 -2555
- package/dist/client/index.js.map +1 -1
- package/dist/server/index.cjs +40 -49
- package/dist/server/index.cjs.map +1 -1
- package/dist/server/index.d.cts +3 -6
- package/dist/server/index.d.ts +3 -6
- package/dist/server/index.js +2 -2
- package/dist/server/index.js.map +1 -1
- package/dist/{time-DyjvzWso.d.cts → time-CVZpAkGY.d.cts} +276 -318
- package/dist/{time-DyjvzWso.d.ts → time-CVZpAkGY.d.ts} +276 -318
- package/dist/{token-registry-snapshot-Bldj1r5X.d.ts → token-registry-snapshot-BkwA8KmD.d.ts} +1 -1
- package/dist/{token-registry-snapshot-CbNCYP_5.d.cts → token-registry-snapshot-bR14QehS.d.cts} +1 -1
- package/dist/universal/index.cjs +26 -60
- package/dist/universal/index.cjs.map +1 -1
- package/dist/universal/index.d.cts +7 -12
- package/dist/universal/index.d.ts +7 -12
- package/dist/universal/index.js +2 -4
- package/package.json +1 -1
- package/dist/chunk-3OTYQADF.js.map +0 -1
- package/dist/chunk-IAY3F42Q.js.map +0 -1
- /package/dist/{chunk-QRVIBG6H.js.map → chunk-3WW5FLT7.js.map} +0 -0
package/dist/client/index.d.cts
CHANGED
|
@@ -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,
|
|
4
|
-
export {
|
|
5
|
-
import { P as PKCEConfig, E as EvmWallet, S as SwapQuote, A as AssetIconUrl,
|
|
6
|
-
export { B as BroadcastTxParams, e as EvmSigner, f as ExternalWalletAdapter, g as WriteContractParams } from '../token-registry-snapshot-
|
|
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
|
|
185
|
-
* claiming what a fill made claimable
|
|
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
|
|
891
|
-
*
|
|
892
|
-
*
|
|
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.
|
|
895
|
-
*
|
|
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
|
-
*
|
|
1682
|
-
*
|
|
1683
|
-
*
|
|
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
|
-
|
|
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': {
|
|
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': {
|
|
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
|
-
*
|
|
1816
|
-
|
|
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
|
-
*
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
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
|
-
*
|
|
1832
|
-
*
|
|
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
|
-
*
|
|
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
|
-
* -
|
|
1837
|
-
*
|
|
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
|
|
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
|
-
*
|
|
5441
|
+
* Drives step 2: how much to deposit.
|
|
4820
5442
|
*
|
|
4821
|
-
*
|
|
4822
|
-
*
|
|
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
|
|
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
|
|
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
|
-
*
|
|
4861
|
-
*
|
|
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
|
|
5480
|
+
type LoadCentrifugeBuyTransactionState = {
|
|
4869
5481
|
type: 'LOADING';
|
|
4870
5482
|
} | {
|
|
4871
5483
|
type: 'ERROR';
|
|
4872
5484
|
reason: CentrifugeLoadErrorReason;
|
|
4873
5485
|
} | {
|
|
4874
5486
|
type: 'CONTENT';
|
|
4875
|
-
|
|
5487
|
+
transaction: CentrifugeVaultBuyTransaction;
|
|
4876
5488
|
isRefreshing: boolean;
|
|
5489
|
+
refreshError: CentrifugeLoadErrorReason | null;
|
|
4877
5490
|
};
|
|
4878
|
-
interface
|
|
4879
|
-
/**
|
|
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
|
|
4883
|
-
|
|
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
|
-
*
|
|
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
|
-
*
|
|
4892
|
-
*
|
|
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
|
-
|
|
4898
|
-
|
|
4899
|
-
|
|
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
|
|
4902
|
-
state:
|
|
5589
|
+
interface UseCentrifugeBuyCheckoutViewModelResult {
|
|
5590
|
+
state: CentrifugeBuyCheckoutUiState;
|
|
5591
|
+
onEvent: (event: CentrifugeBuyCheckoutUiEvent) => void;
|
|
4903
5592
|
}
|
|
4904
5593
|
/**
|
|
4905
|
-
*
|
|
5594
|
+
* Drives the Centrifuge buy checkout.
|
|
4906
5595
|
*
|
|
4907
|
-
*
|
|
4908
|
-
*
|
|
4909
|
-
*
|
|
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
|
-
*
|
|
4913
|
-
*
|
|
4914
|
-
|
|
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
|
-
*
|
|
4917
|
-
*
|
|
4918
|
-
*
|
|
4919
|
-
*
|
|
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
|
|
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 };
|