@dynamic-labs/sdk-react-core
Version:
A React SDK for implementing wallet web3 authentication and authorization to your website.
73 lines (68 loc) • 3.6 kB
JavaScript
'use client'
;
Object.defineProperty(exports, '__esModule', { value: true });
var _tslib = require('../../../../../../_virtual/_tslib.cjs');
var utils = require('@dynamic-labs/utils');
require('@dynamic-labs/sdk-api-core');
require('../../../../config/ApiEndpoint.cjs');
require('../../../../store/state/projectSettings/projectSettings.cjs');
var findEmbeddedWalletFromVerifiedCredentials = require('../../../../utils/functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.cjs');
require('../../../../utils/constants/values.cjs');
require('@dynamic-labs/multi-wallet');
require('../../../../shared/logger.cjs');
require('../../../../utils/constants/colors.cjs');
require('react-international-phone');
require('@dynamic-labs/iconic');
require('@dynamic-labs/wallet-connector-core');
require('react');
require('react/jsx-runtime');
require('../../../../context/ViewContext/ViewContext.cjs');
require('@dynamic-labs/wallet-book');
require('../../../../shared/consts/index.cjs');
require('../../../../store/state/nonce/nonce.cjs');
var addPasskeyIdentifierToWalletConnector = require('../../../../utils/functions/addPasskeyIdentifierToWalletConnector/addPasskeyIdentifierToWalletConnector.cjs');
require('../../../../store/state/dynamicContextProps/dynamicContextProps.cjs');
require('../../../../store/state/primaryWalletId/primaryWalletId.cjs');
require('../../../../store/state/user/user.cjs');
require('../../../../store/state/connectedWalletsInfo/connectedWalletsInfo.cjs');
var embeddedWallets = require('../../../../data/api/embeddedWallets/embeddedWallets.cjs');
require('../../../../locale/locale.cjs');
const createEmbeddedWalletRequest = (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ user, walletConnector, environmentId, chains, sessionPublicKey, webAuthnAttestation, withAuthenticator, }) {
if (!walletConnector) {
throw new utils.DynamicError('Connector is missing. Please make sure you added EthereumWalletConnectors and/or SolanaWalletConnectors to DynamicProvider settings');
}
if (!user) {
throw new utils.DynamicError('User is not defined');
}
walletConnector.setEmail(user.email);
let authenticatorBody;
if (withAuthenticator || webAuthnAttestation !== undefined) {
if (!user.email) {
addPasskeyIdentifierToWalletConnector.addPasskeyIdentifierToWalletConnector(walletConnector, user);
}
const { attestation, challenge, displayName } = webAuthnAttestation || (yield walletConnector.getWebAuthnAttestation());
authenticatorBody = {
attestation: attestation,
challenge,
passkeyAlias: displayName,
};
}
const updatedUser = yield embeddedWallets.createTurnkeyEmbeddedWallet(Object.assign({ chains,
environmentId,
sessionPublicKey }, authenticatorBody));
if (!updatedUser) {
throw new utils.DynamicError('Failed to create embedded wallet');
}
const primaryChain = walletConnector.connectedChain;
const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(updatedUser, [primaryChain]);
if (!embeddedWalletVerifiedCredential) {
throw new utils.DynamicError('EmbeddedWalletVerifiedCredential not found');
}
walletConnector.setVerifiedCredentials(updatedUser.verifiedCredentials);
return {
embeddedWalletVerifiedCredential,
updatedUser,
walletConnector,
};
});
exports.createEmbeddedWalletRequest = createEmbeddedWalletRequest;