@lifi/wallet-management
Version:
LI.FI Wallet Management solution.
47 lines • 1.71 kB
JavaScript
import { createConfig, ctrl, leather, okx, onekey, phantom, unisat, xverse, } from '@bigmi/client';
import { bitcoin } from '@bigmi/core';
import { ChainId } from '@lifi/sdk';
import { http, createClient } from 'viem';
/**
* Creates default Bigmi config that can be later synced (via useSyncBigmiConfig) with chains fetched from LI.FI API.
* @param props Properties to setup connectors. {@link DefaultBigmiConfigProps}
* @returns Bigmi config and connectors. {@link DefaultBigmiConfigResult}
* @example
* const { config, connectors } = createDefaultBigmiConfig();
* export const WalletProvider: FC<PropsWithChildren> = ({ children }) => {
* const { chains } = useAvailableChains();
* useSyncBigmiConfig(config, connectors, chains);
* return (
* <BigmiProvider config={wagmi.config} reconnectOnMount={false}>
* {children}
* </BigmiProvider>
* );
* };
*/
export function createDefaultBigmiConfig(props = {
bigmiConfig: { multiInjectedProviderDiscovery: false },
}) {
const connectors = [
phantom({ chainId: ChainId.BTC }),
xverse({ chainId: ChainId.BTC }),
unisat({ chainId: ChainId.BTC }),
ctrl({ chainId: ChainId.BTC }),
okx({ chainId: ChainId.BTC }),
leather({ chainId: ChainId.BTC }),
onekey({ chainId: ChainId.BTC }),
...(props?.connectors ?? []),
];
const config = createConfig({
chains: [bitcoin],
connectors,
client({ chain }) {
return createClient({ chain, transport: http() });
},
...props?.bigmiConfig,
});
return {
config,
connectors,
};
}
//# sourceMappingURL=createDefaultBigmiConfig.js.map