@misofm/sdk 0.9.0 → 0.10.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 (275) hide show
  1. package/README.md +88 -56
  2. package/dist/client.d.ts +126 -18
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +210 -44
  5. package/dist/client.js.map +1 -1
  6. package/dist/contracts/composition_routed_stake/composition_routed_stake.d.ts +205 -0
  7. package/dist/contracts/composition_routed_stake/composition_routed_stake.d.ts.map +1 -0
  8. package/dist/contracts/composition_routed_stake/composition_routed_stake.js +184 -0
  9. package/dist/contracts/composition_routed_stake/composition_routed_stake.js.map +1 -0
  10. package/dist/contracts/composition_routed_stake/witness.d.ts +7 -0
  11. package/dist/contracts/composition_routed_stake/witness.d.ts.map +1 -0
  12. package/dist/contracts/composition_routed_stake/witness.js +9 -0
  13. package/dist/contracts/composition_routed_stake/witness.js.map +1 -0
  14. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.d.ts +89 -28
  15. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.d.ts.map +1 -1
  16. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.js +84 -23
  17. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.js.map +1 -1
  18. package/dist/contracts/composition_royalty_pool/witness.d.ts +6 -0
  19. package/dist/contracts/composition_royalty_pool/witness.d.ts.map +1 -0
  20. package/dist/contracts/composition_royalty_pool/witness.js +8 -0
  21. package/dist/contracts/composition_royalty_pool/witness.js.map +1 -0
  22. package/dist/contracts/genre/genre.d.ts +96 -0
  23. package/dist/contracts/genre/genre.d.ts.map +1 -0
  24. package/dist/contracts/genre/genre.js +107 -0
  25. package/dist/contracts/genre/genre.js.map +1 -0
  26. package/dist/contracts/recording_advisory/recording_advisory.d.ts +194 -0
  27. package/dist/contracts/recording_advisory/recording_advisory.d.ts.map +1 -0
  28. package/dist/contracts/recording_advisory/recording_advisory.js +204 -0
  29. package/dist/contracts/recording_advisory/recording_advisory.js.map +1 -0
  30. package/dist/contracts/recording_language/deps/language_code/language_code.d.ts +6 -0
  31. package/dist/contracts/recording_language/deps/language_code/language_code.d.ts.map +1 -0
  32. package/dist/contracts/recording_language/deps/language_code/language_code.js +8 -0
  33. package/dist/contracts/recording_language/deps/language_code/language_code.js.map +1 -0
  34. package/dist/contracts/recording_language/recording_language.d.ts +152 -0
  35. package/dist/contracts/recording_language/recording_language.d.ts.map +1 -0
  36. package/dist/contracts/recording_language/recording_language.js +149 -0
  37. package/dist/contracts/recording_language/recording_language.js.map +1 -0
  38. package/dist/contracts/recording_master_reference/deps/ori/walrus_data.d.ts +52 -0
  39. package/dist/contracts/recording_master_reference/deps/ori/walrus_data.d.ts.map +1 -0
  40. package/dist/contracts/recording_master_reference/deps/ori/walrus_data.js +37 -0
  41. package/dist/contracts/recording_master_reference/deps/ori/walrus_data.js.map +1 -0
  42. package/dist/contracts/recording_master_reference/recording_master_reference.d.ts +131 -0
  43. package/dist/contracts/recording_master_reference/recording_master_reference.d.ts.map +1 -0
  44. package/dist/contracts/recording_master_reference/recording_master_reference.js +121 -0
  45. package/dist/contracts/recording_master_reference/recording_master_reference.js.map +1 -0
  46. package/dist/contracts/recording_preview/deps/ori/walrus_data.d.ts +52 -0
  47. package/dist/contracts/recording_preview/deps/ori/walrus_data.d.ts.map +1 -0
  48. package/dist/contracts/recording_preview/deps/ori/walrus_data.js +37 -0
  49. package/dist/contracts/recording_preview/deps/ori/walrus_data.js.map +1 -0
  50. package/dist/contracts/recording_preview/recording_preview.d.ts +104 -0
  51. package/dist/contracts/recording_preview/recording_preview.d.ts.map +1 -0
  52. package/dist/contracts/recording_preview/recording_preview.js +94 -0
  53. package/dist/contracts/recording_preview/recording_preview.js.map +1 -0
  54. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.d.ts +90 -28
  55. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.d.ts.map +1 -1
  56. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.js +84 -23
  57. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.js.map +1 -1
  58. package/dist/contracts/recording_royalty_pool/witness.d.ts +6 -0
  59. package/dist/contracts/recording_royalty_pool/witness.d.ts.map +1 -0
  60. package/dist/contracts/recording_royalty_pool/witness.js +8 -0
  61. package/dist/contracts/recording_royalty_pool/witness.js.map +1 -0
  62. package/dist/contracts/release_description/release_description.d.ts +112 -0
  63. package/dist/contracts/release_description/release_description.d.ts.map +1 -0
  64. package/dist/contracts/release_description/release_description.js +123 -0
  65. package/dist/contracts/release_description/release_description.js.map +1 -0
  66. package/dist/contracts/release_dsp_link/release_dsp_link.d.ts +644 -0
  67. package/dist/contracts/release_dsp_link/release_dsp_link.d.ts.map +1 -0
  68. package/dist/contracts/release_dsp_link/release_dsp_link.js +556 -0
  69. package/dist/contracts/release_dsp_link/release_dsp_link.js.map +1 -0
  70. package/dist/contracts/release_genre/deps/per_track/per_track.d.ts +33 -0
  71. package/dist/contracts/release_genre/deps/per_track/per_track.d.ts.map +1 -0
  72. package/dist/contracts/release_genre/deps/per_track/per_track.js +32 -0
  73. package/dist/contracts/release_genre/deps/per_track/per_track.js.map +1 -0
  74. package/dist/contracts/release_genre/release_genre.d.ts +193 -0
  75. package/dist/contracts/release_genre/release_genre.d.ts.map +1 -0
  76. package/dist/contracts/release_genre/release_genre.js +207 -0
  77. package/dist/contracts/release_genre/release_genre.js.map +1 -0
  78. package/dist/contracts/release_kind/release_kind.d.ts +98 -0
  79. package/dist/contracts/release_kind/release_kind.d.ts.map +1 -0
  80. package/dist/contracts/release_kind/release_kind.js +109 -0
  81. package/dist/contracts/release_kind/release_kind.js.map +1 -0
  82. package/dist/contracts/release_revenue_distributor/release_revenue_distributor.d.ts +106 -0
  83. package/dist/contracts/release_revenue_distributor/release_revenue_distributor.d.ts.map +1 -0
  84. package/dist/contracts/release_revenue_distributor/release_revenue_distributor.js +113 -0
  85. package/dist/contracts/release_revenue_distributor/release_revenue_distributor.js.map +1 -0
  86. package/dist/contracts/release_revenue_distributor/witness.d.ts +7 -0
  87. package/dist/contracts/release_revenue_distributor/witness.d.ts.map +1 -0
  88. package/dist/contracts/release_revenue_distributor/witness.js +9 -0
  89. package/dist/contracts/release_revenue_distributor/witness.js.map +1 -0
  90. package/dist/contracts/release_snapshot_bundle/deps/ori/walrus_data.d.ts +52 -0
  91. package/dist/contracts/release_snapshot_bundle/deps/ori/walrus_data.d.ts.map +1 -0
  92. package/dist/contracts/release_snapshot_bundle/deps/ori/walrus_data.js +37 -0
  93. package/dist/contracts/release_snapshot_bundle/deps/ori/walrus_data.js.map +1 -0
  94. package/dist/contracts/release_snapshot_bundle/release_snapshot_bundle.d.ts +91 -0
  95. package/dist/contracts/release_snapshot_bundle/release_snapshot_bundle.d.ts.map +1 -0
  96. package/dist/contracts/release_snapshot_bundle/release_snapshot_bundle.js +91 -0
  97. package/dist/contracts/release_snapshot_bundle/release_snapshot_bundle.js.map +1 -0
  98. package/dist/contracts/routed_stake/deps/royalty_pool/stake.d.ts +54 -0
  99. package/dist/contracts/routed_stake/deps/royalty_pool/stake.d.ts.map +1 -0
  100. package/dist/contracts/routed_stake/deps/royalty_pool/stake.js +37 -0
  101. package/dist/contracts/routed_stake/deps/royalty_pool/stake.js.map +1 -0
  102. package/dist/contracts/routed_stake/deps/std/type_name.d.ts +18 -0
  103. package/dist/contracts/routed_stake/deps/std/type_name.d.ts.map +1 -0
  104. package/dist/contracts/routed_stake/deps/std/type_name.js +20 -0
  105. package/dist/contracts/routed_stake/deps/std/type_name.js.map +1 -0
  106. package/dist/contracts/routed_stake/deps/sui/balance.d.ts +13 -0
  107. package/dist/contracts/routed_stake/deps/sui/balance.d.ts.map +1 -0
  108. package/dist/contracts/routed_stake/deps/sui/balance.js +15 -0
  109. package/dist/contracts/routed_stake/deps/sui/balance.js.map +1 -0
  110. package/dist/contracts/routed_stake/deps/sui/vec_map.d.ts +37 -0
  111. package/dist/contracts/routed_stake/deps/sui/vec_map.d.ts.map +1 -0
  112. package/dist/contracts/routed_stake/deps/sui/vec_map.js +28 -0
  113. package/dist/contracts/routed_stake/deps/sui/vec_map.js.map +1 -0
  114. package/dist/contracts/routed_stake/routed_stake.d.ts +356 -0
  115. package/dist/contracts/routed_stake/routed_stake.d.ts.map +1 -0
  116. package/dist/contracts/routed_stake/routed_stake.js +311 -0
  117. package/dist/contracts/routed_stake/routed_stake.js.map +1 -0
  118. package/dist/contracts/royalty_pool/pool.d.ts +27 -17
  119. package/dist/contracts/royalty_pool/pool.d.ts.map +1 -1
  120. package/dist/contracts/royalty_pool/pool.js +26 -17
  121. package/dist/contracts/royalty_pool/pool.js.map +1 -1
  122. package/dist/contracts/vault/deps/sui/bag.d.ts +35 -0
  123. package/dist/contracts/vault/deps/sui/bag.d.ts.map +1 -0
  124. package/dist/contracts/vault/deps/sui/bag.js +37 -0
  125. package/dist/contracts/vault/deps/sui/bag.js.map +1 -0
  126. package/dist/contracts/vault/deps/sui/borrow.d.ts +20 -0
  127. package/dist/contracts/vault/deps/sui/borrow.d.ts.map +1 -0
  128. package/dist/contracts/vault/deps/sui/borrow.js +21 -0
  129. package/dist/contracts/vault/deps/sui/borrow.js.map +1 -0
  130. package/dist/contracts/vault/vault.d.ts +276 -0
  131. package/dist/contracts/vault/vault.d.ts.map +1 -0
  132. package/dist/contracts/vault/vault.js +274 -0
  133. package/dist/contracts/vault/vault.js.map +1 -0
  134. package/dist/contracts.d.ts +14 -2
  135. package/dist/contracts.d.ts.map +1 -1
  136. package/dist/contracts.js +16 -7
  137. package/dist/contracts.js.map +1 -1
  138. package/dist/cover.d.ts +17 -3
  139. package/dist/cover.d.ts.map +1 -1
  140. package/dist/cover.js +43 -20
  141. package/dist/cover.js.map +1 -1
  142. package/dist/credits.d.ts +31 -12
  143. package/dist/credits.d.ts.map +1 -1
  144. package/dist/credits.js +41 -25
  145. package/dist/credits.js.map +1 -1
  146. package/dist/deployments.d.ts +31 -57
  147. package/dist/deployments.d.ts.map +1 -1
  148. package/dist/deployments.js +5 -53
  149. package/dist/deployments.js.map +1 -1
  150. package/dist/index.d.ts +4 -2
  151. package/dist/index.d.ts.map +1 -1
  152. package/dist/index.js +6 -5
  153. package/dist/index.js.map +1 -1
  154. package/dist/pressing.d.ts +8 -7
  155. package/dist/pressing.d.ts.map +1 -1
  156. package/dist/pressing.js +91 -32
  157. package/dist/pressing.js.map +1 -1
  158. package/dist/read/artist.js +3 -3
  159. package/dist/read/artist.js.map +1 -1
  160. package/dist/read/catalog.d.ts +14 -9
  161. package/dist/read/catalog.d.ts.map +1 -1
  162. package/dist/read/catalog.js +71 -37
  163. package/dist/read/catalog.js.map +1 -1
  164. package/dist/read/client.d.ts +4 -2
  165. package/dist/read/client.d.ts.map +1 -1
  166. package/dist/read/client.js +15 -4
  167. package/dist/read/client.js.map +1 -1
  168. package/dist/read/config.d.ts +14 -11
  169. package/dist/read/config.d.ts.map +1 -1
  170. package/dist/read/config.js +10 -37
  171. package/dist/read/config.js.map +1 -1
  172. package/dist/read/index.d.ts +2 -2
  173. package/dist/read/index.d.ts.map +1 -1
  174. package/dist/read/index.js +1 -1
  175. package/dist/read/index.js.map +1 -1
  176. package/dist/read/receipts.d.ts +24 -7
  177. package/dist/read/receipts.d.ts.map +1 -1
  178. package/dist/read/receipts.js +78 -25
  179. package/dist/read/receipts.js.map +1 -1
  180. package/dist/read/types.d.ts +43 -25
  181. package/dist/read/types.d.ts.map +1 -1
  182. package/dist/read/types.js +2 -2
  183. package/dist/read/types.js.map +1 -1
  184. package/dist/recording-extensions.d.ts +37 -0
  185. package/dist/recording-extensions.d.ts.map +1 -0
  186. package/dist/recording-extensions.js +61 -0
  187. package/dist/recording-extensions.js.map +1 -0
  188. package/dist/release-extensions.d.ts +92 -0
  189. package/dist/release-extensions.d.ts.map +1 -0
  190. package/dist/release-extensions.js +175 -0
  191. package/dist/release-extensions.js.map +1 -0
  192. package/dist/release-graph.d.ts +17 -26
  193. package/dist/release-graph.d.ts.map +1 -1
  194. package/dist/release-graph.js +55 -49
  195. package/dist/release-graph.js.map +1 -1
  196. package/dist/transactions.d.ts +43 -24
  197. package/dist/transactions.d.ts.map +1 -1
  198. package/dist/transactions.js +48 -27
  199. package/dist/transactions.js.map +1 -1
  200. package/dist/vault.d.ts +268 -0
  201. package/dist/vault.d.ts.map +1 -0
  202. package/dist/vault.js +389 -0
  203. package/dist/vault.js.map +1 -0
  204. package/package.json +17 -11
  205. package/src/client.ts +428 -61
  206. package/src/contracts/composition_routed_stake/composition_routed_stake.ts +346 -0
  207. package/src/contracts/composition_routed_stake/witness.ts +11 -0
  208. package/src/contracts/composition_royalty_pool/composition_royalty_pool.ts +151 -35
  209. package/src/contracts/composition_royalty_pool/witness.ts +7 -0
  210. package/src/contracts/genre/genre.ts +151 -0
  211. package/src/contracts/recording_advisory/recording_advisory.ts +315 -0
  212. package/src/contracts/recording_language/deps/language_code/language_code.ts +7 -0
  213. package/src/contracts/recording_language/recording_language.ts +237 -0
  214. package/src/contracts/recording_master_reference/deps/ori/walrus_data.ts +36 -0
  215. package/src/contracts/recording_master_reference/recording_master_reference.ts +181 -0
  216. package/src/contracts/recording_preview/deps/ori/walrus_data.ts +36 -0
  217. package/src/contracts/recording_preview/recording_preview.ts +154 -0
  218. package/src/contracts/recording_royalty_pool/recording_royalty_pool.ts +152 -35
  219. package/src/contracts/recording_royalty_pool/witness.ts +7 -0
  220. package/src/contracts/release_description/release_description.ts +167 -0
  221. package/src/contracts/release_dsp_link/release_dsp_link.ts +813 -0
  222. package/src/contracts/release_genre/deps/per_track/per_track.ts +36 -0
  223. package/src/contracts/release_genre/release_genre.ts +314 -0
  224. package/src/contracts/release_kind/release_kind.ts +153 -0
  225. package/src/contracts/release_revenue_distributor/release_revenue_distributor.ts +178 -0
  226. package/src/contracts/release_revenue_distributor/witness.ts +11 -0
  227. package/src/contracts/release_snapshot_bundle/deps/ori/walrus_data.ts +36 -0
  228. package/src/contracts/release_snapshot_bundle/release_snapshot_bundle.ts +124 -0
  229. package/src/contracts/routed_stake/deps/royalty_pool/stake.ts +39 -0
  230. package/src/contracts/routed_stake/deps/std/type_name.ts +22 -0
  231. package/src/contracts/routed_stake/deps/sui/balance.ts +17 -0
  232. package/src/contracts/routed_stake/deps/sui/vec_map.ts +33 -0
  233. package/src/contracts/routed_stake/routed_stake.ts +508 -0
  234. package/src/contracts/royalty_pool/pool.ts +34 -24
  235. package/src/contracts/vault/deps/sui/bag.ts +39 -0
  236. package/src/contracts/vault/deps/sui/borrow.ts +25 -0
  237. package/src/contracts/vault/vault.ts +454 -0
  238. package/src/contracts.ts +17 -9
  239. package/src/cover.ts +62 -37
  240. package/src/credits.ts +64 -51
  241. package/src/deployments.ts +36 -97
  242. package/src/index.ts +11 -5
  243. package/src/pressing.ts +135 -39
  244. package/src/read/artist.ts +3 -3
  245. package/src/read/catalog.ts +99 -44
  246. package/src/read/client.ts +20 -4
  247. package/src/read/config.ts +23 -49
  248. package/src/read/index.ts +3 -1
  249. package/src/read/receipts.ts +103 -26
  250. package/src/read/types.ts +44 -27
  251. package/src/recording-extensions.ts +102 -0
  252. package/src/release-extensions.ts +286 -0
  253. package/src/release-graph.ts +68 -81
  254. package/src/transactions.ts +79 -53
  255. package/src/vault.ts +777 -0
  256. package/dist/contracts/miso_drop/drop.d.ts +0 -550
  257. package/dist/contracts/miso_drop/drop.d.ts.map +0 -1
  258. package/dist/contracts/miso_drop/drop.js +0 -523
  259. package/dist/contracts/miso_drop/drop.js.map +0 -1
  260. package/dist/contracts/release_registry/release_registry.d.ts +0 -114
  261. package/dist/contracts/release_registry/release_registry.d.ts.map +0 -1
  262. package/dist/contracts/release_registry/release_registry.js +0 -119
  263. package/dist/contracts/release_registry/release_registry.js.map +0 -1
  264. package/dist/drop.d.ts +0 -127
  265. package/dist/drop.d.ts.map +0 -1
  266. package/dist/drop.js +0 -202
  267. package/dist/drop.js.map +0 -1
  268. package/dist/extensions/royalty-pool.d.ts +0 -32
  269. package/dist/extensions/royalty-pool.d.ts.map +0 -1
  270. package/dist/extensions/royalty-pool.js +0 -33
  271. package/dist/extensions/royalty-pool.js.map +0 -1
  272. package/src/contracts/miso_drop/drop.ts +0 -798
  273. package/src/contracts/release_registry/release_registry.ts +0 -160
  274. package/src/drop.ts +0 -376
  275. package/src/extensions/royalty-pool.ts +0 -90
package/src/credits.ts CHANGED
@@ -44,6 +44,30 @@ import * as recordingCredits from "./contracts/recording_credits/recording_credi
44
44
  import * as recordingPartyRole from "./contracts/recording_credits/recording_party_role.ts";
45
45
  import * as releaseCredits from "./contracts/release_credits/release_credits.ts";
46
46
  import * as releasePartyRole from "./contracts/release_credits/release_party_role.ts";
47
+ import { directAdminCap, invokeWithAdminCap, type AdminCapAuthority } from "./vault.ts";
48
+
49
+ type CompositionAuthorityInput =
50
+ | { readonly authority: AdminCapAuthority; readonly compositionAdminCapId?: never }
51
+ | { readonly authority?: never; readonly compositionAdminCapId: string };
52
+ type RecordingAuthorityInput =
53
+ | { readonly authority: AdminCapAuthority; readonly recordingAdminCapId?: never }
54
+ | { readonly authority?: never; readonly recordingAdminCapId: string };
55
+ type ReleaseAuthorityInput =
56
+ | { readonly authority: AdminCapAuthority; readonly releaseAdminCapId?: never }
57
+ | { readonly authority?: never; readonly releaseAdminCapId: string };
58
+
59
+ function compositionAuthorityOf(input: CompositionAuthorityInput): AdminCapAuthority {
60
+ if (input.authority !== undefined) return input.authority;
61
+ return directAdminCap(input.compositionAdminCapId);
62
+ }
63
+ function recordingAuthorityOf(input: RecordingAuthorityInput): AdminCapAuthority {
64
+ if (input.authority !== undefined) return input.authority;
65
+ return directAdminCap(input.recordingAdminCapId);
66
+ }
67
+ function releaseAuthorityOf(input: ReleaseAuthorityInput): AdminCapAuthority {
68
+ if (input.authority !== undefined) return input.authority;
69
+ return directAdminCap(input.releaseAdminCapId);
70
+ }
47
71
 
48
72
  // ── Role model ────────────────────────────────────────────────────────────────
49
73
 
@@ -341,11 +365,9 @@ function buildCredit(
341
365
 
342
366
  // ── Writers ───────────────────────────────────────────────────────────────────
343
367
 
344
- export interface AttachCompositionCreditParams {
368
+ interface AttachCompositionCreditParamsBase {
345
369
  /** The `Composition` object to credit on. */
346
370
  compositionId: string;
347
- /** The composition's `CompositionAdminCap`. */
348
- compositionAdminCapId: string;
349
371
  /** The `Party` being credited. */
350
372
  partyId: string;
351
373
  /** Human-readable name for the credit (≤200 bytes, non-empty). */
@@ -359,6 +381,8 @@ export interface AttachCompositionCreditParams {
359
381
  /** `miso_credit` package id (home of `credit::new`). */
360
382
  misoCreditPackageId: string;
361
383
  }
384
+ export type AttachCompositionCreditParams =
385
+ AttachCompositionCreditParamsBase & CompositionAuthorityInput;
362
386
 
363
387
  /**
364
388
  * Adds a writing credit for a party on a composition. Throws (client-side,
@@ -382,26 +406,18 @@ export function attachCompositionCredit(
382
406
  p.displayName,
383
407
  roleArgs,
384
408
  );
385
- tx.add(
386
- compositionCredits.addCredit({
387
- package: p.compositionCreditsPackageId,
388
- typeArguments: [p.compositionShareType],
389
- arguments: [
390
- p.compositionId,
391
- p.compositionAdminCapId,
392
- p.partyId,
393
- credit,
394
- ],
395
- }),
396
- );
409
+ invokeWithAdminCap(tx, compositionAuthorityOf(p), {
410
+ target: `${p.compositionCreditsPackageId}::composition_credits::add_credit`,
411
+ typeArguments: [p.compositionShareType],
412
+ arguments: [tx.object(p.compositionId), tx.object(p.partyId), credit],
413
+ adminCapIndex: 1,
414
+ });
397
415
  };
398
416
  }
399
417
 
400
- export interface AttachRecordingCreditParams {
418
+ interface AttachRecordingCreditParamsBase {
401
419
  /** The `Recording` object to credit on. */
402
420
  recordingId: string;
403
- /** The recording's `RecordingAdminCap`. */
404
- recordingAdminCapId: string;
405
421
  /** The `Party` being credited. */
406
422
  partyId: string;
407
423
  /** Human-readable name for the credit (≤200 bytes, non-empty). */
@@ -417,6 +433,8 @@ export interface AttachRecordingCreditParams {
417
433
  /** `miso_credit` package id (home of `credit::new`). */
418
434
  misoCreditPackageId: string;
419
435
  }
436
+ export type AttachRecordingCreditParams =
437
+ AttachRecordingCreditParamsBase & RecordingAuthorityInput;
420
438
 
421
439
  /**
422
440
  * Adds a production/performance credit for a party on a recording. Throws
@@ -439,21 +457,18 @@ export function attachRecordingCredit(p: AttachRecordingCreditParams): TxThunk {
439
457
  p.displayName,
440
458
  roleArgs,
441
459
  );
442
- tx.add(
443
- recordingCredits.addCredit({
444
- package: p.recordingCreditsPackageId,
445
- typeArguments: [p.recordingShareType, p.compositionShareType],
446
- arguments: [p.recordingId, p.recordingAdminCapId, p.partyId, credit],
447
- }),
448
- );
460
+ invokeWithAdminCap(tx, recordingAuthorityOf(p), {
461
+ target: `${p.recordingCreditsPackageId}::recording_credits::add_credit`,
462
+ typeArguments: [p.recordingShareType, p.compositionShareType],
463
+ arguments: [tx.object(p.recordingId), tx.object(p.partyId), credit],
464
+ adminCapIndex: 1,
465
+ });
449
466
  };
450
467
  }
451
468
 
452
- export interface AddRecordingArtistParams {
469
+ interface AddRecordingArtistParamsBase {
453
470
  /** The `Recording` object. */
454
471
  recordingId: string;
455
- /** The recording's `RecordingAdminCap`. */
456
- recordingAdminCapId: string;
457
472
  /** The `Party` to designate. Must already be credited on the recording. */
458
473
  partyId: string;
459
474
  /** The recording's own share coin type (the `RecordingShare` phantom). */
@@ -463,6 +478,8 @@ export interface AddRecordingArtistParams {
463
478
  /** `recording_credits` package id. */
464
479
  recordingCreditsPackageId: string;
465
480
  }
481
+ export type AddRecordingArtistParams =
482
+ AddRecordingArtistParamsBase & RecordingAuthorityInput;
466
483
 
467
484
  /**
468
485
  * Designates an already-credited party as a primary artist on a recording. The
@@ -473,13 +490,12 @@ export function addRecordingPrimaryArtist(
473
490
  p: AddRecordingArtistParams,
474
491
  ): TxThunk {
475
492
  return (tx) => {
476
- tx.add(
477
- recordingCredits.addPrimaryArtist({
478
- package: p.recordingCreditsPackageId,
479
- typeArguments: [p.recordingShareType, p.compositionShareType],
480
- arguments: [p.recordingId, p.recordingAdminCapId, p.partyId],
481
- }),
482
- );
493
+ invokeWithAdminCap(tx, recordingAuthorityOf(p), {
494
+ target: `${p.recordingCreditsPackageId}::recording_credits::add_primary_artist`,
495
+ typeArguments: [p.recordingShareType, p.compositionShareType],
496
+ arguments: [tx.object(p.recordingId), tx.object(p.partyId)],
497
+ adminCapIndex: 1,
498
+ });
483
499
  };
484
500
  }
485
501
 
@@ -492,21 +508,18 @@ export function addRecordingFeaturedArtist(
492
508
  p: AddRecordingArtistParams,
493
509
  ): TxThunk {
494
510
  return (tx) => {
495
- tx.add(
496
- recordingCredits.addFeaturedArtist({
497
- package: p.recordingCreditsPackageId,
498
- typeArguments: [p.recordingShareType, p.compositionShareType],
499
- arguments: [p.recordingId, p.recordingAdminCapId, p.partyId],
500
- }),
501
- );
511
+ invokeWithAdminCap(tx, recordingAuthorityOf(p), {
512
+ target: `${p.recordingCreditsPackageId}::recording_credits::add_featured_artist`,
513
+ typeArguments: [p.recordingShareType, p.compositionShareType],
514
+ arguments: [tx.object(p.recordingId), tx.object(p.partyId)],
515
+ adminCapIndex: 1,
516
+ });
502
517
  };
503
518
  }
504
519
 
505
- export interface AddReleaseCreditParams {
520
+ interface AddReleaseCreditParamsBase {
506
521
  /** The `Release` object to credit on. */
507
522
  releaseId: string;
508
- /** The release's `ReleaseAdminCap`. */
509
- releaseAdminCapId: string;
510
523
  /** The `Party` being credited. */
511
524
  partyId: string;
512
525
  /** Human-readable name for the credit (≤200 bytes, non-empty). */
@@ -518,6 +531,7 @@ export interface AddReleaseCreditParams {
518
531
  /** `miso_credit` package id (home of `credit::new`). */
519
532
  misoCreditPackageId: string;
520
533
  }
534
+ export type AddReleaseCreditParams = AddReleaseCreditParamsBase & ReleaseAuthorityInput;
521
535
 
522
536
  /**
523
537
  * Adds a top-line billing credit (a single role) for a party on a release.
@@ -536,12 +550,11 @@ export function addReleaseCredit(p: AddReleaseCreditParams): TxThunk {
536
550
  p.displayName,
537
551
  [roleArg],
538
552
  );
539
- tx.add(
540
- releaseCredits.addCredit({
541
- package: p.releaseCreditsPackageId,
542
- arguments: [p.releaseId, p.releaseAdminCapId, p.partyId, credit],
543
- }),
544
- );
553
+ invokeWithAdminCap(tx, releaseAuthorityOf(p), {
554
+ target: `${p.releaseCreditsPackageId}::release_credits::add_credit`,
555
+ arguments: [tx.object(p.releaseId), tx.object(p.partyId), credit],
556
+ adminCapIndex: 1,
557
+ });
545
558
  };
546
559
  }
547
560
 
@@ -1,10 +1,9 @@
1
1
  // Copyright (c) Miso Labs, Inc.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- import {
5
- MISO_PROTOCOL_DEPLOYMENTS,
6
- type MisoNetwork,
7
- type MisoProtocolDeployment,
4
+ import type {
5
+ MisoNetwork,
6
+ MisoProtocolDeployment,
8
7
  } from "@misonetwork/sdk/deployments";
9
8
 
10
9
  /** Complete on-chain identity used by the Miso platform SDK on one network. */
@@ -14,28 +13,47 @@ export interface MisoPlatformDeployment {
14
13
  readonly packages: {
15
14
  readonly pressing: string;
16
15
  readonly record: string;
17
- readonly releaseRegistry: string;
18
16
  readonly minato: string;
19
- readonly drop: string;
20
17
  readonly credit: string;
21
18
  readonly compositionCredits: string;
22
19
  readonly recordingCredits: string;
23
20
  readonly releaseCredits: string;
24
21
  /** Base royalty-pool value library. */
25
22
  readonly royaltyPool: string;
26
- /** Composition royalty-pool extension. */
27
- readonly compositionRoyaltyPool: string;
28
- /** Recording royalty-pool extension. */
29
- readonly recordingRoyaltyPool: string;
23
+ /** Shared custody package for protocol admin capabilities. */
24
+ readonly vault: string;
25
+ /** Vault plugin that creates and cranks Composition royalty pools. */
26
+ readonly compositionRoyaltyPoolPlugin: string;
27
+ /** Vault plugin that creates and cranks Recording royalty pools. */
28
+ readonly recordingRoyaltyPoolPlugin: string;
29
+ /** Generic stake wrapper used by the composition routed-stake plugin. */
30
+ readonly routedStake: string;
31
+ /** Vault plugin for Composition-owned Recording-share staking. */
32
+ readonly compositionRoutedStakePlugin: string;
30
33
  /** Cover-art value type used by the release cover extension. */
31
34
  readonly coverArt: string;
32
35
  readonly releaseCoverArt: string;
36
+ /** Curated Genre vocabulary package used by release_genre. */
37
+ readonly genre: string;
38
+ readonly releaseDescription: string;
39
+ readonly releaseDspLink: string;
40
+ readonly releaseGenre: string;
41
+ readonly releaseKind: string;
42
+ /** Vault plugin that routes Release revenue into Recording addresses. */
43
+ readonly releaseRevenueDistributorPlugin: string;
44
+ readonly releaseSnapshotBundle: string;
45
+ readonly recordingAdvisory: string;
46
+ readonly recordingLanguage: string;
47
+ readonly recordingMasterReference: string;
48
+ readonly recordingPreview: string;
33
49
  /** External `ori::walrus_data::WalrusData` dependency used by cover art. */
34
50
  readonly ori: string;
35
51
  };
36
52
  readonly objects: {
37
53
  readonly recordSettings: string;
38
54
  readonly releaseRegistry: string;
55
+ /** Shared parent used to derive canonical Genre object ids. */
56
+ readonly genreRegistry: string;
39
57
  };
40
58
  /** PartyOS packages used by the composed artist and wallet reads. */
41
59
  readonly party: {
@@ -63,100 +81,21 @@ export interface MisoPlatformDeployment {
63
81
  /**
64
82
  * Platform deployments bundled with this SDK release.
65
83
  *
66
- * Mainnet is intentionally absent until the complete platform stack is live.
67
- * Mainnet is intentionally unavailable until this ABI is deployed there.
84
+ * This release deliberately contains no bundled network deployment. The core
85
+ * protocol is being republished as an immutable stack, so every old package ID
86
+ * is an incompatible ABI and must not be selected by accident. The admin-cli
87
+ * deployment flow injects verified IDs in a follow-up change.
68
88
  */
69
- export const MISO_PLATFORM_DEPLOYMENTS = {
70
- testnet: {
71
- protocol: MISO_PROTOCOL_DEPLOYMENTS.testnet,
72
- packages: {
73
- pressing:
74
- "0xd0913b584d87a3891a8013c58644e3896f438fd948e819a69db256b47314974e",
75
- record:
76
- "0x97e2772d81528c69e21b6681f6702f90deae2a6b079e19da1df53f9f4fdd3271",
77
- releaseRegistry:
78
- "0x683b2feb784a815171d2976418345bd41c046e159dcf7a16890c766f69fd7808",
79
- minato:
80
- "0x8466e9864c1d947888e73b0e349b035bc22805579eef18f132966f56c8efe1d2",
81
- drop:
82
- "0xfc2b51f068dee9d5482d39fa017164f6a8c3601cabb59084a518de5f609ef1c7",
83
- credit:
84
- "0x0121926470393cc93b89b5b6d5067737a8bc0c1c545fb96c4447569174116174",
85
- compositionCredits:
86
- "0xfa2f62db28f2eb42c8c1a6533097fb2095649efab05c0527be1874b9be6cdc73",
87
- recordingCredits:
88
- "0xc794252bd90efb4cc224107f9dd0a56d4f4f5623783628b6af286f6535dd4c1e",
89
- releaseCredits:
90
- "0x42e2dbf6098d18782911460ecf79b338af2f1b654ef7ba99c6e7344fd4bf3f94",
91
- royaltyPool:
92
- "0x798fb353a5dbed51a0df08a7c10fdc432a11d60b55e016102ca635f9033c654d",
93
- compositionRoyaltyPool:
94
- "0xc22693ec50312492d7da23f3544625df637a92cd2be08e09d0f2eb8ff4e0e7ac",
95
- recordingRoyaltyPool:
96
- "0x33c9149889ef9e8078a5eba5c5486e8938e2dc69b3bd49a45c5c57e9f3d898a8",
97
- coverArt:
98
- "0xb29052d1174835a8061149aeca08f53551fa0691de64350247fc5cb558f797a0",
99
- releaseCoverArt:
100
- "0x831a612920343696de7e8f0603ff4c0b21c43ca3de478feb96d230e263cd11d4",
101
- ori:
102
- "0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78",
103
- },
104
- objects: {
105
- recordSettings:
106
- "0x6a005dad071562d421ad7a9d368289f5c9f0408ca495cd466a1f774d65a21fa7",
107
- releaseRegistry:
108
- "0x5941b8690916e762a7583363906496d64a6ea3e6cedb078c90e23e7c671544f2",
109
- },
110
- party: {
111
- partyPackageId:
112
- "0x09a812d46c3aa3978703c8e5a7409ba67b9ba2dfdb91154e48ebdd9d2415da0c",
113
- partyProfilePackageId:
114
- "0xce89d3f993dfebc0b697388598c3b01e9db7b73fa2e8df18ed22608cf7ac5aee",
115
- countryCodePackageId:
116
- "0x6c3a53f228ccd089825d0fb5ee1f0465a4b7a438bc1b1735b4e2f01df8d056e9",
117
- languageCodePackageId:
118
- "0xa18b786807cfc45488691f93aa647800b77cf9993e420d110afd7024c5b15948",
119
- partyMediaPackageId:
120
- "0x7db56ef37692f84c1cfb0e0b26bde35ac9f1bc0bcd91ac5d24b3f8b4d1821349",
121
- partyRolesPackageId:
122
- "0x41a442a2c39368af2181e73ea5b90e2e0b4f89de09050c121a6e7d79e7c84415",
123
- partyTagsPackageId:
124
- "0xa4c7f6b05bb9b612ea7640974c150ce31ad7927ea82d3f9f4673acac7deef0da",
125
- partyGenrePackageId:
126
- "0x6ce063438be6cf44ccf5f17bf8892c9e0cef4e2344442aeb44412beead74d3a8",
127
- partyCtaPackageId:
128
- "0x85a312210d9ddbae535e0f933032c8a56aa3f0fe1d6c3430d4fa538765008da3",
129
- partyPlatformLinkPackageId:
130
- "0x46d9f3e05d2065a926b010fe833baf61e5c250c233d512a260cbe746b02c56af",
131
- partySocialPackageId:
132
- "0x438e767ce8f5699f12be1704a12ff69c28045ca241f890ca8a978d55e09f6541",
133
- partyMusicPackageId:
134
- "0x89add347dfa779aa77e21b1853a37f2054dbecfce29799b61463d9900877b7b1",
135
- partyProLinkPackageId:
136
- "0xe5e8a0d02b43037abb7e6ddb4b742c6197aadf2dc19910957bba98307bef4103",
137
- partyFeaturedDropPackageId:
138
- "0x1a7b926686565a6cc82a9e0630839dc1f75c9bf4fafc0ba789a05af2c3c269f0",
139
- genrePackageId:
140
- "0xcbbce10e8b0781d458e88ce99d08e0c85f1e674c5b7ec975383d74f87a1d76b1",
141
- },
142
- legacy: {
143
- releaseCoverArtPackages: [
144
- "0x25c3c87ef4823d62d80dd8bda714ef4976df0f04453997646659a6cebadd655b",
145
- "0x1ee2cae0da7595d7973c310c912434ef531589b468cc57839296810c1385f7f6",
146
- "0x7d4a205a68f8e768a408c9f4c45a4d4076722c5edeba9068c0ac058f554e964e",
147
- ],
148
- },
149
- },
150
- } as const satisfies Partial<Record<MisoNetwork, MisoPlatformDeployment>>;
89
+ export const MISO_PLATFORM_DEPLOYMENTS = {} as const satisfies Partial<
90
+ Record<MisoNetwork, MisoPlatformDeployment>
91
+ >;
151
92
 
152
93
  /** Resolve a bundled platform deployment, failing closed when it is unavailable. */
153
94
  export function getMisoPlatformDeployment(
154
95
  network: string,
155
96
  ): MisoPlatformDeployment {
156
97
  const deployment = (
157
- MISO_PLATFORM_DEPLOYMENTS as Partial<
158
- Record<string, MisoPlatformDeployment>
159
- >
98
+ MISO_PLATFORM_DEPLOYMENTS as Partial<Record<string, MisoPlatformDeployment>>
160
99
  )[network];
161
100
  if (!deployment) {
162
101
  throw new Error(
package/src/index.ts CHANGED
@@ -14,9 +14,8 @@
14
14
  //
15
15
  // A release is protocol. Pressing a record off it and selling that record is
16
16
  // platform. Keeping the split at the package boundary is what stops the protocol
17
- // from quietly growing a storefront. Core's `release::new` is the sole practical
18
- // exception: it needs `&mut UID`, which cannot cross a PTB command boundary, so
19
- // the platform's `release_registry` extension owns the PTB-callable minting path.
17
+ // from quietly growing a storefront. Core `release::new` uses its shared
18
+ // `ReleaseRegistry` as the PTB-callable derivation parent.
20
19
  //
21
20
  // Extensions live on this side of the line for the same reason. An extension is
22
21
  // not part of what a Composition or Recording IS — it is a choice Miso makes
@@ -27,7 +26,12 @@
27
26
 
28
27
  // The recommended entry point is the client extension (see ./client.ts); the bare
29
28
  // builders and readers stay exported for callers that hold ids themselves.
30
- export { miso, misoPlatform, MisoClient, MisoPlatformClient } from "./client.ts";
29
+ export {
30
+ miso,
31
+ misoPlatform,
32
+ MisoClient,
33
+ MisoPlatformClient,
34
+ } from "./client.ts";
31
35
  export type {
32
36
  ConfiguredReleaseGraphParams,
33
37
  MisoOptions,
@@ -51,7 +55,9 @@ export * as read from "./read/index.ts";
51
55
  // `uid_mut` hook.
52
56
  export * from "./credits.ts";
53
57
  export * from "./cover.ts";
54
- export * from "./extensions/royalty-pool.ts";
58
+ export * from "./release-extensions.ts";
59
+ export * from "./recording-extensions.ts";
60
+ export * from "./vault.ts";
55
61
 
56
62
  // Generated, ABI-bound bindings (BCS structs + type-safe Move calls).
57
63
  export * as contracts from "./contracts.ts";