@misofm/sdk 0.11.0 → 0.12.1

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 (125) hide show
  1. package/README.md +18 -37
  2. package/dist/client.d.ts +13 -16
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +21 -22
  5. package/dist/client.js.map +1 -1
  6. package/dist/contracts/composition_routed_stake/composition_routed_stake.d.ts +4 -2
  7. package/dist/contracts/composition_routed_stake/composition_routed_stake.d.ts.map +1 -1
  8. package/dist/contracts/composition_routed_stake/composition_routed_stake.js +3 -2
  9. package/dist/contracts/composition_routed_stake/composition_routed_stake.js.map +1 -1
  10. package/dist/contracts/genre/genre.d.ts +6 -17
  11. package/dist/contracts/genre/genre.d.ts.map +1 -1
  12. package/dist/contracts/genre/genre.js +4 -18
  13. package/dist/contracts/genre/genre.js.map +1 -1
  14. package/dist/contracts/miso_pressing/certificate.d.ts +37 -26
  15. package/dist/contracts/miso_pressing/certificate.d.ts.map +1 -1
  16. package/dist/contracts/miso_pressing/certificate.js +41 -24
  17. package/dist/contracts/miso_pressing/certificate.js.map +1 -1
  18. package/dist/contracts/miso_pressing/listing.d.ts +3 -18
  19. package/dist/contracts/miso_pressing/listing.d.ts.map +1 -1
  20. package/dist/contracts/miso_pressing/listing.js +3 -18
  21. package/dist/contracts/miso_pressing/listing.js.map +1 -1
  22. package/dist/contracts/miso_pressing/pressing.d.ts +6 -37
  23. package/dist/contracts/miso_pressing/pressing.d.ts.map +1 -1
  24. package/dist/contracts/miso_pressing/pressing.js +6 -43
  25. package/dist/contracts/miso_pressing/pressing.js.map +1 -1
  26. package/dist/contracts/party_wallet/party_wallet.d.ts +214 -0
  27. package/dist/contracts/party_wallet/party_wallet.d.ts.map +1 -0
  28. package/dist/contracts/party_wallet/party_wallet.js +214 -0
  29. package/dist/contracts/party_wallet/party_wallet.js.map +1 -0
  30. package/dist/contracts/party_wallet/witness.d.ts +6 -0
  31. package/dist/contracts/party_wallet/witness.d.ts.map +1 -0
  32. package/dist/contracts/party_wallet/witness.js +8 -0
  33. package/dist/contracts/party_wallet/witness.js.map +1 -0
  34. package/dist/contracts/routed_stake/routed_stake.d.ts +0 -14
  35. package/dist/contracts/routed_stake/routed_stake.d.ts.map +1 -1
  36. package/dist/contracts/routed_stake/routed_stake.js +0 -14
  37. package/dist/contracts/routed_stake/routed_stake.js.map +1 -1
  38. package/dist/contracts/royalty_pool/pool.d.ts +0 -14
  39. package/dist/contracts/royalty_pool/pool.d.ts.map +1 -1
  40. package/dist/contracts/royalty_pool/pool.js +0 -14
  41. package/dist/contracts/royalty_pool/pool.js.map +1 -1
  42. package/dist/contracts/royalty_pool/stake.d.ts +6 -13
  43. package/dist/contracts/royalty_pool/stake.d.ts.map +1 -1
  44. package/dist/contracts/royalty_pool/stake.js +6 -14
  45. package/dist/contracts/royalty_pool/stake.js.map +1 -1
  46. package/dist/contracts/vault/vault.d.ts +2 -14
  47. package/dist/contracts/vault/vault.d.ts.map +1 -1
  48. package/dist/contracts/vault/vault.js +2 -15
  49. package/dist/contracts/vault/vault.js.map +1 -1
  50. package/dist/contracts.d.ts +1 -0
  51. package/dist/contracts.d.ts.map +1 -1
  52. package/dist/contracts.js +1 -0
  53. package/dist/contracts.js.map +1 -1
  54. package/dist/cover.d.ts +1 -1
  55. package/dist/cover.js +1 -1
  56. package/dist/deployments.d.ts +84 -27
  57. package/dist/deployments.d.ts.map +1 -1
  58. package/dist/deployments.js +46 -5
  59. package/dist/deployments.js.map +1 -1
  60. package/dist/pressing.d.ts +0 -3
  61. package/dist/pressing.d.ts.map +1 -1
  62. package/dist/pressing.js +1 -1
  63. package/dist/pressing.js.map +1 -1
  64. package/dist/read/artist.d.ts +2 -3
  65. package/dist/read/artist.d.ts.map +1 -1
  66. package/dist/read/artist.js +8 -53
  67. package/dist/read/artist.js.map +1 -1
  68. package/dist/read/catalog.js +3 -3
  69. package/dist/read/catalog.js.map +1 -1
  70. package/dist/read/client.d.ts +3 -3
  71. package/dist/read/client.d.ts.map +1 -1
  72. package/dist/read/client.js +4 -10
  73. package/dist/read/client.js.map +1 -1
  74. package/dist/read/config.d.ts +3 -23
  75. package/dist/read/config.d.ts.map +1 -1
  76. package/dist/read/config.js.map +1 -1
  77. package/dist/read/index.d.ts +2 -2
  78. package/dist/read/index.d.ts.map +1 -1
  79. package/dist/read/index.js +3 -3
  80. package/dist/read/index.js.map +1 -1
  81. package/dist/read/receipts.js +1 -1
  82. package/dist/read/receipts.js.map +1 -1
  83. package/dist/read/types.d.ts +0 -11
  84. package/dist/read/types.d.ts.map +1 -1
  85. package/dist/read/wallet.js +9 -10
  86. package/dist/read/wallet.js.map +1 -1
  87. package/dist/release-extensions.d.ts +4 -2
  88. package/dist/release-extensions.d.ts.map +1 -1
  89. package/dist/release-extensions.js +6 -4
  90. package/dist/release-extensions.js.map +1 -1
  91. package/dist/release-graph.d.ts.map +1 -1
  92. package/dist/release-graph.js +7 -1
  93. package/dist/release-graph.js.map +1 -1
  94. package/dist/vault.d.ts +1 -1
  95. package/dist/vault.d.ts.map +1 -1
  96. package/dist/vault.js +1 -0
  97. package/dist/vault.js.map +1 -1
  98. package/package.json +7 -13
  99. package/src/client.ts +31 -31
  100. package/src/contracts/composition_routed_stake/composition_routed_stake.ts +7 -4
  101. package/src/contracts/genre/genre.ts +7 -30
  102. package/src/contracts/miso_pressing/certificate.ts +64 -29
  103. package/src/contracts/miso_pressing/listing.ts +4 -33
  104. package/src/contracts/miso_pressing/pressing.ts +6 -61
  105. package/src/contracts/party_wallet/party_wallet.ts +350 -0
  106. package/src/contracts/party_wallet/witness.ts +7 -0
  107. package/src/contracts/routed_stake/routed_stake.ts +0 -27
  108. package/src/contracts/royalty_pool/pool.ts +0 -27
  109. package/src/contracts/royalty_pool/stake.ts +8 -28
  110. package/src/contracts/vault/vault.ts +2 -27
  111. package/src/contracts.ts +1 -0
  112. package/src/cover.ts +1 -1
  113. package/src/deployments.ts +55 -27
  114. package/src/pressing.ts +1 -4
  115. package/src/read/artist.ts +9 -66
  116. package/src/read/catalog.ts +3 -3
  117. package/src/read/client.ts +6 -13
  118. package/src/read/config.ts +4 -24
  119. package/src/read/index.ts +2 -4
  120. package/src/read/receipts.ts +1 -1
  121. package/src/read/types.ts +0 -12
  122. package/src/read/wallet.ts +9 -9
  123. package/src/release-extensions.ts +6 -4
  124. package/src/release-graph.ts +7 -1
  125. package/src/vault.ts +2 -1
@@ -0,0 +1,350 @@
1
+ /**************************************************************
2
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
3
+ **************************************************************/
4
+
5
+
6
+ /**
7
+ * Vault-authorized withdrawals from a Party's object inbox and funds accumulator.
8
+ *
9
+ * Anyone may address objects or funds to a Party ID. This plugin is the bounded
10
+ * withdrawal door: it temporarily leases the matching `PartyAdminCap`, uses it
11
+ * only to reach that Party's UID, returns it to the Vault, and then transfers the
12
+ * withdrawn object or coin to the recipient selected by the Vault administrator.
13
+ *
14
+ * Installation alone never makes withdrawals permissionless. Every production
15
+ * withdrawal is an `entry fun` requiring the matching `VaultAdminCap`, and no
16
+ * endpoint returns the leased capability, its borrow receipt, or a privileged
17
+ * reference. The Party itself stores no plugin data.
18
+ */
19
+
20
+ import { MoveStruct, normalizeMoveArguments, type RawTransactionArgument } from '../utils/index.js';
21
+ import { bcs } from '@mysten/sui/bcs';
22
+ import { type Transaction, type TransactionArgument } from '@mysten/sui/transactions';
23
+ const $moduleName = '@local-pkg/party_wallet::party_wallet';
24
+ export const ObjectReceivedEvent = new MoveStruct({ name: `${$moduleName}::ObjectReceivedEvent`, fields: {
25
+ party_id: bcs.Address,
26
+ object_id: bcs.Address
27
+ } });
28
+ export const CoinsReceivedEvent = new MoveStruct({ name: `${$moduleName}::CoinsReceivedEvent<phantom Currency>`, fields: {
29
+ party_id: bcs.Address,
30
+ amount: bcs.u64(),
31
+ coins: bcs.u64()
32
+ } });
33
+ export const FundsRedeemedEvent = new MoveStruct({ name: `${$moduleName}::FundsRedeemedEvent<phantom Currency>`, fields: {
34
+ party_id: bcs.Address,
35
+ amount: bcs.u64()
36
+ } });
37
+ export interface InstallArguments {
38
+ vault: RawTransactionArgument<string>;
39
+ vaultAdminCap: RawTransactionArgument<string>;
40
+ }
41
+ export interface InstallOptions {
42
+ package?: string;
43
+ arguments: InstallArguments | [
44
+ vault: RawTransactionArgument<string>,
45
+ vaultAdminCap: RawTransactionArgument<string>
46
+ ];
47
+ }
48
+ /** Authorize this package on a Party capability Vault. */
49
+ export function install(options: InstallOptions) {
50
+ const packageAddress = options.package ?? '@local-pkg/party_wallet';
51
+ const argumentsTypes = [
52
+ null,
53
+ null
54
+ ] satisfies (string | null)[];
55
+ const parameterNames = ["vault", "vaultAdminCap"];
56
+ return (tx: Transaction) => tx.moveCall({
57
+ package: packageAddress,
58
+ module: 'party_wallet',
59
+ function: 'install',
60
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
61
+ });
62
+ }
63
+ export interface UninstallArguments {
64
+ vault: RawTransactionArgument<string>;
65
+ vaultAdminCap: RawTransactionArgument<string>;
66
+ }
67
+ export interface UninstallOptions {
68
+ package?: string;
69
+ arguments: UninstallArguments | [
70
+ vault: RawTransactionArgument<string>,
71
+ vaultAdminCap: RawTransactionArgument<string>
72
+ ];
73
+ }
74
+ /** Revoke this package from a Party capability Vault. */
75
+ export function uninstall(options: UninstallOptions) {
76
+ const packageAddress = options.package ?? '@local-pkg/party_wallet';
77
+ const argumentsTypes = [
78
+ null,
79
+ null
80
+ ] satisfies (string | null)[];
81
+ const parameterNames = ["vault", "vaultAdminCap"];
82
+ return (tx: Transaction) => tx.moveCall({
83
+ package: packageAddress,
84
+ module: 'party_wallet',
85
+ function: 'uninstall',
86
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
87
+ });
88
+ }
89
+ export interface ReceiveObjectArguments {
90
+ vault: RawTransactionArgument<string>;
91
+ party: RawTransactionArgument<string>;
92
+ vaultAdminCap: RawTransactionArgument<string>;
93
+ objectToReceive: TransactionArgument;
94
+ recipient: RawTransactionArgument<string>;
95
+ }
96
+ export interface ReceiveObjectOptions {
97
+ package?: string;
98
+ arguments: ReceiveObjectArguments | [
99
+ vault: RawTransactionArgument<string>,
100
+ party: RawTransactionArgument<string>,
101
+ vaultAdminCap: RawTransactionArgument<string>,
102
+ objectToReceive: TransactionArgument,
103
+ recipient: RawTransactionArgument<string>
104
+ ];
105
+ typeArguments: [
106
+ string
107
+ ];
108
+ }
109
+ /**
110
+ * Receive one `key + store` object addressed to the Party and transfer it to
111
+ * `recipient`.
112
+ *
113
+ * Aborts if the Vault administrator is wrong, the plugin is not installed, the
114
+ * Vault contains another Party's cap, or the receiving ticket is invalid for the
115
+ * supplied Party.
116
+ */
117
+ export function receiveObject(options: ReceiveObjectOptions) {
118
+ const packageAddress = options.package ?? '@local-pkg/party_wallet';
119
+ const argumentsTypes = [
120
+ null,
121
+ null,
122
+ null,
123
+ null,
124
+ 'address'
125
+ ] satisfies (string | null)[];
126
+ const parameterNames = ["vault", "party", "vaultAdminCap", "objectToReceive", "recipient"];
127
+ return (tx: Transaction) => tx.moveCall({
128
+ package: packageAddress,
129
+ module: 'party_wallet',
130
+ function: 'receive_object',
131
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
132
+ typeArguments: options.typeArguments
133
+ });
134
+ }
135
+ export interface ReceiveObjectsArguments {
136
+ vault: RawTransactionArgument<string>;
137
+ party: RawTransactionArgument<string>;
138
+ vaultAdminCap: RawTransactionArgument<string>;
139
+ objectsToReceive: TransactionArgument;
140
+ recipient: RawTransactionArgument<string>;
141
+ }
142
+ export interface ReceiveObjectsOptions {
143
+ package?: string;
144
+ arguments: ReceiveObjectsArguments | [
145
+ vault: RawTransactionArgument<string>,
146
+ party: RawTransactionArgument<string>,
147
+ vaultAdminCap: RawTransactionArgument<string>,
148
+ objectsToReceive: TransactionArgument,
149
+ recipient: RawTransactionArgument<string>
150
+ ];
151
+ typeArguments: [
152
+ string
153
+ ];
154
+ }
155
+ /**
156
+ * Receive several `key + store` objects of one type and transfer each to
157
+ * `recipient` in input order.
158
+ *
159
+ * Aborts with `ENothingToReceive` if `objects_to_receive` is empty. It also aborts
160
+ * under the authorization and receiving conditions documented by `receive_object`.
161
+ */
162
+ export function receiveObjects(options: ReceiveObjectsOptions) {
163
+ const packageAddress = options.package ?? '@local-pkg/party_wallet';
164
+ const argumentsTypes = [
165
+ null,
166
+ null,
167
+ null,
168
+ 'vector<null>',
169
+ 'address'
170
+ ] satisfies (string | null)[];
171
+ const parameterNames = ["vault", "party", "vaultAdminCap", "objectsToReceive", "recipient"];
172
+ return (tx: Transaction) => tx.moveCall({
173
+ package: packageAddress,
174
+ module: 'party_wallet',
175
+ function: 'receive_objects',
176
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
177
+ typeArguments: options.typeArguments
178
+ });
179
+ }
180
+ export interface ReceiveCoinsArguments {
181
+ vault: RawTransactionArgument<string>;
182
+ party: RawTransactionArgument<string>;
183
+ vaultAdminCap: RawTransactionArgument<string>;
184
+ coins: TransactionArgument;
185
+ recipient: RawTransactionArgument<string>;
186
+ }
187
+ export interface ReceiveCoinsOptions {
188
+ package?: string;
189
+ arguments: ReceiveCoinsArguments | [
190
+ vault: RawTransactionArgument<string>,
191
+ party: RawTransactionArgument<string>,
192
+ vaultAdminCap: RawTransactionArgument<string>,
193
+ coins: TransactionArgument,
194
+ recipient: RawTransactionArgument<string>
195
+ ];
196
+ typeArguments: [
197
+ string
198
+ ];
199
+ }
200
+ /**
201
+ * Receive coin objects of one currency, merge them, and transfer the resulting
202
+ * Coin to `recipient`.
203
+ *
204
+ * Aborts with `ENothingToReceive` if `coins` is empty. It also aborts if the Vault
205
+ * administrator, plugin installation, Party capability, or a receiving ticket is
206
+ * invalid.
207
+ */
208
+ export function receiveCoins(options: ReceiveCoinsOptions) {
209
+ const packageAddress = options.package ?? '@local-pkg/party_wallet';
210
+ const argumentsTypes = [
211
+ null,
212
+ null,
213
+ null,
214
+ 'vector<null>',
215
+ 'address'
216
+ ] satisfies (string | null)[];
217
+ const parameterNames = ["vault", "party", "vaultAdminCap", "coins", "recipient"];
218
+ return (tx: Transaction) => tx.moveCall({
219
+ package: packageAddress,
220
+ module: 'party_wallet',
221
+ function: 'receive_coins',
222
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
223
+ typeArguments: options.typeArguments
224
+ });
225
+ }
226
+ export interface RedeemCoinArguments {
227
+ vault: RawTransactionArgument<string>;
228
+ party: RawTransactionArgument<string>;
229
+ vaultAdminCap: RawTransactionArgument<string>;
230
+ value: RawTransactionArgument<number | bigint>;
231
+ recipient: RawTransactionArgument<string>;
232
+ }
233
+ export interface RedeemCoinOptions {
234
+ package?: string;
235
+ arguments: RedeemCoinArguments | [
236
+ vault: RawTransactionArgument<string>,
237
+ party: RawTransactionArgument<string>,
238
+ vaultAdminCap: RawTransactionArgument<string>,
239
+ value: RawTransactionArgument<number | bigint>,
240
+ recipient: RawTransactionArgument<string>
241
+ ];
242
+ typeArguments: [
243
+ string
244
+ ];
245
+ }
246
+ /**
247
+ * Redeem `value` from the Party's accumulator balance, create a Coin, and transfer
248
+ * it to `recipient`.
249
+ *
250
+ * Aborts if the Vault administrator is wrong, the plugin is not installed, the
251
+ * Vault contains another Party's cap, `value` is zero, or the accumulator cannot
252
+ * cover the requested amount.
253
+ */
254
+ export function redeemCoin(options: RedeemCoinOptions) {
255
+ const packageAddress = options.package ?? '@local-pkg/party_wallet';
256
+ const argumentsTypes = [
257
+ null,
258
+ null,
259
+ null,
260
+ 'u64',
261
+ 'address'
262
+ ] satisfies (string | null)[];
263
+ const parameterNames = ["vault", "party", "vaultAdminCap", "value", "recipient"];
264
+ return (tx: Transaction) => tx.moveCall({
265
+ package: packageAddress,
266
+ module: 'party_wallet',
267
+ function: 'redeem_coin',
268
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
269
+ typeArguments: options.typeArguments
270
+ });
271
+ }
272
+ export interface IsInstalledArguments {
273
+ vault: RawTransactionArgument<string>;
274
+ }
275
+ export interface IsInstalledOptions {
276
+ package?: string;
277
+ arguments: IsInstalledArguments | [
278
+ vault: RawTransactionArgument<string>
279
+ ];
280
+ }
281
+ /** Return whether this plugin is installed on `vault`. */
282
+ export function isInstalled(options: IsInstalledOptions) {
283
+ const packageAddress = options.package ?? '@local-pkg/party_wallet';
284
+ const argumentsTypes = [
285
+ null
286
+ ] satisfies (string | null)[];
287
+ const parameterNames = ["vault"];
288
+ return (tx: Transaction) => tx.moveCall({
289
+ package: packageAddress,
290
+ module: 'party_wallet',
291
+ function: 'is_installed',
292
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
293
+ });
294
+ }
295
+ export interface InboxAddressArguments {
296
+ party: RawTransactionArgument<string>;
297
+ }
298
+ export interface InboxAddressOptions {
299
+ package?: string;
300
+ arguments: InboxAddressArguments | [
301
+ party: RawTransactionArgument<string>
302
+ ];
303
+ }
304
+ /** Return the Party ID as the address to which objects or funds may be sent. */
305
+ export function inboxAddress(options: InboxAddressOptions) {
306
+ const packageAddress = options.package ?? '@local-pkg/party_wallet';
307
+ const argumentsTypes = [
308
+ null
309
+ ] satisfies (string | null)[];
310
+ const parameterNames = ["party"];
311
+ return (tx: Transaction) => tx.moveCall({
312
+ package: packageAddress,
313
+ module: 'party_wallet',
314
+ function: 'inbox_address',
315
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
316
+ });
317
+ }
318
+ export interface SettledFundsArguments {
319
+ root: RawTransactionArgument<string>;
320
+ party: RawTransactionArgument<string>;
321
+ }
322
+ export interface SettledFundsOptions {
323
+ package?: string;
324
+ arguments: SettledFundsArguments | [
325
+ root: RawTransactionArgument<string>,
326
+ party: RawTransactionArgument<string>
327
+ ];
328
+ typeArguments: [
329
+ string
330
+ ];
331
+ }
332
+ /**
333
+ * Return the Party's accumulator balance settled at the start of the current
334
+ * consensus commit.
335
+ */
336
+ export function settledFunds(options: SettledFundsOptions) {
337
+ const packageAddress = options.package ?? '@local-pkg/party_wallet';
338
+ const argumentsTypes = [
339
+ null,
340
+ null
341
+ ] satisfies (string | null)[];
342
+ const parameterNames = ["root", "party"];
343
+ return (tx: Transaction) => tx.moveCall({
344
+ package: packageAddress,
345
+ module: 'party_wallet',
346
+ function: 'settled_funds',
347
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
348
+ typeArguments: options.typeArguments
349
+ });
350
+ }
@@ -0,0 +1,7 @@
1
+ /**************************************************************
2
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
3
+ **************************************************************/
4
+ import { MoveTuple } from '../utils/index.js';
5
+ import { bcs } from '@mysten/sui/bcs';
6
+ const $moduleName = '@local-pkg/party_wallet::witness';
7
+ export const Witness = new MoveTuple({ name: `${$moduleName}::Witness`, fields: [bcs.bool()] });
@@ -332,33 +332,6 @@ export function sweep(options: SweepOptions) {
332
332
  typeArguments: options.typeArguments
333
333
  });
334
334
  }
335
- export interface IdArguments {
336
- self: RawTransactionArgument<string>;
337
- }
338
- export interface IdOptions {
339
- package?: string;
340
- arguments: IdArguments | [
341
- self: RawTransactionArgument<string>
342
- ];
343
- typeArguments: [
344
- string,
345
- string
346
- ];
347
- }
348
- export function id(options: IdOptions) {
349
- const packageAddress = options.package ?? '@local-pkg/routed_stake';
350
- const argumentsTypes = [
351
- null
352
- ] satisfies (string | null)[];
353
- const parameterNames = ["self"];
354
- return (tx: Transaction) => tx.moveCall({
355
- package: packageAddress,
356
- module: 'routed_stake',
357
- function: 'id',
358
- arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
359
- typeArguments: options.typeArguments
360
- });
361
- }
362
335
  export interface HasStakeArguments {
363
336
  self: RawTransactionArgument<string>;
364
337
  }
@@ -412,33 +412,6 @@ export function pendingRewards(options: PendingRewardsOptions) {
412
412
  typeArguments: options.typeArguments
413
413
  });
414
414
  }
415
- export interface IdArguments {
416
- self: RawTransactionArgument<string>;
417
- }
418
- export interface IdOptions {
419
- package?: string;
420
- arguments: IdArguments | [
421
- self: RawTransactionArgument<string>
422
- ];
423
- typeArguments: [
424
- string,
425
- string
426
- ];
427
- }
428
- export function id(options: IdOptions) {
429
- const packageAddress = options.package ?? '@local-pkg/royalty_pool';
430
- const argumentsTypes = [
431
- null
432
- ] satisfies (string | null)[];
433
- const parameterNames = ["self"];
434
- return (tx: Transaction) => tx.moveCall({
435
- package: packageAddress,
436
- module: 'pool',
437
- function: 'id',
438
- arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
439
- typeArguments: options.typeArguments
440
- });
441
- }
442
415
  export interface BalanceArguments {
443
416
  self: RawTransactionArgument<string>;
444
417
  }
@@ -5,16 +5,22 @@
5
5
 
6
6
  /**
7
7
  * A position holding share tokens registered against a `RoyaltyPool`.
8
- *
8
+ *
9
9
  * Stakes are owned objects with an immutable balance — to increase a holder's
10
10
  * total staked amount, mint additional Stake objects rather than modify an
11
11
  * existing one. This mirrors Sui's native staking model.
12
- *
12
+ *
13
13
  * Each stake tracks the royalty pools it is currently registered with via an
14
14
  * inline `VecMap<TypeName, Registration>`, keyed by the pool's `Currency`
15
15
  * `TypeName`. The stake cannot be destroyed while any registrations remain. Pool
16
16
  * registrations are mutated by `royalty_pool::pool` through the package-private
17
17
  * accessors below.
18
+ *
19
+ * Custody warning: `pool::claim_rewards` pays accrued rewards to the _caller_, and
20
+ * `Stake` is `key + store` — a bare shared stake (or one wrapped in a shared
21
+ * object that hands out `&mut`) is drainable by anyone. Stakes must stay
22
+ * address-owned, or wrapped by a contract that pins the reward route (e.g.
23
+ * `routed_stake`); the pool cannot enforce this itself.
18
24
  */
19
25
 
20
26
  import { MoveStruct, normalizeMoveArguments, type RawTransactionArgument } from '../utils/index.js';
@@ -108,32 +114,6 @@ export function destroy(options: DestroyOptions) {
108
114
  typeArguments: options.typeArguments
109
115
  });
110
116
  }
111
- export interface IdArguments {
112
- self: RawTransactionArgument<string>;
113
- }
114
- export interface IdOptions {
115
- package?: string;
116
- arguments: IdArguments | [
117
- self: RawTransactionArgument<string>
118
- ];
119
- typeArguments: [
120
- string
121
- ];
122
- }
123
- export function id(options: IdOptions) {
124
- const packageAddress = options.package ?? '@local-pkg/royalty_pool';
125
- const argumentsTypes = [
126
- null
127
- ] satisfies (string | null)[];
128
- const parameterNames = ["self"];
129
- return (tx: Transaction) => tx.moveCall({
130
- package: packageAddress,
131
- module: 'stake',
132
- function: 'id',
133
- arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
134
- typeArguments: options.typeArguments
135
- });
136
- }
137
117
  export interface BalanceArguments {
138
118
  self: RawTransactionArgument<string>;
139
119
  }
@@ -229,7 +229,8 @@ export interface BorrowAsPluginOptions<Witness extends BcsType<any>> {
229
229
  * Temporarily lend the full custodied capability to an authorized plugin.
230
230
  *
231
231
  * `Borrow` has no abilities, so the exact capability must be returned through
232
- * `put_back` in this transaction.
232
+ * `put_back` in this transaction. Aborts if the supplied type is not the exact
233
+ * non-generic `0xpkg::witness::Witness` shape or is not authorized on this Vault.
233
234
  */
234
235
  export function borrowAsPlugin<Witness extends BcsType<any>>(options: BorrowAsPluginOptions<Witness>) {
235
236
  const packageAddress = options.package ?? '@local-pkg/vault';
@@ -314,32 +315,6 @@ export function putBack<Cap extends BcsType<any>>(options: PutBackOptions<Cap>)
314
315
  typeArguments: options.typeArguments
315
316
  });
316
317
  }
317
- export interface IdArguments {
318
- self: RawTransactionArgument<string>;
319
- }
320
- export interface IdOptions {
321
- package?: string;
322
- arguments: IdArguments | [
323
- self: RawTransactionArgument<string>
324
- ];
325
- typeArguments: [
326
- string
327
- ];
328
- }
329
- export function id(options: IdOptions) {
330
- const packageAddress = options.package ?? '@local-pkg/vault';
331
- const argumentsTypes = [
332
- null
333
- ] satisfies (string | null)[];
334
- const parameterNames = ["self"];
335
- return (tx: Transaction) => tx.moveCall({
336
- package: packageAddress,
337
- module: 'vault',
338
- function: 'id',
339
- arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
340
- typeArguments: options.typeArguments
341
- });
342
- }
343
318
  export interface VaultIdArguments {
344
319
  self: RawTransactionArgument<string>;
345
320
  }
package/src/contracts.ts CHANGED
@@ -20,6 +20,7 @@ export * as royaltyPoolStake from "./contracts/royalty_pool/stake.ts";
20
20
  export * as vault from "./contracts/vault/vault.ts";
21
21
  export * as compositionRoyaltyPool from "./contracts/composition_royalty_pool/composition_royalty_pool.ts";
22
22
  export * as recordingRoyaltyPool from "./contracts/recording_royalty_pool/recording_royalty_pool.ts";
23
+ export * as partyWallet from "./contracts/party_wallet/party_wallet.ts";
23
24
  export * as routedStake from "./contracts/routed_stake/routed_stake.ts";
24
25
  export * as compositionRoutedStake from "./contracts/composition_routed_stake/composition_routed_stake.ts";
25
26
 
package/src/cover.ts CHANGED
@@ -162,7 +162,7 @@ function toCoverImageRef(wd: ParsedWalrusData): CoverImageRef {
162
162
  * Reads a release's album-level cover (the `release_cover_art` extension), or
163
163
  * `null` if no cover is attached. Derives the `ExtensionKey` dynamic field on the
164
164
  * release, parses the `ReleaseCoverArt`, and returns the still (+ optional
165
- * animation) as normalized Walrus refs for the app's featured-pressing card.
165
+ * animation) as normalized Walrus refs for release displays.
166
166
  */
167
167
  export async function getReleaseCover(
168
168
  client: ClientWithCoreApi,
@@ -2,14 +2,19 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
4
  import type {
5
+ MisoDeployment,
5
6
  MisoNetwork,
6
- MisoProtocolDeployment,
7
7
  } from "@misonetwork/sdk/deployments";
8
+ import { MISO_DEPLOYMENTS } from "@misonetwork/sdk/deployments";
8
9
 
9
10
  /** Complete on-chain identity used by the Miso platform SDK on one network. */
10
11
  export interface MisoPlatformDeployment {
11
- /** The protocol deployment this platform deployment was built against. */
12
- readonly protocol: MisoProtocolDeployment;
12
+ /** Network name this immutable deployment set belongs to. */
13
+ readonly network: MisoNetwork;
14
+ /** Full ledger genesis digest used to reject a mislabeled RPC endpoint. */
15
+ readonly chainIdentifier: string;
16
+ /** The complete protocol and Party deployment this platform build targets. */
17
+ readonly protocol: MisoDeployment;
13
18
  readonly packages: {
14
19
  readonly pressing: string;
15
20
  readonly record: string;
@@ -26,6 +31,8 @@ export interface MisoPlatformDeployment {
26
31
  readonly compositionRoyaltyPoolPlugin: string;
27
32
  /** Vault plugin that creates and cranks Recording royalty pools. */
28
33
  readonly recordingRoyaltyPoolPlugin: string;
34
+ /** Vault plugin that manages a Party's royalty-bearing wallet. */
35
+ readonly partyWalletPlugin: string;
29
36
  /** Generic stake wrapper used by the composition routed-stake plugin. */
30
37
  readonly routedStake: string;
31
38
  /** Vault plugin for Composition-owned Recording-share staking. */
@@ -49,29 +56,10 @@ export interface MisoPlatformDeployment {
49
56
  readonly ori: string;
50
57
  };
51
58
  readonly objects: {
52
- readonly recordSettings: string;
53
59
  readonly releaseRegistry: string;
54
60
  /** Shared parent used to derive canonical Genre object ids. */
55
61
  readonly genreRegistry: string;
56
62
  };
57
- /** PartyOS packages used by the composed artist and wallet reads. */
58
- readonly party: {
59
- readonly partyPackageId: string;
60
- readonly partyProfilePackageId: string;
61
- readonly countryCodePackageId: string;
62
- readonly languageCodePackageId: string;
63
- readonly partyMediaPackageId: string;
64
- readonly partyRolesPackageId: string;
65
- readonly partyTagsPackageId: string;
66
- readonly partyGenrePackageId: string;
67
- readonly partyCtaPackageId: string;
68
- readonly partyPlatformLinkPackageId: string;
69
- readonly partySocialPackageId: string;
70
- readonly partyMusicPackageId: string;
71
- readonly partyProLinkPackageId: string;
72
- readonly partyFeaturedDropPackageId: string;
73
- readonly genrePackageId: string;
74
- };
75
63
  readonly legacy: {
76
64
  readonly releaseCoverArtPackages: readonly string[];
77
65
  };
@@ -80,12 +68,52 @@ export interface MisoPlatformDeployment {
80
68
  /**
81
69
  * Platform deployments bundled with this SDK release.
82
70
  *
83
- * This release deliberately contains no bundled network deployment. The core
84
- * protocol is being republished as an immutable stack, so every old package ID
85
- * is an incompatible ABI and must not be selected by accident. The admin-cli
86
- * deployment flow injects verified IDs in a follow-up change.
71
+ * IDs come only from the verified output of the Ledger-backed deployment run.
72
+ * Consumers may still pass an explicit complete deployment for custom networks.
87
73
  */
88
- export const MISO_PLATFORM_DEPLOYMENTS = {} as const satisfies Partial<
74
+ export const MISO_PLATFORM_DEPLOYMENTS = {
75
+ testnet: {
76
+ network: "testnet",
77
+ chainIdentifier: "69WiPg3DAQiwdxfncX6wYQ2siKwAe6L9BZthQea3JNMD",
78
+ protocol: MISO_DEPLOYMENTS.testnet,
79
+ packages: {
80
+ pressing: "0x95fba53c968978f75d6ca8a5e6f0f3ba83fdc3af301bc8419be354a3990af5b9",
81
+ record: "0x6150c474200f63bf73072642564886e5ecb1a4c0498ede31acd7908d94dbc83b",
82
+ minato: "0x8466e9864c1d947888e73b0e349b035bc22805579eef18f132966f56c8efe1d2",
83
+ credit: "0x20d8e38f49445cbae45fd66c262c2cbc4bf4cccab487b3fb443a491dc24071cd",
84
+ compositionCredits: "0x8b376967e9c32169727ec5341890f28c66d8577d7bfcecb83aa78aec3e84dce5",
85
+ recordingCredits: "0x7096a47b0ba12063c037d6d417bffade758665a3f313574c8ba218823cfb159a",
86
+ releaseCredits: "0xbe293700ef758c95b69838df6cfa8377b9cad1dd59cbf933974f68b1766d87b5",
87
+ royaltyPool: "0xbeddbcfc2c42ed1bcaa74dc241957621b48241451e10af136c20cdc7df8266b8",
88
+ vault: "0x7075ce4bfc2c738e774c94f1eeb7dc532a5f11ead9b4e3815d90dc16053eae9c",
89
+ compositionRoyaltyPoolPlugin: "0x8d61aecceb597441a0d675b44291706742859c8ff7755b3ed143823daa430c50",
90
+ recordingRoyaltyPoolPlugin: "0x6de70d4e87a328259f00f354227fb329c63fbf50efb87f057c5da26d6908e1d1",
91
+ partyWalletPlugin: "0xccf17215193d1ae64a47480c83df9af2881ffdb75e5ac842ab3898cadd9eeca0",
92
+ routedStake: "0x7a55b1841043efea865d65a6601e057400a79a0aa7bb11e781a25dbe622cbe5f",
93
+ compositionRoutedStakePlugin: "0x54fb4befa1be03f7457abfddcfb9334c20a8df3e01c44aa257f1c3d718cd57ee",
94
+ coverArt: "0x2dae28058b89df93224bacfb9af42fd3ab41f001c2c815fd57fd575024d9a50b",
95
+ releaseCoverArt: "0x649b18f2bb3d94f6a611a8e4ad3a29dcf8b7bba3f684056d60897a8a5e835106",
96
+ genre: "0x978d5f67a4fdc3eb688ed3aeb23c6c3c37ae44e358fb709001e6ab21e6f19f34",
97
+ releaseDescription: "0x3e26e4c4c5b3f51070d6d7bb1527eaa304f34ae5dfde078661e180e7594d6d28",
98
+ releaseDspLink: "0xd9f9e7240c397a82e4af1ecb9ec75b29a91ef4084127eabcf22fbf24e72cab2f",
99
+ releaseGenre: "0xc1012f9768f178ca908ef4a6cfd150ad33baaa3587dc2154ea9852858243cd57",
100
+ releaseKind: "0x3e74c960d9446ae2ebf228456ddc1b099d2090501c9cbcd284a999aa2e774e12",
101
+ releaseRevenueDistributorPlugin: "0x42a22b24129988a5ce8069a1f78eb31d9aa5edf360d729ae3c2c0b8ed18876e1",
102
+ recordingAdvisory: "0x28e0e72c5b892fc888a9007afa59ebe04ed8e47f12632ddb42cd685d09c4af2e",
103
+ recordingLanguage: "0x4b284a9435cf4f48e3785e4485d16be2fcbcef5beaa2b44b6556d9c1028e2c0d",
104
+ recordingMasterReference: "0x2b06ab58f2d5a915b42fc5879d52241fc72e804b3da782fa752b2d2f242170c0",
105
+ recordingPreview: "0x449aafe29707adf249df7e90355ecb19d939ea77d9e19fd3e2fdb220e73e74f0",
106
+ ori: "0x340057f2174fb59e4626742dd2b46c662237837b6187450cb59e4976ce7eac78",
107
+ },
108
+ objects: {
109
+ releaseRegistry: "0xf5941ae9640f6f24b75e921da16c95fd23d776b9e6518c275a50a5ce6337c8ba",
110
+ genreRegistry: "0xad34d6b717b8c59ed9ac47a520feab31324f0c04d70fd31922be45d8209fce1c",
111
+ },
112
+ legacy: {
113
+ releaseCoverArtPackages: [],
114
+ },
115
+ },
116
+ } as const satisfies Partial<
89
117
  Record<MisoNetwork, MisoPlatformDeployment>
90
118
  >;
91
119
 
package/src/pressing.ts CHANGED
@@ -365,9 +365,6 @@ export interface BuyRecordParams {
365
365
  amount: U64Input;
366
366
  /** The listing's `Currency` type, e.g. `0x2::sui::SUI`. */
367
367
  currencyType: string;
368
- /** The `miso_record` `Settings` shared object — it must authorize `miso_pressing`'s
369
- * `MintWitness`, or the mint aborts. */
370
- settingsId: string;
371
368
  /** Where to send the pressed `Record` (usually the buyer). */
372
369
  recipient: string;
373
370
  misoPressingPackageId: string;
@@ -412,7 +409,7 @@ export function buyRecord(p: BuyRecordParams): TxThunk {
412
409
  const record = tx.add(
413
410
  listing.buy({
414
411
  package: pkg,
415
- arguments: [listingId, pressingId, payment, p.settingsId],
412
+ arguments: [listingId, pressingId, payment],
416
413
  typeArguments: [p.currencyType],
417
414
  }),
418
415
  );