@dynamic-labs-sdk/client 1.17.1 → 1.19.0
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/client/createDynamicClient/createDynamicClient.d.ts +11 -1
- package/dist/client/createDynamicClient/createDynamicClient.d.ts.map +1 -1
- package/dist/client/defaultClient/defaultClient.d.ts +12 -1
- package/dist/client/defaultClient/defaultClient.d.ts.map +1 -1
- package/dist/core.cjs +7 -5
- package/dist/core.cjs.map +1 -1
- package/dist/core.esm.js +6 -6
- package/dist/core.esm.js.map +1 -1
- package/dist/core.native.esm.js +6 -6
- package/dist/core.native.esm.js.map +1 -1
- package/dist/errors/APIError/APIError.d.ts +11 -1
- package/dist/errors/APIError/APIError.d.ts.map +1 -1
- package/dist/errors/DeviceRegistrationIdentityMismatchError.d.ts +26 -0
- package/dist/errors/DeviceRegistrationIdentityMismatchError.d.ts.map +1 -0
- package/dist/errors/MergeAccountsConfirmationError.d.ts +49 -0
- package/dist/errors/MergeAccountsConfirmationError.d.ts.map +1 -0
- package/dist/errors/UnsafeDeeplinkUrlError.d.ts +17 -0
- package/dist/errors/UnsafeDeeplinkUrlError.d.ts.map +1 -0
- package/dist/errors/UnsafeNavigationUrlError.d.ts +16 -0
- package/dist/errors/UnsafeNavigationUrlError.d.ts.map +1 -0
- package/dist/errors/WalletScreeningBlockedError.d.ts +27 -0
- package/dist/errors/WalletScreeningBlockedError.d.ts.map +1 -0
- package/dist/exports/core.d.ts +4 -0
- package/dist/exports/core.d.ts.map +1 -1
- package/dist/exports/index.d.ts +18 -3
- package/dist/exports/index.d.ts.map +1 -1
- package/dist/exports/waas.d.ts +2 -0
- package/dist/exports/waas.d.ts.map +1 -1
- package/dist/{getNetworkProviderFromNetworkId-CS4r9hi7.cjs → getNetworkProviderFromNetworkId-BJX2AMGR.cjs} +190 -19
- package/dist/getNetworkProviderFromNetworkId-BJX2AMGR.cjs.map +1 -0
- package/dist/{getNetworkProviderFromNetworkId-Bfg-NkNJ.native.esm.js → getNetworkProviderFromNetworkId-Bsv12Q6B.native.esm.js} +165 -10
- package/dist/getNetworkProviderFromNetworkId-Bsv12Q6B.native.esm.js.map +1 -0
- package/dist/{getNetworkProviderFromNetworkId-pknqqhk1.esm.js → getNetworkProviderFromNetworkId-D3uwhdMN.esm.js} +166 -19
- package/dist/getNetworkProviderFromNetworkId-D3uwhdMN.esm.js.map +1 -0
- package/dist/{getSignedSessionId-cMGkmojJ.cjs → getSignedSessionId-BIZJGg61.cjs} +3 -3
- package/dist/{getSignedSessionId-cMGkmojJ.cjs.map → getSignedSessionId-BIZJGg61.cjs.map} +1 -1
- package/dist/{getSignedSessionId-CUw7LJ35.esm.js → getSignedSessionId-CnSAMO3P.esm.js} +3 -3
- package/dist/{getSignedSessionId-CUw7LJ35.esm.js.map → getSignedSessionId-CnSAMO3P.esm.js.map} +1 -1
- package/dist/{getSignedSessionId-Cl3PEqa8.native.esm.js → getSignedSessionId-DXDi7NkE.native.esm.js} +3 -3
- package/dist/{getSignedSessionId-Cl3PEqa8.native.esm.js.map → getSignedSessionId-DXDi7NkE.native.esm.js.map} +1 -1
- package/dist/{getWalletProviderByKey-CP9Te5Sz.cjs → getWalletProviderByKey-C6aS7KgD.cjs} +2 -2
- package/dist/{getWalletProviderByKey-CP9Te5Sz.cjs.map → getWalletProviderByKey-C6aS7KgD.cjs.map} +1 -1
- package/dist/{getWalletProviderByKey-lQVfIGFi.esm.js → getWalletProviderByKey-Cr8m-Nax.esm.js} +2 -2
- package/dist/{getWalletProviderByKey-lQVfIGFi.esm.js.map → getWalletProviderByKey-Cr8m-Nax.esm.js.map} +1 -1
- package/dist/{getWalletProviderByKey-24co0tBE.native.esm.js → getWalletProviderByKey-DVk2t98D.native.esm.js} +2 -2
- package/dist/{getWalletProviderByKey-24co0tBE.native.esm.js.map → getWalletProviderByKey-DVk2t98D.native.esm.js.map} +1 -1
- package/dist/index.cjs +950 -111
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +940 -112
- package/dist/index.esm.js.map +1 -1
- package/dist/index.native.esm.js +867 -111
- package/dist/index.native.esm.js.map +1 -1
- package/dist/{isDynamicWaasEnabled-BwP1oowd.cjs → isDynamicWaasEnabled-BawttOeb.cjs} +21 -9
- package/dist/isDynamicWaasEnabled-BawttOeb.cjs.map +1 -0
- package/dist/{isDynamicWaasEnabled-BYaqAOml.esm.js → isDynamicWaasEnabled-DDrg89y1.esm.js} +20 -8
- package/dist/isDynamicWaasEnabled-DDrg89y1.esm.js.map +1 -0
- package/dist/{isDynamicWaasEnabled-BXe0VyI4.native.esm.js → isDynamicWaasEnabled-Dj_sLoBO.native.esm.js} +20 -8
- package/dist/isDynamicWaasEnabled-Dj_sLoBO.native.esm.js.map +1 -0
- package/dist/{isMfaRequiredForAction-Btejc5g3.cjs → isMfaRequiredForAction-BuvyBN_r.cjs} +21 -6
- package/dist/isMfaRequiredForAction-BuvyBN_r.cjs.map +1 -0
- package/dist/{isMfaRequiredForAction-CqEcCTIe.esm.js → isMfaRequiredForAction-DTp4CZBt.esm.js} +21 -6
- package/dist/isMfaRequiredForAction-DTp4CZBt.esm.js.map +1 -0
- package/dist/{isMfaRequiredForAction-Demz9zlH.native.esm.js → isMfaRequiredForAction-EY-OQORc.native.esm.js} +3 -5
- package/dist/isMfaRequiredForAction-EY-OQORc.native.esm.js.map +1 -0
- package/dist/{isUserOnboardingComplete-C86NDY7I.cjs → isUserOnboardingComplete-CkyzRYrg.cjs} +14 -4
- package/dist/isUserOnboardingComplete-CkyzRYrg.cjs.map +1 -0
- package/dist/{isUserOnboardingComplete-CBrAH0ZF.esm.js → isUserOnboardingComplete-D3HrBYje.native.esm.js} +13 -3
- package/dist/isUserOnboardingComplete-D3HrBYje.native.esm.js.map +1 -0
- package/dist/{isUserOnboardingComplete-Cr-YTpcU.native.esm.js → isUserOnboardingComplete-Dy2Ygp0u.esm.js} +13 -3
- package/dist/isUserOnboardingComplete-Dy2Ygp0u.esm.js.map +1 -0
- package/dist/{migrateFromFireblocks-D-J6-gRo.native.esm.js → migrateFromFireblocks-B5qWGLCM.native.esm.js} +3 -3
- package/dist/{migrateFromFireblocks-D-J6-gRo.native.esm.js.map → migrateFromFireblocks-B5qWGLCM.native.esm.js.map} +1 -1
- package/dist/{migrateFromFireblocks-B_q8Oawb.cjs → migrateFromFireblocks-Dp-QA9hi.cjs} +3 -3
- package/dist/{migrateFromFireblocks-B_q8Oawb.cjs.map → migrateFromFireblocks-Dp-QA9hi.cjs.map} +1 -1
- package/dist/{migrateFromFireblocks-Bbx2wHZD.esm.js → migrateFromFireblocks-MAatsk_w.esm.js} +3 -3
- package/dist/{migrateFromFireblocks-Bbx2wHZD.esm.js.map → migrateFromFireblocks-MAatsk_w.esm.js.map} +1 -1
- package/dist/modules/apiClient/constants.d.ts +8 -0
- package/dist/modules/apiClient/constants.d.ts.map +1 -1
- package/dist/modules/apiClient/createApiClient.d.ts.map +1 -1
- package/dist/modules/auth/externalAuth/requestExternalAuthElevatedToken/requestExternalAuthElevatedToken.d.ts +0 -1
- package/dist/modules/auth/externalAuth/requestExternalAuthElevatedToken/requestExternalAuthElevatedToken.d.ts.map +1 -1
- package/dist/modules/auth/externalAuth/signInWithExternalJwt/signInWithExternalJwt.d.ts +11 -2
- package/dist/modules/auth/externalAuth/signInWithExternalJwt/signInWithExternalJwt.d.ts.map +1 -1
- package/dist/modules/auth/isSignedIn/isSignedIn.d.ts +9 -0
- package/dist/modules/auth/isSignedIn/isSignedIn.d.ts.map +1 -1
- package/dist/modules/auth/logout/logout.d.ts +13 -0
- package/dist/modules/auth/logout/logout.d.ts.map +1 -1
- package/dist/modules/auth/logoutWithReason/logoutWithReason.d.ts.map +1 -1
- package/dist/modules/auth/mergeUserAccounts/index.d.ts +3 -0
- package/dist/modules/auth/mergeUserAccounts/index.d.ts.map +1 -0
- package/dist/modules/auth/mergeUserAccounts/mergeUserAccounts.d.ts +62 -0
- package/dist/modules/auth/mergeUserAccounts/mergeUserAccounts.d.ts.map +1 -0
- package/dist/modules/auth/mergeUserAccounts/mergeUserAccounts.types.d.ts +78 -0
- package/dist/modules/auth/mergeUserAccounts/mergeUserAccounts.types.d.ts.map +1 -0
- package/dist/modules/auth/passkeys/registerPasskey/registerPasskey.d.ts +7 -1
- package/dist/modules/auth/passkeys/registerPasskey/registerPasskey.d.ts.map +1 -1
- package/dist/modules/auth/passkeys/signInWithPasskey/signInWithPasskey.d.ts +9 -1
- package/dist/modules/auth/passkeys/signInWithPasskey/signInWithPasskey.d.ts.map +1 -1
- package/dist/modules/auth/social/oauth/authenticateWithSocial/authenticateWithSocial.d.ts +8 -0
- package/dist/modules/auth/social/oauth/authenticateWithSocial/authenticateWithSocial.d.ts.map +1 -1
- package/dist/modules/auth/social/oauth/clearSocialRedirectParams/clearSocialRedirectParams.d.ts +34 -0
- package/dist/modules/auth/social/oauth/clearSocialRedirectParams/clearSocialRedirectParams.d.ts.map +1 -0
- package/dist/modules/auth/social/oauth/clearSocialRedirectParams/index.d.ts +2 -0
- package/dist/modules/auth/social/oauth/clearSocialRedirectParams/index.d.ts.map +1 -0
- package/dist/modules/auth/social/oauth/completeSocialRedirect/completeSocialRedirect.d.ts +11 -0
- package/dist/modules/auth/social/oauth/completeSocialRedirect/completeSocialRedirect.d.ts.map +1 -1
- package/dist/modules/auth/social/oauth/detectSocialRedirectUrl/detectSocialRedirectUrl.d.ts +0 -1
- package/dist/modules/auth/social/oauth/detectSocialRedirectUrl/detectSocialRedirectUrl.d.ts.map +1 -1
- package/dist/modules/auth/social/oauth/signInWithSocialPopUp/signInWithSocialPopUp.d.ts +12 -0
- package/dist/modules/auth/social/oauth/signInWithSocialPopUp/signInWithSocialPopUp.d.ts.map +1 -1
- package/dist/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/getOAuthBaseUrl/getOAuthBaseUrl.d.ts.map +1 -1
- package/dist/modules/auth/social/oauth/signInWithSocialRedirect/signInWithSocialRedirect.d.ts +10 -0
- package/dist/modules/auth/social/oauth/signInWithSocialRedirect/signInWithSocialRedirect.d.ts.map +1 -1
- package/dist/modules/auth/social/oauth/unlinkSocialAccount/unlinkSocialAccount.d.ts +0 -1
- package/dist/modules/auth/social/oauth/unlinkSocialAccount/unlinkSocialAccount.d.ts.map +1 -1
- package/dist/modules/auth/updateAuthFromVerifyResponse/updateAuthFromVerifyResponse.d.ts.map +1 -1
- package/dist/modules/captcha/CaptchaProviderEnum/CaptchaProviderEnum.d.ts +37 -0
- package/dist/modules/captcha/CaptchaProviderEnum/CaptchaProviderEnum.d.ts.map +1 -0
- package/dist/modules/captcha/getCaptchaSettings/getCaptchaSettings.d.ts +50 -0
- package/dist/modules/captcha/getCaptchaSettings/getCaptchaSettings.d.ts.map +1 -0
- package/dist/modules/captcha/getCaptchaSettings/getCaptchaSettings.types.d.ts +22 -0
- package/dist/modules/captcha/getCaptchaSettings/getCaptchaSettings.types.d.ts.map +1 -0
- package/dist/modules/captcha/getCaptchaSettings/index.d.ts +3 -0
- package/dist/modules/captcha/getCaptchaSettings/index.d.ts.map +1 -0
- package/dist/modules/captcha/isCaptchaRequired/isCaptchaRequired.d.ts.map +1 -1
- package/dist/modules/captcha/setCaptchaToken/setCaptchaToken.d.ts +0 -1
- package/dist/modules/captcha/setCaptchaToken/setCaptchaToken.d.ts.map +1 -1
- package/dist/modules/clientEvents/clientEvents.d.ts +34 -0
- package/dist/modules/clientEvents/clientEvents.d.ts.map +1 -1
- package/dist/modules/deviceRegistration/clearDeviceRegistrationRedirectParams/clearDeviceRegistrationRedirectParams.d.ts +35 -0
- package/dist/modules/deviceRegistration/clearDeviceRegistrationRedirectParams/clearDeviceRegistrationRedirectParams.d.ts.map +1 -0
- package/dist/modules/deviceRegistration/clearDeviceRegistrationRedirectParams/index.d.ts +2 -0
- package/dist/modules/deviceRegistration/clearDeviceRegistrationRedirectParams/index.d.ts.map +1 -0
- package/dist/modules/deviceRegistration/completeDeviceRegistration/completeDeviceRegistration.d.ts +8 -1
- package/dist/modules/deviceRegistration/completeDeviceRegistration/completeDeviceRegistration.d.ts.map +1 -1
- package/dist/modules/deviceRegistration/isDeviceRegistrationRequired/isDeviceRegistrationRequired.d.ts +1 -0
- package/dist/modules/deviceRegistration/isDeviceRegistrationRequired/isDeviceRegistrationRequired.d.ts.map +1 -1
- package/dist/modules/flow/attachFlowSource/attachFlowSource.instrumentation.d.ts +9 -0
- package/dist/modules/flow/attachFlowSource/attachFlowSource.instrumentation.d.ts.map +1 -0
- package/dist/modules/flow/broadcastFlow/broadcastFlow.instrumentation.d.ts +9 -0
- package/dist/modules/flow/broadcastFlow/broadcastFlow.instrumentation.d.ts.map +1 -0
- package/dist/modules/flow/cancelFlow/cancelFlow.d.ts +10 -3
- package/dist/modules/flow/cancelFlow/cancelFlow.d.ts.map +1 -1
- package/dist/modules/flow/cancelFlow/cancelFlow.instrumentation.d.ts +8 -0
- package/dist/modules/flow/cancelFlow/cancelFlow.instrumentation.d.ts.map +1 -0
- package/dist/modules/flow/getFlow/getFlow.d.ts +11 -3
- package/dist/modules/flow/getFlow/getFlow.d.ts.map +1 -1
- package/dist/modules/flow/getFlowQuote/getFlowQuote.d.ts +16 -3
- package/dist/modules/flow/getFlowQuote/getFlowQuote.d.ts.map +1 -1
- package/dist/modules/flow/prepareFlowSigning/prepareFlowSigning.instrumentation.d.ts +9 -0
- package/dist/modules/flow/prepareFlowSigning/prepareFlowSigning.instrumentation.d.ts.map +1 -0
- package/dist/modules/flow/submitFlowTransaction/submitFlowTransaction.instrumentation.d.ts +9 -0
- package/dist/modules/flow/submitFlowTransaction/submitFlowTransaction.instrumentation.d.ts.map +1 -0
- package/dist/modules/funding/moonpay/getMoonPayUrl/getMoonPayUrl.d.ts +0 -4
- package/dist/modules/funding/moonpay/getMoonPayUrl/getMoonPayUrl.d.ts.map +1 -1
- package/dist/modules/initializeClient/initializeClient.d.ts +16 -0
- package/dist/modules/initializeClient/initializeClient.d.ts.map +1 -1
- package/dist/modules/initializeClient/waitForClientInitialized/waitForClientInitialized.d.ts +12 -2
- package/dist/modules/initializeClient/waitForClientInitialized/waitForClientInitialized.d.ts.map +1 -1
- package/dist/modules/mfa/consumeMfaToken/consumeMfaToken.d.ts +0 -1
- package/dist/modules/mfa/consumeMfaToken/consumeMfaToken.d.ts.map +1 -1
- package/dist/modules/mfa/createNewMfaRecoveryCodes/createNewMfaRecoveryCodes.d.ts +0 -1
- package/dist/modules/mfa/createNewMfaRecoveryCodes/createNewMfaRecoveryCodes.d.ts.map +1 -1
- package/dist/modules/mfa/isPendingRecoveryCodesAcknowledgment/isPendingRecoveryCodesAcknowledgment.d.ts +1 -0
- package/dist/modules/mfa/isPendingRecoveryCodesAcknowledgment/isPendingRecoveryCodesAcknowledgment.d.ts.map +1 -1
- package/dist/modules/mfa/isUserMissingMfaAuth/isUserMissingMfaAuth.d.ts +1 -0
- package/dist/modules/mfa/isUserMissingMfaAuth/isUserMissingMfaAuth.d.ts.map +1 -1
- package/dist/modules/mfa/registerTotpMfaDevice/registerTotpMfaDevice.d.ts +0 -3
- package/dist/modules/mfa/registerTotpMfaDevice/registerTotpMfaDevice.d.ts.map +1 -1
- package/dist/modules/otp/sendEmailOTP/sendEmailOTP.d.ts +14 -1
- package/dist/modules/otp/sendEmailOTP/sendEmailOTP.d.ts.map +1 -1
- package/dist/modules/otp/sendSmsOTP/sendSmsOTP.d.ts +12 -1
- package/dist/modules/otp/sendSmsOTP/sendSmsOTP.d.ts.map +1 -1
- package/dist/modules/otp/verifyOTP/verifyOTP.d.ts +33 -2
- package/dist/modules/otp/verifyOTP/verifyOTP.d.ts.map +1 -1
- package/dist/modules/otp/verifyOTP/verifyOTPForUserSignIn/verifyOTPForUserSignIn.d.ts +1 -1
- package/dist/modules/otp/verifyOTP/verifyOTPForUserSignIn/verifyOTPForUserSignIn.d.ts.map +1 -1
- package/dist/modules/projectSettings/fetchProjectSettings/fetchProjectSettings.d.ts +8 -0
- package/dist/modules/projectSettings/fetchProjectSettings/fetchProjectSettings.d.ts.map +1 -1
- package/dist/modules/user/checkUserScopes/checkUserScopes.d.ts +28 -0
- package/dist/modules/user/checkUserScopes/checkUserScopes.d.ts.map +1 -0
- package/dist/modules/user/checkUserScopes/index.d.ts +2 -0
- package/dist/modules/user/checkUserScopes/index.d.ts.map +1 -0
- package/dist/modules/user/deleteUser/deleteUser.d.ts +8 -0
- package/dist/modules/user/deleteUser/deleteUser.d.ts.map +1 -1
- package/dist/modules/user/isUserOnboardingComplete/isUserOnboardingComplete.d.ts +9 -1
- package/dist/modules/user/isUserOnboardingComplete/isUserOnboardingComplete.d.ts.map +1 -1
- package/dist/modules/user/refreshAuth/refreshAuth.d.ts +17 -4
- package/dist/modules/user/refreshAuth/refreshAuth.d.ts.map +1 -1
- package/dist/modules/user/refreshUser/refreshUser.d.ts +16 -3
- package/dist/modules/user/refreshUser/refreshUser.d.ts.map +1 -1
- package/dist/modules/user/updateUser/updateUser.d.ts +0 -1
- package/dist/modules/user/updateUser/updateUser.d.ts.map +1 -1
- package/dist/modules/user/user.types.d.ts +9 -1
- package/dist/modules/user/user.types.d.ts.map +1 -1
- package/dist/modules/waas/getEmbeddedWalletsRequiringUpgrade/getEmbeddedWalletsRequiringUpgrade.d.ts +30 -0
- package/dist/modules/waas/getEmbeddedWalletsRequiringUpgrade/getEmbeddedWalletsRequiringUpgrade.d.ts.map +1 -0
- package/dist/modules/waas/getEmbeddedWalletsRequiringUpgrade/index.d.ts +2 -0
- package/dist/modules/waas/getEmbeddedWalletsRequiringUpgrade/index.d.ts.map +1 -0
- package/dist/modules/waas/hasEmbeddedWalletsRequiringUpgrade/hasEmbeddedWalletsRequiringUpgrade.d.ts +23 -0
- package/dist/modules/waas/hasEmbeddedWalletsRequiringUpgrade/hasEmbeddedWalletsRequiringUpgrade.d.ts.map +1 -0
- package/dist/modules/waas/hasEmbeddedWalletsRequiringUpgrade/index.d.ts +2 -0
- package/dist/modules/waas/hasEmbeddedWalletsRequiringUpgrade/index.d.ts.map +1 -0
- package/dist/modules/wallets/connectAndVerifyWithWalletProvider/connectAndVerifyWithWalletProvider.d.ts +11 -1
- package/dist/modules/wallets/connectAndVerifyWithWalletProvider/connectAndVerifyWithWalletProvider.d.ts.map +1 -1
- package/dist/modules/wallets/connectWithWalletProvider/connectWithWalletProvider.d.ts +11 -3
- package/dist/modules/wallets/connectWithWalletProvider/connectWithWalletProvider.d.ts.map +1 -1
- package/dist/modules/wallets/disconnectWalletAccount/disconnectWalletAccount.d.ts +16 -3
- package/dist/modules/wallets/disconnectWalletAccount/disconnectWalletAccount.d.ts.map +1 -1
- package/dist/modules/wallets/getConnectedAddresses/getConnectedAddresses.d.ts +9 -1
- package/dist/modules/wallets/getConnectedAddresses/getConnectedAddresses.d.ts.map +1 -1
- package/dist/modules/wallets/getWalletAccounts/getWalletAccounts.d.ts +11 -1
- package/dist/modules/wallets/getWalletAccounts/getWalletAccounts.d.ts.map +1 -1
- package/dist/modules/wallets/getWalletProviderDataByKey/getWalletProviderDataByKey.d.ts +2 -1
- package/dist/modules/wallets/getWalletProviderDataByKey/getWalletProviderDataByKey.d.ts.map +1 -1
- package/dist/modules/wallets/isAnyWalletAccountConnected/isAnyWalletAccountConnected.d.ts +9 -0
- package/dist/modules/wallets/isAnyWalletAccountConnected/isAnyWalletAccountConnected.d.ts.map +1 -1
- package/dist/modules/wallets/isWalletAccountVerified/isWalletAccountVerified.d.ts +10 -2
- package/dist/modules/wallets/isWalletAccountVerified/isWalletAccountVerified.d.ts.map +1 -1
- package/dist/modules/wallets/networks/getBalance/getBalance.d.ts +8 -0
- package/dist/modules/wallets/networks/getBalance/getBalance.d.ts.map +1 -1
- package/dist/modules/wallets/networks/getNativeBalance/getNativeBalance.d.ts +8 -0
- package/dist/modules/wallets/networks/getNativeBalance/getNativeBalance.d.ts.map +1 -1
- package/dist/modules/wallets/networks/switchActiveNetwork/switchActiveNetwork.d.ts +11 -1
- package/dist/modules/wallets/networks/switchActiveNetwork/switchActiveNetwork.d.ts.map +1 -1
- package/dist/modules/wallets/proveWalletAccountOwnership/proveWalletAccountOwnership.d.ts +10 -0
- package/dist/modules/wallets/proveWalletAccountOwnership/proveWalletAccountOwnership.d.ts.map +1 -1
- package/dist/modules/wallets/removeWalletAccount/removeWalletAccount.d.ts +9 -1
- package/dist/modules/wallets/removeWalletAccount/removeWalletAccount.d.ts.map +1 -1
- package/dist/modules/wallets/selectedWalletAccount/getPrimaryWalletAccount/getPrimaryWalletAccount.d.ts +24 -0
- package/dist/modules/wallets/selectedWalletAccount/getPrimaryWalletAccount/getPrimaryWalletAccount.d.ts.map +1 -0
- package/dist/modules/wallets/selectedWalletAccount/getPrimaryWalletAccount/index.d.ts.map +1 -0
- package/dist/modules/wallets/selectedWalletAccount/getSelectedWalletAccount/getSelectedWalletAccount.d.ts +30 -0
- package/dist/modules/wallets/selectedWalletAccount/getSelectedWalletAccount/getSelectedWalletAccount.d.ts.map +1 -0
- package/dist/modules/wallets/selectedWalletAccount/getSelectedWalletAccount/index.d.ts +2 -0
- package/dist/modules/wallets/selectedWalletAccount/getSelectedWalletAccount/index.d.ts.map +1 -0
- package/dist/modules/wallets/selectedWalletAccount/selectPrimaryWalletAccount/index.d.ts.map +1 -0
- package/dist/modules/wallets/selectedWalletAccount/selectPrimaryWalletAccount/selectPrimaryWalletAccount.d.ts +28 -0
- package/dist/modules/wallets/selectedWalletAccount/selectPrimaryWalletAccount/selectPrimaryWalletAccount.d.ts.map +1 -0
- package/dist/modules/wallets/selectedWalletAccount/setSelectedWalletAccount/index.d.ts +2 -0
- package/dist/modules/wallets/selectedWalletAccount/setSelectedWalletAccount/index.d.ts.map +1 -0
- package/dist/modules/wallets/selectedWalletAccount/setSelectedWalletAccount/setSelectedWalletAccount.d.ts +34 -0
- package/dist/modules/wallets/selectedWalletAccount/setSelectedWalletAccount/setSelectedWalletAccount.d.ts.map +1 -0
- package/dist/modules/wallets/signMessage/signMessage.d.ts +12 -1
- package/dist/modules/wallets/signMessage/signMessage.d.ts.map +1 -1
- package/dist/modules/wallets/transferAmount/transferAmount.d.ts +13 -2
- package/dist/modules/wallets/transferAmount/transferAmount.d.ts.map +1 -1
- package/dist/modules/wallets/transferWalletAccount/transferWalletAccount.d.ts +10 -1
- package/dist/modules/wallets/transferWalletAccount/transferWalletAccount.d.ts.map +1 -1
- package/dist/modules/wallets/utils/getWalletAccountFromAddress/getWalletAccountFromAddress.d.ts +11 -1
- package/dist/modules/wallets/utils/getWalletAccountFromAddress/getWalletAccountFromAddress.d.ts.map +1 -1
- package/dist/modules/wallets/verifyMessageSignatureOwnership/verifyMessageSignatureOwnership.d.ts +3 -0
- package/dist/modules/wallets/verifyMessageSignatureOwnership/verifyMessageSignatureOwnership.d.ts.map +1 -1
- package/dist/modules/wallets/verifyWalletAccount/verifyWalletAccount.d.ts +12 -1
- package/dist/modules/wallets/verifyWalletAccount/verifyWalletAccount.d.ts.map +1 -1
- package/dist/services/instrumentation/createInstrumentation/createInstrumentation.d.ts.map +1 -1
- package/dist/services/instrumentation/instrumentFunction/instrumentFunction.d.ts +40 -34
- package/dist/services/instrumentation/instrumentFunction/instrumentFunction.d.ts.map +1 -1
- package/dist/services/instrumentation/instrumentation.types.d.ts +50 -19
- package/dist/services/instrumentation/instrumentation.types.d.ts.map +1 -1
- package/dist/services/keychain/createKeychainService/createKeychainService.d.ts.map +1 -1
- package/dist/services/navigate/createNavigationHandler/createNavigationHandler.d.ts.map +1 -1
- package/dist/services/openDeeplink/createWebDeeplinkOpener/createWebDeeplinkOpener.d.ts.map +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/{updateAuthFromVerifyResponse-D1w-Aw9P.native.esm.js → updateAuthFromVerifyResponse-DFjqCSu2.native.esm.js} +235 -159
- package/dist/updateAuthFromVerifyResponse-DFjqCSu2.native.esm.js.map +1 -0
- package/dist/{updateAuthFromVerifyResponse-azIi_3FB.esm.js → updateAuthFromVerifyResponse-_oYRLK_w.esm.js} +235 -159
- package/dist/updateAuthFromVerifyResponse-_oYRLK_w.esm.js.map +1 -0
- package/dist/{updateAuthFromVerifyResponse-CElYpi97.cjs → updateAuthFromVerifyResponse-pgYXvDvj.cjs} +241 -159
- package/dist/updateAuthFromVerifyResponse-pgYXvDvj.cjs.map +1 -0
- package/dist/utils/assertSafeDeeplinkUrl/assertSafeDeeplinkUrl.d.ts +12 -0
- package/dist/utils/assertSafeDeeplinkUrl/assertSafeDeeplinkUrl.d.ts.map +1 -0
- package/dist/utils/assertSafeDeeplinkUrl/index.d.ts +2 -0
- package/dist/utils/assertSafeDeeplinkUrl/index.d.ts.map +1 -0
- package/dist/utils/assertSafeNavigationUrl/assertSafeNavigationUrl.d.ts +12 -0
- package/dist/utils/assertSafeNavigationUrl/assertSafeNavigationUrl.d.ts.map +1 -0
- package/dist/utils/assertSafeNavigationUrl/index.d.ts +2 -0
- package/dist/utils/assertSafeNavigationUrl/index.d.ts.map +1 -0
- package/dist/utils/getSecureCookieAttribute/getSecureCookieAttribute.d.ts +18 -0
- package/dist/utils/getSecureCookieAttribute/getSecureCookieAttribute.d.ts.map +1 -0
- package/dist/utils/getSecureCookieAttribute/index.d.ts +2 -0
- package/dist/utils/getSecureCookieAttribute/index.d.ts.map +1 -0
- package/dist/waas.cjs +72 -5
- package/dist/waas.cjs.map +1 -1
- package/dist/waas.esm.js +70 -5
- package/dist/waas.esm.js.map +1 -1
- package/dist/waas.native.esm.js +70 -5
- package/dist/waas.native.esm.js.map +1 -1
- package/dist/waasCore.cjs +6 -6
- package/dist/waasCore.esm.js +6 -6
- package/dist/waasCore.native.esm.js +6 -6
- package/package.json +3 -3
- package/dist/getNetworkProviderFromNetworkId-Bfg-NkNJ.native.esm.js.map +0 -1
- package/dist/getNetworkProviderFromNetworkId-CS4r9hi7.cjs.map +0 -1
- package/dist/getNetworkProviderFromNetworkId-pknqqhk1.esm.js.map +0 -1
- package/dist/isDynamicWaasEnabled-BXe0VyI4.native.esm.js.map +0 -1
- package/dist/isDynamicWaasEnabled-BYaqAOml.esm.js.map +0 -1
- package/dist/isDynamicWaasEnabled-BwP1oowd.cjs.map +0 -1
- package/dist/isMfaRequiredForAction-Btejc5g3.cjs.map +0 -1
- package/dist/isMfaRequiredForAction-CqEcCTIe.esm.js.map +0 -1
- package/dist/isMfaRequiredForAction-Demz9zlH.native.esm.js.map +0 -1
- package/dist/isUserOnboardingComplete-C86NDY7I.cjs.map +0 -1
- package/dist/isUserOnboardingComplete-CBrAH0ZF.esm.js.map +0 -1
- package/dist/isUserOnboardingComplete-Cr-YTpcU.native.esm.js.map +0 -1
- package/dist/modules/wallets/primaryWalletAccount/getPrimaryWalletAccount/getPrimaryWalletAccount.d.ts +0 -10
- package/dist/modules/wallets/primaryWalletAccount/getPrimaryWalletAccount/getPrimaryWalletAccount.d.ts.map +0 -1
- package/dist/modules/wallets/primaryWalletAccount/getPrimaryWalletAccount/index.d.ts.map +0 -1
- package/dist/modules/wallets/primaryWalletAccount/selectPrimaryWalletAccount/index.d.ts.map +0 -1
- package/dist/modules/wallets/primaryWalletAccount/selectPrimaryWalletAccount/selectPrimaryWalletAccount.d.ts +0 -12
- package/dist/modules/wallets/primaryWalletAccount/selectPrimaryWalletAccount/selectPrimaryWalletAccount.d.ts.map +0 -1
- package/dist/services/instrumentation/instrumentFunction/extractParams/extractParams.d.ts +0 -28
- package/dist/services/instrumentation/instrumentFunction/extractParams/extractParams.d.ts.map +0 -1
- package/dist/services/instrumentation/instrumentFunction/scrubResolvedValue/scrubResolvedValue.d.ts +0 -15
- package/dist/services/instrumentation/instrumentFunction/scrubResolvedValue/scrubResolvedValue.d.ts.map +0 -1
- package/dist/updateAuthFromVerifyResponse-CElYpi97.cjs.map +0 -1
- package/dist/updateAuthFromVerifyResponse-D1w-Aw9P.native.esm.js.map +0 -1
- package/dist/updateAuthFromVerifyResponse-azIi_3FB.esm.js.map +0 -1
- /package/dist/modules/wallets/{primaryWalletAccount → selectedWalletAccount}/getPrimaryWalletAccount/index.d.ts +0 -0
- /package/dist/modules/wallets/{primaryWalletAccount → selectedWalletAccount}/selectPrimaryWalletAccount/index.d.ts +0 -0
package/dist/index.esm.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { $ as MfaRateLimitedError, A as
|
|
2
|
-
import {
|
|
3
|
-
import { a as generateSessionKeys, c as isSignedIn, i as __logoutWithReason_wrapped, l as retryOnFail, n as getMfaMethods, o as fetchProjectSettings, r as __consumeMfaToken_wrapped, s as createStorageKeySchema, t as isMfaRequiredForAction } from "./isMfaRequiredForAction-
|
|
4
|
-
import { n as NotWaasWalletAccountError, r as __refreshAuth_wrapped } from "./isDynamicWaasEnabled-
|
|
5
|
-
import { a as WaasOnboardingIncompleteError, i as preconnectWaasIframe, n as isPendingRecoveryCodesAcknowledgment, r as isDeviceRegistrationRequired, t as isUserOnboardingComplete } from "./isUserOnboardingComplete-
|
|
6
|
-
import { n as getVerifiedCredentialForWalletAccount, t as getWalletProviderByKey } from "./getWalletProviderByKey-
|
|
1
|
+
import { $ as MfaRateLimitedError, A as getWalletAccounts, B as offEvent, C as extractSessionId, D as getWalletProviderRegistry, E as WalletProviderPriority, F as formatWalletAccountId, G as fetchAndStoreNonces, H as onceEvent, I as normalizeAddress, K as createApiClient, L as splitWalletProviderKey, N as getChainFromVerifiedCredentialChain, P as CHAINS_INFO_MAP, Q as SandboxMaximumThresholdReachedError, S as getOperatingSystem, T as getWalletProviderFromWalletAccount, V as onEvent, Z as getNonce, _ as SDK_API_CORE_VERSION, _t as BaseError, a as initializeWaasClientsForEagerRecovery, at as isCookieEnabled, b as DEFAULT_PII_FIELDS, bt as version, ct as getElevatedAccessToken, et as MfaInvalidOtpError, f as getWalletProviders, g as DYNAMIC_ICONIC_SPRITE_URL, ht as setDefaultClient, i as InvalidParamError, k as NoWalletProviderFoundError, lt as randomString, m as checkAndRaiseWalletAccountsChangedEvent, mt as getDefaultClient, n as upsertElevatedAccessToken, nt as InvalidExternalAuthError, ot as assertDefined, p as isUserMissingMfaAuth, pt as NONCE_POOL_SIZE, q as UnauthorizedError, r as parseElevatedAccessToken, rt as APIError, st as ValueMustBeDefinedError, t as updateAuthFromVerifyResponse, tt as LinkCredentialError, ut as getPlatform, v as instrumentFunction, vt as getCore, x as getUserAgent, y as scrubParameters, yt as name, z as emitEvent } from "./updateAuthFromVerifyResponse-_oYRLK_w.esm.js";
|
|
2
|
+
import { B as createStorage, C as getKeychainIndexedDBName, E as assertSafeNavigationUrl, F as INITIALIZE_STORAGE_SYNC_TRACKER_KEY, H as createLocalStorageAdapter, I as REFRESH_USER_STATE_FROM_COOKIE_TRACKER_KEY, L as REFRESH_USER_STATE_FROM_VALID_TOKEN_TRACKER_KEY, M as createDeferredPromise, N as FETCH_PROJECT_SETTINGS_TRACKER_KEY, O as createLogger, P as GENERATE_SESSION_KEYS_TRACKER_KEY, R as isServerSideRendering, S as MergeAccountsConfirmationError, T as createKeychainService, U as subscribeWithSelector, W as isEqualShallow, _ as consumeCaptchaToken, a as verifyMessageSignatureOwnership, b as WalletAlreadyLinkedToAnotherUserError, c as formatSignInMessage, d as updateWalletProviderKeysForVerifiedCredentials, f as setUnverifiedWalletAccounts, g as MethodNotImplementedError, h as __setCaptchaToken_wrapped, i as getNetworksData, j as CannotTrackError, k as createCrossTabBroadcast, l as getAppMetadata, m as hasExtension, o as removeUnverifiedWalletAccount, p as createVisit, s as createSignInMessageStatement, t as getNetworkProviderFromNetworkId, u as reconcileWalletAccountsAgainstClient, v as isCaptchaRequired, w as createRealtimeService, x as NoNetworkProvidersError, y as WalletScreeningBlockedError, z as getBuffer } from "./getNetworkProviderFromNetworkId-D3uwhdMN.esm.js";
|
|
3
|
+
import { a as generateSessionKeys, c as isSignedIn, i as __logoutWithReason_wrapped, l as retryOnFail, n as getMfaMethods, o as fetchProjectSettings, r as __consumeMfaToken_wrapped, s as createStorageKeySchema, t as isMfaRequiredForAction } from "./isMfaRequiredForAction-DTp4CZBt.esm.js";
|
|
4
|
+
import { n as NotWaasWalletAccountError, r as __refreshAuth_wrapped } from "./isDynamicWaasEnabled-DDrg89y1.esm.js";
|
|
5
|
+
import { a as WaasOnboardingIncompleteError, i as preconnectWaasIframe, n as isPendingRecoveryCodesAcknowledgment, r as isDeviceRegistrationRequired, t as isUserOnboardingComplete } from "./isUserOnboardingComplete-Dy2Ygp0u.esm.js";
|
|
6
|
+
import { n as getVerifiedCredentialForWalletAccount, t as getWalletProviderByKey } from "./getWalletProviderByKey-Cr8m-Nax.esm.js";
|
|
7
7
|
import { assertPackageVersion } from "@dynamic-labs-sdk/assert-package-version";
|
|
8
|
-
import { AuthModeEnum, ExchangeKeyEnum, JwtVerifiedCredentialFormatEnum, JwtVerifiedCredentialFormatEnum as JwtVerifiedCredentialFormatEnum$1, MFAAction, MfaBackupCodeAcknowledgement, ProviderEnum, ProviderEnum as ProviderEnum$1, TokenScope, TokenScope as TokenScope$1, WaasBackupOptionsEnum, WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
|
|
8
|
+
import { AuthModeEnum, CaptchaProviderEnum as CaptchaProviderEnum$1, ExchangeKeyEnum, JwtVerifiedCredentialFormatEnum, JwtVerifiedCredentialFormatEnum as JwtVerifiedCredentialFormatEnum$1, MFAAction, MfaBackupCodeAcknowledgement, ProviderEnum, ProviderEnum as ProviderEnum$1, TokenScope, TokenScope as TokenScope$1, WaasBackupOptionsEnum, WalletProviderEnum } from "@dynamic-labs/sdk-api-core";
|
|
9
9
|
import * as z from "zod/mini";
|
|
10
10
|
import EventEmitter, { EventEmitter as EventEmitter$1 } from "eventemitter3";
|
|
11
11
|
import { browserSupportsWebAuthn, startAuthentication, startRegistration } from "@simplewebauthn/browser";
|
|
@@ -353,13 +353,26 @@ const initializeStorageSync = async (client) => {
|
|
|
353
353
|
//#endregion
|
|
354
354
|
//#region src/modules/user/refreshUser/refreshUser.ts
|
|
355
355
|
/**
|
|
356
|
-
* Refreshes the current user's
|
|
356
|
+
* Refreshes the current user's profile from the server.
|
|
357
357
|
*
|
|
358
|
-
* This
|
|
359
|
-
*
|
|
358
|
+
* This fetches the latest authenticated user from the backend and updates only
|
|
359
|
+
* the local user state, returning the `SdkUser`. It does not touch the auth
|
|
360
|
+
* token — use it when you just need up-to-date user data.
|
|
361
|
+
*
|
|
362
|
+
* Prefer `refreshAuth` when you need to rotate the auth token as well: it runs
|
|
363
|
+
* a full verify, updates both token and user state, and returns the raw
|
|
364
|
+
* `VerifyResponse` (including the new token).
|
|
365
|
+
*
|
|
366
|
+
* @example
|
|
367
|
+
* ```ts
|
|
368
|
+
* const user = await refreshUser();
|
|
369
|
+
* console.log('Updated user:', user.email);
|
|
370
|
+
* ```
|
|
360
371
|
*
|
|
361
372
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
362
373
|
* @returns A promise that resolves to the authenticated user.
|
|
374
|
+
* @see refreshAuth
|
|
375
|
+
* @see deleteUser
|
|
363
376
|
* @instrumented
|
|
364
377
|
* @noHook Low-level refresh primitive that is not exposed as a React hook.
|
|
365
378
|
*/
|
|
@@ -410,9 +423,25 @@ var ClientAlreadyInitializedError = class extends BaseError {
|
|
|
410
423
|
*
|
|
411
424
|
* You only need to call this function if you are not using `autoInitialize: true` in createDynamicClient.
|
|
412
425
|
*
|
|
426
|
+
* @example
|
|
427
|
+
* ```ts
|
|
428
|
+
* const client = createDynamicClient({
|
|
429
|
+
* environmentId: 'env-id',
|
|
430
|
+
* autoInitialize: false,
|
|
431
|
+
* });
|
|
432
|
+
*
|
|
433
|
+
* try {
|
|
434
|
+
* await initializeClient(client);
|
|
435
|
+
* } catch (error) {
|
|
436
|
+
* console.error('Failed to initialize:', error);
|
|
437
|
+
* }
|
|
438
|
+
* ```
|
|
439
|
+
*
|
|
413
440
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
414
441
|
* @returns A promise that resolves when initialization is complete.
|
|
415
442
|
* @throws ClientAlreadyInitializedError If the client is already initialized.
|
|
443
|
+
* @see createDynamicClient
|
|
444
|
+
* @see waitForClientInitialized
|
|
416
445
|
* @instrumented
|
|
417
446
|
* @noHook Client lifecycle management is not exposed as a React hook.
|
|
418
447
|
*/
|
|
@@ -749,10 +778,67 @@ const createDynamicTransport = (params) => {
|
|
|
749
778
|
const createNavigationHandler = () => {
|
|
750
779
|
if (isServerSideRendering()) return () => Promise.reject(new UnavailableInServerSideError("createNavigationHandler"));
|
|
751
780
|
return async (url) => {
|
|
781
|
+
assertSafeNavigationUrl(url);
|
|
752
782
|
window.location.href = url;
|
|
753
783
|
};
|
|
754
784
|
};
|
|
755
785
|
|
|
786
|
+
//#endregion
|
|
787
|
+
//#region src/errors/UnsafeDeeplinkUrlError.ts
|
|
788
|
+
/**
|
|
789
|
+
* Thrown when a deeplink is opened with a URL whose scheme can execute script
|
|
790
|
+
* in the current origin (`javascript:`, `data:`, `vbscript:`). Unlike
|
|
791
|
+
* navigation, deeplinks legitimately use custom app schemes (e.g. `phantom:`,
|
|
792
|
+
* `metamask:`), so this guards via a denylist of dangerous schemes rather than
|
|
793
|
+
* an `http(s)` allowlist, preventing DOM XSS through the `window.location.assign`
|
|
794
|
+
* sink while leaving valid wallet deeplinks untouched.
|
|
795
|
+
*/
|
|
796
|
+
var UnsafeDeeplinkUrlError = class extends BaseError {
|
|
797
|
+
constructor({ scheme }) {
|
|
798
|
+
super({
|
|
799
|
+
cause: null,
|
|
800
|
+
code: "unsafe_deeplink_url_error",
|
|
801
|
+
docsUrl: null,
|
|
802
|
+
name: "UnsafeDeeplinkUrlError",
|
|
803
|
+
shortMessage: `Refusing to open a deeplink with an unsafe scheme "${scheme}". Script-executing schemes (javascript:, data:, vbscript:) are not allowed. This may indicate a compromised or misconfigured deeplink URL.`
|
|
804
|
+
});
|
|
805
|
+
}
|
|
806
|
+
};
|
|
807
|
+
|
|
808
|
+
//#endregion
|
|
809
|
+
//#region src/utils/assertSafeDeeplinkUrl/assertSafeDeeplinkUrl.ts
|
|
810
|
+
/**
|
|
811
|
+
* Schemes that can execute script in the current origin and must never reach a
|
|
812
|
+
* deeplink navigation sink. Deeplinks legitimately use arbitrary custom app
|
|
813
|
+
* schemes (e.g. `phantom:`, `metamask:`), so a denylist of dangerous schemes is
|
|
814
|
+
* used here instead of the `http(s)` allowlist applied to standard navigation.
|
|
815
|
+
*/
|
|
816
|
+
const DANGEROUS_DEEPLINK_SCHEMES = new Set([
|
|
817
|
+
"javascript:",
|
|
818
|
+
"data:",
|
|
819
|
+
"vbscript:",
|
|
820
|
+
"blob:"
|
|
821
|
+
]);
|
|
822
|
+
/**
|
|
823
|
+
* Asserts that the given deeplink URL is safe to open, i.e. its scheme is not
|
|
824
|
+
* one that can execute script (`javascript:`, `data:`, `vbscript:`, `blob:`). Used as a
|
|
825
|
+
* defense-in-depth guard on the `window.location.assign` deeplink sink to
|
|
826
|
+
* prevent DOM XSS, while still permitting custom wallet app schemes.
|
|
827
|
+
*
|
|
828
|
+
* @param url - The deeplink URL string to validate.
|
|
829
|
+
* @throws {UnsafeDeeplinkUrlError} If the URL cannot be parsed or its scheme can execute script.
|
|
830
|
+
* @notInstrumented
|
|
831
|
+
*/
|
|
832
|
+
const assertSafeDeeplinkUrl = (url) => {
|
|
833
|
+
let parsed;
|
|
834
|
+
try {
|
|
835
|
+
parsed = new URL(url);
|
|
836
|
+
} catch {
|
|
837
|
+
throw new UnsafeDeeplinkUrlError({ scheme: "unknown" });
|
|
838
|
+
}
|
|
839
|
+
if (DANGEROUS_DEEPLINK_SCHEMES.has(parsed.protocol)) throw new UnsafeDeeplinkUrlError({ scheme: parsed.protocol });
|
|
840
|
+
};
|
|
841
|
+
|
|
756
842
|
//#endregion
|
|
757
843
|
//#region src/services/openDeeplink/createWebDeeplinkOpener/createWebDeeplinkOpener.ts
|
|
758
844
|
/**
|
|
@@ -772,6 +858,7 @@ const createNavigationHandler = () => {
|
|
|
772
858
|
const createWebDeeplinkOpener = () => {
|
|
773
859
|
if (isServerSideRendering()) return () => Promise.reject(new UnavailableInServerSideError("createWebDeeplinkOpener"));
|
|
774
860
|
return async (url) => {
|
|
861
|
+
assertSafeDeeplinkUrl(url);
|
|
775
862
|
window.location.assign(url);
|
|
776
863
|
};
|
|
777
864
|
};
|
|
@@ -1038,8 +1125,18 @@ const createCore = (config) => {
|
|
|
1038
1125
|
* Manually calling `initializeClient` also allows you to catch any potential
|
|
1039
1126
|
* errors that may occur during initialization.
|
|
1040
1127
|
*
|
|
1128
|
+
* @example
|
|
1129
|
+
* ```ts
|
|
1130
|
+
* const client = createDynamicClient({
|
|
1131
|
+
* environmentId: 'your-environment-id',
|
|
1132
|
+
* appUrl: 'https://myapp.com',
|
|
1133
|
+
* });
|
|
1134
|
+
* ```
|
|
1135
|
+
*
|
|
1041
1136
|
* @param config - The configuration for the Dynamic client, like the environment ID, app url, etc.
|
|
1042
1137
|
* @returns The Dynamic client instance.
|
|
1138
|
+
* @see initializeClient
|
|
1139
|
+
* @see getDefaultClient
|
|
1043
1140
|
* @instrumented
|
|
1044
1141
|
*/
|
|
1045
1142
|
const createDynamicClient = (config) => {
|
|
@@ -1128,6 +1225,42 @@ var DeeplinkConnectAndVerifyUnsupportedError = class extends BaseError {
|
|
|
1128
1225
|
}
|
|
1129
1226
|
};
|
|
1130
1227
|
|
|
1228
|
+
//#endregion
|
|
1229
|
+
//#region src/errors/DeviceRegistrationIdentityMismatchError.ts
|
|
1230
|
+
/**
|
|
1231
|
+
* Thrown when completing device registration would replace the current session
|
|
1232
|
+
* with a different user's identity.
|
|
1233
|
+
*
|
|
1234
|
+
* The device registration token resolved to a user other than the one currently
|
|
1235
|
+
* authenticated, which can indicate a login-CSRF / session-fixation attempt, so
|
|
1236
|
+
* the returned session is rejected and the current session is left untouched.
|
|
1237
|
+
*
|
|
1238
|
+
* @example
|
|
1239
|
+
* ```ts
|
|
1240
|
+
* try {
|
|
1241
|
+
* await completeDeviceRegistration({ token });
|
|
1242
|
+
* } catch (error) {
|
|
1243
|
+
* if (error instanceof DeviceRegistrationIdentityMismatchError) {
|
|
1244
|
+
* // The current session was preserved; ask the user to retry on this device.
|
|
1245
|
+
* }
|
|
1246
|
+
* }
|
|
1247
|
+
* ```
|
|
1248
|
+
* @see completeDeviceRegistration
|
|
1249
|
+
* @see InvalidDeviceRegistrationRedirectError
|
|
1250
|
+
*/
|
|
1251
|
+
var DeviceRegistrationIdentityMismatchError = class extends BaseError {
|
|
1252
|
+
constructor() {
|
|
1253
|
+
super({
|
|
1254
|
+
cause: null,
|
|
1255
|
+
code: "device_registration_identity_mismatch_error",
|
|
1256
|
+
docsUrl: null,
|
|
1257
|
+
metaMessages: ["The device registration token resolved to a different user than the one currently authenticated.", "This can indicate a login-CSRF / session-fixation attempt, so the returned session was rejected and the current session was left untouched."],
|
|
1258
|
+
name: "DeviceRegistrationIdentityMismatchError",
|
|
1259
|
+
shortMessage: "Device registration completion was rejected because it would have replaced the current session with a different identity."
|
|
1260
|
+
});
|
|
1261
|
+
}
|
|
1262
|
+
};
|
|
1263
|
+
|
|
1131
1264
|
//#endregion
|
|
1132
1265
|
//#region src/errors/FeeEstimationFailedError.ts
|
|
1133
1266
|
var FeeEstimationFailedError = class extends BaseError {
|
|
@@ -1575,7 +1708,6 @@ const __checkStepUpAuth_wrapped = instrumentFunction({
|
|
|
1575
1708
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1576
1709
|
* @returns A promise that resolves to the assertion response containing the elevated access token.
|
|
1577
1710
|
* @instrumented
|
|
1578
|
-
* @redact-params
|
|
1579
1711
|
*/
|
|
1580
1712
|
const requestExternalAuthElevatedToken = async ({ externalJwt }, client = getDefaultClient()) => {
|
|
1581
1713
|
const core = getCore(client);
|
|
@@ -1603,8 +1735,7 @@ const __requestExternalAuthElevatedToken_wrapped = instrumentFunction({
|
|
|
1603
1735
|
} catch {
|
|
1604
1736
|
return;
|
|
1605
1737
|
}
|
|
1606
|
-
}
|
|
1607
|
-
redactAll: true
|
|
1738
|
+
}
|
|
1608
1739
|
});
|
|
1609
1740
|
|
|
1610
1741
|
//#endregion
|
|
@@ -1615,11 +1746,20 @@ const __requestExternalAuthElevatedToken_wrapped = instrumentFunction({
|
|
|
1615
1746
|
* This function allows authentication using JWT tokens from external providers,
|
|
1616
1747
|
* enabling integration with custom authentication systems.
|
|
1617
1748
|
*
|
|
1749
|
+
* @example
|
|
1750
|
+
* ```ts
|
|
1751
|
+
* const response = await signInWithExternalJwt({
|
|
1752
|
+
* externalJwt: 'eyJhbGciOiJSUzI1NiIs...',
|
|
1753
|
+
* });
|
|
1754
|
+
* ```
|
|
1755
|
+
*
|
|
1618
1756
|
* @param [params.externalJwt] - Optional external JWT token to authenticate with. Not required when using cookie based auth.
|
|
1757
|
+
* @param [params.sessionPublicKey] - Optional session public key for session-based auth.
|
|
1619
1758
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1620
1759
|
* @returns A promise that resolves to the authentication response from the server.
|
|
1760
|
+
* @see logout
|
|
1761
|
+
* @see refreshAuth
|
|
1621
1762
|
* @instrumented
|
|
1622
|
-
* @redact-params
|
|
1623
1763
|
*/
|
|
1624
1764
|
const signInWithExternalJwt = async ({ externalJwt, sessionPublicKey } = {}, client = getDefaultClient()) => {
|
|
1625
1765
|
const core = getCore(client);
|
|
@@ -1643,8 +1783,7 @@ const __signInWithExternalJwt_wrapped = instrumentFunction({
|
|
|
1643
1783
|
} catch {
|
|
1644
1784
|
return;
|
|
1645
1785
|
}
|
|
1646
|
-
}
|
|
1647
|
-
redactAll: true
|
|
1786
|
+
}
|
|
1648
1787
|
});
|
|
1649
1788
|
|
|
1650
1789
|
//#endregion
|
|
@@ -1652,8 +1791,21 @@ const __signInWithExternalJwt_wrapped = instrumentFunction({
|
|
|
1652
1791
|
/**
|
|
1653
1792
|
* Logs out the current user and clears all authentication data.
|
|
1654
1793
|
*
|
|
1794
|
+
* @example
|
|
1795
|
+
* ```ts
|
|
1796
|
+
* await logout();
|
|
1797
|
+
* ```
|
|
1798
|
+
*
|
|
1799
|
+
* @example
|
|
1800
|
+
* ```ts
|
|
1801
|
+
* // With explicit client for multi-client setups
|
|
1802
|
+
* await logout(myClient);
|
|
1803
|
+
* ```
|
|
1804
|
+
*
|
|
1655
1805
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1656
1806
|
* @returns A promise that resolves when the logout process is complete.
|
|
1807
|
+
* @see isAnyWalletAccountConnected
|
|
1808
|
+
* @see refreshAuth
|
|
1657
1809
|
* @notInstrumented
|
|
1658
1810
|
*/
|
|
1659
1811
|
const logout = async (client = getDefaultClient()) => {
|
|
@@ -1666,6 +1818,58 @@ const logout = async (client = getDefaultClient()) => {
|
|
|
1666
1818
|
return __logoutWithReason_wrapped({ reason: "user-intent" }, client);
|
|
1667
1819
|
};
|
|
1668
1820
|
|
|
1821
|
+
//#endregion
|
|
1822
|
+
//#region src/modules/auth/mergeUserAccounts/mergeUserAccounts.ts
|
|
1823
|
+
/**
|
|
1824
|
+
* Completes an account merge after a credential was found to already belong to
|
|
1825
|
+
* another user (surfaced as `MergeAccountsConfirmationError` during
|
|
1826
|
+
* verification / linking).
|
|
1827
|
+
*
|
|
1828
|
+
* When the merge has no field-level conflicts, call it with no resolutions to
|
|
1829
|
+
* merge directly. When the two accounts hold different values for the same
|
|
1830
|
+
* profile field, pass the user's chosen `conflictResolutions` (one per
|
|
1831
|
+
* conflict) so the backend knows which value to keep. On success the two users
|
|
1832
|
+
* are folded into one, the merged session is persisted, and the merged user is
|
|
1833
|
+
* returned.
|
|
1834
|
+
*
|
|
1835
|
+
* @example
|
|
1836
|
+
* ```ts
|
|
1837
|
+
* try {
|
|
1838
|
+
* await verifyWalletAccount({ walletAccount });
|
|
1839
|
+
* } catch (error) {
|
|
1840
|
+
* if (error instanceof MergeAccountsConfirmationError) {
|
|
1841
|
+
* // resolveConflicts is your own function (not provided by the SDK): given
|
|
1842
|
+
* // the conflicting fields, decide which value to keep for each one —
|
|
1843
|
+
* // usually by prompting the user — and return them as MergeUserConflictResolution[].
|
|
1844
|
+
* await mergeUserAccounts(
|
|
1845
|
+
* error.mergeConflicts
|
|
1846
|
+
* ? { conflictResolutions: resolveConflicts(error.mergeConflicts) }
|
|
1847
|
+
* : undefined,
|
|
1848
|
+
* );
|
|
1849
|
+
* }
|
|
1850
|
+
* }
|
|
1851
|
+
* ```
|
|
1852
|
+
* @param params.conflictResolutions - Optional per-field conflict resolutions.
|
|
1853
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1854
|
+
* @returns A promise that resolves to the merged user.
|
|
1855
|
+
* @see MergeAccountsConfirmationError
|
|
1856
|
+
* @see MergeUserConflictResolution
|
|
1857
|
+
* @notInstrumented
|
|
1858
|
+
*/
|
|
1859
|
+
const mergeUserAccounts = async ({ conflictResolutions } = {}, client = getDefaultClient()) => {
|
|
1860
|
+
const core = getCore(client);
|
|
1861
|
+
const apiClient = createApiClient({}, client);
|
|
1862
|
+
const hasConflictResolutions = conflictResolutions !== void 0 && conflictResolutions.length > 0;
|
|
1863
|
+
let response;
|
|
1864
|
+
if (hasConflictResolutions) response = await apiClient.verifyMergeUsers({
|
|
1865
|
+
environmentId: core.environmentId,
|
|
1866
|
+
mergeUserConflictResolutions: { mergeUserResolutions: conflictResolutions }
|
|
1867
|
+
});
|
|
1868
|
+
else response = await apiClient.mergeUsers({ environmentId: core.environmentId });
|
|
1869
|
+
updateAuthFromVerifyResponse({ response }, client);
|
|
1870
|
+
return response.user;
|
|
1871
|
+
};
|
|
1872
|
+
|
|
1669
1873
|
//#endregion
|
|
1670
1874
|
//#region src/modules/auth/passkeys/deletePasskey/deletePasskey.ts
|
|
1671
1875
|
/**
|
|
@@ -1751,12 +1955,18 @@ const serverRegisterPasskey = async ({ registration, createMfaToken }, client) =
|
|
|
1751
1955
|
* passwordless authentication. The user will be prompted to create a passkey
|
|
1752
1956
|
* using their device's biometric authentication or security key.
|
|
1753
1957
|
*
|
|
1958
|
+
* @example
|
|
1959
|
+
* ```ts
|
|
1960
|
+
* await registerPasskey();
|
|
1961
|
+
* ```
|
|
1962
|
+
*
|
|
1754
1963
|
* @param [params.createMfaToken] - Optional configuration for MFA token creation.
|
|
1755
1964
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1756
1965
|
* @returns A promise that resolves to the registration response.
|
|
1757
1966
|
* @throws NoWebAuthNSupportError If WebAuthn is not supported by the browser.
|
|
1967
|
+
* @see signInWithPasskey
|
|
1968
|
+
* @see getPasskeys
|
|
1758
1969
|
* @instrumented
|
|
1759
|
-
* @redact-params
|
|
1760
1970
|
*/
|
|
1761
1971
|
const registerPasskey = async ({ createMfaToken } = {}, client = getDefaultClient()) => {
|
|
1762
1972
|
const core = getCore(client);
|
|
@@ -1779,8 +1989,7 @@ const __registerPasskey_wrapped = instrumentFunction({
|
|
|
1779
1989
|
} catch {
|
|
1780
1990
|
return;
|
|
1781
1991
|
}
|
|
1782
|
-
}
|
|
1783
|
-
redactAll: true
|
|
1992
|
+
}
|
|
1784
1993
|
});
|
|
1785
1994
|
|
|
1786
1995
|
//#endregion
|
|
@@ -1821,11 +2030,19 @@ const serverSigninPasskey = async ({ authentication, createMfaToken }, client) =
|
|
|
1821
2030
|
* credential, providing passwordless authentication using biometrics or
|
|
1822
2031
|
* security keys.
|
|
1823
2032
|
*
|
|
2033
|
+
* @example
|
|
2034
|
+
* ```ts
|
|
2035
|
+
* const response = await signInWithPasskey();
|
|
2036
|
+
* console.log('Signed in:', response.user.email);
|
|
2037
|
+
* ```
|
|
2038
|
+
*
|
|
2039
|
+
* @param [params.relatedOriginRpId] - Optional relying party ID for cross-origin authentication.
|
|
1824
2040
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
1825
2041
|
* @returns A promise that resolves to the authentication response.
|
|
1826
2042
|
* @throws NoWebAuthNSupportError If WebAuthn is not supported by the browser.
|
|
2043
|
+
* @see registerPasskey
|
|
2044
|
+
* @see getPasskeys
|
|
1827
2045
|
* @instrumented
|
|
1828
|
-
* @redact-params
|
|
1829
2046
|
*/
|
|
1830
2047
|
const signInWithPasskey = async ({ relatedOriginRpId } = {}, client = getDefaultClient()) => {
|
|
1831
2048
|
const core = getCore(client);
|
|
@@ -1845,8 +2062,7 @@ const __signInWithPasskey_wrapped = instrumentFunction({
|
|
|
1845
2062
|
} catch {
|
|
1846
2063
|
return;
|
|
1847
2064
|
}
|
|
1848
|
-
}
|
|
1849
|
-
redactAll: true
|
|
2065
|
+
}
|
|
1850
2066
|
});
|
|
1851
2067
|
|
|
1852
2068
|
//#endregion
|
|
@@ -1950,22 +2166,29 @@ const addOAuthUrlParams = ({ baseUrl, isGoogleDriveBackupEnabled, provider }) =>
|
|
|
1950
2166
|
|
|
1951
2167
|
//#endregion
|
|
1952
2168
|
//#region src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/getOAuthBaseUrl/getOAuthBaseUrl.ts
|
|
1953
|
-
/**
|
|
2169
|
+
/**
|
|
2170
|
+
* Resolves the raw base URL string for a provider before parsing/validation.
|
|
1954
2171
|
*/
|
|
1955
|
-
const
|
|
2172
|
+
const resolveBaseUrl = (provider) => {
|
|
1956
2173
|
assertDefined(provider.provider, "Provider type not found");
|
|
1957
2174
|
const providerType = provider.provider;
|
|
1958
2175
|
if (providerType === ProviderEnum$1.Telegram) {
|
|
1959
2176
|
assertDefined(provider.authorizationUrl, "Telegram authorization URL not found");
|
|
1960
|
-
return
|
|
2177
|
+
return provider.authorizationUrl;
|
|
1961
2178
|
}
|
|
1962
2179
|
assertDefined(provider.baseAuthUrl, "Base auth URL not found");
|
|
1963
2180
|
if (providerType === ProviderEnum$1.Shopify) {
|
|
1964
2181
|
assertDefined(provider.shopifyStore, "Shopify store value not found in provider");
|
|
1965
|
-
|
|
1966
|
-
return new URL(loginBaseUrl);
|
|
2182
|
+
return provider.baseAuthUrl.replace("{{shopifyStore}}", provider.shopifyStore);
|
|
1967
2183
|
}
|
|
1968
|
-
return
|
|
2184
|
+
return provider.baseAuthUrl;
|
|
2185
|
+
};
|
|
2186
|
+
/** Helper function to build the OAuth base URL for a given provider. * @notInstrumented
|
|
2187
|
+
*/
|
|
2188
|
+
const getOAuthBaseUrl = (provider) => {
|
|
2189
|
+
const urlString = resolveBaseUrl(provider);
|
|
2190
|
+
assertSafeNavigationUrl(urlString);
|
|
2191
|
+
return new URL(urlString);
|
|
1969
2192
|
};
|
|
1970
2193
|
|
|
1971
2194
|
//#endregion
|
|
@@ -2014,9 +2237,19 @@ const buildOAuthUrl = async (core, provider) => {
|
|
|
2014
2237
|
* back because of this flow, then call `completeSocialRedirect` to finish
|
|
2015
2238
|
* the social authentication.
|
|
2016
2239
|
*
|
|
2240
|
+
* @example
|
|
2241
|
+
* ```ts
|
|
2242
|
+
* await signInWithSocialRedirect({
|
|
2243
|
+
* provider: 'google',
|
|
2244
|
+
* redirectUrl: window.location.href,
|
|
2245
|
+
* });
|
|
2246
|
+
* ```
|
|
2247
|
+
*
|
|
2017
2248
|
* @param params.provider - The social provider to authenticate with (e.g., 'google', 'github').
|
|
2018
2249
|
* @param params.redirectUrl - The URL to redirect back to after authentication.
|
|
2019
2250
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
2251
|
+
* @see completeSocialRedirect
|
|
2252
|
+
* @see detectSocialRedirectUrl
|
|
2020
2253
|
* @instrumented
|
|
2021
2254
|
*/
|
|
2022
2255
|
const signInWithSocialRedirect = async ({ provider, redirectUrl }, client = getDefaultClient()) => {
|
|
@@ -2059,6 +2292,14 @@ const __signInWithSocialRedirect_wrapped = instrumentFunction({
|
|
|
2059
2292
|
* @deprecated Renamed to {@link signInWithSocialRedirect}. This alias will be
|
|
2060
2293
|
* removed in a future major version.
|
|
2061
2294
|
*
|
|
2295
|
+
* @example
|
|
2296
|
+
* ```ts
|
|
2297
|
+
* // Prefer signInWithSocialRedirect instead
|
|
2298
|
+
* await signInWithSocialRedirect({ provider: 'google', redirectUrl: window.location.href });
|
|
2299
|
+
* ```
|
|
2300
|
+
*
|
|
2301
|
+
* @see signInWithSocialRedirect
|
|
2302
|
+
* @see completeSocialRedirect
|
|
2062
2303
|
* @instrumented
|
|
2063
2304
|
* @noHook Deprecated alias that is not exposed as a React hook.
|
|
2064
2305
|
*/
|
|
@@ -2076,6 +2317,45 @@ const __authenticateWithSocial_wrapped = instrumentFunction({
|
|
|
2076
2317
|
}
|
|
2077
2318
|
});
|
|
2078
2319
|
|
|
2320
|
+
//#endregion
|
|
2321
|
+
//#region src/modules/auth/social/oauth/clearSocialRedirectParams/clearSocialRedirectParams.ts
|
|
2322
|
+
/**
|
|
2323
|
+
* Removes the social OAuth redirect parameters that `signInWithSocialRedirect`
|
|
2324
|
+
* appends to the return URL from the browser's current URL, leaving every other
|
|
2325
|
+
* query parameter, the path, and the hash untouched.
|
|
2326
|
+
*
|
|
2327
|
+
* Call this once you have finished `completeSocialRedirect` so a page refresh
|
|
2328
|
+
* doesn't re-trigger the redirect flow. Unlike clearing the whole query
|
|
2329
|
+
* string, this preserves any of your own parameters on the callback URL.
|
|
2330
|
+
*
|
|
2331
|
+
* This reads and rewrites `window.location`, so it can only run in the
|
|
2332
|
+
* browser. Calling it during server-side rendering (no `window`) throws
|
|
2333
|
+
* `UnavailableInServerSideError`.
|
|
2334
|
+
*
|
|
2335
|
+
* @returns Nothing. The current URL is rewritten in place via
|
|
2336
|
+
* `window.history.replaceState`.
|
|
2337
|
+
*
|
|
2338
|
+
* @throws {UnavailableInServerSideError} When called without a `window`
|
|
2339
|
+
* (e.g. during server-side rendering).
|
|
2340
|
+
*
|
|
2341
|
+
* @example
|
|
2342
|
+
* ```ts
|
|
2343
|
+
* await completeSocialRedirect({ url: new URL(window.location.href) });
|
|
2344
|
+
* clearSocialRedirectParams();
|
|
2345
|
+
* ```
|
|
2346
|
+
*
|
|
2347
|
+
* @see {@link completeSocialRedirect} to finish the redirect sign-in before
|
|
2348
|
+
* clearing the parameters.
|
|
2349
|
+
* @see {@link detectSocialRedirectUrl} to check whether the current URL is a
|
|
2350
|
+
* social OAuth callback.
|
|
2351
|
+
*
|
|
2352
|
+
* @notInstrumented
|
|
2353
|
+
*/
|
|
2354
|
+
const clearSocialRedirectParams = () => {
|
|
2355
|
+
if (isServerSideRendering()) throw new UnavailableInServerSideError("clearSocialRedirectParams");
|
|
2356
|
+
window.history.replaceState({}, "", removeDynamicOauthParamsFromUrl(window.location.href));
|
|
2357
|
+
};
|
|
2358
|
+
|
|
2079
2359
|
//#endregion
|
|
2080
2360
|
//#region src/modules/auth/social/oauth/processSocialCallback/processSocialCallback.ts
|
|
2081
2361
|
/**
|
|
@@ -2157,12 +2437,23 @@ const __processSocialCallback_wrapped = instrumentFunction({
|
|
|
2157
2437
|
* authenticating (or linking) the user with the social provider. This is the
|
|
2158
2438
|
* final step after `signInWithSocialRedirect` + `detectSocialRedirectUrl`.
|
|
2159
2439
|
*
|
|
2440
|
+
* @example
|
|
2441
|
+
* ```ts
|
|
2442
|
+
* const redirectUrl = detectSocialRedirectUrl();
|
|
2443
|
+
* if (redirectUrl) {
|
|
2444
|
+
* const user = await completeSocialRedirect({ url: redirectUrl });
|
|
2445
|
+
* }
|
|
2446
|
+
* ```
|
|
2447
|
+
*
|
|
2160
2448
|
* @param params.url - The callback URL containing OAuth response parameters.
|
|
2161
2449
|
* @param [params.requestedScopes] - Optional scopes to request an elevated access token when verifying (linking) a social account.
|
|
2162
2450
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
2163
2451
|
* @returns A promise that resolves to the authenticated user or null.
|
|
2164
2452
|
* @throws MissingSocialUrlParamError If required OAuth parameters are missing.
|
|
2165
2453
|
* @throws InvalidRedirectStorageStateError If the stored state doesn't match.
|
|
2454
|
+
* @see signInWithSocialRedirect
|
|
2455
|
+
* @see detectSocialRedirectUrl
|
|
2456
|
+
* @see clearSocialRedirectParams
|
|
2166
2457
|
* @instrumented
|
|
2167
2458
|
*/
|
|
2168
2459
|
const completeSocialRedirect = ({ url, requestedScopes }, client = getDefaultClient()) => __processSocialCallback_wrapped({
|
|
@@ -2218,7 +2509,6 @@ const __completeSocialAuthentication_wrapped = instrumentFunction({
|
|
|
2218
2509
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
2219
2510
|
* @returns A promise that resolves to true if the URL is an OAuth redirect, false otherwise.
|
|
2220
2511
|
* @notInstrumented
|
|
2221
|
-
* @noHook Low-level redirect-detection primitive that is not exposed as a React hook.
|
|
2222
2512
|
*/
|
|
2223
2513
|
const detectSocialRedirectUrl = async ({ url }, client = getDefaultClient()) => {
|
|
2224
2514
|
const core = getCore(client);
|
|
@@ -2250,7 +2540,19 @@ const detectOAuthRedirect = (params, client = getDefaultClient()) => detectSocia
|
|
|
2250
2540
|
* {@link signInWithSocialRedirect} + {@link completeSocialRedirect} instead —
|
|
2251
2541
|
* the browser already owns the tab so there is no popup to open.
|
|
2252
2542
|
*
|
|
2543
|
+
* @example
|
|
2544
|
+
* ```ts
|
|
2545
|
+
* // React Native only
|
|
2546
|
+
* const user = await signInWithSocialPopUp({ provider: 'google' });
|
|
2547
|
+
* ```
|
|
2548
|
+
*
|
|
2549
|
+
* @param params.provider - The social provider to authenticate with.
|
|
2550
|
+
* @param [params.requestedScopes] - Optional scopes to request from the provider.
|
|
2551
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
2552
|
+
* @returns A promise that resolves to the authenticated user or null.
|
|
2253
2553
|
* @throws MethodNotImplementedError Always on web.
|
|
2554
|
+
* @see signInWithSocialRedirect
|
|
2555
|
+
* @see completeSocialRedirect
|
|
2254
2556
|
* @instrumented
|
|
2255
2557
|
*/
|
|
2256
2558
|
const signInWithSocialPopUp = async ({ provider, requestedScopes }, client = getDefaultClient()) => {
|
|
@@ -2270,19 +2572,39 @@ const __signInWithSocialPopUp_wrapped = instrumentFunction({
|
|
|
2270
2572
|
});
|
|
2271
2573
|
|
|
2272
2574
|
//#endregion
|
|
2273
|
-
//#region src/modules/wallets/
|
|
2575
|
+
//#region src/modules/wallets/selectedWalletAccount/getSelectedWalletAccount/getSelectedWalletAccount.ts
|
|
2274
2576
|
/**
|
|
2275
|
-
* Get the
|
|
2276
|
-
*
|
|
2277
|
-
*
|
|
2278
|
-
*
|
|
2577
|
+
* Get the wallet account currently selected for the user.
|
|
2578
|
+
*
|
|
2579
|
+
* The SDK itself does not use or care about which wallet is "selected" — it has
|
|
2580
|
+
* no bearing on authentication, signing, or any other SDK behaviour. This is
|
|
2581
|
+
* purely a convenience for *reading* which wallet the user most recently
|
|
2582
|
+
* selected (derived from the backend `lastSelectedAt` timestamp, across both
|
|
2583
|
+
* unverified and verified wallet accounts). Applications that need a notion of
|
|
2584
|
+
* an active/current wallet should own that selection state themselves.
|
|
2585
|
+
*
|
|
2586
|
+
* The one exception is the wagmi integration (`@dynamic-labs-sdk/wagmi`), which
|
|
2587
|
+
* mirrors the selected EVM wallet into wagmi's connector state.
|
|
2588
|
+
*
|
|
2589
|
+
* @example
|
|
2590
|
+
* ```ts
|
|
2591
|
+
* const selected = getSelectedWalletAccount();
|
|
2592
|
+
* if (selected) {
|
|
2593
|
+
* console.log('Selected wallet:', selected.address);
|
|
2594
|
+
* }
|
|
2595
|
+
* ```
|
|
2596
|
+
*
|
|
2597
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
2598
|
+
* @returns The selected wallet account, or null if no wallet has been selected.
|
|
2599
|
+
* @see setSelectedWalletAccount
|
|
2600
|
+
* @see getWalletAccounts
|
|
2279
2601
|
* @notInstrumented
|
|
2280
2602
|
*/
|
|
2281
|
-
const
|
|
2603
|
+
const getSelectedWalletAccount = (client = getDefaultClient()) => {
|
|
2282
2604
|
const sortedLastSelectedWalletAccounts = getWalletAccounts(client).filter((walletAccount) => Boolean(walletAccount.lastSelectedAt)).sort((a, b) => b.lastSelectedAt.getTime() - a.lastSelectedAt.getTime());
|
|
2283
2605
|
if (sortedLastSelectedWalletAccounts.length === 0) return null;
|
|
2284
|
-
const [
|
|
2285
|
-
return
|
|
2606
|
+
const [selectedWallet] = sortedLastSelectedWalletAccounts;
|
|
2607
|
+
return selectedWallet;
|
|
2286
2608
|
};
|
|
2287
2609
|
|
|
2288
2610
|
//#endregion
|
|
@@ -2300,14 +2622,13 @@ const getPrimaryWalletAccount = (client = getDefaultClient()) => {
|
|
|
2300
2622
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
2301
2623
|
* @returns A promise that resolves to the verify response.
|
|
2302
2624
|
* @instrumented
|
|
2303
|
-
* @redact-params
|
|
2304
2625
|
*/
|
|
2305
2626
|
const unlinkSocialAccount = async ({ verifiedCredentialId }, client = getDefaultClient()) => {
|
|
2306
2627
|
const core = getCore(client);
|
|
2307
2628
|
const apiClient = createApiClient({ elevatedAccessTokenScope: TokenScope$1.Credentialunlink }, client);
|
|
2308
|
-
const
|
|
2309
|
-
const walletId =
|
|
2310
|
-
const isEmbeddedWallet = !!
|
|
2629
|
+
const selectedWallet = getSelectedWalletAccount(client);
|
|
2630
|
+
const walletId = selectedWallet?.verifiedCredentialId?.replace("-zerodev", "") ?? void 0;
|
|
2631
|
+
const isEmbeddedWallet = !!selectedWallet && getVerifiedCredentialForWalletAccount({ walletAccount: selectedWallet }, client)?.walletProvider === WalletProviderEnum.EmbeddedWallet;
|
|
2311
2632
|
const response = await apiClient.verifyUnlink({
|
|
2312
2633
|
environmentId: core.environmentId,
|
|
2313
2634
|
verifyUnlinkRequest: {
|
|
@@ -2328,8 +2649,7 @@ const __unlinkSocialAccount_wrapped = instrumentFunction({
|
|
|
2328
2649
|
} catch {
|
|
2329
2650
|
return;
|
|
2330
2651
|
}
|
|
2331
|
-
}
|
|
2332
|
-
redactAll: true
|
|
2652
|
+
}
|
|
2333
2653
|
});
|
|
2334
2654
|
|
|
2335
2655
|
//#endregion
|
|
@@ -2421,6 +2741,59 @@ const getMultichainTokenBalances = async ({ balanceRequest }, client = getDefaul
|
|
|
2421
2741
|
*/
|
|
2422
2742
|
const getMultichainBalances = (params, client = getDefaultClient()) => getMultichainTokenBalances(params, client);
|
|
2423
2743
|
|
|
2744
|
+
//#endregion
|
|
2745
|
+
//#region src/modules/captcha/getCaptchaSettings/getCaptchaSettings.ts
|
|
2746
|
+
/**
|
|
2747
|
+
* The captcha providers Dynamic can be configured to use for an environment.
|
|
2748
|
+
* Use it to branch on which captcha widget to render for the active provider.
|
|
2749
|
+
*
|
|
2750
|
+
* Redeclared locally (rather than re-exported directly from the generated
|
|
2751
|
+
* `sdk-api-core`) so the public client entry point owns its own documented,
|
|
2752
|
+
* stable surface for this token.
|
|
2753
|
+
*
|
|
2754
|
+
* @example
|
|
2755
|
+
* ```ts
|
|
2756
|
+
* const settings = getCaptchaSettings();
|
|
2757
|
+
* if (settings?.provider === CaptchaProviderEnum.Hcaptcha) {
|
|
2758
|
+
* renderHcaptcha(settings.siteKey);
|
|
2759
|
+
* }
|
|
2760
|
+
* ```
|
|
2761
|
+
* @see getCaptchaSettings
|
|
2762
|
+
* @see CaptchaSettingsResult
|
|
2763
|
+
*/
|
|
2764
|
+
const CaptchaProviderEnum = CaptchaProviderEnum$1;
|
|
2765
|
+
/**
|
|
2766
|
+
* Returns the active captcha provider and site key, or undefined if captcha is not enabled.
|
|
2767
|
+
* Use this to determine which captcha widget to render and which site key to pass it.
|
|
2768
|
+
*
|
|
2769
|
+
* @example
|
|
2770
|
+
* ```ts
|
|
2771
|
+
* const settings = getCaptchaSettings();
|
|
2772
|
+
* if (settings) renderCaptcha(settings.provider, settings.siteKey);
|
|
2773
|
+
* ```
|
|
2774
|
+
* @see CaptchaSettingsResult
|
|
2775
|
+
* @see CaptchaProviderEnum
|
|
2776
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
2777
|
+
* @returns The active captcha provider and site key, or undefined when captcha is not enabled.
|
|
2778
|
+
* @notInstrumented
|
|
2779
|
+
*/
|
|
2780
|
+
const getCaptchaSettings = (client = getDefaultClient()) => {
|
|
2781
|
+
const projectSettings = client.projectSettings;
|
|
2782
|
+
if (!projectSettings) return void 0;
|
|
2783
|
+
const { security } = projectSettings;
|
|
2784
|
+
if (security.captcha) {
|
|
2785
|
+
if (security.captcha.enabled) return {
|
|
2786
|
+
provider: security.captcha.provider ?? CaptchaProviderEnum.Hcaptcha,
|
|
2787
|
+
siteKey: security.captcha.siteKey
|
|
2788
|
+
};
|
|
2789
|
+
return;
|
|
2790
|
+
}
|
|
2791
|
+
if (security.hCaptcha?.enabled) return {
|
|
2792
|
+
provider: CaptchaProviderEnum.Hcaptcha,
|
|
2793
|
+
siteKey: security.hCaptcha.siteKey
|
|
2794
|
+
};
|
|
2795
|
+
};
|
|
2796
|
+
|
|
2424
2797
|
//#endregion
|
|
2425
2798
|
//#region src/modules/checkout/utils/createCheckoutSessionTokenStorageKey/createCheckoutSessionTokenStorageKey.ts
|
|
2426
2799
|
/** @notInstrumented */
|
|
@@ -2980,14 +3353,65 @@ const requiresConversion = async ({ transaction }, client = getDefaultClient())
|
|
|
2980
3353
|
return !checkout.settlementConfig.settlements.some((settlement) => settlement.chainName === transaction.fromChainName && settlement.chainId === transaction.fromChainId && settlement.tokenAddress === transaction.fromToken);
|
|
2981
3354
|
};
|
|
2982
3355
|
|
|
3356
|
+
//#endregion
|
|
3357
|
+
//#region src/modules/deviceRegistration/clearDeviceRegistrationRedirectParams/clearDeviceRegistrationRedirectParams.ts
|
|
3358
|
+
/**
|
|
3359
|
+
* Removes the device registration redirect parameters that the device
|
|
3360
|
+
* registration email link appends to the return URL from the browser's current
|
|
3361
|
+
* URL, leaving every other query parameter, the path, and the hash untouched.
|
|
3362
|
+
*
|
|
3363
|
+
* Call this once you have finished `completeDeviceRegistration` so a page
|
|
3364
|
+
* refresh doesn't re-trigger the registration flow. Unlike clearing the whole
|
|
3365
|
+
* query string, this preserves any of your own parameters on the callback URL.
|
|
3366
|
+
*
|
|
3367
|
+
* This reads and rewrites `window.location`, so it can only run in the
|
|
3368
|
+
* browser. Calling it during server-side rendering (no `window`) throws
|
|
3369
|
+
* `UnavailableInServerSideError`.
|
|
3370
|
+
*
|
|
3371
|
+
* @returns Nothing. The current URL is rewritten in place via
|
|
3372
|
+
* `window.history.replaceState`.
|
|
3373
|
+
*
|
|
3374
|
+
* @throws {UnavailableInServerSideError} When called without a `window`
|
|
3375
|
+
* (e.g. during server-side rendering).
|
|
3376
|
+
*
|
|
3377
|
+
* @example
|
|
3378
|
+
* ```ts
|
|
3379
|
+
* const deviceToken = getDeviceRegistrationTokenFromUrl({ url: window.location.href });
|
|
3380
|
+
* await completeDeviceRegistration({ deviceToken });
|
|
3381
|
+
* clearDeviceRegistrationRedirectParams();
|
|
3382
|
+
* ```
|
|
3383
|
+
*
|
|
3384
|
+
* @see {@link completeDeviceRegistration} to finish the registration before
|
|
3385
|
+
* clearing the parameters.
|
|
3386
|
+
* @see {@link detectDeviceRegistrationRedirect} to check whether the current
|
|
3387
|
+
* URL is a device registration callback.
|
|
3388
|
+
*
|
|
3389
|
+
* @notInstrumented
|
|
3390
|
+
*/
|
|
3391
|
+
const clearDeviceRegistrationRedirectParams = () => {
|
|
3392
|
+
if (isServerSideRendering()) throw new UnavailableInServerSideError("clearDeviceRegistrationRedirectParams");
|
|
3393
|
+
const url = new URL(window.location.href);
|
|
3394
|
+
url.searchParams.delete("deviceRegistrationToken");
|
|
3395
|
+
window.history.replaceState({}, "", url.toString());
|
|
3396
|
+
};
|
|
3397
|
+
|
|
2983
3398
|
//#endregion
|
|
2984
3399
|
//#region src/modules/deviceRegistration/completeDeviceRegistration/completeDeviceRegistration.ts
|
|
2985
3400
|
const DEVICE_REGISTRATION_TOKEN_HEADER = "x-dynamic-device-registration-token";
|
|
2986
|
-
/**
|
|
3401
|
+
/**
|
|
3402
|
+
* Completes device registration using the token from a device registration
|
|
3403
|
+
* redirect, authenticating the current device against the user's account.
|
|
3404
|
+
*
|
|
3405
|
+
* @see detectDeviceRegistrationRedirect
|
|
3406
|
+
* @see clearDeviceRegistrationRedirectParams
|
|
3407
|
+
* @instrumented
|
|
3408
|
+
*/
|
|
2987
3409
|
const completeDeviceRegistration = async ({ deviceToken }, client = getDefaultClient()) => {
|
|
2988
3410
|
assertDefined(deviceToken, "deviceToken is required");
|
|
2989
3411
|
const core = getCore(client);
|
|
3412
|
+
const currentUser = core.state.get().user;
|
|
2990
3413
|
const response = await createApiClient({ headers: { [DEVICE_REGISTRATION_TOKEN_HEADER]: deviceToken } }, client).deviceRegistration({ environmentId: core.environmentId });
|
|
3414
|
+
if (currentUser && response.user?.id !== currentUser.id) throw new DeviceRegistrationIdentityMismatchError();
|
|
2991
3415
|
updateAuthFromVerifyResponse({ response }, client);
|
|
2992
3416
|
emitEvent({ event: "deviceRegistrationCompleted" }, client);
|
|
2993
3417
|
return response;
|
|
@@ -3168,6 +3592,22 @@ const withFlowSessionTokenCleanupOn401 = async ({ call, flowId }, client) => {
|
|
|
3168
3592
|
}
|
|
3169
3593
|
};
|
|
3170
3594
|
|
|
3595
|
+
//#endregion
|
|
3596
|
+
//#region src/modules/flow/attachFlowSource/attachFlowSource.instrumentation.ts
|
|
3597
|
+
/**
|
|
3598
|
+
* Explicit instrumentation payload for attachFlowSource. Reads the nested
|
|
3599
|
+
* `flow` and logs non-sensitive volume and routing dimensions only — never the
|
|
3600
|
+
* wallet address, and never the response's session token.
|
|
3601
|
+
*/
|
|
3602
|
+
const attachFlowSourceInstrumentation = { resolved: ({ flow }) => ({
|
|
3603
|
+
amount: flow.amount ?? null,
|
|
3604
|
+
currency: flow.currency ?? null,
|
|
3605
|
+
fromChainId: flow.fromChainId ?? null,
|
|
3606
|
+
fromChainName: flow.fromChainName ?? null,
|
|
3607
|
+
mode: flow.mode ?? null,
|
|
3608
|
+
sourceType: flow.sourceType ?? null
|
|
3609
|
+
}) };
|
|
3610
|
+
|
|
3171
3611
|
//#endregion
|
|
3172
3612
|
//#region src/modules/flow/attachFlowSource/attachFlowSource.ts
|
|
3173
3613
|
/**
|
|
@@ -3220,7 +3660,8 @@ const __attachFlowSource_wrapped = instrumentFunction({
|
|
|
3220
3660
|
} catch {
|
|
3221
3661
|
return;
|
|
3222
3662
|
}
|
|
3223
|
-
}
|
|
3663
|
+
},
|
|
3664
|
+
selectors: attachFlowSourceInstrumentation
|
|
3224
3665
|
});
|
|
3225
3666
|
|
|
3226
3667
|
//#endregion
|
|
@@ -3238,6 +3679,22 @@ const createFlowApiClient = async ({ flowId }, client) => {
|
|
|
3238
3679
|
};
|
|
3239
3680
|
};
|
|
3240
3681
|
|
|
3682
|
+
//#endregion
|
|
3683
|
+
//#region src/modules/flow/broadcastFlow/broadcastFlow.instrumentation.ts
|
|
3684
|
+
/**
|
|
3685
|
+
* Explicit instrumentation payload for broadcastFlow. Logs non-sensitive
|
|
3686
|
+
* volume and routing dimensions only — never the wallet address or any
|
|
3687
|
+
* session token — so we can understand volume moved through the flow product.
|
|
3688
|
+
*/
|
|
3689
|
+
const broadcastFlowInstrumentation = { resolved: (flow) => ({
|
|
3690
|
+
amount: flow.amount ?? null,
|
|
3691
|
+
currency: flow.currency ?? null,
|
|
3692
|
+
fromChainId: flow.fromChainId ?? null,
|
|
3693
|
+
fromChainName: flow.fromChainName ?? null,
|
|
3694
|
+
mode: flow.mode ?? null,
|
|
3695
|
+
sourceType: flow.sourceType ?? null
|
|
3696
|
+
}) };
|
|
3697
|
+
|
|
3241
3698
|
//#endregion
|
|
3242
3699
|
//#region src/modules/flow/broadcastFlow/broadcastFlow.ts
|
|
3243
3700
|
/**
|
|
@@ -3274,17 +3731,40 @@ const __broadcastFlow_wrapped = instrumentFunction({
|
|
|
3274
3731
|
} catch {
|
|
3275
3732
|
return;
|
|
3276
3733
|
}
|
|
3277
|
-
}
|
|
3734
|
+
},
|
|
3735
|
+
selectors: broadcastFlowInstrumentation
|
|
3278
3736
|
});
|
|
3279
3737
|
|
|
3738
|
+
//#endregion
|
|
3739
|
+
//#region src/modules/flow/cancelFlow/cancelFlow.instrumentation.ts
|
|
3740
|
+
/**
|
|
3741
|
+
* Explicit instrumentation payload for cancelFlow. Logs non-sensitive volume
|
|
3742
|
+
* and routing dimensions only — never the wallet address or any session token.
|
|
3743
|
+
*/
|
|
3744
|
+
const cancelFlowInstrumentation = { resolved: (flow) => ({
|
|
3745
|
+
amount: flow.amount ?? null,
|
|
3746
|
+
currency: flow.currency ?? null,
|
|
3747
|
+
fromChainId: flow.fromChainId ?? null,
|
|
3748
|
+
fromChainName: flow.fromChainName ?? null,
|
|
3749
|
+
mode: flow.mode ?? null,
|
|
3750
|
+
sourceType: flow.sourceType ?? null
|
|
3751
|
+
}) };
|
|
3752
|
+
|
|
3280
3753
|
//#endregion
|
|
3281
3754
|
//#region src/modules/flow/cancelFlow/cancelFlow.ts
|
|
3282
3755
|
/**
|
|
3283
|
-
* Cancels a flow before it has been broadcasted
|
|
3756
|
+
* Cancels a flow before it has been broadcasted.
|
|
3757
|
+
*
|
|
3758
|
+
* @example
|
|
3759
|
+
* ```ts
|
|
3760
|
+
* const cancelledFlow = await cancelFlow({ flowId: 'flow-abc123' });
|
|
3761
|
+
* ```
|
|
3284
3762
|
*
|
|
3285
|
-
* @param params
|
|
3763
|
+
* @param params.flowId - The unique identifier of the flow to cancel.
|
|
3286
3764
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
3287
|
-
* @returns
|
|
3765
|
+
* @returns A promise that resolves to the cancelled flow.
|
|
3766
|
+
* @see getFlow
|
|
3767
|
+
* @see getFlowQuote
|
|
3288
3768
|
* @instrumented
|
|
3289
3769
|
*/
|
|
3290
3770
|
const cancelFlow = async ({ flowId }, client = getDefaultClient()) => {
|
|
@@ -3310,17 +3790,26 @@ const __cancelFlow_wrapped = instrumentFunction({
|
|
|
3310
3790
|
} catch {
|
|
3311
3791
|
return;
|
|
3312
3792
|
}
|
|
3313
|
-
}
|
|
3793
|
+
},
|
|
3794
|
+
selectors: cancelFlowInstrumentation
|
|
3314
3795
|
});
|
|
3315
3796
|
|
|
3316
3797
|
//#endregion
|
|
3317
3798
|
//#region src/modules/flow/getFlow/getFlow.ts
|
|
3318
3799
|
/**
|
|
3319
|
-
* Fetches a flow by its ID
|
|
3800
|
+
* Fetches a flow by its ID.
|
|
3320
3801
|
*
|
|
3321
|
-
* @
|
|
3802
|
+
* @example
|
|
3803
|
+
* ```ts
|
|
3804
|
+
* const flow = await getFlow({ flowId: 'flow-abc123' });
|
|
3805
|
+
* console.log('Flow status:', flow.status);
|
|
3806
|
+
* ```
|
|
3807
|
+
*
|
|
3808
|
+
* @param params.flowId - The unique identifier of the flow to fetch.
|
|
3322
3809
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
3323
|
-
* @returns
|
|
3810
|
+
* @returns A promise that resolves to the flow object.
|
|
3811
|
+
* @see cancelFlow
|
|
3812
|
+
* @see getFlowQuote
|
|
3324
3813
|
* @notInstrumented
|
|
3325
3814
|
*/
|
|
3326
3815
|
const getFlow = async ({ flowId }, client = getDefaultClient()) => {
|
|
@@ -3334,11 +3823,24 @@ const getFlow = async ({ flowId }, client = getDefaultClient()) => {
|
|
|
3334
3823
|
//#endregion
|
|
3335
3824
|
//#region src/modules/flow/getFlowQuote/getFlowQuote.ts
|
|
3336
3825
|
/**
|
|
3337
|
-
* Fetches a quote for a flow
|
|
3826
|
+
* Fetches a quote for a flow.
|
|
3827
|
+
*
|
|
3828
|
+
* @example
|
|
3829
|
+
* ```ts
|
|
3830
|
+
* const flow = await getFlowQuote({
|
|
3831
|
+
* flowId: 'flow-abc123',
|
|
3832
|
+
* slippage: 0.5,
|
|
3833
|
+
* });
|
|
3834
|
+
* ```
|
|
3338
3835
|
*
|
|
3339
|
-
* @param params
|
|
3836
|
+
* @param params.flowId - The unique identifier of the flow.
|
|
3837
|
+
* @param [params.fromChainId] - Optional chain ID overriding the one set at attachFlowSource time.
|
|
3838
|
+
* @param [params.fromTokenAddress] - Optional token address (defaults to native token).
|
|
3839
|
+
* @param [params.slippage] - Acceptable slippage percentage.
|
|
3340
3840
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
3341
|
-
* @returns
|
|
3841
|
+
* @returns A promise that resolves to the updated flow with quote data.
|
|
3842
|
+
* @see getFlow
|
|
3843
|
+
* @see cancelFlow
|
|
3342
3844
|
* @notInstrumented
|
|
3343
3845
|
*/
|
|
3344
3846
|
const getFlowQuote = async ({ flowId, fromChainId, fromTokenAddress, slippage }, client = getDefaultClient()) => {
|
|
@@ -3358,6 +3860,22 @@ const getFlowQuote = async ({ flowId, fromChainId, fromTokenAddress, slippage },
|
|
|
3358
3860
|
}, client);
|
|
3359
3861
|
};
|
|
3360
3862
|
|
|
3863
|
+
//#endregion
|
|
3864
|
+
//#region src/modules/flow/prepareFlowSigning/prepareFlowSigning.instrumentation.ts
|
|
3865
|
+
/**
|
|
3866
|
+
* Explicit instrumentation payload for prepareFlowSigning. Logs non-sensitive
|
|
3867
|
+
* volume and routing dimensions only — never the wallet address or any
|
|
3868
|
+
* session token.
|
|
3869
|
+
*/
|
|
3870
|
+
const prepareFlowSigningInstrumentation = { resolved: (flow) => ({
|
|
3871
|
+
amount: flow.amount ?? null,
|
|
3872
|
+
currency: flow.currency ?? null,
|
|
3873
|
+
fromChainId: flow.fromChainId ?? null,
|
|
3874
|
+
fromChainName: flow.fromChainName ?? null,
|
|
3875
|
+
mode: flow.mode ?? null,
|
|
3876
|
+
sourceType: flow.sourceType ?? null
|
|
3877
|
+
}) };
|
|
3878
|
+
|
|
3361
3879
|
//#endregion
|
|
3362
3880
|
//#region src/modules/flow/prepareFlowSigning/prepareFlowSigning.ts
|
|
3363
3881
|
/**
|
|
@@ -3395,9 +3913,26 @@ const __prepareFlowSigning_wrapped = instrumentFunction({
|
|
|
3395
3913
|
} catch {
|
|
3396
3914
|
return;
|
|
3397
3915
|
}
|
|
3398
|
-
}
|
|
3916
|
+
},
|
|
3917
|
+
selectors: prepareFlowSigningInstrumentation
|
|
3399
3918
|
});
|
|
3400
3919
|
|
|
3920
|
+
//#endregion
|
|
3921
|
+
//#region src/modules/flow/submitFlowTransaction/submitFlowTransaction.instrumentation.ts
|
|
3922
|
+
/**
|
|
3923
|
+
* Explicit instrumentation payload for submitFlowTransaction. Logs
|
|
3924
|
+
* non-sensitive volume and routing dimensions only — never the wallet address
|
|
3925
|
+
* or any session token — so executed flow volume is measurable.
|
|
3926
|
+
*/
|
|
3927
|
+
const submitFlowTransactionInstrumentation = { resolved: (flow) => ({
|
|
3928
|
+
amount: flow.amount ?? null,
|
|
3929
|
+
currency: flow.currency ?? null,
|
|
3930
|
+
fromChainId: flow.fromChainId ?? null,
|
|
3931
|
+
fromChainName: flow.fromChainName ?? null,
|
|
3932
|
+
mode: flow.mode ?? null,
|
|
3933
|
+
sourceType: flow.sourceType ?? null
|
|
3934
|
+
}) };
|
|
3935
|
+
|
|
3401
3936
|
//#endregion
|
|
3402
3937
|
//#region src/modules/flow/submitFlowTransaction/submitFlowTransaction.ts
|
|
3403
3938
|
/**
|
|
@@ -3441,7 +3976,8 @@ const __submitFlowTransaction_wrapped = instrumentFunction({
|
|
|
3441
3976
|
} catch {
|
|
3442
3977
|
return;
|
|
3443
3978
|
}
|
|
3444
|
-
}
|
|
3979
|
+
},
|
|
3980
|
+
selectors: submitFlowTransactionInstrumentation
|
|
3445
3981
|
});
|
|
3446
3982
|
|
|
3447
3983
|
//#endregion
|
|
@@ -3673,18 +4209,6 @@ const createKrakenExchangeTransfer = async (transferParams, client = getDefaultC
|
|
|
3673
4209
|
exchangeKey: ExchangeKeyEnum.Kraken
|
|
3674
4210
|
});
|
|
3675
4211
|
};
|
|
3676
|
-
const __createKrakenExchangeTransfer_impl = createKrakenExchangeTransfer;
|
|
3677
|
-
const __createKrakenExchangeTransfer_wrapped = instrumentFunction({
|
|
3678
|
-
fn: __createKrakenExchangeTransfer_impl,
|
|
3679
|
-
functionName: "createKrakenExchangeTransfer",
|
|
3680
|
-
getCore: () => {
|
|
3681
|
-
try {
|
|
3682
|
-
return getCore(getDefaultClient());
|
|
3683
|
-
} catch {
|
|
3684
|
-
return;
|
|
3685
|
-
}
|
|
3686
|
-
}
|
|
3687
|
-
});
|
|
3688
4212
|
|
|
3689
4213
|
//#endregion
|
|
3690
4214
|
//#region src/modules/funding/kraken/getKrakenAccounts/getKrakenAccounts.ts
|
|
@@ -3796,10 +4320,6 @@ var MoonPayProviderNotAvailableError = class extends BaseError {
|
|
|
3796
4320
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
3797
4321
|
* @returns The signed MoonPay URL.
|
|
3798
4322
|
* @instrumented
|
|
3799
|
-
* @redact-params - the return is a bare signed onramp URL whose query string
|
|
3800
|
-
* carries the provider signature plus the user's wallet address; a bare-string
|
|
3801
|
-
* return is logged under the synthetic `result` key, which no key-based rule
|
|
3802
|
-
* covers, so redact the whole event.
|
|
3803
4323
|
*/
|
|
3804
4324
|
const getMoonPayUrl = async (params, client = getDefaultClient()) => {
|
|
3805
4325
|
const core = getCore(client);
|
|
@@ -3833,8 +4353,7 @@ const __getMoonPayUrl_wrapped = instrumentFunction({
|
|
|
3833
4353
|
} catch {
|
|
3834
4354
|
return;
|
|
3835
4355
|
}
|
|
3836
|
-
}
|
|
3837
|
-
redactAll: true
|
|
4356
|
+
}
|
|
3838
4357
|
});
|
|
3839
4358
|
|
|
3840
4359
|
//#endregion
|
|
@@ -3843,7 +4362,17 @@ const __getMoonPayUrl_wrapped = instrumentFunction({
|
|
|
3843
4362
|
* Allows waiting until all modules of the client have been properly initialized
|
|
3844
4363
|
* and are ready for use.
|
|
3845
4364
|
*
|
|
3846
|
-
* @
|
|
4365
|
+
* @example
|
|
4366
|
+
* ```ts
|
|
4367
|
+
* const client = createDynamicClient({ environmentId: 'env-id' });
|
|
4368
|
+
* await waitForClientInitialized(client);
|
|
4369
|
+
* // Client is now fully ready
|
|
4370
|
+
* ```
|
|
4371
|
+
*
|
|
4372
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
4373
|
+
* @returns A promise that resolves once the client is fully initialized.
|
|
4374
|
+
* @see initializeClient
|
|
4375
|
+
* @see createDynamicClient
|
|
3847
4376
|
* @notInstrumented
|
|
3848
4377
|
* @noHook Client lifecycle management is not exposed as a hook; use useInitStatus.
|
|
3849
4378
|
*/
|
|
@@ -4418,7 +4947,6 @@ const getWalletConnectCatalogWalletByWalletProviderKey = async ({ walletProvider
|
|
|
4418
4947
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
4419
4948
|
* @returns A promise that resolves to OTP verification details if verification is required, or undefined.
|
|
4420
4949
|
* @instrumented
|
|
4421
|
-
* @redact-params
|
|
4422
4950
|
*/
|
|
4423
4951
|
const updateUser = async ({ userFields }, client = getDefaultClient()) => {
|
|
4424
4952
|
const core = getCore(client);
|
|
@@ -4448,8 +4976,7 @@ const __updateUser_wrapped = instrumentFunction({
|
|
|
4448
4976
|
} catch {
|
|
4449
4977
|
return;
|
|
4450
4978
|
}
|
|
4451
|
-
}
|
|
4452
|
-
redactAll: true
|
|
4979
|
+
}
|
|
4453
4980
|
});
|
|
4454
4981
|
|
|
4455
4982
|
//#endregion
|
|
@@ -4663,7 +5190,6 @@ const authenticateTotpMfaDevice = async ({ deviceId, code, createMfaTokenOptions
|
|
|
4663
5190
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
4664
5191
|
* @returns A promise that resolves to the newly generated recovery codes.
|
|
4665
5192
|
* @instrumented
|
|
4666
|
-
* @redact-params
|
|
4667
5193
|
*/
|
|
4668
5194
|
const createNewMfaRecoveryCodes = async (client = getDefaultClient()) => {
|
|
4669
5195
|
const core = getCore(client);
|
|
@@ -4679,8 +5205,7 @@ const __createNewMfaRecoveryCodes_wrapped = instrumentFunction({
|
|
|
4679
5205
|
} catch {
|
|
4680
5206
|
return;
|
|
4681
5207
|
}
|
|
4682
|
-
}
|
|
4683
|
-
redactAll: true
|
|
5208
|
+
}
|
|
4684
5209
|
});
|
|
4685
5210
|
|
|
4686
5211
|
//#endregion
|
|
@@ -4774,9 +5299,6 @@ const getMfaRecoveryCodes = async (client = getDefaultClient()) => {
|
|
|
4774
5299
|
* @returns A promise that resolves to the TOTP registration response containing setup information,
|
|
4775
5300
|
* like the secret key and the OTP Auth URI.
|
|
4776
5301
|
* @instrumented
|
|
4777
|
-
* @redact-params - the response embeds the TOTP shared secret in both `secret`
|
|
4778
|
-
* and the `uri` (`otpauth://...?secret=...`); redact the whole event so the
|
|
4779
|
-
* seed never reaches logs via the un-keyed `uri` field.
|
|
4780
5302
|
*/
|
|
4781
5303
|
const registerTotpMfaDevice = async (client = getDefaultClient()) => {
|
|
4782
5304
|
const core = getCore(client);
|
|
@@ -4792,8 +5314,7 @@ const __registerTotpMfaDevice_wrapped = instrumentFunction({
|
|
|
4792
5314
|
} catch {
|
|
4793
5315
|
return;
|
|
4794
5316
|
}
|
|
4795
|
-
}
|
|
4796
|
-
redactAll: true
|
|
5317
|
+
}
|
|
4797
5318
|
});
|
|
4798
5319
|
|
|
4799
5320
|
//#endregion
|
|
@@ -4838,11 +5359,24 @@ const __setDefaultMfaDevice_wrapped = instrumentFunction({
|
|
|
4838
5359
|
*
|
|
4839
5360
|
* Once you have the OTP code, you should then use `verifyOTP` to verify it and complete the authentication process.
|
|
4840
5361
|
*
|
|
5362
|
+
* @example
|
|
5363
|
+
* ```ts
|
|
5364
|
+
* const { verificationUUID } = await sendEmailOTP({
|
|
5365
|
+
* email: 'user@example.com',
|
|
5366
|
+
* });
|
|
5367
|
+
* // Then verify with the code the user received
|
|
5368
|
+
* await verifyOTP({
|
|
5369
|
+
* otpVerification: { email: 'user@example.com', verificationUUID },
|
|
5370
|
+
* verificationToken: '123456',
|
|
5371
|
+
* });
|
|
5372
|
+
* ```
|
|
5373
|
+
*
|
|
4841
5374
|
* @param params.email - The email address to send the OTP to.
|
|
4842
5375
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
4843
5376
|
* @returns A promise that resolves to an OTPVerification object containing the email and verification UUID.
|
|
5377
|
+
* @see verifyOTP
|
|
5378
|
+
* @see sendSmsOTP
|
|
4844
5379
|
* @instrumented
|
|
4845
|
-
* @redact-params
|
|
4846
5380
|
*/
|
|
4847
5381
|
const sendEmailOTP = async ({ email }, client = getDefaultClient()) => {
|
|
4848
5382
|
const core = getCore(client);
|
|
@@ -4870,8 +5404,7 @@ const __sendEmailOTP_wrapped = instrumentFunction({
|
|
|
4870
5404
|
} catch {
|
|
4871
5405
|
return;
|
|
4872
5406
|
}
|
|
4873
|
-
}
|
|
4874
|
-
redactAll: true
|
|
5407
|
+
}
|
|
4875
5408
|
});
|
|
4876
5409
|
|
|
4877
5410
|
//#endregion
|
|
@@ -5800,12 +6333,23 @@ const supportedCountries = {
|
|
|
5800
6333
|
/**
|
|
5801
6334
|
* Sends a one-time password (OTP) via SMS to the specified phone number.
|
|
5802
6335
|
*
|
|
6336
|
+
* @example
|
|
6337
|
+
* ```ts
|
|
6338
|
+
* const { verificationUUID } = await sendSmsOTP({
|
|
6339
|
+
* isoCountryCode: 'US',
|
|
6340
|
+
* phoneNumber: '5551234567',
|
|
6341
|
+
* });
|
|
6342
|
+
* // Then verify with the code the user received
|
|
6343
|
+
* await verifyOTP({ otpVerification: { phoneNumber: '5551234567', verificationUUID }, verificationToken: '123456' });
|
|
6344
|
+
* ```
|
|
6345
|
+
*
|
|
5803
6346
|
* @param params.isoCountryCode - The ISO country code for the phone number (e.g., 'US', 'CA', 'GB').
|
|
5804
6347
|
* @param params.phoneNumber - The phone number to send the OTP to.
|
|
5805
6348
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
5806
6349
|
* @returns A promise that resolves to an OTPVerification object containing the phone details and verification UUID.
|
|
6350
|
+
* @see verifyOTP
|
|
6351
|
+
* @see sendEmailOTP
|
|
5807
6352
|
* @instrumented
|
|
5808
|
-
* @redact-params
|
|
5809
6353
|
*/
|
|
5810
6354
|
const sendSmsOTP = async ({ isoCountryCode, phoneNumber }, client = getDefaultClient()) => {
|
|
5811
6355
|
const core = getCore(client);
|
|
@@ -5838,17 +6382,17 @@ const __sendSmsOTP_wrapped = instrumentFunction({
|
|
|
5838
6382
|
} catch {
|
|
5839
6383
|
return;
|
|
5840
6384
|
}
|
|
5841
|
-
}
|
|
5842
|
-
redactAll: true
|
|
6385
|
+
}
|
|
5843
6386
|
});
|
|
5844
6387
|
|
|
5845
6388
|
//#endregion
|
|
5846
6389
|
//#region src/modules/otp/verifyOTP/verifyOTPForUserSignIn/verifyOTPForUserSignIn.ts
|
|
5847
6390
|
/** @notInstrumented */
|
|
5848
|
-
const verifyOTPForUserSignIn = async ({ otpVerification, verificationToken }, client) => {
|
|
6391
|
+
const verifyOTPForUserSignIn = async ({ allowNewMFALinking, otpVerification, verificationToken }, client) => {
|
|
5849
6392
|
const core = getCore(client);
|
|
5850
6393
|
const apiClient = createApiClient({}, client);
|
|
5851
6394
|
const verifyRequest = {
|
|
6395
|
+
...allowNewMFALinking !== void 0 && { allowNewMFALinking },
|
|
5852
6396
|
verificationToken,
|
|
5853
6397
|
verificationUUID: otpVerification.verificationUUID
|
|
5854
6398
|
};
|
|
@@ -5891,14 +6435,26 @@ const verifyOTPForUserUpdate = async ({ otpVerification, verificationToken, requ
|
|
|
5891
6435
|
* This function validates the OTP code provided by the user and completes
|
|
5892
6436
|
* the verification process for either sign-in or account updates.
|
|
5893
6437
|
*
|
|
6438
|
+
* @example
|
|
6439
|
+
* ```ts
|
|
6440
|
+
* const { verificationUUID } = await sendEmailOTP({ email: 'user@example.com' });
|
|
6441
|
+
* const response = await verifyOTP({
|
|
6442
|
+
* otpVerification: { email: 'user@example.com', verificationUUID },
|
|
6443
|
+
* verificationToken: '123456',
|
|
6444
|
+
* });
|
|
6445
|
+
* ```
|
|
6446
|
+
*
|
|
6447
|
+
* @param [params.allowNewMFALinking] - Whether sign-in may return a credential-link elevated token for users without MFA.
|
|
5894
6448
|
* @param params.otpVerification - The OTP verification object containing verification details.
|
|
5895
6449
|
* @param params.verificationToken - The token received from the OTP verification process.
|
|
6450
|
+
* @param [params.requestedScopes] - Optional token scopes to request during verification.
|
|
5896
6451
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
5897
6452
|
* @returns A promise that resolves to the verify response object upon successful verification.
|
|
6453
|
+
* @see sendEmailOTP
|
|
6454
|
+
* @see sendSmsOTP
|
|
5898
6455
|
* @instrumented
|
|
5899
|
-
* @redact-params
|
|
5900
6456
|
*/
|
|
5901
|
-
const verifyOTP = async ({
|
|
6457
|
+
const verifyOTP = async ({ allowNewMFALinking, otpVerification, requestedScopes, verificationToken }, client = getDefaultClient()) => {
|
|
5902
6458
|
preconnectWaasIframe(client);
|
|
5903
6459
|
let response;
|
|
5904
6460
|
if (client.user) response = await verifyOTPForUserUpdate({
|
|
@@ -5907,6 +6463,7 @@ const verifyOTP = async ({ otpVerification, verificationToken, requestedScopes }
|
|
|
5907
6463
|
verificationToken
|
|
5908
6464
|
}, client);
|
|
5909
6465
|
else response = await verifyOTPForUserSignIn({
|
|
6466
|
+
allowNewMFALinking,
|
|
5910
6467
|
otpVerification,
|
|
5911
6468
|
verificationToken
|
|
5912
6469
|
}, client);
|
|
@@ -5923,8 +6480,7 @@ const __verifyOTP_wrapped = instrumentFunction({
|
|
|
5923
6480
|
} catch {
|
|
5924
6481
|
return;
|
|
5925
6482
|
}
|
|
5926
|
-
}
|
|
5927
|
-
redactAll: true
|
|
6483
|
+
}
|
|
5928
6484
|
});
|
|
5929
6485
|
|
|
5930
6486
|
//#endregion
|
|
@@ -6006,6 +6562,33 @@ const getSwapStatus = async (params, client = getDefaultClient()) => {
|
|
|
6006
6562
|
}
|
|
6007
6563
|
};
|
|
6008
6564
|
|
|
6565
|
+
//#endregion
|
|
6566
|
+
//#region src/modules/user/checkUserScopes/checkUserScopes.ts
|
|
6567
|
+
/**
|
|
6568
|
+
* Checks whether the given user has all the specified scopes.
|
|
6569
|
+
*
|
|
6570
|
+
* The user's `scope` field is a whitespace-separated string of granted
|
|
6571
|
+
* permissions (per RFC 8693 §4.2). This helper splits it and verifies that
|
|
6572
|
+
* every entry in `scopes` is present.
|
|
6573
|
+
*
|
|
6574
|
+
* @example
|
|
6575
|
+
* const user = getDefaultClient().user;
|
|
6576
|
+
* if (user && checkUserScopes({ user, scopes: ['wallets:read'] })) {
|
|
6577
|
+
* showWalletBalances();
|
|
6578
|
+
* }
|
|
6579
|
+
*
|
|
6580
|
+
* @param params.user - The authenticated user to check.
|
|
6581
|
+
* @param params.scopes - The scope strings the user must have.
|
|
6582
|
+
* @returns `true` if the user has every scope in `scopes`, `false` otherwise.
|
|
6583
|
+
* @see User
|
|
6584
|
+
* @see updateUser
|
|
6585
|
+
* @notInstrumented
|
|
6586
|
+
*/
|
|
6587
|
+
const checkUserScopes = ({ scopes, user }) => {
|
|
6588
|
+
const grantedScopes = user.scope?.split(/\s+/).filter(Boolean) ?? [];
|
|
6589
|
+
return scopes.every((requiredScope) => grantedScopes.includes(requiredScope));
|
|
6590
|
+
};
|
|
6591
|
+
|
|
6009
6592
|
//#endregion
|
|
6010
6593
|
//#region src/modules/user/deleteUser/deleteUser.ts
|
|
6011
6594
|
/**
|
|
@@ -6014,8 +6597,16 @@ const getSwapStatus = async (params, client = getDefaultClient()) => {
|
|
|
6014
6597
|
* This function performs a hard delete of the user account. Upon successful deletion,
|
|
6015
6598
|
* the user will be automatically logged out and all authentication data will be cleared.
|
|
6016
6599
|
*
|
|
6600
|
+
* @example
|
|
6601
|
+
* ```ts
|
|
6602
|
+
* // Permanently delete the user's account
|
|
6603
|
+
* await deleteUser();
|
|
6604
|
+
* ```
|
|
6605
|
+
*
|
|
6017
6606
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
6018
6607
|
* @returns A promise that resolves when the user account is successfully deleted.
|
|
6608
|
+
* @see logout
|
|
6609
|
+
* @see refreshUser
|
|
6019
6610
|
* @instrumented
|
|
6020
6611
|
*/
|
|
6021
6612
|
const deleteUser = async (client = getDefaultClient()) => {
|
|
@@ -7349,8 +7940,14 @@ const getAddressesWithTypesFromConnectionResult = (connectionResult) => {
|
|
|
7349
7940
|
*
|
|
7350
7941
|
* Note: This function will not verify the wallet account, use the verifyWalletAccount function to do that
|
|
7351
7942
|
* or connectAndVerifyWithWalletProvider to do that in a single step.
|
|
7352
|
-
*
|
|
7353
|
-
* @
|
|
7943
|
+
*
|
|
7944
|
+
* @example
|
|
7945
|
+
* ```ts
|
|
7946
|
+
* const walletAccount = await connectWithWalletProvider({
|
|
7947
|
+
* walletProviderKey: 'metamaskevm',
|
|
7948
|
+
* });
|
|
7949
|
+
* console.log(walletAccount.address);
|
|
7950
|
+
* ```
|
|
7354
7951
|
*
|
|
7355
7952
|
* @param params.walletProviderKey - The unique key identifying the wallet provider to connect to (e.g. 'metamaskevm', 'phantomsol').
|
|
7356
7953
|
* @param [params.addToDynamicWalletAccounts] - Whether to add the connected wallet account to the user's wallet accounts. Defaults to true.
|
|
@@ -7358,7 +7955,9 @@ const getAddressesWithTypesFromConnectionResult = (connectionResult) => {
|
|
|
7358
7955
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
7359
7956
|
* @returns A promise that resolves to the connected wallet account.
|
|
7360
7957
|
* @throws NoAddressFoundError If the request to connect was successful but no address is connected to your app.
|
|
7361
|
-
*
|
|
7958
|
+
* @see verifyWalletAccount
|
|
7959
|
+
* @see connectAndVerifyWithWalletProvider
|
|
7960
|
+
* @instrumented
|
|
7362
7961
|
*/
|
|
7363
7962
|
const connectWithWalletProvider = async ({ walletProviderKey, addToDynamicWalletAccounts = true, hardwareWalletVendor }, client = getDefaultClient()) => {
|
|
7364
7963
|
const walletProvider = getWalletProviderByKey({ walletProviderKey }, client);
|
|
@@ -7495,9 +8094,19 @@ const getSignInMessage = async ({ nonce: nonceOverride, walletAccount }, client)
|
|
|
7495
8094
|
* This function generates a sign-in message and requires the user to sign it
|
|
7496
8095
|
* with their wallet's private key, proving they control the wallet address.
|
|
7497
8096
|
*
|
|
8097
|
+
* @example
|
|
8098
|
+
* ```ts
|
|
8099
|
+
* const { messageToSign, signature } = await proveWalletAccountOwnership({
|
|
8100
|
+
* walletAccount: wallets[0],
|
|
8101
|
+
* });
|
|
8102
|
+
* // Send signature to your backend for verification
|
|
8103
|
+
* ```
|
|
8104
|
+
*
|
|
7498
8105
|
* @param params.walletAccount - The wallet account to prove ownership of.
|
|
7499
8106
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
7500
8107
|
* @returns A promise that resolves to an object containing the message and signature.
|
|
8108
|
+
* @see signMessage
|
|
8109
|
+
* @see verifyWalletAccount
|
|
7501
8110
|
* @instrumented
|
|
7502
8111
|
*/
|
|
7503
8112
|
const proveWalletAccountOwnership = async ({ walletAccount }, client = getDefaultClient()) => {
|
|
@@ -7601,11 +8210,22 @@ const verifyWalletAccountForSignInOrTransfer = async ({ walletAccount, isTransfe
|
|
|
7601
8210
|
* This function requires the user to sign a message to prove wallet ownership,
|
|
7602
8211
|
* then sets the wallet account as verified.
|
|
7603
8212
|
*
|
|
8213
|
+
* @example
|
|
8214
|
+
* ```ts
|
|
8215
|
+
* const walletAccount = await connectWithWalletProvider({
|
|
8216
|
+
* walletProviderKey: 'metamaskevm',
|
|
8217
|
+
* });
|
|
8218
|
+
* const verified = await verifyWalletAccount({ walletAccount });
|
|
8219
|
+
* ```
|
|
8220
|
+
*
|
|
7604
8221
|
* @param params.walletAccount - The wallet account to verify ownership of.
|
|
8222
|
+
* @param [params.requestedScopes] - Optional token scopes to request during verification.
|
|
7605
8223
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
7606
8224
|
* @returns A promise that resolves to the verified wallet account.
|
|
7607
8225
|
* @throws WalletAccountAlreadyVerifiedError If the wallet is already verified.
|
|
7608
8226
|
* @throws WalletAlreadyLinkedToAnotherUserError If the wallet is linked to another user.
|
|
8227
|
+
* @see connectWithWalletProvider
|
|
8228
|
+
* @see connectAndVerifyWithWalletProvider
|
|
7609
8229
|
* @instrumented
|
|
7610
8230
|
*/
|
|
7611
8231
|
const verifyWalletAccount = async ({ walletAccount, requestedScopes }, client = getDefaultClient()) => {
|
|
@@ -7655,10 +8275,20 @@ const isDeeplinkWalletProvider = ({ walletProvider }) => walletProvider.walletPr
|
|
|
7655
8275
|
* `verifyWalletAccount` separately from a new user gesture (e.g. a "Verify
|
|
7656
8276
|
* Ownership" button).
|
|
7657
8277
|
*
|
|
8278
|
+
* @example
|
|
8279
|
+
* ```ts
|
|
8280
|
+
* const walletAccount = await connectAndVerifyWithWalletProvider({
|
|
8281
|
+
* walletProviderKey: 'metamaskevm',
|
|
8282
|
+
* });
|
|
8283
|
+
* console.log('Verified address:', walletAccount.address);
|
|
8284
|
+
* ```
|
|
8285
|
+
*
|
|
7658
8286
|
* @param params.walletProviderKey - The unique key identifying the wallet provider to connect to.
|
|
7659
8287
|
* @param [params.hardwareWalletVendor] - The hardware wallet vendor, if connecting via a hardware wallet (e.g. 'ledger').
|
|
7660
8288
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
7661
8289
|
* @returns A promise that resolves to the connected and verified wallet account.
|
|
8290
|
+
* @see connectWithWalletProvider
|
|
8291
|
+
* @see verifyWalletAccount
|
|
7662
8292
|
* @instrumented
|
|
7663
8293
|
*/
|
|
7664
8294
|
const connectAndVerifyWithWalletProvider = async ({ walletProviderKey, hardwareWalletVendor }, client = getDefaultClient()) => {
|
|
@@ -7720,9 +8350,17 @@ const getAvailableWalletProvidersData = (client = getDefaultClient()) => {
|
|
|
7720
8350
|
* This function returns the list of wallet addresses that are currently
|
|
7721
8351
|
* connected and available through the specified wallet provider.
|
|
7722
8352
|
*
|
|
8353
|
+
* @example
|
|
8354
|
+
* ```ts
|
|
8355
|
+
* const addresses = getConnectedAddresses({ walletProviderKey: 'metamaskevm' });
|
|
8356
|
+
* console.log('Connected:', addresses);
|
|
8357
|
+
* ```
|
|
8358
|
+
*
|
|
7723
8359
|
* @param params.walletProviderKey - The unique key of the wallet provider to query.
|
|
7724
8360
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
7725
8361
|
* @returns An array of connected wallet addresses.
|
|
8362
|
+
* @see connectWithWalletProvider
|
|
8363
|
+
* @see getWalletAccounts
|
|
7726
8364
|
* @notInstrumented
|
|
7727
8365
|
*/
|
|
7728
8366
|
const getConnectedAddresses = ({ walletProviderKey }, client = getDefaultClient()) => {
|
|
@@ -7754,6 +8392,7 @@ const getWalletAccountAddressByType = ({ type, walletAccount }) => {
|
|
|
7754
8392
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
7755
8393
|
* @returns The data for the wallet provider.
|
|
7756
8394
|
* @notInstrumented
|
|
8395
|
+
* @hook Exposed as a hook so consumers get reactive wallet provider data, updated when the wallet provider registry changes.
|
|
7757
8396
|
*/
|
|
7758
8397
|
const getWalletProviderDataByKey = ({ walletProviderKey }, client = getDefaultClient()) => {
|
|
7759
8398
|
const { chain, groupKey, key, metadata, walletProviderType } = getWalletProviderByKey({ walletProviderKey }, client);
|
|
@@ -7802,8 +8441,17 @@ const isHardwareWalletAccount = ({ walletAccount }) => walletAccount.hardwareWal
|
|
|
7802
8441
|
* else your app considers "signed in" (e.g. `client.user`, completed onboarding,
|
|
7803
8442
|
* a required embedded wallet, …).
|
|
7804
8443
|
*
|
|
8444
|
+
* @example
|
|
8445
|
+
* ```ts
|
|
8446
|
+
* if (isAnyWalletAccountConnected()) {
|
|
8447
|
+
* console.log('At least one wallet is connected');
|
|
8448
|
+
* }
|
|
8449
|
+
* ```
|
|
8450
|
+
*
|
|
7805
8451
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
7806
8452
|
* @returns True if the session has at least one wallet account, false otherwise.
|
|
8453
|
+
* @see getWalletAccounts
|
|
8454
|
+
* @see isWalletAccountVerified
|
|
7807
8455
|
* @notInstrumented
|
|
7808
8456
|
*/
|
|
7809
8457
|
const isAnyWalletAccountConnected = (client = getDefaultClient()) => getWalletAccounts(client).length > 0;
|
|
@@ -7813,8 +8461,16 @@ const isAnyWalletAccountConnected = (client = getDefaultClient()) => getWalletAc
|
|
|
7813
8461
|
/**
|
|
7814
8462
|
* Checks if a wallet account has been verified by a user.
|
|
7815
8463
|
*
|
|
7816
|
-
* @
|
|
8464
|
+
* @example
|
|
8465
|
+
* ```ts
|
|
8466
|
+
* const wallets = getWalletAccounts();
|
|
8467
|
+
* const verified = wallets.filter(w => isWalletAccountVerified({ walletAccount: w }));
|
|
8468
|
+
* ```
|
|
8469
|
+
*
|
|
8470
|
+
* @param params.walletAccount - The wallet account to check.
|
|
7817
8471
|
* @returns True if the wallet account has been verified, false otherwise.
|
|
8472
|
+
* @see verifyWalletAccount
|
|
8473
|
+
* @see getWalletAccounts
|
|
7818
8474
|
* @notInstrumented
|
|
7819
8475
|
*/
|
|
7820
8476
|
const isWalletAccountVerified = ({ walletAccount }) => {
|
|
@@ -7904,9 +8560,17 @@ const getActiveNetworkId = ({ walletAccount }, client = getDefaultClient()) => {
|
|
|
7904
8560
|
* {@link getTokenBalances}; for a multi-chain portfolio snapshot, use
|
|
7905
8561
|
* {@link getMultichainTokenBalances}.
|
|
7906
8562
|
*
|
|
8563
|
+
* @example
|
|
8564
|
+
* ```ts
|
|
8565
|
+
* const { balance } = await getNativeBalance({ walletAccount: wallets[0] });
|
|
8566
|
+
* console.log('Native balance:', balance);
|
|
8567
|
+
* ```
|
|
8568
|
+
*
|
|
7907
8569
|
* @param params.walletAccount - The wallet account to get the balance for.
|
|
7908
8570
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
7909
8571
|
* @returns A promise that resolves to an object containing the balance as a string or null.
|
|
8572
|
+
* @see getMultichainTokenBalances
|
|
8573
|
+
* @see switchActiveNetwork
|
|
7910
8574
|
* @notInstrumented
|
|
7911
8575
|
*/
|
|
7912
8576
|
const getNativeBalance = async ({ walletAccount }, client = getDefaultClient()) => {
|
|
@@ -7926,6 +8590,14 @@ const getNativeBalance = async ({ walletAccount }, client = getDefaultClient())
|
|
|
7926
8590
|
* with the token-balance fetchers (`getTokenBalances` /
|
|
7927
8591
|
* `getMultichainTokenBalances`).
|
|
7928
8592
|
*
|
|
8593
|
+
* @example
|
|
8594
|
+
* ```ts
|
|
8595
|
+
* // Prefer getNativeBalance instead
|
|
8596
|
+
* const balance = await getNativeBalance({ walletAccount });
|
|
8597
|
+
* ```
|
|
8598
|
+
*
|
|
8599
|
+
* @see getNativeBalance
|
|
8600
|
+
* @see getMultichainBalances
|
|
7929
8601
|
* @notInstrumented
|
|
7930
8602
|
* @noHook Deprecated; the replacement is exposed via its own hook.
|
|
7931
8603
|
*/
|
|
@@ -8011,11 +8683,21 @@ const isProgrammaticNetworkSwitchAvailable = ({ walletAccount }, client = getDef
|
|
|
8011
8683
|
* This function programmatically changes the network
|
|
8012
8684
|
* that the wallet is currently connected to.
|
|
8013
8685
|
*
|
|
8686
|
+
* @example
|
|
8687
|
+
* ```ts
|
|
8688
|
+
* await switchActiveNetwork({
|
|
8689
|
+
* walletAccount: wallets[0],
|
|
8690
|
+
* networkId: '137', // Polygon
|
|
8691
|
+
* });
|
|
8692
|
+
* ```
|
|
8693
|
+
*
|
|
8014
8694
|
* @param params.networkId - The identifier of the network to switch to. Should match the networkId of the network data.
|
|
8015
8695
|
* @param params.walletAccount - The wallet account to switch networks for.
|
|
8016
8696
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
8017
8697
|
* @returns A promise that resolves when the network switch is complete.
|
|
8018
8698
|
* @throws NetworkSwitchingUnavailableError If the wallet provider doesn't support network switching.
|
|
8699
|
+
* @see getNativeBalance
|
|
8700
|
+
* @see isProgrammaticNetworkSwitchAvailable
|
|
8019
8701
|
* @instrumented
|
|
8020
8702
|
*/
|
|
8021
8703
|
const switchActiveNetwork = async ({ networkId, walletAccount }, client = getDefaultClient()) => {
|
|
@@ -8041,15 +8723,37 @@ const __switchActiveNetwork_wrapped = instrumentFunction({
|
|
|
8041
8723
|
});
|
|
8042
8724
|
|
|
8043
8725
|
//#endregion
|
|
8044
|
-
//#region src/modules/wallets/
|
|
8726
|
+
//#region src/modules/wallets/selectedWalletAccount/setSelectedWalletAccount/setSelectedWalletAccount.ts
|
|
8045
8727
|
/**
|
|
8046
|
-
*
|
|
8728
|
+
* Set the wallet account that is currently selected for the user.
|
|
8729
|
+
*
|
|
8730
|
+
* The SDK itself does not use or care about which wallet is "selected" — this
|
|
8731
|
+
* only records the selection (updating the backend `lastSelectedAt` and, for
|
|
8732
|
+
* verified wallets, persisting it server-side) so it can later be read back via
|
|
8733
|
+
* `getSelectedWalletAccount`. It has no bearing on authentication or signing.
|
|
8734
|
+
* Applications that need a notion of an active/current wallet should own that
|
|
8735
|
+
* selection state themselves.
|
|
8736
|
+
*
|
|
8737
|
+
* The one exception is the wagmi integration (`@dynamic-labs-sdk/wagmi`), which
|
|
8738
|
+
* relies on the selected EVM wallet.
|
|
8739
|
+
*
|
|
8740
|
+
* @example
|
|
8741
|
+
* ```ts
|
|
8742
|
+
* const wallets = getWalletAccounts();
|
|
8743
|
+
* await setSelectedWalletAccount({ walletAccount: wallets[1] });
|
|
8744
|
+
* ```
|
|
8745
|
+
*
|
|
8746
|
+
* @param params.walletAccount - The wallet account to mark as selected.
|
|
8747
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
8748
|
+
* @returns A promise that resolves when the selection is persisted.
|
|
8749
|
+
* @see getSelectedWalletAccount
|
|
8750
|
+
* @see getWalletAccounts
|
|
8047
8751
|
* @instrumented
|
|
8048
|
-
* @noHook The
|
|
8752
|
+
* @noHook The selected-wallet concept is not exposed as a hook.
|
|
8049
8753
|
*/
|
|
8050
|
-
const
|
|
8754
|
+
const setSelectedWalletAccount = async ({ walletAccount }, client = getDefaultClient()) => {
|
|
8051
8755
|
const core = getCore(client);
|
|
8052
|
-
if (
|
|
8756
|
+
if (getSelectedWalletAccount(client)?.id === walletAccount.id) return;
|
|
8053
8757
|
if (walletAccount.verifiedCredentialId) updateAuthFromVerifyResponse({ response: await createApiClient({}, client).selectUserWallet({
|
|
8054
8758
|
environmentId: core.environmentId,
|
|
8055
8759
|
userWalletSelectionRequest: { walletId: walletAccount.verifiedCredentialId }
|
|
@@ -8059,6 +8763,68 @@ const selectPrimaryWalletAccount = async ({ walletAccount }, client = getDefault
|
|
|
8059
8763
|
lastSelectedAt: /* @__PURE__ */ new Date()
|
|
8060
8764
|
}] }, client);
|
|
8061
8765
|
};
|
|
8766
|
+
const __setSelectedWalletAccount_impl = setSelectedWalletAccount;
|
|
8767
|
+
const __setSelectedWalletAccount_wrapped = instrumentFunction({
|
|
8768
|
+
fn: __setSelectedWalletAccount_impl,
|
|
8769
|
+
functionName: "setSelectedWalletAccount",
|
|
8770
|
+
getCore: () => {
|
|
8771
|
+
try {
|
|
8772
|
+
return getCore(getDefaultClient());
|
|
8773
|
+
} catch {
|
|
8774
|
+
return;
|
|
8775
|
+
}
|
|
8776
|
+
}
|
|
8777
|
+
});
|
|
8778
|
+
|
|
8779
|
+
//#endregion
|
|
8780
|
+
//#region src/modules/wallets/selectedWalletAccount/getPrimaryWalletAccount/getPrimaryWalletAccount.ts
|
|
8781
|
+
/**
|
|
8782
|
+
* Get the primary wallet account.
|
|
8783
|
+
*
|
|
8784
|
+
* @deprecated Renamed to `getSelectedWalletAccount`. The "primary wallet" naming was
|
|
8785
|
+
* misleading — the SDK does not use or care about which wallet is selected; it
|
|
8786
|
+
* only lets you *read* the user's most recently selected wallet. Migrate to
|
|
8787
|
+
* `getSelectedWalletAccount`, and own your own wallet-selection state in your
|
|
8788
|
+
* application rather than relying on the SDK's selected wallet.
|
|
8789
|
+
*
|
|
8790
|
+
* @example
|
|
8791
|
+
* ```ts
|
|
8792
|
+
* const primary = getPrimaryWalletAccount();
|
|
8793
|
+
* if (primary) {
|
|
8794
|
+
* console.log('Primary wallet:', primary.address);
|
|
8795
|
+
* }
|
|
8796
|
+
* ```
|
|
8797
|
+
*
|
|
8798
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
8799
|
+
* @returns The primary wallet account, or null if no wallet has been selected.
|
|
8800
|
+
* @notInstrumented
|
|
8801
|
+
*/
|
|
8802
|
+
const getPrimaryWalletAccount = (client = getDefaultClient()) => getSelectedWalletAccount(client);
|
|
8803
|
+
|
|
8804
|
+
//#endregion
|
|
8805
|
+
//#region src/modules/wallets/selectedWalletAccount/selectPrimaryWalletAccount/selectPrimaryWalletAccount.ts
|
|
8806
|
+
/**
|
|
8807
|
+
* Make the wallet account provided as the primary wallet account.
|
|
8808
|
+
*
|
|
8809
|
+
* @deprecated Renamed to `setSelectedWalletAccount`. The "primary wallet" naming was
|
|
8810
|
+
* misleading — the SDK does not use or care about which wallet is selected;
|
|
8811
|
+
* this only records the selection so it can later be read back. Migrate to
|
|
8812
|
+
* `setSelectedWalletAccount`, and own your own wallet-selection state in your
|
|
8813
|
+
* application rather than relying on the SDK's selected wallet.
|
|
8814
|
+
*
|
|
8815
|
+
* @example
|
|
8816
|
+
* ```ts
|
|
8817
|
+
* const wallets = getWalletAccounts();
|
|
8818
|
+
* await selectPrimaryWalletAccount({ walletAccount: wallets[1] });
|
|
8819
|
+
* ```
|
|
8820
|
+
*
|
|
8821
|
+
* @param params.walletAccount - The wallet account to set as primary.
|
|
8822
|
+
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
8823
|
+
* @returns A promise that resolves when the selection is persisted.
|
|
8824
|
+
* @instrumented
|
|
8825
|
+
* @noHook The selected-wallet concept is not exposed as a hook.
|
|
8826
|
+
*/
|
|
8827
|
+
const selectPrimaryWalletAccount = async ({ walletAccount }, client = getDefaultClient()) => __setSelectedWalletAccount_wrapped({ walletAccount }, client);
|
|
8062
8828
|
const __selectPrimaryWalletAccount_impl = selectPrimaryWalletAccount;
|
|
8063
8829
|
const __selectPrimaryWalletAccount_wrapped = instrumentFunction({
|
|
8064
8830
|
fn: __selectPrimaryWalletAccount_impl,
|
|
@@ -8075,10 +8841,23 @@ const __selectPrimaryWalletAccount_wrapped = instrumentFunction({
|
|
|
8075
8841
|
//#endregion
|
|
8076
8842
|
//#region src/modules/wallets/disconnectWalletAccount/disconnectWalletAccount.ts
|
|
8077
8843
|
/**
|
|
8078
|
-
*
|
|
8844
|
+
* Disconnects the specified wallet account from its wallet provider.
|
|
8079
8845
|
*
|
|
8080
|
-
* The wallet account is not removed from the user's profile or from
|
|
8846
|
+
* The wallet account is not removed from the user's profile or from Dynamic's state,
|
|
8081
8847
|
* it is only responsible for terminating the connection with the wallet provider.
|
|
8848
|
+
* Use `removeWalletAccount` to fully remove a wallet from the user's session.
|
|
8849
|
+
*
|
|
8850
|
+
* @example
|
|
8851
|
+
* ```ts
|
|
8852
|
+
* const wallets = getWalletAccounts();
|
|
8853
|
+
* await disconnectWalletAccount({ walletAccount: wallets[0] }, client);
|
|
8854
|
+
* ```
|
|
8855
|
+
*
|
|
8856
|
+
* @param params.walletAccount - The wallet account to disconnect.
|
|
8857
|
+
* @param client - The Dynamic client instance.
|
|
8858
|
+
* @returns A promise that resolves when the wallet is disconnected from the provider.
|
|
8859
|
+
* @see removeWalletAccount
|
|
8860
|
+
* @see connectWithWalletProvider
|
|
8082
8861
|
* @notInstrumented
|
|
8083
8862
|
*/
|
|
8084
8863
|
const disconnectWalletAccount = async ({ walletAccount }, client) => {
|
|
@@ -8099,9 +8878,17 @@ const disconnectWalletAccount = async ({ walletAccount }, client) => {
|
|
|
8099
8878
|
* updating local state and server records (if there is an authenticated user).
|
|
8100
8879
|
* For verified wallets, it will unlink them from the user's account.
|
|
8101
8880
|
*
|
|
8881
|
+
* @example
|
|
8882
|
+
* ```ts
|
|
8883
|
+
* const wallets = getWalletAccounts();
|
|
8884
|
+
* await removeWalletAccount({ walletAccount: wallets[0] });
|
|
8885
|
+
* ```
|
|
8886
|
+
*
|
|
8102
8887
|
* @param params.walletAccount - The wallet account to remove.
|
|
8103
8888
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
8104
8889
|
* @returns A promise that resolves when the wallet account is successfully removed.
|
|
8890
|
+
* @see getWalletAccounts
|
|
8891
|
+
* @see disconnectWalletAccount
|
|
8105
8892
|
* @instrumented
|
|
8106
8893
|
*/
|
|
8107
8894
|
const removeWalletAccount = async ({ walletAccount }, client = getDefaultClient()) => {
|
|
@@ -8138,10 +8925,21 @@ const __removeWalletAccount_wrapped = instrumentFunction({
|
|
|
8138
8925
|
* This function uses the wallet's private key to cryptographically sign
|
|
8139
8926
|
* the provided message.
|
|
8140
8927
|
*
|
|
8928
|
+
* @example
|
|
8929
|
+
* ```ts
|
|
8930
|
+
* const wallets = getWalletAccounts();
|
|
8931
|
+
* const { signature } = await signMessage({
|
|
8932
|
+
* walletAccount: wallets[0],
|
|
8933
|
+
* message: 'Hello Dynamic!',
|
|
8934
|
+
* });
|
|
8935
|
+
* ```
|
|
8936
|
+
*
|
|
8141
8937
|
* @param params.walletAccount - The wallet account to use for signing.
|
|
8142
8938
|
* @param params.message - The message to sign.
|
|
8143
8939
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
8144
8940
|
* @returns A promise that resolves to an object containing the signature.
|
|
8941
|
+
* @see getWalletAccounts
|
|
8942
|
+
* @see connectWithWalletProvider
|
|
8145
8943
|
* @instrumented
|
|
8146
8944
|
*/
|
|
8147
8945
|
const signMessage = async ({ walletAccount, message }, client = getDefaultClient()) => {
|
|
@@ -8174,13 +8972,24 @@ const __signMessage_wrapped = instrumentFunction({
|
|
|
8174
8972
|
* Supports native token transfers and, where supported by the chain,
|
|
8175
8973
|
* fungible/token transfers via the optional `token` parameter.
|
|
8176
8974
|
*
|
|
8975
|
+
* @example
|
|
8976
|
+
* ```ts
|
|
8977
|
+
* const { transactionHash } = await transferAmount({
|
|
8978
|
+
* walletAccount: wallets[0],
|
|
8979
|
+
* amount: '0.1',
|
|
8980
|
+
* recipient: '0x1234...abcd',
|
|
8981
|
+
* });
|
|
8982
|
+
* ```
|
|
8983
|
+
*
|
|
8177
8984
|
* @param params.walletAccount - The wallet account to transfer from.
|
|
8178
8985
|
* @param params.amount - The amount to transfer as a decimal string (e.g. "1.5").
|
|
8179
8986
|
* @param params.recipient - The recipient address.
|
|
8180
|
-
* @param params.token - Optional token info for non-native transfers.
|
|
8987
|
+
* @param [params.token] - Optional token info for non-native transfers.
|
|
8181
8988
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
8182
8989
|
* @returns A promise that resolves to an object containing the transaction hash.
|
|
8183
8990
|
* @throws If the wallet provider does not support the transfer amount method.
|
|
8991
|
+
* @see getWalletAccounts
|
|
8992
|
+
* @see signMessage
|
|
8184
8993
|
* @instrumented
|
|
8185
8994
|
*/
|
|
8186
8995
|
const transferAmount = async ({ walletAccount, amount, recipient, token }, client = getDefaultClient()) => {
|
|
@@ -8215,9 +9024,18 @@ const __transferAmount_wrapped = instrumentFunction({
|
|
|
8215
9024
|
* This function requires the user to sign a message to prove wallet ownership,
|
|
8216
9025
|
* then transfers the wallet account to the current user's account.
|
|
8217
9026
|
*
|
|
9027
|
+
* @example
|
|
9028
|
+
* ```ts
|
|
9029
|
+
* const walletAccount = await transferWalletAccount({
|
|
9030
|
+
* walletProviderKey: 'metamaskevm',
|
|
9031
|
+
* });
|
|
9032
|
+
* ```
|
|
9033
|
+
*
|
|
8218
9034
|
* @param params.walletProviderKey - The key of the wallet provider of the wallet account to transfer.
|
|
8219
9035
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
8220
9036
|
* @returns A promise that resolves to the transferred wallet account.
|
|
9037
|
+
* @see connectWithWalletProvider
|
|
9038
|
+
* @see verifyWalletAccount
|
|
8221
9039
|
* @instrumented
|
|
8222
9040
|
*/
|
|
8223
9041
|
const transferWalletAccount = async ({ walletProviderKey }, client = getDefaultClient()) => {
|
|
@@ -8250,10 +9068,20 @@ const __transferWalletAccount_wrapped = instrumentFunction({
|
|
|
8250
9068
|
* This function searches through the current session's wallet accounts
|
|
8251
9069
|
* to find one matching the specified address and chain.
|
|
8252
9070
|
*
|
|
9071
|
+
* @example
|
|
9072
|
+
* ```ts
|
|
9073
|
+
* const account = getWalletAccountFromAddress({
|
|
9074
|
+
* address: '0x1234...abcd',
|
|
9075
|
+
* chain: 'EVM',
|
|
9076
|
+
* });
|
|
9077
|
+
* ```
|
|
9078
|
+
*
|
|
8253
9079
|
* @param params.address - The wallet address to search for.
|
|
8254
9080
|
* @param params.chain - The blockchain the wallet belongs to.
|
|
8255
9081
|
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
8256
9082
|
* @returns The matching wallet account, or undefined if not found.
|
|
9083
|
+
* @see getWalletAccounts
|
|
9084
|
+
* @see isWalletAccountVerified
|
|
8257
9085
|
* @notInstrumented
|
|
8258
9086
|
*/
|
|
8259
9087
|
const getWalletAccountFromAddress = ({ address, chain }, client = getDefaultClient()) => {
|
|
@@ -8412,5 +9240,5 @@ const parseUserAgent = ({ userAgent }) => {
|
|
|
8412
9240
|
assertPackageVersion(name, version);
|
|
8413
9241
|
|
|
8414
9242
|
//#endregion
|
|
8415
|
-
export { BaseError, CheckoutSessionTokenMissingError, ClientAlreadyInitializedError, DeeplinkConnectAndVerifyUnsupportedError, FeeEstimationFailedError, FlowSessionTokenMissingError, GOOGLE_DRIVE_BACKUP_REQUIRED_SCOPES, InvalidDeviceRegistrationRedirectError, InvalidExternalAuthError, InvalidParamError, InvalidRedirectStorageStateError, InvalidSocialCallbackOriginError, JwtVerifiedCredentialFormatEnum, LinkCredentialError, MFAAction, MfaInvalidOtpError, MfaRateLimitedError, MissingRedirectStorageStateError, MissingSocialUrlParamError, MissingUserVerificationError, NetworkAddingUnavailableError, NetworkNotAddedError, NetworkSwitchingUnavailableError, NoAddressFoundError, NoNetworkProvidersError, NoPasskeyCredentialsFoundError, NoSmartWalletAccountSignerFoundError, NoWebAuthNSupportError, NotWaasWalletAccountError, ProviderEnum, SandboxMaximumThresholdReachedError, SimulationFailedError, TokenScope, TokenSwapError, UnauthorizedError, UnavailableInServerSideError, UnrecognizedNetworkError, UserCancelledSocialPopUpError, UserNotAuthenticatedError, UserRejectedError, WaasOnboardingIncompleteError, WalletAccountAlreadyVerifiedError, WalletAccountNotSelectedError, WalletAlreadyLinkedToAnotherUserError, WalletProviderMethodUnavailableError, __acknowledgeRecoveryCodes_wrapped as acknowledgeRecoveryCodes, addCoinbaseOnrampOrderEventListener, __addNetwork_wrapped as addNetwork, appendConnectionUriToDeeplink, assertWalletAccountSigningAvailability, assertWalletProviderMethodDefined, __attachCheckoutTransactionSource_wrapped as attachCheckoutTransactionSource, __attachFlowSource_wrapped as attachFlowSource, authenticateMfaRecoveryCode, authenticatePasskeyMFA, authenticateTotpMfaDevice, __authenticateWithSocial_wrapped as authenticateWithSocial, __broadcastCheckoutTransaction_wrapped as broadcastCheckoutTransaction, __broadcastFlow_wrapped as broadcastFlow, canConnectWithHardwareWallet, __cancelCheckoutTransaction_wrapped as cancelCheckoutTransaction, __cancelFlow_wrapped as cancelFlow, __checkStepUpAuth_wrapped as checkStepUpAuth, __completeDeviceRegistration_wrapped as completeDeviceRegistration, __completeSocialAuthentication_wrapped as completeSocialAuthentication, __completeSocialRedirect_wrapped as completeSocialRedirect, __confirmTransaction_wrapped as confirmTransaction, __connectAndVerifyWithWalletProvider_wrapped as connectAndVerifyWithWalletProvider, __connectWithWalletProvider_wrapped as connectWithWalletProvider, __consumeMfaToken_wrapped as consumeMfaToken, __createCheckoutTransaction_wrapped as createCheckoutTransaction, __createCoinbaseOnrampOrder_wrapped as createCoinbaseOnrampOrder, __createCryptoDotComPayment_wrapped as createCryptoDotComPayment, __createDynamicClient_wrapped as createDynamicClient,
|
|
9243
|
+
export { BaseError, CaptchaProviderEnum, CheckoutSessionTokenMissingError, ClientAlreadyInitializedError, DeeplinkConnectAndVerifyUnsupportedError, DeviceRegistrationIdentityMismatchError, FeeEstimationFailedError, FlowSessionTokenMissingError, GOOGLE_DRIVE_BACKUP_REQUIRED_SCOPES, InvalidDeviceRegistrationRedirectError, InvalidExternalAuthError, InvalidParamError, InvalidRedirectStorageStateError, InvalidSocialCallbackOriginError, JwtVerifiedCredentialFormatEnum, LinkCredentialError, MFAAction, MergeAccountsConfirmationError, MfaInvalidOtpError, MfaRateLimitedError, MissingRedirectStorageStateError, MissingSocialUrlParamError, MissingUserVerificationError, NetworkAddingUnavailableError, NetworkNotAddedError, NetworkSwitchingUnavailableError, NoAddressFoundError, NoNetworkProvidersError, NoPasskeyCredentialsFoundError, NoSmartWalletAccountSignerFoundError, NoWebAuthNSupportError, NotWaasWalletAccountError, ProviderEnum, SandboxMaximumThresholdReachedError, SimulationFailedError, TokenScope, TokenSwapError, UnauthorizedError, UnavailableInServerSideError, UnrecognizedNetworkError, UserCancelledSocialPopUpError, UserNotAuthenticatedError, UserRejectedError, WaasOnboardingIncompleteError, WalletAccountAlreadyVerifiedError, WalletAccountNotSelectedError, WalletAlreadyLinkedToAnotherUserError, WalletProviderMethodUnavailableError, WalletScreeningBlockedError, __acknowledgeRecoveryCodes_wrapped as acknowledgeRecoveryCodes, addCoinbaseOnrampOrderEventListener, __addNetwork_wrapped as addNetwork, appendConnectionUriToDeeplink, assertWalletAccountSigningAvailability, assertWalletProviderMethodDefined, __attachCheckoutTransactionSource_wrapped as attachCheckoutTransactionSource, __attachFlowSource_wrapped as attachFlowSource, authenticateMfaRecoveryCode, authenticatePasskeyMFA, authenticateTotpMfaDevice, __authenticateWithSocial_wrapped as authenticateWithSocial, __broadcastCheckoutTransaction_wrapped as broadcastCheckoutTransaction, __broadcastFlow_wrapped as broadcastFlow, canConnectWithHardwareWallet, __cancelCheckoutTransaction_wrapped as cancelCheckoutTransaction, __cancelFlow_wrapped as cancelFlow, __checkStepUpAuth_wrapped as checkStepUpAuth, checkUserScopes, clearDeviceRegistrationRedirectParams, clearSocialRedirectParams, __completeDeviceRegistration_wrapped as completeDeviceRegistration, __completeSocialAuthentication_wrapped as completeSocialAuthentication, __completeSocialRedirect_wrapped as completeSocialRedirect, __confirmTransaction_wrapped as confirmTransaction, __connectAndVerifyWithWalletProvider_wrapped as connectAndVerifyWithWalletProvider, __connectWithWalletProvider_wrapped as connectWithWalletProvider, __consumeMfaToken_wrapped as consumeMfaToken, __createCheckoutTransaction_wrapped as createCheckoutTransaction, __createCoinbaseOnrampOrder_wrapped as createCoinbaseOnrampOrder, __createCryptoDotComPayment_wrapped as createCryptoDotComPayment, __createDynamicClient_wrapped as createDynamicClient, createKrakenExchangeTransfer, __createNewMfaRecoveryCodes_wrapped as createNewMfaRecoveryCodes, __deleteMfaDevice_wrapped as deleteMfaDevice, __deletePasskey_wrapped as deletePasskey, __deleteUser_wrapped as deleteUser, detectDeviceRegistrationRedirect, detectOAuthRedirect, detectSocialRedirectUrl, excludeInstalledFromCatalog, __executeSwapTransaction_wrapped as executeSwapTransaction, fetchProjectSettings, findMissingGoogleDriveBackupScopes, getActiveNetworkData, getActiveNetworkId, getAvailableWalletProvidersData, getBalance, getBalanceForAddress, getBalances, getCaptchaSettings, getCheckoutTransaction, getCheckoutTransactionQuote, getCoinbaseBuyUrl, getConnectedAddresses, getDefaultClient, getDeviceRegistrationTokenFromUrl, getElevatedAccessToken, getFlow, getFlowQuote, __getGoogleDriveBackupReadiness_wrapped as getGoogleDriveBackupReadiness, getInstallationLinkForCurrentPlatform, getKrakenAccounts, getKrakenWhitelistedAddresses, getMfaDevices, getMfaMethods, getMfaRecoveryCodes, getMissingVerificationForCoinbaseOnrampOrder, __getMoonPayCurrencies_wrapped as getMoonPayCurrencies, __getMoonPayUrl_wrapped as getMoonPayUrl, getMultichainBalances, getMultichainTokenBalances, getNativeBalance, getNetworksData, getOwnerWalletAccountForSmartWalletAccount, getPasskeys, getPrimaryWalletAccount, getRegisteredDevices, getSelectedWalletAccount, getSwapQuote, getSwapStatus, getTokenBalances, getTransactionHistory, getUserSocialAccounts, getWalletAccountAddressByType, getWalletAccountFromAddress, getWalletAccounts, getWalletConnectCatalog, getWalletConnectCatalogWalletByWalletProviderKey, getWalletOptionsCatalogue, getWalletProviderDataByKey, hasAllGoogleDriveBackupScopes, hasExtension, __initializeClient_wrapped as initializeClient, isAnyWalletAccountConnected, isCaptchaRequired, isDeeplinkWalletProvider, isDeviceRegistrationRequired, isHardwareWalletAccount, isInsufficientGoogleDriveScopesError, isMfaRequiredForAction, isMobile, isPendingRecoveryCodesAcknowledgment, isProgrammaticNetworkSwitchAvailable, isSignedIn, isUserMissingMfaAuth, isUserOnboardingComplete, isWalletAccountVerified, logout, matchWalletProvidersToCatalogGroup, mergeUserAccounts, offEvent, offWalletProviderEvent, onEvent, onWalletProviderEvent, onceEvent, parseUserAgent, __prepareCheckoutTransaction_wrapped as prepareCheckoutTransaction, __prepareFlowSigning_wrapped as prepareFlowSigning, __proveWalletAccountOwnership_wrapped as proveWalletAccountOwnership, __refreshAuth_wrapped as refreshAuth, __refreshUser_wrapped as refreshUser, __registerPasskey_wrapped as registerPasskey, __registerTotpMfaDevice_wrapped as registerTotpMfaDevice, __removeWalletAccount_wrapped as removeWalletAccount, __requestExternalAuthElevatedToken_wrapped as requestExternalAuthElevatedToken, requiresConversion, __revokeAllRegisteredDevices_wrapped as revokeAllRegisteredDevices, __revokeRegisteredDevice_wrapped as revokeRegisteredDevice, __selectPrimaryWalletAccount_wrapped as selectPrimaryWalletAccount, __sendEmailOTP_wrapped as sendEmailOTP, __sendSmsOTP_wrapped as sendSmsOTP, __setCaptchaToken_wrapped as setCaptchaToken, __setDefaultMfaDevice_wrapped as setDefaultMfaDevice, __setInstrumentationEnabled_wrapped as setInstrumentationEnabled, __setSelectedWalletAccount_wrapped as setSelectedWalletAccount, __signInWithExternalJwt_wrapped as signInWithExternalJwt, __signInWithPasskey_wrapped as signInWithPasskey, __signInWithSocialPopUp_wrapped as signInWithSocialPopUp, __signInWithSocialRedirect_wrapped as signInWithSocialRedirect, __signMessage_wrapped as signMessage, __submitCheckoutTransaction_wrapped as submitCheckoutTransaction, __submitFlowTransaction_wrapped as submitFlowTransaction, supportedCountries, __switchActiveNetwork_wrapped as switchActiveNetwork, trackCheckoutTransaction, __transferAmount_wrapped as transferAmount, __transferWalletAccount_wrapped as transferWalletAccount, __unlinkSocialAccount_wrapped as unlinkSocialAccount, __updateUser_wrapped as updateUser, __verifyOTP_wrapped as verifyOTP, __verifyWalletAccount_wrapped as verifyWalletAccount, waitForClientInitialized };
|
|
8416
9244
|
//# sourceMappingURL=index.esm.js.map
|