@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.
- package/README.md +138 -10
- package/dist/contracts/composition_credits/composition_credits.d.ts +181 -0
- package/dist/contracts/composition_credits/composition_credits.d.ts.map +1 -0
- package/dist/contracts/composition_credits/composition_credits.js +109 -0
- package/dist/contracts/composition_credits/composition_credits.js.map +1 -0
- package/dist/contracts/composition_credits/composition_party_role.d.ts +119 -0
- package/dist/contracts/composition_credits/composition_party_role.d.ts.map +1 -0
- package/dist/contracts/composition_credits/composition_party_role.js +139 -0
- package/dist/contracts/composition_credits/composition_party_role.js.map +1 -0
- package/dist/contracts/composition_credits/deps/miso_credit/credit.d.ts +24 -0
- package/dist/contracts/composition_credits/deps/miso_credit/credit.d.ts.map +1 -0
- package/dist/contracts/composition_credits/deps/miso_credit/credit.js +23 -0
- package/dist/contracts/composition_credits/deps/miso_credit/credit.js.map +1 -0
- package/dist/contracts/composition_credits/deps/sui/vec_map.d.ts +37 -0
- package/dist/contracts/composition_credits/deps/sui/vec_map.d.ts.map +1 -0
- package/dist/contracts/composition_credits/deps/sui/vec_map.js +28 -0
- package/dist/contracts/composition_credits/deps/sui/vec_map.js.map +1 -0
- package/dist/contracts/composition_royalty_pool/composition_royalty_pool.d.ts +87 -0
- package/dist/contracts/composition_royalty_pool/composition_royalty_pool.d.ts.map +1 -0
- package/dist/contracts/composition_royalty_pool/composition_royalty_pool.js +80 -0
- package/dist/contracts/composition_royalty_pool/composition_royalty_pool.js.map +1 -0
- package/dist/contracts/cover_art/cover_art.d.ts +85 -0
- package/dist/contracts/cover_art/cover_art.d.ts.map +1 -0
- package/dist/contracts/cover_art/cover_art.js +68 -0
- package/dist/contracts/cover_art/cover_art.js.map +1 -0
- package/dist/contracts/cover_art/deps/ori/walrus_data.d.ts +52 -0
- package/dist/contracts/cover_art/deps/ori/walrus_data.d.ts.map +1 -0
- package/dist/contracts/cover_art/deps/ori/walrus_data.js +37 -0
- package/dist/contracts/cover_art/deps/ori/walrus_data.js.map +1 -0
- package/dist/contracts/recording_credits/deps/miso_credit/credit.d.ts +24 -0
- package/dist/contracts/recording_credits/deps/miso_credit/credit.d.ts.map +1 -0
- package/dist/contracts/recording_credits/deps/miso_credit/credit.js +23 -0
- package/dist/contracts/recording_credits/deps/miso_credit/credit.js.map +1 -0
- package/dist/contracts/recording_credits/deps/sui/vec_map.d.ts +37 -0
- package/dist/contracts/recording_credits/deps/sui/vec_map.d.ts.map +1 -0
- package/dist/contracts/recording_credits/deps/sui/vec_map.js +28 -0
- package/dist/contracts/recording_credits/deps/sui/vec_map.js.map +1 -0
- package/dist/contracts/recording_credits/deps/sui/vec_set.d.ts +21 -0
- package/dist/contracts/recording_credits/deps/sui/vec_set.d.ts.map +1 -0
- package/dist/contracts/recording_credits/deps/sui/vec_set.js +20 -0
- package/dist/contracts/recording_credits/deps/sui/vec_set.js.map +1 -0
- package/dist/contracts/recording_credits/recording_credits.d.ts +2313 -0
- package/dist/contracts/recording_credits/recording_credits.d.ts.map +1 -0
- package/dist/contracts/recording_credits/recording_credits.js +270 -0
- package/dist/contracts/recording_credits/recording_credits.js.map +1 -0
- package/dist/contracts/recording_credits/recording_party_role.d.ts +1174 -0
- package/dist/contracts/recording_credits/recording_party_role.d.ts.map +1 -0
- package/dist/contracts/recording_credits/recording_party_role.js +692 -0
- package/dist/contracts/recording_credits/recording_party_role.js.map +1 -0
- package/dist/contracts/recording_royalty_pool/recording_royalty_pool.d.ts +90 -0
- package/dist/contracts/recording_royalty_pool/recording_royalty_pool.d.ts.map +1 -0
- package/dist/contracts/recording_royalty_pool/recording_royalty_pool.js +80 -0
- package/dist/contracts/recording_royalty_pool/recording_royalty_pool.js.map +1 -0
- package/dist/contracts/release_cover_art/deps/0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78/walrus_data.d.ts +52 -0
- package/dist/contracts/release_cover_art/deps/0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78/walrus_data.d.ts.map +1 -0
- package/dist/contracts/release_cover_art/deps/0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78/walrus_data.js +37 -0
- package/dist/contracts/release_cover_art/deps/0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78/walrus_data.js.map +1 -0
- package/dist/contracts/release_cover_art/deps/cover_art/cover_art.d.ts +46 -0
- package/dist/contracts/release_cover_art/deps/cover_art/cover_art.d.ts.map +1 -0
- package/dist/contracts/release_cover_art/deps/cover_art/cover_art.js +21 -0
- package/dist/contracts/release_cover_art/deps/cover_art/cover_art.js.map +1 -0
- package/dist/contracts/release_cover_art/deps/per_track/per_track.d.ts +33 -0
- package/dist/contracts/release_cover_art/deps/per_track/per_track.d.ts.map +1 -0
- package/dist/contracts/release_cover_art/deps/per_track/per_track.js +32 -0
- package/dist/contracts/release_cover_art/deps/per_track/per_track.js.map +1 -0
- package/dist/contracts/release_cover_art/release_cover_art.d.ts +300 -0
- package/dist/contracts/release_cover_art/release_cover_art.d.ts.map +1 -0
- package/dist/contracts/release_cover_art/release_cover_art.js +168 -0
- package/dist/contracts/release_cover_art/release_cover_art.js.map +1 -0
- package/dist/contracts/release_credits/deps/miso_credit/credit.d.ts +24 -0
- package/dist/contracts/release_credits/deps/miso_credit/credit.d.ts.map +1 -0
- package/dist/contracts/release_credits/deps/miso_credit/credit.js +23 -0
- package/dist/contracts/release_credits/deps/miso_credit/credit.js.map +1 -0
- package/dist/contracts/release_credits/deps/sui/vec_map.d.ts +37 -0
- package/dist/contracts/release_credits/deps/sui/vec_map.d.ts.map +1 -0
- package/dist/contracts/release_credits/deps/sui/vec_map.js +28 -0
- package/dist/contracts/release_credits/deps/sui/vec_map.js.map +1 -0
- package/dist/contracts/release_credits/release_credits.d.ts +142 -0
- package/dist/contracts/release_credits/release_credits.d.ts.map +1 -0
- package/dist/contracts/release_credits/release_credits.js +108 -0
- package/dist/contracts/release_credits/release_credits.js.map +1 -0
- package/dist/contracts/release_credits/release_party_role.d.ts +58 -0
- package/dist/contracts/release_credits/release_party_role.d.ts.map +1 -0
- package/dist/contracts/release_credits/release_party_role.js +66 -0
- package/dist/contracts/release_credits/release_party_role.js.map +1 -0
- package/dist/contracts/royalty_pool/deps/std/type_name.d.ts +18 -0
- package/dist/contracts/royalty_pool/deps/std/type_name.d.ts.map +1 -0
- package/dist/contracts/royalty_pool/deps/std/type_name.js +20 -0
- package/dist/contracts/royalty_pool/deps/std/type_name.js.map +1 -0
- package/dist/contracts/royalty_pool/deps/sui/balance.d.ts +13 -0
- package/dist/contracts/royalty_pool/deps/sui/balance.d.ts.map +1 -0
- package/dist/contracts/royalty_pool/deps/sui/balance.js +15 -0
- package/dist/contracts/royalty_pool/deps/sui/balance.js.map +1 -0
- package/dist/contracts/royalty_pool/deps/sui/vec_map.d.ts +37 -0
- package/dist/contracts/royalty_pool/deps/sui/vec_map.d.ts.map +1 -0
- package/dist/contracts/royalty_pool/deps/sui/vec_map.js +28 -0
- package/dist/contracts/royalty_pool/deps/sui/vec_map.js.map +1 -0
- package/dist/contracts/royalty_pool/pool.d.ts +358 -0
- package/dist/contracts/royalty_pool/pool.d.ts.map +1 -0
- package/dist/contracts/royalty_pool/pool.js +352 -0
- package/dist/contracts/royalty_pool/pool.js.map +1 -0
- package/dist/contracts/royalty_pool/stake.d.ts +202 -0
- package/dist/contracts/royalty_pool/stake.d.ts.map +1 -0
- package/dist/contracts/royalty_pool/stake.js +197 -0
- package/dist/contracts/royalty_pool/stake.js.map +1 -0
- package/dist/contracts.d.ts +16 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +29 -0
- package/dist/contracts.js.map +1 -0
- package/dist/cover.d.ts +48 -0
- package/dist/cover.d.ts.map +1 -0
- package/dist/cover.js +68 -0
- package/dist/cover.js.map +1 -0
- package/dist/credits.d.ts +171 -0
- package/dist/credits.d.ts.map +1 -0
- package/dist/credits.js +360 -0
- package/dist/credits.js.map +1 -0
- package/dist/extensions/royalty-pool.d.ts +32 -0
- package/dist/extensions/royalty-pool.d.ts.map +1 -0
- package/dist/extensions/royalty-pool.js +33 -0
- package/dist/extensions/royalty-pool.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -3
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +4 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +18 -0
- package/dist/internal.js.map +1 -0
- package/dist/release-graph.d.ts.map +1 -1
- package/dist/release-graph.js +5 -4
- package/dist/release-graph.js.map +1 -1
- package/package.json +14 -2
- package/src/contracts/composition_credits/composition_credits.ts +169 -0
- package/src/contracts/composition_credits/composition_party_role.ts +189 -0
- package/src/contracts/composition_credits/deps/miso_credit/credit.ts +27 -0
- package/src/contracts/composition_credits/deps/sui/vec_map.ts +33 -0
- package/src/contracts/composition_royalty_pool/composition_royalty_pool.ts +135 -0
- package/src/contracts/cover_art/cover_art.ts +99 -0
- package/src/contracts/cover_art/deps/ori/walrus_data.ts +36 -0
- package/src/contracts/recording_credits/deps/miso_credit/credit.ts +27 -0
- package/src/contracts/recording_credits/deps/sui/vec_map.ts +33 -0
- package/src/contracts/recording_credits/deps/sui/vec_set.ts +21 -0
- package/src/contracts/recording_credits/recording_credits.ts +458 -0
- package/src/contracts/recording_credits/recording_party_role.ts +1041 -0
- package/src/contracts/recording_royalty_pool/recording_royalty_pool.ts +138 -0
- package/src/contracts/release_cover_art/deps/0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78/walrus_data.ts +36 -0
- package/src/contracts/release_cover_art/deps/cover_art/cover_art.ts +23 -0
- package/src/contracts/release_cover_art/deps/per_track/per_track.ts +36 -0
- package/src/contracts/release_cover_art/release_cover_art.ts +251 -0
- package/src/contracts/release_credits/deps/miso_credit/credit.ts +27 -0
- package/src/contracts/release_credits/deps/sui/vec_map.ts +33 -0
- package/src/contracts/release_credits/release_credits.ts +156 -0
- package/src/contracts/release_credits/release_party_role.ts +87 -0
- package/src/contracts/royalty_pool/deps/std/type_name.ts +22 -0
- package/src/contracts/royalty_pool/deps/sui/balance.ts +17 -0
- package/src/contracts/royalty_pool/deps/sui/vec_map.ts +33 -0
- package/src/contracts/royalty_pool/pool.ts +577 -0
- package/src/contracts/royalty_pool/stake.ts +317 -0
- package/src/contracts.ts +33 -0
- package/src/cover.ts +140 -0
- package/src/credits.ts +651 -0
- package/src/extensions/royalty-pool.ts +90 -0
- package/src/index.ts +19 -3
- package/src/internal.ts +19 -0
- package/src/release-graph.ts +5 -10
package/README.md
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
# @misofm/sdk
|
|
2
2
|
|
|
3
3
|
Typed reads and transaction builders for the **Miso platform layer** on Sui: the
|
|
4
|
-
record production line and the sale of copies off it,
|
|
5
|
-
|
|
6
|
-
built on top of
|
|
4
|
+
record production line and the sale of copies off it, the first-party protocol
|
|
5
|
+
extensions (credits, cover art, royalty pools), and the opinionated publish flow
|
|
6
|
+
(share economics, minato dispersal, whole-graph orchestration) built on top of
|
|
7
|
+
`@misonetwork/sdk`'s bare protocol primitives.
|
|
7
8
|
|
|
8
9
|
## The split
|
|
9
10
|
|
|
@@ -13,7 +14,7 @@ holding:
|
|
|
13
14
|
| Scope | Layer | Owns |
|
|
14
15
|
| --- | --- | --- |
|
|
15
16
|
| `@misonetwork/*` | **Protocol** | Composition, Recording, Release as bare primitives — mint a work, don't disperse/publish/transfer it. The permissionless layer anyone can build on |
|
|
16
|
-
| `@misofm/*` | **Platform** | Pressing, Listing, Record (how Miso sells copies of a release) — plus the opinionated finish for publishing works: disperse share supply via minato, publish (share), transfer the admin cap, provision share currencies, and orchestrate a whole release graph in one PTB |
|
|
17
|
+
| `@misofm/*` | **Platform** | Pressing, Listing, Record (how Miso sells copies of a release) — the first-party extensions (credits, cover art, royalty pools) — plus the opinionated finish for publishing works: disperse share supply via minato, publish (share), transfer the admin cap, provision share currencies, and orchestrate a whole release graph in one PTB |
|
|
17
18
|
|
|
18
19
|
A release is protocol. Pressing a record off that release and selling it is
|
|
19
20
|
platform. So is deciding *what to do* with a freshly-minted work's share
|
|
@@ -21,6 +22,15 @@ supply — the protocol only knows how to mint one. Keeping the boundary at the
|
|
|
21
22
|
package line is what stops the open protocol from quietly growing a
|
|
22
23
|
storefront (or an opinion about tokenomics).
|
|
23
24
|
|
|
25
|
+
**Extensions are platform too.** An extension is not part of what a Composition
|
|
26
|
+
or Recording *is* — it is a choice about how to describe one: which credit roles
|
|
27
|
+
exist and what they are called, what counts as a cover, whether royalties
|
|
28
|
+
accumulate in a pool. The protocol offers a cap-gated `&mut UID` hook and takes
|
|
29
|
+
no position on what hangs off it; every module that *does* take a position is
|
|
30
|
+
business logic, and ships from here. (They lived in `@misonetwork/sdk` through
|
|
31
|
+
its 0.2.x line; `@misonetwork/sdk` 0.3.0 dropped them and `@misofm/sdk` 0.2.0
|
|
32
|
+
picked them up, with signatures unchanged — only the import specifier moves.)
|
|
33
|
+
|
|
24
34
|
This package depends on `@misonetwork/sdk` and imports its bare
|
|
25
35
|
`createComposition`/`createRecording` primitives, composing them with its own
|
|
26
36
|
minato-dispersal and share-currency logic in the same PTB — the
|
|
@@ -192,18 +202,130 @@ non-idempotent PTB through a `ParallelTransactionExecutor` exactly once (no
|
|
|
192
202
|
auto-retry) — it's what the batched provisioning above builds on, layered over
|
|
193
203
|
`@misonetwork/sdk`'s transport-agnostic `buildTx`/`toExecResult`.
|
|
194
204
|
|
|
205
|
+
## Extensions
|
|
206
|
+
|
|
207
|
+
An extension attaches data to a protocol work through that work's cap-gated
|
|
208
|
+
`uid_mut` hook. The work stays a protocol object; the opinion hanging off it is
|
|
209
|
+
ours.
|
|
210
|
+
|
|
211
|
+
### Credits (`credits.ts`)
|
|
212
|
+
|
|
213
|
+
Contributor credits pair a party with a display name and one or more
|
|
214
|
+
domain-specific roles, attached to a work as a dynamic field and gated by the
|
|
215
|
+
work's admin cap. Three role vocabularies:
|
|
216
|
+
|
|
217
|
+
- **Composition** (writing, 1–5 roles, no level): `Adapter`, `Arranger`, `Composer`, `Lyricist`, `Songwriter`, `Translator`, or `{ type: "Custom", name }`.
|
|
218
|
+
- **Recording** (production/performance, 1–10 roles): 28 leveled roles (`Producer`, `Vocalist`, `Engineer`, …) each with an optional seniority `level` (`Lead`, `Featured`, `Executive`, …), plus `{ type: "Instrumentalist", instrument, level? }`, `{ type: "Custom", name, level? }`, and the unleveled `ArtistsAndRepertoire` / `Copyist`.
|
|
219
|
+
- **Release** (top-line billing, exactly one role): `"Primary"` or `"Featured"`.
|
|
220
|
+
|
|
221
|
+
Writers validate client-side, mirroring the Move aborts: display name
|
|
222
|
+
non-empty and ≤200 UTF-8 bytes; role counts within the caps above; no
|
|
223
|
+
duplicate roles.
|
|
224
|
+
|
|
225
|
+
```ts
|
|
226
|
+
import {
|
|
227
|
+
attachCompositionCredit, attachRecordingCredit, addReleaseCredit,
|
|
228
|
+
addRecordingPrimaryArtist, addRecordingFeaturedArtist,
|
|
229
|
+
getCompositionCredits, getRecordingCredits, getReleaseCredits,
|
|
230
|
+
} from "@misofm/sdk";
|
|
231
|
+
|
|
232
|
+
const thunk = attachRecordingCredit({
|
|
233
|
+
recordingId: "0x...",
|
|
234
|
+
recordingAdminCapId: "0x...",
|
|
235
|
+
partyId: "0x...",
|
|
236
|
+
displayName: "Jane Doe",
|
|
237
|
+
roles: [{ type: "Vocalist", level: "Lead" }, { type: "Instrumentalist", instrument: "Guitar" }],
|
|
238
|
+
recordingShareType: "0x...::share::Share",
|
|
239
|
+
compositionShareType: "0x...::share::Share",
|
|
240
|
+
recordingCreditsPackageId: "0x...",
|
|
241
|
+
misoCreditPackageId: "0x...",
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
// Designate an already-credited party (same params minus displayName/roles/misoCreditPackageId):
|
|
245
|
+
addRecordingPrimaryArtist({ recordingId, recordingAdminCapId, partyId, recordingShareType, compositionShareType, recordingCreditsPackageId });
|
|
246
|
+
|
|
247
|
+
// Reads return null when no credits field is attached.
|
|
248
|
+
const credits = await getCompositionCredits(client, compositionId, compositionCreditsPackageId);
|
|
249
|
+
// CreditView[]: { partyId, displayName, roles: string[] } — e.g. "Producer (Lead)", "Instrumentalist: Guitar"
|
|
250
|
+
const rc = await getRecordingCredits(client, recordingId, recordingCreditsPackageId);
|
|
251
|
+
// { credits: CreditView[], primaryArtistIds: string[], featuredArtistIds: string[] }
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
`attachCompositionCredit` takes `compositionId`/`compositionAdminCapId`/`compositionShareType`/`compositionCreditsPackageId`;
|
|
255
|
+
`addReleaseCredit` takes `releaseId`/`releaseAdminCapId` and a single `role`.
|
|
256
|
+
|
|
257
|
+
A recording is `Recording<RecordingShare, CompositionShare>` — the recording's
|
|
258
|
+
OWN share type comes first, its parent composition's second. The recording
|
|
259
|
+
writers take both as separate named params for that reason; passing them in the
|
|
260
|
+
wrong order still typechecks (both are `string`) and resolves to the wrong
|
|
261
|
+
on-chain type.
|
|
262
|
+
|
|
263
|
+
### Cover art (`cover.ts`)
|
|
264
|
+
|
|
265
|
+
A release's cover is a Walrus blob referenced on-chain via `ori::WalrusData`,
|
|
266
|
+
attached under the `release_cover_art` extension:
|
|
267
|
+
|
|
268
|
+
```ts
|
|
269
|
+
import { setReleaseCover, getReleaseCover } from "@misofm/sdk";
|
|
270
|
+
|
|
271
|
+
const thunk = setReleaseCover({
|
|
272
|
+
releaseId: "0x...",
|
|
273
|
+
releaseAdminCapId: "0x...",
|
|
274
|
+
stillBlobId: "987654321", // Walrus blob id as u256 (decimal string or bigint)
|
|
275
|
+
animatedBlobId: null, // optional animated cover
|
|
276
|
+
coverArtPackageId: "0x...",
|
|
277
|
+
releaseCoverArtPackageId: "0x...",
|
|
278
|
+
oriPackageId: "0x...",
|
|
279
|
+
});
|
|
280
|
+
|
|
281
|
+
const cover = await getReleaseCover(client, releaseId, releaseCoverArtPackageId);
|
|
282
|
+
// ReleaseCoverView | null: { still, animated } as normalized Walrus refs
|
|
283
|
+
// ({ kind: "blob", blobId } | { kind: "quiltPatch", quiltId, version, startIndex, endIndex })
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### Royalty pools (`extensions/royalty-pool.ts`)
|
|
287
|
+
|
|
288
|
+
`attachCompositionRoyaltyPool(tx, params)` / `attachRecordingRoyaltyPool(tx, params)`
|
|
289
|
+
create and share a `RoyaltyPool<Share, Currency>` for a work inside its publish
|
|
290
|
+
PTB — after `@misonetwork/sdk`'s `createComposition`/`createRecording`, before
|
|
291
|
+
this package's opinionated finish. `publishReleaseGraph` accepts them as
|
|
292
|
+
`royaltyPool` nodes and does the sequencing for you.
|
|
293
|
+
|
|
294
|
+
### Extension types
|
|
295
|
+
|
|
296
|
+
```ts
|
|
297
|
+
import type {
|
|
298
|
+
CreditView, RecordingCreditsView,
|
|
299
|
+
CompositionRole, RecordingRole, RecordingRoleLevel, RecordingLeveledRoleType,
|
|
300
|
+
ReleaseRole,
|
|
301
|
+
ReleaseCoverView, CoverImageRef,
|
|
302
|
+
} from "@misofm/sdk";
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
`RecordingLeveledRoleType` is the union of the 28 recording role base names that
|
|
306
|
+
carry an optional `RecordingRoleLevel` (`Producer`, `Vocalist`, `Engineer`,
|
|
307
|
+
`Conductor`, …) — the leveled arm of `RecordingRole`. The other arms
|
|
308
|
+
(`Instrumentalist`, `Custom`, and the unleveled `ArtistsAndRepertoire` /
|
|
309
|
+
`Copyist`) are spelled out separately in `RecordingRole`.
|
|
310
|
+
|
|
195
311
|
## Layout
|
|
196
312
|
|
|
197
313
|
```
|
|
198
314
|
src/
|
|
199
315
|
client.ts the client extension — misoPlatform({ packageId, settingsId, misoPackageId?, minatoPackageId? })
|
|
200
316
|
pressing.ts facade: builders, readers, and the id derivations
|
|
201
|
-
queries.ts shared read plumbing (isNotFound)
|
|
317
|
+
queries.ts shared read plumbing (isNotFound, re-exported from @misonetwork/sdk)
|
|
202
318
|
transactions.ts the TxThunk contract + the opinionated publish flow (disperse/finalize/publish*)
|
|
203
319
|
release-graph.ts whole release graph in one PTB (publishReleaseGraph)
|
|
204
320
|
share.ts share-currency provisioning (createShareCurrency, batched variants)
|
|
205
321
|
share-template.ts embedded `share` package bytecode
|
|
322
|
+
credits.ts EXTENSION: contributor credits + the three role vocabularies
|
|
323
|
+
cover.ts EXTENSION: release cover art (Walrus blob via ori)
|
|
324
|
+
extensions/
|
|
325
|
+
royalty-pool.ts EXTENSION: create + share a RoyaltyPool<Share, Currency>
|
|
206
326
|
execute.ts executeViaExecutor, layered on @misonetwork/sdk's buildTx/toExecResult
|
|
327
|
+
internal.ts private helpers (the 0x1::option moveCall targets) — NOT exported
|
|
328
|
+
contracts.ts barrel re-exporting the generated bindings as `contracts`
|
|
207
329
|
contracts/ GENERATED — do not edit by hand
|
|
208
330
|
```
|
|
209
331
|
|
|
@@ -216,11 +338,17 @@ the on-chain ABI:
|
|
|
216
338
|
bun run codegen # reads sui-codegen.config.ts → src/contracts/
|
|
217
339
|
```
|
|
218
340
|
|
|
219
|
-
`sui-codegen.config.ts` lists **platform
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
341
|
+
`sui-codegen.config.ts` lists the **platform** package (`miso_pressing`) and the
|
|
342
|
+
first-party **extension** packages (`royalty_pool`, `composition_royalty_pool`,
|
|
343
|
+
`recording_royalty_pool`, `cover_art`, `release_cover_art`,
|
|
344
|
+
`composition_credits`, `recording_credits`, `release_credits`). The protocol
|
|
345
|
+
CORE (`miso` — composition/recording/release/deal/track) generates into
|
|
346
|
+
`@misonetwork/sdk` instead, which this package depends on for those bindings —
|
|
347
|
+
adding the core here to save an import is how the split this package exists to
|
|
348
|
+
enforce gets undone.
|
|
349
|
+
|
|
350
|
+
Paths resolve against sibling checkouts, so regenerating requires
|
|
351
|
+
`~/Documents/GitHub/misofm/{sdk, pressing, protocol-extensions}`.
|
|
224
352
|
|
|
225
353
|
## Dependency on `@misonetwork/sdk`
|
|
226
354
|
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**************************************************************
|
|
2
|
+
* THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
|
|
3
|
+
**************************************************************/
|
|
4
|
+
/**
|
|
5
|
+
* First-party credits extension for compositions.
|
|
6
|
+
*
|
|
7
|
+
* Attribution (writing credits) is display-oriented and varies across platforms,
|
|
8
|
+
* so it lives here as a dynamic field on the composition rather than in immutable
|
|
9
|
+
* core. The data is attached under `ExtensionKey()` via the composition's
|
|
10
|
+
* cap-gated `uid_mut`, so every mutation is authorized by the composition's admin
|
|
11
|
+
* and credits survive into any lifecycle state (they may be attached before or
|
|
12
|
+
* after the composition is published).
|
|
13
|
+
*
|
|
14
|
+
* This is Miso's canonical credits standard; because it is an extension, other
|
|
15
|
+
* parties may publish their own composition-credits standard against the same
|
|
16
|
+
* `Composition`. Credits are NOT read by the economics — they are attribution.
|
|
17
|
+
*/
|
|
18
|
+
import { MoveTuple, MoveStruct, type RawTransactionArgument } from '../utils/index.js';
|
|
19
|
+
import { type Transaction, type TransactionArgument } from '@mysten/sui/transactions';
|
|
20
|
+
export declare const ExtensionKey: MoveTuple<readonly [import("@mysten/sui/bcs").BcsType<boolean, boolean, "bool">], "@local-pkg/composition_credits::composition_credits::ExtensionKey">;
|
|
21
|
+
export declare const CompositionCredits: MoveStruct<{
|
|
22
|
+
/** Map of party IDs to their credit (display name + roles). */
|
|
23
|
+
credits: MoveStruct<{
|
|
24
|
+
contents: import("@mysten/sui/bcs").BcsType<{
|
|
25
|
+
key: string;
|
|
26
|
+
value: {
|
|
27
|
+
display_name: string;
|
|
28
|
+
roles: import("@mysten/bcs").EnumOutputShapeWithKeys<{
|
|
29
|
+
Adapter: true;
|
|
30
|
+
Arranger: true;
|
|
31
|
+
Composer: true;
|
|
32
|
+
Lyricist: true;
|
|
33
|
+
Songwriter: true;
|
|
34
|
+
Translator: true;
|
|
35
|
+
Custom: string;
|
|
36
|
+
}, "Adapter" | "Arranger" | "Composer" | "Lyricist" | "Songwriter" | "Translator" | "Custom">[];
|
|
37
|
+
};
|
|
38
|
+
}[], Iterable<{
|
|
39
|
+
key: string | Uint8Array<ArrayBufferLike>;
|
|
40
|
+
value: {
|
|
41
|
+
display_name: string;
|
|
42
|
+
roles: Iterable<import("@mysten/bcs").EnumInputShape<{
|
|
43
|
+
Adapter: boolean | object | null;
|
|
44
|
+
Arranger: boolean | object | null;
|
|
45
|
+
Composer: boolean | object | null;
|
|
46
|
+
Lyricist: boolean | object | null;
|
|
47
|
+
Songwriter: boolean | object | null;
|
|
48
|
+
Translator: boolean | object | null;
|
|
49
|
+
Custom: string;
|
|
50
|
+
}>> & {
|
|
51
|
+
length: number;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
}> & {
|
|
55
|
+
length: number;
|
|
56
|
+
}, string>;
|
|
57
|
+
}, "0x2::vec_map::VecMap<bytes[32], miso_credit::credit::Credit<@local-pkg/composition_credits::composition_party_role::CompositionPartyRole>>">;
|
|
58
|
+
}, "@local-pkg/composition_credits::composition_credits::CompositionCredits">;
|
|
59
|
+
export declare const CreditAddedEvent: MoveStruct<{
|
|
60
|
+
composition_id: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
61
|
+
party_id: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
62
|
+
credit: MoveStruct<{
|
|
63
|
+
display_name: import("@mysten/sui/bcs").BcsType<string, string, "string">;
|
|
64
|
+
roles: import("@mysten/sui/bcs").BcsType<import("@mysten/bcs").EnumOutputShapeWithKeys<{
|
|
65
|
+
Adapter: true;
|
|
66
|
+
Arranger: true;
|
|
67
|
+
Composer: true;
|
|
68
|
+
Lyricist: true;
|
|
69
|
+
Songwriter: true;
|
|
70
|
+
Translator: true;
|
|
71
|
+
Custom: string;
|
|
72
|
+
}, "Adapter" | "Arranger" | "Composer" | "Lyricist" | "Songwriter" | "Translator" | "Custom">[], Iterable<import("@mysten/bcs").EnumInputShape<{
|
|
73
|
+
Adapter: boolean | object | null;
|
|
74
|
+
Arranger: boolean | object | null;
|
|
75
|
+
Composer: boolean | object | null;
|
|
76
|
+
Lyricist: boolean | object | null;
|
|
77
|
+
Songwriter: boolean | object | null;
|
|
78
|
+
Translator: boolean | object | null;
|
|
79
|
+
Custom: string;
|
|
80
|
+
}>> & {
|
|
81
|
+
length: number;
|
|
82
|
+
}, string>;
|
|
83
|
+
}, "miso_credit::credit::Credit<@local-pkg/composition_credits::composition_party_role::CompositionPartyRole>">;
|
|
84
|
+
}, "@local-pkg/composition_credits::composition_credits::CreditAddedEvent">;
|
|
85
|
+
export declare const CreditRemovedEvent: MoveStruct<{
|
|
86
|
+
composition_id: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
87
|
+
party_id: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
88
|
+
credit: MoveStruct<{
|
|
89
|
+
display_name: import("@mysten/sui/bcs").BcsType<string, string, "string">;
|
|
90
|
+
roles: import("@mysten/sui/bcs").BcsType<import("@mysten/bcs").EnumOutputShapeWithKeys<{
|
|
91
|
+
Adapter: true;
|
|
92
|
+
Arranger: true;
|
|
93
|
+
Composer: true;
|
|
94
|
+
Lyricist: true;
|
|
95
|
+
Songwriter: true;
|
|
96
|
+
Translator: true;
|
|
97
|
+
Custom: string;
|
|
98
|
+
}, "Adapter" | "Arranger" | "Composer" | "Lyricist" | "Songwriter" | "Translator" | "Custom">[], Iterable<import("@mysten/bcs").EnumInputShape<{
|
|
99
|
+
Adapter: boolean | object | null;
|
|
100
|
+
Arranger: boolean | object | null;
|
|
101
|
+
Composer: boolean | object | null;
|
|
102
|
+
Lyricist: boolean | object | null;
|
|
103
|
+
Songwriter: boolean | object | null;
|
|
104
|
+
Translator: boolean | object | null;
|
|
105
|
+
Custom: string;
|
|
106
|
+
}>> & {
|
|
107
|
+
length: number;
|
|
108
|
+
}, string>;
|
|
109
|
+
}, "miso_credit::credit::Credit<@local-pkg/composition_credits::composition_party_role::CompositionPartyRole>">;
|
|
110
|
+
}, "@local-pkg/composition_credits::composition_credits::CreditRemovedEvent">;
|
|
111
|
+
export interface AddCreditArguments {
|
|
112
|
+
self: RawTransactionArgument<string>;
|
|
113
|
+
cap: RawTransactionArgument<string>;
|
|
114
|
+
party: RawTransactionArgument<string>;
|
|
115
|
+
credit: TransactionArgument;
|
|
116
|
+
}
|
|
117
|
+
export interface AddCreditOptions {
|
|
118
|
+
package?: string;
|
|
119
|
+
arguments: AddCreditArguments | [
|
|
120
|
+
self: RawTransactionArgument<string>,
|
|
121
|
+
cap: RawTransactionArgument<string>,
|
|
122
|
+
party: RawTransactionArgument<string>,
|
|
123
|
+
credit: TransactionArgument
|
|
124
|
+
];
|
|
125
|
+
typeArguments: [
|
|
126
|
+
string
|
|
127
|
+
];
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Adds a credit for a party on the composition, lazily creating the credits record
|
|
131
|
+
* on first use. Each credit must have 1-5 roles, and a party may hold at most one
|
|
132
|
+
* credit. Requires the composition's admin capability.
|
|
133
|
+
*/
|
|
134
|
+
export declare function addCredit(options: AddCreditOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
135
|
+
export interface RemoveCreditArguments {
|
|
136
|
+
self: RawTransactionArgument<string>;
|
|
137
|
+
cap: RawTransactionArgument<string>;
|
|
138
|
+
partyId: RawTransactionArgument<string>;
|
|
139
|
+
}
|
|
140
|
+
export interface RemoveCreditOptions {
|
|
141
|
+
package?: string;
|
|
142
|
+
arguments: RemoveCreditArguments | [
|
|
143
|
+
self: RawTransactionArgument<string>,
|
|
144
|
+
cap: RawTransactionArgument<string>,
|
|
145
|
+
partyId: RawTransactionArgument<string>
|
|
146
|
+
];
|
|
147
|
+
typeArguments: [
|
|
148
|
+
string
|
|
149
|
+
];
|
|
150
|
+
}
|
|
151
|
+
/** Removes a party's credit. Requires the composition's admin capability. */
|
|
152
|
+
export declare function removeCredit(options: RemoveCreditOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
153
|
+
export interface HasCreditsArguments {
|
|
154
|
+
self: RawTransactionArgument<string>;
|
|
155
|
+
}
|
|
156
|
+
export interface HasCreditsOptions {
|
|
157
|
+
package?: string;
|
|
158
|
+
arguments: HasCreditsArguments | [
|
|
159
|
+
self: RawTransactionArgument<string>
|
|
160
|
+
];
|
|
161
|
+
typeArguments: [
|
|
162
|
+
string
|
|
163
|
+
];
|
|
164
|
+
}
|
|
165
|
+
/** Returns whether a credits record has been attached to this composition yet. */
|
|
166
|
+
export declare function hasCredits(options: HasCreditsOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
167
|
+
export interface CreditsArguments {
|
|
168
|
+
self: RawTransactionArgument<string>;
|
|
169
|
+
}
|
|
170
|
+
export interface CreditsOptions {
|
|
171
|
+
package?: string;
|
|
172
|
+
arguments: CreditsArguments | [
|
|
173
|
+
self: RawTransactionArgument<string>
|
|
174
|
+
];
|
|
175
|
+
typeArguments: [
|
|
176
|
+
string
|
|
177
|
+
];
|
|
178
|
+
}
|
|
179
|
+
/** Returns the party-to-credit map. Aborts if no credits are attached. */
|
|
180
|
+
export declare function credits(options: CreditsOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
181
|
+
//# sourceMappingURL=composition_credits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composition_credits.d.ts","sourceRoot":"","sources":["../../../src/contracts/composition_credits/composition_credits.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**************************************************************
|
|
2
|
+
* THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
|
|
3
|
+
**************************************************************/
|
|
4
|
+
/**
|
|
5
|
+
* First-party credits extension for compositions.
|
|
6
|
+
*
|
|
7
|
+
* Attribution (writing credits) is display-oriented and varies across platforms,
|
|
8
|
+
* so it lives here as a dynamic field on the composition rather than in immutable
|
|
9
|
+
* core. The data is attached under `ExtensionKey()` via the composition's
|
|
10
|
+
* cap-gated `uid_mut`, so every mutation is authorized by the composition's admin
|
|
11
|
+
* and credits survive into any lifecycle state (they may be attached before or
|
|
12
|
+
* after the composition is published).
|
|
13
|
+
*
|
|
14
|
+
* This is Miso's canonical credits standard; because it is an extension, other
|
|
15
|
+
* parties may publish their own composition-credits standard against the same
|
|
16
|
+
* `Composition`. Credits are NOT read by the economics — they are attribution.
|
|
17
|
+
*/
|
|
18
|
+
import { MoveTuple, MoveStruct, normalizeMoveArguments } from '../utils/index.js';
|
|
19
|
+
import { bcs } from '@mysten/sui/bcs';
|
|
20
|
+
import {} from '@mysten/sui/transactions';
|
|
21
|
+
import * as vec_map from './deps/sui/vec_map.js';
|
|
22
|
+
import * as credit from './deps/miso_credit/credit.js';
|
|
23
|
+
import * as composition_party_role from './composition_party_role.js';
|
|
24
|
+
const $moduleName = '@local-pkg/composition_credits::composition_credits';
|
|
25
|
+
export const ExtensionKey = new MoveTuple({ name: `${$moduleName}::ExtensionKey`, fields: [bcs.bool()] });
|
|
26
|
+
export const CompositionCredits = new MoveStruct({ name: `${$moduleName}::CompositionCredits`, fields: {
|
|
27
|
+
/** Map of party IDs to their credit (display name + roles). */
|
|
28
|
+
credits: vec_map.VecMap(bcs.Address, credit.Credit(composition_party_role.CompositionPartyRole))
|
|
29
|
+
} });
|
|
30
|
+
export const CreditAddedEvent = new MoveStruct({ name: `${$moduleName}::CreditAddedEvent`, fields: {
|
|
31
|
+
composition_id: bcs.Address,
|
|
32
|
+
party_id: bcs.Address,
|
|
33
|
+
credit: credit.Credit(composition_party_role.CompositionPartyRole)
|
|
34
|
+
} });
|
|
35
|
+
export const CreditRemovedEvent = new MoveStruct({ name: `${$moduleName}::CreditRemovedEvent`, fields: {
|
|
36
|
+
composition_id: bcs.Address,
|
|
37
|
+
party_id: bcs.Address,
|
|
38
|
+
credit: credit.Credit(composition_party_role.CompositionPartyRole)
|
|
39
|
+
} });
|
|
40
|
+
/**
|
|
41
|
+
* Adds a credit for a party on the composition, lazily creating the credits record
|
|
42
|
+
* on first use. Each credit must have 1-5 roles, and a party may hold at most one
|
|
43
|
+
* credit. Requires the composition's admin capability.
|
|
44
|
+
*/
|
|
45
|
+
export function addCredit(options) {
|
|
46
|
+
const packageAddress = options.package ?? '@local-pkg/composition_credits';
|
|
47
|
+
const argumentsTypes = [
|
|
48
|
+
null,
|
|
49
|
+
null,
|
|
50
|
+
null,
|
|
51
|
+
null
|
|
52
|
+
];
|
|
53
|
+
const parameterNames = ["self", "cap", "party", "credit"];
|
|
54
|
+
return (tx) => tx.moveCall({
|
|
55
|
+
package: packageAddress,
|
|
56
|
+
module: 'composition_credits',
|
|
57
|
+
function: 'add_credit',
|
|
58
|
+
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
|
|
59
|
+
typeArguments: options.typeArguments
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
/** Removes a party's credit. Requires the composition's admin capability. */
|
|
63
|
+
export function removeCredit(options) {
|
|
64
|
+
const packageAddress = options.package ?? '@local-pkg/composition_credits';
|
|
65
|
+
const argumentsTypes = [
|
|
66
|
+
null,
|
|
67
|
+
null,
|
|
68
|
+
'0x2::object::ID'
|
|
69
|
+
];
|
|
70
|
+
const parameterNames = ["self", "cap", "partyId"];
|
|
71
|
+
return (tx) => tx.moveCall({
|
|
72
|
+
package: packageAddress,
|
|
73
|
+
module: 'composition_credits',
|
|
74
|
+
function: 'remove_credit',
|
|
75
|
+
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
|
|
76
|
+
typeArguments: options.typeArguments
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/** Returns whether a credits record has been attached to this composition yet. */
|
|
80
|
+
export function hasCredits(options) {
|
|
81
|
+
const packageAddress = options.package ?? '@local-pkg/composition_credits';
|
|
82
|
+
const argumentsTypes = [
|
|
83
|
+
null
|
|
84
|
+
];
|
|
85
|
+
const parameterNames = ["self"];
|
|
86
|
+
return (tx) => tx.moveCall({
|
|
87
|
+
package: packageAddress,
|
|
88
|
+
module: 'composition_credits',
|
|
89
|
+
function: 'has_credits',
|
|
90
|
+
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
|
|
91
|
+
typeArguments: options.typeArguments
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/** Returns the party-to-credit map. Aborts if no credits are attached. */
|
|
95
|
+
export function credits(options) {
|
|
96
|
+
const packageAddress = options.package ?? '@local-pkg/composition_credits';
|
|
97
|
+
const argumentsTypes = [
|
|
98
|
+
null
|
|
99
|
+
];
|
|
100
|
+
const parameterNames = ["self"];
|
|
101
|
+
return (tx) => tx.moveCall({
|
|
102
|
+
package: packageAddress,
|
|
103
|
+
module: 'composition_credits',
|
|
104
|
+
function: 'credits',
|
|
105
|
+
arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
|
|
106
|
+
typeArguments: options.typeArguments
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=composition_credits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composition_credits.js","sourceRoot":"","sources":["../../../src/contracts/composition_credits/composition_credits.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**************************************************************
|
|
2
|
+
* THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
|
|
3
|
+
**************************************************************/
|
|
4
|
+
/**
|
|
5
|
+
* Defines the roles that parties can hold on a composition. Compositions are the
|
|
6
|
+
* underlying musical works (melody + lyrics), and these roles represent the
|
|
7
|
+
* writing and adaptation contributions to them.
|
|
8
|
+
*
|
|
9
|
+
* ### Design
|
|
10
|
+
*
|
|
11
|
+
* `CompositionPartyRole` is a closed enum: variants can only be constructed and
|
|
12
|
+
* matched inside this module, so the `new_*_role` constructors are the external
|
|
13
|
+
* write-API and `name()` is the external read-API.
|
|
14
|
+
*
|
|
15
|
+
* - **No seniority axis.** Unlike recording roles, composition roles carry no
|
|
16
|
+
* level — a writer either contributed in a given capacity or did not.
|
|
17
|
+
* - **`Custom` is the escape hatch.** The canonical variants cover the common
|
|
18
|
+
* writing vocabulary; anything outside it is a `Custom(name)` whose name is
|
|
19
|
+
* validated. Prefer a canonical variant when one fits.
|
|
20
|
+
* - **`name()` is the canonical identifier**, returned as a stable PascalCase
|
|
21
|
+
* token (e.g. `"Songwriter"`). For `Custom`, `name()` returns the user-supplied
|
|
22
|
+
* string.
|
|
23
|
+
*
|
|
24
|
+
* These identifiers are Miso's own canonical vocabulary; any overlap with an
|
|
25
|
+
* external standard (e.g. DDEX) is coincidental, not a reproduction of it.
|
|
26
|
+
*/
|
|
27
|
+
import { MoveEnum, type RawTransactionArgument } from '../utils/index.js';
|
|
28
|
+
import { type Transaction, type TransactionArgument } from '@mysten/sui/transactions';
|
|
29
|
+
/** Represents a party's role on a composition. */
|
|
30
|
+
export declare const CompositionPartyRole: MoveEnum<{
|
|
31
|
+
/** Adapted an existing work into this composition. */
|
|
32
|
+
Adapter: null;
|
|
33
|
+
/** Arranged the musical parts of the composition. */
|
|
34
|
+
Arranger: null;
|
|
35
|
+
/** Composed the music of the composition. */
|
|
36
|
+
Composer: null;
|
|
37
|
+
/** Wrote the lyrics of the composition. */
|
|
38
|
+
Lyricist: null;
|
|
39
|
+
/** Wrote both music and lyrics of the composition. */
|
|
40
|
+
Songwriter: null;
|
|
41
|
+
/** Translated the lyrics of the composition. */
|
|
42
|
+
Translator: null;
|
|
43
|
+
/**
|
|
44
|
+
* A user-defined role not covered by a canonical variant. Carries the role name
|
|
45
|
+
* (validated). An escape hatch — prefer a canonical variant when one fits.
|
|
46
|
+
*/
|
|
47
|
+
Custom: import("@mysten/sui/bcs").BcsType<string, string, "string">;
|
|
48
|
+
}, "@local-pkg/composition_credits::composition_party_role::CompositionPartyRole">;
|
|
49
|
+
export interface NewAdapterRoleOptions {
|
|
50
|
+
package?: string;
|
|
51
|
+
arguments?: [
|
|
52
|
+
];
|
|
53
|
+
}
|
|
54
|
+
/** Creates a new Adapter role. */
|
|
55
|
+
export declare function newAdapterRole(options?: NewAdapterRoleOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
56
|
+
export interface NewArrangerRoleOptions {
|
|
57
|
+
package?: string;
|
|
58
|
+
arguments?: [
|
|
59
|
+
];
|
|
60
|
+
}
|
|
61
|
+
/** Creates a new Arranger role. */
|
|
62
|
+
export declare function newArrangerRole(options?: NewArrangerRoleOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
63
|
+
export interface NewComposerRoleOptions {
|
|
64
|
+
package?: string;
|
|
65
|
+
arguments?: [
|
|
66
|
+
];
|
|
67
|
+
}
|
|
68
|
+
/** Creates a new Composer role. */
|
|
69
|
+
export declare function newComposerRole(options?: NewComposerRoleOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
70
|
+
export interface NewLyricistRoleOptions {
|
|
71
|
+
package?: string;
|
|
72
|
+
arguments?: [
|
|
73
|
+
];
|
|
74
|
+
}
|
|
75
|
+
/** Creates a new Lyricist role. */
|
|
76
|
+
export declare function newLyricistRole(options?: NewLyricistRoleOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
77
|
+
export interface NewSongwriterRoleOptions {
|
|
78
|
+
package?: string;
|
|
79
|
+
arguments?: [
|
|
80
|
+
];
|
|
81
|
+
}
|
|
82
|
+
/** Creates a new Songwriter role. */
|
|
83
|
+
export declare function newSongwriterRole(options?: NewSongwriterRoleOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
84
|
+
export interface NewTranslatorRoleOptions {
|
|
85
|
+
package?: string;
|
|
86
|
+
arguments?: [
|
|
87
|
+
];
|
|
88
|
+
}
|
|
89
|
+
/** Creates a new Translator role. */
|
|
90
|
+
export declare function newTranslatorRole(options?: NewTranslatorRoleOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
91
|
+
export interface NewCustomRoleArguments {
|
|
92
|
+
roleName: RawTransactionArgument<string>;
|
|
93
|
+
}
|
|
94
|
+
export interface NewCustomRoleOptions {
|
|
95
|
+
package?: string;
|
|
96
|
+
arguments: NewCustomRoleArguments | [
|
|
97
|
+
roleName: RawTransactionArgument<string>
|
|
98
|
+
];
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Creates a new Custom role with a user-defined name. The name freezes into
|
|
102
|
+
* credits, so it is validated here. Prefer a canonical variant when one fits.
|
|
103
|
+
*/
|
|
104
|
+
export declare function newCustomRole(options: NewCustomRoleOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
105
|
+
export interface NameArguments {
|
|
106
|
+
self: TransactionArgument;
|
|
107
|
+
}
|
|
108
|
+
export interface NameOptions {
|
|
109
|
+
package?: string;
|
|
110
|
+
arguments: NameArguments | [
|
|
111
|
+
self: TransactionArgument
|
|
112
|
+
];
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Returns the canonical identifier of the role as a stable PascalCase token. For
|
|
116
|
+
* `Custom`, returns the user-supplied name.
|
|
117
|
+
*/
|
|
118
|
+
export declare function name(options: NameOptions): (tx: Transaction) => import("@mysten/sui/transactions").TransactionResult;
|
|
119
|
+
//# sourceMappingURL=composition_party_role.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composition_party_role.d.ts","sourceRoot":"","sources":["../../../src/contracts/composition_credits/composition_party_role.ts"],"names":[],"mappings":"AAAA;;gEAEgE;AAGhE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,QAAQ,EAA0B,KAAK,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAElG,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,kDAAkD;AAClD,eAAO,MAAM,oBAAoB;IACzB,sDAAsD;;IAEtD,qDAAqD;;IAErD,6CAA6C;;IAE7C,2CAA2C;;IAE3C,sDAAsD;;IAEtD,gDAAgD;;IAEhD;;;OAGG;;kFAEH,CAAC;AACT,MAAM,WAAW,qBAAqB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE;KACX,CAAC;CACL;AACD,kCAAkC;AAClC,wBAAgB,cAAc,CAAC,OAAO,GAAE,qBAA0B,IAEtD,IAAI,WAAW,0DAK1B;AACD,MAAM,WAAW,sBAAsB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE;KACX,CAAC;CACL;AACD,mCAAmC;AACnC,wBAAgB,eAAe,CAAC,OAAO,GAAE,sBAA2B,IAExD,IAAI,WAAW,0DAK1B;AACD,MAAM,WAAW,sBAAsB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE;KACX,CAAC;CACL;AACD,mCAAmC;AACnC,wBAAgB,eAAe,CAAC,OAAO,GAAE,sBAA2B,IAExD,IAAI,WAAW,0DAK1B;AACD,MAAM,WAAW,sBAAsB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE;KACX,CAAC;CACL;AACD,mCAAmC;AACnC,wBAAgB,eAAe,CAAC,OAAO,GAAE,sBAA2B,IAExD,IAAI,WAAW,0DAK1B;AACD,MAAM,WAAW,wBAAwB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE;KACX,CAAC;CACL;AACD,qCAAqC;AACrC,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,IAE5D,IAAI,WAAW,0DAK1B;AACD,MAAM,WAAW,wBAAwB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE;KACX,CAAC;CACL;AACD,qCAAqC;AACrC,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,IAE5D,IAAI,WAAW,0DAK1B;AACD,MAAM,WAAW,sBAAsB;IACnC,QAAQ,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAC;CAC5C;AACD,MAAM,WAAW,oBAAoB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,sBAAsB,GAAG;QAChC,QAAQ,EAAE,sBAAsB,CAAC,MAAM,CAAC;KAC3C,CAAC;CACL;AACD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,IAM/C,IAAI,WAAW,0DAM1B;AACD,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,mBAAmB,CAAC;CAC7B;AACD,MAAM,WAAW,WAAW;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,aAAa,GAAG;QACvB,IAAI,EAAE,mBAAmB;KAC5B,CAAC;CACL;AACD;;;GAGG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,WAAW,IAM7B,IAAI,WAAW,0DAM1B"}
|