@misofm/sdk 0.15.11 → 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 (139) hide show
  1. package/README.md +145 -53
  2. package/dist/client.d.ts +156 -48
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +289 -48
  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.d.ts +3 -3
  41. package/dist/contracts.d.ts.map +1 -1
  42. package/dist/contracts.js +5 -4
  43. package/dist/contracts.js.map +1 -1
  44. package/dist/deployments.d.ts +37 -4
  45. package/dist/deployments.d.ts.map +1 -1
  46. package/dist/deployments.js +40 -2
  47. package/dist/deployments.js.map +1 -1
  48. package/dist/index.d.ts +2 -0
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +2 -0
  51. package/dist/index.js.map +1 -1
  52. package/dist/mix.d.ts +144 -0
  53. package/dist/mix.d.ts.map +1 -0
  54. package/dist/mix.js +656 -0
  55. package/dist/mix.js.map +1 -0
  56. package/dist/pressing.d.ts +72 -156
  57. package/dist/pressing.d.ts.map +1 -1
  58. package/dist/pressing.js +269 -261
  59. package/dist/pressing.js.map +1 -1
  60. package/dist/publication.d.ts +5 -2
  61. package/dist/publication.d.ts.map +1 -1
  62. package/dist/publication.js +57 -32
  63. package/dist/publication.js.map +1 -1
  64. package/dist/read/catalog.d.ts +8 -5
  65. package/dist/read/catalog.d.ts.map +1 -1
  66. package/dist/read/catalog.js +47 -35
  67. package/dist/read/catalog.js.map +1 -1
  68. package/dist/read/config.d.ts +6 -4
  69. package/dist/read/config.d.ts.map +1 -1
  70. package/dist/read/config.js +1 -2
  71. package/dist/read/config.js.map +1 -1
  72. package/dist/read/index.d.ts +1 -1
  73. package/dist/read/index.d.ts.map +1 -1
  74. package/dist/read/index.js +1 -1
  75. package/dist/read/index.js.map +1 -1
  76. package/dist/read/internal/scalars.d.ts.map +1 -1
  77. package/dist/read/internal/scalars.js +4 -3
  78. package/dist/read/internal/scalars.js.map +1 -1
  79. package/dist/read/internal/walrus.d.ts.map +1 -1
  80. package/dist/read/internal/walrus.js +2 -1
  81. package/dist/read/internal/walrus.js.map +1 -1
  82. package/dist/read/receipts.d.ts +21 -12
  83. package/dist/read/receipts.d.ts.map +1 -1
  84. package/dist/read/receipts.js +159 -56
  85. package/dist/read/receipts.js.map +1 -1
  86. package/dist/read/types.d.ts +34 -24
  87. package/dist/read/types.d.ts.map +1 -1
  88. package/dist/read/wallet.d.ts.map +1 -1
  89. package/dist/read/wallet.js +31 -46
  90. package/dist/read/wallet.js.map +1 -1
  91. package/dist/vault.d.ts +40 -11
  92. package/dist/vault.d.ts.map +1 -1
  93. package/dist/vault.js +94 -22
  94. package/dist/vault.js.map +1 -1
  95. package/package.json +10 -3
  96. package/src/client.ts +386 -72
  97. package/src/contracts/composition_royalty_pool/composition_royalty_pool.ts +15 -15
  98. package/src/contracts/miso_record/deps/sui/vec_set.ts +21 -0
  99. package/src/contracts/miso_record/pressing.ts +522 -0
  100. package/src/contracts/miso_record/record.ts +338 -0
  101. package/src/contracts/miso_record_shop/deps/std/type_name.ts +22 -0
  102. package/src/contracts/miso_record_shop/listing.ts +602 -0
  103. package/src/contracts/miso_record_shop/witness.ts +11 -0
  104. package/src/contracts/recording_royalty_pool/recording_royalty_pool.ts +14 -16
  105. package/src/contracts.ts +5 -4
  106. package/src/deployments.ts +131 -38
  107. package/src/index.ts +2 -0
  108. package/src/mix.ts +910 -0
  109. package/src/pressing.ts +428 -423
  110. package/src/publication.ts +62 -33
  111. package/src/read/catalog.ts +49 -34
  112. package/src/read/config.ts +7 -7
  113. package/src/read/index.ts +9 -1
  114. package/src/read/internal/scalars.ts +4 -2
  115. package/src/read/internal/walrus.ts +2 -1
  116. package/src/read/receipts.ts +181 -66
  117. package/src/read/types.ts +35 -22
  118. package/src/read/wallet.ts +29 -50
  119. package/src/vault.ts +142 -32
  120. package/dist/contracts/miso_pressing/certificate.d.ts +0 -89
  121. package/dist/contracts/miso_pressing/certificate.d.ts.map +0 -1
  122. package/dist/contracts/miso_pressing/certificate.js +0 -108
  123. package/dist/contracts/miso_pressing/certificate.js.map +0 -1
  124. package/dist/contracts/miso_pressing/deps/std/type_name.d.ts.map +0 -1
  125. package/dist/contracts/miso_pressing/deps/std/type_name.js.map +0 -1
  126. package/dist/contracts/miso_pressing/listing.d.ts +0 -434
  127. package/dist/contracts/miso_pressing/listing.d.ts.map +0 -1
  128. package/dist/contracts/miso_pressing/listing.js +0 -401
  129. package/dist/contracts/miso_pressing/listing.js.map +0 -1
  130. package/dist/contracts/miso_pressing/pressing.d.ts +0 -334
  131. package/dist/contracts/miso_pressing/pressing.d.ts.map +0 -1
  132. package/dist/contracts/miso_pressing/pressing.js +0 -298
  133. package/dist/contracts/miso_pressing/pressing.js.map +0 -1
  134. package/src/contracts/miso_pressing/certificate.ts +0 -164
  135. package/src/contracts/miso_pressing/listing.ts +0 -592
  136. package/src/contracts/miso_pressing/pressing.ts +0 -399
  137. /package/dist/contracts/{miso_pressing → miso_record}/deps/std/type_name.d.ts +0 -0
  138. /package/dist/contracts/{miso_pressing → miso_record}/deps/std/type_name.js +0 -0
  139. /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`,
@@ -222,21 +231,30 @@ export interface MisoPlatformConfig {
222
231
  }
223
232
 
224
233
  /** Params with the ids this client already knows dropped from the call site. */
225
- type DistributiveOmit<T, Keys extends PropertyKey> = T extends unknown ? Omit<T, Keys> : never;
226
- 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
+ >;
227
241
 
228
242
  /** Publish-builder params with the protocol/minato ids this client already knows dropped. */
229
- type ConfiguredPublish<T> = DistributiveOmit<T, "misoPackageId" | "minatoPackageId">;
243
+ type ConfiguredPublish<T> = DistributiveOmit<
244
+ T,
245
+ "misoPackageId" | "minatoPackageId"
246
+ >;
230
247
 
231
248
  /** Release-builder params with this client's core, share, and registry ids dropped. */
232
249
  type ConfiguredRelease<T> = DistributiveOmit<
233
250
  T,
234
- | "misoPackageId"
235
- | "minatoPackageId"
236
- | "releaseRegistryId"
251
+ "misoPackageId" | "minatoPackageId" | "releaseRegistryId"
237
252
  >;
238
253
 
239
- type ConfiguredReleaseKind = DistributiveOmit<SetReleaseKindParams, "releaseKindPackageId">;
254
+ type ConfiguredReleaseKind = DistributiveOmit<
255
+ SetReleaseKindParams,
256
+ "releaseKindPackageId"
257
+ >;
240
258
  type ConfiguredReleaseDescription = DistributiveOmit<
241
259
  SetReleaseDescriptionParams,
242
260
  "releaseDescriptionPackageId"
@@ -263,7 +281,10 @@ type ConfiguredReleaseTrackCover = DistributiveOmit<
263
281
  >;
264
282
 
265
283
  /** Whole-graph params with this client's package ids dropped. */
266
- export type ConfiguredReleaseGraphParams = Omit<PublishReleaseGraphParams, "misoPackageId" | "minatoPackageId">;
284
+ export type ConfiguredReleaseGraphParams = Omit<
285
+ PublishReleaseGraphParams,
286
+ "misoPackageId" | "minatoPackageId"
287
+ >;
267
288
 
268
289
  export class MisoPlatformClient {
269
290
  readonly #client: ClientWithCoreApi;
@@ -284,9 +305,13 @@ export class MisoPlatformClient {
284
305
  // A pressing-only facade must not implicitly register a fail-closed core
285
306
  // extension. Supply a core deployment/misoPackageId when `protocol` is
286
307
  // needed; otherwise this remains a safe, independent pressing client.
287
- this.protocol = protocol ?? (config.misoPackageId
288
- ? protocolMiso({ deployment: { packageId: config.misoPackageId } }).register(client)
289
- : undefined);
308
+ this.protocol =
309
+ protocol ??
310
+ (config.misoPackageId
311
+ ? protocolMiso({
312
+ deployment: { packageId: config.misoPackageId },
313
+ }).register(client)
314
+ : undefined);
290
315
  this.deployment = deployment;
291
316
  }
292
317
 
@@ -300,8 +325,22 @@ export class MisoPlatformClient {
300
325
  return this.protocol.party;
301
326
  }
302
327
 
303
- get packageId(): string {
304
- 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;
305
344
  }
306
345
 
307
346
  #misoPackageId(): string {
@@ -350,12 +389,17 @@ export class MisoPlatformClient {
350
389
 
351
390
  /** The run itself, or `null` if this release has never opened one. */
352
391
  getPressing(pressingId: string): Promise<PressingView | null> {
353
- return getPressing(this.#client, pressingId, this.packageId);
392
+ return getPressing(this.#client, pressingId, this.recordPackageId);
354
393
  }
355
394
 
356
395
  /** One currency's offer, or `null` if the run does not sell in it. */
357
396
  getListing(listingId: string): Promise<ListingView | null> {
358
- 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);
359
403
  }
360
404
 
361
405
  /** Run + one currency's offer in a single round trip, by address math. */
@@ -365,27 +409,42 @@ export class MisoPlatformClient {
365
409
  }> {
366
410
  return getSale(this.#client, {
367
411
  ...p,
368
- misoPressingPackageId: this.packageId,
412
+ recordPackageId: this.recordPackageId,
413
+ recordShopPackageId: this.recordShopPackageId,
369
414
  });
370
415
  }
371
416
 
372
417
  // ── Address math ──────────────────────────────────────────────────────────
373
418
 
374
419
  readonly ids = {
375
- pressing: (releaseId: string) =>
376
- derivePressingId(releaseId, this.packageId),
420
+ pressing: (releaseId: string, edition: number) =>
421
+ derivePressingId(releaseId, edition, this.recordPackageId),
377
422
  pressingAdminCap: (pressingId: string) =>
378
- derivePressingAdminCapId(pressingId, this.packageId),
423
+ derivePressingAdminCapId(pressingId, this.recordPackageId),
424
+ record: (pressingId: string, number: number) =>
425
+ deriveRecordId(pressingId, number, this.recordPackageId),
379
426
  listing: (pressingId: string, currencyType: string) =>
380
- deriveListingId(pressingId, currencyType, this.packageId),
381
- sale: (releaseId: string, currencyType: string) =>
382
- 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
+ ),
383
436
  vault: (capId: string, capType: string) =>
384
437
  vaultActions.deriveVaultId({
385
- vaultRegistryId: this.#requiredConfig("vaultRegistryId", "Vault ID derivation"),
438
+ vaultRegistryId: this.#requiredConfig(
439
+ "vaultRegistryId",
440
+ "Vault ID derivation",
441
+ ),
386
442
  capId,
387
443
  capType,
388
- vaultPackageId: this.#requiredConfig("vaultPackageId", "Vault ID derivation"),
444
+ vaultPackageId: this.#requiredConfig(
445
+ "vaultPackageId",
446
+ "Vault ID derivation",
447
+ ),
389
448
  }),
390
449
  vaultAdminCap: (vaultId: string) =>
391
450
  vaultActions.deriveVaultAdminCapId(
@@ -403,21 +462,38 @@ export class MisoPlatformClient {
403
462
  // ── Transaction builders ──────────────────────────────────────────────────
404
463
 
405
464
  readonly tx = {
406
- buyRecord: (p: Configured<BuyRecordParams>): TxThunk =>
407
- buyRecord({
465
+ purchaseRecord: (p: Configured<PurchaseRecordParams>): TxThunk =>
466
+ purchaseRecord({
408
467
  ...p,
409
- misoPressingPackageId: this.packageId,
468
+ recordPackageId: this.recordPackageId,
469
+ recordShopPackageId: this.recordShopPackageId,
410
470
  }),
411
471
  openPressing: (p: Configured<OpenPressingParams>): TxThunk =>
412
- openPressing({ ...p, misoPressingPackageId: this.packageId }),
472
+ openPressing({
473
+ ...p,
474
+ recordPackageId: this.recordPackageId,
475
+ recordShopPackageId: this.recordShopPackageId,
476
+ }),
413
477
  openListing: (p: Configured<OpenListingParams>): TxThunk =>
414
- 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
+ }),
415
493
  setListingPrice: (p: Configured<SetListingPriceParams>): TxThunk =>
416
- setListingPrice({ ...p, misoPressingPackageId: this.packageId }),
494
+ setListingPrice({ ...p, recordShopPackageId: this.recordShopPackageId }),
417
495
  setListingState: (p: Configured<SetListingStateParams>): TxThunk =>
418
- setListingState({ ...p, misoPressingPackageId: this.packageId }),
419
- setPressingState: (p: Configured<SetPressingStateParams>): TxThunk =>
420
- setPressingState({ ...p, misoPressingPackageId: this.packageId }),
496
+ setListingState({ ...p, recordShopPackageId: this.recordShopPackageId }),
421
497
 
422
498
  // Publishing (protocol works + minato share economics) — package-id-free
423
499
  // builders pass through unchanged; the rest bind this client's
@@ -558,11 +634,65 @@ export class MisoPlatformClient {
558
634
 
559
635
  /** Generated Move-call bindings, for commands this facade doesn't wrap. */
560
636
  get call() {
637
+ const sales =
638
+ this.#config.recordSales?.status === "available"
639
+ ? this.#config.recordSales
640
+ : undefined;
561
641
  return {
562
- listing: bindModulePackage(listingContract, this.packageId, ["newFixedPrice", "newFloorPrice", "newEnabledState", "newDisabledState", "buy", "setState", "setPrice", "deriveId", "hasListing", "releaseId", "pressingId", "price", "state", "isLive", "amount"] as const),
563
- 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,
564
692
  genre: this.#config.genrePackageId
565
- ? bindModulePackage(genreContract, this.#config.genrePackageId, ["deriveAddress"] as const)
693
+ ? bindModulePackage(genreContract, this.#config.genrePackageId, [
694
+ "deriveAddress",
695
+ ] as const)
566
696
  : undefined,
567
697
  releaseDescription: this.#config.releaseDescriptionPackageId
568
698
  ? bindModulePackage(
@@ -575,14 +705,47 @@ export class MisoPlatformClient {
575
705
  ? bindModulePackage(
576
706
  releaseDspLinkContract,
577
707
  this.#config.releaseDspLinkPackageId,
578
- ["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,
579
735
  )
580
736
  : undefined,
581
737
  releaseGenre: this.#config.releaseGenrePackageId
582
738
  ? bindModulePackage(
583
739
  releaseGenreContract,
584
740
  this.#config.releaseGenrePackageId,
585
- ["setPrimaryGenre", "addSecondaryGenre", "removeSecondaryGenre", "setTrackPrimaryGenre", "unsetTrackPrimaryGenre", "hasGenre"] as const,
741
+ [
742
+ "setPrimaryGenre",
743
+ "addSecondaryGenre",
744
+ "removeSecondaryGenre",
745
+ "setTrackPrimaryGenre",
746
+ "unsetTrackPrimaryGenre",
747
+ "hasGenre",
748
+ ] as const,
586
749
  )
587
750
  : undefined,
588
751
  releaseKind: this.#config.releaseKindPackageId
@@ -592,70 +755,206 @@ export class MisoPlatformClient {
592
755
  ["setKind", "unsetKind", "hasKind"] as const,
593
756
  )
594
757
  : undefined,
595
- releaseRevenueDistributor: this.#config.vaultReleaseRevenueDistributorPluginPackageId
758
+ releaseRevenueDistributor: this.#config
759
+ .vaultReleaseRevenueDistributorPluginPackageId
596
760
  ? bindModulePackage(
597
761
  releaseRevenueDistributorContract,
598
762
  this.#config.vaultReleaseRevenueDistributorPluginPackageId,
599
- ["install", "uninstall", "redeemAndDistribute", "receiveAndDistribute", "isInstalled"] as const,
763
+ [
764
+ "install",
765
+ "uninstall",
766
+ "redeemAndDistribute",
767
+ "receiveAndDistribute",
768
+ "isInstalled",
769
+ ] as const,
600
770
  )
601
771
  : undefined,
602
772
  vault: this.#config.vaultPackageId
603
- ? bindModulePackage(vaultContract, this.#config.vaultPackageId, ["share", "transferAdminCap", "withdrawCap", "restoreCap", "vaultAddress", "vaultAdminCapAddress", "vaultId", "capId", "isOccupied", "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)
604
787
  : undefined,
605
- compositionRoyaltyPool: this.#config.vaultCompositionRoyaltyPoolPluginPackageId
788
+ compositionRoyaltyPool: this.#config
789
+ .vaultCompositionRoyaltyPoolPluginPackageId
606
790
  ? bindModulePackage(
607
791
  compositionRoyaltyPoolContract,
608
792
  this.#config.vaultCompositionRoyaltyPoolPluginPackageId,
609
- ["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,
610
803
  )
611
804
  : undefined,
612
- recordingRoyaltyPool: this.#config.vaultRecordingRoyaltyPoolPluginPackageId
805
+ recordingRoyaltyPool: this.#config
806
+ .vaultRecordingRoyaltyPoolPluginPackageId
613
807
  ? bindModulePackage(
614
808
  recordingRoyaltyPoolContract,
615
809
  this.#config.vaultRecordingRoyaltyPoolPluginPackageId,
616
- ["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,
617
820
  )
618
821
  : undefined,
619
822
  partyWallet: this.#config.vaultPartyWalletPluginPackageId
620
823
  ? bindModulePackage(
621
824
  partyWalletContract,
622
825
  this.#config.vaultPartyWalletPluginPackageId,
623
- ["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,
624
836
  )
625
837
  : undefined,
626
- compositionRoutedStake: this.#config.vaultCompositionRoutedStakePluginPackageId
838
+ compositionRoutedStake: this.#config
839
+ .vaultCompositionRoutedStakePluginPackageId
627
840
  ? bindModulePackage(
628
841
  compositionRoutedStakeContract,
629
842
  this.#config.vaultCompositionRoutedStakePluginPackageId,
630
- ["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,
631
854
  )
632
855
  : undefined,
633
856
  routedStake: this.#config.routedStakePackageId
634
- ? 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
+ )
635
870
  : undefined,
636
871
  royaltyPool: this.#config.royaltyPoolPackageId
637
- ? 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
+ )
638
891
  : undefined,
639
892
  recordingAdvisory: this.#config.recordingAdvisoryPackageId
640
- ? 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
+ )
641
908
  : undefined,
642
909
  recordingLanguage: this.#config.recordingLanguagePackageId
643
- ? 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
+ )
644
921
  : undefined,
645
922
  recordingMasterReference: this.#config.recordingMasterReferencePackageId
646
- ? 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
+ )
647
932
  : undefined,
648
933
  recordingPreview: this.#config.recordingPreviewPackageId
649
- ? 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
+ )
650
939
  : undefined,
651
940
  coverArt: this.#config.coverArtPackageId
652
- ? bindModulePackage(coverArtContract, this.#config.coverArtPackageId, [] as const)
941
+ ? bindModulePackage(
942
+ coverArtContract,
943
+ this.#config.coverArtPackageId,
944
+ [] as const,
945
+ )
653
946
  : undefined,
654
947
  releaseCoverArt: this.#config.releaseCoverArtPackageId
655
948
  ? bindModulePackage(
656
949
  releaseCoverArtContract,
657
950
  this.#config.releaseCoverArtPackageId,
658
- ["setCover", "unsetCover", "setTrackCover", "unsetTrackCover", "hasCoverArt"] as const,
951
+ [
952
+ "setCover",
953
+ "unsetCover",
954
+ "setTrackCover",
955
+ "unsetTrackCover",
956
+ "hasCoverArt",
957
+ ] as const,
659
958
  )
660
959
  : undefined,
661
960
  releaseCredits: this.#config.releaseCreditsPackageId
@@ -670,15 +969,26 @@ export class MisoPlatformClient {
670
969
 
671
970
  /** Generated BCS definitions, for parsing objects or events yourself. */
672
971
  readonly bcs = {
972
+ Record: recordContract.Record,
673
973
  Pressing: pressingContract.Pressing,
674
974
  PressingAdminCap: pressingContract.PressingAdminCap,
675
975
  Listing: listingContract.Listing,
676
- 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,
677
988
  VaultAdminCap: vaultContract.VaultAdminCap,
678
989
  VaultRegistry: vaultContract.VaultRegistry,
679
990
  VaultKey: vaultContract.VaultKey,
680
991
  VaultAdminCapKey: vaultContract.VaultAdminCapKey,
681
- VaultRegistryCreatedEvent: vaultContract.VaultRegistryCreatedEvent,
682
992
  VaultCreatedEvent: vaultContract.VaultCreatedEvent,
683
993
  VaultCapabilityWithdrawnEvent: vaultContract.VaultCapabilityWithdrawnEvent,
684
994
  VaultCapabilityRestoredEvent: vaultContract.VaultCapabilityRestoredEvent,
@@ -712,7 +1022,7 @@ export function miso<const Name extends string = "miso">(
712
1022
  return new MisoPlatformClient(
713
1023
  client,
714
1024
  {
715
- packageId: deployment.packages.pressing,
1025
+ recordSales: deployment.recordSales,
716
1026
  misoPackageId: deployment.protocol.miso,
717
1027
  minatoPackageId: deployment.packages.minato,
718
1028
  releaseRegistryId: deployment.objects.releaseRegistry,
@@ -722,7 +1032,8 @@ export function miso<const Name extends string = "miso">(
722
1032
  releaseDspLinkPackageId: deployment.packages.releaseDspLink,
723
1033
  recordingAdvisoryPackageId: deployment.packages.recordingAdvisory,
724
1034
  recordingLanguagePackageId: deployment.packages.recordingLanguage,
725
- recordingMasterReferencePackageId: deployment.packages.recordingMasterReference,
1035
+ recordingMasterReferencePackageId:
1036
+ deployment.packages.recordingMasterReference,
726
1037
  recordingPreviewPackageId: deployment.packages.recordingPreview,
727
1038
  vaultPackageId: deployment.packages.vault,
728
1039
  vaultRegistryId: deployment.objects.vaultRegistry,
@@ -731,7 +1042,8 @@ export function miso<const Name extends string = "miso">(
731
1042
  deployment.packages.vaultCompositionRoyaltyPoolPlugin,
732
1043
  vaultRecordingRoyaltyPoolPluginPackageId:
733
1044
  deployment.packages.vaultRecordingRoyaltyPoolPlugin,
734
- vaultPartyWalletPluginPackageId: deployment.packages.vaultPartyWalletPlugin,
1045
+ vaultPartyWalletPluginPackageId:
1046
+ deployment.packages.vaultPartyWalletPlugin,
735
1047
  vaultCompositionRoutedStakePluginPackageId:
736
1048
  deployment.packages.vaultCompositionRoutedStakePlugin,
737
1049
  routedStakePackageId: deployment.packages.routedStake,
@@ -761,7 +1073,9 @@ export function misoPlatform(config: MisoPlatformConfig) {
761
1073
  name: "misoPlatform" as const,
762
1074
  register: (client: ClientWithCoreApi) => {
763
1075
  const protocol = config.misoPackageId
764
- ? protocolMiso({ deployment: { packageId: config.misoPackageId } }).register(client)
1076
+ ? protocolMiso({
1077
+ deployment: { packageId: config.misoPackageId },
1078
+ }).register(client)
765
1079
  : undefined;
766
1080
  return new MisoPlatformClient(client, config, protocol);
767
1081
  },