@misofm/sdk 0.15.11 → 0.17.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 (371) hide show
  1. package/README.md +210 -73
  2. package/dist/client.d.ts +224 -68
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +465 -79
  5. package/dist/client.js.map +1 -1
  6. package/dist/contracts/composition_credits/composition_credits.d.ts +10 -10
  7. package/dist/contracts/composition_credits/composition_credits.d.ts.map +1 -1
  8. package/dist/contracts/composition_credits/composition_credits.js.map +1 -1
  9. package/dist/contracts/composition_credits/composition_party_role.d.ts +1 -1
  10. package/dist/contracts/composition_credits/composition_party_role.d.ts.map +1 -1
  11. package/dist/contracts/composition_credits/composition_party_role.js.map +1 -1
  12. package/dist/contracts/composition_credits/deps/miso_credit/credit.d.ts.map +1 -1
  13. package/dist/contracts/composition_credits/deps/miso_credit/credit.js.map +1 -1
  14. package/dist/contracts/composition_credits/deps/sui/vec_map.d.ts.map +1 -1
  15. package/dist/contracts/composition_credits/deps/sui/vec_map.js.map +1 -1
  16. package/dist/contracts/composition_routed_stake/composition_routed_stake.d.ts +29 -93
  17. package/dist/contracts/composition_routed_stake/composition_routed_stake.d.ts.map +1 -1
  18. package/dist/contracts/composition_routed_stake/composition_routed_stake.js +19 -79
  19. package/dist/contracts/composition_routed_stake/composition_routed_stake.js.map +1 -1
  20. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.d.ts +22 -106
  21. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.d.ts.map +1 -1
  22. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.js +16 -98
  23. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.js.map +1 -1
  24. package/dist/contracts/composition_royalty_pool_plugin/composition_royalty_pool_plugin.d.ts +90 -0
  25. package/dist/contracts/composition_royalty_pool_plugin/composition_royalty_pool_plugin.d.ts.map +1 -0
  26. package/dist/contracts/composition_royalty_pool_plugin/composition_royalty_pool_plugin.js +85 -0
  27. package/dist/contracts/composition_royalty_pool_plugin/composition_royalty_pool_plugin.js.map +1 -0
  28. package/dist/contracts/{party_wallet → composition_royalty_pool_plugin}/witness.d.ts +1 -1
  29. package/dist/contracts/composition_royalty_pool_plugin/witness.d.ts.map +1 -0
  30. package/dist/contracts/{recording_royalty_pool → composition_royalty_pool_plugin}/witness.js +1 -1
  31. package/dist/contracts/composition_royalty_pool_plugin/witness.js.map +1 -0
  32. package/dist/contracts/cover_art/cover_art.d.ts +4 -4
  33. package/dist/contracts/cover_art/cover_art.d.ts.map +1 -1
  34. package/dist/contracts/cover_art/cover_art.js.map +1 -1
  35. package/dist/contracts/cover_art/deps/ori/walrus_data.d.ts +4 -4
  36. package/dist/contracts/cover_art/deps/ori/walrus_data.d.ts.map +1 -1
  37. package/dist/contracts/cover_art/deps/ori/walrus_data.js.map +1 -1
  38. package/dist/contracts/genre/genre.d.ts +6 -6
  39. package/dist/contracts/genre/genre.d.ts.map +1 -1
  40. package/dist/contracts/genre/genre.js.map +1 -1
  41. package/dist/contracts/{miso_pressing → miso_record}/deps/std/type_name.d.ts +1 -1
  42. package/dist/contracts/miso_record/deps/std/type_name.d.ts.map +1 -0
  43. package/dist/contracts/miso_record/deps/std/type_name.js.map +1 -0
  44. package/dist/contracts/miso_record/deps/sui/vec_set.d.ts +21 -0
  45. package/dist/contracts/miso_record/deps/sui/vec_set.d.ts.map +1 -0
  46. package/dist/contracts/miso_record/deps/sui/vec_set.js +20 -0
  47. package/dist/contracts/miso_record/deps/sui/vec_set.js.map +1 -0
  48. package/dist/contracts/miso_record/pressing.d.ts +327 -0
  49. package/dist/contracts/miso_record/pressing.d.ts.map +1 -0
  50. package/dist/contracts/miso_record/pressing.js +345 -0
  51. package/dist/contracts/miso_record/pressing.js.map +1 -0
  52. package/dist/contracts/miso_record/record.d.ts +190 -0
  53. package/dist/contracts/miso_record/record.d.ts.map +1 -0
  54. package/dist/contracts/miso_record/record.js +226 -0
  55. package/dist/contracts/miso_record/record.js.map +1 -0
  56. package/dist/contracts/miso_record_shop/deps/std/type_name.d.ts +18 -0
  57. package/dist/contracts/miso_record_shop/deps/std/type_name.d.ts.map +1 -0
  58. package/dist/contracts/miso_record_shop/deps/std/type_name.js +20 -0
  59. package/dist/contracts/miso_record_shop/deps/std/type_name.js.map +1 -0
  60. package/dist/contracts/miso_record_shop/listing.d.ts +387 -0
  61. package/dist/contracts/miso_record_shop/listing.d.ts.map +1 -0
  62. package/dist/contracts/miso_record_shop/listing.js +380 -0
  63. package/dist/contracts/miso_record_shop/listing.js.map +1 -0
  64. package/dist/contracts/{release_revenue_distributor → miso_record_shop}/witness.d.ts +2 -2
  65. package/dist/contracts/miso_record_shop/witness.d.ts.map +1 -0
  66. package/dist/contracts/{release_revenue_distributor → miso_record_shop}/witness.js +2 -2
  67. package/dist/contracts/miso_record_shop/witness.js.map +1 -0
  68. package/dist/contracts/party_wallet/party_wallet.d.ts +41 -168
  69. package/dist/contracts/party_wallet/party_wallet.d.ts.map +1 -1
  70. package/dist/contracts/party_wallet/party_wallet.js +27 -152
  71. package/dist/contracts/party_wallet/party_wallet.js.map +1 -1
  72. package/dist/contracts/recording_advisory/recording_advisory.d.ts +3 -3
  73. package/dist/contracts/recording_advisory/recording_advisory.d.ts.map +1 -1
  74. package/dist/contracts/recording_advisory/recording_advisory.js.map +1 -1
  75. package/dist/contracts/recording_credits/deps/miso_credit/credit.d.ts.map +1 -1
  76. package/dist/contracts/recording_credits/deps/miso_credit/credit.js.map +1 -1
  77. package/dist/contracts/recording_credits/deps/sui/vec_map.d.ts.map +1 -1
  78. package/dist/contracts/recording_credits/deps/sui/vec_map.js.map +1 -1
  79. package/dist/contracts/recording_credits/deps/sui/vec_set.d.ts.map +1 -1
  80. package/dist/contracts/recording_credits/deps/sui/vec_set.js.map +1 -1
  81. package/dist/contracts/recording_credits/recording_credits.d.ts +20 -20
  82. package/dist/contracts/recording_credits/recording_credits.d.ts.map +1 -1
  83. package/dist/contracts/recording_credits/recording_credits.js.map +1 -1
  84. package/dist/contracts/recording_credits/recording_party_role.d.ts +30 -30
  85. package/dist/contracts/recording_credits/recording_party_role.d.ts.map +1 -1
  86. package/dist/contracts/recording_credits/recording_party_role.js.map +1 -1
  87. package/dist/contracts/recording_language/deps/language_code/language_code.d.ts +1 -1
  88. package/dist/contracts/recording_language/deps/language_code/language_code.d.ts.map +1 -1
  89. package/dist/contracts/recording_language/deps/language_code/language_code.js.map +1 -1
  90. package/dist/contracts/recording_language/recording_language.d.ts +4 -4
  91. package/dist/contracts/recording_language/recording_language.d.ts.map +1 -1
  92. package/dist/contracts/recording_language/recording_language.js.map +1 -1
  93. package/dist/contracts/recording_master_reference/deps/ori/walrus_data.d.ts +4 -4
  94. package/dist/contracts/recording_master_reference/deps/ori/walrus_data.d.ts.map +1 -1
  95. package/dist/contracts/recording_master_reference/deps/ori/walrus_data.js.map +1 -1
  96. package/dist/contracts/recording_master_reference/recording_master_reference.d.ts +6 -6
  97. package/dist/contracts/recording_master_reference/recording_master_reference.d.ts.map +1 -1
  98. package/dist/contracts/recording_master_reference/recording_master_reference.js.map +1 -1
  99. package/dist/contracts/recording_preview/deps/ori/walrus_data.d.ts +4 -4
  100. package/dist/contracts/recording_preview/deps/ori/walrus_data.d.ts.map +1 -1
  101. package/dist/contracts/recording_preview/deps/ori/walrus_data.js.map +1 -1
  102. package/dist/contracts/recording_preview/recording_preview.d.ts +6 -6
  103. package/dist/contracts/recording_preview/recording_preview.d.ts.map +1 -1
  104. package/dist/contracts/recording_preview/recording_preview.js.map +1 -1
  105. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.d.ts +21 -109
  106. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.d.ts.map +1 -1
  107. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.js +15 -100
  108. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.js.map +1 -1
  109. package/dist/contracts/recording_royalty_pool_plugin/recording_royalty_pool_plugin.d.ts +92 -0
  110. package/dist/contracts/recording_royalty_pool_plugin/recording_royalty_pool_plugin.d.ts.map +1 -0
  111. package/dist/contracts/recording_royalty_pool_plugin/recording_royalty_pool_plugin.js +85 -0
  112. package/dist/contracts/recording_royalty_pool_plugin/recording_royalty_pool_plugin.js.map +1 -0
  113. package/dist/contracts/{composition_royalty_pool → recording_royalty_pool_plugin}/witness.d.ts +1 -1
  114. package/dist/contracts/recording_royalty_pool_plugin/witness.d.ts.map +1 -0
  115. package/dist/contracts/{party_wallet → recording_royalty_pool_plugin}/witness.js +1 -1
  116. package/dist/contracts/recording_royalty_pool_plugin/witness.js.map +1 -0
  117. package/dist/contracts/release_cover_art/deps/{0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78 → 0xf35cf353a62cef01084b51a9cf3da4c64c8724685ad1862f2f8284b71bd26c1a}/walrus_data.d.ts +7 -7
  118. package/dist/contracts/release_cover_art/deps/{0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78 → 0xf35cf353a62cef01084b51a9cf3da4c64c8724685ad1862f2f8284b71bd26c1a}/walrus_data.d.ts.map +1 -1
  119. package/dist/contracts/release_cover_art/deps/{0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78 → 0xf35cf353a62cef01084b51a9cf3da4c64c8724685ad1862f2f8284b71bd26c1a}/walrus_data.js +1 -1
  120. package/dist/contracts/release_cover_art/deps/{0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78 → 0xf35cf353a62cef01084b51a9cf3da4c64c8724685ad1862f2f8284b71bd26c1a}/walrus_data.js.map +1 -1
  121. package/dist/contracts/release_cover_art/deps/cover_art/cover_art.d.ts +7 -7
  122. package/dist/contracts/release_cover_art/deps/cover_art/cover_art.d.ts.map +1 -1
  123. package/dist/contracts/release_cover_art/deps/cover_art/cover_art.js +1 -1
  124. package/dist/contracts/release_cover_art/deps/cover_art/cover_art.js.map +1 -1
  125. package/dist/contracts/release_cover_art/deps/per_track/per_track.d.ts.map +1 -1
  126. package/dist/contracts/release_cover_art/deps/per_track/per_track.js.map +1 -1
  127. package/dist/contracts/release_cover_art/release_cover_art.d.ts +23 -23
  128. package/dist/contracts/release_cover_art/release_cover_art.d.ts.map +1 -1
  129. package/dist/contracts/release_cover_art/release_cover_art.js.map +1 -1
  130. package/dist/contracts/release_credits/deps/miso_credit/credit.d.ts.map +1 -1
  131. package/dist/contracts/release_credits/deps/miso_credit/credit.js.map +1 -1
  132. package/dist/contracts/release_credits/deps/sui/vec_map.d.ts.map +1 -1
  133. package/dist/contracts/release_credits/deps/sui/vec_map.js.map +1 -1
  134. package/dist/contracts/release_credits/release_credits.d.ts +10 -10
  135. package/dist/contracts/release_credits/release_credits.d.ts.map +1 -1
  136. package/dist/contracts/release_credits/release_credits.js.map +1 -1
  137. package/dist/contracts/release_description/release_description.d.ts +4 -4
  138. package/dist/contracts/release_description/release_description.d.ts.map +1 -1
  139. package/dist/contracts/release_description/release_description.js.map +1 -1
  140. package/dist/contracts/release_dsp_link/release_dsp_link.d.ts +41 -42
  141. package/dist/contracts/release_dsp_link/release_dsp_link.d.ts.map +1 -1
  142. package/dist/contracts/release_dsp_link/release_dsp_link.js +4 -5
  143. package/dist/contracts/release_dsp_link/release_dsp_link.js.map +1 -1
  144. package/dist/contracts/release_genre/deps/per_track/per_track.d.ts.map +1 -1
  145. package/dist/contracts/release_genre/deps/per_track/per_track.js.map +1 -1
  146. package/dist/contracts/release_genre/release_genre.d.ts +15 -15
  147. package/dist/contracts/release_genre/release_genre.d.ts.map +1 -1
  148. package/dist/contracts/release_genre/release_genre.js.map +1 -1
  149. package/dist/contracts/release_kind/release_kind.d.ts +4 -4
  150. package/dist/contracts/release_kind/release_kind.d.ts.map +1 -1
  151. package/dist/contracts/release_kind/release_kind.js.map +1 -1
  152. package/dist/contracts/release_revenue_distributor/release_revenue_distributor.d.ts +46 -59
  153. package/dist/contracts/release_revenue_distributor/release_revenue_distributor.d.ts.map +1 -1
  154. package/dist/contracts/release_revenue_distributor/release_revenue_distributor.js +27 -48
  155. package/dist/contracts/release_revenue_distributor/release_revenue_distributor.js.map +1 -1
  156. package/dist/contracts/release_revenue_distributor_plugin/release_revenue_distributor_plugin.d.ts +75 -0
  157. package/dist/contracts/release_revenue_distributor_plugin/release_revenue_distributor_plugin.d.ts.map +1 -0
  158. package/dist/contracts/release_revenue_distributor_plugin/release_revenue_distributor_plugin.js +80 -0
  159. package/dist/contracts/release_revenue_distributor_plugin/release_revenue_distributor_plugin.js.map +1 -0
  160. package/dist/contracts/{recording_royalty_pool → release_revenue_distributor_plugin}/witness.d.ts +1 -1
  161. package/dist/contracts/release_revenue_distributor_plugin/witness.d.ts.map +1 -0
  162. package/dist/contracts/{composition_royalty_pool → release_revenue_distributor_plugin}/witness.js +1 -1
  163. package/dist/contracts/release_revenue_distributor_plugin/witness.js.map +1 -0
  164. package/dist/contracts/routed_stake/deps/royalty_pool/stake.d.ts +5 -5
  165. package/dist/contracts/routed_stake/deps/royalty_pool/stake.d.ts.map +1 -1
  166. package/dist/contracts/routed_stake/deps/royalty_pool/stake.js.map +1 -1
  167. package/dist/contracts/routed_stake/deps/std/type_name.d.ts +1 -1
  168. package/dist/contracts/routed_stake/deps/std/type_name.d.ts.map +1 -1
  169. package/dist/contracts/routed_stake/deps/std/type_name.js.map +1 -1
  170. package/dist/contracts/routed_stake/deps/sui/balance.d.ts +1 -1
  171. package/dist/contracts/routed_stake/deps/sui/balance.d.ts.map +1 -1
  172. package/dist/contracts/routed_stake/deps/sui/balance.js.map +1 -1
  173. package/dist/contracts/routed_stake/deps/sui/vec_map.d.ts.map +1 -1
  174. package/dist/contracts/routed_stake/deps/sui/vec_map.js.map +1 -1
  175. package/dist/contracts/routed_stake/routed_stake.d.ts +15 -15
  176. package/dist/contracts/routed_stake/routed_stake.d.ts.map +1 -1
  177. package/dist/contracts/routed_stake/routed_stake.js.map +1 -1
  178. package/dist/contracts/royalty_pool/deps/std/type_name.d.ts +1 -1
  179. package/dist/contracts/royalty_pool/deps/std/type_name.d.ts.map +1 -1
  180. package/dist/contracts/royalty_pool/deps/std/type_name.js.map +1 -1
  181. package/dist/contracts/royalty_pool/deps/sui/balance.d.ts +1 -1
  182. package/dist/contracts/royalty_pool/deps/sui/balance.d.ts.map +1 -1
  183. package/dist/contracts/royalty_pool/deps/sui/balance.js.map +1 -1
  184. package/dist/contracts/royalty_pool/deps/sui/vec_map.d.ts.map +1 -1
  185. package/dist/contracts/royalty_pool/deps/sui/vec_map.js.map +1 -1
  186. package/dist/contracts/royalty_pool/pool.d.ts +19 -19
  187. package/dist/contracts/royalty_pool/pool.d.ts.map +1 -1
  188. package/dist/contracts/royalty_pool/pool.js.map +1 -1
  189. package/dist/contracts/royalty_pool/stake.d.ts +9 -9
  190. package/dist/contracts/royalty_pool/stake.d.ts.map +1 -1
  191. package/dist/contracts/royalty_pool/stake.js.map +1 -1
  192. package/dist/contracts/vault/deps/sui/bag.d.ts +2 -2
  193. package/dist/contracts/vault/deps/sui/bag.d.ts.map +1 -1
  194. package/dist/contracts/vault/deps/sui/bag.js.map +1 -1
  195. package/dist/contracts/vault/deps/sui/borrow.d.ts.map +1 -1
  196. package/dist/contracts/vault/deps/sui/borrow.js.map +1 -1
  197. package/dist/contracts/vault/vault.d.ts +19 -93
  198. package/dist/contracts/vault/vault.d.ts.map +1 -1
  199. package/dist/contracts/vault/vault.js +16 -95
  200. package/dist/contracts/vault/vault.js.map +1 -1
  201. package/dist/contracts.d.ts +6 -3
  202. package/dist/contracts.d.ts.map +1 -1
  203. package/dist/contracts.js +9 -5
  204. package/dist/contracts.js.map +1 -1
  205. package/dist/deployments.d.ts +156 -77
  206. package/dist/deployments.d.ts.map +1 -1
  207. package/dist/deployments.js +146 -32
  208. package/dist/deployments.js.map +1 -1
  209. package/dist/index.d.ts +3 -1
  210. package/dist/index.d.ts.map +1 -1
  211. package/dist/index.js +3 -1
  212. package/dist/index.js.map +1 -1
  213. package/dist/internal.d.ts +9 -0
  214. package/dist/internal.d.ts.map +1 -1
  215. package/dist/internal.js +23 -0
  216. package/dist/internal.js.map +1 -1
  217. package/dist/mix.d.ts +144 -0
  218. package/dist/mix.d.ts.map +1 -0
  219. package/dist/mix.js +656 -0
  220. package/dist/mix.js.map +1 -0
  221. package/dist/pressing.d.ts +72 -156
  222. package/dist/pressing.d.ts.map +1 -1
  223. package/dist/pressing.js +269 -261
  224. package/dist/pressing.js.map +1 -1
  225. package/dist/publication.d.ts +6 -6
  226. package/dist/publication.d.ts.map +1 -1
  227. package/dist/publication.js +134 -90
  228. package/dist/publication.js.map +1 -1
  229. package/dist/read/catalog.d.ts +8 -5
  230. package/dist/read/catalog.d.ts.map +1 -1
  231. package/dist/read/catalog.js +47 -35
  232. package/dist/read/catalog.js.map +1 -1
  233. package/dist/read/config.d.ts +6 -4
  234. package/dist/read/config.d.ts.map +1 -1
  235. package/dist/read/config.js +10 -3
  236. package/dist/read/config.js.map +1 -1
  237. package/dist/read/index.d.ts +1 -1
  238. package/dist/read/index.d.ts.map +1 -1
  239. package/dist/read/index.js +1 -1
  240. package/dist/read/index.js.map +1 -1
  241. package/dist/read/internal/scalars.d.ts.map +1 -1
  242. package/dist/read/internal/scalars.js +4 -3
  243. package/dist/read/internal/scalars.js.map +1 -1
  244. package/dist/read/internal/walrus.d.ts.map +1 -1
  245. package/dist/read/internal/walrus.js +2 -1
  246. package/dist/read/internal/walrus.js.map +1 -1
  247. package/dist/read/receipts.d.ts +21 -12
  248. package/dist/read/receipts.d.ts.map +1 -1
  249. package/dist/read/receipts.js +159 -56
  250. package/dist/read/receipts.js.map +1 -1
  251. package/dist/read/types.d.ts +34 -24
  252. package/dist/read/types.d.ts.map +1 -1
  253. package/dist/read/wallet.d.ts.map +1 -1
  254. package/dist/read/wallet.js +31 -46
  255. package/dist/read/wallet.js.map +1 -1
  256. package/dist/vault.d.ts +81 -48
  257. package/dist/vault.d.ts.map +1 -1
  258. package/dist/vault.js +173 -174
  259. package/dist/vault.js.map +1 -1
  260. package/package.json +17 -7
  261. package/src/client.ts +618 -120
  262. package/src/contracts/composition_credits/composition_credits.ts +3 -2
  263. package/src/contracts/composition_credits/composition_party_role.ts +5 -4
  264. package/src/contracts/composition_credits/deps/miso_credit/credit.ts +1 -0
  265. package/src/contracts/composition_credits/deps/sui/vec_map.ts +1 -0
  266. package/src/contracts/composition_routed_stake/composition_routed_stake.ts +36 -146
  267. package/src/contracts/composition_royalty_pool/composition_royalty_pool.ts +28 -169
  268. package/src/contracts/composition_royalty_pool_plugin/composition_royalty_pool_plugin.ts +165 -0
  269. package/src/contracts/{recording_royalty_pool → composition_royalty_pool_plugin}/witness.ts +2 -1
  270. package/src/contracts/cover_art/cover_art.ts +2 -1
  271. package/src/contracts/cover_art/deps/ori/walrus_data.ts +1 -0
  272. package/src/contracts/genre/genre.ts +3 -2
  273. package/src/contracts/{miso_pressing → miso_record}/deps/std/type_name.ts +1 -0
  274. package/src/contracts/miso_record/deps/sui/vec_set.ts +22 -0
  275. package/src/contracts/miso_record/pressing.ts +523 -0
  276. package/src/contracts/miso_record/record.ts +339 -0
  277. package/src/contracts/miso_record_shop/deps/std/type_name.ts +23 -0
  278. package/src/contracts/miso_record_shop/listing.ts +603 -0
  279. package/src/contracts/{release_revenue_distributor → miso_record_shop}/witness.ts +3 -2
  280. package/src/contracts/party_wallet/party_wallet.ts +41 -256
  281. package/src/contracts/recording_advisory/recording_advisory.ts +4 -3
  282. package/src/contracts/recording_credits/deps/miso_credit/credit.ts +1 -0
  283. package/src/contracts/recording_credits/deps/sui/vec_map.ts +1 -0
  284. package/src/contracts/recording_credits/deps/sui/vec_set.ts +1 -0
  285. package/src/contracts/recording_credits/recording_credits.ts +3 -2
  286. package/src/contracts/recording_credits/recording_party_role.ts +5 -4
  287. package/src/contracts/recording_language/deps/language_code/language_code.ts +1 -0
  288. package/src/contracts/recording_language/recording_language.ts +5 -4
  289. package/src/contracts/recording_master_reference/deps/ori/walrus_data.ts +1 -0
  290. package/src/contracts/recording_master_reference/recording_master_reference.ts +6 -5
  291. package/src/contracts/recording_preview/deps/ori/walrus_data.ts +1 -0
  292. package/src/contracts/recording_preview/recording_preview.ts +2 -1
  293. package/src/contracts/recording_royalty_pool/recording_royalty_pool.ts +27 -172
  294. package/src/contracts/recording_royalty_pool_plugin/recording_royalty_pool_plugin.ts +167 -0
  295. package/src/contracts/{party_wallet → recording_royalty_pool_plugin}/witness.ts +2 -1
  296. package/src/contracts/release_cover_art/deps/{0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78 → 0xf35cf353a62cef01084b51a9cf3da4c64c8724685ad1862f2f8284b71bd26c1a}/walrus_data.ts +2 -1
  297. package/src/contracts/release_cover_art/deps/cover_art/cover_art.ts +3 -2
  298. package/src/contracts/release_cover_art/deps/per_track/per_track.ts +3 -2
  299. package/src/contracts/release_cover_art/release_cover_art.ts +2 -1
  300. package/src/contracts/release_credits/deps/miso_credit/credit.ts +1 -0
  301. package/src/contracts/release_credits/deps/sui/vec_map.ts +1 -0
  302. package/src/contracts/release_credits/release_credits.ts +4 -3
  303. package/src/contracts/release_credits/release_party_role.ts +4 -4
  304. package/src/contracts/release_description/release_description.ts +6 -5
  305. package/src/contracts/release_dsp_link/release_dsp_link.ts +8 -8
  306. package/src/contracts/release_genre/deps/per_track/per_track.ts +3 -2
  307. package/src/contracts/release_genre/release_genre.ts +4 -3
  308. package/src/contracts/release_kind/release_kind.ts +5 -4
  309. package/src/contracts/release_revenue_distributor/release_revenue_distributor.ts +50 -85
  310. package/src/contracts/release_revenue_distributor_plugin/release_revenue_distributor_plugin.ts +145 -0
  311. package/src/contracts/{composition_royalty_pool → release_revenue_distributor_plugin}/witness.ts +2 -1
  312. package/src/contracts/routed_stake/deps/royalty_pool/stake.ts +1 -0
  313. package/src/contracts/routed_stake/deps/std/type_name.ts +1 -0
  314. package/src/contracts/routed_stake/deps/sui/balance.ts +1 -0
  315. package/src/contracts/routed_stake/deps/sui/vec_map.ts +1 -0
  316. package/src/contracts/routed_stake/routed_stake.ts +4 -3
  317. package/src/contracts/royalty_pool/deps/std/type_name.ts +1 -0
  318. package/src/contracts/royalty_pool/deps/sui/balance.ts +1 -0
  319. package/src/contracts/royalty_pool/deps/sui/vec_map.ts +1 -0
  320. package/src/contracts/royalty_pool/pool.ts +1 -0
  321. package/src/contracts/royalty_pool/stake.ts +1 -0
  322. package/src/contracts/vault/deps/sui/bag.ts +3 -2
  323. package/src/contracts/vault/deps/sui/borrow.ts +2 -1
  324. package/src/contracts/vault/vault.ts +27 -152
  325. package/src/contracts.ts +9 -5
  326. package/src/deployments.ts +273 -55
  327. package/src/index.ts +5 -0
  328. package/src/internal.ts +27 -0
  329. package/src/mix.ts +910 -0
  330. package/src/pressing.ts +428 -423
  331. package/src/publication.ts +148 -101
  332. package/src/read/catalog.ts +49 -34
  333. package/src/read/config.ts +19 -8
  334. package/src/read/index.ts +9 -1
  335. package/src/read/internal/scalars.ts +4 -2
  336. package/src/read/internal/walrus.ts +2 -1
  337. package/src/read/receipts.ts +181 -66
  338. package/src/read/types.ts +35 -22
  339. package/src/read/wallet.ts +29 -50
  340. package/src/vault.ts +275 -271
  341. package/dist/contracts/composition_routed_stake/witness.d.ts +0 -7
  342. package/dist/contracts/composition_routed_stake/witness.d.ts.map +0 -1
  343. package/dist/contracts/composition_routed_stake/witness.js +0 -9
  344. package/dist/contracts/composition_routed_stake/witness.js.map +0 -1
  345. package/dist/contracts/composition_royalty_pool/witness.d.ts.map +0 -1
  346. package/dist/contracts/composition_royalty_pool/witness.js.map +0 -1
  347. package/dist/contracts/miso_pressing/certificate.d.ts +0 -89
  348. package/dist/contracts/miso_pressing/certificate.d.ts.map +0 -1
  349. package/dist/contracts/miso_pressing/certificate.js +0 -108
  350. package/dist/contracts/miso_pressing/certificate.js.map +0 -1
  351. package/dist/contracts/miso_pressing/deps/std/type_name.d.ts.map +0 -1
  352. package/dist/contracts/miso_pressing/deps/std/type_name.js.map +0 -1
  353. package/dist/contracts/miso_pressing/listing.d.ts +0 -434
  354. package/dist/contracts/miso_pressing/listing.d.ts.map +0 -1
  355. package/dist/contracts/miso_pressing/listing.js +0 -401
  356. package/dist/contracts/miso_pressing/listing.js.map +0 -1
  357. package/dist/contracts/miso_pressing/pressing.d.ts +0 -334
  358. package/dist/contracts/miso_pressing/pressing.d.ts.map +0 -1
  359. package/dist/contracts/miso_pressing/pressing.js +0 -298
  360. package/dist/contracts/miso_pressing/pressing.js.map +0 -1
  361. package/dist/contracts/party_wallet/witness.d.ts.map +0 -1
  362. package/dist/contracts/party_wallet/witness.js.map +0 -1
  363. package/dist/contracts/recording_royalty_pool/witness.d.ts.map +0 -1
  364. package/dist/contracts/recording_royalty_pool/witness.js.map +0 -1
  365. package/dist/contracts/release_revenue_distributor/witness.d.ts.map +0 -1
  366. package/dist/contracts/release_revenue_distributor/witness.js.map +0 -1
  367. package/src/contracts/composition_routed_stake/witness.ts +0 -11
  368. package/src/contracts/miso_pressing/certificate.ts +0 -164
  369. package/src/contracts/miso_pressing/listing.ts +0 -592
  370. package/src/contracts/miso_pressing/pressing.ts +0 -399
  371. /package/dist/contracts/{miso_pressing → miso_record}/deps/std/type_name.js +0 -0
package/dist/client.js CHANGED
@@ -1,8 +1,9 @@
1
1
  // Copyright (c) Miso Labs, Inc.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import { miso as protocolMiso, } from "@misonetwork/sdk/client";
4
- import * as listingContract from "./contracts/miso_pressing/listing.js";
5
- import * as pressingContract from "./contracts/miso_pressing/pressing.js";
4
+ import * as recordContract from "./contracts/miso_record/record.js";
5
+ import * as pressingContract from "./contracts/miso_record/pressing.js";
6
+ import * as listingContract from "./contracts/miso_record_shop/listing.js";
6
7
  import * as genreContract from "./contracts/genre/genre.js";
7
8
  import * as releaseDescriptionContract from "./contracts/release_description/release_description.js";
8
9
  import * as releaseDspLinkContract from "./contracts/release_dsp_link/release_dsp_link.js";
@@ -14,6 +15,9 @@ import * as compositionRoyaltyPoolContract from "./contracts/composition_royalty
14
15
  import * as recordingRoyaltyPoolContract from "./contracts/recording_royalty_pool/recording_royalty_pool.js";
15
16
  import * as partyWalletContract from "./contracts/party_wallet/party_wallet.js";
16
17
  import * as compositionRoutedStakeContract from "./contracts/composition_routed_stake/composition_routed_stake.js";
18
+ import * as compositionRoyaltyPoolPluginContract from "./contracts/composition_royalty_pool_plugin/composition_royalty_pool_plugin.js";
19
+ import * as recordingRoyaltyPoolPluginContract from "./contracts/recording_royalty_pool_plugin/recording_royalty_pool_plugin.js";
20
+ import * as releaseRevenueDistributorPluginContract from "./contracts/release_revenue_distributor_plugin/release_revenue_distributor_plugin.js";
17
21
  import * as routedStakeContract from "./contracts/routed_stake/routed_stake.js";
18
22
  import * as royaltyPoolContract from "./contracts/royalty_pool/pool.js";
19
23
  import * as recordingAdvisoryContract from "./contracts/recording_advisory/recording_advisory.js";
@@ -24,14 +28,16 @@ import * as vaultActions from "./vault.js";
24
28
  import * as coverArtContract from "./contracts/cover_art/cover_art.js";
25
29
  import * as releaseCoverArtContract from "./contracts/release_cover_art/release_cover_art.js";
26
30
  import * as releaseCreditsContract from "./contracts/release_credits/release_credits.js";
27
- import { buyRecord, deriveListingId, derivePressingAdminCapId, derivePressingId, deriveSaleIds, getListing, getPressing, getSale, openListing, openPressing, setListingPrice, setListingState, setPressingState, } from "./pressing.js";
31
+ import { authorizeRecordShop, deriveListingId, derivePressingAdminCapId, derivePressingId, deriveRecordId, deriveSaleIds, getListing, getPressing, getRecord, getSale, openListing, openPressing, purchaseRecord, revokeRecordShop, setListingPrice, setListingState, } from "./pressing.js";
28
32
  import { publishShareCurrency, initializeShareCurrency, publishComposition, publishRecording, publishCompositionAndRecording, publishRelease, } from "./transactions.js";
29
33
  import * as share from "./share.js";
30
34
  import { publishReleaseGraph, } from "./release-graph.js";
31
- import { getMisoPlatformDeployment, } from "./deployments.js";
35
+ import { getMisoPlatformDeployment, requireOperationsDeployment, requireRecordSalesDeployment, } from "./deployments.js";
36
+ import { immutableSnapshot } from "./internal.js";
32
37
  import { deriveGenreAddress, setReleaseDescription, setReleaseDspLinks, setReleaseGenres, setReleaseKind, } from "./release-extensions.js";
33
38
  import { addReleaseCredit } from "./credits.js";
34
39
  import { setReleaseCover, setReleaseTrackCover, } from "./cover.js";
40
+ import { executeViaExecutor as executePlatformViaExecutor, } from "./execute.js";
35
41
  /**
36
42
  * Bind an explicit safe subset of a generated module to one immutable package.
37
43
  * Callers cannot supply or override `package`; reference-returning, UID-only,
@@ -48,33 +54,183 @@ function bindModulePackage(mod, pkg, available) {
48
54
  }
49
55
  return out;
50
56
  }
57
+ /** Keep synchronous, client-bound surfaces unusable until the endpoint's exact
58
+ * ledger has been validated. The underlying standalone builders remain pure. */
59
+ function requireReadyOnFunctions(surface, requireReady, namespace) {
60
+ return new Proxy(surface, {
61
+ get(target, property, receiver) {
62
+ const value = Reflect.get(target, property, receiver);
63
+ if (typeof value !== "function")
64
+ return value;
65
+ return (...args) => {
66
+ requireReady(`${namespace}.${String(property)}`);
67
+ return Reflect.apply(value, target, args);
68
+ };
69
+ },
70
+ });
71
+ }
72
+ function requireReadyOnModuleFunctions(surface, requireReady, namespace) {
73
+ return new Proxy(surface, {
74
+ get(target, property, receiver) {
75
+ const value = Reflect.get(target, property, receiver);
76
+ if (!value || typeof value !== "object")
77
+ return value;
78
+ return requireReadyOnFunctions(value, requireReady, `${namespace}.${String(property)}`);
79
+ },
80
+ });
81
+ }
82
+ export class MisoNetworkMismatchError extends Error {
83
+ clientNetwork;
84
+ deploymentNetwork;
85
+ name = "MisoNetworkMismatchError";
86
+ constructor(clientNetwork, deploymentNetwork) {
87
+ super(`@misofm/sdk: client network "${clientNetwork}" does not match deployment network "${deploymentNetwork}"`);
88
+ this.clientNetwork = clientNetwork;
89
+ this.deploymentNetwork = deploymentNetwork;
90
+ }
91
+ }
92
+ export class MisoChainIdentifierMismatchError extends Error {
93
+ actual;
94
+ expected;
95
+ name = "MisoChainIdentifierMismatchError";
96
+ constructor(actual, expected) {
97
+ super(`@misofm/sdk: endpoint chain identifier "${actual}" does not match deployment chain identifier "${expected}"`);
98
+ this.actual = actual;
99
+ this.expected = expected;
100
+ }
101
+ }
102
+ export class MisoClientNotReadyError extends Error {
103
+ operation;
104
+ name = "MisoClientNotReadyError";
105
+ constructor(operation) {
106
+ super(`@misofm/sdk: ${operation} requires an exact-chain validation lifecycle; call and await client.miso.ready() first`);
107
+ this.operation = operation;
108
+ }
109
+ }
51
110
  export class MisoPlatformClient {
52
111
  #client;
53
112
  #config;
54
- /** The permissionless protocol layer wrapped by this platform facade. */
55
- protocol;
113
+ #protocol;
114
+ #chainIdentifier;
56
115
  /** Bundled/custom deployment selected for the full facade, when available. */
57
116
  deployment;
117
+ #readyState = "unvalidated";
118
+ #readyPromise;
58
119
  constructor(client, config, protocol, deployment) {
120
+ const configSnapshot = immutableSnapshot(config);
121
+ const deploymentSnapshot = deployment
122
+ ? immutableSnapshot(deployment)
123
+ : undefined;
59
124
  this.#client = client;
60
- this.#config = config;
125
+ this.#config = configSnapshot;
126
+ if (configSnapshot.operations?.status === "available") {
127
+ requireOperationsDeployment(configSnapshot.operations);
128
+ }
61
129
  // A pressing-only facade must not implicitly register a fail-closed core
62
130
  // extension. Supply a core deployment/misoPackageId when `protocol` is
63
131
  // needed; otherwise this remains a safe, independent pressing client.
64
- this.protocol = protocol ?? (config.misoPackageId
65
- ? protocolMiso({ deployment: { packageId: config.misoPackageId } }).register(client)
66
- : undefined);
67
- this.deployment = deployment;
132
+ this.#protocol =
133
+ protocol ??
134
+ (configSnapshot.misoPackageId
135
+ ? protocolMiso({
136
+ deployment: { packageId: configSnapshot.misoPackageId },
137
+ }).register(client)
138
+ : undefined);
139
+ this.deployment = deploymentSnapshot;
140
+ this.#chainIdentifier =
141
+ deploymentSnapshot?.chainIdentifier ?? configSnapshot.chainIdentifier;
142
+ }
143
+ /** Permissionless protocol APIs bound to the same validated ledger. */
144
+ get protocol() {
145
+ if (!this.#protocol)
146
+ return undefined;
147
+ this.#requireReady("protocol APIs");
148
+ return this.#protocol;
149
+ }
150
+ /**
151
+ * Memoized exact-ledger readiness gate. Registration already rejects a
152
+ * synchronous network-label mismatch; this Core API read protects every
153
+ * client-bound write surface from a mislabeled or custom endpoint.
154
+ */
155
+ ready() {
156
+ if (!this.#readyPromise) {
157
+ this.#readyState = "validating";
158
+ this.#readyPromise = (async () => {
159
+ try {
160
+ if (!this.#chainIdentifier) {
161
+ throw new Error("misoPlatform: chain readiness requires a complete deployment or an explicit `chainIdentifier`.");
162
+ }
163
+ const { chainIdentifier } = await this.#client.core.getChainIdentifier();
164
+ if (chainIdentifier !== this.#chainIdentifier) {
165
+ throw new MisoChainIdentifierMismatchError(chainIdentifier, this.#chainIdentifier);
166
+ }
167
+ this.#readyState = "ready";
168
+ }
169
+ catch (error) {
170
+ this.#readyState = "failed";
171
+ throw error;
172
+ }
173
+ })();
174
+ }
175
+ return this.#readyPromise;
176
+ }
177
+ /** Compatibility hook; prefer `await client.miso.ready()`. */
178
+ async validateChainIdentifier() {
179
+ await this.ready();
180
+ return this.#chainIdentifier;
181
+ }
182
+ #requireReady(operation) {
183
+ // Capability availability remains the first fail-closed boundary. This
184
+ // keeps an unavailable deployment from masquerading as a mere lifecycle
185
+ // error while still preventing configured builders from running pre-ready.
186
+ if (operation === "ids.pressing" ||
187
+ operation === "ids.pressingAdminCap" ||
188
+ operation === "ids.record" ||
189
+ operation === "ids.listing" ||
190
+ operation === "ids.sale" ||
191
+ operation === "tx.purchaseRecord" ||
192
+ operation === "tx.openPressing" ||
193
+ operation === "tx.openListing" ||
194
+ operation === "tx.authorizeRecordShop" ||
195
+ operation === "tx.revokeRecordShop" ||
196
+ operation === "tx.setListingPrice" ||
197
+ operation === "tx.setListingState") {
198
+ this.#recordSales();
199
+ }
200
+ if (operation === "ids.vault" || operation === "ids.vaultAdminCap") {
201
+ this.#operations();
202
+ }
203
+ if (this.#readyState !== "ready") {
204
+ throw new MisoClientNotReadyError(operation);
205
+ }
68
206
  }
69
207
  /** Party identity and profile APIs, backed by the network SDK. */
70
208
  get party() {
71
- if (!this.protocol) {
209
+ if (!this.#protocol) {
72
210
  throw new Error("misoPlatform: Party APIs require the complete platform deployment. Use miso({ deployment }).");
73
211
  }
74
- return this.protocol.party;
212
+ this.#requireReady("party APIs");
213
+ return this.#protocol.party;
75
214
  }
76
- get packageId() {
77
- return this.#config.packageId;
215
+ #recordSales() {
216
+ return requireRecordSalesDeployment(this.#config.recordSales ?? {
217
+ status: "unavailable",
218
+ reason: "this client was configured without Record and Record Shop package IDs",
219
+ });
220
+ }
221
+ #operations() {
222
+ return requireOperationsDeployment(this.#config.operations);
223
+ }
224
+ #availableOperations() {
225
+ return this.#config.operations?.status === "available"
226
+ ? requireOperationsDeployment(this.#config.operations)
227
+ : undefined;
228
+ }
229
+ get recordPackageId() {
230
+ return this.#recordSales().recordPackageId;
231
+ }
232
+ get recordShopPackageId() {
233
+ return this.#recordSales().recordShopPackageId;
78
234
  }
79
235
  #misoPackageId() {
80
236
  const { misoPackageId } = this.#config;
@@ -108,46 +264,72 @@ export class MisoPlatformClient {
108
264
  }
109
265
  // ── Reads ─────────────────────────────────────────────────────────────────
110
266
  /** The run itself, or `null` if this release has never opened one. */
111
- getPressing(pressingId) {
112
- return getPressing(this.#client, pressingId, this.packageId);
267
+ async getPressing(pressingId) {
268
+ await this.ready();
269
+ return getPressing(this.#client, pressingId, this.recordPackageId);
113
270
  }
114
271
  /** One currency's offer, or `null` if the run does not sell in it. */
115
- getListing(listingId) {
116
- return getListing(this.#client, listingId, this.packageId);
272
+ async getListing(listingId) {
273
+ await this.ready();
274
+ return getListing(this.#client, listingId, this.recordShopPackageId);
275
+ }
276
+ /** One concrete purchased Record, including immutable purchase provenance. */
277
+ async getRecord(recordId) {
278
+ await this.ready();
279
+ return getRecord(this.#client, recordId, this.recordPackageId);
117
280
  }
118
281
  /** Run + one currency's offer in a single round trip, by address math. */
119
- getSale(p) {
282
+ async getSale(p) {
283
+ await this.ready();
120
284
  return getSale(this.#client, {
121
285
  ...p,
122
- misoPressingPackageId: this.packageId,
286
+ recordPackageId: this.recordPackageId,
287
+ recordShopPackageId: this.recordShopPackageId,
123
288
  });
124
289
  }
125
290
  // ── Address math ──────────────────────────────────────────────────────────
126
- ids = {
127
- pressing: (releaseId) => derivePressingId(releaseId, this.packageId),
128
- pressingAdminCap: (pressingId) => derivePressingAdminCapId(pressingId, this.packageId),
129
- listing: (pressingId, currencyType) => deriveListingId(pressingId, currencyType, this.packageId),
130
- sale: (releaseId, currencyType) => deriveSaleIds(releaseId, currencyType, this.packageId),
291
+ ids = requireReadyOnFunctions({
292
+ pressing: (releaseId, edition) => derivePressingId(releaseId, edition, this.recordPackageId),
293
+ pressingAdminCap: (pressingId) => derivePressingAdminCapId(pressingId, this.recordPackageId),
294
+ record: (pressingId, number) => deriveRecordId(pressingId, number, this.recordPackageId),
295
+ listing: (pressingId, currencyType) => deriveListingId(pressingId, currencyType, this.recordShopPackageId),
296
+ sale: (releaseId, edition, currencyType) => deriveSaleIds(releaseId, edition, currencyType, this.recordPackageId, this.recordShopPackageId),
131
297
  vault: (capId, capType) => vaultActions.deriveVaultId({
132
- vaultRegistryId: this.#requiredConfig("vaultRegistryId", "Vault ID derivation"),
298
+ vaultRegistryId: this.#operations().vault.registryId,
133
299
  capId,
134
300
  capType,
135
- vaultPackageId: this.#requiredConfig("vaultPackageId", "Vault ID derivation"),
301
+ vaultPackageId: this.#operations().vault.packageId,
136
302
  }),
137
- vaultAdminCap: (vaultId) => vaultActions.deriveVaultAdminCapId(vaultId, this.#requiredConfig("vaultPackageId", "VaultAdminCap ID derivation")),
303
+ vaultAdminCap: (vaultId) => vaultActions.deriveVaultAdminCapId(vaultId, this.#operations().vault.packageId),
138
304
  genre: (canonicalName) => deriveGenreAddress(this.#requiredConfig("genreRegistryId", "genre id derivation"), this.#requiredConfig("genrePackageId", "genre id derivation"), canonicalName),
139
- };
305
+ }, (operation) => this.#requireReady(operation), "ids");
140
306
  // ── Transaction builders ──────────────────────────────────────────────────
141
- tx = {
142
- buyRecord: (p) => buyRecord({
307
+ /** Client-bound builders require a successful `await client.miso.ready()`.
308
+ * Standalone exports remain pure for explicitly managed offline workflows. */
309
+ tx = requireReadyOnFunctions({
310
+ purchaseRecord: (p) => purchaseRecord({
143
311
  ...p,
144
- misoPressingPackageId: this.packageId,
312
+ recordPackageId: this.recordPackageId,
313
+ recordShopPackageId: this.recordShopPackageId,
145
314
  }),
146
- openPressing: (p) => openPressing({ ...p, misoPressingPackageId: this.packageId }),
147
- openListing: (p) => openListing({ ...p, misoPressingPackageId: this.packageId }),
148
- setListingPrice: (p) => setListingPrice({ ...p, misoPressingPackageId: this.packageId }),
149
- setListingState: (p) => setListingState({ ...p, misoPressingPackageId: this.packageId }),
150
- setPressingState: (p) => setPressingState({ ...p, misoPressingPackageId: this.packageId }),
315
+ openPressing: (p) => openPressing({
316
+ ...p,
317
+ recordPackageId: this.recordPackageId,
318
+ recordShopPackageId: this.recordShopPackageId,
319
+ }),
320
+ openListing: (p) => openListing({ ...p, recordShopPackageId: this.recordShopPackageId }),
321
+ authorizeRecordShop: (p) => authorizeRecordShop({
322
+ ...p,
323
+ recordPackageId: this.recordPackageId,
324
+ recordShopPackageId: this.recordShopPackageId,
325
+ }),
326
+ revokeRecordShop: (p) => revokeRecordShop({
327
+ ...p,
328
+ recordPackageId: this.recordPackageId,
329
+ recordShopPackageId: this.recordShopPackageId,
330
+ }),
331
+ setListingPrice: (p) => setListingPrice({ ...p, recordShopPackageId: this.recordShopPackageId }),
332
+ setListingState: (p) => setListingState({ ...p, recordShopPackageId: this.recordShopPackageId }),
151
333
  // Publishing (protocol works + minato share economics) — package-id-free
152
334
  // builders pass through unchanged; the rest bind this client's
153
335
  // `misoPackageId`/`minatoPackageId`, throwing at call time if either is
@@ -217,71 +399,251 @@ export class MisoPlatformClient {
217
399
  releaseCoverArtPackageId: this.#requiredConfig("releaseCoverArtPackageId", "setReleaseTrackCover"),
218
400
  oriPackageId: this.#requiredConfig("oriPackageId", "setReleaseTrackCover"),
219
401
  }),
220
- };
402
+ }, (operation) => this.#requireReady(operation), "tx");
221
403
  /**
222
404
  * Vault-aware builders and parsers. These take explicit object ids because a
223
405
  * VaultAdminCap is owner-held while the Vault is shared; package ids can come
224
406
  * from the deployment config or be supplied for private deployments.
225
407
  */
226
- vault = vaultActions;
408
+ get vault() {
409
+ if (!this.#availableOperations())
410
+ return undefined;
411
+ this.#requireReady("vault builders");
412
+ return vaultActions;
413
+ }
227
414
  // ── Share currency provisioning (executes; Signer pattern) ─────────────────
228
415
  /** Publishes + initializes a fresh share currency (two txs). */
229
416
  async createShareCurrency(signer, params) {
417
+ await this.ready();
230
418
  return share.createShareCurrency(this.#client, signer, params);
231
419
  }
420
+ /** Execute a composed platform PTB only after exact-ledger validation. */
421
+ async executeViaExecutor(executor, ...thunks) {
422
+ await this.ready();
423
+ return executePlatformViaExecutor(executor, ...thunks);
424
+ }
232
425
  // ── Generated layer ───────────────────────────────────────────────────────
233
426
  /** Generated Move-call bindings, for commands this facade doesn't wrap. */
234
427
  get call() {
235
- return {
236
- listing: bindModulePackage(listingContract, this.packageId, ["newFixedPrice", "newFloorPrice", "newEnabledState", "newDisabledState", "buy", "setState", "setPrice", "deriveId", "hasListing", "releaseId", "pressingId", "price", "state", "isLive", "amount"]),
237
- pressing: bindModulePackage(pressingContract, this.packageId, ["newScheduledState", "newActiveState", "newPausedState", "setState", "deriveId", "releaseId", "supply", "isSelling", "pressingAdminCapPressingId"]),
428
+ const sales = this.#config.recordSales?.status === "available"
429
+ ? this.#config.recordSales
430
+ : undefined;
431
+ const operations = this.#availableOperations();
432
+ return requireReadyOnModuleFunctions({
433
+ record: sales
434
+ ? bindModulePackage(recordContract, sales.recordPackageId, [
435
+ "destroy",
436
+ "releaseId",
437
+ "pressingId",
438
+ "edition",
439
+ "number",
440
+ "purchaseCurrency",
441
+ "purchasePrice",
442
+ "purchasedBy",
443
+ "purchasedTimestampMs",
444
+ "deriveAddress",
445
+ ])
446
+ : undefined,
447
+ listing: sales
448
+ ? bindModulePackage(listingContract, sales.recordShopPackageId, [
449
+ "fixed",
450
+ "floor",
451
+ "enabled",
452
+ "disabled",
453
+ "setState",
454
+ "setPrice",
455
+ "purchase",
456
+ "deriveAddress",
457
+ "releaseId",
458
+ "pressingId",
459
+ "pricing",
460
+ "price",
461
+ "state",
462
+ "isEnabled",
463
+ "isDisabled",
464
+ "isFixed",
465
+ "isFloor",
466
+ ])
467
+ : undefined,
468
+ pressing: sales
469
+ ? bindModulePackage(pressingContract, sales.recordPackageId, [
470
+ "authorizeDistributor",
471
+ "revokeDistributor",
472
+ "deriveAddress",
473
+ "deriveAdminCapAddress",
474
+ "releaseId",
475
+ "edition",
476
+ "supply",
477
+ "maxSupply",
478
+ "distributors",
479
+ "isDistributorAuthorized",
480
+ "pressingId",
481
+ ])
482
+ : undefined,
238
483
  genre: this.#config.genrePackageId
239
- ? bindModulePackage(genreContract, this.#config.genrePackageId, ["deriveAddress"])
484
+ ? bindModulePackage(genreContract, this.#config.genrePackageId, [
485
+ "deriveAddress",
486
+ ])
240
487
  : undefined,
241
488
  releaseDescription: this.#config.releaseDescriptionPackageId
242
489
  ? bindModulePackage(releaseDescriptionContract, this.#config.releaseDescriptionPackageId, ["setDescription", "clearDescription", "hasDescription"])
243
490
  : undefined,
244
491
  releaseDspLink: this.#config.releaseDspLinkPackageId
245
- ? bindModulePackage(releaseDspLinkContract, this.#config.releaseDspLinkPackageId, ["platform", "platformSpotify", "platformAppleMusic", "platformAmazonMusic", "platformBandcamp", "platformDeezer", "platformSoundcloud", "platformTidal", "platformYoutubeMusic", "newSpotify", "newAppleMusicAlbum", "newAppleMusicTrack", "newAmazonMusicAlbum", "newAmazonMusicTrack", "newBandcamp", "newDeezer", "newSoundcloud", "newTidal", "newYoutubeMusic", "setReleaseLink", "clearReleaseLink", "setTrackLink", "clearTrackLink", "clearTrackLinks", "hasReleaseLink"])
492
+ ? bindModulePackage(releaseDspLinkContract, this.#config.releaseDspLinkPackageId, [
493
+ "platform",
494
+ "platformSpotify",
495
+ "platformAppleMusic",
496
+ "platformAmazonMusic",
497
+ "platformBandcamp",
498
+ "platformDeezer",
499
+ "platformSoundcloud",
500
+ "platformTidal",
501
+ "platformYoutubeMusic",
502
+ "newSpotify",
503
+ "newAppleMusicAlbum",
504
+ "newAppleMusicTrack",
505
+ "newAmazonMusicAlbum",
506
+ "newAmazonMusicTrack",
507
+ "newBandcamp",
508
+ "newDeezer",
509
+ "newSoundcloud",
510
+ "newTidal",
511
+ "newYoutubeMusic",
512
+ "setReleaseLink",
513
+ "clearReleaseLink",
514
+ "setTrackLink",
515
+ "clearTrackLink",
516
+ "clearTrackLinks",
517
+ "hasReleaseLink",
518
+ ])
246
519
  : undefined,
247
520
  releaseGenre: this.#config.releaseGenrePackageId
248
- ? bindModulePackage(releaseGenreContract, this.#config.releaseGenrePackageId, ["setPrimaryGenre", "addSecondaryGenre", "removeSecondaryGenre", "setTrackPrimaryGenre", "unsetTrackPrimaryGenre", "hasGenre"])
521
+ ? bindModulePackage(releaseGenreContract, this.#config.releaseGenrePackageId, [
522
+ "setPrimaryGenre",
523
+ "addSecondaryGenre",
524
+ "removeSecondaryGenre",
525
+ "setTrackPrimaryGenre",
526
+ "unsetTrackPrimaryGenre",
527
+ "hasGenre",
528
+ ])
249
529
  : undefined,
250
530
  releaseKind: this.#config.releaseKindPackageId
251
531
  ? bindModulePackage(releaseKindContract, this.#config.releaseKindPackageId, ["setKind", "unsetKind", "hasKind"])
252
532
  : undefined,
253
- releaseRevenueDistributor: this.#config.vaultReleaseRevenueDistributorPluginPackageId
254
- ? bindModulePackage(releaseRevenueDistributorContract, this.#config.vaultReleaseRevenueDistributorPluginPackageId, ["install", "uninstall", "redeemAndDistribute", "receiveAndDistribute", "isInstalled"])
533
+ releaseRevenueDistributor: operations
534
+ ? bindModulePackage(releaseRevenueDistributorContract, operations.actions.releaseRevenueDistributor, [
535
+ "redeemAndDistribute",
536
+ "redeemAllAndDistribute",
537
+ "receiveAndDistribute",
538
+ ])
539
+ : undefined,
540
+ releaseRevenueDistributorPlugin: operations
541
+ ? bindModulePackage(releaseRevenueDistributorPluginContract, operations.plugins.releaseRevenueDistributor, [
542
+ "install",
543
+ "uninstall",
544
+ "redeemAllAndDistribute",
545
+ "receiveAndDistribute",
546
+ "isInstalled",
547
+ ])
548
+ : undefined,
549
+ vault: operations
550
+ ? bindModulePackage(vaultContract, operations.vault.packageId, [
551
+ "share",
552
+ "withdrawCap",
553
+ "restoreCap",
554
+ "derivedAddress",
555
+ "capId",
556
+ "isActive",
557
+ "authorizedPlugins",
558
+ "isPluginAuthorized",
559
+ ])
560
+ : undefined,
561
+ compositionRoyaltyPool: operations
562
+ ? bindModulePackage(compositionRoyaltyPoolContract, operations.actions.compositionRoyaltyPool, ["newPool", "receiveAndDeposit", "redeemAndDeposit", "poolAddress"])
255
563
  : undefined,
256
- vault: this.#config.vaultPackageId
257
- ? bindModulePackage(vaultContract, this.#config.vaultPackageId, ["share", "transferAdminCap", "withdrawCap", "restoreCap", "vaultAddress", "vaultAdminCapAddress", "vaultId", "capId", "isOccupied", "authorizedPluginsId", "authorizedPluginCount", "isPluginAuthorized"])
564
+ compositionRoyaltyPoolPlugin: operations
565
+ ? bindModulePackage(compositionRoyaltyPoolPluginContract, operations.plugins.compositionRoyaltyPool, [
566
+ "install",
567
+ "uninstall",
568
+ "receiveAndDeposit",
569
+ "redeemAndDeposit",
570
+ "isInstalled",
571
+ ])
258
572
  : undefined,
259
- compositionRoyaltyPool: this.#config.vaultCompositionRoyaltyPoolPluginPackageId
260
- ? bindModulePackage(compositionRoyaltyPoolContract, this.#config.vaultCompositionRoyaltyPoolPluginPackageId, ["install", "uninstall", "newPool", "initializePool", "receiveAndDeposit", "sweepAndDeposit", "isInstalled", "poolAddress"])
573
+ recordingRoyaltyPool: operations
574
+ ? bindModulePackage(recordingRoyaltyPoolContract, operations.actions.recordingRoyaltyPool, ["newPool", "receiveAndDeposit", "redeemAndDeposit", "poolAddress"])
261
575
  : undefined,
262
- recordingRoyaltyPool: this.#config.vaultRecordingRoyaltyPoolPluginPackageId
263
- ? bindModulePackage(recordingRoyaltyPoolContract, this.#config.vaultRecordingRoyaltyPoolPluginPackageId, ["install", "uninstall", "newPool", "initializePool", "receiveAndDeposit", "sweepAndDeposit", "isInstalled", "poolAddress"])
576
+ recordingRoyaltyPoolPlugin: operations
577
+ ? bindModulePackage(recordingRoyaltyPoolPluginContract, operations.plugins.recordingRoyaltyPool, [
578
+ "install",
579
+ "uninstall",
580
+ "receiveAndDeposit",
581
+ "redeemAndDeposit",
582
+ "isInstalled",
583
+ ])
264
584
  : undefined,
265
- partyWallet: this.#config.vaultPartyWalletPluginPackageId
266
- ? bindModulePackage(partyWalletContract, this.#config.vaultPartyWalletPluginPackageId, ["install", "uninstall", "receiveObject", "receiveObjects", "receiveCoins", "redeemBalance", "sweepBalance", "isInstalled", "inboxAddress", "settledFunds"])
585
+ partyWallet: operations
586
+ ? bindModulePackage(partyWalletContract, operations.actions.partyWallet, ["receive", "receiveBalance", "redeemBalance", "inboxAddress"])
267
587
  : undefined,
268
- compositionRoutedStake: this.#config.vaultCompositionRoutedStakePluginPackageId
269
- ? bindModulePackage(compositionRoutedStakeContract, this.#config.vaultCompositionRoutedStakePluginPackageId, ["install", "uninstall", "createStake", "register", "unregister", "unstake", "restake", "isInstalled", "stakeAddress"])
588
+ compositionRoutedStake: operations
589
+ ? bindModulePackage(compositionRoutedStakeContract, operations.actions.compositionRoutedStake, ["createStake", "register", "unregister", "unstake", "restake", "stakeAddress"])
270
590
  : undefined,
271
591
  routedStake: this.#config.routedStakePackageId
272
- ? bindModulePackage(routedStakeContract, this.#config.routedStakePackageId, ["share", "register", "unregister", "sweep", "unstake", "restake", "derivedAddress"])
592
+ ? bindModulePackage(routedStakeContract, this.#config.routedStakePackageId, [
593
+ "share",
594
+ "register",
595
+ "unregister",
596
+ "sweep",
597
+ "unstake",
598
+ "restake",
599
+ "derivedAddress",
600
+ ])
273
601
  : undefined,
274
602
  royaltyPool: this.#config.royaltyPoolPackageId
275
- ? bindModulePackage(royaltyPoolContract, this.#config.royaltyPoolPackageId, ["share", "deposit", "sweepAndDeposit", "receiveAndDeposit", "registerStake", "unregisterStake", "claimRewards", "pendingRewards", "stakedShares", "cumulativeRewardPerShare", "cumulativeDeposits", "derivedAddress", "assertDerivedFrom"])
603
+ ? bindModulePackage(royaltyPoolContract, this.#config.royaltyPoolPackageId, [
604
+ "share",
605
+ "deposit",
606
+ "sweepAndDeposit",
607
+ "receiveAndDeposit",
608
+ "registerStake",
609
+ "unregisterStake",
610
+ "claimRewards",
611
+ "pendingRewards",
612
+ "stakedShares",
613
+ "cumulativeRewardPerShare",
614
+ "cumulativeDeposits",
615
+ "derivedAddress",
616
+ "assertDerivedFrom",
617
+ ])
276
618
  : undefined,
277
619
  recordingAdvisory: this.#config.recordingAdvisoryPackageId
278
- ? bindModulePackage(recordingAdvisoryContract, this.#config.recordingAdvisoryPackageId, ["explicit", "notExplicit", "cleaned", "setRating", "unsetRating", "hasRating", "isExplicit", "isNotExplicit", "isCleaned"])
620
+ ? bindModulePackage(recordingAdvisoryContract, this.#config.recordingAdvisoryPackageId, [
621
+ "explicit",
622
+ "notExplicit",
623
+ "cleaned",
624
+ "setRating",
625
+ "unsetRating",
626
+ "hasRating",
627
+ "isExplicit",
628
+ "isNotExplicit",
629
+ "isCleaned",
630
+ ])
279
631
  : undefined,
280
632
  recordingLanguage: this.#config.recordingLanguagePackageId
281
- ? bindModulePackage(recordingLanguageContract, this.#config.recordingLanguagePackageId, ["setLanguages", "setInstrumental", "unsetLanguages", "hasLanguages", "isInstrumental"])
633
+ ? bindModulePackage(recordingLanguageContract, this.#config.recordingLanguagePackageId, [
634
+ "setLanguages",
635
+ "setInstrumental",
636
+ "unsetLanguages",
637
+ "hasLanguages",
638
+ "isInstrumental",
639
+ ])
282
640
  : undefined,
283
641
  recordingMasterReference: this.#config.recordingMasterReferencePackageId
284
- ? bindModulePackage(recordingMasterReferenceContract, this.#config.recordingMasterReferencePackageId, ["setMasterReference", "unsetMasterReference", "hasMasterReference"])
642
+ ? bindModulePackage(recordingMasterReferenceContract, this.#config.recordingMasterReferencePackageId, [
643
+ "setMasterReference",
644
+ "unsetMasterReference",
645
+ "hasMasterReference",
646
+ ])
285
647
  : undefined,
286
648
  recordingPreview: this.#config.recordingPreviewPackageId
287
649
  ? bindModulePackage(recordingPreviewContract, this.#config.recordingPreviewPackageId, ["setPreview", "unsetPreview", "hasPreview"])
@@ -290,27 +652,48 @@ export class MisoPlatformClient {
290
652
  ? bindModulePackage(coverArtContract, this.#config.coverArtPackageId, [])
291
653
  : undefined,
292
654
  releaseCoverArt: this.#config.releaseCoverArtPackageId
293
- ? bindModulePackage(releaseCoverArtContract, this.#config.releaseCoverArtPackageId, ["setCover", "unsetCover", "setTrackCover", "unsetTrackCover", "hasCoverArt"])
655
+ ? bindModulePackage(releaseCoverArtContract, this.#config.releaseCoverArtPackageId, [
656
+ "setCover",
657
+ "unsetCover",
658
+ "setTrackCover",
659
+ "unsetTrackCover",
660
+ "hasCoverArt",
661
+ ])
294
662
  : undefined,
295
663
  releaseCredits: this.#config.releaseCreditsPackageId
296
664
  ? bindModulePackage(releaseCreditsContract, this.#config.releaseCreditsPackageId, ["addCredit", "removeCredit", "hasCredits"])
297
665
  : undefined,
298
- };
666
+ }, (operation) => this.#requireReady(operation), "call");
299
667
  }
300
668
  /** Generated BCS definitions, for parsing objects or events yourself. */
301
669
  bcs = {
670
+ Record: recordContract.Record,
302
671
  Pressing: pressingContract.Pressing,
303
672
  PressingAdminCap: pressingContract.PressingAdminCap,
304
673
  Listing: listingContract.Listing,
305
- Price: listingContract.Price,
674
+ Pricing: listingContract.Pricing,
675
+ ListingState: listingContract.State,
676
+ RecordCreatedEvent: recordContract.RecordCreatedEvent,
677
+ RecordDestroyedEvent: recordContract.RecordDestroyedEvent,
678
+ PressingCreatedEvent: pressingContract.PressingCreatedEvent,
679
+ DistributorAuthorizedEvent: pressingContract.DistributorAuthorizedEvent,
680
+ DistributorRevokedEvent: pressingContract.DistributorRevokedEvent,
681
+ RecordPurchasedEvent: pressingContract.RecordPurchasedEvent,
682
+ ListingCreatedEvent: listingContract.ListingCreatedEvent,
683
+ ListingPriceChangedEvent: listingContract.ListingPriceChangedEvent,
684
+ ListingStateChangedEvent: listingContract.ListingStateChangedEvent,
685
+ RecordSoldEvent: listingContract.RecordSoldEvent,
306
686
  VaultAdminCap: vaultContract.VaultAdminCap,
307
687
  VaultRegistry: vaultContract.VaultRegistry,
308
688
  VaultKey: vaultContract.VaultKey,
309
689
  VaultAdminCapKey: vaultContract.VaultAdminCapKey,
310
- VaultRegistryCreatedEvent: vaultContract.VaultRegistryCreatedEvent,
311
690
  VaultCreatedEvent: vaultContract.VaultCreatedEvent,
312
691
  VaultCapabilityWithdrawnEvent: vaultContract.VaultCapabilityWithdrawnEvent,
313
692
  VaultCapabilityRestoredEvent: vaultContract.VaultCapabilityRestoredEvent,
693
+ PartyObjectReceivedEvent: partyWalletContract.ObjectReceivedEvent,
694
+ PartyCoinsReceivedEvent: partyWalletContract.CoinsReceivedEvent,
695
+ PartyFundsRedeemedEvent: partyWalletContract.FundsRedeemedEvent,
696
+ ReleaseTrackRevenueDistributedEvent: releaseRevenueDistributorContract.ReleaseTrackRevenueDistributedEvent,
314
697
  ReleaseRevenueDistributedEvent: releaseRevenueDistributorContract.ReleaseRevenueDistributedEvent,
315
698
  };
316
699
  }
@@ -327,13 +710,16 @@ export function miso(options = {}) {
327
710
  return {
328
711
  name,
329
712
  register: (client) => {
330
- const deployment = options.deployment ?? getMisoPlatformDeployment(client.network);
713
+ const deployment = immutableSnapshot(options.deployment ?? getMisoPlatformDeployment(client.network));
714
+ if (deployment.network !== client.network) {
715
+ throw new MisoNetworkMismatchError(client.network, deployment.network);
716
+ }
331
717
  const protocol = protocolMiso({
332
718
  deployment: deployment.protocol,
333
719
  graphqlClient: options.graphqlClient,
334
720
  }).register(client);
335
721
  return new MisoPlatformClient(client, {
336
- packageId: deployment.packages.pressing,
722
+ recordSales: deployment.recordSales,
337
723
  misoPackageId: deployment.protocol.miso,
338
724
  minatoPackageId: deployment.packages.minato,
339
725
  releaseRegistryId: deployment.objects.releaseRegistry,
@@ -345,15 +731,9 @@ export function miso(options = {}) {
345
731
  recordingLanguagePackageId: deployment.packages.recordingLanguage,
346
732
  recordingMasterReferencePackageId: deployment.packages.recordingMasterReference,
347
733
  recordingPreviewPackageId: deployment.packages.recordingPreview,
348
- vaultPackageId: deployment.packages.vault,
349
- vaultRegistryId: deployment.objects.vaultRegistry,
734
+ operations: deployment.operations,
350
735
  royaltyPoolPackageId: deployment.packages.royaltyPool,
351
- vaultCompositionRoyaltyPoolPluginPackageId: deployment.packages.vaultCompositionRoyaltyPoolPlugin,
352
- vaultRecordingRoyaltyPoolPluginPackageId: deployment.packages.vaultRecordingRoyaltyPoolPlugin,
353
- vaultPartyWalletPluginPackageId: deployment.packages.vaultPartyWalletPlugin,
354
- vaultCompositionRoutedStakePluginPackageId: deployment.packages.vaultCompositionRoutedStakePlugin,
355
736
  routedStakePackageId: deployment.packages.routedStake,
356
- vaultReleaseRevenueDistributorPluginPackageId: deployment.packages.vaultReleaseRevenueDistributorPlugin,
357
737
  releaseCreditsPackageId: deployment.packages.releaseCredits,
358
738
  misoCreditPackageId: deployment.packages.credit,
359
739
  coverArtPackageId: deployment.packages.coverArt,
@@ -373,10 +753,16 @@ export function misoPlatform(config) {
373
753
  return {
374
754
  name: "misoPlatform",
375
755
  register: (client) => {
376
- const protocol = config.misoPackageId
377
- ? protocolMiso({ deployment: { packageId: config.misoPackageId } }).register(client)
756
+ const configSnapshot = immutableSnapshot(config);
757
+ if (configSnapshot.network && configSnapshot.network !== client.network) {
758
+ throw new MisoNetworkMismatchError(client.network, configSnapshot.network);
759
+ }
760
+ const protocol = configSnapshot.misoPackageId
761
+ ? protocolMiso({
762
+ deployment: { packageId: configSnapshot.misoPackageId },
763
+ }).register(client)
378
764
  : undefined;
379
- return new MisoPlatformClient(client, config, protocol);
765
+ return new MisoPlatformClient(client, configSnapshot, protocol);
380
766
  },
381
767
  };
382
768
  }