@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
JavaScript
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