@misofm/sdk 0.15.10 → 0.16.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 (145) hide show
  1. package/README.md +153 -56
  2. package/dist/client.d.ts +175 -47
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +302 -47
  5. package/dist/client.js.map +1 -1
  6. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.d.ts +11 -11
  7. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.d.ts.map +1 -1
  8. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.js +9 -9
  9. package/dist/contracts/composition_royalty_pool/composition_royalty_pool.js.map +1 -1
  10. package/dist/contracts/miso_record/deps/std/type_name.d.ts.map +1 -0
  11. package/dist/contracts/miso_record/deps/std/type_name.js.map +1 -0
  12. package/dist/contracts/miso_record/deps/sui/vec_set.d.ts +21 -0
  13. package/dist/contracts/miso_record/deps/sui/vec_set.d.ts.map +1 -0
  14. package/dist/contracts/miso_record/deps/sui/vec_set.js +20 -0
  15. package/dist/contracts/miso_record/deps/sui/vec_set.js.map +1 -0
  16. package/dist/contracts/miso_record/pressing.d.ts +327 -0
  17. package/dist/contracts/miso_record/pressing.d.ts.map +1 -0
  18. package/dist/contracts/miso_record/pressing.js +345 -0
  19. package/dist/contracts/miso_record/pressing.js.map +1 -0
  20. package/dist/contracts/miso_record/record.d.ts +190 -0
  21. package/dist/contracts/miso_record/record.d.ts.map +1 -0
  22. package/dist/contracts/miso_record/record.js +226 -0
  23. package/dist/contracts/miso_record/record.js.map +1 -0
  24. package/dist/contracts/miso_record_shop/deps/std/type_name.d.ts +18 -0
  25. package/dist/contracts/miso_record_shop/deps/std/type_name.d.ts.map +1 -0
  26. package/dist/contracts/miso_record_shop/deps/std/type_name.js +20 -0
  27. package/dist/contracts/miso_record_shop/deps/std/type_name.js.map +1 -0
  28. package/dist/contracts/miso_record_shop/listing.d.ts +387 -0
  29. package/dist/contracts/miso_record_shop/listing.d.ts.map +1 -0
  30. package/dist/contracts/miso_record_shop/listing.js +380 -0
  31. package/dist/contracts/miso_record_shop/listing.js.map +1 -0
  32. package/dist/contracts/miso_record_shop/witness.d.ts +7 -0
  33. package/dist/contracts/miso_record_shop/witness.d.ts.map +1 -0
  34. package/dist/contracts/miso_record_shop/witness.js +9 -0
  35. package/dist/contracts/miso_record_shop/witness.js.map +1 -0
  36. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.d.ts +10 -12
  37. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.d.ts.map +1 -1
  38. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.js +8 -10
  39. package/dist/contracts/recording_royalty_pool/recording_royalty_pool.js.map +1 -1
  40. package/dist/contracts/vault/vault.d.ts +149 -23
  41. package/dist/contracts/vault/vault.d.ts.map +1 -1
  42. package/dist/contracts/vault/vault.js +144 -18
  43. package/dist/contracts/vault/vault.js.map +1 -1
  44. package/dist/contracts.d.ts +3 -3
  45. package/dist/contracts.d.ts.map +1 -1
  46. package/dist/contracts.js +5 -4
  47. package/dist/contracts.js.map +1 -1
  48. package/dist/deployments.d.ts +47 -11
  49. package/dist/deployments.d.ts.map +1 -1
  50. package/dist/deployments.js +48 -9
  51. package/dist/deployments.js.map +1 -1
  52. package/dist/index.d.ts +2 -0
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +2 -0
  55. package/dist/index.js.map +1 -1
  56. package/dist/mix.d.ts +144 -0
  57. package/dist/mix.d.ts.map +1 -0
  58. package/dist/mix.js +656 -0
  59. package/dist/mix.js.map +1 -0
  60. package/dist/pressing.d.ts +72 -156
  61. package/dist/pressing.d.ts.map +1 -1
  62. package/dist/pressing.js +269 -261
  63. package/dist/pressing.js.map +1 -1
  64. package/dist/publication.d.ts +5 -2
  65. package/dist/publication.d.ts.map +1 -1
  66. package/dist/publication.js +63 -34
  67. package/dist/publication.js.map +1 -1
  68. package/dist/read/catalog.d.ts +8 -5
  69. package/dist/read/catalog.d.ts.map +1 -1
  70. package/dist/read/catalog.js +47 -35
  71. package/dist/read/catalog.js.map +1 -1
  72. package/dist/read/config.d.ts +6 -4
  73. package/dist/read/config.d.ts.map +1 -1
  74. package/dist/read/config.js +1 -2
  75. package/dist/read/config.js.map +1 -1
  76. package/dist/read/index.d.ts +1 -1
  77. package/dist/read/index.d.ts.map +1 -1
  78. package/dist/read/index.js +1 -1
  79. package/dist/read/index.js.map +1 -1
  80. package/dist/read/internal/scalars.d.ts.map +1 -1
  81. package/dist/read/internal/scalars.js +4 -3
  82. package/dist/read/internal/scalars.js.map +1 -1
  83. package/dist/read/internal/walrus.d.ts.map +1 -1
  84. package/dist/read/internal/walrus.js +2 -1
  85. package/dist/read/internal/walrus.js.map +1 -1
  86. package/dist/read/receipts.d.ts +21 -12
  87. package/dist/read/receipts.d.ts.map +1 -1
  88. package/dist/read/receipts.js +159 -56
  89. package/dist/read/receipts.js.map +1 -1
  90. package/dist/read/types.d.ts +40 -26
  91. package/dist/read/types.d.ts.map +1 -1
  92. package/dist/read/wallet.d.ts +3 -4
  93. package/dist/read/wallet.d.ts.map +1 -1
  94. package/dist/read/wallet.js +72 -53
  95. package/dist/read/wallet.js.map +1 -1
  96. package/dist/vault.d.ts +71 -15
  97. package/dist/vault.d.ts.map +1 -1
  98. package/dist/vault.js +135 -29
  99. package/dist/vault.js.map +1 -1
  100. package/package.json +10 -3
  101. package/src/client.ts +404 -69
  102. package/src/contracts/composition_royalty_pool/composition_royalty_pool.ts +15 -15
  103. package/src/contracts/miso_record/deps/sui/vec_set.ts +21 -0
  104. package/src/contracts/miso_record/pressing.ts +522 -0
  105. package/src/contracts/miso_record/record.ts +338 -0
  106. package/src/contracts/miso_record_shop/deps/std/type_name.ts +22 -0
  107. package/src/contracts/miso_record_shop/listing.ts +602 -0
  108. package/src/contracts/miso_record_shop/witness.ts +11 -0
  109. package/src/contracts/recording_royalty_pool/recording_royalty_pool.ts +14 -16
  110. package/src/contracts/vault/vault.ts +226 -21
  111. package/src/contracts.ts +5 -4
  112. package/src/deployments.ts +134 -38
  113. package/src/index.ts +2 -0
  114. package/src/mix.ts +910 -0
  115. package/src/pressing.ts +428 -423
  116. package/src/publication.ts +69 -36
  117. package/src/read/catalog.ts +49 -34
  118. package/src/read/config.ts +7 -7
  119. package/src/read/index.ts +9 -1
  120. package/src/read/internal/scalars.ts +4 -2
  121. package/src/read/internal/walrus.ts +2 -1
  122. package/src/read/receipts.ts +181 -66
  123. package/src/read/types.ts +41 -24
  124. package/src/read/wallet.ts +70 -57
  125. package/src/vault.ts +228 -41
  126. package/dist/contracts/miso_pressing/certificate.d.ts +0 -89
  127. package/dist/contracts/miso_pressing/certificate.d.ts.map +0 -1
  128. package/dist/contracts/miso_pressing/certificate.js +0 -108
  129. package/dist/contracts/miso_pressing/certificate.js.map +0 -1
  130. package/dist/contracts/miso_pressing/deps/std/type_name.d.ts.map +0 -1
  131. package/dist/contracts/miso_pressing/deps/std/type_name.js.map +0 -1
  132. package/dist/contracts/miso_pressing/listing.d.ts +0 -434
  133. package/dist/contracts/miso_pressing/listing.d.ts.map +0 -1
  134. package/dist/contracts/miso_pressing/listing.js +0 -401
  135. package/dist/contracts/miso_pressing/listing.js.map +0 -1
  136. package/dist/contracts/miso_pressing/pressing.d.ts +0 -334
  137. package/dist/contracts/miso_pressing/pressing.d.ts.map +0 -1
  138. package/dist/contracts/miso_pressing/pressing.js +0 -298
  139. package/dist/contracts/miso_pressing/pressing.js.map +0 -1
  140. package/src/contracts/miso_pressing/certificate.ts +0 -164
  141. package/src/contracts/miso_pressing/listing.ts +0 -592
  142. package/src/contracts/miso_pressing/pressing.ts +0 -399
  143. /package/dist/contracts/{miso_pressing → miso_record}/deps/std/type_name.d.ts +0 -0
  144. /package/dist/contracts/{miso_pressing → miso_record}/deps/std/type_name.js +0 -0
  145. /package/src/contracts/{miso_pressing → miso_record}/deps/std/type_name.ts +0 -0
package/src/client.ts CHANGED
@@ -7,9 +7,10 @@
7
7
  //
8
8
  // const client = new SuiGrpcClient({ network, baseUrl }).$extend(miso());
9
9
  //
10
- // await client.miso.getSale({ releaseId, currencyType });
10
+ // await client.miso.getSale({ releaseId, edition, currencyType });
11
11
  // await client.miso.protocol.getReleaseById(releaseId);
12
- // tx.add(client.miso.tx.buyRecord({ releaseId, currencyType, amount, recipient }));
12
+ // tx.add(client.miso.tx.purchaseRecord({ releaseId, edition, currencyType,
13
+ // paymentAmount, expectedPricing, recipient }));
13
14
  //
14
15
  // Two things this buys over calling the bare functions:
15
16
  //
@@ -38,8 +39,9 @@ import {
38
39
  } from "@misonetwork/sdk/client";
39
40
  import type { PartyProtocolClient } from "@misonetwork/sdk/party";
40
41
 
41
- import * as listingContract from "./contracts/miso_pressing/listing.ts";
42
- import * as pressingContract from "./contracts/miso_pressing/pressing.ts";
42
+ import * as recordContract from "./contracts/miso_record/record.ts";
43
+ import * as pressingContract from "./contracts/miso_record/pressing.ts";
44
+ import * as listingContract from "./contracts/miso_record_shop/listing.ts";
43
45
  import * as genreContract from "./contracts/genre/genre.ts";
44
46
  import * as releaseDescriptionContract from "./contracts/release_description/release_description.ts";
45
47
  import * as releaseDspLinkContract from "./contracts/release_dsp_link/release_dsp_link.ts";
@@ -62,30 +64,34 @@ import * as coverArtContract from "./contracts/cover_art/cover_art.ts";
62
64
  import * as releaseCoverArtContract from "./contracts/release_cover_art/release_cover_art.ts";
63
65
  import * as releaseCreditsContract from "./contracts/release_credits/release_credits.ts";
64
66
  import {
65
- buyRecord,
67
+ authorizeRecordShop,
66
68
  deriveListingId,
67
69
  derivePressingAdminCapId,
68
70
  derivePressingId,
71
+ deriveRecordId,
69
72
  deriveSaleIds,
70
73
  getListing,
71
74
  getPressing,
75
+ getRecord,
72
76
  getSale,
73
77
  openListing,
74
78
  openPressing,
79
+ purchaseRecord,
80
+ revokeRecordShop,
75
81
  setListingPrice,
76
82
  setListingState,
77
- setPressingState,
78
83
  } from "./pressing.ts";
79
84
  import type {
80
- BuyRecordParams,
81
85
  GetSaleParams,
82
86
  ListingView,
83
87
  OpenListingParams,
84
88
  OpenPressingParams,
89
+ PressingAdministrationParams,
85
90
  PressingView,
91
+ PurchaseRecordParams,
92
+ RecordView,
86
93
  SetListingPriceParams,
87
94
  SetListingStateParams,
88
- SetPressingStateParams,
89
95
  } from "./pressing.ts";
90
96
  import {
91
97
  publishShareCurrency,
@@ -109,7 +115,9 @@ import {
109
115
  } from "./release-graph.ts";
110
116
  import {
111
117
  getMisoPlatformDeployment,
118
+ requireRecordSalesDeployment,
112
119
  type MisoPlatformDeployment,
120
+ type RecordSalesDeployment,
113
121
  } from "./deployments.ts";
114
122
  import {
115
123
  deriveGenreAddress,
@@ -171,8 +179,9 @@ export interface MisoOptions<Name extends string = "miso"> {
171
179
  }
172
180
 
173
181
  export interface MisoPlatformConfig {
174
- /** The published `miso_pressing` package. */
175
- packageId: string;
182
+ /** Finalized immutable Record + Record Shop identities, or an explicit
183
+ * unavailable legacy state that makes every sales API fail closed. */
184
+ recordSales?: RecordSalesDeployment;
176
185
  /**
177
186
  * The `@misonetwork/sdk` protocol package (miso core). Required for the
178
187
  * publish builders (`publishComposition`, `publishRecording`,
@@ -199,6 +208,8 @@ export interface MisoPlatformConfig {
199
208
  recordingPreviewPackageId?: string;
200
209
  /** Shared custody package; needed for VaultAdminCap authority orchestration. */
201
210
  vaultPackageId?: string;
211
+ /** Shared singleton from which canonical Vault IDs are derived. */
212
+ vaultRegistryId?: string;
202
213
  /** Generic royalty-pool value package used by pool and routed-stake helpers. */
203
214
  royaltyPoolPackageId?: string;
204
215
  /** Vault plugins, deliberately separate from data-extension package ids. */
@@ -220,21 +231,30 @@ export interface MisoPlatformConfig {
220
231
  }
221
232
 
222
233
  /** Params with the ids this client already knows dropped from the call site. */
223
- type DistributiveOmit<T, Keys extends PropertyKey> = T extends unknown ? Omit<T, Keys> : never;
224
- type Configured<T> = DistributiveOmit<T, "misoPressingPackageId">;
234
+ type DistributiveOmit<T, Keys extends PropertyKey> = T extends unknown
235
+ ? Omit<T, Keys>
236
+ : never;
237
+ type Configured<T> = DistributiveOmit<
238
+ T,
239
+ "recordPackageId" | "recordShopPackageId"
240
+ >;
225
241
 
226
242
  /** Publish-builder params with the protocol/minato ids this client already knows dropped. */
227
- type ConfiguredPublish<T> = DistributiveOmit<T, "misoPackageId" | "minatoPackageId">;
243
+ type ConfiguredPublish<T> = DistributiveOmit<
244
+ T,
245
+ "misoPackageId" | "minatoPackageId"
246
+ >;
228
247
 
229
248
  /** Release-builder params with this client's core, share, and registry ids dropped. */
230
249
  type ConfiguredRelease<T> = DistributiveOmit<
231
250
  T,
232
- | "misoPackageId"
233
- | "minatoPackageId"
234
- | "releaseRegistryId"
251
+ "misoPackageId" | "minatoPackageId" | "releaseRegistryId"
235
252
  >;
236
253
 
237
- type ConfiguredReleaseKind = DistributiveOmit<SetReleaseKindParams, "releaseKindPackageId">;
254
+ type ConfiguredReleaseKind = DistributiveOmit<
255
+ SetReleaseKindParams,
256
+ "releaseKindPackageId"
257
+ >;
238
258
  type ConfiguredReleaseDescription = DistributiveOmit<
239
259
  SetReleaseDescriptionParams,
240
260
  "releaseDescriptionPackageId"
@@ -261,7 +281,10 @@ type ConfiguredReleaseTrackCover = DistributiveOmit<
261
281
  >;
262
282
 
263
283
  /** Whole-graph params with this client's package ids dropped. */
264
- export type ConfiguredReleaseGraphParams = Omit<PublishReleaseGraphParams, "misoPackageId" | "minatoPackageId">;
284
+ export type ConfiguredReleaseGraphParams = Omit<
285
+ PublishReleaseGraphParams,
286
+ "misoPackageId" | "minatoPackageId"
287
+ >;
265
288
 
266
289
  export class MisoPlatformClient {
267
290
  readonly #client: ClientWithCoreApi;
@@ -282,9 +305,13 @@ export class MisoPlatformClient {
282
305
  // A pressing-only facade must not implicitly register a fail-closed core
283
306
  // extension. Supply a core deployment/misoPackageId when `protocol` is
284
307
  // needed; otherwise this remains a safe, independent pressing client.
285
- this.protocol = protocol ?? (config.misoPackageId
286
- ? protocolMiso({ deployment: { packageId: config.misoPackageId } }).register(client)
287
- : undefined);
308
+ this.protocol =
309
+ protocol ??
310
+ (config.misoPackageId
311
+ ? protocolMiso({
312
+ deployment: { packageId: config.misoPackageId },
313
+ }).register(client)
314
+ : undefined);
288
315
  this.deployment = deployment;
289
316
  }
290
317
 
@@ -298,8 +325,22 @@ export class MisoPlatformClient {
298
325
  return this.protocol.party;
299
326
  }
300
327
 
301
- get packageId(): string {
302
- return this.#config.packageId;
328
+ #recordSales() {
329
+ return requireRecordSalesDeployment(
330
+ this.#config.recordSales ?? {
331
+ status: "unavailable",
332
+ reason:
333
+ "this client was configured without Record and Record Shop package IDs",
334
+ },
335
+ );
336
+ }
337
+
338
+ get recordPackageId(): string {
339
+ return this.#recordSales().recordPackageId;
340
+ }
341
+
342
+ get recordShopPackageId(): string {
343
+ return this.#recordSales().recordShopPackageId;
303
344
  }
304
345
 
305
346
  #misoPackageId(): string {
@@ -348,12 +389,17 @@ export class MisoPlatformClient {
348
389
 
349
390
  /** The run itself, or `null` if this release has never opened one. */
350
391
  getPressing(pressingId: string): Promise<PressingView | null> {
351
- return getPressing(this.#client, pressingId, this.packageId);
392
+ return getPressing(this.#client, pressingId, this.recordPackageId);
352
393
  }
353
394
 
354
395
  /** One currency's offer, or `null` if the run does not sell in it. */
355
396
  getListing(listingId: string): Promise<ListingView | null> {
356
- return getListing(this.#client, listingId, this.packageId);
397
+ return getListing(this.#client, listingId, this.recordShopPackageId);
398
+ }
399
+
400
+ /** One concrete purchased Record, including immutable purchase provenance. */
401
+ getRecord(recordId: string): Promise<RecordView | null> {
402
+ return getRecord(this.#client, recordId, this.recordPackageId);
357
403
  }
358
404
 
359
405
  /** Run + one currency's offer in a single round trip, by address math. */
@@ -363,21 +409,48 @@ export class MisoPlatformClient {
363
409
  }> {
364
410
  return getSale(this.#client, {
365
411
  ...p,
366
- misoPressingPackageId: this.packageId,
412
+ recordPackageId: this.recordPackageId,
413
+ recordShopPackageId: this.recordShopPackageId,
367
414
  });
368
415
  }
369
416
 
370
417
  // ── Address math ──────────────────────────────────────────────────────────
371
418
 
372
419
  readonly ids = {
373
- pressing: (releaseId: string) =>
374
- derivePressingId(releaseId, this.packageId),
420
+ pressing: (releaseId: string, edition: number) =>
421
+ derivePressingId(releaseId, edition, this.recordPackageId),
375
422
  pressingAdminCap: (pressingId: string) =>
376
- derivePressingAdminCapId(pressingId, this.packageId),
423
+ derivePressingAdminCapId(pressingId, this.recordPackageId),
424
+ record: (pressingId: string, number: number) =>
425
+ deriveRecordId(pressingId, number, this.recordPackageId),
377
426
  listing: (pressingId: string, currencyType: string) =>
378
- deriveListingId(pressingId, currencyType, this.packageId),
379
- sale: (releaseId: string, currencyType: string) =>
380
- deriveSaleIds(releaseId, currencyType, this.packageId),
427
+ deriveListingId(pressingId, currencyType, this.recordShopPackageId),
428
+ sale: (releaseId: string, edition: number, currencyType: string) =>
429
+ deriveSaleIds(
430
+ releaseId,
431
+ edition,
432
+ currencyType,
433
+ this.recordPackageId,
434
+ this.recordShopPackageId,
435
+ ),
436
+ vault: (capId: string, capType: string) =>
437
+ vaultActions.deriveVaultId({
438
+ vaultRegistryId: this.#requiredConfig(
439
+ "vaultRegistryId",
440
+ "Vault ID derivation",
441
+ ),
442
+ capId,
443
+ capType,
444
+ vaultPackageId: this.#requiredConfig(
445
+ "vaultPackageId",
446
+ "Vault ID derivation",
447
+ ),
448
+ }),
449
+ vaultAdminCap: (vaultId: string) =>
450
+ vaultActions.deriveVaultAdminCapId(
451
+ vaultId,
452
+ this.#requiredConfig("vaultPackageId", "VaultAdminCap ID derivation"),
453
+ ),
381
454
  genre: (canonicalName: string) =>
382
455
  deriveGenreAddress(
383
456
  this.#requiredConfig("genreRegistryId", "genre id derivation"),
@@ -389,21 +462,38 @@ export class MisoPlatformClient {
389
462
  // ── Transaction builders ──────────────────────────────────────────────────
390
463
 
391
464
  readonly tx = {
392
- buyRecord: (p: Configured<BuyRecordParams>): TxThunk =>
393
- buyRecord({
465
+ purchaseRecord: (p: Configured<PurchaseRecordParams>): TxThunk =>
466
+ purchaseRecord({
394
467
  ...p,
395
- misoPressingPackageId: this.packageId,
468
+ recordPackageId: this.recordPackageId,
469
+ recordShopPackageId: this.recordShopPackageId,
396
470
  }),
397
471
  openPressing: (p: Configured<OpenPressingParams>): TxThunk =>
398
- openPressing({ ...p, misoPressingPackageId: this.packageId }),
472
+ openPressing({
473
+ ...p,
474
+ recordPackageId: this.recordPackageId,
475
+ recordShopPackageId: this.recordShopPackageId,
476
+ }),
399
477
  openListing: (p: Configured<OpenListingParams>): TxThunk =>
400
- openListing({ ...p, misoPressingPackageId: this.packageId }),
478
+ openListing({ ...p, recordShopPackageId: this.recordShopPackageId }),
479
+ authorizeRecordShop: (
480
+ p: Configured<PressingAdministrationParams>,
481
+ ): TxThunk =>
482
+ authorizeRecordShop({
483
+ ...p,
484
+ recordPackageId: this.recordPackageId,
485
+ recordShopPackageId: this.recordShopPackageId,
486
+ }),
487
+ revokeRecordShop: (p: Configured<PressingAdministrationParams>): TxThunk =>
488
+ revokeRecordShop({
489
+ ...p,
490
+ recordPackageId: this.recordPackageId,
491
+ recordShopPackageId: this.recordShopPackageId,
492
+ }),
401
493
  setListingPrice: (p: Configured<SetListingPriceParams>): TxThunk =>
402
- setListingPrice({ ...p, misoPressingPackageId: this.packageId }),
494
+ setListingPrice({ ...p, recordShopPackageId: this.recordShopPackageId }),
403
495
  setListingState: (p: Configured<SetListingStateParams>): TxThunk =>
404
- setListingState({ ...p, misoPressingPackageId: this.packageId }),
405
- setPressingState: (p: Configured<SetPressingStateParams>): TxThunk =>
406
- setPressingState({ ...p, misoPressingPackageId: this.packageId }),
496
+ setListingState({ ...p, recordShopPackageId: this.recordShopPackageId }),
407
497
 
408
498
  // Publishing (protocol works + minato share economics) — package-id-free
409
499
  // builders pass through unchanged; the rest bind this client's
@@ -544,11 +634,65 @@ export class MisoPlatformClient {
544
634
 
545
635
  /** Generated Move-call bindings, for commands this facade doesn't wrap. */
546
636
  get call() {
637
+ const sales =
638
+ this.#config.recordSales?.status === "available"
639
+ ? this.#config.recordSales
640
+ : undefined;
547
641
  return {
548
- listing: bindModulePackage(listingContract, this.packageId, ["newFixedPrice", "newFloorPrice", "newEnabledState", "newDisabledState", "buy", "setState", "setPrice", "deriveId", "hasListing", "releaseId", "pressingId", "price", "state", "isLive", "amount"] as const),
549
- pressing: bindModulePackage(pressingContract, this.packageId, ["newScheduledState", "newActiveState", "newPausedState", "setState", "deriveId", "releaseId", "supply", "isSelling", "pressingAdminCapPressingId"] as const),
642
+ record: sales
643
+ ? bindModulePackage(recordContract, sales.recordPackageId, [
644
+ "destroy",
645
+ "releaseId",
646
+ "pressingId",
647
+ "edition",
648
+ "number",
649
+ "purchaseCurrency",
650
+ "purchasePrice",
651
+ "purchasedBy",
652
+ "purchasedTimestampMs",
653
+ "deriveAddress",
654
+ ] as const)
655
+ : undefined,
656
+ listing: sales
657
+ ? bindModulePackage(listingContract, sales.recordShopPackageId, [
658
+ "fixed",
659
+ "floor",
660
+ "enabled",
661
+ "disabled",
662
+ "setState",
663
+ "setPrice",
664
+ "purchase",
665
+ "deriveAddress",
666
+ "releaseId",
667
+ "pressingId",
668
+ "pricing",
669
+ "price",
670
+ "state",
671
+ "isEnabled",
672
+ "isDisabled",
673
+ "isFixed",
674
+ "isFloor",
675
+ ] as const)
676
+ : undefined,
677
+ pressing: sales
678
+ ? bindModulePackage(pressingContract, sales.recordPackageId, [
679
+ "authorizeDistributor",
680
+ "revokeDistributor",
681
+ "deriveAddress",
682
+ "deriveAdminCapAddress",
683
+ "releaseId",
684
+ "edition",
685
+ "supply",
686
+ "maxSupply",
687
+ "distributors",
688
+ "isDistributorAuthorized",
689
+ "pressingId",
690
+ ] as const)
691
+ : undefined,
550
692
  genre: this.#config.genrePackageId
551
- ? bindModulePackage(genreContract, this.#config.genrePackageId, ["deriveAddress"] as const)
693
+ ? bindModulePackage(genreContract, this.#config.genrePackageId, [
694
+ "deriveAddress",
695
+ ] as const)
552
696
  : undefined,
553
697
  releaseDescription: this.#config.releaseDescriptionPackageId
554
698
  ? bindModulePackage(
@@ -561,14 +705,47 @@ export class MisoPlatformClient {
561
705
  ? bindModulePackage(
562
706
  releaseDspLinkContract,
563
707
  this.#config.releaseDspLinkPackageId,
564
- ["platform", "platformSpotify", "platformAppleMusic", "platformAmazonMusic", "platformBandcamp", "platformDeezer", "platformSoundcloud", "platformTidal", "platformYoutubeMusic", "newSpotify", "newAppleMusicAlbum", "newAppleMusicTrack", "newAmazonMusicAlbum", "newAmazonMusicTrack", "newBandcamp", "newDeezer", "newSoundcloud", "newTidal", "newYoutubeMusic", "setReleaseLink", "clearReleaseLink", "setTrackLink", "clearTrackLink", "clearTrackLinks", "hasReleaseLink"] as const,
708
+ [
709
+ "platform",
710
+ "platformSpotify",
711
+ "platformAppleMusic",
712
+ "platformAmazonMusic",
713
+ "platformBandcamp",
714
+ "platformDeezer",
715
+ "platformSoundcloud",
716
+ "platformTidal",
717
+ "platformYoutubeMusic",
718
+ "newSpotify",
719
+ "newAppleMusicAlbum",
720
+ "newAppleMusicTrack",
721
+ "newAmazonMusicAlbum",
722
+ "newAmazonMusicTrack",
723
+ "newBandcamp",
724
+ "newDeezer",
725
+ "newSoundcloud",
726
+ "newTidal",
727
+ "newYoutubeMusic",
728
+ "setReleaseLink",
729
+ "clearReleaseLink",
730
+ "setTrackLink",
731
+ "clearTrackLink",
732
+ "clearTrackLinks",
733
+ "hasReleaseLink",
734
+ ] as const,
565
735
  )
566
736
  : undefined,
567
737
  releaseGenre: this.#config.releaseGenrePackageId
568
738
  ? bindModulePackage(
569
739
  releaseGenreContract,
570
740
  this.#config.releaseGenrePackageId,
571
- ["setPrimaryGenre", "addSecondaryGenre", "removeSecondaryGenre", "setTrackPrimaryGenre", "unsetTrackPrimaryGenre", "hasGenre"] as const,
741
+ [
742
+ "setPrimaryGenre",
743
+ "addSecondaryGenre",
744
+ "removeSecondaryGenre",
745
+ "setTrackPrimaryGenre",
746
+ "unsetTrackPrimaryGenre",
747
+ "hasGenre",
748
+ ] as const,
572
749
  )
573
750
  : undefined,
574
751
  releaseKind: this.#config.releaseKindPackageId
@@ -578,70 +755,206 @@ export class MisoPlatformClient {
578
755
  ["setKind", "unsetKind", "hasKind"] as const,
579
756
  )
580
757
  : undefined,
581
- releaseRevenueDistributor: this.#config.vaultReleaseRevenueDistributorPluginPackageId
758
+ releaseRevenueDistributor: this.#config
759
+ .vaultReleaseRevenueDistributorPluginPackageId
582
760
  ? bindModulePackage(
583
761
  releaseRevenueDistributorContract,
584
762
  this.#config.vaultReleaseRevenueDistributorPluginPackageId,
585
- ["install", "uninstall", "redeemAndDistribute", "receiveAndDistribute", "isInstalled"] as const,
763
+ [
764
+ "install",
765
+ "uninstall",
766
+ "redeemAndDistribute",
767
+ "receiveAndDistribute",
768
+ "isInstalled",
769
+ ] as const,
586
770
  )
587
771
  : undefined,
588
772
  vault: this.#config.vaultPackageId
589
- ? bindModulePackage(vaultContract, this.#config.vaultPackageId, ["share", "vaultId", "authorizedPluginsId", "authorizedPluginCount", "isPluginAuthorized"] as const)
773
+ ? bindModulePackage(vaultContract, this.#config.vaultPackageId, [
774
+ "share",
775
+ "transferAdminCap",
776
+ "withdrawCap",
777
+ "restoreCap",
778
+ "vaultAddress",
779
+ "vaultAdminCapAddress",
780
+ "vaultId",
781
+ "capId",
782
+ "isOccupied",
783
+ "authorizedPluginsId",
784
+ "authorizedPluginCount",
785
+ "isPluginAuthorized",
786
+ ] as const)
590
787
  : undefined,
591
- compositionRoyaltyPool: this.#config.vaultCompositionRoyaltyPoolPluginPackageId
788
+ compositionRoyaltyPool: this.#config
789
+ .vaultCompositionRoyaltyPoolPluginPackageId
592
790
  ? bindModulePackage(
593
791
  compositionRoyaltyPoolContract,
594
792
  this.#config.vaultCompositionRoyaltyPoolPluginPackageId,
595
- ["install", "uninstall", "newPool", "initializePool", "receiveAndDeposit", "sweepAndDeposit", "isInstalled", "poolAddress"] as const,
793
+ [
794
+ "install",
795
+ "uninstall",
796
+ "newPool",
797
+ "initializePool",
798
+ "receiveAndDeposit",
799
+ "redeemAndDeposit",
800
+ "isInstalled",
801
+ "poolAddress",
802
+ ] as const,
596
803
  )
597
804
  : undefined,
598
- recordingRoyaltyPool: this.#config.vaultRecordingRoyaltyPoolPluginPackageId
805
+ recordingRoyaltyPool: this.#config
806
+ .vaultRecordingRoyaltyPoolPluginPackageId
599
807
  ? bindModulePackage(
600
808
  recordingRoyaltyPoolContract,
601
809
  this.#config.vaultRecordingRoyaltyPoolPluginPackageId,
602
- ["install", "uninstall", "newPool", "initializePool", "receiveAndDeposit", "sweepAndDeposit", "isInstalled", "poolAddress"] as const,
810
+ [
811
+ "install",
812
+ "uninstall",
813
+ "newPool",
814
+ "initializePool",
815
+ "receiveAndDeposit",
816
+ "redeemAndDeposit",
817
+ "isInstalled",
818
+ "poolAddress",
819
+ ] as const,
603
820
  )
604
821
  : undefined,
605
822
  partyWallet: this.#config.vaultPartyWalletPluginPackageId
606
823
  ? bindModulePackage(
607
824
  partyWalletContract,
608
825
  this.#config.vaultPartyWalletPluginPackageId,
609
- ["install", "uninstall", "receiveObject", "receiveObjects", "receiveCoins", "redeemBalance", "sweepBalance", "isInstalled", "inboxAddress", "settledFunds"] as const,
826
+ [
827
+ "install",
828
+ "uninstall",
829
+ "receiveObject",
830
+ "receiveObjects",
831
+ "receiveCoins",
832
+ "redeemBalance",
833
+ "isInstalled",
834
+ "inboxAddress",
835
+ ] as const,
610
836
  )
611
837
  : undefined,
612
- compositionRoutedStake: this.#config.vaultCompositionRoutedStakePluginPackageId
838
+ compositionRoutedStake: this.#config
839
+ .vaultCompositionRoutedStakePluginPackageId
613
840
  ? bindModulePackage(
614
841
  compositionRoutedStakeContract,
615
842
  this.#config.vaultCompositionRoutedStakePluginPackageId,
616
- ["install", "uninstall", "createStake", "register", "unregister", "unstake", "restake", "isInstalled", "stakeAddress"] as const,
843
+ [
844
+ "install",
845
+ "uninstall",
846
+ "createStake",
847
+ "register",
848
+ "unregister",
849
+ "unstake",
850
+ "restake",
851
+ "isInstalled",
852
+ "stakeAddress",
853
+ ] as const,
617
854
  )
618
855
  : undefined,
619
856
  routedStake: this.#config.routedStakePackageId
620
- ? bindModulePackage(routedStakeContract, this.#config.routedStakePackageId, ["share", "register", "unregister", "sweep", "unstake", "restake", "derivedAddress"] as const)
857
+ ? bindModulePackage(
858
+ routedStakeContract,
859
+ this.#config.routedStakePackageId,
860
+ [
861
+ "share",
862
+ "register",
863
+ "unregister",
864
+ "sweep",
865
+ "unstake",
866
+ "restake",
867
+ "derivedAddress",
868
+ ] as const,
869
+ )
621
870
  : undefined,
622
871
  royaltyPool: this.#config.royaltyPoolPackageId
623
- ? bindModulePackage(royaltyPoolContract, this.#config.royaltyPoolPackageId, ["share", "deposit", "sweepAndDeposit", "receiveAndDeposit", "registerStake", "unregisterStake", "claimRewards", "pendingRewards", "stakedShares", "cumulativeRewardPerShare", "cumulativeDeposits", "derivedAddress", "assertDerivedFrom"] as const)
872
+ ? bindModulePackage(
873
+ royaltyPoolContract,
874
+ this.#config.royaltyPoolPackageId,
875
+ [
876
+ "share",
877
+ "deposit",
878
+ "sweepAndDeposit",
879
+ "receiveAndDeposit",
880
+ "registerStake",
881
+ "unregisterStake",
882
+ "claimRewards",
883
+ "pendingRewards",
884
+ "stakedShares",
885
+ "cumulativeRewardPerShare",
886
+ "cumulativeDeposits",
887
+ "derivedAddress",
888
+ "assertDerivedFrom",
889
+ ] as const,
890
+ )
624
891
  : undefined,
625
892
  recordingAdvisory: this.#config.recordingAdvisoryPackageId
626
- ? bindModulePackage(recordingAdvisoryContract, this.#config.recordingAdvisoryPackageId, ["explicit", "notExplicit", "cleaned", "setRating", "unsetRating", "hasRating", "isExplicit", "isNotExplicit", "isCleaned"] as const)
893
+ ? bindModulePackage(
894
+ recordingAdvisoryContract,
895
+ this.#config.recordingAdvisoryPackageId,
896
+ [
897
+ "explicit",
898
+ "notExplicit",
899
+ "cleaned",
900
+ "setRating",
901
+ "unsetRating",
902
+ "hasRating",
903
+ "isExplicit",
904
+ "isNotExplicit",
905
+ "isCleaned",
906
+ ] as const,
907
+ )
627
908
  : undefined,
628
909
  recordingLanguage: this.#config.recordingLanguagePackageId
629
- ? bindModulePackage(recordingLanguageContract, this.#config.recordingLanguagePackageId, ["setLanguages", "setInstrumental", "unsetLanguages", "hasLanguages", "isInstrumental"] as const)
910
+ ? bindModulePackage(
911
+ recordingLanguageContract,
912
+ this.#config.recordingLanguagePackageId,
913
+ [
914
+ "setLanguages",
915
+ "setInstrumental",
916
+ "unsetLanguages",
917
+ "hasLanguages",
918
+ "isInstrumental",
919
+ ] as const,
920
+ )
630
921
  : undefined,
631
922
  recordingMasterReference: this.#config.recordingMasterReferencePackageId
632
- ? bindModulePackage(recordingMasterReferenceContract, this.#config.recordingMasterReferencePackageId, ["setMasterReference", "unsetMasterReference", "hasMasterReference"] as const)
923
+ ? bindModulePackage(
924
+ recordingMasterReferenceContract,
925
+ this.#config.recordingMasterReferencePackageId,
926
+ [
927
+ "setMasterReference",
928
+ "unsetMasterReference",
929
+ "hasMasterReference",
930
+ ] as const,
931
+ )
633
932
  : undefined,
634
933
  recordingPreview: this.#config.recordingPreviewPackageId
635
- ? bindModulePackage(recordingPreviewContract, this.#config.recordingPreviewPackageId, ["setPreview", "unsetPreview", "hasPreview"] as const)
934
+ ? bindModulePackage(
935
+ recordingPreviewContract,
936
+ this.#config.recordingPreviewPackageId,
937
+ ["setPreview", "unsetPreview", "hasPreview"] as const,
938
+ )
636
939
  : undefined,
637
940
  coverArt: this.#config.coverArtPackageId
638
- ? bindModulePackage(coverArtContract, this.#config.coverArtPackageId, [] as const)
941
+ ? bindModulePackage(
942
+ coverArtContract,
943
+ this.#config.coverArtPackageId,
944
+ [] as const,
945
+ )
639
946
  : undefined,
640
947
  releaseCoverArt: this.#config.releaseCoverArtPackageId
641
948
  ? bindModulePackage(
642
949
  releaseCoverArtContract,
643
950
  this.#config.releaseCoverArtPackageId,
644
- ["setCover", "unsetCover", "setTrackCover", "unsetTrackCover", "hasCoverArt"] as const,
951
+ [
952
+ "setCover",
953
+ "unsetCover",
954
+ "setTrackCover",
955
+ "unsetTrackCover",
956
+ "hasCoverArt",
957
+ ] as const,
645
958
  )
646
959
  : undefined,
647
960
  releaseCredits: this.#config.releaseCreditsPackageId
@@ -656,12 +969,29 @@ export class MisoPlatformClient {
656
969
 
657
970
  /** Generated BCS definitions, for parsing objects or events yourself. */
658
971
  readonly bcs = {
972
+ Record: recordContract.Record,
659
973
  Pressing: pressingContract.Pressing,
660
974
  PressingAdminCap: pressingContract.PressingAdminCap,
661
975
  Listing: listingContract.Listing,
662
- Price: listingContract.Price,
976
+ Pricing: listingContract.Pricing,
977
+ ListingState: listingContract.State,
978
+ RecordCreatedEvent: recordContract.RecordCreatedEvent,
979
+ RecordDestroyedEvent: recordContract.RecordDestroyedEvent,
980
+ PressingCreatedEvent: pressingContract.PressingCreatedEvent,
981
+ DistributorAuthorizedEvent: pressingContract.DistributorAuthorizedEvent,
982
+ DistributorRevokedEvent: pressingContract.DistributorRevokedEvent,
983
+ RecordPurchasedEvent: pressingContract.RecordPurchasedEvent,
984
+ ListingCreatedEvent: listingContract.ListingCreatedEvent,
985
+ ListingPriceChangedEvent: listingContract.ListingPriceChangedEvent,
986
+ ListingStateChangedEvent: listingContract.ListingStateChangedEvent,
987
+ RecordSoldEvent: listingContract.RecordSoldEvent,
663
988
  VaultAdminCap: vaultContract.VaultAdminCap,
989
+ VaultRegistry: vaultContract.VaultRegistry,
990
+ VaultKey: vaultContract.VaultKey,
991
+ VaultAdminCapKey: vaultContract.VaultAdminCapKey,
664
992
  VaultCreatedEvent: vaultContract.VaultCreatedEvent,
993
+ VaultCapabilityWithdrawnEvent: vaultContract.VaultCapabilityWithdrawnEvent,
994
+ VaultCapabilityRestoredEvent: vaultContract.VaultCapabilityRestoredEvent,
665
995
  ReleaseRevenueDistributedEvent:
666
996
  releaseRevenueDistributorContract.ReleaseRevenueDistributedEvent,
667
997
  };
@@ -692,7 +1022,7 @@ export function miso<const Name extends string = "miso">(
692
1022
  return new MisoPlatformClient(
693
1023
  client,
694
1024
  {
695
- packageId: deployment.packages.pressing,
1025
+ recordSales: deployment.recordSales,
696
1026
  misoPackageId: deployment.protocol.miso,
697
1027
  minatoPackageId: deployment.packages.minato,
698
1028
  releaseRegistryId: deployment.objects.releaseRegistry,
@@ -702,15 +1032,18 @@ export function miso<const Name extends string = "miso">(
702
1032
  releaseDspLinkPackageId: deployment.packages.releaseDspLink,
703
1033
  recordingAdvisoryPackageId: deployment.packages.recordingAdvisory,
704
1034
  recordingLanguagePackageId: deployment.packages.recordingLanguage,
705
- recordingMasterReferencePackageId: deployment.packages.recordingMasterReference,
1035
+ recordingMasterReferencePackageId:
1036
+ deployment.packages.recordingMasterReference,
706
1037
  recordingPreviewPackageId: deployment.packages.recordingPreview,
707
1038
  vaultPackageId: deployment.packages.vault,
1039
+ vaultRegistryId: deployment.objects.vaultRegistry,
708
1040
  royaltyPoolPackageId: deployment.packages.royaltyPool,
709
1041
  vaultCompositionRoyaltyPoolPluginPackageId:
710
1042
  deployment.packages.vaultCompositionRoyaltyPoolPlugin,
711
1043
  vaultRecordingRoyaltyPoolPluginPackageId:
712
1044
  deployment.packages.vaultRecordingRoyaltyPoolPlugin,
713
- vaultPartyWalletPluginPackageId: deployment.packages.vaultPartyWalletPlugin,
1045
+ vaultPartyWalletPluginPackageId:
1046
+ deployment.packages.vaultPartyWalletPlugin,
714
1047
  vaultCompositionRoutedStakePluginPackageId:
715
1048
  deployment.packages.vaultCompositionRoutedStakePlugin,
716
1049
  routedStakePackageId: deployment.packages.routedStake,
@@ -740,7 +1073,9 @@ export function misoPlatform(config: MisoPlatformConfig) {
740
1073
  name: "misoPlatform" as const,
741
1074
  register: (client: ClientWithCoreApi) => {
742
1075
  const protocol = config.misoPackageId
743
- ? protocolMiso({ deployment: { packageId: config.misoPackageId } }).register(client)
1076
+ ? protocolMiso({
1077
+ deployment: { packageId: config.misoPackageId },
1078
+ }).register(client)
744
1079
  : undefined;
745
1080
  return new MisoPlatformClient(client, config, protocol);
746
1081
  },