@unifold/connect-react-native 0.1.51 → 0.1.53
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 +6 -7
- package/dist/index.d.mts +49 -31
- package/dist/index.d.ts +49 -31
- package/dist/index.js +110 -5
- package/dist/index.mjs +110 -5
- package/package.json +2 -3
package/README.md
CHANGED
|
@@ -36,7 +36,7 @@ Link Pay uses `@stripe/stripe-react-native`, which includes **native** code (App
|
|
|
36
36
|
|
|
37
37
|
Importing `@unifold/connect-react-native` loads the Stripe UI registration in the same JS bundle as the provider. Ensure the peer dependencies in **Installation** above are installed so Metro does not duplicate native modules.
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
The Apple Pay **`merchantIdentifier`** in `app.json` is still required for the **native entitlement** at build time. The value used at runtime for `initStripe`, however, comes **only** from the Unifold dashboard (via the Stripe config endpoint) — the SDK no longer reads it from a prop or `app.json`, so make sure the dashboard value matches the id compiled into your build.
|
|
40
40
|
|
|
41
41
|
#### Expo Go vs development build vs prebuild
|
|
42
42
|
|
|
@@ -50,7 +50,7 @@ Importing `@unifold/connect-react-native` loads the Stripe UI registration in th
|
|
|
50
50
|
1. **Peer dependencies** — Install everything in **Installation** (or `expo install …`). Missing peers often show up as duplicate native modules or Metro resolution errors.
|
|
51
51
|
2. **`react-native-gesture-handler`** — In bare React Native, import it at the **entry file** first (see [React Navigation](https://reactnavigation.org/docs/getting-started/#installing-dependencies-into-a-bare-react-native-project)); Expo Router projects usually already satisfy this.
|
|
52
52
|
3. **`UnifoldProvider` placement** — Wrap near the root so `beginDeposit` and theme context are available app-wide. Call `setDevApiUrl` **before** the provider if you use staging in development (see example app).
|
|
53
|
-
4. **Stripe Link Pay** — Requires a **development / EAS build** on Expo (not Expo Go), the Stripe **config plugin** in `app.json`, and `config.
|
|
53
|
+
4. **Stripe Link Pay** — Requires a **development / EAS build** on Expo (not Expo Go), the Stripe **config plugin** in `app.json`, and `config.enableStripeLink: true`. Apple Pay's `merchantIdentifier` must be set in the `app.json` plugin (native entitlement); the runtime value is sourced from the Unifold dashboard (Stripe config endpoint), so keep the two in sync.
|
|
54
54
|
5. **Theme** — `UnifoldProvider` applies `ThemeProvider` to **all** children. If you use another theme system, nest it inside or outside deliberately so `useTheme` resolves as you expect.
|
|
55
55
|
|
|
56
56
|
## Quick Start
|
|
@@ -192,8 +192,9 @@ await beginDeposit({
|
|
|
192
192
|
| `config.fonts` | `FontConfig` | No | Granular font weight configuration |
|
|
193
193
|
| `config.components` | `ComponentConfig` | No | Component-specific token overrides |
|
|
194
194
|
| `config.sheetBorderRadius` | `SheetBorderRadius` | No | Border radius configuration for all bottom sheets (see below) |
|
|
195
|
-
| `config.
|
|
196
|
-
|
|
195
|
+
| `config.enableStripeLink` | `boolean` | No | Show Pay with Link (Stripe) in the deposit menu (default: omit / falsy hides it). Stripe is bundled with Connect. |
|
|
196
|
+
|
|
197
|
+
> **Apple Pay merchant id:** there is no longer an SDK config for this. The runtime value comes solely from the Unifold dashboard (Stripe config endpoint). Keep it in sync with the `merchantIdentifier` in your `app.json` Stripe plugin, which is still required for the native entitlement.
|
|
197
198
|
|
|
198
199
|
### SheetBorderRadius
|
|
199
200
|
|
|
@@ -251,8 +252,7 @@ const { beginDeposit, closeDeposit, publishableKey } = useUnifold();
|
|
|
251
252
|
| `destinationTokenAddress` | `string` | No | Target token contract address |
|
|
252
253
|
| `destinationTokenSymbol` | `string` | No | Target token symbol (e.g., `'USDC'`) |
|
|
253
254
|
| `recipientAddress` | `string` | No | Wallet address to receive funds |
|
|
254
|
-
| `
|
|
255
|
-
| `stripeOnrampPhone` | `string` | No | Pre-fills Stripe Link Pay phone (use with `stripeOnrampEmail` per Stripe’s flow) |
|
|
255
|
+
| `user` | `{ email?: string; phone?: string }` | No | Host-app-supplied user identity. Pre-fills supported flows — currently Stripe Link Pay uses `user.email` / `user.phone` (with both set, Stripe may skip verify steps). |
|
|
256
256
|
| `defaultChainType` | `'ethereum' \| 'solana' \| 'bitcoin'` | No | Pre-select source network type |
|
|
257
257
|
| `defaultChainId` | `string` | No | Pre-select source chain ID |
|
|
258
258
|
| `defaultTokenAddress` | `string` | No | Pre-select source token address |
|
|
@@ -308,7 +308,6 @@ import type {
|
|
|
308
308
|
| react-native-gesture-handler | >= 2.14.0 |
|
|
309
309
|
| react-native-svg | >= 13.0.0 |
|
|
310
310
|
| react-native-webview | >= 13.0.0 |
|
|
311
|
-
| expo-constants | Installed with Connect (>= 14) — mirrors `merchantIdentifier` from the Stripe Expo plugin into JS; optional override via `config.stripeMerchantIdentifier` |
|
|
312
311
|
|
|
313
312
|
## Support
|
|
314
313
|
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React$1, { ReactNode } from 'react';
|
|
2
|
-
export { AmountScreen, CreateSessionParams, CustomerVerification, KYCData, KYCWizardScreen, OnrampConfig, OnrampCustomer, OnrampError, OnrampErrorCode, OnrampScreen, OnrampSession, OnrampSessionTransactionDetails, OnrampStep, OnrampTransaction, StripeOnramp, StripeOnrampHook, StripeOnrampPreconfigure, StripeOnrampProps, getStripePublishableKey, setStripeOnrampApiUrl, setStripeOnrampPublishableKey, useStripeOnramp } from '@unifold/ui-react-native/stripe';
|
|
2
|
+
export { AmountScreen, CreateSessionParams, CustomerVerification, KYCData, KYCWizardScreen, OnrampConfig, OnrampCustomer, OnrampError, OnrampErrorCode, OnrampScreen, OnrampSession, OnrampSessionTransactionDetails, OnrampStep, OnrampTransaction, StripeOnramp, StripeOnrampConfig, StripeOnrampHook, StripeOnrampPreconfigure, StripeOnrampProps, getStripeConfig, getStripePublishableKey, setStripeOnrampApiUrl, setStripeOnrampPublishableKey, useStripeOnramp } from '@unifold/ui-react-native/stripe';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Unifold color palette for React Native
|
|
@@ -362,6 +362,21 @@ interface SupportedDestinationTokensResponse {
|
|
|
362
362
|
*/
|
|
363
363
|
declare function getSupportedDestinationTokens(publishableKey?: string): Promise<SupportedDestinationTokensResponse>;
|
|
364
364
|
|
|
365
|
+
/**
|
|
366
|
+
* Host-app-supplied user identity, shared across deposit flows. An object (not a
|
|
367
|
+
* bare string) so more fields can be added later without churning the public API.
|
|
368
|
+
* - Coinbase Apple Pay: a valid `email` skips the email-entry/OTP steps (the user
|
|
369
|
+
* only verifies their phone; Coinbase's 60-day phone-freshness rule still applies).
|
|
370
|
+
* - Stripe Link Pay: `email`/`phone` pre-fill; with both set, Stripe may skip its
|
|
371
|
+
* verify steps.
|
|
372
|
+
*/
|
|
373
|
+
interface UnifoldUser {
|
|
374
|
+
/** Host-trusted email. Coinbase skips its email steps when set & valid; Stripe pre-fills. */
|
|
375
|
+
email?: string;
|
|
376
|
+
/** User phone (Stripe Link pre-fill; with `email`, Stripe may skip verify steps). */
|
|
377
|
+
phone?: string;
|
|
378
|
+
}
|
|
379
|
+
|
|
365
380
|
interface BorderRadiusConfig {
|
|
366
381
|
borderTopLeftRadius?: number;
|
|
367
382
|
borderTopRightRadius?: number;
|
|
@@ -405,7 +420,7 @@ type TransferInputVariant = "single_input" | "double_input" | "compact";
|
|
|
405
420
|
*/
|
|
406
421
|
type DepositMenuDisplay = "stacked" | "tabs";
|
|
407
422
|
/** Controls which screen opens first when the deposit modal is shown */
|
|
408
|
-
type DepositInitialScreen = "main" | "transfer" | "card" | "tracker" | "cashapp" | "wallet";
|
|
423
|
+
type DepositInitialScreen = "main" | "transfer" | "card" | "tracker" | "cashapp" | "wallet" | "applepay";
|
|
409
424
|
interface DepositModalProps {
|
|
410
425
|
/** Whether the modal is visible */
|
|
411
426
|
visible: boolean;
|
|
@@ -420,6 +435,12 @@ interface DepositModalProps {
|
|
|
420
435
|
publishableKey: string;
|
|
421
436
|
/** Custom modal title */
|
|
422
437
|
modalTitle?: string;
|
|
438
|
+
/**
|
|
439
|
+
* Host-app-supplied user identity, set via `beginDeposit({ user })`. Consumed by:
|
|
440
|
+
* - Coinbase Apple Pay — a valid `user.email` skips the email-entry/OTP steps.
|
|
441
|
+
* - Stripe Link Pay — `user.email` / `user.phone` pre-fill (both may skip verify steps).
|
|
442
|
+
*/
|
|
443
|
+
user?: UnifoldUser;
|
|
423
444
|
/** Target token symbol (e.g., "USDC") */
|
|
424
445
|
destinationTokenSymbol?: string;
|
|
425
446
|
/** Recipient wallet address */
|
|
@@ -446,22 +467,14 @@ interface DepositModalProps {
|
|
|
446
467
|
enableCashApp?: boolean;
|
|
447
468
|
/** Enable "Connect Wallet" option. Overrides dashboard default. Resolves as flag ?? dashboard value ?? false. */
|
|
448
469
|
enableConnectWallet?: boolean;
|
|
470
|
+
/** Enable "Pay with Apple Pay" (Coinbase headless onramp) option. Overrides dashboard default. Resolves as flag ?? dashboard value ?? false. */
|
|
471
|
+
enableCoinbaseApplePay?: boolean;
|
|
449
472
|
/** Enable "Deposit with Card" (fiat on-ramp) option. Overrides dashboard default. Resolves as flag ?? dashboard value ?? true. */
|
|
450
473
|
enableFiatOnramp?: boolean;
|
|
451
474
|
/** Show "Pay with Link" (Stripe) option in the deposit menu */
|
|
452
|
-
|
|
453
|
-
/** Registered Stripe onramp component (Connect sets this from `
|
|
475
|
+
enableStripeLink?: boolean;
|
|
476
|
+
/** Registered Stripe onramp component (Connect sets this from `enableStripeLink`) */
|
|
454
477
|
StripeOnrampComponent?: React$1.ComponentType<any>;
|
|
455
|
-
/** Pre-fills Stripe Link Pay email — set via `beginDeposit({ stripeOnrampEmail })` (forwarded as `email` on `StripeOnramp`) */
|
|
456
|
-
stripeOnrampEmail?: string;
|
|
457
|
-
/** Pre-fills Stripe Link Pay phone — set via `beginDeposit({ stripeOnrampPhone })` (forwarded as `phone` on `StripeOnramp`) */
|
|
458
|
-
stripeOnrampPhone?: string;
|
|
459
|
-
/**
|
|
460
|
-
* Apple Pay merchant id for Stripe Link Pay. Forwarded to `StripeOnramp` as `merchantIdentifier`.
|
|
461
|
-
* On Expo, you can omit this if the same value is set on the `@stripe/stripe-react-native` plugin
|
|
462
|
-
* in app.json (the UI reads it via `expo-constants`).
|
|
463
|
-
*/
|
|
464
|
-
stripeMerchantIdentifier?: string;
|
|
465
478
|
/** Where to render the Stripe payment method selector: "header" or "inline". Default: "header" */
|
|
466
479
|
stripePaymentSelectorPosition?: "header" | "inline";
|
|
467
480
|
/** Skip the success confirmation screen and fire onComplete immediately. Default: false */
|
|
@@ -529,9 +542,11 @@ interface DepositModalProps {
|
|
|
529
542
|
/** Price impact & slippage info sheet */
|
|
530
543
|
infoSheet?: BorderRadiusConfig;
|
|
531
544
|
/** Stripe Link Pay sheet */
|
|
532
|
-
|
|
545
|
+
stripeLink?: BorderRadiusConfig;
|
|
533
546
|
/** Cash App sheet */
|
|
534
547
|
cashApp?: BorderRadiusConfig;
|
|
548
|
+
/** Coinbase Apple Pay sheet */
|
|
549
|
+
coinbaseApplePay?: BorderRadiusConfig;
|
|
535
550
|
/** Connect Wallet sheet */
|
|
536
551
|
connectWallet?: BorderRadiusConfig;
|
|
537
552
|
/** WebView sheet (inside buy with card) */
|
|
@@ -636,26 +651,24 @@ interface UnifoldConnectProviderConfig {
|
|
|
636
651
|
* Show "Pay with Link" (Stripe) option in the deposit menu.
|
|
637
652
|
* Stripe onramp is bundled with Connect; set to false to hide the option.
|
|
638
653
|
*/
|
|
639
|
-
|
|
654
|
+
enableStripeLink?: boolean;
|
|
640
655
|
/** Enable "Transfer Crypto" option. Overrides dashboard default. Resolves as flag ?? dashboard value ?? true. */
|
|
641
656
|
enableTransferCrypto?: boolean;
|
|
642
657
|
/** Enable "Pay with Cash App" option. Overrides dashboard default. Resolves as flag ?? dashboard value ?? false. */
|
|
643
658
|
enableCashApp?: boolean;
|
|
644
659
|
/** Enable "Connect Wallet" option. Overrides dashboard default. Resolves as flag ?? dashboard value ?? false. */
|
|
645
660
|
enableConnectWallet?: boolean;
|
|
661
|
+
/** Enable "Pay with Apple Pay" (Coinbase headless onramp) option. Overrides dashboard default. Resolves as flag ?? dashboard value ?? false. */
|
|
662
|
+
enableCoinbaseApplePay?: boolean;
|
|
646
663
|
/** Enable "Deposit with Card" (fiat on-ramp) option. Overrides dashboard default. Resolves as flag ?? dashboard value ?? true. */
|
|
647
664
|
enableFiatOnramp?: boolean;
|
|
648
|
-
/**
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
/** Where to render the Stripe payment method selector: "header" (above amount) or "inline" (below). Default: "header" */
|
|
656
|
-
stripePaymentSelectorPosition?: "header" | "inline";
|
|
657
|
-
/** Skip the success confirmation screen and fire onComplete immediately. Default: false */
|
|
658
|
-
stripeSkipSuccessConfirmation?: boolean;
|
|
665
|
+
/** Stripe Link Pay tuning options (only applies when `enableStripeLink` is true). */
|
|
666
|
+
stripeLink?: {
|
|
667
|
+
/** Where to render the Stripe payment method selector: "header" (above amount) or "inline" (below). Default: "header" */
|
|
668
|
+
paymentSelectorPosition?: "header" | "inline";
|
|
669
|
+
/** Skip the success confirmation screen and fire onComplete immediately. Default: false */
|
|
670
|
+
skipSuccessConfirmation?: boolean;
|
|
671
|
+
};
|
|
659
672
|
};
|
|
660
673
|
}
|
|
661
674
|
interface DepositResult {
|
|
@@ -679,10 +692,15 @@ interface DepositConfig {
|
|
|
679
692
|
defaultChainId?: string;
|
|
680
693
|
defaultTokenAddress?: string;
|
|
681
694
|
showBalance?: boolean;
|
|
682
|
-
/**
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
695
|
+
/**
|
|
696
|
+
* Host-app-supplied user identity (`beginDeposit` only — not provider config).
|
|
697
|
+
* Pre-fills supported flows and is kept as an object so more fields can be
|
|
698
|
+
* added later without new top-level params. Consumed by:
|
|
699
|
+
* - Coinbase Apple Pay — a valid `user.email` skips the email-entry/OTP steps.
|
|
700
|
+
* - Stripe Link Pay — `user.email` / `user.phone` (with both set, Stripe may
|
|
701
|
+
* skip verify steps).
|
|
702
|
+
*/
|
|
703
|
+
user?: UnifoldUser;
|
|
686
704
|
/**
|
|
687
705
|
* How deposit confirmation and waiting behavior is handled.
|
|
688
706
|
* - auto_ui (default): Automatically show "Processing deposit" UI and start polling after 10s. No "I've deposited" button.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React$1, { ReactNode } from 'react';
|
|
2
|
-
export { AmountScreen, CreateSessionParams, CustomerVerification, KYCData, KYCWizardScreen, OnrampConfig, OnrampCustomer, OnrampError, OnrampErrorCode, OnrampScreen, OnrampSession, OnrampSessionTransactionDetails, OnrampStep, OnrampTransaction, StripeOnramp, StripeOnrampHook, StripeOnrampPreconfigure, StripeOnrampProps, getStripePublishableKey, setStripeOnrampApiUrl, setStripeOnrampPublishableKey, useStripeOnramp } from '@unifold/ui-react-native/stripe';
|
|
2
|
+
export { AmountScreen, CreateSessionParams, CustomerVerification, KYCData, KYCWizardScreen, OnrampConfig, OnrampCustomer, OnrampError, OnrampErrorCode, OnrampScreen, OnrampSession, OnrampSessionTransactionDetails, OnrampStep, OnrampTransaction, StripeOnramp, StripeOnrampConfig, StripeOnrampHook, StripeOnrampPreconfigure, StripeOnrampProps, getStripeConfig, getStripePublishableKey, setStripeOnrampApiUrl, setStripeOnrampPublishableKey, useStripeOnramp } from '@unifold/ui-react-native/stripe';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Unifold color palette for React Native
|
|
@@ -362,6 +362,21 @@ interface SupportedDestinationTokensResponse {
|
|
|
362
362
|
*/
|
|
363
363
|
declare function getSupportedDestinationTokens(publishableKey?: string): Promise<SupportedDestinationTokensResponse>;
|
|
364
364
|
|
|
365
|
+
/**
|
|
366
|
+
* Host-app-supplied user identity, shared across deposit flows. An object (not a
|
|
367
|
+
* bare string) so more fields can be added later without churning the public API.
|
|
368
|
+
* - Coinbase Apple Pay: a valid `email` skips the email-entry/OTP steps (the user
|
|
369
|
+
* only verifies their phone; Coinbase's 60-day phone-freshness rule still applies).
|
|
370
|
+
* - Stripe Link Pay: `email`/`phone` pre-fill; with both set, Stripe may skip its
|
|
371
|
+
* verify steps.
|
|
372
|
+
*/
|
|
373
|
+
interface UnifoldUser {
|
|
374
|
+
/** Host-trusted email. Coinbase skips its email steps when set & valid; Stripe pre-fills. */
|
|
375
|
+
email?: string;
|
|
376
|
+
/** User phone (Stripe Link pre-fill; with `email`, Stripe may skip verify steps). */
|
|
377
|
+
phone?: string;
|
|
378
|
+
}
|
|
379
|
+
|
|
365
380
|
interface BorderRadiusConfig {
|
|
366
381
|
borderTopLeftRadius?: number;
|
|
367
382
|
borderTopRightRadius?: number;
|
|
@@ -405,7 +420,7 @@ type TransferInputVariant = "single_input" | "double_input" | "compact";
|
|
|
405
420
|
*/
|
|
406
421
|
type DepositMenuDisplay = "stacked" | "tabs";
|
|
407
422
|
/** Controls which screen opens first when the deposit modal is shown */
|
|
408
|
-
type DepositInitialScreen = "main" | "transfer" | "card" | "tracker" | "cashapp" | "wallet";
|
|
423
|
+
type DepositInitialScreen = "main" | "transfer" | "card" | "tracker" | "cashapp" | "wallet" | "applepay";
|
|
409
424
|
interface DepositModalProps {
|
|
410
425
|
/** Whether the modal is visible */
|
|
411
426
|
visible: boolean;
|
|
@@ -420,6 +435,12 @@ interface DepositModalProps {
|
|
|
420
435
|
publishableKey: string;
|
|
421
436
|
/** Custom modal title */
|
|
422
437
|
modalTitle?: string;
|
|
438
|
+
/**
|
|
439
|
+
* Host-app-supplied user identity, set via `beginDeposit({ user })`. Consumed by:
|
|
440
|
+
* - Coinbase Apple Pay — a valid `user.email` skips the email-entry/OTP steps.
|
|
441
|
+
* - Stripe Link Pay — `user.email` / `user.phone` pre-fill (both may skip verify steps).
|
|
442
|
+
*/
|
|
443
|
+
user?: UnifoldUser;
|
|
423
444
|
/** Target token symbol (e.g., "USDC") */
|
|
424
445
|
destinationTokenSymbol?: string;
|
|
425
446
|
/** Recipient wallet address */
|
|
@@ -446,22 +467,14 @@ interface DepositModalProps {
|
|
|
446
467
|
enableCashApp?: boolean;
|
|
447
468
|
/** Enable "Connect Wallet" option. Overrides dashboard default. Resolves as flag ?? dashboard value ?? false. */
|
|
448
469
|
enableConnectWallet?: boolean;
|
|
470
|
+
/** Enable "Pay with Apple Pay" (Coinbase headless onramp) option. Overrides dashboard default. Resolves as flag ?? dashboard value ?? false. */
|
|
471
|
+
enableCoinbaseApplePay?: boolean;
|
|
449
472
|
/** Enable "Deposit with Card" (fiat on-ramp) option. Overrides dashboard default. Resolves as flag ?? dashboard value ?? true. */
|
|
450
473
|
enableFiatOnramp?: boolean;
|
|
451
474
|
/** Show "Pay with Link" (Stripe) option in the deposit menu */
|
|
452
|
-
|
|
453
|
-
/** Registered Stripe onramp component (Connect sets this from `
|
|
475
|
+
enableStripeLink?: boolean;
|
|
476
|
+
/** Registered Stripe onramp component (Connect sets this from `enableStripeLink`) */
|
|
454
477
|
StripeOnrampComponent?: React$1.ComponentType<any>;
|
|
455
|
-
/** Pre-fills Stripe Link Pay email — set via `beginDeposit({ stripeOnrampEmail })` (forwarded as `email` on `StripeOnramp`) */
|
|
456
|
-
stripeOnrampEmail?: string;
|
|
457
|
-
/** Pre-fills Stripe Link Pay phone — set via `beginDeposit({ stripeOnrampPhone })` (forwarded as `phone` on `StripeOnramp`) */
|
|
458
|
-
stripeOnrampPhone?: string;
|
|
459
|
-
/**
|
|
460
|
-
* Apple Pay merchant id for Stripe Link Pay. Forwarded to `StripeOnramp` as `merchantIdentifier`.
|
|
461
|
-
* On Expo, you can omit this if the same value is set on the `@stripe/stripe-react-native` plugin
|
|
462
|
-
* in app.json (the UI reads it via `expo-constants`).
|
|
463
|
-
*/
|
|
464
|
-
stripeMerchantIdentifier?: string;
|
|
465
478
|
/** Where to render the Stripe payment method selector: "header" or "inline". Default: "header" */
|
|
466
479
|
stripePaymentSelectorPosition?: "header" | "inline";
|
|
467
480
|
/** Skip the success confirmation screen and fire onComplete immediately. Default: false */
|
|
@@ -529,9 +542,11 @@ interface DepositModalProps {
|
|
|
529
542
|
/** Price impact & slippage info sheet */
|
|
530
543
|
infoSheet?: BorderRadiusConfig;
|
|
531
544
|
/** Stripe Link Pay sheet */
|
|
532
|
-
|
|
545
|
+
stripeLink?: BorderRadiusConfig;
|
|
533
546
|
/** Cash App sheet */
|
|
534
547
|
cashApp?: BorderRadiusConfig;
|
|
548
|
+
/** Coinbase Apple Pay sheet */
|
|
549
|
+
coinbaseApplePay?: BorderRadiusConfig;
|
|
535
550
|
/** Connect Wallet sheet */
|
|
536
551
|
connectWallet?: BorderRadiusConfig;
|
|
537
552
|
/** WebView sheet (inside buy with card) */
|
|
@@ -636,26 +651,24 @@ interface UnifoldConnectProviderConfig {
|
|
|
636
651
|
* Show "Pay with Link" (Stripe) option in the deposit menu.
|
|
637
652
|
* Stripe onramp is bundled with Connect; set to false to hide the option.
|
|
638
653
|
*/
|
|
639
|
-
|
|
654
|
+
enableStripeLink?: boolean;
|
|
640
655
|
/** Enable "Transfer Crypto" option. Overrides dashboard default. Resolves as flag ?? dashboard value ?? true. */
|
|
641
656
|
enableTransferCrypto?: boolean;
|
|
642
657
|
/** Enable "Pay with Cash App" option. Overrides dashboard default. Resolves as flag ?? dashboard value ?? false. */
|
|
643
658
|
enableCashApp?: boolean;
|
|
644
659
|
/** Enable "Connect Wallet" option. Overrides dashboard default. Resolves as flag ?? dashboard value ?? false. */
|
|
645
660
|
enableConnectWallet?: boolean;
|
|
661
|
+
/** Enable "Pay with Apple Pay" (Coinbase headless onramp) option. Overrides dashboard default. Resolves as flag ?? dashboard value ?? false. */
|
|
662
|
+
enableCoinbaseApplePay?: boolean;
|
|
646
663
|
/** Enable "Deposit with Card" (fiat on-ramp) option. Overrides dashboard default. Resolves as flag ?? dashboard value ?? true. */
|
|
647
664
|
enableFiatOnramp?: boolean;
|
|
648
|
-
/**
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
/** Where to render the Stripe payment method selector: "header" (above amount) or "inline" (below). Default: "header" */
|
|
656
|
-
stripePaymentSelectorPosition?: "header" | "inline";
|
|
657
|
-
/** Skip the success confirmation screen and fire onComplete immediately. Default: false */
|
|
658
|
-
stripeSkipSuccessConfirmation?: boolean;
|
|
665
|
+
/** Stripe Link Pay tuning options (only applies when `enableStripeLink` is true). */
|
|
666
|
+
stripeLink?: {
|
|
667
|
+
/** Where to render the Stripe payment method selector: "header" (above amount) or "inline" (below). Default: "header" */
|
|
668
|
+
paymentSelectorPosition?: "header" | "inline";
|
|
669
|
+
/** Skip the success confirmation screen and fire onComplete immediately. Default: false */
|
|
670
|
+
skipSuccessConfirmation?: boolean;
|
|
671
|
+
};
|
|
659
672
|
};
|
|
660
673
|
}
|
|
661
674
|
interface DepositResult {
|
|
@@ -679,10 +692,15 @@ interface DepositConfig {
|
|
|
679
692
|
defaultChainId?: string;
|
|
680
693
|
defaultTokenAddress?: string;
|
|
681
694
|
showBalance?: boolean;
|
|
682
|
-
/**
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
695
|
+
/**
|
|
696
|
+
* Host-app-supplied user identity (`beginDeposit` only — not provider config).
|
|
697
|
+
* Pre-fills supported flows and is kept as an object so more fields can be
|
|
698
|
+
* added later without new top-level params. Consumed by:
|
|
699
|
+
* - Coinbase Apple Pay — a valid `user.email` skips the email-entry/OTP steps.
|
|
700
|
+
* - Stripe Link Pay — `user.email` / `user.phone` (with both set, Stripe may
|
|
701
|
+
* skip verify steps).
|
|
702
|
+
*/
|
|
703
|
+
user?: UnifoldUser;
|
|
686
704
|
/**
|
|
687
705
|
* How deposit confirmation and waiting behavior is handled.
|
|
688
706
|
* - auto_ui (default): Automatically show "Processing deposit" UI and start polling after 10s. No "I've deposited" button.
|