UNPKG

@daimo/pay

Version:

Seamless crypto payments. Onboard users from any chain, any coin into your app with one click.

62 lines (59 loc) 1.9 kB
import { http } from 'wagmi'; import { mainnet, base, polygon, optimism, arbitrum, linea, bsc, sepolia, worldchain, mantle, celo } from 'wagmi/chains'; import defaultConnectors from './defaultConnectors.js'; // TODO: Move these to a provider rather than global variable let globalAppName; const getAppName = () => globalAppName; const REQUIRED_CHAINS = [ mainnet, base, polygon, optimism, arbitrum, linea, bsc, sepolia, worldchain, mantle, celo, ]; /** Daimo Pay recommended config, for use with wagmi's createConfig(). */ const defaultConfig = ({ appName = "Daimo Pay", appIcon, appDescription, appUrl, coinbaseWalletPreference, additionalConnectors, chains = REQUIRED_CHAINS, client, ...props }) => { globalAppName = appName; const paddedChains = [...chains]; for (const chain of REQUIRED_CHAINS) { if (!paddedChains.includes(chain)) { paddedChains.push(chain); } } const paddedTransports = {}; for (const chain of paddedChains) { if (!props?.transports?.[chain.id]) { // Auto inject http transport if not provided for a chain paddedTransports[chain.id] = http(); } else { paddedTransports[chain.id] = props.transports[chain.id]; } } const connectors = props?.connectors ?? defaultConnectors({ app: { name: appName, icon: appIcon, description: appDescription, url: appUrl, }, coinbaseWalletPreference, additionalConnectors, }); const config = { ...props, chains: paddedChains, transports: paddedTransports, connectors, }; return config; }; export { REQUIRED_CHAINS, defaultConfig as default, getAppName }; //# sourceMappingURL=defaultConfig.js.map