import type { Config } from '../createConfig.js' import { type GetPublicClientReturnType, getPublicClient, } from './getPublicClient.js' export type WatchPublicClientParameters< config extends Config = Config, chainId extends config['chains'][number]['id'] = config['chains'][number]['id'], > = { onChange( publicClient: GetPublicClientReturnType, prevPublicClient: GetPublicClientReturnType, ): void } export type WatchPublicClientReturnType = () => void /** https://wagmi.sh/core/api/actions/watchPublicClient */ export function watchPublicClient< config extends Config, chainId extends config['chains'][number]['id'], >( config: config, parameters: WatchPublicClientParameters, ): WatchPublicClientReturnType { const { onChange } = parameters return config.subscribe( () => getPublicClient(config) as GetPublicClientReturnType, onChange, { equalityFn(a, b) { return a?.uid === b?.uid }, }, ) }