{"version":3,"sources":["../../src/utils/chain-utils.ts"],"sourcesContent":["import type { Chain } from \"viem/chains\";\nimport {\n  type ChainId,\n  type VaultConfigResponse,\n  fetchVaultConfigs,\n} from \"../api/vault-config\";\n\n// Cache to store PublicClient instances for different chains\nlet chainsCache: Map<ChainId, Chain> | null = null;\n\n/**\n * Gets a chain object from the vault config response\n * @param chainId The chain ID to look up\n * @param config Optional config object. If not provided, will fetch from API\n * @returns Promise<Chain>\n */\nexport async function getChainFromConfig(\n  chainId: ChainId,\n  config?: VaultConfigResponse\n): Promise<Chain> {\n  // If we have a cache and no specific config was provided, use the cache\n  if (chainsCache && !config) {\n    const chain = chainsCache.get(chainId);\n    if (chain) return chain;\n  }\n\n  // If no config provided, fetch it\n  const vaultConfig = config ?? (await fetchVaultConfigs());\n\n  // Get the chain from config\n  const chain = vaultConfig.chains[chainId];\n  if (!chain) {\n    throw new Error(`Chain not found for ID: ${chainId}`);\n  }\n\n  // If no specific config was provided, update the cache\n  if (config && !chainsCache) {\n    chainsCache = new Map(\n      Object.entries(config.chains).map(([id, chain]) => [\n        Number(id) as ChainId,\n        chain,\n      ])\n    );\n  }\n\n  return chain;\n}\n\n/**\n * Clears the chains cache\n */\nexport function clearChainsCache(): void {\n  chainsCache = null;\n}\n"],"mappings":"AACA;AAAA,EAGE;AAAA,OACK;AAGP,IAAI,cAA0C;AAQ9C,eAAsB,mBACpB,SACA,QACgB;AAEhB,MAAI,eAAe,CAAC,QAAQ;AAC1B,UAAMA,SAAQ,YAAY,IAAI,OAAO;AACrC,QAAIA,OAAO,QAAOA;AAAA,EACpB;AAGA,QAAM,cAAc,UAAW,MAAM,kBAAkB;AAGvD,QAAM,QAAQ,YAAY,OAAO,OAAO;AACxC,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,2BAA2B,OAAO,EAAE;AAAA,EACtD;AAGA,MAAI,UAAU,CAAC,aAAa;AAC1B,kBAAc,IAAI;AAAA,MAChB,OAAO,QAAQ,OAAO,MAAM,EAAE,IAAI,CAAC,CAAC,IAAIA,MAAK,MAAM;AAAA,QACjD,OAAO,EAAE;AAAA,QACTA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;AAKO,SAAS,mBAAyB;AACvC,gBAAc;AAChB;","names":["chain"]}