@misofm/sdk 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/README.md +138 -10
  2. package/dist/contracts/composition_credits/composition_credits.d.ts +181 -0
  3. package/dist/contracts/composition_credits/composition_credits.d.ts.map +1 -0
  4. package/dist/contracts/composition_credits/composition_credits.js +109 -0
  5. package/dist/contracts/composition_credits/composition_credits.js.map +1 -0
  6. package/dist/contracts/composition_credits/composition_party_role.d.ts +119 -0
  7. package/dist/contracts/composition_credits/composition_party_role.d.ts.map +1 -0
  8. package/dist/contracts/composition_credits/composition_party_role.js +139 -0
  9. package/dist/contracts/composition_credits/composition_party_role.js.map +1 -0
  10. package/dist/contracts/composition_credits/deps/miso_credit/credit.d.ts +24 -0
  11. package/dist/contracts/composition_credits/deps/miso_credit/credit.d.ts.map +1 -0
  12. package/dist/contracts/composition_credits/deps/miso_credit/credit.js +23 -0
  13. package/dist/contracts/composition_credits/deps/miso_credit/credit.js.map +1 -0
  14. package/dist/contracts/composition_credits/deps/sui/vec_map.d.ts +37 -0
  15. package/dist/contracts/composition_credits/deps/sui/vec_map.d.ts.map +1 -0
  16. package/dist/contracts/composition_credits/deps/sui/vec_map.js +28 -0
  17. package/dist/contracts/composition_credits/deps/sui/vec_map.js.map +1 -0
  18. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.d.ts +87 -0
  19. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.d.ts.map +1 -0
  20. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.js +80 -0
  21. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.js.map +1 -0
  22. package/dist/contracts/cover_art/cover_art.d.ts +85 -0
  23. package/dist/contracts/cover_art/cover_art.d.ts.map +1 -0
  24. package/dist/contracts/cover_art/cover_art.js +68 -0
  25. package/dist/contracts/cover_art/cover_art.js.map +1 -0
  26. package/dist/contracts/cover_art/deps/ori/walrus_data.d.ts +52 -0
  27. package/dist/contracts/cover_art/deps/ori/walrus_data.d.ts.map +1 -0
  28. package/dist/contracts/cover_art/deps/ori/walrus_data.js +37 -0
  29. package/dist/contracts/cover_art/deps/ori/walrus_data.js.map +1 -0
  30. package/dist/contracts/recording_credits/deps/miso_credit/credit.d.ts +24 -0
  31. package/dist/contracts/recording_credits/deps/miso_credit/credit.d.ts.map +1 -0
  32. package/dist/contracts/recording_credits/deps/miso_credit/credit.js +23 -0
  33. package/dist/contracts/recording_credits/deps/miso_credit/credit.js.map +1 -0
  34. package/dist/contracts/recording_credits/deps/sui/vec_map.d.ts +37 -0
  35. package/dist/contracts/recording_credits/deps/sui/vec_map.d.ts.map +1 -0
  36. package/dist/contracts/recording_credits/deps/sui/vec_map.js +28 -0
  37. package/dist/contracts/recording_credits/deps/sui/vec_map.js.map +1 -0
  38. package/dist/contracts/recording_credits/deps/sui/vec_set.d.ts +21 -0
  39. package/dist/contracts/recording_credits/deps/sui/vec_set.d.ts.map +1 -0
  40. package/dist/contracts/recording_credits/deps/sui/vec_set.js +20 -0
  41. package/dist/contracts/recording_credits/deps/sui/vec_set.js.map +1 -0
  42. package/dist/contracts/recording_credits/recording_credits.d.ts +2313 -0
  43. package/dist/contracts/recording_credits/recording_credits.d.ts.map +1 -0
  44. package/dist/contracts/recording_credits/recording_credits.js +270 -0
  45. package/dist/contracts/recording_credits/recording_credits.js.map +1 -0
  46. package/dist/contracts/recording_credits/recording_party_role.d.ts +1174 -0
  47. package/dist/contracts/recording_credits/recording_party_role.d.ts.map +1 -0
  48. package/dist/contracts/recording_credits/recording_party_role.js +692 -0
  49. package/dist/contracts/recording_credits/recording_party_role.js.map +1 -0
  50. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.d.ts +90 -0
  51. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.d.ts.map +1 -0
  52. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.js +80 -0
  53. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.js.map +1 -0
  54. package/dist/contracts/release_cover_art/deps/0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78/walrus_data.d.ts +52 -0
  55. package/dist/contracts/release_cover_art/deps/0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78/walrus_data.d.ts.map +1 -0
  56. package/dist/contracts/release_cover_art/deps/0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78/walrus_data.js +37 -0
  57. package/dist/contracts/release_cover_art/deps/0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78/walrus_data.js.map +1 -0
  58. package/dist/contracts/release_cover_art/deps/cover_art/cover_art.d.ts +46 -0
  59. package/dist/contracts/release_cover_art/deps/cover_art/cover_art.d.ts.map +1 -0
  60. package/dist/contracts/release_cover_art/deps/cover_art/cover_art.js +21 -0
  61. package/dist/contracts/release_cover_art/deps/cover_art/cover_art.js.map +1 -0
  62. package/dist/contracts/release_cover_art/deps/per_track/per_track.d.ts +33 -0
  63. package/dist/contracts/release_cover_art/deps/per_track/per_track.d.ts.map +1 -0
  64. package/dist/contracts/release_cover_art/deps/per_track/per_track.js +32 -0
  65. package/dist/contracts/release_cover_art/deps/per_track/per_track.js.map +1 -0
  66. package/dist/contracts/release_cover_art/release_cover_art.d.ts +300 -0
  67. package/dist/contracts/release_cover_art/release_cover_art.d.ts.map +1 -0
  68. package/dist/contracts/release_cover_art/release_cover_art.js +168 -0
  69. package/dist/contracts/release_cover_art/release_cover_art.js.map +1 -0
  70. package/dist/contracts/release_credits/deps/miso_credit/credit.d.ts +24 -0
  71. package/dist/contracts/release_credits/deps/miso_credit/credit.d.ts.map +1 -0
  72. package/dist/contracts/release_credits/deps/miso_credit/credit.js +23 -0
  73. package/dist/contracts/release_credits/deps/miso_credit/credit.js.map +1 -0
  74. package/dist/contracts/release_credits/deps/sui/vec_map.d.ts +37 -0
  75. package/dist/contracts/release_credits/deps/sui/vec_map.d.ts.map +1 -0
  76. package/dist/contracts/release_credits/deps/sui/vec_map.js +28 -0
  77. package/dist/contracts/release_credits/deps/sui/vec_map.js.map +1 -0
  78. package/dist/contracts/release_credits/release_credits.d.ts +142 -0
  79. package/dist/contracts/release_credits/release_credits.d.ts.map +1 -0
  80. package/dist/contracts/release_credits/release_credits.js +108 -0
  81. package/dist/contracts/release_credits/release_credits.js.map +1 -0
  82. package/dist/contracts/release_credits/release_party_role.d.ts +58 -0
  83. package/dist/contracts/release_credits/release_party_role.d.ts.map +1 -0
  84. package/dist/contracts/release_credits/release_party_role.js +66 -0
  85. package/dist/contracts/release_credits/release_party_role.js.map +1 -0
  86. package/dist/contracts/royalty_pool/deps/std/type_name.d.ts +18 -0
  87. package/dist/contracts/royalty_pool/deps/std/type_name.d.ts.map +1 -0
  88. package/dist/contracts/royalty_pool/deps/std/type_name.js +20 -0
  89. package/dist/contracts/royalty_pool/deps/std/type_name.js.map +1 -0
  90. package/dist/contracts/royalty_pool/deps/sui/balance.d.ts +13 -0
  91. package/dist/contracts/royalty_pool/deps/sui/balance.d.ts.map +1 -0
  92. package/dist/contracts/royalty_pool/deps/sui/balance.js +15 -0
  93. package/dist/contracts/royalty_pool/deps/sui/balance.js.map +1 -0
  94. package/dist/contracts/royalty_pool/deps/sui/vec_map.d.ts +37 -0
  95. package/dist/contracts/royalty_pool/deps/sui/vec_map.d.ts.map +1 -0
  96. package/dist/contracts/royalty_pool/deps/sui/vec_map.js +28 -0
  97. package/dist/contracts/royalty_pool/deps/sui/vec_map.js.map +1 -0
  98. package/dist/contracts/royalty_pool/pool.d.ts +358 -0
  99. package/dist/contracts/royalty_pool/pool.d.ts.map +1 -0
  100. package/dist/contracts/royalty_pool/pool.js +352 -0
  101. package/dist/contracts/royalty_pool/pool.js.map +1 -0
  102. package/dist/contracts/royalty_pool/stake.d.ts +202 -0
  103. package/dist/contracts/royalty_pool/stake.d.ts.map +1 -0
  104. package/dist/contracts/royalty_pool/stake.js +197 -0
  105. package/dist/contracts/royalty_pool/stake.js.map +1 -0
  106. package/dist/contracts.d.ts +16 -0
  107. package/dist/contracts.d.ts.map +1 -0
  108. package/dist/contracts.js +29 -0
  109. package/dist/contracts.js.map +1 -0
  110. package/dist/cover.d.ts +48 -0
  111. package/dist/cover.d.ts.map +1 -0
  112. package/dist/cover.js +68 -0
  113. package/dist/cover.js.map +1 -0
  114. package/dist/credits.d.ts +171 -0
  115. package/dist/credits.d.ts.map +1 -0
  116. package/dist/credits.js +360 -0
  117. package/dist/credits.js.map +1 -0
  118. package/dist/extensions/royalty-pool.d.ts +32 -0
  119. package/dist/extensions/royalty-pool.d.ts.map +1 -0
  120. package/dist/extensions/royalty-pool.js +33 -0
  121. package/dist/extensions/royalty-pool.js.map +1 -0
  122. package/dist/index.d.ts +4 -0
  123. package/dist/index.d.ts.map +1 -1
  124. package/dist/index.js +17 -3
  125. package/dist/index.js.map +1 -1
  126. package/dist/internal.d.ts +4 -0
  127. package/dist/internal.d.ts.map +1 -0
  128. package/dist/internal.js +18 -0
  129. package/dist/internal.js.map +1 -0
  130. package/dist/release-graph.d.ts.map +1 -1
  131. package/dist/release-graph.js +5 -4
  132. package/dist/release-graph.js.map +1 -1
  133. package/package.json +14 -2
  134. package/src/contracts/composition_credits/composition_credits.ts +169 -0
  135. package/src/contracts/composition_credits/composition_party_role.ts +189 -0
  136. package/src/contracts/composition_credits/deps/miso_credit/credit.ts +27 -0
  137. package/src/contracts/composition_credits/deps/sui/vec_map.ts +33 -0
  138. package/src/contracts/composition_royalty_pool/composition_royalty_pool.ts +135 -0
  139. package/src/contracts/cover_art/cover_art.ts +99 -0
  140. package/src/contracts/cover_art/deps/ori/walrus_data.ts +36 -0
  141. package/src/contracts/recording_credits/deps/miso_credit/credit.ts +27 -0
  142. package/src/contracts/recording_credits/deps/sui/vec_map.ts +33 -0
  143. package/src/contracts/recording_credits/deps/sui/vec_set.ts +21 -0
  144. package/src/contracts/recording_credits/recording_credits.ts +458 -0
  145. package/src/contracts/recording_credits/recording_party_role.ts +1041 -0
  146. package/src/contracts/recording_royalty_pool/recording_royalty_pool.ts +138 -0
  147. package/src/contracts/release_cover_art/deps/0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78/walrus_data.ts +36 -0
  148. package/src/contracts/release_cover_art/deps/cover_art/cover_art.ts +23 -0
  149. package/src/contracts/release_cover_art/deps/per_track/per_track.ts +36 -0
  150. package/src/contracts/release_cover_art/release_cover_art.ts +251 -0
  151. package/src/contracts/release_credits/deps/miso_credit/credit.ts +27 -0
  152. package/src/contracts/release_credits/deps/sui/vec_map.ts +33 -0
  153. package/src/contracts/release_credits/release_credits.ts +156 -0
  154. package/src/contracts/release_credits/release_party_role.ts +87 -0
  155. package/src/contracts/royalty_pool/deps/std/type_name.ts +22 -0
  156. package/src/contracts/royalty_pool/deps/sui/balance.ts +17 -0
  157. package/src/contracts/royalty_pool/deps/sui/vec_map.ts +33 -0
  158. package/src/contracts/royalty_pool/pool.ts +577 -0
  159. package/src/contracts/royalty_pool/stake.ts +317 -0
  160. package/src/contracts.ts +33 -0
  161. package/src/cover.ts +140 -0
  162. package/src/credits.ts +651 -0
  163. package/src/extensions/royalty-pool.ts +90 -0
  164. package/src/index.ts +19 -3
  165. package/src/internal.ts +19 -0
  166. package/src/release-graph.ts +5 -10
@@ -0,0 +1,360 @@
1
+ // Copyright (c) Miso Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { bcs } from "@mysten/sui/bcs";
4
+ import { deriveDynamicFieldID } from "@mysten/sui/utils";
5
+ import { OPTION_NONE, OPTION_SOME } from "./internal.js";
6
+ import { isNotFound } from "./queries.js";
7
+ import * as compositionCredits from "./contracts/composition_credits/composition_credits.js";
8
+ import * as compositionPartyRole from "./contracts/composition_credits/composition_party_role.js";
9
+ import * as recordingCredits from "./contracts/recording_credits/recording_credits.js";
10
+ import * as recordingPartyRole from "./contracts/recording_credits/recording_party_role.js";
11
+ import * as releaseCredits from "./contracts/release_credits/release_credits.js";
12
+ import * as releasePartyRole from "./contracts/release_credits/release_party_role.js";
13
+ const COMPOSITION_ROLE_CTOR = {
14
+ Adapter: compositionPartyRole.newAdapterRole,
15
+ Arranger: compositionPartyRole.newArrangerRole,
16
+ Composer: compositionPartyRole.newComposerRole,
17
+ Lyricist: compositionPartyRole.newLyricistRole,
18
+ Songwriter: compositionPartyRole.newSongwriterRole,
19
+ Translator: compositionPartyRole.newTranslatorRole,
20
+ };
21
+ const RECORDING_LEVEL_CTOR = {
22
+ Additional: recordingPartyRole.newAdditionalRoleLevel,
23
+ Assistant: recordingPartyRole.newAssistantRoleLevel,
24
+ Associate: recordingPartyRole.newAssociateRoleLevel,
25
+ Backing: recordingPartyRole.newBackingRoleLevel,
26
+ Executive: recordingPartyRole.newExecutiveRoleLevel,
27
+ Featured: recordingPartyRole.newFeaturedRoleLevel,
28
+ Lead: recordingPartyRole.newLeadRoleLevel,
29
+ Primary: recordingPartyRole.newPrimaryRoleLevel,
30
+ Principal: recordingPartyRole.newPrincipalRoleLevel,
31
+ };
32
+ const RECORDING_LEVELED_ROLE_CTOR = {
33
+ Actor: recordingPartyRole.newActorRole,
34
+ Arranger: recordingPartyRole.newArrangerRole,
35
+ BandLeader: recordingPartyRole.newBandLeaderRole,
36
+ Choir: recordingPartyRole.newChoirRole,
37
+ ChoirMaster: recordingPartyRole.newChoirMasterRole,
38
+ ConcertMaster: recordingPartyRole.newConcertMasterRole,
39
+ Conductor: recordingPartyRole.newConductorRole,
40
+ Contractor: recordingPartyRole.newContractorRole,
41
+ DJ: recordingPartyRole.newDjRole,
42
+ Editor: recordingPartyRole.newEditorRole,
43
+ Engineer: recordingPartyRole.newEngineerRole,
44
+ Ensemble: recordingPartyRole.newEnsembleRole,
45
+ MasteringEngineer: recordingPartyRole.newMasteringEngineerRole,
46
+ MixingEngineer: recordingPartyRole.newMixingEngineerRole,
47
+ MusicDirector: recordingPartyRole.newMusicDirectorRole,
48
+ MusicSupervisor: recordingPartyRole.newMusicSupervisorRole,
49
+ Narrator: recordingPartyRole.newNarratorRole,
50
+ Orchestra: recordingPartyRole.newOrchestraRole,
51
+ Orchestrator: recordingPartyRole.newOrchestratorRole,
52
+ Performer: recordingPartyRole.newPerformerRole,
53
+ Producer: recordingPartyRole.newProducerRole,
54
+ Programmer: recordingPartyRole.newProgrammerRole,
55
+ RecordingEngineer: recordingPartyRole.newRecordingEngineerRole,
56
+ RemixingEngineer: recordingPartyRole.newRemixingEngineerRole,
57
+ Soloist: recordingPartyRole.newSoloistRole,
58
+ SoundDesigner: recordingPartyRole.newSoundDesignerRole,
59
+ Speaker: recordingPartyRole.newSpeakerRole,
60
+ Vocalist: recordingPartyRole.newVocalistRole,
61
+ };
62
+ /** Builds an `Option<RecordingPartyRoleLevel>` argument for a role constructor. */
63
+ function levelOption(tx, pkg, level) {
64
+ const levelType = `${pkg}::recording_party_role::RecordingPartyRoleLevel`;
65
+ if (!level)
66
+ return tx.moveCall({ target: OPTION_NONE, typeArguments: [levelType] });
67
+ const lvl = tx.add(RECORDING_LEVEL_CTOR[level]({ package: pkg }));
68
+ return tx.moveCall({ target: OPTION_SOME, typeArguments: [levelType], arguments: [lvl] });
69
+ }
70
+ /** Builds one `CompositionPartyRole` value in the PTB. */
71
+ function buildCompositionRole(tx, pkg, role) {
72
+ if (role.type === "Custom") {
73
+ return tx.add(compositionPartyRole.newCustomRole({ package: pkg, arguments: [role.name] }));
74
+ }
75
+ return tx.add(COMPOSITION_ROLE_CTOR[role.type]({ package: pkg }));
76
+ }
77
+ /** Builds one `RecordingPartyRole` value in the PTB. */
78
+ function buildRecordingRole(tx, pkg, role) {
79
+ switch (role.type) {
80
+ case "ArtistsAndRepertoire":
81
+ return tx.add(recordingPartyRole.newArtistsAndRepertoireRole({ package: pkg }));
82
+ case "Copyist":
83
+ return tx.add(recordingPartyRole.newCopyistRole({ package: pkg }));
84
+ case "Instrumentalist":
85
+ return tx.add(recordingPartyRole.newInstrumentalistRole({
86
+ package: pkg,
87
+ arguments: [role.instrument, levelOption(tx, pkg, role.level)],
88
+ }));
89
+ case "Custom":
90
+ return tx.add(recordingPartyRole.newCustomRole({
91
+ package: pkg,
92
+ arguments: [role.name, levelOption(tx, pkg, role.level)],
93
+ }));
94
+ default:
95
+ return tx.add(RECORDING_LEVELED_ROLE_CTOR[role.type]({
96
+ package: pkg,
97
+ arguments: [levelOption(tx, pkg, role.level)],
98
+ }));
99
+ }
100
+ }
101
+ /** Builds one `ReleasePartyRole` value in the PTB. */
102
+ function buildReleaseRole(tx, pkg, role) {
103
+ const ctor = role === "Primary" ? releasePartyRole.newPrimaryRole : releasePartyRole.newFeaturedRole;
104
+ return tx.add(ctor({ package: pkg }));
105
+ }
106
+ // ── Client-side validation ────────────────────────────────────────────────────
107
+ //
108
+ // Mirrors the Move aborts so bad params fail fast (and readably) at the writer
109
+ // call site instead of as an on-chain abort code:
110
+ // - miso_credit::credit::new — EEmptyString / EMaxDisplayNameLengthExceeded
111
+ // (display name non-empty, ≤200 BYTES of UTF-8) and ENoRoles / EDuplicateRoles.
112
+ // - composition_credits::add_credit — EMinRolesNotMet / EExceedsMaxRoles (1–5).
113
+ // - recording_credits::add_credit — EMinRolesNotMet / EExceedsMaxRoles (1–10).
114
+ const MAX_DISPLAY_NAME_BYTES = 200;
115
+ const MAX_COMPOSITION_ROLES = 5;
116
+ const MAX_RECORDING_ROLES = 10;
117
+ function assertDisplayName(fn, displayName) {
118
+ if (displayName.length === 0)
119
+ throw new Error(`${fn}: displayName must not be empty`);
120
+ const byteLength = new TextEncoder().encode(displayName).length;
121
+ if (byteLength > MAX_DISPLAY_NAME_BYTES) {
122
+ throw new Error(`${fn}: displayName must be at most ${MAX_DISPLAY_NAME_BYTES} bytes of UTF-8 (got ${byteLength})`);
123
+ }
124
+ }
125
+ // Move rejects duplicates by full struct equality, so the duplicate key is the
126
+ // role's complete identity: type + instrument + custom name + level.
127
+ function roleKey(role) {
128
+ return JSON.stringify([
129
+ role.type,
130
+ "instrument" in role ? role.instrument : null,
131
+ "name" in role ? role.name : null,
132
+ "level" in role && role.level !== undefined ? role.level : null,
133
+ ]);
134
+ }
135
+ function assertRoles(fn, roles, max) {
136
+ if (roles.length < 1)
137
+ throw new Error(`${fn}: at least one role is required`);
138
+ if (roles.length > max)
139
+ throw new Error(`${fn}: at most ${max} roles are allowed (got ${roles.length})`);
140
+ const seen = new Set();
141
+ for (const role of roles) {
142
+ const key = roleKey(role);
143
+ if (seen.has(key))
144
+ throw new Error(`${fn}: duplicate role ${key}`);
145
+ seen.add(key);
146
+ }
147
+ }
148
+ /** Wraps built role values in a `miso_credit::credit::Credit<Role>`. */
149
+ function buildCredit(tx, misoCreditPackageId, roleType, displayName, roleArgs) {
150
+ const roles = tx.makeMoveVec({ type: roleType, elements: roleArgs });
151
+ return tx.moveCall({
152
+ target: `${misoCreditPackageId}::credit::new`,
153
+ typeArguments: [roleType],
154
+ arguments: [tx.pure.string(displayName), roles],
155
+ });
156
+ }
157
+ /**
158
+ * Adds a writing credit for a party on a composition. Throws (client-side,
159
+ * mirroring the Move aborts) when `displayName` is empty or over 200 UTF-8
160
+ * bytes, or `roles` is empty, has more than 5 entries, or contains duplicates.
161
+ */
162
+ export function attachCompositionCredit(p) {
163
+ assertDisplayName("attachCompositionCredit", p.displayName);
164
+ assertRoles("attachCompositionCredit", p.roles, MAX_COMPOSITION_ROLES);
165
+ return (tx) => {
166
+ const roleType = `${p.compositionCreditsPackageId}::composition_party_role::CompositionPartyRole`;
167
+ const roleArgs = p.roles.map((r) => buildCompositionRole(tx, p.compositionCreditsPackageId, r));
168
+ const credit = buildCredit(tx, p.misoCreditPackageId, roleType, p.displayName, roleArgs);
169
+ tx.add(compositionCredits.addCredit({
170
+ package: p.compositionCreditsPackageId,
171
+ typeArguments: [p.compositionShareType],
172
+ arguments: [p.compositionId, p.compositionAdminCapId, p.partyId, credit],
173
+ }));
174
+ };
175
+ }
176
+ /**
177
+ * Adds a production/performance credit for a party on a recording. Throws
178
+ * (client-side, mirroring the Move aborts) when `displayName` is empty or over
179
+ * 200 UTF-8 bytes, or `roles` is empty, has more than 10 entries, or contains
180
+ * duplicates (same type + instrument + custom name + level).
181
+ */
182
+ export function attachRecordingCredit(p) {
183
+ assertDisplayName("attachRecordingCredit", p.displayName);
184
+ assertRoles("attachRecordingCredit", p.roles, MAX_RECORDING_ROLES);
185
+ return (tx) => {
186
+ const roleType = `${p.recordingCreditsPackageId}::recording_party_role::RecordingPartyRole`;
187
+ const roleArgs = p.roles.map((r) => buildRecordingRole(tx, p.recordingCreditsPackageId, r));
188
+ const credit = buildCredit(tx, p.misoCreditPackageId, roleType, p.displayName, roleArgs);
189
+ tx.add(recordingCredits.addCredit({
190
+ package: p.recordingCreditsPackageId,
191
+ typeArguments: [p.recordingShareType, p.compositionShareType],
192
+ arguments: [p.recordingId, p.recordingAdminCapId, p.partyId, credit],
193
+ }));
194
+ };
195
+ }
196
+ /**
197
+ * Designates an already-credited party as a primary artist on a recording. The
198
+ * party must be credited first (via `attachRecordingCredit`) and not already a
199
+ * primary or featured artist.
200
+ */
201
+ export function addRecordingPrimaryArtist(p) {
202
+ return (tx) => {
203
+ tx.add(recordingCredits.addPrimaryArtist({
204
+ package: p.recordingCreditsPackageId,
205
+ typeArguments: [p.recordingShareType, p.compositionShareType],
206
+ arguments: [p.recordingId, p.recordingAdminCapId, p.partyId],
207
+ }));
208
+ };
209
+ }
210
+ /**
211
+ * Designates an already-credited party as a featured artist on a recording. The
212
+ * party must be credited first (via `attachRecordingCredit`) and not already a
213
+ * primary or featured artist.
214
+ */
215
+ export function addRecordingFeaturedArtist(p) {
216
+ return (tx) => {
217
+ tx.add(recordingCredits.addFeaturedArtist({
218
+ package: p.recordingCreditsPackageId,
219
+ typeArguments: [p.recordingShareType, p.compositionShareType],
220
+ arguments: [p.recordingId, p.recordingAdminCapId, p.partyId],
221
+ }));
222
+ };
223
+ }
224
+ /**
225
+ * Adds a top-line billing credit (a single role) for a party on a release.
226
+ * Throws (client-side, mirroring the Move aborts) when `displayName` is empty
227
+ * or over 200 UTF-8 bytes. The single role is structural, so no role checks.
228
+ */
229
+ export function addReleaseCredit(p) {
230
+ assertDisplayName("addReleaseCredit", p.displayName);
231
+ return (tx) => {
232
+ const roleType = `${p.releaseCreditsPackageId}::release_party_role::ReleasePartyRole`;
233
+ const roleArg = buildReleaseRole(tx, p.releaseCreditsPackageId, p.role);
234
+ const credit = buildCredit(tx, p.misoCreditPackageId, roleType, p.displayName, [roleArg]);
235
+ tx.add(releaseCredits.addCredit({
236
+ package: p.releaseCreditsPackageId,
237
+ arguments: [p.releaseId, p.releaseAdminCapId, p.partyId, credit],
238
+ }));
239
+ };
240
+ }
241
+ // Credits are stored as a dynamic field on the work's UID under the extension's
242
+ // `ExtensionKey()` — a positional struct with no fields, so Move's implicit
243
+ // `dummy_field: bool` serializes to a single `false` byte. The stored object is a
244
+ // `Field { id, name: <Key>, value: <Credits> }`.
245
+ const CompositionCreditsField = bcs.struct("Field", {
246
+ id: bcs.Address,
247
+ name: compositionCredits.ExtensionKey,
248
+ value: compositionCredits.CompositionCredits,
249
+ });
250
+ const RecordingCreditsField = bcs.struct("Field", {
251
+ id: bcs.Address,
252
+ name: recordingCredits.ExtensionKey,
253
+ value: recordingCredits.RecordingCredits,
254
+ });
255
+ const ReleaseCreditsField = bcs.struct("Field", {
256
+ id: bcs.Address,
257
+ name: releaseCredits.ExtensionKey,
258
+ value: releaseCredits.ReleaseCredits,
259
+ });
260
+ const COMPOSITION_CREDITS_KEY_BYTES = compositionCredits.ExtensionKey.serialize([false]).toBytes();
261
+ const RECORDING_CREDITS_KEY_BYTES = recordingCredits.ExtensionKey.serialize([false]).toBytes();
262
+ const RELEASE_CREDITS_KEY_BYTES = releaseCredits.ExtensionKey.serialize([false]).toBytes();
263
+ /** Fetches the BCS content of a work's credits dynamic field, or `null` if none. */
264
+ async function fetchCreditsField(client, workId, keyType, keyBytes) {
265
+ const fieldId = deriveDynamicFieldID(workId, keyType, keyBytes);
266
+ try {
267
+ const { object } = await client.core.getObject({ objectId: fieldId, include: { content: true } });
268
+ return object?.content ?? null;
269
+ }
270
+ catch (e) {
271
+ if (isNotFound(e))
272
+ return null;
273
+ throw e;
274
+ }
275
+ }
276
+ function creditViews(credits, roleLabel) {
277
+ return credits.contents.map((entry) => ({
278
+ partyId: entry.key,
279
+ displayName: entry.value.display_name,
280
+ roles: entry.value.roles.map(roleLabel),
281
+ }));
282
+ }
283
+ // `name()` semantics: the `$kind` is the canonical PascalCase token; `Custom`
284
+ // carries the user-supplied name in its payload.
285
+ function compositionRoleLabel(role) {
286
+ return role.$kind === "Custom" ? role.Custom : role.$kind;
287
+ }
288
+ function releaseRoleLabel(role) {
289
+ return role.$kind;
290
+ }
291
+ // `name()` semantics plus the recording extras: the instrument (for
292
+ // `Instrumentalist`) and the optional level, both surfaced into the label.
293
+ function recordingRoleLabel(role) {
294
+ let base;
295
+ let level = null;
296
+ switch (role.$kind) {
297
+ case "Instrumentalist": {
298
+ const [instrument, lvl] = role.Instrumentalist;
299
+ base = `Instrumentalist: ${instrument}`;
300
+ level = lvl;
301
+ break;
302
+ }
303
+ case "Custom": {
304
+ const [name, lvl] = role.Custom;
305
+ base = name;
306
+ level = lvl;
307
+ break;
308
+ }
309
+ case "ArtistsAndRepertoire":
310
+ case "Copyist":
311
+ base = role.$kind;
312
+ break;
313
+ default: {
314
+ // A leveled variant's payload is `Option<Level>`: `None` parses to `true`
315
+ // (the unit-payload convention), `Some(level)` to the level enum object.
316
+ base = role.$kind;
317
+ const payload = role[role.$kind];
318
+ level =
319
+ payload && typeof payload === "object" && "$kind" in payload ? payload : null;
320
+ break;
321
+ }
322
+ }
323
+ return level ? `${base} (${level.$kind})` : base;
324
+ }
325
+ /**
326
+ * Reads a composition's writing credits (the `composition_credits` extension), or
327
+ * `null` if no credits field is attached.
328
+ */
329
+ export async function getCompositionCredits(client, compositionId, compositionCreditsPackageId) {
330
+ const content = await fetchCreditsField(client, compositionId, `${compositionCreditsPackageId}::composition_credits::ExtensionKey`, COMPOSITION_CREDITS_KEY_BYTES);
331
+ if (!content)
332
+ return null;
333
+ return creditViews(CompositionCreditsField.parse(content).value.credits, compositionRoleLabel);
334
+ }
335
+ /**
336
+ * Reads a recording's credits plus its primary/featured artist party ids (the
337
+ * `recording_credits` extension), or `null` if no credits field is attached.
338
+ */
339
+ export async function getRecordingCredits(client, recordingId, recordingCreditsPackageId) {
340
+ const content = await fetchCreditsField(client, recordingId, `${recordingCreditsPackageId}::recording_credits::ExtensionKey`, RECORDING_CREDITS_KEY_BYTES);
341
+ if (!content)
342
+ return null;
343
+ const value = RecordingCreditsField.parse(content).value;
344
+ return {
345
+ credits: creditViews(value.credits, recordingRoleLabel),
346
+ primaryArtistIds: value.primary_artist_ids.contents,
347
+ featuredArtistIds: value.featured_artist_ids.contents,
348
+ };
349
+ }
350
+ /**
351
+ * Reads a release's top-line billing credits (the `release_credits` extension), or
352
+ * `null` if no credits field is attached. Each credit has exactly one role.
353
+ */
354
+ export async function getReleaseCredits(client, releaseId, releaseCreditsPackageId) {
355
+ const content = await fetchCreditsField(client, releaseId, `${releaseCreditsPackageId}::release_credits::ExtensionKey`, RELEASE_CREDITS_KEY_BYTES);
356
+ if (!content)
357
+ return null;
358
+ return creditViews(ReleaseCreditsField.parse(content).value.credits, releaseRoleLabel);
359
+ }
360
+ //# sourceMappingURL=credits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credits.js","sourceRoot":"","sources":["../src/credits.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { Transaction, TransactionObjectArgument } from "@mysten/sui/transactions";
2
+ export interface AttachCompositionRoyaltyPoolParams {
3
+ /** The Composition — an in-PTB `createComposition` result, borrowed `&mut`. */
4
+ composition: TransactionObjectArgument;
5
+ /** The CompositionAdminCap, borrowed `&`. */
6
+ adminCap: TransactionObjectArgument;
7
+ /** The composition's share type (the pool's `Share` phantom = CompositionShare). */
8
+ compositionShareType: string;
9
+ /** Fully-qualified coin type the pool accumulates (the `Currency` phantom). */
10
+ currency: string;
11
+ compositionRoyaltyPoolPackageId: string;
12
+ royaltyPoolPackageId: string;
13
+ }
14
+ /** Creates a royalty pool for a composition and shares it, appending to `tx`. */
15
+ export declare function attachCompositionRoyaltyPool(tx: Transaction, params: AttachCompositionRoyaltyPoolParams): void;
16
+ export interface AttachRecordingRoyaltyPoolParams {
17
+ /** The Recording — an in-PTB `createRecording` result, borrowed `&mut`. */
18
+ recording: TransactionObjectArgument;
19
+ /** The RecordingAdminCap, borrowed `&`. */
20
+ adminCap: TransactionObjectArgument;
21
+ /** The recording's own share type (the pool's `Share` phantom = RecordingShare). */
22
+ recordingShareType: string;
23
+ /** The parent composition's share type (the recording's `CompositionShare` phantom). */
24
+ compositionShareType: string;
25
+ /** Fully-qualified coin type the pool accumulates (the `Currency` phantom). */
26
+ currency: string;
27
+ recordingRoyaltyPoolPackageId: string;
28
+ royaltyPoolPackageId: string;
29
+ }
30
+ /** Creates a royalty pool for a recording and shares it, appending to `tx`. */
31
+ export declare function attachRecordingRoyaltyPool(tx: Transaction, params: AttachRecordingRoyaltyPoolParams): void;
32
+ //# sourceMappingURL=royalty-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"royalty-pool.d.ts","sourceRoot":"","sources":["../../src/extensions/royalty-pool.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAKvF,MAAM,WAAW,kCAAkC;IACjD,+EAA+E;IAC/E,WAAW,EAAE,yBAAyB,CAAC;IACvC,6CAA6C;IAC7C,QAAQ,EAAE,yBAAyB,CAAC;IACpC,oFAAoF;IACpF,oBAAoB,EAAE,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B,EAAE,MAAM,CAAC;IACxC,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,iFAAiF;AACjF,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,kCAAkC,GAAG,IAAI,CAe9G;AAED,MAAM,WAAW,gCAAgC;IAC/C,2EAA2E;IAC3E,SAAS,EAAE,yBAAyB,CAAC;IACrC,2CAA2C;IAC3C,QAAQ,EAAE,yBAAyB,CAAC;IACpC,oFAAoF;IACpF,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wFAAwF;IACxF,oBAAoB,EAAE,MAAM,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B,EAAE,MAAM,CAAC;IACtC,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,+EAA+E;AAC/E,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,gCAAgC,GAAG,IAAI,CAgB1G"}
@@ -0,0 +1,33 @@
1
+ // Copyright (c) Miso Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import * as compositionRoyaltyPool from "../contracts/composition_royalty_pool/composition_royalty_pool.js";
4
+ import * as recordingRoyaltyPool from "../contracts/recording_royalty_pool/recording_royalty_pool.js";
5
+ import * as pool from "../contracts/royalty_pool/pool.js";
6
+ /** Creates a royalty pool for a composition and shares it, appending to `tx`. */
7
+ export function attachCompositionRoyaltyPool(tx, params) {
8
+ const created = tx.add(compositionRoyaltyPool.initializePool({
9
+ package: params.compositionRoyaltyPoolPackageId,
10
+ typeArguments: [params.compositionShareType, params.currency],
11
+ arguments: [params.composition, params.adminCap],
12
+ }));
13
+ tx.add(pool.share({
14
+ package: params.royaltyPoolPackageId,
15
+ typeArguments: [params.compositionShareType, params.currency],
16
+ arguments: [created],
17
+ }));
18
+ }
19
+ /** Creates a royalty pool for a recording and shares it, appending to `tx`. */
20
+ export function attachRecordingRoyaltyPool(tx, params) {
21
+ const created = tx.add(recordingRoyaltyPool.initializePool({
22
+ package: params.recordingRoyaltyPoolPackageId,
23
+ typeArguments: [params.recordingShareType, params.compositionShareType, params.currency],
24
+ arguments: [params.recording, params.adminCap],
25
+ }));
26
+ // The pool is RoyaltyPool<RecordingShare, Currency> — Share is the recording's own share type.
27
+ tx.add(pool.share({
28
+ package: params.royaltyPoolPackageId,
29
+ typeArguments: [params.recordingShareType, params.currency],
30
+ arguments: [created],
31
+ }));
32
+ }
33
+ //# sourceMappingURL=royalty-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"royalty-pool.js","sourceRoot":"","sources":["../../src/extensions/royalty-pool.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,sCAAsC;AAqBtC,OAAO,KAAK,sBAAsB,MAAM,mEAAmE,CAAC;AAC5G,OAAO,KAAK,oBAAoB,MAAM,+DAA+D,CAAC;AACtG,OAAO,KAAK,IAAI,MAAM,mCAAmC,CAAC;AAe1D,iFAAiF;AACjF,MAAM,UAAU,4BAA4B,CAAC,EAAe,EAAE,MAA0C;IACtG,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CACpB,sBAAsB,CAAC,cAAc,CAAC;QACpC,OAAO,EAAE,MAAM,CAAC,+BAA+B;QAC/C,aAAa,EAAE,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,QAAQ,CAAC;QAC7D,SAAS,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC;KACjD,CAAC,CACH,CAAC;IACF,EAAE,CAAC,GAAG,CACJ,IAAI,CAAC,KAAK,CAAC;QACT,OAAO,EAAE,MAAM,CAAC,oBAAoB;QACpC,aAAa,EAAE,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,QAAQ,CAAC;QAC7D,SAAS,EAAE,CAAC,OAAO,CAAC;KACrB,CAAC,CACH,CAAC;AACJ,CAAC;AAiBD,+EAA+E;AAC/E,MAAM,UAAU,0BAA0B,CAAC,EAAe,EAAE,MAAwC;IAClG,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CACpB,oBAAoB,CAAC,cAAc,CAAC;QAClC,OAAO,EAAE,MAAM,CAAC,6BAA6B;QAC7C,aAAa,EAAE,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,QAAQ,CAAC;QACxF,SAAS,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC;KAC/C,CAAC,CACH,CAAC;IACF,+FAA+F;IAC/F,EAAE,CAAC,GAAG,CACJ,IAAI,CAAC,KAAK,CAAC;QACT,OAAO,EAAE,MAAM,CAAC,oBAAoB;QACpC,aAAa,EAAE,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,QAAQ,CAAC;QAC3D,SAAS,EAAE,CAAC,OAAO,CAAC;KACrB,CAAC,CACH,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -7,4 +7,8 @@ export * from "./share.ts";
7
7
  export * from "./share-template.ts";
8
8
  export * from "./release-graph.ts";
9
9
  export * from "./catalog.ts";
10
+ export * from "./credits.ts";
11
+ export * from "./cover.ts";
12
+ export * from "./extensions/royalty-pool.ts";
13
+ export * as contracts from "./contracts.ts";
10
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC/D,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC/D,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAI7B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,8BAA8B,CAAC;AAG7C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -7,13 +7,20 @@
7
7
  //
8
8
  // @misonetwork/* PROTOCOL — Composition, Recording, Release. The open layer
9
9
  // anyone can build on, and nobody needs Miso's permission to use.
10
- // @misofm/* PLATFORM — Pressing, Listing, Record. How MISO sells copies of
11
- // a release: the production line, its currencies, and the record
12
- // a buyer walks away with.
10
+ // @misofm/* PLATFORM — Pressing, Listing, Record, and the first-party
11
+ // EXTENSIONS. How MISO sells copies of a release, and the
12
+ // opinions it attaches to a work along the way.
13
13
  //
14
14
  // A release is protocol. Pressing a record off it and selling that record is
15
15
  // platform. Keeping the split at the package boundary is what stops the protocol
16
16
  // from quietly growing a storefront.
17
+ //
18
+ // Extensions live on this side of the line for the same reason. An extension is
19
+ // not part of what a Composition or Recording IS — it is a choice Miso makes
20
+ // about how to describe one (who gets credited and in what vocabulary, what the
21
+ // cover looks like, whether royalties accumulate in a pool). The protocol gives
22
+ // extensions a `&mut UID` hook and stops there; every opinion about what to hang
23
+ // off it is business logic, and business logic ships from the platform package.
17
24
  // The recommended entry point is the client extension (see ./client.ts); the bare
18
25
  // builders and readers stay exported for callers that hold ids themselves.
19
26
  export { misoPlatform, MisoPlatformClient } from "./client.js";
@@ -24,4 +31,11 @@ export * from "./share.js";
24
31
  export * from "./share-template.js";
25
32
  export * from "./release-graph.js";
26
33
  export * from "./catalog.js";
34
+ // First-party extensions — attached to a protocol work via its cap-gated
35
+ // `uid_mut` hook.
36
+ export * from "./credits.js";
37
+ export * from "./cover.js";
38
+ export * from "./extensions/royalty-pool.js";
39
+ // Generated, ABI-bound bindings (BCS structs + type-safe Move calls).
40
+ export * as contracts from "./contracts.js";
27
41
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,sCAAsC;AAEtC,sCAAsC;AACtC,EAAE;AACF,6EAA6E;AAC7E,oEAAoE;AACpE,EAAE;AACF,+EAA+E;AAC/E,oFAAoF;AACpF,mFAAmF;AACnF,mFAAmF;AACnF,6CAA6C;AAC7C,EAAE;AACF,6EAA6E;AAC7E,iFAAiF;AACjF,qCAAqC;AAErC,kFAAkF;AAClF,2EAA2E;AAC3E,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE/D,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,sCAAsC;AAEtC,sCAAsC;AACtC,EAAE;AACF,6EAA6E;AAC7E,oEAAoE;AACpE,EAAE;AACF,+EAA+E;AAC/E,oFAAoF;AACpF,8EAA8E;AAC9E,4EAA4E;AAC5E,kEAAkE;AAClE,EAAE;AACF,6EAA6E;AAC7E,iFAAiF;AACjF,qCAAqC;AACrC,EAAE;AACF,gFAAgF;AAChF,6EAA6E;AAC7E,gFAAgF;AAChF,gFAAgF;AAChF,iFAAiF;AACjF,gFAAgF;AAEhF,kFAAkF;AAClF,2EAA2E;AAC3E,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE/D,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAE7B,yEAAyE;AACzE,kBAAkB;AAClB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,8BAA8B,CAAC;AAE7C,sEAAsE;AACtE,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,4 @@
1
+ /** `0x1::option::none` / `0x1::option::some` moveCall targets. */
2
+ export declare const OPTION_NONE = "0x1::option::none";
3
+ export declare const OPTION_SOME = "0x1::option::some";
4
+ //# sourceMappingURL=internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAgBA,kEAAkE;AAClE,eAAO,MAAM,WAAW,sBAAsB,CAAC;AAC/C,eAAO,MAAM,WAAW,sBAAsB,CAAC"}
@@ -0,0 +1,18 @@
1
+ // Copyright (c) Miso Labs, Inc.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ // Internal shared helpers (deliberately NOT exported from the package root).
4
+ //
5
+ // PTB building blocks — the `0x1::option` move-call targets used when a generated
6
+ // call needs an `Option` argument built inline. Consumed by `./cover` and
7
+ // `./credits`.
8
+ //
9
+ // These came over from `@misonetwork/sdk`'s own private `internal.ts` when the
10
+ // extension surface moved here. They were NOT promoted to that package's public
11
+ // API to make them reachable: they are two literal Move function targets from the
12
+ // standard library, so re-deriving them costs nothing, whereas exporting them
13
+ // would widen the protocol SDK's public surface — and therefore its compatibility
14
+ // promise — for no benefit.
15
+ /** `0x1::option::none` / `0x1::option::some` moveCall targets. */
16
+ export const OPTION_NONE = "0x1::option::none";
17
+ export const OPTION_SOME = "0x1::option::some";
18
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,sCAAsC;AAEtC,6EAA6E;AAC7E,EAAE;AACF,kFAAkF;AAClF,0EAA0E;AAC1E,eAAe;AACf,EAAE;AACF,+EAA+E;AAC/E,gFAAgF;AAChF,kFAAkF;AAClF,8EAA8E;AAC9E,kFAAkF;AAClF,4BAA4B;AAE5B,kEAAkE;AAClE,MAAM,CAAC,MAAM,WAAW,GAAG,mBAAmB,CAAC;AAC/C,MAAM,CAAC,MAAM,WAAW,GAAG,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"release-graph.d.ts","sourceRoot":"","sources":["../src/release-graph.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,WAAW,EAAkC,MAAM,0BAA0B,CAAC;AAQvF,OAAO,EAAmC,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIzF,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;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,mFAAmF;AACnF,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;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;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,YAAY,GAAG,aAAa,CAAC;AAKtE,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;CACzB;AAQD,sFAAsF;AACtF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,yBAAyB,GAAG,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAmIhG"}
1
+ {"version":3,"file":"release-graph.d.ts","sourceRoot":"","sources":["../src/release-graph.ts"],"names":[],"mappings":"AA4BA,OAAO,EAAE,WAAW,EAAkC,MAAM,0BAA0B,CAAC;AAGvF,OAAO,EAAmC,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIzF,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;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED,mFAAmF;AACnF,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;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;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,YAAY,GAAG,aAAa,CAAC;AAKtE,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;CACzB;AAQD,sFAAsF;AACtF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,yBAAyB,GAAG,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAmIhG"}
@@ -21,11 +21,12 @@
21
21
  //
22
22
  // This is the whole-graph orchestration half of the opinionated publish flow —
23
23
  // it composes `@misonetwork/sdk`'s bare `composition`/`recording`/`deal`/`track`/
24
- // `release` call bindings, its `createRelease` primitive and
25
- // `attachCompositionRoyaltyPool`/`attachRecordingRoyaltyPool`, plus this
26
- // package's own `disperseShares`/`finalizeRelease`, into one PTB.
24
+ // `release` call bindings and its `createRelease` primitive with this package's
25
+ // own `disperseShares`/`finalizeRelease` and royalty-pool extension helpers, into
26
+ // one PTB.
27
27
  import { Transaction } from "@mysten/sui/transactions";
28
- import { contracts, attachCompositionRoyaltyPool, attachRecordingRoyaltyPool, createRelease, PROTOCOL_MAX_ROYALTY_RATE_BPS, } from "@misonetwork/sdk";
28
+ import { contracts, createRelease, PROTOCOL_MAX_ROYALTY_RATE_BPS } from "@misonetwork/sdk";
29
+ import { attachCompositionRoyaltyPool, attachRecordingRoyaltyPool } from "./extensions/royalty-pool.js";
29
30
  import { disperseShares, finalizeRelease } from "./transactions.js";
30
31
  const { composition, recording, deal, track, release } = contracts;
31
32
  const isFresh = (t) => "recordingIndex" in t;
@@ -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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"}