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