@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
JavaScript
'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 };