@misofm/partyos 0.1.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 (58) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +50 -0
  3. package/dist/client.d.ts +84 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +109 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/contracts/partyos/deps/sui/vec_set.d.ts +21 -0
  8. package/dist/contracts/partyos/deps/sui/vec_set.d.ts.map +1 -0
  9. package/dist/contracts/partyos/deps/sui/vec_set.js +20 -0
  10. package/dist/contracts/partyos/deps/sui/vec_set.js.map +1 -0
  11. package/dist/contracts/partyos/party.d.ts +481 -0
  12. package/dist/contracts/partyos/party.d.ts.map +1 -0
  13. package/dist/contracts/partyos/party.js +527 -0
  14. package/dist/contracts/partyos/party.js.map +1 -0
  15. package/dist/contracts/utils/index.d.ts +104 -0
  16. package/dist/contracts/utils/index.d.ts.map +1 -0
  17. package/dist/contracts/utils/index.js +272 -0
  18. package/dist/contracts/utils/index.js.map +1 -0
  19. package/dist/contracts.d.ts +12 -0
  20. package/dist/contracts.d.ts.map +1 -0
  21. package/dist/contracts.js +21 -0
  22. package/dist/contracts.js.map +1 -0
  23. package/dist/deployments.d.ts +33 -0
  24. package/dist/deployments.d.ts.map +1 -0
  25. package/dist/deployments.js +63 -0
  26. package/dist/deployments.js.map +1 -0
  27. package/dist/index.d.ts +7 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +14 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/internal.d.ts +5 -0
  32. package/dist/internal.d.ts.map +1 -0
  33. package/dist/internal.js +24 -0
  34. package/dist/internal.js.map +1 -0
  35. package/dist/queries.d.ts +37 -0
  36. package/dist/queries.d.ts.map +1 -0
  37. package/dist/queries.js +123 -0
  38. package/dist/queries.js.map +1 -0
  39. package/dist/transactions.d.ts +74 -0
  40. package/dist/transactions.d.ts.map +1 -0
  41. package/dist/transactions.js +85 -0
  42. package/dist/transactions.js.map +1 -0
  43. package/dist/types.d.ts +12 -0
  44. package/dist/types.d.ts.map +1 -0
  45. package/dist/types.js +4 -0
  46. package/dist/types.js.map +1 -0
  47. package/package.json +97 -0
  48. package/src/client.ts +165 -0
  49. package/src/contracts/partyos/deps/sui/vec_set.ts +22 -0
  50. package/src/contracts/partyos/party.ts +798 -0
  51. package/src/contracts/utils/index.ts +428 -0
  52. package/src/contracts.ts +31 -0
  53. package/src/deployments.ts +90 -0
  54. package/src/index.ts +15 -0
  55. package/src/internal.ts +30 -0
  56. package/src/queries.ts +167 -0
  57. package/src/transactions.ts +167 -0
  58. package/src/types.ts +18 -0
@@ -0,0 +1,798 @@
1
+ /**************************************************************
2
+ * THIS FILE IS GENERATED AND SHOULD NOT BE MANUALLY MODIFIED *
3
+ **************************************************************/
4
+
5
+
6
+ /**
7
+ * Represents parties (individuals or groups) that participate in on-chain
8
+ * activities. A party is a named entity with capability-based authorization.
9
+ *
10
+ * ### Key Features:
11
+ *
12
+ * - Individual and group party types
13
+ * - Extensible metadata via dynamic fields
14
+ * - Capability-based authorization for modifications
15
+ * - Groups can contain multiple individual parties
16
+ */
17
+
18
+ import { MoveEnum, MoveStruct, MoveTuple, normalizeMoveArguments, type RawTransactionArgument } from '../utils/index.ts';
19
+ import { bcs } from '@mysten/sui/bcs';
20
+ import type {} from "@mysten/bcs";
21
+ import { type Transaction, type TransactionArgument } from '@mysten/sui/transactions';
22
+ import * as vec_set from './deps/sui/vec_set.ts';
23
+ const $moduleName = '@local-pkg/partyos::party';
24
+ /** The type of self: individual person or group. */
25
+ export const PartyKind = new MoveEnum({ name: `${$moduleName}::PartyKind`, fields: {
26
+ /** A single person (artist, producer, etc.). */
27
+ Individual: null,
28
+ /** A group containing multiple individual parties. */
29
+ Group: vec_set.VecSet(bcs.Address)
30
+ } });
31
+ export const Party = new MoveStruct({ name: `${$moduleName}::Party`, fields: {
32
+ /** Unique identifier for this party. */
33
+ id: bcs.Address,
34
+ /** Whether this is an individual or group party. */
35
+ kind: PartyKind,
36
+ /**
37
+ * Human-readable name of the party. Note this name is not "official" or "verified"
38
+ * in any way. Verification should be performed by the application layer.
39
+ */
40
+ name: bcs.string(),
41
+ /** Unix ms when the party was created. Set once at `new`; immutable. */
42
+ created_at_ms: bcs.u64()
43
+ } });
44
+ export const PartyAdminCap = new MoveStruct({ name: `${$moduleName}::PartyAdminCap`, fields: {
45
+ /** Unique identifier for this capability. */
46
+ id: bcs.Address,
47
+ /** ID of the party this capability controls. */
48
+ party_id: bcs.Address
49
+ } });
50
+ export const PartyAdminCapKey = new MoveTuple({ name: `${$moduleName}::PartyAdminCapKey`, fields: [bcs.Address] });
51
+ export const PendingInviteKey = new MoveTuple({ name: `${$moduleName}::PendingInviteKey`, fields: [bcs.Address] });
52
+ export const PendingMembershipKey = new MoveTuple({ name: `${$moduleName}::PendingMembershipKey`, fields: [bcs.Address] });
53
+ export const MembershipKey = new MoveTuple({ name: `${$moduleName}::MembershipKey`, fields: [bcs.Address] });
54
+ export const Membership = new MoveStruct({ name: `${$moduleName}::Membership`, fields: {
55
+ /** Epoch in which the party joined the group. */
56
+ since_epoch: bcs.u64()
57
+ } });
58
+ export const PartyCreatedEvent = new MoveStruct({ name: `${$moduleName}::PartyCreatedEvent`, fields: {
59
+ /** ID of the newly created party. */
60
+ party_id: bcs.Address,
61
+ /** Name of the party. */
62
+ name: bcs.string(),
63
+ /** Kind of the party. */
64
+ kind: bcs.string(),
65
+ /** Unix ms when the party was created. */
66
+ created_at_ms: bcs.u64()
67
+ } });
68
+ export const PartyNameSetEvent = new MoveStruct({ name: `${$moduleName}::PartyNameSetEvent`, fields: {
69
+ /** ID of the party. */
70
+ party_id: bcs.Address,
71
+ /** Name of the party. */
72
+ name: bcs.string()
73
+ } });
74
+ export const PartyInvitedEvent = new MoveStruct({ name: `${$moduleName}::PartyInvitedEvent`, fields: {
75
+ /** ID of the group. */
76
+ group_id: bcs.Address,
77
+ /** ID of the invited member party. */
78
+ member_id: bcs.Address
79
+ } });
80
+ export const PartyJoinedGroupEvent = new MoveStruct({ name: `${$moduleName}::PartyJoinedGroupEvent`, fields: {
81
+ /** ID of the group. */
82
+ group_id: bcs.Address,
83
+ /** ID of the party that joined. */
84
+ member_id: bcs.Address
85
+ } });
86
+ export const PartyInviteDeclinedEvent = new MoveStruct({ name: `${$moduleName}::PartyInviteDeclinedEvent`, fields: {
87
+ /** ID of the group. */
88
+ group_id: bcs.Address,
89
+ /** ID of the party that declined. */
90
+ member_id: bcs.Address
91
+ } });
92
+ export const PartyInviteRevokedEvent = new MoveStruct({ name: `${$moduleName}::PartyInviteRevokedEvent`, fields: {
93
+ /** ID of the group. */
94
+ group_id: bcs.Address,
95
+ /** ID of the party whose invite was revoked. */
96
+ member_id: bcs.Address
97
+ } });
98
+ export const PartyRemovedFromGroupEvent = new MoveStruct({ name: `${$moduleName}::PartyRemovedFromGroupEvent`, fields: {
99
+ /** ID of the group. */
100
+ group_id: bcs.Address,
101
+ /** ID of the party removed from the group. */
102
+ member_id: bcs.Address
103
+ } });
104
+ export const PartyLeftGroupEvent = new MoveStruct({ name: `${$moduleName}::PartyLeftGroupEvent`, fields: {
105
+ /** ID of the group. */
106
+ group_id: bcs.Address,
107
+ /** ID of the party that left the group. */
108
+ member_id: bcs.Address
109
+ } });
110
+ export interface NewArguments {
111
+ kind: TransactionArgument;
112
+ name: RawTransactionArgument<string>;
113
+ }
114
+ export interface NewOptions {
115
+ package?: string;
116
+ arguments: NewArguments | [
117
+ kind: TransactionArgument,
118
+ name: RawTransactionArgument<string>
119
+ ];
120
+ }
121
+ /**
122
+ * Creates a new party with the specified kind and name. Returns the admin
123
+ * capability for managing the party. The party is shared and starts in the Created
124
+ * state.
125
+ */
126
+ export function _new(options: NewOptions) {
127
+ const packageAddress = options.package ?? '@local-pkg/partyos';
128
+ const argumentsTypes = [
129
+ null,
130
+ '0x1::string::String',
131
+ '0x2::clock::Clock'
132
+ ] satisfies (string | null)[];
133
+ const parameterNames = ["kind", "name"];
134
+ return (tx: Transaction) => tx.moveCall({
135
+ package: packageAddress,
136
+ module: 'party',
137
+ function: 'new',
138
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
139
+ });
140
+ }
141
+ export interface ShareArguments {
142
+ self: RawTransactionArgument<string>;
143
+ cap: RawTransactionArgument<string>;
144
+ }
145
+ export interface ShareOptions {
146
+ package?: string;
147
+ arguments: ShareArguments | [
148
+ self: RawTransactionArgument<string>,
149
+ cap: RawTransactionArgument<string>
150
+ ];
151
+ }
152
+ /**
153
+ * Shares the party object, making it publicly accessible. Requires the admin
154
+ * capability.
155
+ */
156
+ export function share(options: ShareOptions) {
157
+ const packageAddress = options.package ?? '@local-pkg/partyos';
158
+ const argumentsTypes = [
159
+ null,
160
+ null
161
+ ] satisfies (string | null)[];
162
+ const parameterNames = ["self", "cap"];
163
+ return (tx: Transaction) => tx.moveCall({
164
+ package: packageAddress,
165
+ module: 'party',
166
+ function: 'share',
167
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
168
+ });
169
+ }
170
+ export interface SetNameArguments {
171
+ self: RawTransactionArgument<string>;
172
+ cap: RawTransactionArgument<string>;
173
+ name: RawTransactionArgument<string>;
174
+ }
175
+ export interface SetNameOptions {
176
+ package?: string;
177
+ arguments: SetNameArguments | [
178
+ self: RawTransactionArgument<string>,
179
+ cap: RawTransactionArgument<string>,
180
+ name: RawTransactionArgument<string>
181
+ ];
182
+ }
183
+ /** Sets the human-readable name of the party. Requires the admin capability. */
184
+ export function setName(options: SetNameOptions) {
185
+ const packageAddress = options.package ?? '@local-pkg/partyos';
186
+ const argumentsTypes = [
187
+ null,
188
+ null,
189
+ '0x1::string::String'
190
+ ] satisfies (string | null)[];
191
+ const parameterNames = ["self", "cap", "name"];
192
+ return (tx: Transaction) => tx.moveCall({
193
+ package: packageAddress,
194
+ module: 'party',
195
+ function: 'set_name',
196
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
197
+ });
198
+ }
199
+ export interface InvitePartyArguments {
200
+ group: RawTransactionArgument<string>;
201
+ member: RawTransactionArgument<string>;
202
+ groupCap: RawTransactionArgument<string>;
203
+ }
204
+ export interface InvitePartyOptions {
205
+ package?: string;
206
+ arguments: InvitePartyArguments | [
207
+ group: RawTransactionArgument<string>,
208
+ member: RawTransactionArgument<string>,
209
+ groupCap: RawTransactionArgument<string>
210
+ ];
211
+ }
212
+ /**
213
+ * Invites an individual party to join a group. Requires the group's admin
214
+ * capability. Records matching pending-invite indexes on both parties; the invited
215
+ * party joins only by calling `accept_invite` with its own admin cap — so no party
216
+ * can be made a member without its consent. The party being invited must be an
217
+ * individual (not another group).
218
+ */
219
+ export function inviteParty(options: InvitePartyOptions) {
220
+ const packageAddress = options.package ?? '@local-pkg/partyos';
221
+ const argumentsTypes = [
222
+ null,
223
+ null,
224
+ null
225
+ ] satisfies (string | null)[];
226
+ const parameterNames = ["group", "member", "groupCap"];
227
+ return (tx: Transaction) => tx.moveCall({
228
+ package: packageAddress,
229
+ module: 'party',
230
+ function: 'invite_party',
231
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
232
+ });
233
+ }
234
+ export interface AcceptInviteArguments {
235
+ group: RawTransactionArgument<string>;
236
+ member: RawTransactionArgument<string>;
237
+ memberCap: RawTransactionArgument<string>;
238
+ }
239
+ export interface AcceptInviteOptions {
240
+ package?: string;
241
+ arguments: AcceptInviteArguments | [
242
+ group: RawTransactionArgument<string>,
243
+ member: RawTransactionArgument<string>,
244
+ memberCap: RawTransactionArgument<string>
245
+ ];
246
+ }
247
+ /**
248
+ * Accepts a pending invite, joining `member` to `group`. Requires the _member's_
249
+ * own admin cap (consent). Consumes the pending invite, inserts the member into
250
+ * the group's set, and writes a `Membership` record onto the member party — both
251
+ * sides in one transaction, so they can't diverge.
252
+ */
253
+ export function acceptInvite(options: AcceptInviteOptions) {
254
+ const packageAddress = options.package ?? '@local-pkg/partyos';
255
+ const argumentsTypes = [
256
+ null,
257
+ null,
258
+ null
259
+ ] satisfies (string | null)[];
260
+ const parameterNames = ["group", "member", "memberCap"];
261
+ return (tx: Transaction) => tx.moveCall({
262
+ package: packageAddress,
263
+ module: 'party',
264
+ function: 'accept_invite',
265
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
266
+ });
267
+ }
268
+ export interface DeclineInviteArguments {
269
+ group: RawTransactionArgument<string>;
270
+ member: RawTransactionArgument<string>;
271
+ memberCap: RawTransactionArgument<string>;
272
+ }
273
+ export interface DeclineInviteOptions {
274
+ package?: string;
275
+ arguments: DeclineInviteArguments | [
276
+ group: RawTransactionArgument<string>,
277
+ member: RawTransactionArgument<string>,
278
+ memberCap: RawTransactionArgument<string>
279
+ ];
280
+ }
281
+ /**
282
+ * Declines a pending invite, authorized by the invited party's own admin cap.
283
+ * Clears the group-side invitation and the member-facing inbox entry together.
284
+ */
285
+ export function declineInvite(options: DeclineInviteOptions) {
286
+ const packageAddress = options.package ?? '@local-pkg/partyos';
287
+ const argumentsTypes = [
288
+ null,
289
+ null,
290
+ null
291
+ ] satisfies (string | null)[];
292
+ const parameterNames = ["group", "member", "memberCap"];
293
+ return (tx: Transaction) => tx.moveCall({
294
+ package: packageAddress,
295
+ module: 'party',
296
+ function: 'decline_invite',
297
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
298
+ });
299
+ }
300
+ export interface RevokeInviteArguments {
301
+ group: RawTransactionArgument<string>;
302
+ member: RawTransactionArgument<string>;
303
+ groupCap: RawTransactionArgument<string>;
304
+ }
305
+ export interface RevokeInviteOptions {
306
+ package?: string;
307
+ arguments: RevokeInviteArguments | [
308
+ group: RawTransactionArgument<string>,
309
+ member: RawTransactionArgument<string>,
310
+ groupCap: RawTransactionArgument<string>
311
+ ];
312
+ }
313
+ /**
314
+ * Revokes a pending invite, authorized by the group's admin cap. Clears the
315
+ * group-side invitation and the member-facing inbox entry together.
316
+ */
317
+ export function revokeInvite(options: RevokeInviteOptions) {
318
+ const packageAddress = options.package ?? '@local-pkg/partyos';
319
+ const argumentsTypes = [
320
+ null,
321
+ null,
322
+ null
323
+ ] satisfies (string | null)[];
324
+ const parameterNames = ["group", "member", "groupCap"];
325
+ return (tx: Transaction) => tx.moveCall({
326
+ package: packageAddress,
327
+ module: 'party',
328
+ function: 'revoke_invite',
329
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
330
+ });
331
+ }
332
+ export interface LeaveArguments {
333
+ group: RawTransactionArgument<string>;
334
+ member: RawTransactionArgument<string>;
335
+ memberCap: RawTransactionArgument<string>;
336
+ }
337
+ export interface LeaveOptions {
338
+ package?: string;
339
+ arguments: LeaveArguments | [
340
+ group: RawTransactionArgument<string>,
341
+ member: RawTransactionArgument<string>,
342
+ memberCap: RawTransactionArgument<string>
343
+ ];
344
+ }
345
+ /**
346
+ * Removes the caller's party from a group, authorized by the _member's_ own admin
347
+ * capability — the member's unconditional exit. Clears both the group's member set
348
+ * and the member's own membership record.
349
+ */
350
+ export function leave(options: LeaveOptions) {
351
+ const packageAddress = options.package ?? '@local-pkg/partyos';
352
+ const argumentsTypes = [
353
+ null,
354
+ null,
355
+ null
356
+ ] satisfies (string | null)[];
357
+ const parameterNames = ["group", "member", "memberCap"];
358
+ return (tx: Transaction) => tx.moveCall({
359
+ package: packageAddress,
360
+ module: 'party',
361
+ function: 'leave',
362
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
363
+ });
364
+ }
365
+ export interface RemoveMemberArguments {
366
+ group: RawTransactionArgument<string>;
367
+ groupCap: RawTransactionArgument<string>;
368
+ member: RawTransactionArgument<string>;
369
+ }
370
+ export interface RemoveMemberOptions {
371
+ package?: string;
372
+ arguments: RemoveMemberArguments | [
373
+ group: RawTransactionArgument<string>,
374
+ groupCap: RawTransactionArgument<string>,
375
+ member: RawTransactionArgument<string>
376
+ ];
377
+ }
378
+ /**
379
+ * Removes (evicts) a member from a group, authorized by the _group's_ admin
380
+ * capability. Because this module owns `Party`, it can scrub the member's own
381
+ * membership record here even without the member's cap — but only the record for
382
+ * _this_ group, so the admin's reach into the member is scoped to "cancel my
383
+ * group's membership" and nothing else on the member is touchable.
384
+ */
385
+ export function removeMember(options: RemoveMemberOptions) {
386
+ const packageAddress = options.package ?? '@local-pkg/partyos';
387
+ const argumentsTypes = [
388
+ null,
389
+ null,
390
+ null
391
+ ] satisfies (string | null)[];
392
+ const parameterNames = ["group", "groupCap", "member"];
393
+ return (tx: Transaction) => tx.moveCall({
394
+ package: packageAddress,
395
+ module: 'party',
396
+ function: 'remove_member',
397
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
398
+ });
399
+ }
400
+ export interface NewIndividualKindOptions {
401
+ package?: string;
402
+ arguments?: [
403
+ ];
404
+ }
405
+ /** Creates a new individual party kind. */
406
+ export function newIndividualKind(options: NewIndividualKindOptions = {}) {
407
+ const packageAddress = options.package ?? '@local-pkg/partyos';
408
+ return (tx: Transaction) => tx.moveCall({
409
+ package: packageAddress,
410
+ module: 'party',
411
+ function: 'new_individual_kind',
412
+ });
413
+ }
414
+ export interface NewGroupKindOptions {
415
+ package?: string;
416
+ arguments?: [
417
+ ];
418
+ }
419
+ /** Creates a new group party kind with an empty member set. */
420
+ export function newGroupKind(options: NewGroupKindOptions = {}) {
421
+ const packageAddress = options.package ?? '@local-pkg/partyos';
422
+ return (tx: Transaction) => tx.moveCall({
423
+ package: packageAddress,
424
+ module: 'party',
425
+ function: 'new_group_kind',
426
+ });
427
+ }
428
+ export interface NameArguments {
429
+ self: RawTransactionArgument<string>;
430
+ }
431
+ export interface NameOptions {
432
+ package?: string;
433
+ arguments: NameArguments | [
434
+ self: RawTransactionArgument<string>
435
+ ];
436
+ }
437
+ /** Returns the human-readable name of this party. */
438
+ export function name(options: NameOptions) {
439
+ const packageAddress = options.package ?? '@local-pkg/partyos';
440
+ const argumentsTypes = [
441
+ null
442
+ ] satisfies (string | null)[];
443
+ const parameterNames = ["self"];
444
+ return (tx: Transaction) => tx.moveCall({
445
+ package: packageAddress,
446
+ module: 'party',
447
+ function: 'name',
448
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
449
+ });
450
+ }
451
+ export interface CreatedAtMsArguments {
452
+ self: RawTransactionArgument<string>;
453
+ }
454
+ export interface CreatedAtMsOptions {
455
+ package?: string;
456
+ arguments: CreatedAtMsArguments | [
457
+ self: RawTransactionArgument<string>
458
+ ];
459
+ }
460
+ /** Returns the Unix ms when this party was created. */
461
+ export function createdAtMs(options: CreatedAtMsOptions) {
462
+ const packageAddress = options.package ?? '@local-pkg/partyos';
463
+ const argumentsTypes = [
464
+ null
465
+ ] satisfies (string | null)[];
466
+ const parameterNames = ["self"];
467
+ return (tx: Transaction) => tx.moveCall({
468
+ package: packageAddress,
469
+ module: 'party',
470
+ function: 'created_at_ms',
471
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
472
+ });
473
+ }
474
+ export interface IsIndividualKindArguments {
475
+ self: RawTransactionArgument<string>;
476
+ }
477
+ export interface IsIndividualKindOptions {
478
+ package?: string;
479
+ arguments: IsIndividualKindArguments | [
480
+ self: RawTransactionArgument<string>
481
+ ];
482
+ }
483
+ /** Returns true if this party is an individual. */
484
+ export function isIndividualKind(options: IsIndividualKindOptions) {
485
+ const packageAddress = options.package ?? '@local-pkg/partyos';
486
+ const argumentsTypes = [
487
+ null
488
+ ] satisfies (string | null)[];
489
+ const parameterNames = ["self"];
490
+ return (tx: Transaction) => tx.moveCall({
491
+ package: packageAddress,
492
+ module: 'party',
493
+ function: 'is_individual_kind',
494
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
495
+ });
496
+ }
497
+ export interface IsGroupKindArguments {
498
+ self: RawTransactionArgument<string>;
499
+ }
500
+ export interface IsGroupKindOptions {
501
+ package?: string;
502
+ arguments: IsGroupKindArguments | [
503
+ self: RawTransactionArgument<string>
504
+ ];
505
+ }
506
+ /** Returns true if this party is a group. */
507
+ export function isGroupKind(options: IsGroupKindOptions) {
508
+ const packageAddress = options.package ?? '@local-pkg/partyos';
509
+ const argumentsTypes = [
510
+ null
511
+ ] satisfies (string | null)[];
512
+ const parameterNames = ["self"];
513
+ return (tx: Transaction) => tx.moveCall({
514
+ package: packageAddress,
515
+ module: 'party',
516
+ function: 'is_group_kind',
517
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
518
+ });
519
+ }
520
+ export interface GroupMembersArguments {
521
+ self: RawTransactionArgument<string>;
522
+ }
523
+ export interface GroupMembersOptions {
524
+ package?: string;
525
+ arguments: GroupMembersArguments | [
526
+ self: RawTransactionArgument<string>
527
+ ];
528
+ }
529
+ /** Returns a reference to the group members. Aborts if this party is not a group. */
530
+ export function groupMembers(options: GroupMembersOptions) {
531
+ const packageAddress = options.package ?? '@local-pkg/partyos';
532
+ const argumentsTypes = [
533
+ null
534
+ ] satisfies (string | null)[];
535
+ const parameterNames = ["self"];
536
+ return (tx: Transaction) => tx.moveCall({
537
+ package: packageAddress,
538
+ module: 'party',
539
+ function: 'group_members',
540
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
541
+ });
542
+ }
543
+ export interface IsMemberArguments {
544
+ member: RawTransactionArgument<string>;
545
+ groupId: RawTransactionArgument<string>;
546
+ }
547
+ export interface IsMemberOptions {
548
+ package?: string;
549
+ arguments: IsMemberArguments | [
550
+ member: RawTransactionArgument<string>,
551
+ groupId: RawTransactionArgument<string>
552
+ ];
553
+ }
554
+ /**
555
+ * Whether `member` currently holds a membership record for `group_id`. Reads the
556
+ * member side, so it needs only the member party (no group object) — the primitive
557
+ * extensions use for member-gated authorization.
558
+ */
559
+ export function isMember(options: IsMemberOptions) {
560
+ const packageAddress = options.package ?? '@local-pkg/partyos';
561
+ const argumentsTypes = [
562
+ null,
563
+ '0x2::object::ID'
564
+ ] satisfies (string | null)[];
565
+ const parameterNames = ["member", "groupId"];
566
+ return (tx: Transaction) => tx.moveCall({
567
+ package: packageAddress,
568
+ module: 'party',
569
+ function: 'is_member',
570
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
571
+ });
572
+ }
573
+ export interface HasPendingInviteArguments {
574
+ group: RawTransactionArgument<string>;
575
+ memberId: RawTransactionArgument<string>;
576
+ }
577
+ export interface HasPendingInviteOptions {
578
+ package?: string;
579
+ arguments: HasPendingInviteArguments | [
580
+ group: RawTransactionArgument<string>,
581
+ memberId: RawTransactionArgument<string>
582
+ ];
583
+ }
584
+ /** Whether the group has a pending invite outstanding for `member_id`. */
585
+ export function hasPendingInvite(options: HasPendingInviteOptions) {
586
+ const packageAddress = options.package ?? '@local-pkg/partyos';
587
+ const argumentsTypes = [
588
+ null,
589
+ '0x2::object::ID'
590
+ ] satisfies (string | null)[];
591
+ const parameterNames = ["group", "memberId"];
592
+ return (tx: Transaction) => tx.moveCall({
593
+ package: packageAddress,
594
+ module: 'party',
595
+ function: 'has_pending_invite',
596
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
597
+ });
598
+ }
599
+ export interface HasPendingMembershipArguments {
600
+ member: RawTransactionArgument<string>;
601
+ groupId: RawTransactionArgument<string>;
602
+ }
603
+ export interface HasPendingMembershipOptions {
604
+ package?: string;
605
+ arguments: HasPendingMembershipArguments | [
606
+ member: RawTransactionArgument<string>,
607
+ groupId: RawTransactionArgument<string>
608
+ ];
609
+ }
610
+ /**
611
+ * Whether an individual party has a pending membership invitation from a group.
612
+ * Reads the member-facing invitation index, so callers can discover invitations by
613
+ * enumerating only the member party's dynamic fields.
614
+ */
615
+ export function hasPendingMembership(options: HasPendingMembershipOptions) {
616
+ const packageAddress = options.package ?? '@local-pkg/partyos';
617
+ const argumentsTypes = [
618
+ null,
619
+ '0x2::object::ID'
620
+ ] satisfies (string | null)[];
621
+ const parameterNames = ["member", "groupId"];
622
+ return (tx: Transaction) => tx.moveCall({
623
+ package: packageAddress,
624
+ module: 'party',
625
+ function: 'has_pending_membership',
626
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
627
+ });
628
+ }
629
+ export interface PartyKindNameArguments {
630
+ self: TransactionArgument;
631
+ }
632
+ export interface PartyKindNameOptions {
633
+ package?: string;
634
+ arguments: PartyKindNameArguments | [
635
+ self: TransactionArgument
636
+ ];
637
+ }
638
+ /** Returns the human-readable name of the party kind. */
639
+ export function partyKindName(options: PartyKindNameOptions) {
640
+ const packageAddress = options.package ?? '@local-pkg/partyos';
641
+ const argumentsTypes = [
642
+ null
643
+ ] satisfies (string | null)[];
644
+ const parameterNames = ["self"];
645
+ return (tx: Transaction) => tx.moveCall({
646
+ package: packageAddress,
647
+ module: 'party',
648
+ function: 'party_kind_name',
649
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
650
+ });
651
+ }
652
+ export interface AuthorizeArguments {
653
+ self: RawTransactionArgument<string>;
654
+ cap: RawTransactionArgument<string>;
655
+ }
656
+ export interface AuthorizeOptions {
657
+ package?: string;
658
+ arguments: AuthorizeArguments | [
659
+ self: RawTransactionArgument<string>,
660
+ cap: RawTransactionArgument<string>
661
+ ];
662
+ }
663
+ /** Verifies that the admin capability matches this party. */
664
+ export function authorize(options: AuthorizeOptions) {
665
+ const packageAddress = options.package ?? '@local-pkg/partyos';
666
+ const argumentsTypes = [
667
+ null,
668
+ null
669
+ ] satisfies (string | null)[];
670
+ const parameterNames = ["self", "cap"];
671
+ return (tx: Transaction) => tx.moveCall({
672
+ package: packageAddress,
673
+ module: 'party',
674
+ function: 'authorize',
675
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
676
+ });
677
+ }
678
+ export interface PartyAdminCapPartyIdArguments {
679
+ cap: RawTransactionArgument<string>;
680
+ }
681
+ export interface PartyAdminCapPartyIdOptions {
682
+ package?: string;
683
+ arguments: PartyAdminCapPartyIdArguments | [
684
+ cap: RawTransactionArgument<string>
685
+ ];
686
+ }
687
+ /** Returns the ID of the party associated with the admin capability. */
688
+ export function partyAdminCapPartyId(options: PartyAdminCapPartyIdOptions) {
689
+ const packageAddress = options.package ?? '@local-pkg/partyos';
690
+ const argumentsTypes = [
691
+ null
692
+ ] satisfies (string | null)[];
693
+ const parameterNames = ["cap"];
694
+ return (tx: Transaction) => tx.moveCall({
695
+ package: packageAddress,
696
+ module: 'party',
697
+ function: 'party_admin_cap_party_id',
698
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
699
+ });
700
+ }
701
+ export interface UidArguments {
702
+ self: RawTransactionArgument<string>;
703
+ }
704
+ export interface UidOptions {
705
+ package?: string;
706
+ arguments: UidArguments | [
707
+ self: RawTransactionArgument<string>
708
+ ];
709
+ }
710
+ /** Returns a reference to the party's UID for reading dynamic fields. */
711
+ export function uid(options: UidOptions) {
712
+ const packageAddress = options.package ?? '@local-pkg/partyos';
713
+ const argumentsTypes = [
714
+ null
715
+ ] satisfies (string | null)[];
716
+ const parameterNames = ["self"];
717
+ return (tx: Transaction) => tx.moveCall({
718
+ package: packageAddress,
719
+ module: 'party',
720
+ function: 'uid',
721
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
722
+ });
723
+ }
724
+ export interface UidMutArguments {
725
+ self: RawTransactionArgument<string>;
726
+ cap: RawTransactionArgument<string>;
727
+ }
728
+ export interface UidMutOptions {
729
+ package?: string;
730
+ arguments: UidMutArguments | [
731
+ self: RawTransactionArgument<string>,
732
+ cap: RawTransactionArgument<string>
733
+ ];
734
+ }
735
+ /**
736
+ * Returns a mutable reference to the party's UID for dynamic field operations.
737
+ * Requires the admin capability.
738
+ */
739
+ export function uidMut(options: UidMutOptions) {
740
+ const packageAddress = options.package ?? '@local-pkg/partyos';
741
+ const argumentsTypes = [
742
+ null,
743
+ null
744
+ ] satisfies (string | null)[];
745
+ const parameterNames = ["self", "cap"];
746
+ return (tx: Transaction) => tx.moveCall({
747
+ package: packageAddress,
748
+ module: 'party',
749
+ function: 'uid_mut',
750
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
751
+ });
752
+ }
753
+ export interface AssertIsIndividualKindArguments {
754
+ self: RawTransactionArgument<string>;
755
+ }
756
+ export interface AssertIsIndividualKindOptions {
757
+ package?: string;
758
+ arguments: AssertIsIndividualKindArguments | [
759
+ self: RawTransactionArgument<string>
760
+ ];
761
+ }
762
+ /** Aborts if this party is not an individual. */
763
+ export function assertIsIndividualKind(options: AssertIsIndividualKindOptions) {
764
+ const packageAddress = options.package ?? '@local-pkg/partyos';
765
+ const argumentsTypes = [
766
+ null
767
+ ] satisfies (string | null)[];
768
+ const parameterNames = ["self"];
769
+ return (tx: Transaction) => tx.moveCall({
770
+ package: packageAddress,
771
+ module: 'party',
772
+ function: 'assert_is_individual_kind',
773
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
774
+ });
775
+ }
776
+ export interface AssertIsGroupKindArguments {
777
+ self: RawTransactionArgument<string>;
778
+ }
779
+ export interface AssertIsGroupKindOptions {
780
+ package?: string;
781
+ arguments: AssertIsGroupKindArguments | [
782
+ self: RawTransactionArgument<string>
783
+ ];
784
+ }
785
+ /** Aborts if this party is not a group. */
786
+ export function assertIsGroupKind(options: AssertIsGroupKindOptions) {
787
+ const packageAddress = options.package ?? '@local-pkg/partyos';
788
+ const argumentsTypes = [
789
+ null
790
+ ] satisfies (string | null)[];
791
+ const parameterNames = ["self"];
792
+ return (tx: Transaction) => tx.moveCall({
793
+ package: packageAddress,
794
+ module: 'party',
795
+ function: 'assert_is_group_kind',
796
+ arguments: normalizeMoveArguments(options.arguments, argumentsTypes, parameterNames),
797
+ });
798
+ }