@somnia-chain/contracts-sdk 0.1.0 → 0.3.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 (396) hide show
  1. package/README.md +86 -23
  2. package/dist/abis.d.ts +52 -0
  3. package/dist/abis.js +42 -0
  4. package/dist/decode-core.d.ts +51 -0
  5. package/dist/decode-core.js +145 -0
  6. package/dist/decode.d.ts +15 -0
  7. package/dist/decode.js +30 -0
  8. package/dist/digest.d.ts +11 -0
  9. package/dist/digest.js +33 -0
  10. package/dist/enumerate.d.ts +56 -0
  11. package/dist/enumerate.js +70 -0
  12. package/dist/gen/abi/deployer-contract/ProtocolDeployer.d.ts +2 -0
  13. package/dist/gen/abi/deployer-contract/ProtocolDeployer.js +3 -0
  14. package/dist/gen/abi/somnia-accounts/CompatibilityFallbackHandler.d.ts +2 -0
  15. package/dist/gen/abi/somnia-accounts/CompatibilityFallbackHandler.js +3 -0
  16. package/dist/gen/abi/somnia-accounts/MultiSend.d.ts +2 -0
  17. package/dist/gen/abi/somnia-accounts/MultiSend.js +3 -0
  18. package/dist/gen/abi/somnia-accounts/MultiSendCallOnly.d.ts +2 -0
  19. package/dist/gen/abi/somnia-accounts/MultiSendCallOnly.js +3 -0
  20. package/dist/gen/abi/somnia-accounts/Safe.d.ts +2 -0
  21. package/dist/gen/abi/somnia-accounts/Safe.js +3 -0
  22. package/dist/gen/abi/somnia-accounts/SomniaAccountFactory.d.ts +2 -0
  23. package/dist/gen/abi/somnia-accounts/SomniaAccountFactory.js +3 -0
  24. package/dist/gen/abi/somnia-accounts/SomniaAccountFactoryImpl.d.ts +2 -0
  25. package/dist/gen/abi/somnia-accounts/SomniaAccountFactoryImpl.js +3 -0
  26. package/dist/gen/abi/somnia-accounts/SomniaAccountFactoryImplV2.d.ts +2 -0
  27. package/dist/gen/abi/somnia-accounts/SomniaAccountFactoryImplV2.js +3 -0
  28. package/dist/gen/abi/somnia-accounts/SomniaAccountFactoryImplV3.d.ts +2 -0
  29. package/dist/gen/abi/somnia-accounts/SomniaAccountFactoryImplV3.js +3 -0
  30. package/dist/gen/abi/somnia-agents/agentRegistry.d.ts +2 -0
  31. package/dist/gen/abi/somnia-agents/agentRegistry.js +3 -0
  32. package/dist/gen/abi/somnia-agents/committee.d.ts +2 -0
  33. package/dist/gen/abi/somnia-agents/committee.js +3 -0
  34. package/dist/gen/abi/somnia-agents/somniaAgents.d.ts +2 -0
  35. package/dist/gen/abi/somnia-agents/somniaAgents.js +3 -0
  36. package/dist/gen/abi/somnia-dex-protocol/agent-aggregate-oracle.SBTCD_reader.d.ts +2 -0
  37. package/dist/gen/abi/somnia-dex-protocol/agent-aggregate-oracle.SBTCD_reader.js +3 -0
  38. package/dist/gen/abi/somnia-dex-protocol/agent-aggregate-oracle.aggregateImplementation.d.ts +2 -0
  39. package/dist/gen/abi/somnia-dex-protocol/agent-aggregate-oracle.aggregateImplementation.js +3 -0
  40. package/dist/gen/abi/somnia-dex-protocol/agent-aggregate-oracle.aggregateOracle.d.ts +2 -0
  41. package/dist/gen/abi/somnia-dex-protocol/agent-aggregate-oracle.aggregateOracle.js +3 -0
  42. package/dist/gen/abi/somnia-dex-protocol/agent-oracles.factory.d.ts +2 -0
  43. package/dist/gen/abi/somnia-dex-protocol/agent-oracles.factory.js +3 -0
  44. package/dist/gen/abi/somnia-dex-protocol/binary-market-makers.accessControl.d.ts +2 -0
  45. package/dist/gen/abi/somnia-dex-protocol/binary-market-makers.accessControl.js +3 -0
  46. package/dist/gen/abi/somnia-dex-protocol/binary-market-makers.upgradeableBeacon.d.ts +2 -0
  47. package/dist/gen/abi/somnia-dex-protocol/binary-market-makers.upgradeableBeacon.js +3 -0
  48. package/dist/gen/abi/somnia-dex-protocol/deploy.spotPoolImplementation.d.ts +2 -0
  49. package/dist/gen/abi/somnia-dex-protocol/deploy.spotPoolImplementation.js +3 -0
  50. package/dist/gen/abi/somnia-dex-protocol/dream-vault.d.ts +2 -0
  51. package/dist/gen/abi/somnia-dex-protocol/dream-vault.implementation.d.ts +2 -0
  52. package/dist/gen/abi/somnia-dex-protocol/dream-vault.implementation.js +3 -0
  53. package/dist/gen/abi/somnia-dex-protocol/dream-vault.js +3 -0
  54. package/dist/gen/abi/somnia-dex-protocol/linked-wallet-registry.registryImplementation.d.ts +2 -0
  55. package/dist/gen/abi/somnia-dex-protocol/linked-wallet-registry.registryImplementation.js +3 -0
  56. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.ADA_manual.d.ts +2 -0
  57. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.ADA_manual.js +3 -0
  58. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.AVAX_manual.d.ts +2 -0
  59. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.AVAX_manual.js +3 -0
  60. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.BNB_manual.d.ts +2 -0
  61. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.BNB_manual.js +3 -0
  62. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.BTC_manual.d.ts +2 -0
  63. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.BTC_manual.js +3 -0
  64. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.DOGE_manual.d.ts +2 -0
  65. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.DOGE_manual.js +3 -0
  66. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.ETH_manual.d.ts +2 -0
  67. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.ETH_manual.js +3 -0
  68. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.HYPE_manual.d.ts +2 -0
  69. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.HYPE_manual.js +3 -0
  70. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.LINK_manual.d.ts +2 -0
  71. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.LINK_manual.js +3 -0
  72. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.NEAR_manual.d.ts +2 -0
  73. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.NEAR_manual.js +3 -0
  74. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.SOL_manual.d.ts +2 -0
  75. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.SOL_manual.js +3 -0
  76. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.SUI_manual.d.ts +2 -0
  77. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.SUI_manual.js +3 -0
  78. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.TAO_manual.d.ts +2 -0
  79. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.TAO_manual.js +3 -0
  80. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.WLD_manual.d.ts +2 -0
  81. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.WLD_manual.js +3 -0
  82. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.XLM_manual.d.ts +2 -0
  83. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.XLM_manual.js +3 -0
  84. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.XRP_manual.d.ts +2 -0
  85. package/dist/gen/abi/somnia-dex-protocol/manual-oracles.XRP_manual.js +3 -0
  86. package/dist/gen/abi/somnia-dex-protocol/market-makers.accessControl.d.ts +2 -0
  87. package/dist/gen/abi/somnia-dex-protocol/market-makers.accessControl.js +3 -0
  88. package/dist/gen/abi/somnia-dex-protocol/market-makers.marketMakers.mm-native-usdso.d.ts +2 -0
  89. package/dist/gen/abi/somnia-dex-protocol/market-makers.marketMakers.mm-native-usdso.js +3 -0
  90. package/dist/gen/abi/somnia-dex-protocol/market-makers.marketMakers.mm-usdce-usdso.d.ts +2 -0
  91. package/dist/gen/abi/somnia-dex-protocol/market-makers.marketMakers.mm-usdce-usdso.js +3 -0
  92. package/dist/gen/abi/somnia-dex-protocol/market-makers.marketMakers.mm-wbtc-usdso.d.ts +2 -0
  93. package/dist/gen/abi/somnia-dex-protocol/market-makers.marketMakers.mm-wbtc-usdso.js +3 -0
  94. package/dist/gen/abi/somnia-dex-protocol/market-makers.marketMakers.mm-weth-usdso.d.ts +2 -0
  95. package/dist/gen/abi/somnia-dex-protocol/market-makers.marketMakers.mm-weth-usdso.js +3 -0
  96. package/dist/gen/abi/somnia-dex-protocol/market-makers.upgradeableBeacon.d.ts +2 -0
  97. package/dist/gen/abi/somnia-dex-protocol/market-makers.upgradeableBeacon.js +3 -0
  98. package/dist/gen/abi/somnia-dex-protocol/multi-source-oracle.SBNB_incumbentRouter.d.ts +2 -0
  99. package/dist/gen/abi/somnia-dex-protocol/multi-source-oracle.SBNB_incumbentRouter.js +3 -0
  100. package/dist/gen/abi/somnia-dex-protocol/multi-source-oracle.SBTCD_incumbentRouter.d.ts +2 -0
  101. package/dist/gen/abi/somnia-dex-protocol/multi-source-oracle.SBTCD_incumbentRouter.js +3 -0
  102. package/dist/gen/abi/somnia-dex-protocol/multi-source-oracle.SDOGE_incumbentRouter.d.ts +2 -0
  103. package/dist/gen/abi/somnia-dex-protocol/multi-source-oracle.SDOGE_incumbentRouter.js +3 -0
  104. package/dist/gen/abi/somnia-dex-protocol/multi-source-oracle.SETH_incumbentRouter.d.ts +2 -0
  105. package/dist/gen/abi/somnia-dex-protocol/multi-source-oracle.SETH_incumbentRouter.js +3 -0
  106. package/dist/gen/abi/somnia-dex-protocol/multi-source-oracle.SSOL_incumbentRouter.d.ts +2 -0
  107. package/dist/gen/abi/somnia-dex-protocol/multi-source-oracle.SSOL_incumbentRouter.js +3 -0
  108. package/dist/gen/abi/somnia-dex-protocol/multi-source-oracle.factory.d.ts +2 -0
  109. package/dist/gen/abi/somnia-dex-protocol/multi-source-oracle.factory.js +3 -0
  110. package/dist/gen/abi/somnia-dex-protocol/operator-permissions-registry.registryImplementation.d.ts +2 -0
  111. package/dist/gen/abi/somnia-dex-protocol/operator-permissions-registry.registryImplementation.js +3 -0
  112. package/dist/gen/abi/somnia-dex-protocol/operator-permissions-registry.registryProxy.d.ts +2 -0
  113. package/dist/gen/abi/somnia-dex-protocol/operator-permissions-registry.registryProxy.js +3 -0
  114. package/dist/gen/abi/somnia-dex-protocol/perp-liquidation-swapper.d.ts +2 -0
  115. package/dist/gen/abi/somnia-dex-protocol/perp-liquidation-swapper.implementation.d.ts +2 -0
  116. package/dist/gen/abi/somnia-dex-protocol/perp-liquidation-swapper.implementation.js +7 -0
  117. package/dist/gen/abi/somnia-dex-protocol/perp-liquidation-swapper.js +3 -0
  118. package/dist/gen/abi/somnia-dex-protocol/perp-market-makers.perpMarketMakers.sim-mm-bnb-perp.d.ts +2 -0
  119. package/dist/gen/abi/somnia-dex-protocol/perp-market-makers.perpMarketMakers.sim-mm-bnb-perp.js +3 -0
  120. package/dist/gen/abi/somnia-dex-protocol/perp-market-makers.perpMarketMakers.sim-mm-btc-perp.d.ts +2 -0
  121. package/dist/gen/abi/somnia-dex-protocol/perp-market-makers.perpMarketMakers.sim-mm-btc-perp.js +3 -0
  122. package/dist/gen/abi/somnia-dex-protocol/perp-market-makers.perpMarketMakers.sim-mm-near-perp.d.ts +2 -0
  123. package/dist/gen/abi/somnia-dex-protocol/perp-market-makers.perpMarketMakers.sim-mm-near-perp.js +3 -0
  124. package/dist/gen/abi/somnia-dex-protocol/perp-taker-3.d.ts +2 -0
  125. package/dist/gen/abi/somnia-dex-protocol/perp-taker-3.js +3 -0
  126. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.ADA-PERP_baseToken.d.ts +2 -0
  127. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.ADA-PERP_baseToken.js +3 -0
  128. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.AVAX-PERP_baseToken.d.ts +2 -0
  129. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.AVAX-PERP_baseToken.js +3 -0
  130. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.BNB-PERP_baseToken.d.ts +2 -0
  131. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.BNB-PERP_baseToken.js +3 -0
  132. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.BTC-PERP_baseToken.d.ts +2 -0
  133. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.BTC-PERP_baseToken.js +3 -0
  134. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.DOGE-PERP_baseToken.d.ts +2 -0
  135. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.DOGE-PERP_baseToken.js +3 -0
  136. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.ETH-PERP_baseToken.d.ts +2 -0
  137. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.ETH-PERP_baseToken.js +3 -0
  138. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.HYPE-PERP_baseToken.d.ts +2 -0
  139. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.HYPE-PERP_baseToken.js +3 -0
  140. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.LINK-PERP_baseToken.d.ts +2 -0
  141. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.LINK-PERP_baseToken.js +3 -0
  142. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.NEAR-PERP_baseToken.d.ts +2 -0
  143. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.NEAR-PERP_baseToken.js +3 -0
  144. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.SBTCC-PERP_baseToken.d.ts +2 -0
  145. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.SBTCC-PERP_baseToken.js +3 -0
  146. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.SOL-PERP_baseToken.d.ts +2 -0
  147. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.SOL-PERP_baseToken.js +3 -0
  148. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.SSOL-PERP_baseToken.d.ts +2 -0
  149. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.SSOL-PERP_baseToken.js +3 -0
  150. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.SUI-PERP_baseToken.d.ts +2 -0
  151. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.SUI-PERP_baseToken.js +3 -0
  152. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.TAO-PERP_baseToken.d.ts +2 -0
  153. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.TAO-PERP_baseToken.js +3 -0
  154. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.WLD-PERP_baseToken.d.ts +2 -0
  155. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.WLD-PERP_baseToken.js +3 -0
  156. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.XLM-PERP_baseToken.d.ts +2 -0
  157. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.XLM-PERP_baseToken.js +3 -0
  158. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.XRP-PERP_baseToken.d.ts +2 -0
  159. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.XRP-PERP_baseToken.js +3 -0
  160. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.adlRanker.d.ts +2 -0
  161. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.adlRanker.js +3 -0
  162. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.insuranceFund.d.ts +2 -0
  163. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.insuranceFund.js +3 -0
  164. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.linkedWalletAwareAdlRanker.d.ts +2 -0
  165. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.linkedWalletAwareAdlRanker.js +3 -0
  166. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.linkedWalletRegistry.d.ts +2 -0
  167. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.linkedWalletRegistry.js +3 -0
  168. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.liquidationEngine.d.ts +2 -0
  169. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.liquidationEngine.js +3 -0
  170. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.marginBank.d.ts +2 -0
  171. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.marginBank.js +3 -0
  172. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.perpPoolFactory.d.ts +2 -0
  173. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.perpPoolFactory.js +3 -0
  174. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.simBidder.d.ts +2 -0
  175. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.simBidder.js +3 -0
  176. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.unlinkGuard.d.ts +2 -0
  177. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.unlinkGuard.js +3 -0
  178. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.voucherDistributor.d.ts +2 -0
  179. package/dist/gen/abi/somnia-dex-protocol/perps-protocol.voucherDistributor.js +3 -0
  180. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.ADA.d.ts +2 -0
  181. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.ADA.js +3 -0
  182. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.AVAX.d.ts +2 -0
  183. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.AVAX.js +3 -0
  184. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.BNB.d.ts +2 -0
  185. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.BNB.js +3 -0
  186. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.BTC.d.ts +2 -0
  187. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.BTC.js +3 -0
  188. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.DOGE.d.ts +2 -0
  189. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.DOGE.js +3 -0
  190. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.ETH.d.ts +2 -0
  191. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.ETH.js +3 -0
  192. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.HYPE.d.ts +2 -0
  193. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.HYPE.js +3 -0
  194. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.LINK.d.ts +2 -0
  195. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.LINK.js +3 -0
  196. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.NEAR.d.ts +2 -0
  197. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.NEAR.js +3 -0
  198. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.SOL.d.ts +2 -0
  199. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.SOL.js +3 -0
  200. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.SUI.d.ts +2 -0
  201. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.SUI.js +3 -0
  202. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.TAO.d.ts +2 -0
  203. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.TAO.js +3 -0
  204. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.WLD.d.ts +2 -0
  205. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.WLD.js +3 -0
  206. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.XLM.d.ts +2 -0
  207. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.XLM.js +3 -0
  208. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.XRP.d.ts +2 -0
  209. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistries.XRP.js +3 -0
  210. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistryBeacon.d.ts +2 -0
  211. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistryBeacon.js +3 -0
  212. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistryImplementation.d.ts +2 -0
  213. package/dist/gen/abi/somnia-dex-protocol/perps.perpStopOrderRegistryImplementation.js +3 -0
  214. package/dist/gen/abi/somnia-dex-protocol/prophecy-oracle.d.ts +2 -0
  215. package/dist/gen/abi/somnia-dex-protocol/prophecy-oracle.js +3 -0
  216. package/dist/gen/abi/somnia-dex-protocol/router.routerImplementation.d.ts +2 -0
  217. package/dist/gen/abi/somnia-dex-protocol/router.routerImplementation.js +3 -0
  218. package/dist/gen/abi/somnia-dex-protocol/router.routerProxy.d.ts +2 -0
  219. package/dist/gen/abi/somnia-dex-protocol/router.routerProxy.js +3 -0
  220. package/dist/gen/abi/somnia-dex-protocol/settlement-scheduler.d.ts +2 -0
  221. package/dist/gen/abi/somnia-dex-protocol/settlement-scheduler.implementation.d.ts +2 -0
  222. package/dist/gen/abi/somnia-dex-protocol/settlement-scheduler.implementation.js +3 -0
  223. package/dist/gen/abi/somnia-dex-protocol/settlement-scheduler.js +3 -0
  224. package/dist/gen/abi/somnia-dex-protocol/sim-oracle-proxies.SBNB_proxy.d.ts +2 -0
  225. package/dist/gen/abi/somnia-dex-protocol/sim-oracle-proxies.SBNB_proxy.js +3 -0
  226. package/dist/gen/abi/somnia-dex-protocol/sim-oracle-proxies.SDOGE_proxy.d.ts +2 -0
  227. package/dist/gen/abi/somnia-dex-protocol/sim-oracle-proxies.SDOGE_proxy.js +3 -0
  228. package/dist/gen/abi/somnia-dex-protocol/sim-oracle-proxies.SETH_proxy.d.ts +2 -0
  229. package/dist/gen/abi/somnia-dex-protocol/sim-oracle-proxies.SETH_proxy.js +3 -0
  230. package/dist/gen/abi/somnia-dex-protocol/sim-oracle-proxies.SSOL_proxy.d.ts +2 -0
  231. package/dist/gen/abi/somnia-dex-protocol/sim-oracle-proxies.SSOL_proxy.js +3 -0
  232. package/dist/gen/abi/somnia-dex-protocol/spot-pool-registry.d.ts +2 -0
  233. package/dist/gen/abi/somnia-dex-protocol/spot-pool-registry.js +3 -0
  234. package/dist/gen/abi/somnia-dex-protocol/spot-pool.NATIVE_TOKEN_USDso.d.ts +2 -0
  235. package/dist/gen/abi/somnia-dex-protocol/spot-pool.NATIVE_TOKEN_USDso.js +3 -0
  236. package/dist/gen/abi/somnia-dex-protocol/spot-pool.SpotPool_Beacon.d.ts +2 -0
  237. package/dist/gen/abi/somnia-dex-protocol/spot-pool.SpotPool_Beacon.js +3 -0
  238. package/dist/gen/abi/somnia-dex-protocol/spot-pool.SpotPool_Implementation.d.ts +2 -0
  239. package/dist/gen/abi/somnia-dex-protocol/spot-pool.SpotPool_Implementation.js +3 -0
  240. package/dist/gen/abi/somnia-dex-protocol/spot-pool.USDC.e_USDso.d.ts +2 -0
  241. package/dist/gen/abi/somnia-dex-protocol/spot-pool.USDC.e_USDso.js +3 -0
  242. package/dist/gen/abi/somnia-dex-protocol/spot-pool.USDT_USDso.d.ts +2 -0
  243. package/dist/gen/abi/somnia-dex-protocol/spot-pool.USDT_USDso.js +3 -0
  244. package/dist/gen/abi/somnia-dex-protocol/spot-pool.WBTC_USDso.d.ts +2 -0
  245. package/dist/gen/abi/somnia-dex-protocol/spot-pool.WBTC_USDso.js +3 -0
  246. package/dist/gen/abi/somnia-dex-protocol/spot-pool.WETH_USDso.d.ts +2 -0
  247. package/dist/gen/abi/somnia-dex-protocol/spot-pool.WETH_USDso.js +3 -0
  248. package/dist/gen/abi/somnia-dex-protocol/stop-order-registries.spotStopOrderRegistryBeacon.d.ts +2 -0
  249. package/dist/gen/abi/somnia-dex-protocol/stop-order-registries.spotStopOrderRegistryBeacon.js +3 -0
  250. package/dist/gen/abi/somnia-dex-protocol/stop-order-registries.spotStopOrderRegistryImplementation.d.ts +2 -0
  251. package/dist/gen/abi/somnia-dex-protocol/stop-order-registries.spotStopOrderRegistryImplementation.js +3 -0
  252. package/dist/gen/abi/somnia-dex-protocol/stop-order-registries.stopOrderRegistries.NATIVE_TOKEN_USDso.d.ts +2 -0
  253. package/dist/gen/abi/somnia-dex-protocol/stop-order-registries.stopOrderRegistries.NATIVE_TOKEN_USDso.js +3 -0
  254. package/dist/gen/abi/somnia-dex-protocol/stop-order-registries.stopOrderRegistries.USDC.e_USDso.d.ts +2 -0
  255. package/dist/gen/abi/somnia-dex-protocol/stop-order-registries.stopOrderRegistries.USDC.e_USDso.js +3 -0
  256. package/dist/gen/abi/somnia-dex-protocol/stop-order-registries.stopOrderRegistries.WBTC_USDso.d.ts +2 -0
  257. package/dist/gen/abi/somnia-dex-protocol/stop-order-registries.stopOrderRegistries.WBTC_USDso.js +3 -0
  258. package/dist/gen/abi/somnia-dex-protocol/stop-order-registries.stopOrderRegistries.WETH_USDso.d.ts +2 -0
  259. package/dist/gen/abi/somnia-dex-protocol/stop-order-registries.stopOrderRegistries.WETH_USDso.js +3 -0
  260. package/dist/gen/abi/somnia-dex-protocol/stork-oracle.d.ts +2 -0
  261. package/dist/gen/abi/somnia-dex-protocol/stork-oracle.js +3 -0
  262. package/dist/gen/abi/somnia-markets/BinaryClobFactory.d.ts +2 -0
  263. package/dist/gen/abi/somnia-markets/BinaryClobFactory.js +3 -0
  264. package/dist/gen/abi/somnia-markets/BinaryMarketImpl.d.ts +2 -0
  265. package/dist/gen/abi/somnia-markets/BinaryMarketImpl.js +3 -0
  266. package/dist/gen/abi/somnia-markets/BinaryMarketsModule.d.ts +2 -0
  267. package/dist/gen/abi/somnia-markets/BinaryMarketsModule.js +3 -0
  268. package/dist/gen/abi/somnia-markets/BinaryPoolImpl.d.ts +2 -0
  269. package/dist/gen/abi/somnia-markets/BinaryPoolImpl.js +3 -0
  270. package/dist/gen/abi/somnia-markets/BinarySettlement.d.ts +2 -0
  271. package/dist/gen/abi/somnia-markets/BinarySettlement.js +3 -0
  272. package/dist/gen/abi/somnia-markets/CollateralRouter.d.ts +2 -0
  273. package/dist/gen/abi/somnia-markets/CollateralRouter.js +3 -0
  274. package/dist/gen/abi/somnia-markets/MarketCreatorFactory.d.ts +2 -0
  275. package/dist/gen/abi/somnia-markets/MarketCreatorFactory.js +3 -0
  276. package/dist/gen/abi/somnia-markets/MarketCreatorFactory.legacy1.d.ts +2 -0
  277. package/dist/gen/abi/somnia-markets/MarketCreatorFactory.legacy1.js +3 -0
  278. package/dist/gen/abi/somnia-markets/MarketsCore.d.ts +2 -0
  279. package/dist/gen/abi/somnia-markets/MarketsCore.js +3 -0
  280. package/dist/gen/abi/somnia-markets/OracleHub.d.ts +2 -0
  281. package/dist/gen/abi/somnia-markets/OracleHub.js +3 -0
  282. package/dist/gen/abi/somnia-markets/OutcomeToken6909.d.ts +2 -0
  283. package/dist/gen/abi/somnia-markets/OutcomeToken6909.js +3 -0
  284. package/dist/gen/abi/somnia-markets/venue-1.marketCreator.d.ts +2 -0
  285. package/dist/gen/abi/somnia-markets/venue-1.marketCreator.js +3 -0
  286. package/dist/gen/abi/somnia-markets/venue-1.marketCreatorPolicy.d.ts +2 -0
  287. package/dist/gen/abi/somnia-markets/venue-1.marketCreatorPolicy.js +3 -0
  288. package/dist/gen/abi/somnia-markets/venue-2.marketCreator.d.ts +2 -0
  289. package/dist/gen/abi/somnia-markets/venue-2.marketCreator.js +3 -0
  290. package/dist/gen/abi/somnia-markets/venue-2.marketCreatorPolicy.d.ts +2 -0
  291. package/dist/gen/abi/somnia-markets/venue-2.marketCreatorPolicy.js +3 -0
  292. package/dist/gen/abi/somnia-markets/venue-3.marketCreator.d.ts +2 -0
  293. package/dist/gen/abi/somnia-markets/venue-3.marketCreator.js +3 -0
  294. package/dist/gen/abi/somnia-markets/venue-3.marketCreatorPolicy.d.ts +2 -0
  295. package/dist/gen/abi/somnia-markets/venue-3.marketCreatorPolicy.js +3 -0
  296. package/dist/gen/abi/somnia-markets/venue-5.marketCreator.d.ts +2 -0
  297. package/dist/gen/abi/somnia-markets/venue-5.marketCreator.js +3 -0
  298. package/dist/gen/abi/somnia-markets/venue-5.marketCreatorPolicy.d.ts +2 -0
  299. package/dist/gen/abi/somnia-markets/venue-5.marketCreatorPolicy.js +3 -0
  300. package/dist/gen/abis/072309c539e4.d.ts +864 -0
  301. package/dist/gen/abis/072309c539e4.js +1114 -0
  302. package/dist/gen/abis/0b3cd40e0bc8.d.ts +12 -0
  303. package/dist/gen/abis/0b3cd40e0bc8.js +17 -0
  304. package/dist/gen/abis/1a2db3035880.d.ts +891 -0
  305. package/dist/gen/abis/1a2db3035880.js +1149 -0
  306. package/dist/gen/abis/1a5696b34cbf.d.ts +589 -0
  307. package/dist/gen/abis/1a5696b34cbf.js +763 -0
  308. package/dist/gen/abis/1e00c7896e9e.d.ts +342 -0
  309. package/dist/gen/abis/1e00c7896e9e.js +442 -0
  310. package/dist/gen/abis/28f7c4e190be.d.ts +56 -0
  311. package/dist/gen/abis/28f7c4e190be.js +76 -0
  312. package/dist/gen/abis/2fc4ebdf8536.d.ts +492 -0
  313. package/dist/gen/abis/2fc4ebdf8536.js +641 -0
  314. package/dist/gen/abis/3197a9b71399.d.ts +690 -0
  315. package/dist/gen/abis/3197a9b71399.js +896 -0
  316. package/dist/gen/abis/3d5f1ad25c1d.d.ts +370 -0
  317. package/dist/gen/abis/3d5f1ad25c1d.js +480 -0
  318. package/dist/gen/abis/3eafdb9c0c96.d.ts +264 -0
  319. package/dist/gen/abis/3eafdb9c0c96.js +345 -0
  320. package/dist/gen/abis/403090974089.d.ts +590 -0
  321. package/dist/gen/abis/403090974089.js +766 -0
  322. package/dist/gen/abis/4167268939aa.d.ts +306 -0
  323. package/dist/gen/abis/4167268939aa.js +393 -0
  324. package/dist/gen/abis/46a90f031627.d.ts +940 -0
  325. package/dist/gen/abis/46a90f031627.js +1196 -0
  326. package/dist/gen/abis/49cb4deac436.d.ts +2041 -0
  327. package/dist/gen/abis/49cb4deac436.js +2618 -0
  328. package/dist/gen/abis/4d8bacb29f20.d.ts +991 -0
  329. package/dist/gen/abis/4d8bacb29f20.js +1271 -0
  330. package/dist/gen/abis/69f7ea016674.d.ts +202 -0
  331. package/dist/gen/abis/69f7ea016674.js +265 -0
  332. package/dist/gen/abis/734133340224.d.ts +1371 -0
  333. package/dist/gen/abis/734133340224.js +1767 -0
  334. package/dist/gen/abis/73ce587427d9.d.ts +2509 -0
  335. package/dist/gen/abis/73ce587427d9.js +3227 -0
  336. package/dist/gen/abis/7837fce34f57.d.ts +169 -0
  337. package/dist/gen/abis/7837fce34f57.js +221 -0
  338. package/dist/gen/abis/7efe899eb023.d.ts +1005 -0
  339. package/dist/gen/abis/7efe899eb023.js +1283 -0
  340. package/dist/gen/abis/836562f8baa3.d.ts +951 -0
  341. package/dist/gen/abis/836562f8baa3.js +1227 -0
  342. package/dist/gen/abis/83cdff66efa0.d.ts +278 -0
  343. package/dist/gen/abis/83cdff66efa0.js +365 -0
  344. package/dist/gen/abis/947a1caa8a16.d.ts +59 -0
  345. package/dist/gen/abis/947a1caa8a16.js +80 -0
  346. package/dist/gen/abis/9611b42c6d5f.d.ts +452 -0
  347. package/dist/gen/abis/9611b42c6d5f.js +590 -0
  348. package/dist/gen/abis/96e8cf2c064f.d.ts +1494 -0
  349. package/dist/gen/abis/96e8cf2c064f.js +1927 -0
  350. package/dist/gen/abis/9818d0265866.d.ts +874 -0
  351. package/dist/gen/abis/9818d0265866.js +1115 -0
  352. package/dist/gen/abis/9d6d8799f16f.d.ts +457 -0
  353. package/dist/gen/abis/9d6d8799f16f.js +587 -0
  354. package/dist/gen/abis/acdb264ea8c1.d.ts +2185 -0
  355. package/dist/gen/abis/acdb264ea8c1.js +2817 -0
  356. package/dist/gen/abis/b127df9297ac.d.ts +226 -0
  357. package/dist/gen/abis/b127df9297ac.js +292 -0
  358. package/dist/gen/abis/b3a5eed8be5c.d.ts +270 -0
  359. package/dist/gen/abis/b3a5eed8be5c.js +356 -0
  360. package/dist/gen/abis/b60156cb0dcf.d.ts +287 -0
  361. package/dist/gen/abis/b60156cb0dcf.js +376 -0
  362. package/dist/gen/abis/be2135567d5c.d.ts +358 -0
  363. package/dist/gen/abis/be2135567d5c.js +461 -0
  364. package/dist/gen/abis/c76e9681cb2f.d.ts +200 -0
  365. package/dist/gen/abis/c76e9681cb2f.js +265 -0
  366. package/dist/gen/abis/c84f8d0f9550.d.ts +16 -0
  367. package/dist/gen/abis/c84f8d0f9550.js +22 -0
  368. package/dist/gen/abis/cf9c2beac210.d.ts +139 -0
  369. package/dist/gen/abis/cf9c2beac210.js +180 -0
  370. package/dist/gen/abis/d407c410234a.d.ts +490 -0
  371. package/dist/gen/abis/d407c410234a.js +640 -0
  372. package/dist/gen/abis/d898521cbf00.d.ts +1591 -0
  373. package/dist/gen/abis/d898521cbf00.js +2070 -0
  374. package/dist/gen/abis/ecc4ba1d4404.d.ts +51 -0
  375. package/dist/gen/abis/ecc4ba1d4404.js +69 -0
  376. package/dist/gen/abis/eeb301f1a74b.d.ts +1466 -0
  377. package/dist/gen/abis/eeb301f1a74b.js +1872 -0
  378. package/dist/gen/abis/f4c6a88bd236.d.ts +686 -0
  379. package/dist/gen/abis/f4c6a88bd236.js +884 -0
  380. package/dist/gen/abis/f97be7b72b2f.d.ts +633 -0
  381. package/dist/gen/abis/f97be7b72b2f.js +810 -0
  382. package/dist/gen/abis/faaa48786a09.d.ts +547 -0
  383. package/dist/gen/abis/faaa48786a09.js +703 -0
  384. package/dist/gen/abis/fd1f15294d67.d.ts +774 -0
  385. package/dist/gen/abis/fd1f15294d67.js +1001 -0
  386. package/dist/gen/abis/fea5d0628b94.d.ts +109 -0
  387. package/dist/gen/abis/fea5d0628b94.js +144 -0
  388. package/dist/gen/abis-index.d.ts +29245 -0
  389. package/dist/gen/abis-index.js +91 -0
  390. package/dist/gen/meta.d.ts +5 -0
  391. package/dist/gen/meta.js +6 -0
  392. package/dist/gen/registry.d.ts +225 -92124
  393. package/dist/gen/registry.js +3705 -38212
  394. package/dist/index.d.ts +113 -16
  395. package/dist/index.js +88 -37
  396. package/package.json +24 -1
package/dist/index.d.ts CHANGED
@@ -1,32 +1,137 @@
1
1
  import { registry } from "./gen/registry.js";
2
2
  export * from "./gen/registry.js";
3
+ export { registryVersion } from "./gen/meta.js";
3
4
  export type Registry = typeof registry;
4
5
  export type NetworkSlug = keyof Registry & string;
5
6
  export type ProjectSlug<N extends NetworkSlug> = keyof Registry[N]["contracts"] & string;
6
7
  export type ContractName<N extends NetworkSlug, P extends ProjectSlug<N>> = keyof Registry[N]["contracts"][P] & string;
7
8
  export type Address = `0x${string}`;
8
- /** One deployment's record; narrow it by passing slugs and a name. */
9
+ export type AbiDigest = `sha256:${string}`;
10
+ /**
11
+ * What a deployment is, structurally. `proxy` and `beacon-proxy` carry an
12
+ * `implementation`; `implementation` and `beacon` are the targets behind one
13
+ * and are recorded in their own right so an upgrade has something to point at;
14
+ * `external` is a contract Somnia depends on but did not deploy.
15
+ */
16
+ export type DeploymentKind = "singleton" | "proxy" | "beacon" | "beacon-proxy" | "implementation" | "external";
17
+ /**
18
+ * Whether a deployment is the one to use. `superseded` and `retired` records
19
+ * are kept rather than deleted — decoding an old transaction needs the address
20
+ * that was current when it was sent.
21
+ */
22
+ export type ContractStatus = "active" | "superseded" | "retired";
23
+ /** One deployment's record; narrow it by passing slugs and a name. The `abi` field is a digest — resolve it via the `./abis` entry point or a per-contract `./abi/*` module. */
9
24
  export type ContractEntry<N extends NetworkSlug = NetworkSlug, P extends ProjectSlug<N> = ProjectSlug<N>, C extends ContractName<N, P> = ContractName<N, P>> = Registry[N]["contracts"][P][C];
10
25
  type DistributedOmit<T, K extends PropertyKey> = T extends unknown ? Omit<T, K> : never;
11
26
  /** One network's chain information, without the address book. */
12
- export type NetworkInfo<N extends NetworkSlug = NetworkSlug> = DistributedOmit<Registry[N], "contracts">;
27
+ export type NetworkInfo<N extends NetworkSlug = NetworkSlug> = DistributedOmit<Registry[N] & {
28
+ slug: N;
29
+ }, "contracts">;
13
30
  /** Every network's chain information, retired ones included. */
14
31
  export declare const networks: readonly NetworkInfo[];
15
- /** One network's chain information, without the address book. */
16
- export declare function getNetwork<N extends NetworkSlug>(network: N): Omit<Registry[N], "contracts">;
32
+ /** One network's chain information, without the address book. Throws on an unknown slug. */
33
+ export declare function network<N extends NetworkSlug>(slug: N): NetworkInfo<N>;
34
+ /** @deprecated alias kept from 0.1.x — use `network`. */
35
+ export declare function getNetwork<N extends NetworkSlug>(slug: N): NetworkInfo<N>;
17
36
  /**
18
37
  * All networks that answer at a chain id. Plural on purpose: chain ids are
19
38
  * not unique across Somnia networks (a regenesis reuses the id with none of
20
- * the state), so an id can name a retired and a live network at once. Filter
21
- * on `status` if only the live one matters.
39
+ * the state), so an id can name a retired and a live network at once. The
40
+ * array is what forces callers to disambiguate instead of guessing.
22
41
  */
23
- export declare function getNetworksByChainId(chainId: number): NetworkInfo[];
42
+ export declare function networksByChainId(chainId: number): NetworkInfo[];
43
+ /** @deprecated alias kept from 0.1.x — use `networksByChainId`. */
44
+ export declare const getNetworksByChainId: typeof networksByChainId;
45
+ export declare function liveNetworks(): NetworkInfo[];
46
+ /** One deployment: address, kind, version, status and the ABI digest. Throws on unknown names. */
47
+ export declare function getContract<N extends NetworkSlug, P extends ProjectSlug<N>, C extends ContractName<N, P>>(net: N, project: P, name: C): Registry[N]["contracts"][P][C];
48
+ /** The deployed address. Throws on unknown names — the "this must exist" form. */
49
+ export declare function address<N extends NetworkSlug, P extends ProjectSlug<N>, C extends ContractName<N, P>>(net: N, project: P, name: C): Registry[N]["contracts"][P][C] extends {
50
+ address: infer A;
51
+ } ? A : never;
52
+ /** @deprecated alias kept from 0.1.x — use `address`. */
53
+ export declare const getAddress: typeof address;
54
+ /**
55
+ * The deployed address, or null — the "is it deployed here?" form. Projects
56
+ * do not span every network, so absence is an answer, not an error.
57
+ */
58
+ export declare function tryAddress(net: NetworkSlug, project: string, name: string): Address | null;
59
+ export interface ListedContract {
60
+ network: NetworkSlug;
61
+ project: string;
62
+ /** The registry's name for this deployment — a role, like `BTC_reader`. */
63
+ name: string;
64
+ address: Address;
65
+ kind: DeploymentKind;
66
+ status: ContractStatus;
67
+ version: string;
68
+ /**
69
+ * The Solidity contract name, where a source states it. Absent where no
70
+ * source did: the registry records a name only from a broadcast log or a
71
+ * repo declaration, never a guess. This is also the key the per-contract
72
+ * `./abi/<project>/<contract>` modules are published under, so an
73
+ * enumerated deployment can reach its typed ABI only when this is set —
74
+ * and it is set on exactly the deployments that have an `abi` digest.
75
+ */
76
+ contract?: string;
77
+ implementation?: Address;
78
+ startBlock?: number;
79
+ abi?: AbiDigest;
80
+ }
81
+ /** Enumerate a network's deployments, optionally one project's. */
82
+ export declare function contracts(net: NetworkSlug, project?: string): ListedContract[];
83
+ export interface AllContractsOptions {
84
+ /**
85
+ * Include networks the registry has retired. Off by default: a retired
86
+ * network's addresses still exist but answer on a chain that was wiped, so
87
+ * showing them beside live ones is how a dashboard displays a balance that
88
+ * is not there.
89
+ */
90
+ includeRetiredNetworks?: boolean;
91
+ /**
92
+ * Include deployments superseded by a later one. Off by default — the
93
+ * registry publishes only each deployment's current release, so this
94
+ * changes nothing today and keeps meaning the same thing if that changes.
95
+ */
96
+ includeSuperseded?: boolean;
97
+ project?: string;
98
+ }
99
+ /**
100
+ * Every current deployment, across every live network.
101
+ *
102
+ * The one call a dashboard wants: enumerating per network means knowing the
103
+ * slugs, remembering that retired ones exist, and filtering status by hand at
104
+ * every call site — three chances to show a wiped testnet's addresses as
105
+ * current. Ordered by network slug, then project, then name, so a rendered
106
+ * list is stable between releases.
107
+ */
108
+ export declare function allContracts(opts?: AllContractsOptions): ListedContract[];
109
+ export interface ContractIdentity {
110
+ network: NetworkSlug;
111
+ project: string;
112
+ name: string;
113
+ kind: DeploymentKind;
114
+ status: ContractStatus;
115
+ address: Address;
116
+ contract?: string;
117
+ implementation?: Address;
118
+ abi?: AbiDigest;
119
+ /** "address" — the queried address is the deployment; "implementation" — it is the implementation behind one. */
120
+ matchedBy: "address" | "implementation";
121
+ }
122
+ /**
123
+ * Reverse lookup: which recorded deployment answers at this address? Proxy
124
+ * implementations resolve to their proxy's identity, marked `matchedBy:
125
+ * "implementation"`. Null for anything the registry has never seen — which on
126
+ * a permissionless chain is normal, not an error.
127
+ */
128
+ export declare function identify(net: NetworkSlug, addr: string): ContractIdentity | null;
24
129
  /**
25
130
  * A viem-`Chain`-shaped object for a network, structurally compatible with
26
131
  * `viem`'s `Chain` without depending on it. The registry records no public
27
132
  * RPC endpoint — deliberately — so you bring your own.
28
133
  */
29
- export declare function toChain<N extends NetworkSlug>(network: N, opts: {
134
+ export declare function toChain<N extends NetworkSlug>(net: N, opts: {
30
135
  rpcUrl: string;
31
136
  wsUrl?: string;
32
137
  }): {
@@ -46,11 +151,3 @@ export declare function toChain<N extends NetworkSlug>(network: N, opts: {
46
151
  };
47
152
  };
48
153
  };
49
- /** One deployment: address, kind, version, status and — where recorded — the ABI. */
50
- export declare function getContract<N extends NetworkSlug, P extends ProjectSlug<N>, C extends ContractName<N, P>>(network: N, project: P, name: C): Registry[N]["contracts"][P][C];
51
- export declare function getAddress<N extends NetworkSlug, P extends ProjectSlug<N>, C extends ContractName<N, P>>(network: N, project: P, name: C): Registry[N]["contracts"][P][C] extends {
52
- address: infer A;
53
- } ? A : never;
54
- export declare function getAbi<N extends NetworkSlug, P extends ProjectSlug<N>, C extends ContractName<N, P>>(network: N, project: P, name: C): Registry[N]["contracts"][P][C] extends {
55
- abi: infer A;
56
- } ? A : undefined;
package/dist/index.js CHANGED
@@ -1,38 +1,106 @@
1
1
  import { registry } from "./gen/registry.js";
2
+ import { buildIdentityIndex, listAll, listContracts } from "./enumerate.js";
2
3
  export * from "./gen/registry.js";
4
+ export { registryVersion } from "./gen/meta.js";
5
+ function info(slug) {
6
+ const { contracts: _contracts, ...rest } = registry[slug];
7
+ return { slug, ...rest };
8
+ }
3
9
  /** Every network's chain information, retired ones included. */
4
- export const networks = Object.keys(registry).map((slug) => getNetwork(slug));
5
- /** One network's chain information, without the address book. */
6
- export function getNetwork(network) {
7
- const entry = registry[network];
8
- if (!entry)
9
- throw new Error(`unknown network: ${String(network)}`);
10
- const { contracts: _contracts, ...info } = entry;
11
- return info;
10
+ export const networks = Object.keys(registry).map(info);
11
+ /** One network's chain information, without the address book. Throws on an unknown slug. */
12
+ export function network(slug) {
13
+ if (!(slug in registry))
14
+ throw new Error(`unknown network: ${String(slug)}`);
15
+ return info(slug);
16
+ }
17
+ /** @deprecated alias kept from 0.1.x — use `network`. */
18
+ export function getNetwork(slug) {
19
+ return network(slug);
12
20
  }
13
21
  /**
14
22
  * All networks that answer at a chain id. Plural on purpose: chain ids are
15
23
  * not unique across Somnia networks (a regenesis reuses the id with none of
16
- * the state), so an id can name a retired and a live network at once. Filter
17
- * on `status` if only the live one matters.
24
+ * the state), so an id can name a retired and a live network at once. The
25
+ * array is what forces callers to disambiguate instead of guessing.
18
26
  */
19
- export function getNetworksByChainId(chainId) {
20
- return Object.keys(registry)
21
- .filter((slug) => registry[slug].chainId === chainId)
22
- .map((slug) => getNetwork(slug));
27
+ export function networksByChainId(chainId) {
28
+ return networks.filter((n) => n.chainId === chainId);
29
+ }
30
+ /** @deprecated alias kept from 0.1.x — use `networksByChainId`. */
31
+ export const getNetworksByChainId = networksByChainId;
32
+ export function liveNetworks() {
33
+ return networks.filter((n) => n.status === "live");
34
+ }
35
+ /** One deployment: address, kind, version, status and the ABI digest. Throws on unknown names. */
36
+ export function getContract(net, project, name) {
37
+ const book = registry[net]?.contracts;
38
+ if (!book)
39
+ throw new Error(`unknown network: ${String(net)}`);
40
+ const entry = book[project]?.[name];
41
+ if (!entry)
42
+ throw new Error(`unknown contract: ${String(project)}/${String(name)} on ${String(net)}`);
43
+ return entry;
44
+ }
45
+ /** The deployed address. Throws on unknown names — the "this must exist" form. */
46
+ export function address(net, project, name) {
47
+ return getContract(net, project, name)
48
+ .address;
49
+ }
50
+ /** @deprecated alias kept from 0.1.x — use `address`. */
51
+ export const getAddress = address;
52
+ /**
53
+ * The deployed address, or null — the "is it deployed here?" form. Projects
54
+ * do not span every network, so absence is an answer, not an error.
55
+ */
56
+ export function tryAddress(net, project, name) {
57
+ const book = registry[net]?.contracts;
58
+ return book?.[project]?.[name]?.address ?? null;
59
+ }
60
+ const books = registry;
61
+ /** Enumerate a network's deployments, optionally one project's. */
62
+ export function contracts(net, project) {
63
+ return listContracts(books, net, project);
64
+ }
65
+ /**
66
+ * Every current deployment, across every live network.
67
+ *
68
+ * The one call a dashboard wants: enumerating per network means knowing the
69
+ * slugs, remembering that retired ones exist, and filtering status by hand at
70
+ * every call site — three chances to show a wiped testnet's addresses as
71
+ * current. Ordered by network slug, then project, then name, so a rendered
72
+ * list is stable between releases.
73
+ */
74
+ export function allContracts(opts = {}) {
75
+ return listAll(books, opts);
76
+ }
77
+ const identityIndex = new Map();
78
+ /**
79
+ * Reverse lookup: which recorded deployment answers at this address? Proxy
80
+ * implementations resolve to their proxy's identity, marked `matchedBy:
81
+ * "implementation"`. Null for anything the registry has never seen — which on
82
+ * a permissionless chain is normal, not an error.
83
+ */
84
+ export function identify(net, addr) {
85
+ let index = identityIndex.get(net);
86
+ if (!index) {
87
+ index = buildIdentityIndex(books, net);
88
+ identityIndex.set(net, index);
89
+ }
90
+ return index.get(addr.toLowerCase()) ?? null;
23
91
  }
24
92
  /**
25
93
  * A viem-`Chain`-shaped object for a network, structurally compatible with
26
94
  * `viem`'s `Chain` without depending on it. The registry records no public
27
95
  * RPC endpoint — deliberately — so you bring your own.
28
96
  */
29
- export function toChain(network, opts) {
30
- const info = getNetwork(network);
31
- const explorer = info.explorerUrls?.[0];
97
+ export function toChain(net, opts) {
98
+ const n = network(net);
99
+ const explorer = n.explorerUrls?.[0];
32
100
  return {
33
- id: registry[network].chainId,
34
- name: registry[network].name,
35
- nativeCurrency: registry[network].nativeCurrency,
101
+ id: registry[net].chainId,
102
+ name: registry[net].name,
103
+ nativeCurrency: registry[net].nativeCurrency,
36
104
  rpcUrls: {
37
105
  default: {
38
106
  http: [opts.rpcUrl],
@@ -42,20 +110,3 @@ export function toChain(network, opts) {
42
110
  ...(explorer ? { blockExplorers: { default: { name: "Explorer", url: explorer } } } : {}),
43
111
  };
44
112
  }
45
- /** One deployment: address, kind, version, status and — where recorded — the ABI. */
46
- export function getContract(network, project, name) {
47
- const book = registry[network]?.contracts;
48
- if (!book)
49
- throw new Error(`unknown network: ${String(network)}`);
50
- const entry = book[project]?.[name];
51
- if (!entry)
52
- throw new Error(`unknown contract: ${String(project)}/${String(name)} on ${String(network)}`);
53
- return entry;
54
- }
55
- export function getAddress(network, project, name) {
56
- return getContract(network, project, name)
57
- .address;
58
- }
59
- export function getAbi(network, project, name) {
60
- return getContract(network, project, name).abi;
61
- }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@somnia-chain/contracts-sdk",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "Somnia contract addresses, ABIs and chain information, typed. Generated from the Somnia contract registry.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -11,6 +11,18 @@
11
11
  ".": {
12
12
  "types": "./dist/index.d.ts",
13
13
  "default": "./dist/index.js"
14
+ },
15
+ "./abis": {
16
+ "types": "./dist/abis.d.ts",
17
+ "default": "./dist/abis.js"
18
+ },
19
+ "./decode": {
20
+ "types": "./dist/decode.d.ts",
21
+ "default": "./dist/decode.js"
22
+ },
23
+ "./abi/*": {
24
+ "types": "./dist/gen/abi/*.d.ts",
25
+ "default": "./dist/gen/abi/*.js"
14
26
  }
15
27
  },
16
28
  "files": [
@@ -20,6 +32,17 @@
20
32
  "publishConfig": {
21
33
  "access": "public"
22
34
  },
35
+ "dependencies": {
36
+ "@noble/hashes": "^1.7.1"
37
+ },
38
+ "peerDependencies": {
39
+ "viem": "^2.0.0"
40
+ },
41
+ "peerDependenciesMeta": {
42
+ "viem": {
43
+ "optional": true
44
+ }
45
+ },
23
46
  "repository": {
24
47
  "type": "git",
25
48
  "url": "git+https://github.com/somnia-chain/contract-registry.git",