{"version":3,"file":"wallet-status-HadQNFyx.cjs","names":["getEvmWalletImplementation","connectAndEnsureCorrectNetworkCore","getInitializedEvmWalletImplementation","DEFAULT_DISCONNECTED_STATUS"],"sources":["../src/wallet/utils/connection.ts","../src/wallet/utils/wallet-status.ts"],"sourcesContent":["import type { GetAccountReturnType } from '@wagmi/core';\n\nimport {\n  connectAndEnsureCorrectNetworkCore,\n  DEFAULT_DISCONNECTED_STATUS,\n  type EvmWalletConnectionResult,\n} from '@openzeppelin/adapter-evm-core';\nimport type { Connector } from '@openzeppelin/ui-types';\nimport { logger } from '@openzeppelin/ui-utils';\n\nimport {\n  getEvmWalletImplementation,\n  getInitializedEvmWalletImplementation,\n} from './walletImplementationManager';\n\nconst LOG_SYSTEM = 'adapter-evm-connection';\n\n/**\n * Indicates if this adapter implementation supports wallet connection.\n */\nexport function evmSupportsWalletConnection(): boolean {\n  // For now, assume EVM always supports wallet connection if wagmi can be initialized.\n  return true;\n}\n\n/**\n * Gets the list of available wallet connectors supported by this adapter's implementation.\n */\nexport async function getEvmAvailableConnectors(): Promise<Connector[]> {\n  const impl = await getEvmWalletImplementation();\n  if (!impl) {\n    logger.warn(LOG_SYSTEM, 'getEvmAvailableConnectors: Wallet implementation not ready.');\n    return [];\n  }\n  return impl.getAvailableConnectors();\n}\n\n/**\n * Initiates the wallet connection process for a specific connector and ensures the network is correct.\n *\n * @param connectorId - The ID of the connector to use.\n * @param targetChainId - The desired chain ID to switch to after connection.\n * @returns An object containing connection status, address, and any error.\n */\nexport async function connectAndEnsureCorrectNetwork(\n  connectorId: string,\n  targetChainId: number\n): Promise<EvmWalletConnectionResult> {\n  const impl = await getEvmWalletImplementation();\n  if (!impl) {\n    logger.error(LOG_SYSTEM, 'connectAndEnsureCorrectNetwork: Wallet implementation not ready.');\n    return { connected: false, error: 'Wallet system not initialized.' };\n  }\n\n  return connectAndEnsureCorrectNetworkCore(impl, connectorId, targetChainId, LOG_SYSTEM);\n}\n\n/**\n * Disconnects the currently connected EVM wallet.\n */\nexport async function disconnectEvmWallet(): Promise<{\n  disconnected: boolean;\n  error?: string;\n}> {\n  const impl = await getEvmWalletImplementation();\n  if (!impl) {\n    logger.warn(LOG_SYSTEM, 'disconnectEvmWallet: Wallet implementation not ready.');\n    return { disconnected: false, error: 'Wallet system not initialized.' };\n  }\n  return impl.disconnect();\n}\n\n/**\n * Gets the current wallet connection status.\n * This function might need to become async if getEvmWalletImplementation is async\n * and the status depends on an initialized instance.\n * For now, assuming getWalletConnectionStatus on the impl is synchronous after init.\n */\nexport function getEvmWalletConnectionStatus(): GetAccountReturnType {\n  const impl = getInitializedEvmWalletImplementation();\n  if (!impl) {\n    logger.warn(\n      LOG_SYSTEM,\n      'getEvmWalletConnectionStatus: Wallet implementation not ready. Returning default disconnected state.'\n    );\n    return DEFAULT_DISCONNECTED_STATUS;\n  }\n  return impl.getWalletConnectionStatus();\n}\n\n/**\n * Subscribes to wallet connection changes.\n */\nexport function onEvmWalletConnectionChange(\n  callback: (account: GetAccountReturnType, prevAccount: GetAccountReturnType) => void\n): () => void {\n  // Return type is now synchronous () => void\n  const walletImplementation = getInitializedEvmWalletImplementation(); // Use sync getter\n  if (!walletImplementation) {\n    logger.warn(\n      'onEvmWalletConnectionChange',\n      'Wallet implementation not initialized. Cannot subscribe to changes. Returning no-op.'\n    );\n    return () => {}; // Return a no-op unsubscribe function\n  }\n  return walletImplementation.onWalletConnectionChange(callback);\n}\n","import type { GetAccountReturnType } from '@wagmi/core';\n\nimport type { EvmWalletConnectionStatus } from '../types';\n\n/**\n * Converts wagmi's GetAccountReturnType to our enhanced EvmWalletConnectionStatus.\n * This utility preserves all the rich UX capabilities from wagmi while ensuring\n * compatibility with our adapter interface.\n *\n * @param wagmiStatus - The status object from wagmi's GetAccountReturnType\n * @returns Enhanced EvmWalletConnectionStatus with all wagmi properties\n */\nexport function convertWagmiToEvmStatus(\n  wagmiStatus: GetAccountReturnType\n): EvmWalletConnectionStatus {\n  return {\n    isConnected: wagmiStatus.isConnected,\n    isConnecting: wagmiStatus.isConnecting,\n    isDisconnected: wagmiStatus.isDisconnected,\n    isReconnecting: wagmiStatus.isReconnecting,\n    status: wagmiStatus.status,\n    address: wagmiStatus.address,\n    chainId: wagmiStatus.chainId?.toString(),\n    addresses: wagmiStatus.addresses,\n    connector: wagmiStatus.connector\n      ? {\n          id: wagmiStatus.connector.id,\n          name: wagmiStatus.connector.name,\n          type: wagmiStatus.connector.type,\n        }\n      : undefined,\n    chain: wagmiStatus.chain ? { ...wagmiStatus.chain } : undefined,\n  };\n}\n"],"mappings":";;;;;;AAeA,MAAM,aAAa;;;;AAKnB,SAAgB,8BAAuC;AAErD,QAAO;;;;;AAMT,eAAsB,4BAAkD;CACtE,MAAM,OAAO,MAAMA,gEAA4B;AAC/C,KAAI,CAAC,MAAM;AACT,gCAAO,KAAK,YAAY,8DAA8D;AACtF,SAAO,EAAE;;AAEX,QAAO,KAAK,wBAAwB;;;;;;;;;AAUtC,eAAsB,+BACpB,aACA,eACoC;CACpC,MAAM,OAAO,MAAMA,gEAA4B;AAC/C,KAAI,CAAC,MAAM;AACT,gCAAO,MAAM,YAAY,mEAAmE;AAC5F,SAAO;GAAE,WAAW;GAAO,OAAO;GAAkC;;AAGtE,QAAOC,gDAAmC,MAAM,aAAa,eAAe,WAAW;;;;;AAMzF,eAAsB,sBAGnB;CACD,MAAM,OAAO,MAAMD,gEAA4B;AAC/C,KAAI,CAAC,MAAM;AACT,gCAAO,KAAK,YAAY,wDAAwD;AAChF,SAAO;GAAE,cAAc;GAAO,OAAO;GAAkC;;AAEzE,QAAO,KAAK,YAAY;;;;;;;;AAS1B,SAAgB,+BAAqD;CACnE,MAAM,OAAOE,2EAAuC;AACpD,KAAI,CAAC,MAAM;AACT,gCAAO,KACL,YACA,uGACD;AACD,SAAOC;;AAET,QAAO,KAAK,2BAA2B;;;;;AAMzC,SAAgB,4BACd,UACY;CAEZ,MAAM,uBAAuBD,2EAAuC;AACpE,KAAI,CAAC,sBAAsB;AACzB,gCAAO,KACL,+BACA,uFACD;AACD,eAAa;;AAEf,QAAO,qBAAqB,yBAAyB,SAAS;;;;;;;;;;;;;AC7FhE,SAAgB,wBACd,aAC2B;AAC3B,QAAO;EACL,aAAa,YAAY;EACzB,cAAc,YAAY;EAC1B,gBAAgB,YAAY;EAC5B,gBAAgB,YAAY;EAC5B,QAAQ,YAAY;EACpB,SAAS,YAAY;EACrB,SAAS,YAAY,SAAS,UAAU;EACxC,WAAW,YAAY;EACvB,WAAW,YAAY,YACnB;GACE,IAAI,YAAY,UAAU;GAC1B,MAAM,YAAY,UAAU;GAC5B,MAAM,YAAY,UAAU;GAC7B,GACD;EACJ,OAAO,YAAY,QAAQ,EAAE,GAAG,YAAY,OAAO,GAAG;EACvD"}