@swype-org/react-sdk 0.1.227 → 0.1.229

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/dist/index.d.cts CHANGED
@@ -446,11 +446,16 @@ interface GuestBalanceOption extends SourceOption {
446
446
  * GET /v1/transfers/:id/balances?walletAddress=...
447
447
  */
448
448
  declare function fetchGuestTransferBalances(apiBaseUrl: string, transferId: string, guestSessionToken: string, walletAddress: string): Promise<GuestBalanceOption[]>;
449
- declare function fetchGuestPreauthAccount(apiBaseUrl: string, guestToken: string): Promise<{
449
+ declare function fetchGuestAccount(apiBaseUrl: string, guestToken: string): Promise<{
450
450
  accountId: string;
451
451
  hasPasskey: boolean;
452
452
  walletAddress: string | null;
453
453
  } | null>;
454
+ declare function createGuestAccount(apiBaseUrl: string, guestSessionToken: string, providerId: string, name: string): Promise<{
455
+ accountId: string;
456
+ sessionToken: string;
457
+ sessionUri: string;
458
+ }>;
454
459
  declare function setAccountOwner(apiBaseUrl: string, accessToken: string, accountId: string, guestSessionToken: string, body: {
455
460
  credentialId: string;
456
461
  publicKey: string;
@@ -467,13 +472,14 @@ type api_GuestBalanceOption = GuestBalanceOption;
467
472
  type api_GuestTransferResult = GuestTransferResult;
468
473
  declare const api_createAccount: typeof createAccount;
469
474
  declare const api_createAccountAuthorizationSession: typeof createAccountAuthorizationSession;
475
+ declare const api_createGuestAccount: typeof createGuestAccount;
470
476
  declare const api_createGuestTransfer: typeof createGuestTransfer;
471
477
  declare const api_createTransfer: typeof createTransfer;
472
478
  declare const api_fetchAccount: typeof fetchAccount;
473
479
  declare const api_fetchAccounts: typeof fetchAccounts;
474
480
  declare const api_fetchAuthorizationSession: typeof fetchAuthorizationSession;
475
481
  declare const api_fetchChains: typeof fetchChains;
476
- declare const api_fetchGuestPreauthAccount: typeof fetchGuestPreauthAccount;
482
+ declare const api_fetchGuestAccount: typeof fetchGuestAccount;
477
483
  declare const api_fetchGuestTransferBalances: typeof fetchGuestTransferBalances;
478
484
  declare const api_fetchMerchantPublicKey: typeof fetchMerchantPublicKey;
479
485
  declare const api_fetchProviders: typeof fetchProviders;
@@ -491,7 +497,7 @@ declare const api_signTransfer: typeof signTransfer;
491
497
  declare const api_updateUserConfig: typeof updateUserConfig;
492
498
  declare const api_updateUserConfigBySession: typeof updateUserConfigBySession;
493
499
  declare namespace api {
494
- export { type api_CreateAccountParams as CreateAccountParams, type api_CreateGuestTransferParams as CreateGuestTransferParams, type api_CreateTransferParams as CreateTransferParams, type api_GuestBalanceOption as GuestBalanceOption, type api_GuestTransferResult as GuestTransferResult, api_createAccount as createAccount, api_createAccountAuthorizationSession as createAccountAuthorizationSession, api_createGuestTransfer as createGuestTransfer, api_createTransfer as createTransfer, api_fetchAccount as fetchAccount, api_fetchAccounts as fetchAccounts, api_fetchAuthorizationSession as fetchAuthorizationSession, api_fetchChains as fetchChains, api_fetchGuestPreauthAccount as fetchGuestPreauthAccount, api_fetchGuestTransferBalances as fetchGuestTransferBalances, api_fetchMerchantPublicKey as fetchMerchantPublicKey, api_fetchProviders as fetchProviders, api_fetchTransfer as fetchTransfer, api_fetchUserConfig as fetchUserConfig, api_getGuestTransfer as getGuestTransfer, api_getTransferByGuestToken as getTransferByGuestToken, api_registerPasskey as registerPasskey, api_reportActionCompletion as reportActionCompletion, api_reportPasskeyActivity as reportPasskeyActivity, api_setAccountOwner as setAccountOwner, api_setTransferSender as setTransferSender, api_signGuestTransfer as signGuestTransfer, api_signTransfer as signTransfer, api_updateUserConfig as updateUserConfig, api_updateUserConfigBySession as updateUserConfigBySession };
500
+ export { type api_CreateAccountParams as CreateAccountParams, type api_CreateGuestTransferParams as CreateGuestTransferParams, type api_CreateTransferParams as CreateTransferParams, type api_GuestBalanceOption as GuestBalanceOption, type api_GuestTransferResult as GuestTransferResult, api_createAccount as createAccount, api_createAccountAuthorizationSession as createAccountAuthorizationSession, api_createGuestAccount as createGuestAccount, api_createGuestTransfer as createGuestTransfer, api_createTransfer as createTransfer, api_fetchAccount as fetchAccount, api_fetchAccounts as fetchAccounts, api_fetchAuthorizationSession as fetchAuthorizationSession, api_fetchChains as fetchChains, api_fetchGuestAccount as fetchGuestAccount, api_fetchGuestTransferBalances as fetchGuestTransferBalances, api_fetchMerchantPublicKey as fetchMerchantPublicKey, api_fetchProviders as fetchProviders, api_fetchTransfer as fetchTransfer, api_fetchUserConfig as fetchUserConfig, api_getGuestTransfer as getGuestTransfer, api_getTransferByGuestToken as getTransferByGuestToken, api_registerPasskey as registerPasskey, api_reportActionCompletion as reportActionCompletion, api_reportPasskeyActivity as reportPasskeyActivity, api_setAccountOwner as setAccountOwner, api_setTransferSender as setTransferSender, api_signGuestTransfer as signGuestTransfer, api_signTransfer as signTransfer, api_updateUserConfig as updateUserConfig, api_updateUserConfigBySession as updateUserConfigBySession };
495
501
  }
496
502
 
497
503
  interface BlinkPaymentProps {
@@ -850,6 +856,7 @@ interface ResolveScreenState {
850
856
  isDesktop: boolean;
851
857
  isReturningUser: boolean;
852
858
  guestPreauthRedirect: boolean;
859
+ loginRequested: boolean;
853
860
  userIntent: UserIntent;
854
861
  selectedAccount: Account | undefined;
855
862
  guestSettingSender: boolean;
package/dist/index.d.ts CHANGED
@@ -446,11 +446,16 @@ interface GuestBalanceOption extends SourceOption {
446
446
  * GET /v1/transfers/:id/balances?walletAddress=...
447
447
  */
448
448
  declare function fetchGuestTransferBalances(apiBaseUrl: string, transferId: string, guestSessionToken: string, walletAddress: string): Promise<GuestBalanceOption[]>;
449
- declare function fetchGuestPreauthAccount(apiBaseUrl: string, guestToken: string): Promise<{
449
+ declare function fetchGuestAccount(apiBaseUrl: string, guestToken: string): Promise<{
450
450
  accountId: string;
451
451
  hasPasskey: boolean;
452
452
  walletAddress: string | null;
453
453
  } | null>;
454
+ declare function createGuestAccount(apiBaseUrl: string, guestSessionToken: string, providerId: string, name: string): Promise<{
455
+ accountId: string;
456
+ sessionToken: string;
457
+ sessionUri: string;
458
+ }>;
454
459
  declare function setAccountOwner(apiBaseUrl: string, accessToken: string, accountId: string, guestSessionToken: string, body: {
455
460
  credentialId: string;
456
461
  publicKey: string;
@@ -467,13 +472,14 @@ type api_GuestBalanceOption = GuestBalanceOption;
467
472
  type api_GuestTransferResult = GuestTransferResult;
468
473
  declare const api_createAccount: typeof createAccount;
469
474
  declare const api_createAccountAuthorizationSession: typeof createAccountAuthorizationSession;
475
+ declare const api_createGuestAccount: typeof createGuestAccount;
470
476
  declare const api_createGuestTransfer: typeof createGuestTransfer;
471
477
  declare const api_createTransfer: typeof createTransfer;
472
478
  declare const api_fetchAccount: typeof fetchAccount;
473
479
  declare const api_fetchAccounts: typeof fetchAccounts;
474
480
  declare const api_fetchAuthorizationSession: typeof fetchAuthorizationSession;
475
481
  declare const api_fetchChains: typeof fetchChains;
476
- declare const api_fetchGuestPreauthAccount: typeof fetchGuestPreauthAccount;
482
+ declare const api_fetchGuestAccount: typeof fetchGuestAccount;
477
483
  declare const api_fetchGuestTransferBalances: typeof fetchGuestTransferBalances;
478
484
  declare const api_fetchMerchantPublicKey: typeof fetchMerchantPublicKey;
479
485
  declare const api_fetchProviders: typeof fetchProviders;
@@ -491,7 +497,7 @@ declare const api_signTransfer: typeof signTransfer;
491
497
  declare const api_updateUserConfig: typeof updateUserConfig;
492
498
  declare const api_updateUserConfigBySession: typeof updateUserConfigBySession;
493
499
  declare namespace api {
494
- export { type api_CreateAccountParams as CreateAccountParams, type api_CreateGuestTransferParams as CreateGuestTransferParams, type api_CreateTransferParams as CreateTransferParams, type api_GuestBalanceOption as GuestBalanceOption, type api_GuestTransferResult as GuestTransferResult, api_createAccount as createAccount, api_createAccountAuthorizationSession as createAccountAuthorizationSession, api_createGuestTransfer as createGuestTransfer, api_createTransfer as createTransfer, api_fetchAccount as fetchAccount, api_fetchAccounts as fetchAccounts, api_fetchAuthorizationSession as fetchAuthorizationSession, api_fetchChains as fetchChains, api_fetchGuestPreauthAccount as fetchGuestPreauthAccount, api_fetchGuestTransferBalances as fetchGuestTransferBalances, api_fetchMerchantPublicKey as fetchMerchantPublicKey, api_fetchProviders as fetchProviders, api_fetchTransfer as fetchTransfer, api_fetchUserConfig as fetchUserConfig, api_getGuestTransfer as getGuestTransfer, api_getTransferByGuestToken as getTransferByGuestToken, api_registerPasskey as registerPasskey, api_reportActionCompletion as reportActionCompletion, api_reportPasskeyActivity as reportPasskeyActivity, api_setAccountOwner as setAccountOwner, api_setTransferSender as setTransferSender, api_signGuestTransfer as signGuestTransfer, api_signTransfer as signTransfer, api_updateUserConfig as updateUserConfig, api_updateUserConfigBySession as updateUserConfigBySession };
500
+ export { type api_CreateAccountParams as CreateAccountParams, type api_CreateGuestTransferParams as CreateGuestTransferParams, type api_CreateTransferParams as CreateTransferParams, type api_GuestBalanceOption as GuestBalanceOption, type api_GuestTransferResult as GuestTransferResult, api_createAccount as createAccount, api_createAccountAuthorizationSession as createAccountAuthorizationSession, api_createGuestAccount as createGuestAccount, api_createGuestTransfer as createGuestTransfer, api_createTransfer as createTransfer, api_fetchAccount as fetchAccount, api_fetchAccounts as fetchAccounts, api_fetchAuthorizationSession as fetchAuthorizationSession, api_fetchChains as fetchChains, api_fetchGuestAccount as fetchGuestAccount, api_fetchGuestTransferBalances as fetchGuestTransferBalances, api_fetchMerchantPublicKey as fetchMerchantPublicKey, api_fetchProviders as fetchProviders, api_fetchTransfer as fetchTransfer, api_fetchUserConfig as fetchUserConfig, api_getGuestTransfer as getGuestTransfer, api_getTransferByGuestToken as getTransferByGuestToken, api_registerPasskey as registerPasskey, api_reportActionCompletion as reportActionCompletion, api_reportPasskeyActivity as reportPasskeyActivity, api_setAccountOwner as setAccountOwner, api_setTransferSender as setTransferSender, api_signGuestTransfer as signGuestTransfer, api_signTransfer as signTransfer, api_updateUserConfig as updateUserConfig, api_updateUserConfigBySession as updateUserConfigBySession };
495
501
  }
496
502
 
497
503
  interface BlinkPaymentProps {
@@ -850,6 +856,7 @@ interface ResolveScreenState {
850
856
  isDesktop: boolean;
851
857
  isReturningUser: boolean;
852
858
  guestPreauthRedirect: boolean;
859
+ loginRequested: boolean;
853
860
  userIntent: UserIntent;
854
861
  selectedAccount: Account | undefined;
855
862
  guestSettingSender: boolean;
package/dist/index.js CHANGED
@@ -458,13 +458,14 @@ var api_exports = {};
458
458
  __export(api_exports, {
459
459
  createAccount: () => createAccount,
460
460
  createAccountAuthorizationSession: () => createAccountAuthorizationSession,
461
+ createGuestAccount: () => createGuestAccount,
461
462
  createGuestTransfer: () => createGuestTransfer,
462
463
  createTransfer: () => createTransfer,
463
464
  fetchAccount: () => fetchAccount,
464
465
  fetchAccounts: () => fetchAccounts,
465
466
  fetchAuthorizationSession: () => fetchAuthorizationSession,
466
467
  fetchChains: () => fetchChains,
467
- fetchGuestPreauthAccount: () => fetchGuestPreauthAccount,
468
+ fetchGuestAccount: () => fetchGuestAccount,
468
469
  fetchGuestTransferBalances: () => fetchGuestTransferBalances,
469
470
  fetchMerchantPublicKey: () => fetchMerchantPublicKey,
470
471
  fetchProviders: () => fetchProviders,
@@ -766,13 +767,25 @@ async function fetchGuestTransferBalances(apiBaseUrl, transferId, guestSessionTo
766
767
  const data = await res.json();
767
768
  return data.items;
768
769
  }
769
- async function fetchGuestPreauthAccount(apiBaseUrl, guestToken) {
770
+ async function fetchGuestAccount(apiBaseUrl, guestToken) {
770
771
  const params = new URLSearchParams({ guestToken });
771
- const res = await fetch(`${apiBaseUrl}/v1/guest-preauth?${params.toString()}`);
772
+ const res = await fetch(`${apiBaseUrl}/v1/accounts?${params.toString()}`);
772
773
  if (res.status === 404) return null;
773
774
  if (!res.ok) await throwApiError(res);
774
775
  return await res.json();
775
776
  }
777
+ async function createGuestAccount(apiBaseUrl, guestSessionToken, providerId, name) {
778
+ const res = await fetch(`${apiBaseUrl}/v1/accounts`, {
779
+ method: "POST",
780
+ headers: {
781
+ "Content-Type": "application/json",
782
+ "x-guest-session-token": guestSessionToken
783
+ },
784
+ body: JSON.stringify({ providerId, name })
785
+ });
786
+ if (!res.ok) await throwApiError(res);
787
+ return await res.json();
788
+ }
776
789
  async function setAccountOwner(apiBaseUrl, accessToken, accountId, guestSessionToken, body) {
777
790
  const res = await fetch(`${apiBaseUrl}/v1/accounts/${accountId}/owner`, {
778
791
  method: "PUT",
@@ -1961,7 +1974,8 @@ function createInitialState(config) {
1961
1974
  guestSessionToken: null,
1962
1975
  guestPreauthAccountId: null,
1963
1976
  activePublicKey: null,
1964
- userIntent: null
1977
+ userIntent: null,
1978
+ loginRequested: false
1965
1979
  };
1966
1980
  }
1967
1981
  function paymentReducer(state, action) {
@@ -1971,7 +1985,8 @@ function paymentReducer(state, action) {
1971
1985
  return {
1972
1986
  ...state,
1973
1987
  verificationTarget: action.target,
1974
- error: null
1988
+ error: null,
1989
+ loginRequested: false
1975
1990
  };
1976
1991
  case "BACK_TO_LOGIN":
1977
1992
  return {
@@ -2208,11 +2223,20 @@ function paymentReducer(state, action) {
2208
2223
  ...state,
2209
2224
  guestPreauthAccountId: null,
2210
2225
  activePublicKey: null,
2211
- error: null
2226
+ error: null,
2227
+ userIntent: "configure-one-tap"
2212
2228
  };
2213
2229
  // ── User intent & error ──────────────────────────────────────
2214
2230
  case "SET_USER_INTENT":
2215
2231
  return { ...state, userIntent: action.intent };
2232
+ case "REQUEST_LOGIN":
2233
+ return {
2234
+ ...state,
2235
+ loginRequested: true,
2236
+ transfer: null,
2237
+ isGuestFlow: false,
2238
+ creatingTransfer: false
2239
+ };
2216
2240
  case "SET_ERROR":
2217
2241
  return { ...state, error: action.error };
2218
2242
  // ── Lifecycle ────────────────────────────────────────────────
@@ -2232,7 +2256,8 @@ function paymentReducer(state, action) {
2232
2256
  guestSessionToken: null,
2233
2257
  guestPreauthAccountId: null,
2234
2258
  activePublicKey: null,
2235
- userIntent: null
2259
+ userIntent: null,
2260
+ loginRequested: false
2236
2261
  };
2237
2262
  case "LOGOUT":
2238
2263
  return {
@@ -2325,7 +2350,7 @@ function resolveScreen(state) {
2325
2350
  if (state.authenticated && !state.activeCredentialId && !state.passkeyConfigLoaded) {
2326
2351
  return "loading";
2327
2352
  }
2328
- if (!state.authenticated && !state.verificationTarget && !state.isGuestFlow && (state.isReturningUser || state.guestPreauthRedirect)) {
2353
+ if (!state.authenticated && !state.verificationTarget && !state.isGuestFlow && (state.isReturningUser || state.guestPreauthRedirect || state.loginRequested)) {
2329
2354
  return "login";
2330
2355
  }
2331
2356
  if (!state.authenticated && state.verificationTarget != null) {
@@ -5897,6 +5922,7 @@ function StepRenderer(props) {
5897
5922
  isDesktop,
5898
5923
  isReturningUser,
5899
5924
  guestPreauthRedirect: props.state.guestPreauthAccountId != null,
5925
+ loginRequested: props.state.loginRequested,
5900
5926
  userIntent: props.state.userIntent,
5901
5927
  selectedAccount: props.selectedAccount,
5902
5928
  guestSettingSender: props.guestSettingSender
@@ -6030,7 +6056,7 @@ function StepRendererContent({
6030
6056
  useDeeplink: !isDesktop,
6031
6057
  error: state.error || (!isDesktop ? pollingError : authExecutorError),
6032
6058
  onRetryStatus: !isDesktop ? handlers.onRetryMobileStatus : void 0,
6033
- onBack: !isDesktop ? () => handlers.onSetUserIntent(null) : void 0,
6059
+ onBack: !isDesktop ? handlers.onBackFromOpenWallet : void 0,
6034
6060
  onLogout: handlers.onLogout
6035
6061
  }
6036
6062
  );
@@ -7416,6 +7442,7 @@ function useGuestTransferHandlers(deps) {
7416
7442
  if (!isGuestFlow || !guestTransferId || !guestSessionToken || !selectedGuestTokenRef.current) return;
7417
7443
  if (executingBridgeRef.current) return;
7418
7444
  executingBridgeRef.current = true;
7445
+ dispatch({ type: "PAY_STARTED" });
7419
7446
  const execute = async () => {
7420
7447
  try {
7421
7448
  let signPayload = null;
@@ -7512,6 +7539,7 @@ function useGuestTransferHandlers(deps) {
7512
7539
  onError?.(displayMsg);
7513
7540
  } finally {
7514
7541
  executingBridgeRef.current = false;
7542
+ dispatch({ type: "PAY_ENDED" });
7515
7543
  }
7516
7544
  };
7517
7545
  execute();
@@ -8228,21 +8256,40 @@ function usePaymentEffects(deps) {
8228
8256
  if (state.guestPreauthAccountId) return;
8229
8257
  if (!state.transfer || state.transfer.status !== "COMPLETED") return;
8230
8258
  let cancelled = false;
8231
- const checkPreauth = async () => {
8259
+ const ensureGuestAccount = async () => {
8232
8260
  try {
8233
- const result = await fetchGuestPreauthAccount(apiBaseUrl, state.guestSessionToken);
8261
+ let result = await fetchGuestAccount(apiBaseUrl, state.guestSessionToken);
8234
8262
  if (cancelled) return;
8263
+ if (!result && state.selectedProviderId) {
8264
+ const providerName = state.providers.find((p) => p.id === state.selectedProviderId)?.name ?? "Wallet";
8265
+ const created = await createGuestAccount(
8266
+ apiBaseUrl,
8267
+ state.guestSessionToken,
8268
+ state.selectedProviderId,
8269
+ providerName
8270
+ );
8271
+ if (cancelled) return;
8272
+ result = { accountId: created.accountId, hasPasskey: false, walletAddress: null };
8273
+ }
8235
8274
  if (result && !result.hasPasskey) {
8236
8275
  dispatch({ type: "GUEST_PREAUTH_DETECTED", accountId: result.accountId });
8237
8276
  }
8238
8277
  } catch {
8239
8278
  }
8240
8279
  };
8241
- checkPreauth();
8280
+ ensureGuestAccount();
8242
8281
  return () => {
8243
8282
  cancelled = true;
8244
8283
  };
8245
- }, [state.transfer, state.guestSessionToken, state.guestPreauthAccountId, apiBaseUrl, dispatch]);
8284
+ }, [
8285
+ state.transfer,
8286
+ state.guestSessionToken,
8287
+ state.guestPreauthAccountId,
8288
+ state.selectedProviderId,
8289
+ state.providers,
8290
+ apiBaseUrl,
8291
+ dispatch
8292
+ ]);
8246
8293
  const settingOwnerRef = useRef(false);
8247
8294
  useEffect(() => {
8248
8295
  if (!state.guestPreauthAccountId) return;
@@ -8516,6 +8563,7 @@ function BlinkPaymentInner({
8516
8563
  onIncreaseLimit: provider.handleIncreaseLimit,
8517
8564
  onConfirmSign: transfer.handleConfirmSign,
8518
8565
  onRetryMobileStatus: mobileFlow.handleRetryMobileStatus,
8566
+ onBackFromOpenWallet: () => dispatch({ type: "CLEAR_MOBILE_STATE" }),
8519
8567
  onLogout: handleLogout,
8520
8568
  onNewPayment: handleNewPayment,
8521
8569
  onSetUserIntent: (intent) => dispatch({ type: "SET_USER_INTENT", intent }),
@@ -8532,8 +8580,8 @@ function BlinkPaymentInner({
8532
8580
  onSelectAuthorizedToken: provider.handleSelectAuthorizedToken,
8533
8581
  onAuthorizeToken: provider.handleAuthorizeToken,
8534
8582
  onSelectGuestToken: guestTransfer.handleSelectGuestToken,
8535
- onLogin: () => dispatch({ type: "SET_USER_INTENT", intent: null }),
8536
- onPreauthorize: () => dispatch({ type: "SET_USER_INTENT", intent: null })
8583
+ onLogin: () => dispatch({ type: "REQUEST_LOGIN" }),
8584
+ onPreauthorize: () => dispatch({ type: "REQUEST_LOGIN" })
8537
8585
  }), [
8538
8586
  auth,
8539
8587
  passkey,