@misofm/sdk 0.9.0 → 0.11.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 (265) hide show
  1. package/README.md +88 -56
  2. package/dist/client.d.ts +121 -18
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +200 -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/routed_stake/deps/royalty_pool/stake.d.ts +54 -0
  91. package/dist/contracts/routed_stake/deps/royalty_pool/stake.d.ts.map +1 -0
  92. package/dist/contracts/routed_stake/deps/royalty_pool/stake.js +37 -0
  93. package/dist/contracts/routed_stake/deps/royalty_pool/stake.js.map +1 -0
  94. package/dist/contracts/routed_stake/deps/std/type_name.d.ts +18 -0
  95. package/dist/contracts/routed_stake/deps/std/type_name.d.ts.map +1 -0
  96. package/dist/contracts/routed_stake/deps/std/type_name.js +20 -0
  97. package/dist/contracts/routed_stake/deps/std/type_name.js.map +1 -0
  98. package/dist/contracts/routed_stake/deps/sui/balance.d.ts +13 -0
  99. package/dist/contracts/routed_stake/deps/sui/balance.d.ts.map +1 -0
  100. package/dist/contracts/routed_stake/deps/sui/balance.js +15 -0
  101. package/dist/contracts/routed_stake/deps/sui/balance.js.map +1 -0
  102. package/dist/contracts/routed_stake/deps/sui/vec_map.d.ts +37 -0
  103. package/dist/contracts/routed_stake/deps/sui/vec_map.d.ts.map +1 -0
  104. package/dist/contracts/routed_stake/deps/sui/vec_map.js +28 -0
  105. package/dist/contracts/routed_stake/deps/sui/vec_map.js.map +1 -0
  106. package/dist/contracts/routed_stake/routed_stake.d.ts +356 -0
  107. package/dist/contracts/routed_stake/routed_stake.d.ts.map +1 -0
  108. package/dist/contracts/routed_stake/routed_stake.js +311 -0
  109. package/dist/contracts/routed_stake/routed_stake.js.map +1 -0
  110. package/dist/contracts/royalty_pool/pool.d.ts +27 -17
  111. package/dist/contracts/royalty_pool/pool.d.ts.map +1 -1
  112. package/dist/contracts/royalty_pool/pool.js +26 -17
  113. package/dist/contracts/royalty_pool/pool.js.map +1 -1
  114. package/dist/contracts/vault/deps/sui/bag.d.ts +35 -0
  115. package/dist/contracts/vault/deps/sui/bag.d.ts.map +1 -0
  116. package/dist/contracts/vault/deps/sui/bag.js +37 -0
  117. package/dist/contracts/vault/deps/sui/bag.js.map +1 -0
  118. package/dist/contracts/vault/deps/sui/borrow.d.ts +20 -0
  119. package/dist/contracts/vault/deps/sui/borrow.d.ts.map +1 -0
  120. package/dist/contracts/vault/deps/sui/borrow.js +21 -0
  121. package/dist/contracts/vault/deps/sui/borrow.js.map +1 -0
  122. package/dist/contracts/vault/vault.d.ts +276 -0
  123. package/dist/contracts/vault/vault.d.ts.map +1 -0
  124. package/dist/contracts/vault/vault.js +274 -0
  125. package/dist/contracts/vault/vault.js.map +1 -0
  126. package/dist/contracts.d.ts +13 -2
  127. package/dist/contracts.d.ts.map +1 -1
  128. package/dist/contracts.js +15 -7
  129. package/dist/contracts.js.map +1 -1
  130. package/dist/cover.d.ts +17 -3
  131. package/dist/cover.d.ts.map +1 -1
  132. package/dist/cover.js +43 -20
  133. package/dist/cover.js.map +1 -1
  134. package/dist/credits.d.ts +31 -12
  135. package/dist/credits.d.ts.map +1 -1
  136. package/dist/credits.js +41 -25
  137. package/dist/credits.js.map +1 -1
  138. package/dist/deployments.d.ts +30 -57
  139. package/dist/deployments.d.ts.map +1 -1
  140. package/dist/deployments.js +5 -53
  141. package/dist/deployments.js.map +1 -1
  142. package/dist/index.d.ts +4 -2
  143. package/dist/index.d.ts.map +1 -1
  144. package/dist/index.js +6 -5
  145. package/dist/index.js.map +1 -1
  146. package/dist/pressing.d.ts +8 -7
  147. package/dist/pressing.d.ts.map +1 -1
  148. package/dist/pressing.js +91 -32
  149. package/dist/pressing.js.map +1 -1
  150. package/dist/read/artist.js +3 -3
  151. package/dist/read/artist.js.map +1 -1
  152. package/dist/read/catalog.d.ts +14 -9
  153. package/dist/read/catalog.d.ts.map +1 -1
  154. package/dist/read/catalog.js +71 -37
  155. package/dist/read/catalog.js.map +1 -1
  156. package/dist/read/client.d.ts +4 -2
  157. package/dist/read/client.d.ts.map +1 -1
  158. package/dist/read/client.js +15 -4
  159. package/dist/read/client.js.map +1 -1
  160. package/dist/read/config.d.ts +14 -11
  161. package/dist/read/config.d.ts.map +1 -1
  162. package/dist/read/config.js +10 -37
  163. package/dist/read/config.js.map +1 -1
  164. package/dist/read/index.d.ts +2 -2
  165. package/dist/read/index.d.ts.map +1 -1
  166. package/dist/read/index.js +1 -1
  167. package/dist/read/index.js.map +1 -1
  168. package/dist/read/receipts.d.ts +24 -7
  169. package/dist/read/receipts.d.ts.map +1 -1
  170. package/dist/read/receipts.js +78 -25
  171. package/dist/read/receipts.js.map +1 -1
  172. package/dist/read/types.d.ts +43 -25
  173. package/dist/read/types.d.ts.map +1 -1
  174. package/dist/read/types.js +2 -2
  175. package/dist/read/types.js.map +1 -1
  176. package/dist/recording-extensions.d.ts +37 -0
  177. package/dist/recording-extensions.d.ts.map +1 -0
  178. package/dist/recording-extensions.js +61 -0
  179. package/dist/recording-extensions.js.map +1 -0
  180. package/dist/release-extensions.d.ts +84 -0
  181. package/dist/release-extensions.d.ts.map +1 -0
  182. package/dist/release-extensions.js +160 -0
  183. package/dist/release-extensions.js.map +1 -0
  184. package/dist/release-graph.d.ts +17 -26
  185. package/dist/release-graph.d.ts.map +1 -1
  186. package/dist/release-graph.js +55 -49
  187. package/dist/release-graph.js.map +1 -1
  188. package/dist/transactions.d.ts +43 -24
  189. package/dist/transactions.d.ts.map +1 -1
  190. package/dist/transactions.js +48 -27
  191. package/dist/transactions.js.map +1 -1
  192. package/dist/vault.d.ts +268 -0
  193. package/dist/vault.d.ts.map +1 -0
  194. package/dist/vault.js +389 -0
  195. package/dist/vault.js.map +1 -0
  196. package/package.json +17 -11
  197. package/src/client.ts +399 -61
  198. package/src/contracts/composition_routed_stake/composition_routed_stake.ts +346 -0
  199. package/src/contracts/composition_routed_stake/witness.ts +11 -0
  200. package/src/contracts/composition_royalty_pool/composition_royalty_pool.ts +151 -35
  201. package/src/contracts/composition_royalty_pool/witness.ts +7 -0
  202. package/src/contracts/genre/genre.ts +151 -0
  203. package/src/contracts/recording_advisory/recording_advisory.ts +315 -0
  204. package/src/contracts/recording_language/deps/language_code/language_code.ts +7 -0
  205. package/src/contracts/recording_language/recording_language.ts +237 -0
  206. package/src/contracts/recording_master_reference/deps/ori/walrus_data.ts +36 -0
  207. package/src/contracts/recording_master_reference/recording_master_reference.ts +181 -0
  208. package/src/contracts/recording_preview/deps/ori/walrus_data.ts +36 -0
  209. package/src/contracts/recording_preview/recording_preview.ts +154 -0
  210. package/src/contracts/recording_royalty_pool/recording_royalty_pool.ts +152 -35
  211. package/src/contracts/recording_royalty_pool/witness.ts +7 -0
  212. package/src/contracts/release_description/release_description.ts +167 -0
  213. package/src/contracts/release_dsp_link/release_dsp_link.ts +813 -0
  214. package/src/contracts/release_genre/deps/per_track/per_track.ts +36 -0
  215. package/src/contracts/release_genre/release_genre.ts +314 -0
  216. package/src/contracts/release_kind/release_kind.ts +153 -0
  217. package/src/contracts/release_revenue_distributor/release_revenue_distributor.ts +178 -0
  218. package/src/contracts/release_revenue_distributor/witness.ts +11 -0
  219. package/src/contracts/routed_stake/deps/royalty_pool/stake.ts +39 -0
  220. package/src/contracts/routed_stake/deps/std/type_name.ts +22 -0
  221. package/src/contracts/routed_stake/deps/sui/balance.ts +17 -0
  222. package/src/contracts/routed_stake/deps/sui/vec_map.ts +33 -0
  223. package/src/contracts/routed_stake/routed_stake.ts +508 -0
  224. package/src/contracts/royalty_pool/pool.ts +34 -24
  225. package/src/contracts/vault/deps/sui/bag.ts +39 -0
  226. package/src/contracts/vault/deps/sui/borrow.ts +25 -0
  227. package/src/contracts/vault/vault.ts +454 -0
  228. package/src/contracts.ts +16 -9
  229. package/src/cover.ts +62 -37
  230. package/src/credits.ts +64 -51
  231. package/src/deployments.ts +35 -97
  232. package/src/index.ts +11 -5
  233. package/src/pressing.ts +135 -39
  234. package/src/read/artist.ts +3 -3
  235. package/src/read/catalog.ts +99 -44
  236. package/src/read/client.ts +20 -4
  237. package/src/read/config.ts +23 -49
  238. package/src/read/index.ts +3 -1
  239. package/src/read/receipts.ts +103 -26
  240. package/src/read/types.ts +44 -27
  241. package/src/recording-extensions.ts +102 -0
  242. package/src/release-extensions.ts +261 -0
  243. package/src/release-graph.ts +68 -81
  244. package/src/transactions.ts +79 -53
  245. package/src/vault.ts +777 -0
  246. package/dist/contracts/miso_drop/drop.d.ts +0 -550
  247. package/dist/contracts/miso_drop/drop.d.ts.map +0 -1
  248. package/dist/contracts/miso_drop/drop.js +0 -523
  249. package/dist/contracts/miso_drop/drop.js.map +0 -1
  250. package/dist/contracts/release_registry/release_registry.d.ts +0 -114
  251. package/dist/contracts/release_registry/release_registry.d.ts.map +0 -1
  252. package/dist/contracts/release_registry/release_registry.js +0 -119
  253. package/dist/contracts/release_registry/release_registry.js.map +0 -1
  254. package/dist/drop.d.ts +0 -127
  255. package/dist/drop.d.ts.map +0 -1
  256. package/dist/drop.js +0 -202
  257. package/dist/drop.js.map +0 -1
  258. package/dist/extensions/royalty-pool.d.ts +0 -32
  259. package/dist/extensions/royalty-pool.d.ts.map +0 -1
  260. package/dist/extensions/royalty-pool.js +0 -33
  261. package/dist/extensions/royalty-pool.js.map +0 -1
  262. package/src/contracts/miso_drop/drop.ts +0 -798
  263. package/src/contracts/release_registry/release_registry.ts +0 -160
  264. package/src/drop.ts +0 -376
  265. package/src/extensions/royalty-pool.ts +0 -90
@@ -0,0 +1,160 @@
1
+ // Copyright (c) Miso Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ // First-party metadata attached to a protocol Release. The JSON/CLI release
4
+ // intent aggregates these concerns, but every value is written by its own
5
+ // independently deployed extension package.
6
+ import { deriveDynamicFieldID } from "@mysten/sui/utils";
7
+ import * as genre from "./contracts/genre/genre.js";
8
+ import * as releaseDescription from "./contracts/release_description/release_description.js";
9
+ import * as releaseDspLink from "./contracts/release_dsp_link/release_dsp_link.js";
10
+ import * as releaseGenre from "./contracts/release_genre/release_genre.js";
11
+ import * as releaseKind from "./contracts/release_kind/release_kind.js";
12
+ import { asU64, directAdminCap, invokeWithAdminCap } from "./vault.js";
13
+ function authority(p) {
14
+ if (p.authority !== undefined)
15
+ return p.authority;
16
+ if (p.releaseAdminCapId !== undefined)
17
+ return directAdminCap(p.releaseAdminCapId);
18
+ throw new Error("release authority is required");
19
+ }
20
+ /** Attach the release's self-declared kind (for example "EP" or "Mixtape"). */
21
+ export function setReleaseKind(p) {
22
+ const bytes = new TextEncoder().encode(p.kind).length;
23
+ if (bytes === 0)
24
+ throw new Error("setReleaseKind: kind must not be empty");
25
+ if (bytes > 32) {
26
+ throw new Error(`setReleaseKind: kind must be at most 32 UTF-8 bytes (got ${bytes})`);
27
+ }
28
+ return (tx) => {
29
+ invokeWithAdminCap(tx, authority(p), {
30
+ target: `${p.releaseKindPackageId}::release_kind::set_kind`,
31
+ arguments: [tx.object(p.releaseId), tx.pure.string(p.kind)],
32
+ adminCapIndex: 1,
33
+ });
34
+ };
35
+ }
36
+ /** Attach the release's editorial description. */
37
+ export function setReleaseDescription(p) {
38
+ const bytes = new TextEncoder().encode(p.description).length;
39
+ if (bytes === 0) {
40
+ throw new Error("setReleaseDescription: description must not be empty");
41
+ }
42
+ if (bytes > 8192) {
43
+ throw new Error(`setReleaseDescription: description must be at most 8192 UTF-8 bytes (got ${bytes})`);
44
+ }
45
+ return (tx) => {
46
+ invokeWithAdminCap(tx, authority(p), {
47
+ target: `${p.releaseDescriptionPackageId}::release_description::set_description`,
48
+ arguments: [tx.object(p.releaseId), tx.pure.string(p.description)],
49
+ adminCapIndex: 1,
50
+ });
51
+ };
52
+ }
53
+ const GENRE_NAME_RE = /^[A-Z]+(?:_[A-Z]+)*$/;
54
+ /** Validate the canonical on-chain genre vocabulary spelling. */
55
+ export function assertCanonicalGenreName(name) {
56
+ const bytes = new TextEncoder().encode(name).length;
57
+ if (bytes === 0 || bytes > 64 || !GENRE_NAME_RE.test(name)) {
58
+ throw new Error(`Genre name must be 1-64 bytes of uppercase A-Z and underscores; got ${JSON.stringify(name)}`);
59
+ }
60
+ }
61
+ /** Derive the immutable Genre object id for a canonical vocabulary name. */
62
+ export function deriveGenreId(genreRegistryId, genrePackageId, canonicalName) {
63
+ assertCanonicalGenreName(canonicalName);
64
+ return deriveDynamicFieldID(genreRegistryId, `${genrePackageId}::genre::GenreKey`, genre.GenreKey.serialize([canonicalName]).toBytes());
65
+ }
66
+ /** Attach primary/secondary release genres and optional per-track overrides. */
67
+ export function setReleaseGenres(p) {
68
+ return (tx) => {
69
+ invokeWithAdminCap(tx, authority(p), {
70
+ target: `${p.releaseGenrePackageId}::release_genre::set_primary_genre`,
71
+ arguments: [tx.object(p.releaseId), tx.object(p.primaryGenreId)],
72
+ adminCapIndex: 1,
73
+ });
74
+ for (const genreId of p.secondaryGenreIds ?? []) {
75
+ invokeWithAdminCap(tx, authority(p), {
76
+ target: `${p.releaseGenrePackageId}::release_genre::add_secondary_genre`,
77
+ arguments: [tx.object(p.releaseId), tx.object(genreId)],
78
+ adminCapIndex: 1,
79
+ });
80
+ }
81
+ for (const assignment of p.trackPrimaryGenres ?? []) {
82
+ invokeWithAdminCap(tx, authority(p), {
83
+ target: `${p.releaseGenrePackageId}::release_genre::set_track_primary_genre`,
84
+ arguments: [
85
+ tx.object(p.releaseId),
86
+ tx.pure.u64(asU64("trackIndex", assignment.trackIndex)),
87
+ tx.object(assignment.genreId),
88
+ ],
89
+ adminCapIndex: 1,
90
+ });
91
+ }
92
+ };
93
+ }
94
+ function buildDspLink(tx, packageId, link) {
95
+ switch (link.platform) {
96
+ case "Spotify":
97
+ return tx.add(releaseDspLink.newSpotify({ package: packageId, arguments: [link.id] }));
98
+ case "AppleMusic":
99
+ return tx.add(link.trackId === undefined
100
+ ? releaseDspLink.newAppleMusicAlbum({
101
+ package: packageId,
102
+ arguments: [link.storefront, link.albumId],
103
+ })
104
+ : releaseDspLink.newAppleMusicTrack({
105
+ package: packageId,
106
+ arguments: [link.storefront, link.albumId, link.trackId],
107
+ }));
108
+ case "AmazonMusic":
109
+ return tx.add(link.trackId === undefined
110
+ ? releaseDspLink.newAmazonMusicAlbum({
111
+ package: packageId,
112
+ arguments: [link.albumId],
113
+ })
114
+ : releaseDspLink.newAmazonMusicTrack({
115
+ package: packageId,
116
+ arguments: [link.albumId, link.trackId],
117
+ }));
118
+ case "Bandcamp":
119
+ return tx.add(releaseDspLink.newBandcamp({
120
+ package: packageId,
121
+ arguments: [link.subdomain, link.slug],
122
+ }));
123
+ case "Deezer":
124
+ return tx.add(releaseDspLink.newDeezer({ package: packageId, arguments: [link.id] }));
125
+ case "SoundCloud":
126
+ return tx.add(releaseDspLink.newSoundcloud({
127
+ package: packageId,
128
+ arguments: [link.user, link.slug],
129
+ }));
130
+ case "Tidal":
131
+ return tx.add(releaseDspLink.newTidal({ package: packageId, arguments: [link.id] }));
132
+ case "YouTubeMusic":
133
+ return tx.add(releaseDspLink.newYoutubeMusic({
134
+ package: packageId,
135
+ arguments: [link.id],
136
+ }));
137
+ }
138
+ }
139
+ /** Attach release-level and per-track DSP links. */
140
+ export function setReleaseDspLinks(p) {
141
+ return (tx) => {
142
+ for (const link of p.releaseLinks ?? []) {
143
+ const value = buildDspLink(tx, p.releaseDspLinkPackageId, link);
144
+ invokeWithAdminCap(tx, authority(p), {
145
+ target: `${p.releaseDspLinkPackageId}::release_dsp_link::set_release_link`,
146
+ arguments: [tx.object(p.releaseId), value],
147
+ adminCapIndex: 1,
148
+ });
149
+ }
150
+ for (const item of p.trackLinks ?? []) {
151
+ const value = buildDspLink(tx, p.releaseDspLinkPackageId, item.link);
152
+ invokeWithAdminCap(tx, authority(p), {
153
+ target: `${p.releaseDspLinkPackageId}::release_dsp_link::set_track_link`,
154
+ arguments: [tx.object(p.releaseId), tx.pure.u64(asU64("trackIndex", item.trackIndex)), value],
155
+ adminCapIndex: 1,
156
+ });
157
+ }
158
+ };
159
+ }
160
+ //# sourceMappingURL=release-extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release-extensions.js","sourceRoot":"","sources":["../src/release-extensions.ts"],"names":[],"mappings":"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"}
@@ -1,38 +1,30 @@
1
1
  import { Transaction } from "@mysten/sui/transactions";
2
- import { type ShareRecipient } from "./transactions.ts";
3
- /** A royalty pool to attach to a work, in the same PTB. */
4
- export interface RoyaltyPoolNode {
5
- currency: string;
6
- /** `composition_royalty_pool` / `recording_royalty_pool` package id. */
7
- extensionPackageId: string;
8
- /** Base `royalty_pool` lib package id. */
9
- royaltyPoolPackageId: string;
10
- }
11
- export interface CompositionNode {
2
+ import { type AdminCustodyInput, type RecordingAuthorityInput, type ShareRecipient } from "./transactions.ts";
3
+ interface CompositionNodeBase {
12
4
  shareType: string;
13
5
  shareCurrencyId: string;
14
6
  shareTreasuryCapId: string;
15
7
  title: string;
16
8
  royaltyRateBps: number;
17
9
  shareRecipients: ShareRecipient[];
18
- /** Recipient of the CompositionAdminCap (the owner). */
19
- adminAddress: string;
20
- royaltyPool?: RoyaltyPoolNode;
21
10
  }
22
- export interface RecordingNode {
11
+ export type CompositionNode = CompositionNodeBase & AdminCustodyInput;
12
+ interface RecordingNodeBase {
23
13
  shareType: string;
24
14
  shareCurrencyId: string;
25
15
  shareTreasuryCapId: string;
26
16
  /** The parent composition's share type. */
27
17
  compositionShareType: string;
28
- /** Index into `compositions[]` if the parent is created in THIS PTB… */
29
- parentCompositionIndex?: number;
30
- /** …or the on-chain composition object id if the parent already exists. */
31
- parentCompositionId?: string;
32
18
  shareRecipients: ShareRecipient[];
33
- adminAddress: string;
34
- royaltyPool?: RoyaltyPoolNode;
35
19
  }
20
+ type RecordingParent = {
21
+ readonly parentCompositionIndex: number;
22
+ readonly parentCompositionId?: never;
23
+ } | {
24
+ readonly parentCompositionIndex?: never;
25
+ readonly parentCompositionId: string;
26
+ };
27
+ export type RecordingNode = RecordingNodeBase & RecordingParent & AdminCustodyInput;
36
28
  /** A track whose recording is created in THIS PTB. */
37
29
  export interface FreshTrackNode {
38
30
  /** Index into `recordings[]`. */
@@ -43,32 +35,31 @@ export interface FreshTrackNode {
43
35
  * A track over an EXISTING recording, authorized by its admin cap held by the
44
36
  * sender. This can coexist with recordings created in this PTB.
45
37
  */
46
- export interface CapTrackNode {
38
+ interface CapTrackNodeBase {
47
39
  recordingId: string;
48
- recordingAdminCapId: string;
49
40
  recordingShareType: string;
50
41
  compositionShareType: string;
51
42
  splitBps: number;
52
43
  }
44
+ export type CapTrackNode = CapTrackNodeBase & RecordingAuthorityInput;
53
45
  export type TrackNode = FreshTrackNode | CapTrackNode;
54
- export interface ReleaseNode {
46
+ interface ReleaseNodeBase {
55
47
  title: string;
56
48
  /** u256 nonce as a decimal string (deterministic release id). */
57
49
  nonce: string;
58
- adminAddress: string;
59
50
  releaseRegistryId: string;
60
51
  /** The ordered tracklist. Display grouping (discs/sides) is extension data. */
61
52
  tracks: TrackNode[];
62
53
  }
54
+ export type ReleaseNode = ReleaseNodeBase & AdminCustodyInput;
63
55
  export interface PublishReleaseGraphParams {
64
56
  compositions: CompositionNode[];
65
57
  recordings: RecordingNode[];
66
58
  release?: ReleaseNode;
67
59
  misoPackageId: string;
68
60
  minatoPackageId: string;
69
- /** `release_registry` extension package, distinct from its shared object id. */
70
- releaseRegistryPackageId: string;
71
61
  }
72
62
  /** Builds the entire graph in a single transaction (see file header for ordering). */
73
63
  export declare function publishReleaseGraph(params: PublishReleaseGraphParams): (tx: Transaction) => void;
64
+ export {};
74
65
  //# sourceMappingURL=release-graph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"release-graph.d.ts","sourceRoot":"","sources":["../src/release-graph.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,WAAW,EAAkC,MAAM,0BAA0B,CAAC;AAGvF,OAAO,EAAmC,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKzF,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,0CAA0C;IAC1C,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wEAAwE;IACxE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,2EAA2E;IAC3E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,sDAAsD;AACtD,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,YAAY,CAAC;AAItD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+EAA+E;IAC/E,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAQD,sFAAsF;AACtF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,yBAAyB,GAAG,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CA0GhG"}
1
+ {"version":3,"file":"release-graph.d.ts","sourceRoot":"","sources":["../src/release-graph.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,WAAW,EAAkC,MAAM,0BAA0B,CAAC;AAEvF,OAAO,EAA2F,KAAK,iBAAiB,EAAE,KAAK,uBAAuB,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKvM,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC;AACD,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAEtE,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2CAA2C;IAC3C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC;AACD,KAAK,eAAe,GAChB;IAAE,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAA;CAAE,GACjF;IAAE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAAC;AACtF,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,eAAe,GAAG,iBAAiB,CAAC;AAEpF,sDAAsD;AACtD,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,UAAU,gBAAgB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG,uBAAuB,CAAC;AAEtE,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,YAAY,CAAC;AAUtD,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+EAA+E;IAC/E,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AACD,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,iBAAiB,CAAC;AAE9D,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAQD,sFAAsF;AACtF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,yBAAyB,GAAG,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAsGhG"}
@@ -1,15 +1,15 @@
1
1
  // Copyright (c) Miso Labs, Inc.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  // Single-PTB publisher for a whole release graph: creates every composition and
4
- // recording, optionally attaches royalty pools, derives the release id ON-CHAIN
4
+ // recording, derives the release id ON-CHAIN
5
5
  // (so recordings need not be shared first), builds the tracks/release,
6
6
  // then shares everything and transfers the admin caps — all in ONE transaction.
7
7
  //
8
8
  // Share currencies must already be published + initialized (their Currency objects
9
9
  // shared on-chain); their ids/types are passed in. Ordering is load-bearing:
10
- // 1. composition::new → recording::new(&comp) (borrow-before-share) + pool attach
10
+ // 1. composition::new → recording::new(&comp) (borrow-before-share)
11
11
  // 2. release::derive_target_release_id(<recording::id results>) →
12
- // track::new(cap, &rec, derivedId, split) → release_registry::new_release
12
+ // track::new(cap, &rec, derivedId, split) → release::new(registry, …)
13
13
  // 3. publish (share) comps + recs + release, disperse supply, transfer caps
14
14
  // Steps 1–2 borrow the works; step 3 consumes them into share_object.
15
15
  //
@@ -18,19 +18,25 @@
18
18
  //
19
19
  // This is the whole-graph orchestration half of the opinionated publish flow —
20
20
  // it composes `@misonetwork/sdk`'s bare `composition`/`recording`/`track`/
21
- // `release` call bindings and this package's `release_registry` binding with its
22
- // own `disperseShares`/`finalizeRelease` and royalty-pool extension helpers, into
23
- // one PTB.
21
+ // `release` core call bindings with its
22
+ // own `disperseShares`/`finalizeRelease` helpers into one PTB. Royalty pools are
23
+ // installed later through an admin-cap Vault plugin; the retired raw-cap helper
24
+ // is intentionally not used here.
24
25
  import { Transaction } from "@mysten/sui/transactions";
25
26
  import { contracts } from "@misonetwork/sdk";
26
- import { attachCompositionRoyaltyPool, attachRecordingRoyaltyPool } from "./extensions/royalty-pool.js";
27
- import { disperseShares, finalizeRelease } from "./transactions.js";
28
- import * as releaseRegistry from "./contracts/release_registry/release_registry.js";
29
- const { composition, recording, track, release } = contracts;
27
+ import { custodyOf, disperseShares, finalizeRelease, recordingAuthorityOf, requiredCommandResult } from "./transactions.js";
28
+ import { disposeNewAdminCap, invokeWithAdminCap } from "./vault.js";
29
+ const { composition, recording, track } = contracts;
30
30
  const isFresh = (t) => "recordingIndex" in t;
31
+ function requiredAt(items, index, description) {
32
+ const item = items[index];
33
+ if (item === undefined)
34
+ throw new Error(`${description} index ${index} is out of range`);
35
+ return item;
36
+ }
31
37
  /** Builds the entire graph in a single transaction (see file header for ordering). */
32
38
  export function publishReleaseGraph(params) {
33
- const { misoPackageId: pkg, minatoPackageId, releaseRegistryPackageId } = params;
39
+ const { misoPackageId: pkg, minatoPackageId } = params;
34
40
  return (tx) => {
35
41
  // ── 1) Create every composition, then every recording (borrow-before-share) ──
36
42
  const comps = params.compositions.map((c) => {
@@ -39,39 +45,28 @@ export function publishReleaseGraph(params) {
39
45
  typeArguments: [c.shareType],
40
46
  arguments: [tx.pure.string(c.title), tx.pure.u16(c.royaltyRateBps), tx.object(c.shareCurrencyId), tx.object(c.shareTreasuryCapId)],
41
47
  }));
42
- const parts = { work: r[0], adminCap: r[1], balance: r[2] };
43
- if (c.royaltyPool) {
44
- attachCompositionRoyaltyPool(tx, {
45
- composition: parts.work,
46
- adminCap: parts.adminCap,
47
- compositionShareType: c.shareType,
48
- currency: c.royaltyPool.currency,
49
- compositionRoyaltyPoolPackageId: c.royaltyPool.extensionPackageId,
50
- royaltyPoolPackageId: c.royaltyPool.royaltyPoolPackageId,
51
- });
52
- }
48
+ const parts = {
49
+ work: requiredCommandResult(r, 0, "composition::_new"),
50
+ adminCap: requiredCommandResult(r, 1, "composition::_new"),
51
+ balance: requiredCommandResult(r, 2, "composition::_new"),
52
+ };
53
53
  return parts;
54
54
  });
55
55
  const recTypeArgs = (i) => {
56
- const n = params.recordings[i];
56
+ const n = requiredAt(params.recordings, i, "recording");
57
57
  return [n.shareType, n.compositionShareType];
58
58
  };
59
59
  const recs = params.recordings.map((rec, i) => {
60
- const parent = rec.parentCompositionIndex !== undefined ? comps[rec.parentCompositionIndex].work : tx.object(rec.parentCompositionId);
60
+ const parent = rec.parentCompositionIndex !== undefined
61
+ ? requiredAt(comps, rec.parentCompositionIndex, "parent composition").work
62
+ : tx.object(rec.parentCompositionId);
61
63
  const typeArgs = recTypeArgs(i);
62
64
  const r = tx.add(recording._new({ package: pkg, typeArguments: typeArgs, arguments: [parent, tx.object(rec.shareCurrencyId), tx.object(rec.shareTreasuryCapId)] }));
63
- const parts = { work: r[0], adminCap: r[1], balance: r[2] };
64
- if (rec.royaltyPool) {
65
- attachRecordingRoyaltyPool(tx, {
66
- recording: parts.work,
67
- adminCap: parts.adminCap,
68
- recordingShareType: rec.shareType,
69
- compositionShareType: rec.compositionShareType,
70
- currency: rec.royaltyPool.currency,
71
- recordingRoyaltyPoolPackageId: rec.royaltyPool.extensionPackageId,
72
- royaltyPoolPackageId: rec.royaltyPool.royaltyPoolPackageId,
73
- });
74
- }
65
+ const parts = {
66
+ work: requiredCommandResult(r, 0, "recording::_new"),
67
+ adminCap: requiredCommandResult(r, 1, "recording::_new"),
68
+ balance: requiredCommandResult(r, 2, "recording::_new"),
69
+ };
75
70
  return parts;
76
71
  });
77
72
  // ── 2) Release: derive the id on-chain, then tracks → release ──────────
@@ -81,43 +76,54 @@ export function publishReleaseGraph(params) {
81
76
  const idVec = tx.makeMoveVec({
82
77
  type: "0x2::object::ID",
83
78
  elements: ordered.map((t) => isFresh(t)
84
- ? tx.add(recording.id({ package: pkg, typeArguments: recTypeArgs(t.recordingIndex), arguments: [recs[t.recordingIndex].work] }))
79
+ ? tx.add(recording.id({ package: pkg, typeArguments: recTypeArgs(t.recordingIndex), arguments: [requiredAt(recs, t.recordingIndex, "fresh recording").work] }))
85
80
  : tx.pure.id(t.recordingId)),
86
81
  });
87
82
  const splitVec = tx.makeMoveVec({ type: "u64", elements: ordered.map((t) => tx.pure.u64(t.splitBps)) });
88
83
  // This returns an ID value (not an object); pass the result straight to
89
84
  // `track::new` so every track consents to this exact release target.
90
- const releaseId = tx.add(release.deriveTargetReleaseId({ package: pkg, arguments: [idVec, splitVec, tx.pure.u256(BigInt(rel.nonce)), tx.pure.id(rel.releaseRegistryId)] }));
85
+ const releaseId = tx.moveCall({
86
+ target: `${pkg}::release::derive_target_release_id`,
87
+ arguments: [tx.object(rel.releaseRegistryId), idVec, splitVec, tx.pure.u256(BigInt(rel.nonce))],
88
+ });
91
89
  const trackArgs = ordered.map((t) => {
92
90
  if (isFresh(t)) {
93
91
  const typeArgs = recTypeArgs(t.recordingIndex);
94
- const parts = recs[t.recordingIndex];
92
+ const parts = requiredAt(recs, t.recordingIndex, "fresh recording");
95
93
  return tx.add(track._new({ package: pkg, typeArguments: typeArgs, arguments: [parts.adminCap, parts.work, releaseId, tx.pure.u16(t.splitBps)] }));
96
94
  }
97
95
  const typeArgs = [t.recordingShareType, t.compositionShareType];
98
96
  const rec = tx.object(t.recordingId);
99
- return tx.add(track._new({ package: pkg, typeArguments: typeArgs, arguments: [tx.object(t.recordingAdminCapId), rec, releaseId, tx.pure.u16(t.splitBps)] }));
97
+ return invokeWithAdminCap(tx, recordingAuthorityOf(t), {
98
+ target: `${pkg}::track::new`,
99
+ typeArguments: typeArgs,
100
+ arguments: [rec, releaseId, tx.pure.u16(t.splitBps)],
101
+ adminCapIndex: 0,
102
+ });
100
103
  });
101
104
  const trackVec = tx.makeMoveVec({ type: `${pkg}::track::Track`, elements: trackArgs });
102
- const created = tx.add(releaseRegistry.newRelease({
103
- package: releaseRegistryPackageId,
105
+ const created = tx.moveCall({
106
+ target: `${pkg}::release::new`,
104
107
  arguments: [tx.object(rel.releaseRegistryId), tx.pure.string(rel.title), trackVec, tx.pure.u256(BigInt(rel.nonce))],
105
- }));
106
- const releaseParts = { release: created[0], adminCap: created[1] };
107
- finalizeRelease(tx, { ...releaseParts, adminAddress: rel.adminAddress, misoPackageId: pkg });
108
+ });
109
+ const releaseParts = {
110
+ release: requiredCommandResult(created, 0, "release::new"),
111
+ adminCap: requiredCommandResult(created, 1, "release::new"),
112
+ };
113
+ finalizeRelease(tx, { ...releaseParts, adminCustody: custodyOf(rel), misoPackageId: pkg });
108
114
  }
109
115
  // ── 3) Share every work, disperse its supply, transfer admin caps ──
110
116
  params.compositions.forEach((c, i) => {
111
- const parts = comps[i];
117
+ const parts = requiredAt(comps, i, "composition");
112
118
  disperseShares(tx, minatoPackageId, c.shareType, parts.balance, c.shareRecipients);
113
119
  tx.add(composition.publish({ package: pkg, typeArguments: [c.shareType], arguments: [parts.work, parts.adminCap] }));
114
- tx.transferObjects([parts.adminCap], c.adminAddress);
120
+ disposeNewAdminCap(tx, parts.adminCap, custodyOf(c));
115
121
  });
116
122
  params.recordings.forEach((rec, i) => {
117
- const parts = recs[i];
123
+ const parts = requiredAt(recs, i, "recording");
118
124
  tx.add(recording.publish({ package: pkg, typeArguments: recTypeArgs(i), arguments: [parts.work, parts.adminCap] }));
119
125
  disperseShares(tx, minatoPackageId, rec.shareType, parts.balance, rec.shareRecipients);
120
- tx.transferObjects([parts.adminCap], rec.adminAddress);
126
+ disposeNewAdminCap(tx, parts.adminCap, custodyOf(rec));
121
127
  });
122
128
  };
123
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"release-graph.js","sourceRoot":"","sources":["../src/release-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"release-graph.js","sourceRoot":"","sources":["../src/release-graph.ts"],"names":[],"mappings":"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"}