@coinlist-co/react 0.11.0 → 0.11.1-rc.8cfcd2a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/{chunk-B2HCVPCQ.js → chunk-5KYO7OOX.js} +26 -11
  2. package/dist/chunk-5KYO7OOX.js.map +1 -0
  3. package/dist/chunk-AQIHCFW4.js +279 -0
  4. package/dist/chunk-AQIHCFW4.js.map +1 -0
  5. package/dist/{chunk-UIIXXLA7.js → chunk-ZVB6KWZ2.js} +484 -141
  6. package/dist/chunk-ZVB6KWZ2.js.map +1 -0
  7. package/dist/client/index.cjs +1308 -462
  8. package/dist/client/index.cjs.map +1 -1
  9. package/dist/client/index.d.cts +216 -211
  10. package/dist/client/index.d.ts +216 -211
  11. package/dist/client/index.js +464 -108
  12. package/dist/client/index.js.map +1 -1
  13. package/dist/collections-DrJFEDHl.d.cts +116 -0
  14. package/dist/collections-pLtrj6fw.d.ts +116 -0
  15. package/dist/{config-B5mwS_2l.d.cts → config-C6vlghJY.d.cts} +713 -22
  16. package/dist/{config-B5mwS_2l.d.ts → config-C6vlghJY.d.ts} +713 -22
  17. package/dist/server/index.cjs +766 -209
  18. package/dist/server/index.cjs.map +1 -1
  19. package/dist/server/index.d.cts +80 -3
  20. package/dist/server/index.d.ts +80 -3
  21. package/dist/server/index.js +120 -51
  22. package/dist/server/index.js.map +1 -1
  23. package/dist/shared/index.cjs +487 -124
  24. package/dist/shared/index.cjs.map +1 -1
  25. package/dist/shared/index.d.cts +18 -5
  26. package/dist/shared/index.d.ts +18 -5
  27. package/dist/shared/index.js +8 -2
  28. package/package.json +3 -2
  29. package/dist/chunk-B2HCVPCQ.js.map +0 -1
  30. package/dist/chunk-KDGNDAHA.js +0 -146
  31. package/dist/chunk-KDGNDAHA.js.map +0 -1
  32. package/dist/chunk-UIIXXLA7.js.map +0 -1
  33. package/dist/collections-BhDkYmzV.d.cts +0 -65
  34. package/dist/collections-CZhHoQHr.d.ts +0 -65
@@ -1,10 +1,11 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as react from 'react';
3
3
  import { ReactNode, ButtonHTMLAttributes } from 'react';
4
- import { A as AuthorizationCode, C as CodeVerifier, E as EvmWalletAddress, a as EthereumChain, T as Tx, b as Erc20Namespace, c as EvmContractAddress, B as BlockchainAmount, d as CoinListTokenSaleNamespace, O as OfferId, e as OfferOptionId, f as AssetId, P as Participation, g as CoinListTokenSaleNamespaceImpl, S as SharedNamespaceContext, h as OndoNamespace, i as AssetSymbol, j as OndoSwapTransaction, k as OndoNamespaceImpl, l as SuperstateSwapNamespace, W as WalletsNamespace, m as Bps, n as SuperstateSwapNamespaceImpl, R as RequirementsNamespace, o as Requirement, p as RequirementsNamespaceImpl, q as Config, r as OAuthAccessToken, s as OffersNamespace, t as TokensNamespace, u as Erc20Asset, v as OfferDetail, w as StablecoinSymbol, x as OfferType, y as Offer, z as RequirementStatusInfo, D as RequirementType, F as RequirementStatusValue, G as OfferOptionAddress, H as RequirementId, K as KycLevelName, I as WalletChallengeType, J as DocumentSubmission, L as OndoTradingStatus, M as AssetDecimals, N as OndoQuote, Q as OrderBookSide, U as OndoQuoteSize, V as BuildOndoSwapTransactionParams, X as OfferOptionAddressId, Y as TokenMetadata, Z as TokenIdentifier } from '../config-B5mwS_2l.cjs';
5
- export { _ as HttpError, $ as HttpResponse, a0 as KycToken } from '../config-B5mwS_2l.cjs';
6
- import { P as PKCEConfig, S as SwapQuote, A as AssetIconUrl, a as ShortenedWalletAddress, F as FormattedAmountAssetUi, b as FormattedPercentUi, T as TxExplorerUrl, N as NonEmptyArray } from '../collections-BhDkYmzV.cjs';
7
- import { Hash, Hex, Abi, TransactionReceipt } from 'viem';
4
+ import { A as AuthorizationCode, C as CodeVerifier, L as Logger, W as WalletError, E as Erc20Namespace, a as EthereumChain, b as EvmContractAddress, B as BlockchainAmount, c as CoinListTokenSaleNamespace, O as OfferId, d as OfferOptionId, e as AssetId, P as Participation, f as CoinListTokenSaleNamespaceImpl, S as SharedNamespaceContext, g as OndoNamespace, h as AssetSymbol, i as OndoSwapTransaction, j as OndoNamespaceImpl, k as SuperstateSwapNamespace, l as WalletsNamespace, m as Bps, n as EvmWalletAddress, o as SuperstateSwapNamespaceImpl, R as RequirementsNamespace, p as Requirement, q as RequirementsNamespaceImpl, r as Config, s as OAuthAccessToken, t as OffersNamespace, T as TokensNamespace, u as Erc20Asset, v as OfferDetail, w as StablecoinSymbol, x as OfferType, y as Offer, z as RequirementStatusInfo, D as RequirementType, F as RequirementStatusValue, G as OfferOptionAddress, H as RequirementId, K as KycLevelName, I as DocumentSubmission, J as WalletChallengeType, M as PinoLoggerOptions, N as OndoTradingStatus, Q as AssetDecimals, U as OndoQuote, V as OrderBookSide, X as OndoQuoteSize, Y as BuildOndoSwapTransactionParams, Z as OfferOptionAddressId, _ as TokenMetadata, $ as TokenIdentifier } from '../config-C6vlghJY.cjs';
5
+ export { a0 as DebugEvent, a1 as FrontlineEventId, a2 as HttpError, a3 as HttpResponse, a4 as KycToken, a5 as LogBinding, a6 as LogBindings, a7 as LogCause, a8 as LogLevel, a9 as LogScope, aa as LogValue, ab as ProductionLogLevel, ac as RedactedWalletError, ad as RequestId, ae as SafeEvent, af as SafeFields, ag as UnredactedFields } from '../config-C6vlghJY.cjs';
6
+ import { P as PKCEConfig, E as EvmWallet, S as SwapQuote, A as AssetIconUrl, a as ShortenedWalletAddress, F as FormattedAmountAssetUi, b as FormattedPercentUi, T as TxExplorerUrl, C as ConnectWallet, N as NonEmptyArray } from '../collections-DrJFEDHl.cjs';
7
+ export { B as BroadcastTxParams, c as EvmSigner, W as WriteContractParams } from '../collections-DrJFEDHl.cjs';
8
+ import { Hash } from 'viem';
8
9
  import * as class_variance_authority_types from 'class-variance-authority/types';
9
10
  import { VariantProps } from 'class-variance-authority';
10
11
 
@@ -94,84 +95,24 @@ type ClientAuthSession = {
94
95
  */
95
96
  type ClientAuthConfig = PKCEConfig & {
96
97
  readonly coinlistBaseUrl?: string;
98
+ readonly logger?: Logger;
97
99
  };
98
100
  declare class ClientAuthNamespaceImpl implements ClientAuthNamespace {
99
101
  private readonly config;
100
102
  private readonly session;
103
+ private readonly log;
101
104
  constructor(config: ClientAuthConfig, session: ClientAuthSession);
102
105
  getState(): AuthState;
103
106
  startOAuth(): Promise<void>;
107
+ private redirectToOAuth;
108
+ /**
109
+ * Every failure here is silent from the browser's side - a state mismatch
110
+ * and a missing verifier both just leave the user logged out - so the
111
+ * reason is logged rather than left for the host to infer from a callback.
112
+ */
104
113
  completeOAuth(): OauthClientResult;
105
114
  logout(): void;
106
- }
107
-
108
- /**
109
- * A classified wallet/transaction failure. The SDK derives this from whatever
110
- * the {@link EvmWallet} throws, so consumers get a stable, typed error
111
- * shape regardless of the underlying wallet library.
112
- */
113
- type WalletError = {
114
- type: 'user_rejected';
115
- } | {
116
- type: 'insufficient_funds';
117
- } | {
118
- type: 'contract_reverted';
119
- reason: string;
120
- } | {
121
- type: 'timeout';
122
- hash: Hash;
123
- } | {
124
- type: 'unknown';
125
- cause: unknown;
126
- };
127
- /**
128
- * Classifies an error thrown by an {@link EvmWallet} into a typed
129
- * {@link WalletError}. Pass the transaction `hash` when awaiting a receipt so a
130
- * timeout can be reported against it.
131
- */
132
- declare function classifyWalletError(error: unknown, ctx?: {
133
- hash?: Hash;
134
- }): WalletError;
135
-
136
- type WriteContractParams = {
137
- abi: Abi;
138
- address: `0x${string}`;
139
- functionName: string;
140
- args?: readonly unknown[];
141
- value?: bigint;
142
- chain: EthereumChain;
143
- };
144
- type BroadcastTxParams = Tx & {
145
- chain: EthereumChain;
146
- };
147
- /**
148
- * The signing-only wallet capability: address + `signMessage`. This is all the
149
- * external-wallet ownership proof needs (see `useConnectWallet`), so hosts can
150
- * satisfy that flow without implementing on-chain capabilities. The richer
151
- * {@link EvmWallet} extends this for swap flows.
152
- *
153
- * SDK users implement this against their own wallet stack (e.g. viem, wagmi,
154
- * Privy). `signMessage` throws on failure and the SDK classifies it.
155
- */
156
- interface EvmSigner {
157
- readonly address: EvmWalletAddress;
158
- signMessage(message: string): Promise<Hex>;
159
- }
160
- /**
161
- * The full on-chain wallet the SDK needs to run the swap flows: an
162
- * {@link EvmSigner} plus contract writes, raw-tx broadcast, and confirmation.
163
- * SDK users implement this against their own wallet stack (e.g. viem, wagmi,
164
- * Privy).
165
- *
166
- * Methods throw on failure. The SDK catches and classifies the thrown error
167
- * (viem's `UserRejectedRequestError`, `InsufficientFundsError`, timeouts, …)
168
- * into a typed {@link WalletError}, so implementers can simply let their wallet
169
- * library's errors propagate.
170
- */
171
- interface EvmWallet extends EvmSigner {
172
- writeContract(params: WriteContractParams): Promise<Hash>;
173
- broadcastRawTx(params: BroadcastTxParams): Promise<Hash>;
174
- awaitTx(hash: Hash, chain: EthereumChain): Promise<TransactionReceipt>;
115
+ private readOauthCallback;
175
116
  }
176
117
 
177
118
  type Erc20AllowancePhase = 'checking-allowance' | 'resetting-allowance' | 'confirming-allowance-reset' | 'approving' | 'confirming-approval';
@@ -660,6 +601,8 @@ interface ClientSupportNamespace {
660
601
  contact(): void;
661
602
  }
662
603
  declare class ClientSupportNamespaceImpl implements ClientSupportNamespace {
604
+ private readonly log;
605
+ constructor(logger?: Logger | null);
663
606
  contact(): void;
664
607
  }
665
608
 
@@ -2094,8 +2037,8 @@ interface SuperstateAmountViewProps {
2094
2037
  * and every interaction leaves through `onEvent`.
2095
2038
  *
2096
2039
  * The field is dollar-denominated, so the `$` goes in `CheckoutAmountInput`'s
2097
- * `prefix` slot — where Ondo puts its asset symbol in `suffix`. Nothing here is
2098
- * submitted: confirming only moves the flow to the review step.
2040
+ * `prefix` slot — where Ondo puts the symbol of the token it charges. Nothing
2041
+ * here is submitted: confirming only moves the flow to the review step.
2099
2042
  *
2100
2043
  * Self-scoped: renders fully styled on its own, with no `CoinListStyleScope`
2101
2044
  * needed around it.
@@ -2774,137 +2717,6 @@ interface RequirementItemProps {
2774
2717
  */
2775
2718
  declare function RequirementItem({ ui, expanded, onToggle, className, onAction, onRemoveWallet, walletsStatus, onContactSupport, }: RequirementItemProps): react_jsx_runtime.JSX.Element;
2776
2719
 
2777
- /**
2778
- * The host-provided wallet the ownership flow signs with: the signing-only
2779
- * {@link EvmSigner} plus the {@link EthereumChain} the signature is proven on.
2780
- * `chain` rides on the wallet (not the offer) because the binding is
2781
- * chain-agnostic: it only records which EVM chain signed.
2782
- */
2783
- type ConnectWallet = EvmSigner & {
2784
- readonly chain: EthereumChain;
2785
- };
2786
- /**
2787
- * Machine-readable classification of a connect-wallet failure, so consumers can
2788
- * branch on the cause (e.g. hide a retry affordance on a terminal failure)
2789
- * instead of pattern-matching a display string.
2790
- */
2791
- type ConnectWalletErrorCode = 'not_authenticated' | 'user_rejected' | 'wallet_not_whitelisted' | 'max_wallets_reached' | 'unknown';
2792
- /**
2793
- * A classified connect-wallet failure. `retryable` is false when re-signing the
2794
- * same wallet can never succeed (a terminal binding rejection, or no signed-in
2795
- * session). Display copy is the caller's concern, kept out of the core.
2796
- */
2797
- type ConnectWalletFlowError = {
2798
- code: ConnectWalletErrorCode;
2799
- retryable: boolean;
2800
- };
2801
- /** Progress phases emitted by {@link connectExternalWalletFlow}, in order. */
2802
- type ConnectWalletPhase = 'requesting-challenge' | 'signing-message' | 'submitting-signature';
2803
- type ConnectWalletFlowResult = {
2804
- type: 'success';
2805
- binding: OfferOptionAddress;
2806
- } | {
2807
- type: 'cancelled';
2808
- } | {
2809
- type: 'error';
2810
- error: ConnectWalletFlowError;
2811
- };
2812
- /**
2813
- * The client surface the flow actually depends on, kept narrow on purpose.
2814
- *
2815
- * Named as a structural slice rather than `Pick<CoinListClient, 'wallets'>` so
2816
- * this feature does not import its layer's entry point: a flow takes the
2817
- * namespaces it needs, the way `@/client/core/checkout/**` flows do.
2818
- */
2819
- type ConnectWalletClient = {
2820
- wallets: WalletsNamespace;
2821
- };
2822
- type ConnectWalletFlowParams = {
2823
- coinlist: ConnectWalletClient;
2824
- /** Host-provided connected wallet the flow signs with. */
2825
- wallet: ConnectWallet;
2826
- offerId: OfferId;
2827
- offerOptionId: OfferOptionId;
2828
- /** Challenge framing; defaults to `'siwe'`. */
2829
- challengeType?: WalletChallengeType;
2830
- /** SIWE statement shown in the signing prompt. */
2831
- statement?: string;
2832
- /**
2833
- * Polled before each irreversible step (signing, binding). Return true to
2834
- * abandon a superseded attempt; the flow then resolves `{ type: 'cancelled' }`
2835
- * without prompting the wallet or binding. React hooks pass a generation
2836
- * check here; non-React callers can omit it.
2837
- */
2838
- isCancelled?: () => boolean;
2839
- /** Reports flow progress for consumers rendering loading states. */
2840
- onProgress?: (phase: ConnectWalletPhase) => void;
2841
- };
2842
- /**
2843
- * Drives the external-wallet ownership flow for one offer option:
2844
- * `createWalletOwnershipChallenge` -> host `wallet.signMessage` ->
2845
- * `connectExternalWallet`. Pure and signer-agnostic: signing is delegated to
2846
- * the host-provided {@link ConnectWallet}, and no React is involved so non-hook
2847
- * consumers can drive it directly (mirrors `authorizeWallet` in `swap-flows`).
2848
- * EVM / EOA + SIWE only for now.
2849
- */
2850
- declare function connectExternalWalletFlow(params: ConnectWalletFlowParams): Promise<ConnectWalletFlowResult>;
2851
-
2852
- /**
2853
- * A display-ready connect-wallet error: the core flow's machine-readable code
2854
- * and `retryable` flag, plus copy for the UI.
2855
- */
2856
- type ConnectWalletError = {
2857
- code: ConnectWalletErrorCode;
2858
- message: string;
2859
- retryable: boolean;
2860
- };
2861
- /**
2862
- * Signing-in-flight and the last sign error live inside the READY state (not a
2863
- * separate top-level state) so a failed attempt returns to READY and can be
2864
- * retried without re-opening the modal. Mirrors {@link SignState} in
2865
- * `useTaxDocument`.
2866
- */
2867
- type ConnectWalletSignState = {
2868
- type: 'idle';
2869
- error: ConnectWalletError | null;
2870
- } | {
2871
- type: 'signing';
2872
- };
2873
- type ConnectWalletState = {
2874
- type: 'NEEDS_WALLET';
2875
- } | {
2876
- type: 'READY';
2877
- address: EvmWalletAddress;
2878
- sign: ConnectWalletSignState;
2879
- } | {
2880
- type: 'CONNECTED';
2881
- binding: OfferOptionAddress;
2882
- };
2883
- interface UseConnectWalletOptions {
2884
- /** The hook resets state each time it opens. */
2885
- isOpen: boolean;
2886
- offerId: OfferId;
2887
- offerOptionId: OfferOptionId;
2888
- /** Host-provided connected wallet, or `null` while none is connected. */
2889
- wallet: ConnectWallet | null;
2890
- /** Challenge framing; defaults to `'siwe'`. */
2891
- challengeType?: WalletChallengeType;
2892
- /** SIWE statement shown in the signing prompt. */
2893
- statement?: string;
2894
- }
2895
- interface UseConnectWalletResult {
2896
- state: ConnectWalletState;
2897
- /** READY.sign: idle -> signing -> (CONNECTED | idle w/ error). No-op otherwise. */
2898
- onSign: () => void;
2899
- }
2900
- /**
2901
- * React wrapper over {@link connectExternalWalletFlow}. Owns the modal state
2902
- * machine, the display copy, and generation-token supersession (so a wallet
2903
- * switch, modal close, or unmount cancels an in-flight attempt). The flow logic
2904
- * itself lives in the framework-free core so non-React consumers can drive it.
2905
- */
2906
- declare function useConnectWallet({ isOpen, offerId, offerOptionId, wallet, challengeType, statement, }: UseConnectWalletOptions): UseConnectWalletResult;
2907
-
2908
2720
  type LoadRequirementsReason = 'not-authenticated' | 'generic-error';
2909
2721
  type LoadRequirementsState = {
2910
2722
  type: 'LOADING';
@@ -3008,8 +2820,7 @@ interface RequirementsChecklistContainerProps {
3008
2820
  */
3009
2821
  data?: RequirementsData;
3010
2822
  /**
3011
- * Options for the inline Sumsub verification flow shown for KYC-backed
3012
- * requirements (`identity_verified`, `kyc_approved`, `accreditation`) when
2823
+ * Options for the inline Sumsub verification flow, shown when
3013
2824
  * `onRequirementActionOverride` is not provided. The flow starts whenever
3014
2825
  * the requirement's status carries a `kycLevel` - the backend prescribes
3015
2826
  * both the level and whether the applicant must be reset first.
@@ -3118,8 +2929,8 @@ interface IdentityVerificationContainerProps {
3118
2929
  * Inline Sumsub identity verification flow, backed by
3119
2930
  * {@link useIdentityVerificationViewModel}, which fetches the Sumsub WebSDK
3120
2931
  * access token via {@link useKycToken}. Used by
3121
- * `RequirementsChecklistContainer` for `identity_verified` requirements, and
3122
- * can also be rendered standalone.
2932
+ * `RequirementsChecklistContainer` for KYC-backed requirements, and can also
2933
+ * be rendered standalone.
3123
2934
  */
3124
2935
  declare function IdentityVerificationContainer({ levelName, reset, locale, onSubmitted, onError, className, }: IdentityVerificationContainerProps): ReactNode;
3125
2936
 
@@ -3354,6 +3165,144 @@ interface ConnectWalletModalViewProps {
3354
3165
  */
3355
3166
  declare function ConnectWalletModalView({ state, onEvent, className, }: ConnectWalletModalViewProps): ReactNode;
3356
3167
 
3168
+ /**
3169
+ * Classifies an error thrown by an {@link EvmWallet} into a typed
3170
+ * {@link WalletError}. Pass the transaction `hash` when awaiting a receipt so a
3171
+ * timeout can be reported against it.
3172
+ *
3173
+ * **Every check walks the cause chain rather than testing the thrown object.**
3174
+ * viem never throws the error that says what happened: `sendTransaction` wraps
3175
+ * it in a `TransactionExecutionError` and `writeContract` wraps that again in a
3176
+ * `ContractFunctionExecutionError`, so a MetaMask 4001 arrives as a
3177
+ * `UserRejectedRequestError` two levels down. Testing the top level - which is
3178
+ * what this did until it was caught in a partner demo - classified every real
3179
+ * refusal and every real revert as `unknown`, and that is public API: a host
3180
+ * branching on `user_rejected` to stay quiet when a user simply cancels never
3181
+ * saw one.
3182
+ */
3183
+ declare function classifyWalletError(error: unknown, ctx?: {
3184
+ hash?: Hash;
3185
+ }): WalletError;
3186
+
3187
+ /**
3188
+ * A {@link Logger} that writes structured records to the browser console
3189
+ * through pino.
3190
+ *
3191
+ * ```ts
3192
+ * createCoinListClient({
3193
+ * ...config,
3194
+ * logger: pinoClientLogger({ isDev: false, level: 'info' }),
3195
+ * });
3196
+ * ```
3197
+ *
3198
+ * The browser counterpart of {@link pinoServerLogger}. Two factories rather
3199
+ * than one that sniffs `typeof window`, because the environment is the
3200
+ * outermost axis of this codebase: the client build resolves pino's browser
3201
+ * entry and the server build resolves its node entry, neither pays for the
3202
+ * other, and neither has a branch in it.
3203
+ *
3204
+ * `browser: { asObject: true }` is the one non-default: pino's browser default
3205
+ * hands its arguments to `console.info` unchanged, which is not a structured
3206
+ * record. With it, each line is a single object carrying `level`, `time`,
3207
+ * `name`, `scope`, the bindings and every field - the same shape the server
3208
+ * writes as ndjson, so a record read in devtools and a record read in a log
3209
+ * aggregator are the same record.
3210
+ *
3211
+ * ## Production
3212
+ *
3213
+ * **Running this in a production browser is not advised**, and the browser is
3214
+ * where that advice is easiest to justify. **A browser console is readable by
3215
+ * anyone with the page open**, and extensions can scrape it, so even the
3216
+ * redacted levels put SDK-authored classification and server-minted ids
3217
+ * somewhere you do not control. Nothing is transmitted anywhere either: pino's
3218
+ * browser build writes to the console and stops, so what you get for the risk
3219
+ * is a record only the end user can read.
3220
+ *
3221
+ * If you run one anyway, `isDev: false` restricts you to `'error'`, `'warn'`
3222
+ * and `'info'` - `{ isDev: false, level: 'debug' }` does not compile, see
3223
+ * {@link PinoLoggerOptions}. Those levels are redacted by construction; what
3224
+ * follows from that in your environment is your call to make, not a warranty
3225
+ * the SDK offers.
3226
+ *
3227
+ * If you want these records off the page, implement {@link Logger} yourself
3228
+ * over your own transport, or pass a pino instance configured with
3229
+ * `browser.transmit` - the seam is deliberately small enough to make that easy.
3230
+ *
3231
+ * Holds no module-level state: every call builds its own pino instance, and
3232
+ * the level is fixed at construction, so two loggers never interfere. Fixed is
3233
+ * this implementation's choice, not the seam's - the SDK re-reads
3234
+ * {@link Logger.level} before every log call - so if you want a level you can
3235
+ * change at runtime, implement {@link Logger} over your own pino instance
3236
+ * rather than calling this.
3237
+ */
3238
+ declare function pinoClientLogger(options: PinoLoggerOptions): Logger;
3239
+
3240
+ /**
3241
+ * Machine-readable classification of a connect-wallet failure, so consumers can
3242
+ * branch on the cause (e.g. hide a retry affordance on a terminal failure)
3243
+ * instead of pattern-matching a display string.
3244
+ */
3245
+ type ConnectWalletErrorCode = 'not_authenticated' | 'user_rejected' | 'wallet_not_whitelisted' | 'max_wallets_reached' | 'unknown';
3246
+ /**
3247
+ * A classified connect-wallet failure. `retryable` is false when re-signing the
3248
+ * same wallet can never succeed (a terminal binding rejection, or no signed-in
3249
+ * session). Display copy is the caller's concern, kept out of the core.
3250
+ */
3251
+ type ConnectWalletFlowError = {
3252
+ code: ConnectWalletErrorCode;
3253
+ retryable: boolean;
3254
+ };
3255
+ /** Progress phases emitted by {@link connectExternalWalletFlow}, in order. */
3256
+ type ConnectWalletPhase = 'requesting-challenge' | 'signing-message' | 'submitting-signature';
3257
+ type ConnectWalletFlowResult = {
3258
+ type: 'success';
3259
+ binding: OfferOptionAddress;
3260
+ } | {
3261
+ type: 'cancelled';
3262
+ } | {
3263
+ type: 'error';
3264
+ error: ConnectWalletFlowError;
3265
+ };
3266
+ /**
3267
+ * The client surface the flow actually depends on, kept narrow on purpose.
3268
+ *
3269
+ * Named as a structural slice rather than `Pick<CoinListClient, 'wallets'>` so
3270
+ * this feature does not import its layer's entry point: a flow takes the
3271
+ * namespaces it needs, the way `@/client/core/checkout/**` flows do.
3272
+ */
3273
+ type ConnectWalletClient = {
3274
+ wallets: WalletsNamespace;
3275
+ };
3276
+ type ConnectWalletFlowParams = {
3277
+ coinlist: ConnectWalletClient;
3278
+ /** Host-provided connected wallet the flow signs with. */
3279
+ wallet: ConnectWallet;
3280
+ offerId: OfferId;
3281
+ offerOptionId: OfferOptionId;
3282
+ /** Challenge framing; defaults to `'siwe'`. */
3283
+ challengeType?: WalletChallengeType;
3284
+ /** SIWE statement shown in the signing prompt. */
3285
+ statement?: string;
3286
+ /**
3287
+ * Polled before each irreversible step (signing, binding). Return true to
3288
+ * abandon a superseded attempt; the flow then resolves `{ type: 'cancelled' }`
3289
+ * without prompting the wallet or binding. React hooks pass a generation
3290
+ * check here; non-React callers can omit it.
3291
+ */
3292
+ isCancelled?: () => boolean;
3293
+ /** Reports flow progress for consumers rendering loading states. */
3294
+ onProgress?: (phase: ConnectWalletPhase) => void;
3295
+ };
3296
+ /**
3297
+ * Drives the external-wallet ownership flow for one offer option:
3298
+ * `createWalletOwnershipChallenge` -> host `wallet.signMessage` ->
3299
+ * `connectExternalWallet`. Pure and signer-agnostic: signing is delegated to
3300
+ * the host-provided {@link ConnectWallet}, and no React is involved so non-hook
3301
+ * consumers can drive it directly (mirrors `authorizeWallet` in `swap-flows`).
3302
+ * EVM / EOA + SIWE only for now.
3303
+ */
3304
+ declare function connectExternalWalletFlow(params: ConnectWalletFlowParams): Promise<ConnectWalletFlowResult>;
3305
+
3357
3306
  interface UseCoinListSignInCardViewModelOptions {
3358
3307
  /** `error` renders the sign-in failure banner. Defaults to `idle`. */
3359
3308
  status?: 'idle' | 'error';
@@ -4394,6 +4343,62 @@ interface UseRequirementsChecklistViewModelResult {
4394
4343
  */
4395
4344
  declare function useRequirementsChecklistViewModel(options: UseRequirementsChecklistViewModelOptions): UseRequirementsChecklistViewModelResult;
4396
4345
 
4346
+ /**
4347
+ * A display-ready connect-wallet error: the core flow's machine-readable code
4348
+ * and `retryable` flag, plus copy for the UI.
4349
+ */
4350
+ type ConnectWalletError = {
4351
+ code: ConnectWalletErrorCode;
4352
+ message: string;
4353
+ retryable: boolean;
4354
+ };
4355
+ /**
4356
+ * Signing-in-flight and the last sign error live inside the READY state (not a
4357
+ * separate top-level state) so a failed attempt returns to READY and can be
4358
+ * retried without re-opening the modal. Mirrors {@link SignState} in
4359
+ * `useTaxDocument`.
4360
+ */
4361
+ type ConnectWalletSignState = {
4362
+ type: 'idle';
4363
+ error: ConnectWalletError | null;
4364
+ } | {
4365
+ type: 'signing';
4366
+ };
4367
+ type ConnectWalletState = {
4368
+ type: 'NEEDS_WALLET';
4369
+ } | {
4370
+ type: 'READY';
4371
+ address: EvmWalletAddress;
4372
+ sign: ConnectWalletSignState;
4373
+ } | {
4374
+ type: 'CONNECTED';
4375
+ binding: OfferOptionAddress;
4376
+ };
4377
+ interface UseConnectWalletOptions {
4378
+ /** The hook resets state each time it opens. */
4379
+ isOpen: boolean;
4380
+ offerId: OfferId;
4381
+ offerOptionId: OfferOptionId;
4382
+ /** Host-provided connected wallet, or `null` while none is connected. */
4383
+ wallet: ConnectWallet | null;
4384
+ /** Challenge framing; defaults to `'siwe'`. */
4385
+ challengeType?: WalletChallengeType;
4386
+ /** SIWE statement shown in the signing prompt. */
4387
+ statement?: string;
4388
+ }
4389
+ interface UseConnectWalletResult {
4390
+ state: ConnectWalletState;
4391
+ /** READY.sign: idle -> signing -> (CONNECTED | idle w/ error). No-op otherwise. */
4392
+ onSign: () => void;
4393
+ }
4394
+ /**
4395
+ * React wrapper over {@link connectExternalWalletFlow}. Owns the modal state
4396
+ * machine, the display copy, and generation-token supersession (so a wallet
4397
+ * switch, modal close, or unmount cancels an in-flight attempt). The flow logic
4398
+ * itself lives in the framework-free core so non-React consumers can drive it.
4399
+ */
4400
+ declare function useConnectWallet({ isOpen, offerId, offerOptionId, wallet, challengeType, statement, }: UseConnectWalletOptions): UseConnectWalletResult;
4401
+
4397
4402
  type KycTokenErrorReason = 'not-authenticated' | 'generic-error';
4398
4403
  type KycTokenState = {
4399
4404
  type: 'IDLE';
@@ -4877,4 +4882,4 @@ interface UseCountdownOptions {
4877
4882
  */
4878
4883
  declare function useCountdown({ until, tickMs, enabled, }: UseCountdownOptions): number | null;
4879
4884
 
4880
- export { type AuthState, type AuthorizeWalletParams, type BroadcastTxParams, ChecklistStatus, CheckoutAssetUi, type CheckoutConfig, type CheckoutConfirmedWalletUi, CheckoutContainer, type CheckoutContainerProps, type CheckoutCtaUi, type CheckoutEmbeddedWalletUi, type CheckoutNetworkUi, type CheckoutSelectableInputAssetUi, type CheckoutStatusUi, type CheckoutWalletSelection, type CheckoutWalletTypeUi, type CheckoutWalletUi, type ClientAuthConfig, type ClientAuthNamespace, ClientAuthNamespaceImpl, type ClientAuthSession, type ClientCoinListTokenSaleNamespace, ClientCoinListTokenSaleNamespaceImpl, type ClientConfig, type ClientOndoNamespace, ClientOndoNamespaceImpl, type ClientRequirementsNamespace, ClientRequirementsNamespaceImpl, type ClientSuperstateSwapNamespace, ClientSuperstateSwapNamespaceImpl, type ClientSupportNamespace, ClientSupportNamespaceImpl, type CoinListClient, CoinListClientInitializationError, CoinListContext, CoinListContextProvider, type CoinListContextValue, CoinListProvider, type CoinListProviderProps, CoinListSignInButton, CoinListSignInCardContainer, type CoinListSignInCardContainerProps, type CoinListSignInCardUiEvent, type CoinListSignInCardUiState, CoinListSignInCardView, type CoinListSignInCardViewProps, CoinListStyleScope, type CoinListStyleScopeProps, type CoinListTokenSaleCheckoutConfig, type CompleteOAuthFailureReason, type 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, type EvmSigner, type EvmWallet, type ExecuteOndoSwapParams, type ExecuteSwapParams, type ExecuteTokenSaleParams, IdentityVerificationContainer, type IdentityVerificationContainerProps, type IdentityVerificationUiEvent, type IdentityVerificationUiState, IdentityVerificationView, type IdentityVerificationViewProps, KycLevelName, type KycTokenErrorReason, type KycTokenState, type LoadOfferDetailsReason, type LoadOfferDetailsState, type LoadOffersReason, type LoadOffersState, type LoadOndoPriceState, type LoadOndoSwapTransactionState, type LoadOndoTradingStatusState, type LoadOptionAddressesReason, type LoadOptionAddressesState, type LoadParticipationsReason, type LoadParticipationsState, type LoadRequirementsReason, type LoadRequirementsState, type LoadTokenMetadataState, OAUTH_CODE_VERIFIER_KEY, OAUTH_STATE_KEY, type OauthClientErrorReason, type OauthClientResult, OfferCard, type Props as OfferCardProps, OfferCardUi, OffersGridContainer, type OffersGridContainerProps, type OffersGridUiEvent, type OffersGridUiState, OffersGridView, type OffersGridViewProps, type OndoAmountConfirmed, type OndoAmountStepInput, type OndoAmountUiEvent, type OndoAmountUiState, type OndoAmountValidation, OndoAmountView, type OndoAmountViewProps, OndoBuyCheckoutContainer, type OndoBuyCheckoutContainerProps, type OndoBuyCheckoutUiEvent, type OndoBuyCheckoutUiState, OndoBuyCheckoutView, type OndoBuyCheckoutViewProps, type OndoBuyStep, type OndoCheckoutConfig, type OndoLoadErrorReason, OndoOrderConfirmed, type OndoOrderConfirmedProps, type OndoOrderConfirmedUiEvent, type OndoOrderConfirmedUiState, type OndoOrderPlaced, type OndoQuoteStatusUi, type OndoReviewStepInput, type OndoReviewUiEvent, type OndoReviewUiState, OndoReviewView, type OndoReviewViewProps, 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, type PrepareOndoSwapParams, 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 UseCoinListResult, type UseCoinListSignInCardViewModelOptions, type UseCoinListSignInCardViewModelResult, type UseCompleteOAuthOptions, type UseConnectWalletModalViewModelOptions, type UseConnectWalletModalViewModelResult, type UseConnectWalletOptions, type UseConnectWalletResult, type UseCountdownOptions, type UseErc20TokenBalancesOptions, type UseErc20TokenBalancesResult, type UseIdentityVerificationViewModelOptions, type UseIdentityVerificationViewModelResult, type UseKycTokenResult, type UseOfferDetailsOptions, type UseOfferDetailsResult, type UseOffersGridViewModelOptions, type UseOffersGridViewModelResult, type UseOffersOptions, type UseOffersResult, type UseOndoAmountViewModelOptions, type UseOndoAmountViewModelResult, type UseOndoBuyCheckoutViewModelOptions, type UseOndoBuyCheckoutViewModelResult, type UseOndoPriceOptions, type UseOndoPriceResult, type UseOndoReviewViewModelOptions, type UseOndoReviewViewModelResult, type UseOndoSidebarViewModelOptions, type UseOndoSidebarViewModelResult, type UseOndoSwapTransactionOptions, type UseOndoSwapTransactionResult, type UseOndoTradingStatusOptions, type UseOndoTradingStatusResult, type UseOndoWalletSelectViewModelOptions, type UseOndoWalletSelectViewModelResult, type UseOptionAddressesOptions, type UseOptionAddressesResult, type UseParticipationsOptions, type UseParticipationsResult, type UseRequirementsChecklistViewModelOptions, type UseRequirementsChecklistViewModelResult, type UseRequirementsOptions, type UseRequirementsResult, type UseSuperstateAmountViewModelOptions, type UseSuperstateAmountViewModelResult, type UseSuperstateReviewViewModelOptions, type UseSuperstateReviewViewModelResult, type UseSuperstateSidebarViewModelOptions, type UseSuperstateSidebarViewModelResult, type UseSuperstateSwapCheckoutViewModelOptions, type UseSuperstateSwapCheckoutViewModelResult, type UseSuperstateWalletViewModelOptions, type UseSuperstateWalletViewModelResult, type UseSwapOutputTokenOptions, type UseSwapOutputTokenResult, type UseSwapQuoteOptions, type UseSwapQuoteResult, type UseTaxDocumentModalViewModelOptions, type UseTaxDocumentModalViewModelResult, type UseTaxDocumentOptions, type UseTaxDocumentResult, type UseTokenMetadataOptions, type UseTokenMetadataResult, VerificationOverlay, type VerificationOverlayProps, type WalletAuthorizationError, type WalletAuthorizationPhase, type WalletAuthorizationResult, type WalletError, type WalletsStatus, type WriteContractParams, authorizeWallet, classifyWalletError, connectExternalWalletFlow, createCoinListClient, defaultCheckoutConfig, ensureErc20Allowance, executeOndoSwap, executeSwap, executeTokenSale, formatCountdown, formatMonthYear, offerIconUrl, ondoLoadErrorReason, prepareOndoSwap, quoteIsStale, quoteOverAsks, stablecoinIconUrl, submitErc20Approval, useCoinList, useCoinListSignInCardViewModel, useCompleteOAuth, useConnectWallet, useConnectWalletModalViewModel, useCountdown, useErc20TokenBalances, useIdentityVerificationViewModel, useKycToken, useOfferDetails, useOffers, useOffersGridViewModel, useOndoAmountViewModel, useOndoBuyCheckoutViewModel, useOndoPrice, useOndoReviewViewModel, useOndoSidebarViewModel, useOndoSwapTransaction, useOndoTradingStatus, useOndoWalletSelectViewModel, useOptionAddresses, useParticipations, useRequirements, useRequirementsChecklistViewModel, useSuperstateAmountViewModel, useSuperstateReviewViewModel, useSuperstateSidebarViewModel, useSuperstateSwapCheckoutViewModel, useSuperstateWalletViewModel, useSwapOutputToken, useSwapQuote, useTaxDocument, useTaxDocumentModalViewModel, useTokenMetadata, validateAmount, validateSuperstateAmount };
4885
+ export { type AuthState, type AuthorizeWalletParams, ChecklistStatus, CheckoutAssetUi, type CheckoutConfig, type CheckoutConfirmedWalletUi, CheckoutContainer, type CheckoutContainerProps, type CheckoutCtaUi, type CheckoutEmbeddedWalletUi, type CheckoutNetworkUi, type CheckoutSelectableInputAssetUi, type CheckoutStatusUi, type CheckoutWalletSelection, type CheckoutWalletTypeUi, type CheckoutWalletUi, type ClientAuthConfig, type ClientAuthNamespace, ClientAuthNamespaceImpl, type ClientAuthSession, type ClientCoinListTokenSaleNamespace, ClientCoinListTokenSaleNamespaceImpl, type ClientConfig, type ClientOndoNamespace, ClientOndoNamespaceImpl, type ClientRequirementsNamespace, ClientRequirementsNamespaceImpl, type ClientSuperstateSwapNamespace, ClientSuperstateSwapNamespaceImpl, type ClientSupportNamespace, ClientSupportNamespaceImpl, type CoinListClient, CoinListClientInitializationError, CoinListContext, CoinListContextProvider, type CoinListContextValue, CoinListProvider, type CoinListProviderProps, CoinListSignInButton, CoinListSignInCardContainer, type CoinListSignInCardContainerProps, type CoinListSignInCardUiEvent, type CoinListSignInCardUiState, CoinListSignInCardView, type CoinListSignInCardViewProps, CoinListStyleScope, type CoinListStyleScopeProps, type CoinListTokenSaleCheckoutConfig, type CompleteOAuthFailureReason, ConnectWallet, type ConnectWalletError, type ConnectWalletErrorCode, type ConnectWalletFlowError, type ConnectWalletFlowParams, type ConnectWalletFlowResult, ConnectWalletModalContainer, type ConnectWalletModalContainerProps, type ConnectWalletModalUiEvent, type ConnectWalletModalUiState, ConnectWalletModalView, type ConnectWalletModalViewProps, type ConnectWalletPhase, type ConnectWalletScreenUi, type ConnectWalletSignState, type ConnectWalletState, ConnectedWalletList, type ConnectedWalletListProps, type ConnectedWalletUi, ERC20_BALANCE_POLL_INTERVAL_MS, type Erc20AllowanceError, type Erc20AllowancePhase, type Erc20AllowanceResult, type Erc20ApprovalError, EvmWallet, type ExecuteOndoSwapParams, type ExecuteSwapParams, type ExecuteTokenSaleParams, IdentityVerificationContainer, type IdentityVerificationContainerProps, type IdentityVerificationUiEvent, type IdentityVerificationUiState, IdentityVerificationView, type IdentityVerificationViewProps, KycLevelName, type KycTokenErrorReason, type KycTokenState, type LoadOfferDetailsReason, type LoadOfferDetailsState, type LoadOffersReason, type LoadOffersState, type LoadOndoPriceState, type LoadOndoSwapTransactionState, type LoadOndoTradingStatusState, type LoadOptionAddressesReason, type LoadOptionAddressesState, type LoadParticipationsReason, type LoadParticipationsState, type LoadRequirementsReason, type LoadRequirementsState, type LoadTokenMetadataState, Logger, OAUTH_CODE_VERIFIER_KEY, OAUTH_STATE_KEY, type OauthClientErrorReason, type OauthClientResult, OfferCard, type Props as OfferCardProps, OfferCardUi, OffersGridContainer, type OffersGridContainerProps, type OffersGridUiEvent, type OffersGridUiState, OffersGridView, type OffersGridViewProps, type OndoAmountConfirmed, type OndoAmountStepInput, type OndoAmountUiEvent, type OndoAmountUiState, type OndoAmountValidation, OndoAmountView, type OndoAmountViewProps, OndoBuyCheckoutContainer, type OndoBuyCheckoutContainerProps, type OndoBuyCheckoutUiEvent, type OndoBuyCheckoutUiState, OndoBuyCheckoutView, type OndoBuyCheckoutViewProps, type OndoBuyStep, type OndoCheckoutConfig, type OndoLoadErrorReason, OndoOrderConfirmed, type OndoOrderConfirmedProps, type OndoOrderConfirmedUiEvent, type OndoOrderConfirmedUiState, type OndoOrderPlaced, type OndoQuoteStatusUi, type OndoReviewStepInput, type OndoReviewUiEvent, type OndoReviewUiState, OndoReviewView, type OndoReviewViewProps, 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 PrepareOndoSwapParams, 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 UseCoinListResult, type UseCoinListSignInCardViewModelOptions, type UseCoinListSignInCardViewModelResult, type UseCompleteOAuthOptions, type UseConnectWalletModalViewModelOptions, type UseConnectWalletModalViewModelResult, type UseConnectWalletOptions, type UseConnectWalletResult, type UseCountdownOptions, type UseErc20TokenBalancesOptions, type UseErc20TokenBalancesResult, type UseIdentityVerificationViewModelOptions, type UseIdentityVerificationViewModelResult, type UseKycTokenResult, type UseOfferDetailsOptions, type UseOfferDetailsResult, type UseOffersGridViewModelOptions, type UseOffersGridViewModelResult, type UseOffersOptions, type UseOffersResult, type UseOndoAmountViewModelOptions, type UseOndoAmountViewModelResult, type UseOndoBuyCheckoutViewModelOptions, type UseOndoBuyCheckoutViewModelResult, type UseOndoPriceOptions, type UseOndoPriceResult, type UseOndoReviewViewModelOptions, type UseOndoReviewViewModelResult, type UseOndoSidebarViewModelOptions, type UseOndoSidebarViewModelResult, type UseOndoSwapTransactionOptions, type UseOndoSwapTransactionResult, type UseOndoTradingStatusOptions, type UseOndoTradingStatusResult, type UseOndoWalletSelectViewModelOptions, type UseOndoWalletSelectViewModelResult, type UseOptionAddressesOptions, type UseOptionAddressesResult, type UseParticipationsOptions, type UseParticipationsResult, type UseRequirementsChecklistViewModelOptions, type UseRequirementsChecklistViewModelResult, type UseRequirementsOptions, type UseRequirementsResult, type UseSuperstateAmountViewModelOptions, type UseSuperstateAmountViewModelResult, type UseSuperstateReviewViewModelOptions, type UseSuperstateReviewViewModelResult, type UseSuperstateSidebarViewModelOptions, type UseSuperstateSidebarViewModelResult, type UseSuperstateSwapCheckoutViewModelOptions, type UseSuperstateSwapCheckoutViewModelResult, type UseSuperstateWalletViewModelOptions, type UseSuperstateWalletViewModelResult, type UseSwapOutputTokenOptions, type UseSwapOutputTokenResult, type UseSwapQuoteOptions, type UseSwapQuoteResult, type UseTaxDocumentModalViewModelOptions, type UseTaxDocumentModalViewModelResult, type UseTaxDocumentOptions, type UseTaxDocumentResult, type UseTokenMetadataOptions, type UseTokenMetadataResult, VerificationOverlay, type VerificationOverlayProps, type WalletAuthorizationError, type WalletAuthorizationPhase, type WalletAuthorizationResult, WalletError, type WalletsStatus, authorizeWallet, classifyWalletError, connectExternalWalletFlow, createCoinListClient, defaultCheckoutConfig, ensureErc20Allowance, executeOndoSwap, executeSwap, executeTokenSale, formatCountdown, formatMonthYear, offerIconUrl, ondoLoadErrorReason, pinoClientLogger, prepareOndoSwap, quoteIsStale, quoteOverAsks, stablecoinIconUrl, submitErc20Approval, useCoinList, useCoinListSignInCardViewModel, useCompleteOAuth, useConnectWallet, useConnectWalletModalViewModel, useCountdown, useErc20TokenBalances, useIdentityVerificationViewModel, useKycToken, useOfferDetails, useOffers, useOffersGridViewModel, useOndoAmountViewModel, useOndoBuyCheckoutViewModel, useOndoPrice, useOndoReviewViewModel, useOndoSidebarViewModel, useOndoSwapTransaction, useOndoTradingStatus, useOndoWalletSelectViewModel, useOptionAddresses, useParticipations, useRequirements, useRequirementsChecklistViewModel, useSuperstateAmountViewModel, useSuperstateReviewViewModel, useSuperstateSidebarViewModel, useSuperstateSwapCheckoutViewModel, useSuperstateWalletViewModel, useSwapOutputToken, useSwapQuote, useTaxDocument, useTaxDocumentModalViewModel, useTokenMetadata, validateAmount, validateSuperstateAmount };