@misonetwork/sdk 0.7.0 → 0.9.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 (418) hide show
  1. package/README.md +210 -136
  2. package/dist/client.d.ts +1211 -8
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +56 -19
  5. package/dist/client.js.map +1 -1
  6. package/dist/contracts/composition_credits/composition_credits.d.ts +181 -0
  7. package/dist/contracts/composition_credits/composition_credits.d.ts.map +1 -0
  8. package/dist/contracts/composition_credits/composition_credits.js +109 -0
  9. package/dist/contracts/composition_credits/composition_credits.js.map +1 -0
  10. package/dist/contracts/composition_credits/composition_party_role.d.ts +119 -0
  11. package/dist/contracts/composition_credits/composition_party_role.d.ts.map +1 -0
  12. package/dist/contracts/composition_credits/composition_party_role.js +139 -0
  13. package/dist/contracts/composition_credits/composition_party_role.js.map +1 -0
  14. package/dist/contracts/composition_credits/deps/miso_credit/credit.d.ts +24 -0
  15. package/dist/contracts/composition_credits/deps/miso_credit/credit.d.ts.map +1 -0
  16. package/dist/contracts/composition_credits/deps/miso_credit/credit.js +23 -0
  17. package/dist/contracts/composition_credits/deps/miso_credit/credit.js.map +1 -0
  18. package/dist/contracts/composition_credits/deps/sui/vec_map.d.ts +37 -0
  19. package/dist/contracts/composition_credits/deps/sui/vec_map.d.ts.map +1 -0
  20. package/dist/contracts/composition_credits/deps/sui/vec_map.js +28 -0
  21. package/dist/contracts/composition_credits/deps/sui/vec_map.js.map +1 -0
  22. package/dist/contracts/miso/composition.d.ts +1 -15
  23. package/dist/contracts/miso/composition.d.ts.map +1 -1
  24. package/dist/contracts/miso/composition.js +2 -17
  25. package/dist/contracts/miso/composition.js.map +1 -1
  26. package/dist/contracts/miso/deps/bps/bps.d.ts +1 -1
  27. package/dist/contracts/miso/deps/bps/bps.js +1 -1
  28. package/dist/contracts/miso/recording.d.ts +1 -16
  29. package/dist/contracts/miso/recording.d.ts.map +1 -1
  30. package/dist/contracts/miso/recording.js +1 -16
  31. package/dist/contracts/miso/recording.js.map +1 -1
  32. package/dist/contracts/miso/release.d.ts +61 -48
  33. package/dist/contracts/miso/release.d.ts.map +1 -1
  34. package/dist/contracts/miso/release.js +59 -46
  35. package/dist/contracts/miso/release.js.map +1 -1
  36. package/dist/contracts/miso/track.d.ts +2 -2
  37. package/dist/contracts/miso/track.js +2 -2
  38. package/dist/contracts/miso_party/deps/sui/vec_set.d.ts +21 -0
  39. package/dist/contracts/miso_party/deps/sui/vec_set.d.ts.map +1 -0
  40. package/dist/contracts/miso_party/deps/sui/vec_set.js +20 -0
  41. package/dist/contracts/miso_party/deps/sui/vec_set.js.map +1 -0
  42. package/dist/contracts/miso_party/party.d.ts +481 -0
  43. package/dist/contracts/miso_party/party.d.ts.map +1 -0
  44. package/dist/contracts/miso_party/party.js +527 -0
  45. package/dist/contracts/miso_party/party.js.map +1 -0
  46. package/dist/contracts/party_cta/party_cta.d.ts +120 -0
  47. package/dist/contracts/party_cta/party_cta.d.ts.map +1 -0
  48. package/dist/contracts/party_cta/party_cta.js +139 -0
  49. package/dist/contracts/party_cta/party_cta.js.map +1 -0
  50. package/dist/contracts/party_genre/party_genre.d.ts +117 -0
  51. package/dist/contracts/party_genre/party_genre.d.ts.map +1 -0
  52. package/dist/contracts/party_genre/party_genre.js +131 -0
  53. package/dist/contracts/party_genre/party_genre.js.map +1 -0
  54. package/dist/contracts/party_media/party_media.d.ts +86 -0
  55. package/dist/contracts/party_media/party_media.d.ts.map +1 -0
  56. package/dist/contracts/party_media/party_media.js +97 -0
  57. package/dist/contracts/party_media/party_media.js.map +1 -0
  58. package/dist/contracts/party_music/party_music.d.ts +209 -0
  59. package/dist/contracts/party_music/party_music.d.ts.map +1 -0
  60. package/dist/contracts/party_music/party_music.js +259 -0
  61. package/dist/contracts/party_music/party_music.js.map +1 -0
  62. package/dist/contracts/party_platform_link/party_platform_link.d.ts +89 -0
  63. package/dist/contracts/party_platform_link/party_platform_link.d.ts.map +1 -0
  64. package/dist/contracts/party_platform_link/party_platform_link.js +92 -0
  65. package/dist/contracts/party_platform_link/party_platform_link.js.map +1 -0
  66. package/dist/contracts/party_pro_link/party_pro_link.d.ts +233 -0
  67. package/dist/contracts/party_pro_link/party_pro_link.d.ts.map +1 -0
  68. package/dist/contracts/party_pro_link/party_pro_link.js +289 -0
  69. package/dist/contracts/party_pro_link/party_pro_link.js.map +1 -0
  70. package/dist/contracts/party_profile/deps/country_code/country_code.d.ts +15 -0
  71. package/dist/contracts/party_profile/deps/country_code/country_code.d.ts.map +1 -0
  72. package/dist/contracts/party_profile/deps/country_code/country_code.js +17 -0
  73. package/dist/contracts/party_profile/deps/country_code/country_code.js.map +1 -0
  74. package/dist/contracts/party_profile/deps/language_code/language_code.d.ts +6 -0
  75. package/dist/contracts/party_profile/deps/language_code/language_code.d.ts.map +1 -0
  76. package/dist/contracts/party_profile/deps/language_code/language_code.js +8 -0
  77. package/dist/contracts/party_profile/deps/language_code/language_code.js.map +1 -0
  78. package/dist/contracts/party_profile/party_profile.d.ts +133 -0
  79. package/dist/contracts/party_profile/party_profile.d.ts.map +1 -0
  80. package/dist/contracts/party_profile/party_profile.js +153 -0
  81. package/dist/contracts/party_profile/party_profile.js.map +1 -0
  82. package/dist/contracts/party_roles/party_roles.d.ts +201 -0
  83. package/dist/contracts/party_roles/party_roles.d.ts.map +1 -0
  84. package/dist/contracts/party_roles/party_roles.js +237 -0
  85. package/dist/contracts/party_roles/party_roles.js.map +1 -0
  86. package/dist/contracts/party_social/party_social.d.ts +258 -0
  87. package/dist/contracts/party_social/party_social.d.ts.map +1 -0
  88. package/dist/contracts/party_social/party_social.js +320 -0
  89. package/dist/contracts/party_social/party_social.js.map +1 -0
  90. package/dist/contracts/party_tags/party_tags.d.ts +116 -0
  91. package/dist/contracts/party_tags/party_tags.d.ts.map +1 -0
  92. package/dist/contracts/party_tags/party_tags.js +130 -0
  93. package/dist/contracts/party_tags/party_tags.js.map +1 -0
  94. package/dist/contracts/recording_advisory/recording_advisory.d.ts +194 -0
  95. package/dist/contracts/recording_advisory/recording_advisory.d.ts.map +1 -0
  96. package/dist/contracts/recording_advisory/recording_advisory.js +204 -0
  97. package/dist/contracts/recording_advisory/recording_advisory.js.map +1 -0
  98. package/dist/contracts/recording_credits/deps/miso_credit/credit.d.ts +24 -0
  99. package/dist/contracts/recording_credits/deps/miso_credit/credit.d.ts.map +1 -0
  100. package/dist/contracts/recording_credits/deps/miso_credit/credit.js +23 -0
  101. package/dist/contracts/recording_credits/deps/miso_credit/credit.js.map +1 -0
  102. package/dist/contracts/recording_credits/deps/sui/vec_map.d.ts +37 -0
  103. package/dist/contracts/recording_credits/deps/sui/vec_map.d.ts.map +1 -0
  104. package/dist/contracts/recording_credits/deps/sui/vec_map.js +28 -0
  105. package/dist/contracts/recording_credits/deps/sui/vec_map.js.map +1 -0
  106. package/dist/contracts/recording_credits/deps/sui/vec_set.d.ts +21 -0
  107. package/dist/contracts/recording_credits/deps/sui/vec_set.d.ts.map +1 -0
  108. package/dist/contracts/recording_credits/deps/sui/vec_set.js +20 -0
  109. package/dist/contracts/recording_credits/deps/sui/vec_set.js.map +1 -0
  110. package/dist/contracts/recording_credits/recording_credits.d.ts +2313 -0
  111. package/dist/contracts/recording_credits/recording_credits.d.ts.map +1 -0
  112. package/dist/contracts/recording_credits/recording_credits.js +270 -0
  113. package/dist/contracts/recording_credits/recording_credits.js.map +1 -0
  114. package/dist/contracts/recording_credits/recording_party_role.d.ts +1174 -0
  115. package/dist/contracts/recording_credits/recording_party_role.d.ts.map +1 -0
  116. package/dist/contracts/recording_credits/recording_party_role.js +692 -0
  117. package/dist/contracts/recording_credits/recording_party_role.js.map +1 -0
  118. package/dist/contracts/recording_language/deps/language_code/language_code.d.ts +6 -0
  119. package/dist/contracts/recording_language/deps/language_code/language_code.d.ts.map +1 -0
  120. package/dist/contracts/recording_language/deps/language_code/language_code.js +8 -0
  121. package/dist/contracts/recording_language/deps/language_code/language_code.js.map +1 -0
  122. package/dist/contracts/recording_language/recording_language.d.ts +152 -0
  123. package/dist/contracts/recording_language/recording_language.d.ts.map +1 -0
  124. package/dist/contracts/recording_language/recording_language.js +149 -0
  125. package/dist/contracts/recording_language/recording_language.js.map +1 -0
  126. package/dist/contracts/recording_master_reference/deps/ori/walrus_data.d.ts +52 -0
  127. package/dist/contracts/recording_master_reference/deps/ori/walrus_data.d.ts.map +1 -0
  128. package/dist/contracts/recording_master_reference/deps/ori/walrus_data.js +37 -0
  129. package/dist/contracts/recording_master_reference/deps/ori/walrus_data.js.map +1 -0
  130. package/dist/contracts/recording_master_reference/recording_master_reference.d.ts +131 -0
  131. package/dist/contracts/recording_master_reference/recording_master_reference.d.ts.map +1 -0
  132. package/dist/contracts/recording_master_reference/recording_master_reference.js +121 -0
  133. package/dist/contracts/recording_master_reference/recording_master_reference.js.map +1 -0
  134. package/dist/contracts/recording_preview/deps/ori/walrus_data.d.ts +52 -0
  135. package/dist/contracts/recording_preview/deps/ori/walrus_data.d.ts.map +1 -0
  136. package/dist/contracts/recording_preview/deps/ori/walrus_data.js +37 -0
  137. package/dist/contracts/recording_preview/deps/ori/walrus_data.js.map +1 -0
  138. package/dist/contracts/recording_preview/recording_preview.d.ts +104 -0
  139. package/dist/contracts/recording_preview/recording_preview.d.ts.map +1 -0
  140. package/dist/contracts/recording_preview/recording_preview.js +94 -0
  141. package/dist/contracts/recording_preview/recording_preview.js.map +1 -0
  142. package/dist/contracts/release_cover_art/deps/0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78/walrus_data.d.ts +52 -0
  143. package/dist/contracts/release_cover_art/deps/0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78/walrus_data.d.ts.map +1 -0
  144. package/dist/contracts/release_cover_art/deps/0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78/walrus_data.js +37 -0
  145. package/dist/contracts/release_cover_art/deps/0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78/walrus_data.js.map +1 -0
  146. package/dist/contracts/release_cover_art/deps/cover_art/cover_art.d.ts +46 -0
  147. package/dist/contracts/release_cover_art/deps/cover_art/cover_art.d.ts.map +1 -0
  148. package/dist/contracts/release_cover_art/deps/cover_art/cover_art.js +21 -0
  149. package/dist/contracts/release_cover_art/deps/cover_art/cover_art.js.map +1 -0
  150. package/dist/contracts/release_cover_art/deps/per_track/per_track.d.ts +33 -0
  151. package/dist/contracts/release_cover_art/deps/per_track/per_track.d.ts.map +1 -0
  152. package/dist/contracts/release_cover_art/deps/per_track/per_track.js +32 -0
  153. package/dist/contracts/release_cover_art/deps/per_track/per_track.js.map +1 -0
  154. package/dist/contracts/release_cover_art/release_cover_art.d.ts +300 -0
  155. package/dist/contracts/release_cover_art/release_cover_art.d.ts.map +1 -0
  156. package/dist/contracts/release_cover_art/release_cover_art.js +168 -0
  157. package/dist/contracts/release_cover_art/release_cover_art.js.map +1 -0
  158. package/dist/contracts/release_credits/deps/miso_credit/credit.d.ts +24 -0
  159. package/dist/contracts/release_credits/deps/miso_credit/credit.d.ts.map +1 -0
  160. package/dist/contracts/release_credits/deps/miso_credit/credit.js +23 -0
  161. package/dist/contracts/release_credits/deps/miso_credit/credit.js.map +1 -0
  162. package/dist/contracts/release_credits/deps/sui/vec_map.d.ts +37 -0
  163. package/dist/contracts/release_credits/deps/sui/vec_map.d.ts.map +1 -0
  164. package/dist/contracts/release_credits/deps/sui/vec_map.js +28 -0
  165. package/dist/contracts/release_credits/deps/sui/vec_map.js.map +1 -0
  166. package/dist/contracts/release_credits/release_credits.d.ts +142 -0
  167. package/dist/contracts/release_credits/release_credits.d.ts.map +1 -0
  168. package/dist/contracts/release_credits/release_credits.js +108 -0
  169. package/dist/contracts/release_credits/release_credits.js.map +1 -0
  170. package/dist/contracts/release_credits/release_party_role.d.ts +58 -0
  171. package/dist/contracts/release_credits/release_party_role.d.ts.map +1 -0
  172. package/dist/contracts/release_credits/release_party_role.js +66 -0
  173. package/dist/contracts/release_credits/release_party_role.js.map +1 -0
  174. package/dist/contracts/release_description/release_description.d.ts +112 -0
  175. package/dist/contracts/release_description/release_description.d.ts.map +1 -0
  176. package/dist/contracts/release_description/release_description.js +123 -0
  177. package/dist/contracts/release_description/release_description.js.map +1 -0
  178. package/dist/contracts/release_dsp_link/release_dsp_link.d.ts +644 -0
  179. package/dist/contracts/release_dsp_link/release_dsp_link.d.ts.map +1 -0
  180. package/dist/contracts/release_dsp_link/release_dsp_link.js +556 -0
  181. package/dist/contracts/release_dsp_link/release_dsp_link.js.map +1 -0
  182. package/dist/contracts/release_genre/deps/per_track/per_track.d.ts +33 -0
  183. package/dist/contracts/release_genre/deps/per_track/per_track.d.ts.map +1 -0
  184. package/dist/contracts/release_genre/deps/per_track/per_track.js +32 -0
  185. package/dist/contracts/release_genre/deps/per_track/per_track.js.map +1 -0
  186. package/dist/contracts/release_genre/release_genre.d.ts +193 -0
  187. package/dist/contracts/release_genre/release_genre.d.ts.map +1 -0
  188. package/dist/contracts/release_genre/release_genre.js +207 -0
  189. package/dist/contracts/release_genre/release_genre.js.map +1 -0
  190. package/dist/contracts/release_kind/release_kind.d.ts +98 -0
  191. package/dist/contracts/release_kind/release_kind.d.ts.map +1 -0
  192. package/dist/contracts/release_kind/release_kind.js +109 -0
  193. package/dist/contracts/release_kind/release_kind.js.map +1 -0
  194. package/dist/contracts/routed_stake/deps/royalty_pool/stake.d.ts +54 -0
  195. package/dist/contracts/routed_stake/deps/royalty_pool/stake.d.ts.map +1 -0
  196. package/dist/contracts/routed_stake/deps/royalty_pool/stake.js +37 -0
  197. package/dist/contracts/routed_stake/deps/royalty_pool/stake.js.map +1 -0
  198. package/dist/contracts/routed_stake/deps/std/type_name.d.ts +18 -0
  199. package/dist/contracts/routed_stake/deps/std/type_name.d.ts.map +1 -0
  200. package/dist/contracts/routed_stake/deps/std/type_name.js +20 -0
  201. package/dist/contracts/routed_stake/deps/std/type_name.js.map +1 -0
  202. package/dist/contracts/routed_stake/deps/sui/balance.d.ts +13 -0
  203. package/dist/contracts/routed_stake/deps/sui/balance.d.ts.map +1 -0
  204. package/dist/contracts/routed_stake/deps/sui/balance.js +15 -0
  205. package/dist/contracts/routed_stake/deps/sui/balance.js.map +1 -0
  206. package/dist/contracts/routed_stake/deps/sui/vec_map.d.ts +37 -0
  207. package/dist/contracts/routed_stake/deps/sui/vec_map.d.ts.map +1 -0
  208. package/dist/contracts/routed_stake/deps/sui/vec_map.js +28 -0
  209. package/dist/contracts/routed_stake/deps/sui/vec_map.js.map +1 -0
  210. package/dist/contracts/routed_stake/routed_stake.d.ts +342 -0
  211. package/dist/contracts/routed_stake/routed_stake.d.ts.map +1 -0
  212. package/dist/contracts/routed_stake/routed_stake.js +297 -0
  213. package/dist/contracts/routed_stake/routed_stake.js.map +1 -0
  214. package/dist/contracts/royalty_pool/deps/std/type_name.d.ts +18 -0
  215. package/dist/contracts/royalty_pool/deps/std/type_name.d.ts.map +1 -0
  216. package/dist/contracts/royalty_pool/deps/std/type_name.js +20 -0
  217. package/dist/contracts/royalty_pool/deps/std/type_name.js.map +1 -0
  218. package/dist/contracts/royalty_pool/deps/sui/balance.d.ts +13 -0
  219. package/dist/contracts/royalty_pool/deps/sui/balance.d.ts.map +1 -0
  220. package/dist/contracts/royalty_pool/deps/sui/balance.js +15 -0
  221. package/dist/contracts/royalty_pool/deps/sui/balance.js.map +1 -0
  222. package/dist/contracts/royalty_pool/deps/sui/vec_map.d.ts +37 -0
  223. package/dist/contracts/royalty_pool/deps/sui/vec_map.d.ts.map +1 -0
  224. package/dist/contracts/royalty_pool/deps/sui/vec_map.js +28 -0
  225. package/dist/contracts/royalty_pool/deps/sui/vec_map.js.map +1 -0
  226. package/dist/contracts/royalty_pool/pool.d.ts +380 -0
  227. package/dist/contracts/royalty_pool/pool.d.ts.map +1 -0
  228. package/dist/contracts/royalty_pool/pool.js +373 -0
  229. package/dist/contracts/royalty_pool/pool.js.map +1 -0
  230. package/dist/contracts/royalty_pool/stake.d.ts +189 -0
  231. package/dist/contracts/royalty_pool/stake.d.ts.map +1 -0
  232. package/dist/contracts/royalty_pool/stake.js +183 -0
  233. package/dist/contracts/royalty_pool/stake.js.map +1 -0
  234. package/dist/contracts.d.ts +48 -3
  235. package/dist/contracts.d.ts.map +1 -1
  236. package/dist/contracts.js +54 -8
  237. package/dist/contracts.js.map +1 -1
  238. package/dist/deployments.d.ts +46 -12
  239. package/dist/deployments.d.ts.map +1 -1
  240. package/dist/deployments.js +132 -11
  241. package/dist/deployments.js.map +1 -1
  242. package/dist/events.d.ts +1067 -0
  243. package/dist/events.d.ts.map +1 -0
  244. package/dist/events.js +120 -0
  245. package/dist/events.js.map +1 -0
  246. package/dist/execute.d.ts.map +1 -1
  247. package/dist/execute.js +0 -4
  248. package/dist/execute.js.map +1 -1
  249. package/dist/index.d.ts +5 -0
  250. package/dist/index.d.ts.map +1 -1
  251. package/dist/index.js +7 -3
  252. package/dist/index.js.map +1 -1
  253. package/dist/internal.d.ts.map +1 -1
  254. package/dist/internal.js.map +1 -1
  255. package/dist/numeric.d.ts +5 -0
  256. package/dist/numeric.d.ts.map +1 -0
  257. package/dist/numeric.js +21 -0
  258. package/dist/numeric.js.map +1 -0
  259. package/dist/packages.d.ts +194 -0
  260. package/dist/packages.d.ts.map +1 -0
  261. package/dist/packages.js +214 -0
  262. package/dist/packages.js.map +1 -0
  263. package/dist/parsers.d.ts +5 -1
  264. package/dist/parsers.d.ts.map +1 -1
  265. package/dist/parsers.js +18 -2
  266. package/dist/parsers.js.map +1 -1
  267. package/dist/party/client.d.ts +233 -0
  268. package/dist/party/client.d.ts.map +1 -0
  269. package/dist/party/client.js +222 -0
  270. package/dist/party/client.js.map +1 -0
  271. package/dist/party/extensions/ctas.d.ts +19 -0
  272. package/dist/party/extensions/ctas.d.ts.map +1 -0
  273. package/dist/party/extensions/ctas.js +25 -0
  274. package/dist/party/extensions/ctas.js.map +1 -0
  275. package/dist/party/extensions/genres.d.ts +27 -0
  276. package/dist/party/extensions/genres.d.ts.map +1 -0
  277. package/dist/party/extensions/genres.js +31 -0
  278. package/dist/party/extensions/genres.js.map +1 -0
  279. package/dist/party/extensions/links.d.ts +65 -0
  280. package/dist/party/extensions/links.d.ts.map +1 -0
  281. package/dist/party/extensions/links.js +117 -0
  282. package/dist/party/extensions/links.js.map +1 -0
  283. package/dist/party/extensions/media.d.ts +36 -0
  284. package/dist/party/extensions/media.d.ts.map +1 -0
  285. package/dist/party/extensions/media.js +45 -0
  286. package/dist/party/extensions/media.js.map +1 -0
  287. package/dist/party/extensions/profile.d.ts +24 -0
  288. package/dist/party/extensions/profile.d.ts.map +1 -0
  289. package/dist/party/extensions/profile.js +48 -0
  290. package/dist/party/extensions/profile.js.map +1 -0
  291. package/dist/party/extensions/roles.d.ts +37 -0
  292. package/dist/party/extensions/roles.d.ts.map +1 -0
  293. package/dist/party/extensions/roles.js +46 -0
  294. package/dist/party/extensions/roles.js.map +1 -0
  295. package/dist/party/extensions/tags.d.ts +25 -0
  296. package/dist/party/extensions/tags.d.ts.map +1 -0
  297. package/dist/party/extensions/tags.js +25 -0
  298. package/dist/party/extensions/tags.js.map +1 -0
  299. package/dist/party/index.d.ts +12 -0
  300. package/dist/party/index.d.ts.map +1 -0
  301. package/dist/party/index.js +14 -0
  302. package/dist/party/index.js.map +1 -0
  303. package/dist/party/internal.d.ts +15 -0
  304. package/dist/party/internal.d.ts.map +1 -0
  305. package/dist/party/internal.js +103 -0
  306. package/dist/party/internal.js.map +1 -0
  307. package/dist/party/queries.d.ts +38 -0
  308. package/dist/party/queries.d.ts.map +1 -0
  309. package/dist/party/queries.js +232 -0
  310. package/dist/party/queries.js.map +1 -0
  311. package/dist/party/transactions.d.ts +74 -0
  312. package/dist/party/transactions.d.ts.map +1 -0
  313. package/dist/party/transactions.js +85 -0
  314. package/dist/party/transactions.js.map +1 -0
  315. package/dist/party/types.d.ts +54 -0
  316. package/dist/party/types.d.ts.map +1 -0
  317. package/dist/party/types.js +4 -0
  318. package/dist/party/types.js.map +1 -0
  319. package/dist/queries.d.ts +92 -0
  320. package/dist/queries.d.ts.map +1 -1
  321. package/dist/queries.js +132 -23
  322. package/dist/queries.js.map +1 -1
  323. package/dist/transactions.d.ts +96 -3
  324. package/dist/transactions.d.ts.map +1 -1
  325. package/dist/transactions.js +123 -11
  326. package/dist/transactions.js.map +1 -1
  327. package/dist/types.d.ts +18 -0
  328. package/dist/types.d.ts.map +1 -1
  329. package/dist/view.d.ts +6 -5
  330. package/dist/view.d.ts.map +1 -1
  331. package/dist/view.js +8 -2
  332. package/dist/view.js.map +1 -1
  333. package/package.json +18 -4
  334. package/src/client.ts +73 -23
  335. package/src/contracts/composition_credits/composition_credits.ts +169 -0
  336. package/src/contracts/composition_credits/composition_party_role.ts +189 -0
  337. package/src/contracts/composition_credits/deps/miso_credit/credit.ts +27 -0
  338. package/src/contracts/composition_credits/deps/sui/vec_map.ts +33 -0
  339. package/src/contracts/miso/composition.ts +8 -35
  340. package/src/contracts/miso/deps/bps/bps.ts +3 -3
  341. package/src/contracts/miso/recording.ts +10 -38
  342. package/src/contracts/miso/release.ts +99 -86
  343. package/src/contracts/miso/track.ts +5 -5
  344. package/src/contracts/miso_party/deps/sui/vec_set.ts +21 -0
  345. package/src/contracts/miso_party/party.ts +797 -0
  346. package/src/contracts/party_cta/party_cta.ts +212 -0
  347. package/src/contracts/party_genre/party_genre.ts +199 -0
  348. package/src/contracts/party_media/party_media.ts +141 -0
  349. package/src/contracts/party_music/party_music.ts +405 -0
  350. package/src/contracts/party_platform_link/party_platform_link.ts +148 -0
  351. package/src/contracts/party_pro_link/party_pro_link.ts +453 -0
  352. package/src/contracts/party_profile/deps/country_code/country_code.ts +19 -0
  353. package/src/contracts/party_profile/deps/language_code/language_code.ts +7 -0
  354. package/src/contracts/party_profile/party_profile.ts +239 -0
  355. package/src/contracts/party_roles/party_roles.ts +363 -0
  356. package/src/contracts/party_social/party_social.ts +502 -0
  357. package/src/contracts/party_tags/party_tags.ts +198 -0
  358. package/src/contracts/recording_advisory/recording_advisory.ts +315 -0
  359. package/src/contracts/recording_credits/deps/miso_credit/credit.ts +27 -0
  360. package/src/contracts/recording_credits/deps/sui/vec_map.ts +33 -0
  361. package/src/contracts/recording_credits/deps/sui/vec_set.ts +21 -0
  362. package/src/contracts/recording_credits/recording_credits.ts +458 -0
  363. package/src/contracts/recording_credits/recording_party_role.ts +1041 -0
  364. package/src/contracts/recording_language/deps/language_code/language_code.ts +7 -0
  365. package/src/contracts/recording_language/recording_language.ts +237 -0
  366. package/src/contracts/recording_master_reference/deps/ori/walrus_data.ts +36 -0
  367. package/src/contracts/recording_master_reference/recording_master_reference.ts +181 -0
  368. package/src/contracts/recording_preview/deps/ori/walrus_data.ts +36 -0
  369. package/src/contracts/recording_preview/recording_preview.ts +154 -0
  370. package/src/contracts/release_cover_art/deps/0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78/walrus_data.ts +36 -0
  371. package/src/contracts/release_cover_art/deps/cover_art/cover_art.ts +23 -0
  372. package/src/contracts/release_cover_art/deps/per_track/per_track.ts +36 -0
  373. package/src/contracts/release_cover_art/release_cover_art.ts +251 -0
  374. package/src/contracts/release_credits/deps/miso_credit/credit.ts +27 -0
  375. package/src/contracts/release_credits/deps/sui/vec_map.ts +33 -0
  376. package/src/contracts/release_credits/release_credits.ts +156 -0
  377. package/src/contracts/release_credits/release_party_role.ts +87 -0
  378. package/src/contracts/release_description/release_description.ts +167 -0
  379. package/src/contracts/release_dsp_link/release_dsp_link.ts +813 -0
  380. package/src/contracts/release_genre/deps/per_track/per_track.ts +36 -0
  381. package/src/contracts/release_genre/release_genre.ts +314 -0
  382. package/src/contracts/release_kind/release_kind.ts +153 -0
  383. package/src/contracts/routed_stake/deps/royalty_pool/stake.ts +39 -0
  384. package/src/contracts/routed_stake/deps/std/type_name.ts +22 -0
  385. package/src/contracts/routed_stake/deps/sui/balance.ts +17 -0
  386. package/src/contracts/routed_stake/deps/sui/vec_map.ts +33 -0
  387. package/src/contracts/routed_stake/routed_stake.ts +481 -0
  388. package/src/contracts/royalty_pool/deps/std/type_name.ts +22 -0
  389. package/src/contracts/royalty_pool/deps/sui/balance.ts +17 -0
  390. package/src/contracts/royalty_pool/deps/sui/vec_map.ts +33 -0
  391. package/src/contracts/royalty_pool/pool.ts +586 -0
  392. package/src/contracts/royalty_pool/stake.ts +291 -0
  393. package/src/contracts.ts +72 -6
  394. package/src/deployments.ts +175 -22
  395. package/src/events.ts +125 -0
  396. package/src/execute.ts +0 -4
  397. package/src/index.ts +8 -3
  398. package/src/internal.ts +0 -4
  399. package/src/numeric.ts +25 -0
  400. package/src/packages.ts +283 -0
  401. package/src/parsers.ts +32 -2
  402. package/src/party/client.ts +283 -0
  403. package/src/party/extensions/ctas.ts +46 -0
  404. package/src/party/extensions/genres.ts +62 -0
  405. package/src/party/extensions/links.ts +185 -0
  406. package/src/party/extensions/media.ts +72 -0
  407. package/src/party/extensions/profile.ts +81 -0
  408. package/src/party/extensions/roles.ts +94 -0
  409. package/src/party/extensions/tags.ts +54 -0
  410. package/src/party/index.ts +14 -0
  411. package/src/party/internal.ts +119 -0
  412. package/src/party/queries.ts +303 -0
  413. package/src/party/transactions.ts +167 -0
  414. package/src/party/types.ts +95 -0
  415. package/src/queries.ts +227 -25
  416. package/src/transactions.ts +254 -12
  417. package/src/types.ts +20 -0
  418. package/src/view.ts +12 -6
@@ -0,0 +1,291 @@
1
+ /**************************************************************
2
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
3
+ **************************************************************/
4
+
5
+
6
+ /**
7
+ * A position holding share tokens registered against a `RoyaltyPool`.
8
+ *
9
+ * Stakes are owned objects with an immutable balance — to increase a holder's
10
+ * total staked amount, mint additional Stake objects rather than modify an
11
+ * existing one. This mirrors Sui's native staking model.
12
+ *
13
+ * Each stake tracks the royalty pools it is currently registered with via an
14
+ * inline `VecMap<TypeName, Registration>`, keyed by the pool's `Currency`
15
+ * `TypeName`. The stake cannot be destroyed while any registrations remain. Pool
16
+ * registrations are mutated by `royalty_pool::pool` through the package-private
17
+ * accessors below.
18
+ */
19
+
20
+ import { MoveStruct, normalizeMoveArguments, type RawTransactionArgument } from '../utils/index.ts';
21
+ import { bcs } from '@mysten/sui/bcs';
22
+ import { type Transaction, type TransactionArgument } from '@mysten/sui/transactions';
23
+ import * as balance_1 from './deps/sui/balance.ts';
24
+ import * as vec_map from './deps/sui/vec_map.ts';
25
+ import * as type_name from './deps/std/type_name.ts';
26
+ const $moduleName = '@local-pkg/royalty_pool::stake';
27
+ export const Registration = new MoveStruct({ name: `${$moduleName}::Registration`, fields: {
28
+ pool_id: bcs.Address,
29
+ last_claim_index: bcs.u256()
30
+ } });
31
+ export const Stake = new MoveStruct({ name: `${$moduleName}::Stake<phantom Share>`, fields: {
32
+ id: bcs.Address,
33
+ /** The staked balance. Immutable after creation. */
34
+ balance: balance_1.Balance,
35
+ /**
36
+ * Active royalty-pool registrations, keyed by `Currency` `TypeName`. Must be empty
37
+ * to destroy.
38
+ */
39
+ registrations: vec_map.VecMap(type_name.TypeName, Registration)
40
+ } });
41
+ export const StakeCreatedEvent = new MoveStruct({ name: `${$moduleName}::StakeCreatedEvent<phantom Share>`, fields: {
42
+ stake_id: bcs.Address,
43
+ amount: bcs.u64()
44
+ } });
45
+ export const StakeDestroyedEvent = new MoveStruct({ name: `${$moduleName}::StakeDestroyedEvent<phantom Share>`, fields: {
46
+ stake_id: bcs.Address,
47
+ amount: bcs.u64()
48
+ } });
49
+ export interface NewArguments {
50
+ balance: TransactionArgument;
51
+ }
52
+ export interface NewOptions {
53
+ package?: string;
54
+ arguments: NewArguments | [
55
+ balance: TransactionArgument
56
+ ];
57
+ typeArguments: [
58
+ string
59
+ ];
60
+ }
61
+ /**
62
+ * Create a new stake with the given balance.
63
+ *
64
+ * Aborts if `balance` is zero.
65
+ */
66
+ export function _new(options: NewOptions) {
67
+ const packageAddress = options.package ?? '@local-pkg/royalty_pool';
68
+ const argumentsTypes = [
69
+ null
70
+ ] satisfies (string | null)[];
71
+ const parameterNames = ["balance"];
72
+ return (tx: Transaction) => tx.moveCall({
73
+ package: packageAddress,
74
+ module: 'stake',
75
+ function: 'new',
76
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
77
+ typeArguments: options.typeArguments
78
+ });
79
+ }
80
+ export interface DestroyArguments {
81
+ stake: RawTransactionArgument<string>;
82
+ }
83
+ export interface DestroyOptions {
84
+ package?: string;
85
+ arguments: DestroyArguments | [
86
+ stake: RawTransactionArgument<string>
87
+ ];
88
+ typeArguments: [
89
+ string
90
+ ];
91
+ }
92
+ /**
93
+ * Destroy a stake and reclaim its balance.
94
+ *
95
+ * Aborts if the stake is still registered with any royalty pools.
96
+ */
97
+ export function destroy(options: DestroyOptions) {
98
+ const packageAddress = options.package ?? '@local-pkg/royalty_pool';
99
+ const argumentsTypes = [
100
+ null
101
+ ] satisfies (string | null)[];
102
+ const parameterNames = ["stake"];
103
+ return (tx: Transaction) => tx.moveCall({
104
+ package: packageAddress,
105
+ module: 'stake',
106
+ function: 'destroy',
107
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
108
+ typeArguments: options.typeArguments
109
+ });
110
+ }
111
+ export interface BalanceArguments {
112
+ self: RawTransactionArgument<string>;
113
+ }
114
+ export interface BalanceOptions {
115
+ package?: string;
116
+ arguments: BalanceArguments | [
117
+ self: RawTransactionArgument<string>
118
+ ];
119
+ typeArguments: [
120
+ string
121
+ ];
122
+ }
123
+ export function balance(options: BalanceOptions) {
124
+ const packageAddress = options.package ?? '@local-pkg/royalty_pool';
125
+ const argumentsTypes = [
126
+ null
127
+ ] satisfies (string | null)[];
128
+ const parameterNames = ["self"];
129
+ return (tx: Transaction) => tx.moveCall({
130
+ package: packageAddress,
131
+ module: 'stake',
132
+ function: 'balance',
133
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
134
+ typeArguments: options.typeArguments
135
+ });
136
+ }
137
+ export interface ValueArguments {
138
+ self: RawTransactionArgument<string>;
139
+ }
140
+ export interface ValueOptions {
141
+ package?: string;
142
+ arguments: ValueArguments | [
143
+ self: RawTransactionArgument<string>
144
+ ];
145
+ typeArguments: [
146
+ string
147
+ ];
148
+ }
149
+ export function value(options: ValueOptions) {
150
+ const packageAddress = options.package ?? '@local-pkg/royalty_pool';
151
+ const argumentsTypes = [
152
+ null
153
+ ] satisfies (string | null)[];
154
+ const parameterNames = ["self"];
155
+ return (tx: Transaction) => tx.moveCall({
156
+ package: packageAddress,
157
+ module: 'stake',
158
+ function: 'value',
159
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
160
+ typeArguments: options.typeArguments
161
+ });
162
+ }
163
+ export interface RegistrationCountArguments {
164
+ self: RawTransactionArgument<string>;
165
+ }
166
+ export interface RegistrationCountOptions {
167
+ package?: string;
168
+ arguments: RegistrationCountArguments | [
169
+ self: RawTransactionArgument<string>
170
+ ];
171
+ typeArguments: [
172
+ string
173
+ ];
174
+ }
175
+ /** Number of royalty pools this stake is currently registered with. */
176
+ export function registrationCount(options: RegistrationCountOptions) {
177
+ const packageAddress = options.package ?? '@local-pkg/royalty_pool';
178
+ const argumentsTypes = [
179
+ null
180
+ ] satisfies (string | null)[];
181
+ const parameterNames = ["self"];
182
+ return (tx: Transaction) => tx.moveCall({
183
+ package: packageAddress,
184
+ module: 'stake',
185
+ function: 'registration_count',
186
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
187
+ typeArguments: options.typeArguments
188
+ });
189
+ }
190
+ export interface HasRegistrationArguments {
191
+ self: RawTransactionArgument<string>;
192
+ currency: TransactionArgument;
193
+ }
194
+ export interface HasRegistrationOptions {
195
+ package?: string;
196
+ arguments: HasRegistrationArguments | [
197
+ self: RawTransactionArgument<string>,
198
+ currency: TransactionArgument
199
+ ];
200
+ typeArguments: [
201
+ string
202
+ ];
203
+ }
204
+ export function hasRegistration(options: HasRegistrationOptions) {
205
+ const packageAddress = options.package ?? '@local-pkg/royalty_pool';
206
+ const argumentsTypes = [
207
+ null,
208
+ null
209
+ ] satisfies (string | null)[];
210
+ const parameterNames = ["self", "currency"];
211
+ return (tx: Transaction) => tx.moveCall({
212
+ package: packageAddress,
213
+ module: 'stake',
214
+ function: 'has_registration',
215
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
216
+ typeArguments: options.typeArguments
217
+ });
218
+ }
219
+ export interface GetRegistrationArguments {
220
+ self: RawTransactionArgument<string>;
221
+ currency: TransactionArgument;
222
+ }
223
+ export interface GetRegistrationOptions {
224
+ package?: string;
225
+ arguments: GetRegistrationArguments | [
226
+ self: RawTransactionArgument<string>,
227
+ currency: TransactionArgument
228
+ ];
229
+ typeArguments: [
230
+ string
231
+ ];
232
+ }
233
+ export function getRegistration(options: GetRegistrationOptions) {
234
+ const packageAddress = options.package ?? '@local-pkg/royalty_pool';
235
+ const argumentsTypes = [
236
+ null,
237
+ null
238
+ ] satisfies (string | null)[];
239
+ const parameterNames = ["self", "currency"];
240
+ return (tx: Transaction) => tx.moveCall({
241
+ package: packageAddress,
242
+ module: 'stake',
243
+ function: 'get_registration',
244
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
245
+ typeArguments: options.typeArguments
246
+ });
247
+ }
248
+ export interface RegistrationPoolIdArguments {
249
+ r: TransactionArgument;
250
+ }
251
+ export interface RegistrationPoolIdOptions {
252
+ package?: string;
253
+ arguments: RegistrationPoolIdArguments | [
254
+ r: TransactionArgument
255
+ ];
256
+ }
257
+ export function registrationPoolId(options: RegistrationPoolIdOptions) {
258
+ const packageAddress = options.package ?? '@local-pkg/royalty_pool';
259
+ const argumentsTypes = [
260
+ null
261
+ ] satisfies (string | null)[];
262
+ const parameterNames = ["r"];
263
+ return (tx: Transaction) => tx.moveCall({
264
+ package: packageAddress,
265
+ module: 'stake',
266
+ function: 'registration_pool_id',
267
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
268
+ });
269
+ }
270
+ export interface RegistrationLastClaimIndexArguments {
271
+ r: TransactionArgument;
272
+ }
273
+ export interface RegistrationLastClaimIndexOptions {
274
+ package?: string;
275
+ arguments: RegistrationLastClaimIndexArguments | [
276
+ r: TransactionArgument
277
+ ];
278
+ }
279
+ export function registrationLastClaimIndex(options: RegistrationLastClaimIndexOptions) {
280
+ const packageAddress = options.package ?? '@local-pkg/royalty_pool';
281
+ const argumentsTypes = [
282
+ null
283
+ ] satisfies (string | null)[];
284
+ const parameterNames = ["r"];
285
+ return (tx: Transaction) => tx.moveCall({
286
+ package: packageAddress,
287
+ module: 'stake',
288
+ function: 'registration_last_claim_index',
289
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
290
+ });
291
+ }
package/src/contracts.ts CHANGED
@@ -4,10 +4,76 @@
4
4
  // Barrel for the codegen-generated, ABI-bound bindings (BCS structs + type-safe
5
5
  // Move calls). Re-exported from the package root as the `contracts` namespace.
6
6
 
7
- // Core miso protocol ONLY the `miso` Move package. Bindings for the first-party
8
- // EXTENSION packages (credits, royalty pools, cover art) generate into
9
- // `@misofm/sdk` instead, and are re-exported from its own `contracts` namespace.
10
- export * as composition from "./contracts/miso/composition.ts";
11
- export * as recording from "./contracts/miso/recording.ts";
12
- export * as release from "./contracts/miso/release.ts";
7
+ // Every package here is generated from the current first-party Move source. The
8
+ // generated default `@local-pkg/*` identities are source labels only: callers
9
+ // must inject exact published addresses through `MisoDeployment` before building
10
+ // a transaction. Do not use a historic package ID as a substitute for a fresh
11
+ // deployment.
12
+
13
+ type PublicModule<M extends object, K extends readonly (keyof M)[]> = Omit<M, K[number]>;
14
+ function withoutUnsafeCalls<M extends object, K extends readonly (keyof M)[]>(
15
+ module: M,
16
+ keys: K,
17
+ ): PublicModule<M, K> {
18
+ return Object.fromEntries(Object.entries(module).filter(([key]) => !keys.includes(key as keyof M))) as PublicModule<M, K>;
19
+ }
20
+
21
+ import * as rawComposition from "./contracts/miso/composition.ts";
22
+ import * as rawRecording from "./contracts/miso/recording.ts";
23
+ import * as rawRelease from "./contracts/miso/release.ts";
24
+ import * as rawCompositionCredits from "./contracts/composition_credits/composition_credits.ts";
25
+ import * as rawRecordingCredits from "./contracts/recording_credits/recording_credits.ts";
26
+ import * as rawRecordingMasterReference from "./contracts/recording_master_reference/recording_master_reference.ts";
27
+ import * as rawRecordingPreview from "./contracts/recording_preview/recording_preview.ts";
28
+ import * as rawReleaseCoverArt from "./contracts/release_cover_art/release_cover_art.ts";
29
+ import * as rawReleaseCredits from "./contracts/release_credits/release_credits.ts";
30
+ import * as rawReleaseDescription from "./contracts/release_description/release_description.ts";
31
+ import * as rawRoyaltyPool from "./contracts/royalty_pool/pool.ts";
32
+ import * as rawRoyaltyStake from "./contracts/royalty_pool/stake.ts";
33
+ import * as rawRoutedStake from "./contracts/routed_stake/routed_stake.ts";
34
+ import * as rawParty from "./contracts/miso_party/party.ts";
35
+ import * as rawPartyProfile from "./contracts/party_profile/party_profile.ts";
36
+
37
+ // Protocol core (BCS codecs remain available; PTB-inaccessible references do not).
38
+ export const composition = withoutUnsafeCalls(rawComposition, ["title", "uid", "uidMut"] as const);
39
+ export const recording = withoutUnsafeCalls(rawRecording, ["uid", "uidMut"] as const);
40
+ export const release = withoutUnsafeCalls(rawRelease, ["title", "tracks", "uid", "uidMut"] as const);
13
41
  export * as track from "./contracts/miso/track.ts";
42
+
43
+ // Protocol extensions.
44
+ export const compositionCredits = withoutUnsafeCalls(rawCompositionCredits, ["credits"] as const);
45
+ export * as compositionPartyRole from "./contracts/composition_credits/composition_party_role.ts";
46
+ export * as recordingAdvisory from "./contracts/recording_advisory/recording_advisory.ts";
47
+ export const recordingCredits = withoutUnsafeCalls(rawRecordingCredits, ["credits", "primaryArtistIds", "featuredArtistIds"] as const);
48
+ export * as recordingPartyRole from "./contracts/recording_credits/recording_party_role.ts";
49
+ export * as recordingLanguage from "./contracts/recording_language/recording_language.ts";
50
+ export const recordingMasterReference = withoutUnsafeCalls(rawRecordingMasterReference, ["masterReference"] as const);
51
+ export const recordingPreview = withoutUnsafeCalls(rawRecordingPreview, ["preview"] as const);
52
+ export const releaseCoverArt = withoutUnsafeCalls(rawReleaseCoverArt, ["cover"] as const);
53
+ export const releaseCredits = withoutUnsafeCalls(rawReleaseCredits, ["credits"] as const);
54
+ export * as releasePartyRole from "./contracts/release_credits/release_party_role.ts";
55
+ export const releaseDescription = withoutUnsafeCalls(rawReleaseDescription, ["description"] as const);
56
+ export * as releaseDspLink from "./contracts/release_dsp_link/release_dsp_link.ts";
57
+ export * as releaseGenre from "./contracts/release_genre/release_genre.ts";
58
+ export * as releaseKind from "./contracts/release_kind/release_kind.ts";
59
+
60
+ // First-party generic primitives.
61
+ export const royaltyPool = withoutUnsafeCalls(rawRoyaltyPool, ["balance", "_new"] as const);
62
+ export const royaltyStake = withoutUnsafeCalls(rawRoyaltyStake, ["balance", "getRegistration"] as const);
63
+ export const routedStake = withoutUnsafeCalls(
64
+ rawRoutedStake,
65
+ ["stake", "_new", "register", "unregister", "unstake", "restake"] as const,
66
+ );
67
+
68
+ // Party core and extensions.
69
+ export const party = withoutUnsafeCalls(rawParty, ["groupMembers", "uid", "uidMut"] as const);
70
+ export * as partyCta from "./contracts/party_cta/party_cta.ts";
71
+ export * as partyGenre from "./contracts/party_genre/party_genre.ts";
72
+ export * as partyMedia from "./contracts/party_media/party_media.ts";
73
+ export * as partyMusic from "./contracts/party_music/party_music.ts";
74
+ export * as partyPlatformLink from "./contracts/party_platform_link/party_platform_link.ts";
75
+ export * as partyProLink from "./contracts/party_pro_link/party_pro_link.ts";
76
+ export const partyProfile = withoutUnsafeCalls(rawPartyProfile, ["profile"] as const);
77
+ export * as partyRoles from "./contracts/party_roles/party_roles.ts";
78
+ export * as partySocial from "./contracts/party_social/party_social.ts";
79
+ export * as partyTags from "./contracts/party_tags/party_tags.ts";
@@ -1,42 +1,195 @@
1
1
  // Copyright (c) Miso Labs, Inc.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- /** Sui networks with a protocol deployment bundled into this SDK release. */
4
+ import { normalizeSuiAddress } from "@mysten/sui/utils";
5
+
6
+ /** Sui networks for which this SDK may eventually bundle a verified deployment. */
5
7
  export type MisoNetwork = "mainnet" | "testnet";
6
8
 
7
9
  /**
8
- * On-chain identity for one Miso protocol deployment.
10
+ * Every independently published package required by this SDK surface.
11
+ *
12
+ * These names are stable deployment-manifest keys, not Move module names. Their
13
+ * values are never inferred from source labels or a previous publish.
14
+ */
15
+ const CANONICAL_MISO_PACKAGE_NAMES = [
16
+ "miso",
17
+ "compositionCredits",
18
+ "recordingAdvisory",
19
+ "recordingCredits",
20
+ "recordingLanguage",
21
+ "recordingMasterReference",
22
+ "recordingPreview",
23
+ "releaseCoverArt",
24
+ "releaseCredits",
25
+ "releaseDescription",
26
+ "releaseDspLink",
27
+ "releaseGenre",
28
+ "releaseKind",
29
+ "royaltyPool",
30
+ "routedStake",
31
+ "misoParty",
32
+ "partyCta",
33
+ "partyGenre",
34
+ "partyMedia",
35
+ "partyMusic",
36
+ "partyPlatformLink",
37
+ "partyProLink",
38
+ "partyProfile",
39
+ "partyRoles",
40
+ "partySocial",
41
+ "partyTags",
42
+ "countryCode",
43
+ "languageCode",
44
+ "genre",
45
+ ] as const;
46
+
47
+ /** Public immutable copy; validation always uses the private canonical tuple. */
48
+ export const MISO_PACKAGE_NAMES = Object.freeze([
49
+ ...CANONICAL_MISO_PACKAGE_NAMES,
50
+ ]) as readonly [...typeof CANONICAL_MISO_PACKAGE_NAMES];
51
+
52
+ export type MisoPackageName = (typeof CANONICAL_MISO_PACKAGE_NAMES)[number];
53
+
54
+ /**
55
+ * Exact package addresses from one compatible publish set.
9
56
  *
10
- * Package deployments are immutable. A new publish is represented by a new SDK
11
- * release with updated values here, keeping the ABI bindings and addresses in
12
- * the same versioned artifact.
57
+ * A complete manifest is intentional: a caller cannot accidentally combine
58
+ * generated bindings for a fresh ABI with stale package IDs. Fill this only from
59
+ * the Ledger-backed publishing record after the dependency-ordered releases are
60
+ * complete.
13
61
  */
62
+ export type MisoDeployment = Readonly<Record<MisoPackageName, string>>;
63
+
64
+ /** A minimal core-only deployment, retained for callers that use only `miso()`. */
14
65
  export interface MisoProtocolDeployment {
15
- /** The published `miso` package used for calls, types, and derivation. */
66
+ /** The published `miso` package used for calls, types, and derived IDs. */
16
67
  readonly packageId: string;
17
68
  }
18
69
 
19
- export const MISO_PROTOCOL_DEPLOYMENTS = {
20
- testnet: {
21
- packageId:
22
- "0x974d453e82b09ac90d29cf65d981d3cf3cabe1e5ca9c6348f42860226ef9b5c4",
23
- },
24
- } as const satisfies Partial<Record<MisoNetwork, MisoProtocolDeployment>>;
25
-
26
- /** Resolve a bundled deployment, failing closed for devnet/localnet/custom names. */
27
- export function getMisoProtocolDeployment(
28
- network: string,
70
+ /** Validate and freeze a core-only package binding at a client boundary. */
71
+ export function normalizeMisoProtocolDeployment(
72
+ deployment: unknown,
29
73
  ): MisoProtocolDeployment {
74
+ if (!deployment || typeof deployment !== "object" || Array.isArray(deployment)) {
75
+ throw new Error("@misonetwork/sdk: core deployment must be an object with a normalized Miso package ID.");
76
+ }
77
+ const packageId = (deployment as { packageId?: unknown }).packageId;
78
+ if (typeof packageId !== "string") {
79
+ throw new Error("@misonetwork/sdk: core deployment is missing a Miso package ID.");
80
+ }
81
+ let normalized: string;
82
+ try {
83
+ normalized = normalizeSuiAddress(packageId);
84
+ } catch {
85
+ throw new Error("@misonetwork/sdk: core deployment package ID is not a valid Sui address.");
86
+ }
87
+ if (packageId !== normalized) {
88
+ throw new Error(
89
+ `@misonetwork/sdk: core deployment package ID must be normalized (${normalized}).`,
90
+ );
91
+ }
92
+ return Object.freeze({ packageId });
93
+ }
94
+
95
+ /**
96
+ * No current addresses are bundled. The previous Testnet ID deliberately does
97
+ * not appear here because it was compiled for an older ABI. Address injection is
98
+ * a single mechanical edit after publication: add the verified full manifest
99
+ * under the target network, then regenerate/check bindings before releasing.
100
+ */
101
+ export const MISO_DEPLOYMENTS = {} as const satisfies Partial<
102
+ Record<MisoNetwork, MisoDeployment>
103
+ >;
104
+
105
+ /**
106
+ * @deprecated Use `MISO_DEPLOYMENTS`. This empty alias preserves source
107
+ * compatibility without preserving the retired protocol-only address map.
108
+ */
109
+ export const MISO_PROTOCOL_DEPLOYMENTS = MISO_DEPLOYMENTS;
110
+
111
+ /** Resolve a verified full manifest, failing closed until address injection. */
112
+ export function getMisoDeployment(network: string): MisoDeployment {
30
113
  const deployment = (
31
- MISO_PROTOCOL_DEPLOYMENTS as Partial<
32
- Record<string, MisoProtocolDeployment>
33
- >
114
+ MISO_DEPLOYMENTS as Partial<Record<string, MisoDeployment>>
34
115
  )[network];
35
116
  if (!deployment) {
36
117
  throw new Error(
37
- `@misonetwork/sdk: no bundled Miso protocol deployment for network "${network}". ` +
38
- "Pass an explicit deployment to miso() for custom networks.",
118
+ `@misonetwork/sdk: no verified Miso deployment is bundled for network "${network}". ` +
119
+ "Inject the exact post-publish manifest or pass an explicit deployment; historic package IDs are rejected.",
39
120
  );
40
121
  }
41
- return deployment;
122
+ return normalizeMisoDeployment(deployment);
123
+ }
124
+
125
+ /** Extract the core package identity from a complete deployment manifest. */
126
+ export function protocolDeployment(
127
+ deployment: MisoDeployment,
128
+ ): MisoProtocolDeployment {
129
+ return normalizeMisoProtocolDeployment({ packageId: normalizeMisoDeployment(deployment).miso });
130
+ }
131
+
132
+ /** Resolve the core package only, preserving the established `miso()` default API. */
133
+ export function getMisoProtocolDeployment(
134
+ network: string,
135
+ ): MisoProtocolDeployment {
136
+ return protocolDeployment(getMisoDeployment(network));
137
+ }
138
+
139
+ /**
140
+ * Validates an explicit manifest before any Move target is constructed. This is
141
+ * useful at configuration boundaries such as environment-file loading.
142
+ */
143
+ export function assertMisoDeployment(
144
+ deployment: unknown,
145
+ ): asserts deployment is MisoDeployment {
146
+ if (!deployment || typeof deployment !== "object" || Array.isArray(deployment)) {
147
+ throw new Error(
148
+ `@misonetwork/sdk: deployment must be an object with exactly ${CANONICAL_MISO_PACKAGE_NAMES.length} Miso package IDs.`,
149
+ );
150
+ }
151
+ const entries = deployment as Record<string, unknown>;
152
+ const keys = Object.keys(entries);
153
+ const unexpected = keys.filter((key) => !CANONICAL_MISO_PACKAGE_NAMES.includes(key as MisoPackageName));
154
+ if (unexpected.length > 0 || keys.length !== CANONICAL_MISO_PACKAGE_NAMES.length) {
155
+ throw new Error(
156
+ `@misonetwork/sdk: deployment must contain exactly these package IDs: ${CANONICAL_MISO_PACKAGE_NAMES.join(", ")}.`,
157
+ );
158
+ }
159
+ const seenPackageIds = new Set<string>();
160
+ for (const name of CANONICAL_MISO_PACKAGE_NAMES) {
161
+ const packageId = entries[name];
162
+ if (typeof packageId !== "string") {
163
+ throw new Error(
164
+ `@misonetwork/sdk: deployment is missing package ID for "${name}". ` +
165
+ "Use a complete manifest from the fresh publish record.",
166
+ );
167
+ }
168
+ let normalized: string;
169
+ try {
170
+ normalized = normalizeSuiAddress(packageId);
171
+ } catch {
172
+ throw new Error(`@misonetwork/sdk: deployment package ID for "${name}" is not a valid Sui address.`);
173
+ }
174
+ if (packageId !== normalized) {
175
+ throw new Error(
176
+ `@misonetwork/sdk: deployment package ID for "${name}" must be normalized (${normalized}).`,
177
+ );
178
+ }
179
+ if (seenPackageIds.has(packageId)) {
180
+ throw new Error(
181
+ `@misonetwork/sdk: deployment package ID for "${name}" duplicates another package. ` +
182
+ "A publish manifest must bind every package to its own address.",
183
+ );
184
+ }
185
+ seenPackageIds.add(packageId);
186
+ }
187
+ }
188
+
189
+ /** Validate and snapshot an untrusted manifest so later caller mutation is inert. */
190
+ export function normalizeMisoDeployment(deployment: unknown): MisoDeployment {
191
+ assertMisoDeployment(deployment);
192
+ return Object.freeze(
193
+ Object.fromEntries(CANONICAL_MISO_PACKAGE_NAMES.map((name) => [name, deployment[name]])),
194
+ ) as MisoDeployment;
42
195
  }