UNPKG

@dynamic-labs/sdk-react-core

Version:

A React SDK for implementing wallet web3 authentication and authorization to your website.

65 lines (62 loc) 2.75 kB
'use client' import { __awaiter } from '../../../../../_virtual/_tslib.js'; import '@dynamic-labs/utils'; import '@dynamic-labs/sdk-api-core'; import '../../../config/ApiEndpoint.js'; import '../../../store/state/projectSettings/projectSettings.js'; import '../../../utils/constants/values.js'; import '@dynamic-labs/multi-wallet'; import '../../../shared/logger.js'; import '../../../utils/constants/colors.js'; import 'react-international-phone'; import '@dynamic-labs/iconic'; import '@dynamic-labs/wallet-connector-core'; import 'react'; import 'react/jsx-runtime'; import '../../ViewContext/ViewContext.js'; import '@dynamic-labs/wallet-book'; import '../../../shared/consts/index.js'; import '../../../store/state/nonce/nonce.js'; import '../../../store/state/dynamicContextProps/dynamicContextProps.js'; import '../../../store/state/primaryWalletId/primaryWalletId.js'; import { storeAuthTokenAndUser } from '../../../store/state/user/storeAuthTokenAndUser/storeAuthTokenAndUser.js'; import '../../../store/state/user/user.js'; import '../../../store/state/connectedWalletsInfo/connectedWalletsInfo.js'; import { createSmsVerification, signInWithSmsVerification } from '../../../data/api/sms/sms.js'; const createSmsHandler = (environmentId, { shouldRegisterSessionKeysOnSignin, generateSessionKey, }) => (phone, captchaToken) => __awaiter(void 0, void 0, void 0, function* () { const { verificationUUID } = yield createSmsVerification({ captchaToken, environmentId, isoCountryCode: phone.iso2, phoneCountryCode: phone.dialCode, phoneNumber: phone.phone, }); return { type: 'sms', verify: (oneTimePassword, options) => __awaiter(void 0, void 0, void 0, function* () { let sessionPublicKey = undefined; if (shouldRegisterSessionKeysOnSignin()) { const keypair = yield generateSessionKey(); sessionPublicKey = keypair.publicKey; } const response = yield signInWithSmsVerification({ captchaToken, environmentId, sessionPublicKey, verificationToken: oneTimePassword, verificationUUID, }); // Skip setting the user auth token and only return the VerifyResponse // if needed because setUser can trigger view re-renders. if (!(options === null || options === void 0 ? void 0 : options.skipSetUserAndAuthToken)) { storeAuthTokenAndUser(response); } return { destination: phone, response: response, verified: true, }; }), }; }); export { createSmsHandler };