UNPKG

@dynamic-labs/sdk-react-core

Version:

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

46 lines (43 loc) 2.13 kB
'use client' import { getEnabledWallets } from '@dynamic-labs/multi-wallet'; import { getChainInfo } from '@dynamic-labs/wallet-connector-core'; import { ChainRpcProviders } from '@dynamic-labs/rpc-providers'; import '@dynamic-labs/sdk-api-core'; import '../../shared/logger.js'; import '@dynamic-labs/iconic'; import 'react'; import 'react/jsx-runtime'; import '../../context/ViewContext/ViewContext.js'; import { createWallet } from '../../shared/utils/functions/wallet/createWallet.js'; import '@dynamic-labs/utils'; import '../../utils/constants/colors.js'; import '../../utils/constants/values.js'; import '../../shared/consts/index.js'; /** * This object is needed because the selected symbols default value from * getChainInfo differs from the one used in the wallet connectors */ const chainInfoOverrides = { starknet: 'STARK', }; const getEnabledChains = (chains) => chains .filter(({ enabled }) => enabled) .map(({ name }) => { var _a, _b; return (_a = chainInfoOverrides[name]) !== null && _a !== void 0 ? _a : (_b = getChainInfo(name)) === null || _b === void 0 ? void 0 : _b.symbol; }) .filter((chain) => Boolean(chain)); const getWallets = (props) => { var _a; return getEnabledWallets({ enabledChains: getEnabledChains(props.getSupportedWalletOpts.settings.chains), getSupportedWalletOpts: Object.assign(Object.assign({}, props.getSupportedWalletOpts), { chainRpcProviders: ChainRpcProviders, walletConnectProjectId: (_a = props.getSupportedWalletOpts.settings.sdk.walletConnect) === null || _a === void 0 ? void 0 : _a.projectId }), }).map((wallet) => { var _a; (_a = props.walletConnectorExtensions) === null || _a === void 0 ? void 0 : _a.forEach((extension) => { var _a; return wallet.extend(extension, { walletConnectDappProjectId: (_a = props.getSupportedWalletOpts.settings.sdk.walletConnect) === null || _a === void 0 ? void 0 : _a.walletProjectId, }); }); return createWallet(props.getSupportedWalletOpts.walletBook, wallet); }); }; export { getEnabledChains, getWallets };