{"version":3,"sources":["../src/networks.ts","../src/addresses.ts"],"sourcesContent":["// Chain ID constants\nexport const SUPPORTED_CHAIN_IDS = {\n  // Mainnets (for future deployment)\n//   linea: 59144,\n//   base: 8453,\n//   sonic: 146,\n  \n  // Testnets\n  lineaTestnet: 59141,\n  sonicTestnet: 57054,\n} as const\n\nexport type ChainId = (typeof SUPPORTED_CHAIN_IDS)[keyof typeof SUPPORTED_CHAIN_IDS]\nexport type NetworkName = keyof typeof SUPPORTED_CHAIN_IDS ","import { ChainId, SUPPORTED_CHAIN_IDS, NetworkName } from \"./networks\"\n\n\n// ------------------------------------------------------------\n// Sonic Testnet\n// ------------------------------------------------------------\n\n\n// Protocol configuration for each chain\nexport interface ProtocolConfig {\n  // Core protocol contracts\n  controller: string\n  veUSD: string\n  vaultManager: string\n  borrowerOperations: string\n  pegStabilityModule: string\n  sortedVaults: string\n  hintHelpers: string\n\n  // Pool contracts\n  pools: {\n    activePool: string\n    defaultPool: string\n    stabilityPool: string\n    collSurplusPool: string\n  }\n\n  // Risk management contracts\n  riskManagement: {\n    debtCapManager: string\n    debtCapLens: string\n  }\n\n  // Collateral tokens with their specific oracles\n  collaterals: Array<{\n    symbol: string\n    address: string\n    decimals: number\n    priceFeed: string // oracle specific to this collateral\n    feeCurve: string\n    router: string\n  }>\n}\n\n// Zero address constant\nconst ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' as const\n\n// Protocol addresses by chain ID - Generated from deployment files\nexport const addresses: Record<ChainId, ProtocolConfig> = {\n  \"57054\": {\n    \"controller\": \"0x83e767B100B7c4e22871a58B3a6E8eDd5359496E\",\n    \"veUSD\": \"0xed6E002E6DB4A0E083c97aEcCC25201a3e83dA43\",\n    \"vaultManager\": \"0x5f5A5c9aA4C781972D8Fd417138CdcfC9874b73B\",\n    \"borrowerOperations\": \"0x2D9F3098f5BE5f60f6Dba98adb9e00D290817413\",\n    \"pegStabilityModule\": \"0x0000000000000000000000000000000000000000\",\n    \"sortedVaults\": \"0xcfc5E386Db055C7B819741aa4f1224518f468745\",\n    \"hintHelpers\": \"0xCddDF9D1489A3BDe23BFDB6149E65CE3C8563c44\",\n    \"pools\": {\n      \"activePool\": \"0xeCECE7cb771de842Ad06012087F384d33251B77b\",\n      \"defaultPool\": \"0xE19173d56F212A40C5BBC2070b91cdD175655470\",\n      \"stabilityPool\": \"0x88c226601868DfCD1ADac6fA54c7Ee85529a1440\",\n      \"collSurplusPool\": \"0x7570b69502061f8B4dD98e7ADB50DeB1583224Db\"\n    },\n    \"riskManagement\": {\n      \"debtCapManager\": \"0x59a49B158394694bcC2EF94dC1d2EA0086d54234\",\n      \"debtCapLens\": \"0x368A5eAc605C2E62122F753Ec58A526b125e1E69\"\n    },\n    \"collaterals\": []\n  },\n  \"59141\": {\n    \"controller\": \"0x0000000000000000000000000000000000000000\",\n    \"veUSD\": \"0x0000000000000000000000000000000000000000\",\n    \"vaultManager\": \"0x0000000000000000000000000000000000000000\",\n    \"borrowerOperations\": \"0x0000000000000000000000000000000000000000\",\n    \"pegStabilityModule\": \"0x0000000000000000000000000000000000000000\",\n    \"sortedVaults\": \"0x0000000000000000000000000000000000000000\",\n    \"hintHelpers\": \"0x0000000000000000000000000000000000000000\",\n    \"pools\": {\n      \"activePool\": \"0x0000000000000000000000000000000000000000\",\n      \"defaultPool\": \"0x0000000000000000000000000000000000000000\",\n      \"stabilityPool\": \"0x0000000000000000000000000000000000000000\",\n      \"collSurplusPool\": \"0x0000000000000000000000000000000000000000\"\n    },\n    \"riskManagement\": {\n      \"debtCapManager\": \"0x0000000000000000000000000000000000000000\",\n      \"debtCapLens\": \"0x0000000000000000000000000000000000000000\"\n    },\n    \"collaterals\": []\n  }\n}\n\n// Helper functions\nexport function getConfigForChainId(chainId: ChainId): ProtocolConfig {\n  const config = addresses[chainId]\n  if (!config) {\n    throw new Error(`No protocol configuration found for chain ID ${chainId}`)\n  }\n  return config\n}\n\nexport function getConfigByName(networkName: NetworkName): ProtocolConfig {\n  const chainId = SUPPORTED_CHAIN_IDS[networkName]\n  return getConfigForChainId(chainId)\n}\n\n// Chain ID to network name mapping\nexport function getNetworkName(chainId: ChainId): NetworkName {\n  const entry = Object.entries(SUPPORTED_CHAIN_IDS).find(([, id]) => id === chainId)\n  if (!entry) {\n    throw new Error(`No network name found for chain ID ${chainId}`)\n  }\n  return entry[0] as NetworkName\n}\n\n// Check if chain is supported\nexport function isSupportedChain(chainId: number): chainId is ChainId {\n  return Object.values(SUPPORTED_CHAIN_IDS).includes(chainId as ChainId)\n}"],"mappings":";AACO,IAAM,sBAAsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOjC,cAAc;AAAA,EACd,cAAc;AAChB;;;ACsCO,IAAM,YAA6C;AAAA,EACxD,SAAS;AAAA,IACP,cAAc;AAAA,IACd,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,sBAAsB;AAAA,IACtB,sBAAsB;AAAA,IACtB,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,SAAS;AAAA,MACP,cAAc;AAAA,MACd,eAAe;AAAA,MACf,iBAAiB;AAAA,MACjB,mBAAmB;AAAA,IACrB;AAAA,IACA,kBAAkB;AAAA,MAChB,kBAAkB;AAAA,MAClB,eAAe;AAAA,IACjB;AAAA,IACA,eAAe,CAAC;AAAA,EAClB;AAAA,EACA,SAAS;AAAA,IACP,cAAc;AAAA,IACd,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,sBAAsB;AAAA,IACtB,sBAAsB;AAAA,IACtB,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,SAAS;AAAA,MACP,cAAc;AAAA,MACd,eAAe;AAAA,MACf,iBAAiB;AAAA,MACjB,mBAAmB;AAAA,IACrB;AAAA,IACA,kBAAkB;AAAA,MAChB,kBAAkB;AAAA,MAClB,eAAe;AAAA,IACjB;AAAA,IACA,eAAe,CAAC;AAAA,EAClB;AACF;AAGO,SAAS,oBAAoB,SAAkC;AACpE,QAAM,SAAS,UAAU,OAAO;AAChC,MAAI,CAAC,QAAQ;AACX,UAAM,IAAI,MAAM,gDAAgD,OAAO,EAAE;AAAA,EAC3E;AACA,SAAO;AACT;AAEO,SAAS,gBAAgB,aAA0C;AACxE,QAAM,UAAU,oBAAoB,WAAW;AAC/C,SAAO,oBAAoB,OAAO;AACpC;AAGO,SAAS,eAAe,SAA+B;AAC5D,QAAM,QAAQ,OAAO,QAAQ,mBAAmB,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,MAAM,OAAO,OAAO;AACjF,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,sCAAsC,OAAO,EAAE;AAAA,EACjE;AACA,SAAO,MAAM,CAAC;AAChB;AAGO,SAAS,iBAAiB,SAAqC;AACpE,SAAO,OAAO,OAAO,mBAAmB,EAAE,SAAS,OAAkB;AACvE;","names":[]}