@opendatalabs/vana-sdk 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/README.md +67 -351
  2. package/dist/config/contracts.config.cjs +352 -0
  3. package/dist/config/contracts.config.cjs.map +1 -0
  4. package/dist/config/contracts.config.d.ts +90 -0
  5. package/dist/config/contracts.config.js +327 -0
  6. package/dist/config/contracts.config.js.map +1 -0
  7. package/dist/contracts/contractController.cjs +1 -1
  8. package/dist/contracts/contractController.cjs.map +1 -1
  9. package/dist/contracts/contractController.js +1 -1
  10. package/dist/contracts/contractController.js.map +1 -1
  11. package/dist/controllers/data.cjs +1 -1
  12. package/dist/controllers/data.cjs.map +1 -1
  13. package/dist/controllers/data.js +1 -1
  14. package/dist/controllers/data.js.map +1 -1
  15. package/dist/controllers/permissions.cjs +1 -1
  16. package/dist/controllers/permissions.cjs.map +1 -1
  17. package/dist/controllers/permissions.js +1 -1
  18. package/dist/controllers/permissions.js.map +1 -1
  19. package/dist/controllers/schemas.cjs +1 -1
  20. package/dist/controllers/schemas.cjs.map +1 -1
  21. package/dist/controllers/schemas.js +1 -1
  22. package/dist/controllers/schemas.js.map +1 -1
  23. package/dist/crypto/ecies/__tests__/interface.test.d.ts +1 -0
  24. package/dist/crypto/ecies/__tests__/utils.test.d.ts +1 -0
  25. package/dist/generated/abi/ComputeEngineImplementation.cjs.map +1 -1
  26. package/dist/generated/abi/ComputeEngineImplementation.js.map +1 -1
  27. package/dist/generated/abi/ComputeEngineTreasuryImplementation.cjs +536 -0
  28. package/dist/generated/abi/ComputeEngineTreasuryImplementation.cjs.map +1 -0
  29. package/dist/generated/abi/ComputeEngineTreasuryImplementation.d.ts +393 -0
  30. package/dist/generated/abi/ComputeEngineTreasuryImplementation.js +512 -0
  31. package/dist/generated/abi/ComputeEngineTreasuryImplementation.js.map +1 -0
  32. package/dist/generated/abi/ComputeInstructionRegistryImplementation.cjs.map +1 -1
  33. package/dist/generated/abi/ComputeInstructionRegistryImplementation.js.map +1 -1
  34. package/dist/generated/abi/DATFactoryImplementation.cjs.map +1 -1
  35. package/dist/generated/abi/DATFactoryImplementation.js.map +1 -1
  36. package/dist/generated/abi/DATImplementation.cjs.map +1 -1
  37. package/dist/generated/abi/DATImplementation.js.map +1 -1
  38. package/dist/generated/abi/DATPausableImplementation.cjs.map +1 -1
  39. package/dist/generated/abi/DATPausableImplementation.js.map +1 -1
  40. package/dist/generated/abi/DATVotesImplementation.cjs.map +1 -1
  41. package/dist/generated/abi/DATVotesImplementation.js.map +1 -1
  42. package/dist/generated/abi/DLPPerformanceImplementation.cjs.map +1 -1
  43. package/dist/generated/abi/DLPPerformanceImplementation.js.map +1 -1
  44. package/dist/generated/abi/DLPRegistryImplementation.cjs.map +1 -1
  45. package/dist/generated/abi/DLPRegistryImplementation.js.map +1 -1
  46. package/dist/generated/abi/DLPRegistryTreasuryImplementation.cjs.map +1 -1
  47. package/dist/generated/abi/DLPRegistryTreasuryImplementation.js.map +1 -1
  48. package/dist/generated/abi/DLPRewardDeployerImplementation.cjs.map +1 -1
  49. package/dist/generated/abi/DLPRewardDeployerImplementation.js.map +1 -1
  50. package/dist/generated/abi/DLPRewardSwapImplementation.cjs.map +1 -1
  51. package/dist/generated/abi/DLPRewardSwapImplementation.js.map +1 -1
  52. package/dist/generated/abi/DataPortabilityGranteesImplementation.cjs.map +1 -1
  53. package/dist/generated/abi/DataPortabilityGranteesImplementation.js.map +1 -1
  54. package/dist/generated/abi/DataPortabilityPermissionsImplementation.cjs.map +1 -1
  55. package/dist/generated/abi/DataPortabilityPermissionsImplementation.js.map +1 -1
  56. package/dist/generated/abi/DataPortabilityServersImplementation.cjs.map +1 -1
  57. package/dist/generated/abi/DataPortabilityServersImplementation.js.map +1 -1
  58. package/dist/generated/abi/DataRefinerRegistryImplementation.cjs.map +1 -1
  59. package/dist/generated/abi/DataRefinerRegistryImplementation.js.map +1 -1
  60. package/dist/generated/abi/DataRegistryImplementation.cjs.map +1 -1
  61. package/dist/generated/abi/DataRegistryImplementation.js.map +1 -1
  62. package/dist/generated/abi/QueryEngineImplementation.cjs.map +1 -1
  63. package/dist/generated/abi/QueryEngineImplementation.js.map +1 -1
  64. package/dist/generated/abi/SwapHelperImplementation.cjs.map +1 -1
  65. package/dist/generated/abi/SwapHelperImplementation.js.map +1 -1
  66. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.cjs.map +1 -1
  67. package/dist/generated/abi/TeePoolDedicatedGpuImplementation.js.map +1 -1
  68. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.cjs.map +1 -1
  69. package/dist/generated/abi/TeePoolDedicatedStandardImplementation.js.map +1 -1
  70. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.cjs.map +1 -1
  71. package/dist/generated/abi/TeePoolEphemeralStandardImplementation.js.map +1 -1
  72. package/dist/generated/abi/TeePoolPersistentGpuImplementation.cjs.map +1 -1
  73. package/dist/generated/abi/TeePoolPersistentGpuImplementation.js.map +1 -1
  74. package/dist/generated/abi/TeePoolPersistentStandardImplementation.cjs.map +1 -1
  75. package/dist/generated/abi/TeePoolPersistentStandardImplementation.js.map +1 -1
  76. package/dist/generated/abi/TeePoolPhalaImplementation.cjs.map +1 -1
  77. package/dist/generated/abi/TeePoolPhalaImplementation.js.map +1 -1
  78. package/dist/generated/abi/UniswapV3QuoterV2Implementation.cjs +297 -0
  79. package/dist/generated/abi/UniswapV3QuoterV2Implementation.cjs.map +1 -0
  80. package/dist/generated/abi/UniswapV3QuoterV2Implementation.d.ts +206 -0
  81. package/dist/generated/abi/UniswapV3QuoterV2Implementation.js +273 -0
  82. package/dist/generated/abi/UniswapV3QuoterV2Implementation.js.map +1 -0
  83. package/dist/generated/abi/VanaEpochImplementation.cjs.map +1 -1
  84. package/dist/generated/abi/VanaEpochImplementation.js.map +1 -1
  85. package/dist/generated/abi/VanaPoolEntityImplementation.cjs.map +1 -1
  86. package/dist/generated/abi/VanaPoolEntityImplementation.js.map +1 -1
  87. package/dist/generated/abi/VanaPoolStakingImplementation.cjs.map +1 -1
  88. package/dist/generated/abi/VanaPoolStakingImplementation.js.map +1 -1
  89. package/dist/generated/abi/VanaPoolTreasuryImplementation.cjs.map +1 -1
  90. package/dist/generated/abi/VanaPoolTreasuryImplementation.js.map +1 -1
  91. package/dist/generated/abi/VanaTreasuryImplementation.cjs +536 -0
  92. package/dist/generated/abi/VanaTreasuryImplementation.cjs.map +1 -0
  93. package/dist/generated/abi/VanaTreasuryImplementation.d.ts +393 -0
  94. package/dist/generated/abi/VanaTreasuryImplementation.js +512 -0
  95. package/dist/generated/abi/VanaTreasuryImplementation.js.map +1 -0
  96. package/dist/generated/abi/WVANAImplementation.cjs +339 -0
  97. package/dist/generated/abi/WVANAImplementation.cjs.map +1 -0
  98. package/dist/generated/abi/WVANAImplementation.d.ts +244 -0
  99. package/dist/generated/abi/WVANAImplementation.js +315 -0
  100. package/dist/generated/abi/WVANAImplementation.js.map +1 -0
  101. package/dist/generated/abi/index.cjs +2 -0
  102. package/dist/generated/abi/index.cjs.map +1 -1
  103. package/dist/generated/abi/index.d.ts +392 -0
  104. package/dist/generated/abi/index.js +2 -0
  105. package/dist/generated/abi/index.js.map +1 -1
  106. package/dist/{config → generated}/addresses.cjs +126 -69
  107. package/dist/generated/addresses.cjs.map +1 -0
  108. package/dist/{config → generated}/addresses.d.ts +127 -160
  109. package/dist/{config → generated}/addresses.js +126 -69
  110. package/dist/generated/addresses.js.map +1 -0
  111. package/dist/generated/event-types.cjs.map +1 -1
  112. package/dist/generated/event-types.d.ts +338 -389
  113. package/dist/generated/eventRegistry.cjs +1666 -571
  114. package/dist/generated/eventRegistry.cjs.map +1 -1
  115. package/dist/generated/eventRegistry.d.ts +2 -2
  116. package/dist/generated/eventRegistry.js +1666 -571
  117. package/dist/generated/eventRegistry.js.map +1 -1
  118. package/dist/index.browser.d.ts +1 -1
  119. package/dist/index.browser.js +2 -1
  120. package/dist/index.browser.js.map +1 -1
  121. package/dist/index.node.cjs +3 -1
  122. package/dist/index.node.cjs.map +1 -1
  123. package/dist/index.node.d.ts +1 -1
  124. package/dist/index.node.js +2 -1
  125. package/dist/index.node.js.map +1 -1
  126. package/dist/utils/blockchain/registry.cjs +1 -1
  127. package/dist/utils/blockchain/registry.cjs.map +1 -1
  128. package/dist/utils/blockchain/registry.js +1 -1
  129. package/dist/utils/blockchain/registry.js.map +1 -1
  130. package/dist/utils/multicall.cjs +1 -1
  131. package/dist/utils/multicall.cjs.map +1 -1
  132. package/dist/utils/multicall.js +1 -1
  133. package/dist/utils/multicall.js.map +1 -1
  134. package/package.json +3 -2
  135. package/dist/config/addresses.cjs.map +0 -1
  136. package/dist/config/addresses.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/config/addresses.ts"],"sourcesContent":["// Single source of truth for all contract addresses\n// Contract-centric structure: contracts contain chain addresses\n\n/**\n * Registry of all Vana protocol smart contract addresses organized by contract name and chain ID.\n *\n * @remarks\n * This registry provides the canonical mapping of contract names to their deployed addresses\n * across all supported Vana networks. Each contract entry contains an `addresses` object\n * with chain ID keys mapped to the deployed contract address on that network.\n *\n * **Structure:**\n * - Contract names are the top-level keys (e.g., \"DataRegistry\", \"DataPortabilityPermissions\")\n * - Each contract contains an `addresses` object with chain ID → address mappings\n * - Chain IDs: 14800 (Vana Mainnet), 1480 (Moksha Testnet)\n *\n * **Usage:**\n * Access contract addresses via `getContractAddress(chainId, contractName)` rather than\n * directly accessing this object to ensure proper error handling and validation.\n *\n * @example\n * ```typescript\n * // Get DataRegistry address for mainnet\n * const address = getContractAddress(14800, \"DataRegistry\");\n *\n * // Available contracts include:\n * // - DataRegistry: User file registration and metadata\n * // - DataPortabilityPermissions: Gasless permission grants\n * // - DataPortabilityServers: Trusted server registry\n * // - DataPortabilityGrantees: Application registry\n * // Plus many more protocol contracts\n * ```\n * @category Configuration\n */\nexport const CONTRACTS = {\n // Data Portability Contracts (New Architecture)\n DataPortabilityPermissions: {\n addresses: {\n 14800: \"0xD54523048AdD05b4d734aFaE7C68324Ebb7373eF\",\n 1480: \"0xD54523048AdD05b4d734aFaE7C68324Ebb7373eF\",\n },\n },\n DataPortabilityServers: {\n addresses: {\n 14800: \"0x1483B1F634DBA75AeaE60da7f01A679aabd5ee2c\",\n 1480: \"0x1483B1F634DBA75AeaE60da7f01A679aabd5ee2c\",\n },\n },\n DataPortabilityGrantees: {\n addresses: {\n 14800: \"0x8325C0A0948483EdA023A1A2Fd895e62C5131234\",\n 1480: \"0x8325C0A0948483EdA023A1A2Fd895e62C5131234\",\n },\n },\n DataRegistry: {\n addresses: {\n 14800: \"0x8C8788f98385F6ba1adD4234e551ABba0f82Cb7C\",\n 1480: \"0x8C8788f98385F6ba1adD4234e551ABba0f82Cb7C\",\n },\n },\n TeePoolPhala: {\n addresses: {\n 14800: \"0xE8EC6BD73b23Ad40E6B9a6f4bD343FAc411bD99A\",\n 1480: \"0xE8EC6BD73b23Ad40E6B9a6f4bD343FAc411bD99A\",\n },\n },\n ComputeEngine: {\n addresses: {\n 14800: \"0xb2BFe33FA420c45F1Cf1287542ad81ae935447bd\",\n 1480: \"0xb2BFe33FA420c45F1Cf1287542ad81ae935447bd\",\n },\n },\n\n // Data Access Infrastructure\n DataRefinerRegistry: {\n addresses: {\n 14800: \"0x93c3EF89369fDcf08Be159D9DeF0F18AB6Be008c\",\n 1480: \"0x93c3EF89369fDcf08Be159D9DeF0F18AB6Be008c\",\n },\n },\n QueryEngine: {\n addresses: {\n 14800: \"0xd25Eb66EA2452cf3238A2eC6C1FD1B7F5B320490\",\n 1480: \"0xd25Eb66EA2452cf3238A2eC6C1FD1B7F5B320490\",\n },\n },\n VanaTreasury: {\n addresses: {\n 14800: \"0x94a1E56e555ac48d092f490fB10CDFaB434915eD\",\n 1480: \"0x94a1E56e555ac48d092f490fB10CDFaB434915eD\",\n },\n },\n ComputeInstructionRegistry: {\n addresses: {\n 14800: \"0x5786B12b4c6Ba2bFAF0e77Ed30Bf6d32805563A5\",\n 1480: \"0x5786B12b4c6Ba2bFAF0e77Ed30Bf6d32805563A5\",\n },\n },\n\n // TEE Pool Variants\n TeePoolEphemeralStandard: {\n addresses: {\n 14800: \"0xe124bae846D5ec157f75Bd9e68ca87C4d2AB835A\",\n 1480: \"0xe124bae846D5ec157f75Bd9e68ca87C4d2AB835A\",\n },\n },\n TeePoolPersistentStandard: {\n addresses: {\n 14800: \"0xe8bB8d0629651Cf33e0845d743976Dc1f0971d76\",\n 1480: \"0xe8bB8d0629651Cf33e0845d743976Dc1f0971d76\",\n },\n },\n TeePoolPersistentGpu: {\n addresses: {\n 14800: \"0x1c346Cd74f8551f8fa13f3F4b6b8dAE22338E6a9\",\n 1480: \"0x1c346Cd74f8551f8fa13f3F4b6b8dAE22338E6a9\",\n },\n },\n TeePoolDedicatedStandard: {\n addresses: {\n 14800: \"0xf024b7ac5E8417416f53B41ecfa58C8e9396687d\",\n 1480: \"0xf024b7ac5E8417416f53B41ecfa58C8e9396687d\",\n },\n },\n TeePoolDedicatedGpu: {\n addresses: {\n 14800: \"0xB1686FA9620bBf851714d1cB47b8a4Bf4664644E\",\n 1480: \"0xB1686FA9620bBf851714d1cB47b8a4Bf4664644E\",\n },\n },\n\n // DLP Reward System\n VanaEpoch: {\n addresses: {\n 14800: \"0x2063cFF0609D59bCCc196E20Eb58A8696a6b15A0\",\n 1480: \"0x2063cFF0609D59bCCc196E20Eb58A8696a6b15A0\",\n },\n },\n DLPRegistry: {\n addresses: {\n 14800: \"0x4D59880a924526d1dD33260552Ff4328b1E18a43\",\n 1480: \"0x4D59880a924526d1dD33260552Ff4328b1E18a43\",\n },\n },\n DLPRegistryTreasury: {\n addresses: {\n 14800: \"0xb12ce1d27bEeFe39b6F0110b1AB77C21Aa0c9F9a\",\n 1480: \"0xb12ce1d27bEeFe39b6F0110b1AB77C21Aa0c9F9a\",\n },\n },\n DLPPerformance: {\n addresses: {\n 14800: \"0x847715C7DB37cF286611182Be0bD333cbfa29cc1\",\n 1480: \"0x847715C7DB37cF286611182Be0bD333cbfa29cc1\",\n },\n },\n DLPRewardDeployer: {\n addresses: {\n 14800: \"0xEFD0F9Ba9De70586b7c4189971cF754adC923B04\",\n 1480: \"0xEFD0F9Ba9De70586b7c4189971cF754adC923B04\",\n },\n },\n DLPRewardDeployerTreasury: {\n addresses: {\n 14800: \"0xb547ca8Fe4990fe330FeAeb1C2EBb42F925Af5b8\",\n 1480: \"0xb547ca8Fe4990fe330FeAeb1C2EBb42F925Af5b8\",\n },\n },\n DLPRewardSwap: {\n addresses: {\n 14800: \"0x7c6862C46830F0fc3bF3FF509EA1bD0EE7267fB0\",\n 1480: \"0x7c6862C46830F0fc3bF3FF509EA1bD0EE7267fB0\",\n },\n },\n SwapHelper: {\n addresses: {\n 14800: \"0x55D5e6F73326315bF2E091e97F04f0770e5C54e2\",\n 1480: \"0x55D5e6F73326315bF2E091e97F04f0770e5C54e2\",\n },\n },\n\n // VanaPool (Staking)\n VanaPoolStaking: {\n addresses: {\n 14800: \"0x641C18E2F286c86f96CE95C8ec1EB9fC0415Ca0e\",\n 1480: \"0x641C18E2F286c86f96CE95C8ec1EB9fC0415Ca0e\",\n },\n },\n VanaPoolEntity: {\n addresses: {\n 14800: \"0x44f20490A82e1f1F1cC25Dd3BA8647034eDdce30\",\n 1480: \"0x44f20490A82e1f1F1cC25Dd3BA8647034eDdce30\",\n },\n },\n VanaPoolTreasury: {\n addresses: {\n 14800: \"0x143BE72CF2541604A7691933CAccd6D9cC17c003\",\n 1480: \"0x143BE72CF2541604A7691933CAccd6D9cC17c003\",\n },\n },\n\n // DLP Deployment Contracts\n DAT: {\n addresses: {\n 14800: \"0xA706b93ccED89f13340673889e29F0a5cd84212d\",\n 1480: \"0xA706b93ccED89f13340673889e29F0a5cd84212d\",\n },\n },\n DATFactory: {\n addresses: {\n 14800: \"0x40f8bccF35a75ecef63BC3B1B3E06ffEB9220644\",\n 1480: \"0x40f8bccF35a75ecef63BC3B1B3E06ffEB9220644\",\n },\n },\n DATPausable: {\n addresses: {\n 14800: \"0xe69FE86f0B95cC2f8416Fe22815c85DC8887e76e\",\n 1480: \"0xe69FE86f0B95cC2f8416Fe22815c85DC8887e76e\",\n },\n },\n DATVotes: {\n addresses: {\n 14800: \"0xaE04c8A77E9B27869eb563720524A9aE0baf1831\",\n 1480: \"0xaE04c8A77E9B27869eb563720524A9aE0baf1831\",\n },\n },\n\n // Utility Contracts (no ABIs in SDK)\n Multicall3: {\n addresses: {\n 14800: \"0xD8d2dFca27E8797fd779F8547166A2d3B29d360E\",\n 1480: \"0xD8d2dFca27E8797fd779F8547166A2d3B29d360E\",\n },\n },\n Multisend: {\n addresses: {\n 14800: \"0x8807e8BCDFbaA8c2761760f3FBA37F6f7F2C5b2d\",\n 1480: \"0x8807e8BCDFbaA8c2761760f3FBA37F6f7F2C5b2d\",\n },\n },\n} as const;\n\n// Legacy/Deprecated Contracts (backwards compatibility)\n/**\n * Registry of deprecated Vana protocol contracts maintained for backwards compatibility.\n *\n * @remarks\n * This registry contains contract addresses for older versions of the Vana protocol\n * that have been superseded by newer implementations. These contracts are maintained\n * for backwards compatibility with existing applications but should not be used in\n * new development.\n *\n * **Migration Path:**\n * - `TeePool` → Use specific pool types (TeePoolPhala, TeePoolDedicatedGpu, etc.)\n * - Other deprecated contracts → Check the main CONTRACTS registry for current versions\n *\n * **Usage:**\n * Access legacy contract addresses via `getContractAddress(chainId, contractName)` which\n * checks both current and legacy registries automatically.\n *\n * @deprecated Use the main CONTRACTS registry for new development\n * @example\n * ```typescript\n * // Legacy usage (still supported for backwards compatibility)\n * const oldPoolAddress = getContractAddress(14800, \"TeePool\");\n *\n * // Recommended for new development\n * const newPoolAddress = getContractAddress(14800, \"TeePoolPhala\");\n * ```\n * @category Configuration\n */\nexport const LEGACY_CONTRACTS = {\n // DEPRECATED: Original Intel SGX TeePool (PRO-347)\n TeePool: {\n addresses: {\n 14800: \"0x3c92fD91639b41f13338CE62f19131e7d19eaa0D\",\n 1480: \"0x3c92fD91639b41f13338CE62f19131e7d19eaa0D\",\n },\n },\n\n // DEPRECATED: DLPRoot system (replaced by VanaPool + DLPRewards)\n DLPRootEpoch: {\n addresses: {\n 14800: \"0xc3d176cF6BccFCB9225b53B87a95147218e1537F\",\n 1480: \"0xc3d176cF6BccFCB9225b53B87a95147218e1537F\",\n },\n },\n DLPRootCore: {\n addresses: {\n 14800: \"0x0aBa5e28228c323A67712101d61a54d4ff5720FD\",\n 1480: \"0x0aBa5e28228c323A67712101d61a54d4ff5720FD\",\n },\n },\n DLPRoot: {\n addresses: {\n 14800: \"0xff14346dF2B8Fd0c95BF34f1c92e49417b508AD5\",\n 1480: \"0xff14346dF2B8Fd0c95BF34f1c92e49417b508AD5\",\n },\n },\n DLPRootMetrics: {\n addresses: {\n 14800: \"0xbb532917B6407c060Afd9Cb7d53527eCb91d6662\",\n 1480: \"0xbb532917B6407c060Afd9Cb7d53527eCb91d6662\",\n },\n },\n DLPRootStakesTreasury: {\n addresses: {\n 14800: \"0x52c3260ED5C235fcA43524CF508e29c897318775\",\n 1480: \"0x52c3260ED5C235fcA43524CF508e29c897318775\",\n },\n },\n DLPRootRewardsTreasury: {\n addresses: {\n 14800: \"0xDBFb6B8b9E2eCAEbdE64d665cD553dB81e524479\",\n 1480: \"0xDBFb6B8b9E2eCAEbdE64d665cD553dB81e524479\",\n },\n },\n} as const;\n\n// Transform for backwards compatibility with existing SDK usage\nexport const CONTRACT_ADDRESSES: Record<number, Record<string, string>> = {\n 14800: Object.fromEntries(\n Object.entries(CONTRACTS)\n .map(([name, info]) => [name, info.addresses[14800]])\n .filter(([, addr]) => addr),\n ),\n 1480: Object.fromEntries(\n Object.entries(CONTRACTS)\n .map(([name, info]) => [name, info.addresses[1480]])\n .filter(([, addr]) => addr),\n ),\n};\n\n// Legacy exports for backwards compatibility\nexport const UTILITY_ADDRESSES = {\n 14800: {\n Multicall3: CONTRACTS.Multicall3.addresses[14800],\n Multisend: CONTRACTS.Multisend.addresses[14800],\n },\n 1480: {\n Multicall3: CONTRACTS.Multicall3.addresses[1480],\n Multisend: CONTRACTS.Multisend.addresses[1480],\n },\n} as const;\n\nexport const LEGACY_ADDRESSES = {\n 14800: Object.fromEntries(\n Object.entries(LEGACY_CONTRACTS)\n .map(([name, info]) => [name, info.addresses[14800]])\n .filter(([, addr]) => addr),\n ),\n 1480: Object.fromEntries(\n Object.entries(LEGACY_CONTRACTS)\n .map(([name, info]) => [name, info.addresses[1480]])\n .filter(([, addr]) => addr),\n ),\n} as const;\n\nimport type { VanaContract } from \"../generated/abi\";\n\n/**\n * Retrieves the deployed contract address for a specific Vana protocol contract on a given chain.\n *\n * @remarks\n * This function provides type-safe access to contract addresses across all supported Vana networks.\n * It automatically searches both current and legacy contract registries to ensure backwards\n * compatibility while providing clear error messages for unsupported combinations.\n *\n * The function validates that both the chain ID and contract name are supported before\n * attempting address lookup, helping developers identify deployment or configuration issues\n * early in the development process.\n *\n * **Supported Chains:**\n * - 14800: Vana Mainnet\n * - 1480: Moksha Testnet\n *\n * **Contract Categories:**\n * - Data Management: DataRegistry, DataRefinerRegistry\n * - Permissions: DataPortabilityPermissions, DataPortabilityServers, DataPortabilityGrantees\n * - Computing: TeePoolPhala, TeePoolDedicatedGpu, etc.\n * - Token & Governance: DATImplementation, VanaPoolStaking, etc.\n *\n * @param chainId - The chain ID to look up the contract on (14800 for mainnet, 1480 for testnet)\n * @param contract - The contract name to get the address for (use TypeScript autocomplete for available options)\n * @returns The contract address as a checksummed hex string (0x...)\n * @throws {Error} When contract address not found for the specified contract and chain combination.\n * This typically indicates the contract is not deployed on the requested network.\n * @example\n * ```typescript\n * // Get core protocol contract addresses\n * const dataRegistry = getContractAddress(14800, 'DataRegistry');\n * const permissions = getContractAddress(14800, 'DataPortabilityPermissions');\n * const trustedServers = getContractAddress(14800, 'DataPortabilityServers');\n *\n * // Handle unsupported combinations gracefully\n * try {\n * const address = getContractAddress(1480, 'DataRegistry');\n * console.log('DataRegistry testnet address:', address);\n * } catch (error) {\n * console.error('Contract not available on testnet:', error.message);\n * // Fallback to mainnet or show user-friendly error\n * }\n *\n * // TypeScript provides autocomplete for contract names\n * const poolAddress = getContractAddress(14800, 'TeePoolPhala'); // ✅ Valid\n * // const invalid = getContractAddress(14800, 'InvalidContract'); // ❌ TypeScript error\n * ```\n * @category Configuration\n */\nexport const getContractAddress = (\n chainId: keyof typeof CONTRACT_ADDRESSES,\n contract: VanaContract,\n) => {\n const contractAddress = CONTRACT_ADDRESSES[chainId]?.[contract] as\n | `0x${string}`\n | undefined;\n if (!contractAddress) {\n throw new Error(\n `Contract address not found for ${contract} on chain ${chainId}`,\n );\n }\n return contractAddress;\n};\n\nexport const getUtilityAddress = (\n chainId: keyof typeof UTILITY_ADDRESSES,\n contract: keyof (typeof UTILITY_ADDRESSES)[keyof typeof UTILITY_ADDRESSES],\n) => {\n return UTILITY_ADDRESSES[chainId][contract] as `0x${string}`;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkCO,MAAM,YAAY;AAAA;AAAA,EAEvB,4BAA4B;AAAA,IAC1B,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,wBAAwB;AAAA,IACtB,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,yBAAyB;AAAA,IACvB,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,cAAc;AAAA,IACZ,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,cAAc;AAAA,IACZ,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,eAAe;AAAA,IACb,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA,EAGA,qBAAqB;AAAA,IACnB,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,aAAa;AAAA,IACX,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,cAAc;AAAA,IACZ,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,4BAA4B;AAAA,IAC1B,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA,EAGA,0BAA0B;AAAA,IACxB,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,2BAA2B;AAAA,IACzB,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,sBAAsB;AAAA,IACpB,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,0BAA0B;AAAA,IACxB,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,qBAAqB;AAAA,IACnB,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA,EAGA,WAAW;AAAA,IACT,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,aAAa;AAAA,IACX,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,qBAAqB;AAAA,IACnB,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,mBAAmB;AAAA,IACjB,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,2BAA2B;AAAA,IACzB,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,eAAe;AAAA,IACb,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA,EAGA,iBAAiB;AAAA,IACf,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,kBAAkB;AAAA,IAChB,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA,EAGA,KAAK;AAAA,IACH,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,aAAa;AAAA,IACX,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA,EAGA,YAAY;AAAA,IACV,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,WAAW;AAAA,IACT,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AACF;AA+BO,MAAM,mBAAmB;AAAA;AAAA,EAE9B,SAAS;AAAA,IACP,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA;AAAA,EAGA,cAAc;AAAA,IACZ,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,aAAa;AAAA,IACX,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,SAAS;AAAA,IACP,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,uBAAuB;AAAA,IACrB,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AAAA,EACA,wBAAwB;AAAA,IACtB,WAAW;AAAA,MACT,OAAO;AAAA,MACP,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAGO,MAAM,qBAA6D;AAAA,EACxE,OAAO,OAAO;AAAA,IACZ,OAAO,QAAQ,SAAS,EACrB,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,EACnD,OAAO,CAAC,CAAC,EAAE,IAAI,MAAM,IAAI;AAAA,EAC9B;AAAA,EACA,MAAM,OAAO;AAAA,IACX,OAAO,QAAQ,SAAS,EACrB,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,EAClD,OAAO,CAAC,CAAC,EAAE,IAAI,MAAM,IAAI;AAAA,EAC9B;AACF;AAGO,MAAM,oBAAoB;AAAA,EAC/B,OAAO;AAAA,IACL,YAAY,UAAU,WAAW,UAAU,KAAK;AAAA,IAChD,WAAW,UAAU,UAAU,UAAU,KAAK;AAAA,EAChD;AAAA,EACA,MAAM;AAAA,IACJ,YAAY,UAAU,WAAW,UAAU,IAAI;AAAA,IAC/C,WAAW,UAAU,UAAU,UAAU,IAAI;AAAA,EAC/C;AACF;AAEO,MAAM,mBAAmB;AAAA,EAC9B,OAAO,OAAO;AAAA,IACZ,OAAO,QAAQ,gBAAgB,EAC5B,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,EACnD,OAAO,CAAC,CAAC,EAAE,IAAI,MAAM,IAAI;AAAA,EAC9B;AAAA,EACA,MAAM,OAAO;AAAA,IACX,OAAO,QAAQ,gBAAgB,EAC5B,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,EAClD,OAAO,CAAC,CAAC,EAAE,IAAI,MAAM,IAAI;AAAA,EAC9B;AACF;AAqDO,MAAM,qBAAqB,CAChC,SACA,aACG;AACH,QAAM,kBAAkB,mBAAmB,OAAO,IAAI,QAAQ;AAG9D,MAAI,CAAC,iBAAiB;AACpB,UAAM,IAAI;AAAA,MACR,kCAAkC,QAAQ,aAAa,OAAO;AAAA,IAChE;AAAA,EACF;AACA,SAAO;AACT;AAEO,MAAM,oBAAoB,CAC/B,SACA,aACG;AACH,SAAO,kBAAkB,OAAO,EAAE,QAAQ;AAC5C;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/config/addresses.ts"],"sourcesContent":["// Single source of truth for all contract addresses\n// Contract-centric structure: contracts contain chain addresses\n\n/**\n * Registry of all Vana protocol smart contract addresses organized by contract name and chain ID.\n *\n * @remarks\n * This registry provides the canonical mapping of contract names to their deployed addresses\n * across all supported Vana networks. Each contract entry contains an `addresses` object\n * with chain ID keys mapped to the deployed contract address on that network.\n *\n * **Structure:**\n * - Contract names are the top-level keys (e.g., \"DataRegistry\", \"DataPortabilityPermissions\")\n * - Each contract contains an `addresses` object with chain ID → address mappings\n * - Chain IDs: 14800 (Vana Mainnet), 1480 (Moksha Testnet)\n *\n * **Usage:**\n * Access contract addresses via `getContractAddress(chainId, contractName)` rather than\n * directly accessing this object to ensure proper error handling and validation.\n *\n * @example\n * ```typescript\n * // Get DataRegistry address for mainnet\n * const address = getContractAddress(14800, \"DataRegistry\");\n *\n * // Available contracts include:\n * // - DataRegistry: User file registration and metadata\n * // - DataPortabilityPermissions: Gasless permission grants\n * // - DataPortabilityServers: Trusted server registry\n * // - DataPortabilityGrantees: Application registry\n * // Plus many more protocol contracts\n * ```\n * @category Configuration\n */\nexport const CONTRACTS = {\n // Data Portability Contracts (New Architecture)\n DataPortabilityPermissions: {\n addresses: {\n 14800: \"0xD54523048AdD05b4d734aFaE7C68324Ebb7373eF\",\n 1480: \"0xD54523048AdD05b4d734aFaE7C68324Ebb7373eF\",\n },\n },\n DataPortabilityServers: {\n addresses: {\n 14800: \"0x1483B1F634DBA75AeaE60da7f01A679aabd5ee2c\",\n 1480: \"0x1483B1F634DBA75AeaE60da7f01A679aabd5ee2c\",\n },\n },\n DataPortabilityGrantees: {\n addresses: {\n 14800: \"0x8325C0A0948483EdA023A1A2Fd895e62C5131234\",\n 1480: \"0x8325C0A0948483EdA023A1A2Fd895e62C5131234\",\n },\n },\n DataRegistry: {\n addresses: {\n 14800: \"0x8C8788f98385F6ba1adD4234e551ABba0f82Cb7C\",\n 1480: \"0x8C8788f98385F6ba1adD4234e551ABba0f82Cb7C\",\n },\n },\n TeePoolPhala: {\n addresses: {\n 14800: \"0xE8EC6BD73b23Ad40E6B9a6f4bD343FAc411bD99A\",\n 1480: \"0xE8EC6BD73b23Ad40E6B9a6f4bD343FAc411bD99A\",\n },\n },\n ComputeEngine: {\n addresses: {\n 14800: \"0xb2BFe33FA420c45F1Cf1287542ad81ae935447bd\",\n 1480: \"0xb2BFe33FA420c45F1Cf1287542ad81ae935447bd\",\n },\n },\n\n // Data Access Infrastructure\n DataRefinerRegistry: {\n addresses: {\n 14800: \"0x93c3EF89369fDcf08Be159D9DeF0F18AB6Be008c\",\n 1480: \"0x93c3EF89369fDcf08Be159D9DeF0F18AB6Be008c\",\n },\n },\n QueryEngine: {\n addresses: {\n 14800: \"0xd25Eb66EA2452cf3238A2eC6C1FD1B7F5B320490\",\n 1480: \"0xd25Eb66EA2452cf3238A2eC6C1FD1B7F5B320490\",\n },\n },\n VanaTreasury: {\n addresses: {\n 14800: \"0x94a1E56e555ac48d092f490fB10CDFaB434915eD\",\n 1480: \"0x94a1E56e555ac48d092f490fB10CDFaB434915eD\",\n },\n },\n ComputeInstructionRegistry: {\n addresses: {\n 14800: \"0x5786B12b4c6Ba2bFAF0e77Ed30Bf6d32805563A5\",\n 1480: \"0x5786B12b4c6Ba2bFAF0e77Ed30Bf6d32805563A5\",\n },\n },\n\n // TEE Pool Variants\n TeePoolEphemeralStandard: {\n addresses: {\n 14800: \"0xe124bae846D5ec157f75Bd9e68ca87C4d2AB835A\",\n 1480: \"0xe124bae846D5ec157f75Bd9e68ca87C4d2AB835A\",\n },\n },\n TeePoolPersistentStandard: {\n addresses: {\n 14800: \"0xe8bB8d0629651Cf33e0845d743976Dc1f0971d76\",\n 1480: \"0xe8bB8d0629651Cf33e0845d743976Dc1f0971d76\",\n },\n },\n TeePoolPersistentGpu: {\n addresses: {\n 14800: \"0x1c346Cd74f8551f8fa13f3F4b6b8dAE22338E6a9\",\n 1480: \"0x1c346Cd74f8551f8fa13f3F4b6b8dAE22338E6a9\",\n },\n },\n TeePoolDedicatedStandard: {\n addresses: {\n 14800: \"0xf024b7ac5E8417416f53B41ecfa58C8e9396687d\",\n 1480: \"0xf024b7ac5E8417416f53B41ecfa58C8e9396687d\",\n },\n },\n TeePoolDedicatedGpu: {\n addresses: {\n 14800: \"0xB1686FA9620bBf851714d1cB47b8a4Bf4664644E\",\n 1480: \"0xB1686FA9620bBf851714d1cB47b8a4Bf4664644E\",\n },\n },\n\n // DLP Reward System\n VanaEpoch: {\n addresses: {\n 14800: \"0x2063cFF0609D59bCCc196E20Eb58A8696a6b15A0\",\n 1480: \"0x2063cFF0609D59bCCc196E20Eb58A8696a6b15A0\",\n },\n },\n DLPRegistry: {\n addresses: {\n 14800: \"0x4D59880a924526d1dD33260552Ff4328b1E18a43\",\n 1480: \"0x4D59880a924526d1dD33260552Ff4328b1E18a43\",\n },\n },\n DLPRegistryTreasury: {\n addresses: {\n 14800: \"0xb12ce1d27bEeFe39b6F0110b1AB77C21Aa0c9F9a\",\n 1480: \"0xb12ce1d27bEeFe39b6F0110b1AB77C21Aa0c9F9a\",\n },\n },\n DLPPerformance: {\n addresses: {\n 14800: \"0x847715C7DB37cF286611182Be0bD333cbfa29cc1\",\n 1480: \"0x847715C7DB37cF286611182Be0bD333cbfa29cc1\",\n },\n },\n DLPRewardDeployer: {\n addresses: {\n 14800: \"0xEFD0F9Ba9De70586b7c4189971cF754adC923B04\",\n 1480: \"0xEFD0F9Ba9De70586b7c4189971cF754adC923B04\",\n },\n },\n DLPRewardDeployerTreasury: {\n addresses: {\n 14800: \"0xb547ca8Fe4990fe330FeAeb1C2EBb42F925Af5b8\",\n 1480: \"0xb547ca8Fe4990fe330FeAeb1C2EBb42F925Af5b8\",\n },\n },\n DLPRewardSwap: {\n addresses: {\n 14800: \"0x7c6862C46830F0fc3bF3FF509EA1bD0EE7267fB0\",\n 1480: \"0x7c6862C46830F0fc3bF3FF509EA1bD0EE7267fB0\",\n },\n },\n SwapHelper: {\n addresses: {\n 14800: \"0x55D5e6F73326315bF2E091e97F04f0770e5C54e2\",\n 1480: \"0x55D5e6F73326315bF2E091e97F04f0770e5C54e2\",\n },\n },\n\n // VanaPool (Staking)\n VanaPoolStaking: {\n addresses: {\n 14800: \"0x641C18E2F286c86f96CE95C8ec1EB9fC0415Ca0e\",\n 1480: \"0x641C18E2F286c86f96CE95C8ec1EB9fC0415Ca0e\",\n },\n },\n VanaPoolEntity: {\n addresses: {\n 14800: \"0x44f20490A82e1f1F1cC25Dd3BA8647034eDdce30\",\n 1480: \"0x44f20490A82e1f1F1cC25Dd3BA8647034eDdce30\",\n },\n },\n VanaPoolTreasury: {\n addresses: {\n 14800: \"0x143BE72CF2541604A7691933CAccd6D9cC17c003\",\n 1480: \"0x143BE72CF2541604A7691933CAccd6D9cC17c003\",\n },\n },\n\n // DLP Deployment Contracts\n DAT: {\n addresses: {\n 14800: \"0xA706b93ccED89f13340673889e29F0a5cd84212d\",\n 1480: \"0xA706b93ccED89f13340673889e29F0a5cd84212d\",\n },\n },\n DATFactory: {\n addresses: {\n 14800: \"0x40f8bccF35a75ecef63BC3B1B3E06ffEB9220644\",\n 1480: \"0x40f8bccF35a75ecef63BC3B1B3E06ffEB9220644\",\n },\n },\n DATPausable: {\n addresses: {\n 14800: \"0xe69FE86f0B95cC2f8416Fe22815c85DC8887e76e\",\n 1480: \"0xe69FE86f0B95cC2f8416Fe22815c85DC8887e76e\",\n },\n },\n DATVotes: {\n addresses: {\n 14800: \"0xaE04c8A77E9B27869eb563720524A9aE0baf1831\",\n 1480: \"0xaE04c8A77E9B27869eb563720524A9aE0baf1831\",\n },\n },\n\n // Utility Contracts (no ABIs in SDK)\n Multicall3: {\n addresses: {\n 14800: \"0xD8d2dFca27E8797fd779F8547166A2d3B29d360E\",\n 1480: \"0xD8d2dFca27E8797fd779F8547166A2d3B29d360E\",\n },\n },\n Multisend: {\n addresses: {\n 14800: \"0x8807e8BCDFbaA8c2761760f3FBA37F6f7F2C5b2d\",\n 1480: \"0x8807e8BCDFbaA8c2761760f3FBA37F6f7F2C5b2d\",\n },\n },\n} as const;\n\n// Legacy/Deprecated Contracts (backwards compatibility)\n/**\n * Registry of deprecated Vana protocol contracts maintained for backwards compatibility.\n *\n * @remarks\n * This registry contains contract addresses for older versions of the Vana protocol\n * that have been superseded by newer implementations. These contracts are maintained\n * for backwards compatibility with existing applications but should not be used in\n * new development.\n *\n * **Migration Path:**\n * - `TeePool` → Use specific pool types (TeePoolPhala, TeePoolDedicatedGpu, etc.)\n * - Other deprecated contracts → Check the main CONTRACTS registry for current versions\n *\n * **Usage:**\n * Access legacy contract addresses via `getContractAddress(chainId, contractName)` which\n * checks both current and legacy registries automatically.\n *\n * @deprecated Use the main CONTRACTS registry for new development\n * @example\n * ```typescript\n * // Legacy usage (still supported for backwards compatibility)\n * const oldPoolAddress = getContractAddress(14800, \"TeePool\");\n *\n * // Recommended for new development\n * const newPoolAddress = getContractAddress(14800, \"TeePoolPhala\");\n * ```\n * @category Configuration\n */\nexport const LEGACY_CONTRACTS = {\n // DEPRECATED: Original Intel SGX TeePool (PRO-347)\n TeePool: {\n addresses: {\n 14800: \"0x3c92fD91639b41f13338CE62f19131e7d19eaa0D\",\n 1480: \"0x3c92fD91639b41f13338CE62f19131e7d19eaa0D\",\n },\n },\n\n // DEPRECATED: DLPRoot system (replaced by VanaPool + DLPRewards)\n DLPRootEpoch: {\n addresses: {\n 14800: \"0xc3d176cF6BccFCB9225b53B87a95147218e1537F\",\n 1480: \"0xc3d176cF6BccFCB9225b53B87a95147218e1537F\",\n },\n },\n DLPRootCore: {\n addresses: {\n 14800: \"0x0aBa5e28228c323A67712101d61a54d4ff5720FD\",\n 1480: \"0x0aBa5e28228c323A67712101d61a54d4ff5720FD\",\n },\n },\n DLPRoot: {\n addresses: {\n 14800: \"0xff14346dF2B8Fd0c95BF34f1c92e49417b508AD5\",\n 1480: \"0xff14346dF2B8Fd0c95BF34f1c92e49417b508AD5\",\n },\n },\n DLPRootMetrics: {\n addresses: {\n 14800: \"0xbb532917B6407c060Afd9Cb7d53527eCb91d6662\",\n 1480: \"0xbb532917B6407c060Afd9Cb7d53527eCb91d6662\",\n },\n },\n DLPRootStakesTreasury: {\n addresses: {\n 14800: \"0x52c3260ED5C235fcA43524CF508e29c897318775\",\n 1480: \"0x52c3260ED5C235fcA43524CF508e29c897318775\",\n },\n },\n DLPRootRewardsTreasury: {\n addresses: {\n 14800: \"0xDBFb6B8b9E2eCAEbdE64d665cD553dB81e524479\",\n 1480: \"0xDBFb6B8b9E2eCAEbdE64d665cD553dB81e524479\",\n },\n },\n} as const;\n\n// Transform for backwards compatibility with existing SDK usage\nexport const CONTRACT_ADDRESSES: Record<number, Record<string, string>> = {\n 14800: Object.fromEntries(\n Object.entries(CONTRACTS)\n .map(([name, info]) => [name, info.addresses[14800]])\n .filter(([, addr]) => addr),\n ),\n 1480: Object.fromEntries(\n Object.entries(CONTRACTS)\n .map(([name, info]) => [name, info.addresses[1480]])\n .filter(([, addr]) => addr),\n ),\n};\n\n// Legacy exports for backwards compatibility\nexport const UTILITY_ADDRESSES = {\n 14800: {\n Multicall3: CONTRACTS.Multicall3.addresses[14800],\n Multisend: CONTRACTS.Multisend.addresses[14800],\n },\n 1480: {\n Multicall3: CONTRACTS.Multicall3.addresses[1480],\n Multisend: CONTRACTS.Multisend.addresses[1480],\n },\n} as const;\n\nexport const LEGACY_ADDRESSES = {\n 14800: Object.fromEntries(\n Object.entries(LEGACY_CONTRACTS)\n .map(([name, info]) => [name, info.addresses[14800]])\n .filter(([, addr]) => addr),\n ),\n 1480: Object.fromEntries(\n Object.entries(LEGACY_CONTRACTS)\n .map(([name, info]) => [name, info.addresses[1480]])\n .filter(([, addr]) => addr),\n ),\n} as const;\n\nimport type { VanaContract } from \"../generated/abi\";\n\n/**\n * Retrieves the deployed contract address for a specific Vana protocol contract on a given chain.\n *\n * @remarks\n * This function provides type-safe access to contract addresses across all supported Vana networks.\n * It automatically searches both current and legacy contract registries to ensure backwards\n * compatibility while providing clear error messages for unsupported combinations.\n *\n * The function validates that both the chain ID and contract name are supported before\n * attempting address lookup, helping developers identify deployment or configuration issues\n * early in the development process.\n *\n * **Supported Chains:**\n * - 14800: Vana Mainnet\n * - 1480: Moksha Testnet\n *\n * **Contract Categories:**\n * - Data Management: DataRegistry, DataRefinerRegistry\n * - Permissions: DataPortabilityPermissions, DataPortabilityServers, DataPortabilityGrantees\n * - Computing: TeePoolPhala, TeePoolDedicatedGpu, etc.\n * - Token & Governance: DATImplementation, VanaPoolStaking, etc.\n *\n * @param chainId - The chain ID to look up the contract on (14800 for mainnet, 1480 for testnet)\n * @param contract - The contract name to get the address for (use TypeScript autocomplete for available options)\n * @returns The contract address as a checksummed hex string (0x...)\n * @throws {Error} When contract address not found for the specified contract and chain combination.\n * This typically indicates the contract is not deployed on the requested network.\n * @example\n * ```typescript\n * // Get core protocol contract addresses\n * const dataRegistry = getContractAddress(14800, 'DataRegistry');\n * const permissions = getContractAddress(14800, 'DataPortabilityPermissions');\n * const trustedServers = getContractAddress(14800, 'DataPortabilityServers');\n *\n * // Handle unsupported combinations gracefully\n * try {\n * const address = getContractAddress(1480, 'DataRegistry');\n * console.log('DataRegistry testnet address:', address);\n * } catch (error) {\n * console.error('Contract not available on testnet:', error.message);\n * // Fallback to mainnet or show user-friendly error\n * }\n *\n * // TypeScript provides autocomplete for contract names\n * const poolAddress = getContractAddress(14800, 'TeePoolPhala'); // ✅ Valid\n * // const invalid = getContractAddress(14800, 'InvalidContract'); // ❌ TypeScript error\n * ```\n * @category Configuration\n */\nexport const getContractAddress = (\n chainId: keyof typeof CONTRACT_ADDRESSES,\n contract: VanaContract,\n) => {\n const contractAddress = CONTRACT_ADDRESSES[chainId]?.[contract] as\n | `0x${string}`\n | undefined;\n if (!contractAddress) {\n throw new Error(\n `Contract address not found for ${contract} on chain ${chainId}`,\n );\n }\n return contractAddress;\n};\n\nexport const getUtilityAddress = (\n chainId: keyof typeof UTILITY_ADDRESSES,\n contract: keyof (typeof UTILITY_ADDRESSES)[keyof typeof UTILITY_ADDRESSES],\n) => {\n return UTILITY_ADDRESSES[chainId][contract] as `0x${string}`;\n};\n"],"mappings":"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","names":[]}