@mysten/kiosk 0.9.10 → 0.9.12

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 (47) hide show
  1. package/CHANGELOG.md +43 -11
  2. package/dist/cjs/client/kiosk-client.js +1 -2
  3. package/dist/cjs/client/kiosk-client.js.map +1 -1
  4. package/dist/cjs/client/kiosk-transaction.js +58 -89
  5. package/dist/cjs/client/kiosk-transaction.js.map +1 -1
  6. package/dist/cjs/client/tp-transaction.js +31 -46
  7. package/dist/cjs/client/tp-transaction.js.map +1 -1
  8. package/dist/cjs/constants.js.map +1 -1
  9. package/dist/cjs/query/kiosk.js +2 -4
  10. package/dist/cjs/query/kiosk.js.map +2 -2
  11. package/dist/cjs/query/transfer-policy.js +3 -6
  12. package/dist/cjs/query/transfer-policy.js.map +1 -1
  13. package/dist/cjs/tx/kiosk.js.map +1 -1
  14. package/dist/cjs/tx/personal-kiosk.js.map +1 -1
  15. package/dist/cjs/tx/rules/attach.js.map +1 -1
  16. package/dist/cjs/tx/rules/resolve.js +2 -4
  17. package/dist/cjs/tx/rules/resolve.js.map +1 -1
  18. package/dist/cjs/tx/transfer-policy.js.map +1 -1
  19. package/dist/cjs/types/kiosk.js.map +1 -1
  20. package/dist/cjs/types/transfer-policy.js.map +1 -1
  21. package/dist/cjs/utils.js +3 -6
  22. package/dist/cjs/utils.js.map +1 -1
  23. package/dist/esm/client/kiosk-client.js +1 -2
  24. package/dist/esm/client/kiosk-client.js.map +1 -1
  25. package/dist/esm/client/kiosk-transaction.js +57 -88
  26. package/dist/esm/client/kiosk-transaction.js.map +1 -1
  27. package/dist/esm/client/tp-transaction.js +30 -45
  28. package/dist/esm/client/tp-transaction.js.map +1 -1
  29. package/dist/esm/constants.js.map +1 -1
  30. package/dist/esm/query/kiosk.js +2 -4
  31. package/dist/esm/query/kiosk.js.map +2 -2
  32. package/dist/esm/query/transfer-policy.js +3 -6
  33. package/dist/esm/query/transfer-policy.js.map +1 -1
  34. package/dist/esm/tx/kiosk.js.map +1 -1
  35. package/dist/esm/tx/personal-kiosk.js.map +1 -1
  36. package/dist/esm/tx/rules/attach.js.map +1 -1
  37. package/dist/esm/tx/rules/resolve.js +2 -4
  38. package/dist/esm/tx/rules/resolve.js.map +1 -1
  39. package/dist/esm/tx/transfer-policy.js.map +1 -1
  40. package/dist/esm/types/kiosk.js.map +1 -1
  41. package/dist/esm/types/transfer-policy.js.map +1 -1
  42. package/dist/esm/utils.js +3 -6
  43. package/dist/esm/utils.js.map +1 -1
  44. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  45. package/dist/tsconfig.tsbuildinfo +1 -1
  46. package/package.json +8 -8
  47. package/src/query/kiosk.ts +1 -1
@@ -1,17 +1,10 @@
1
- var __accessCheck = (obj, member, msg) => {
2
- if (!member.has(obj))
3
- throw TypeError("Cannot " + msg);
1
+ var __typeError = (msg) => {
2
+ throw TypeError(msg);
4
3
  };
5
- var __privateAdd = (obj, member, value) => {
6
- if (member.has(obj))
7
- throw TypeError("Cannot add the same private member more than once");
8
- member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
9
- };
10
- var __privateMethod = (obj, member, method) => {
11
- __accessCheck(obj, member, "access private method");
12
- return method;
13
- };
14
- var _validateInputs, validateInputs_fn, _setup, setup_fn;
4
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
5
+ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
6
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
7
+ var _TransferPolicyTransaction_instances, validateInputs_fn, setup_fn;
15
8
  import {
16
9
  attachFloorPriceRuleTx,
17
10
  attachKioskLockRuleTx,
@@ -32,16 +25,10 @@ class TransferPolicyTransaction {
32
25
  transaction = transactionBlock,
33
26
  cap
34
27
  }) {
35
- // Internal function that that the policy's Id + Cap + type have been set.
36
- __privateAdd(this, _validateInputs);
37
- /**
38
- * Setup the state of the TransferPolicyTransaction.
39
- */
40
- __privateAdd(this, _setup);
28
+ __privateAdd(this, _TransferPolicyTransaction_instances);
41
29
  this.kioskClient = kioskClient;
42
30
  this.transaction = transaction;
43
- if (cap)
44
- this.setCap(cap);
31
+ if (cap) this.setCap(cap);
45
32
  }
46
33
  /**
47
34
  * A function to create a new transfer policy.
@@ -63,8 +50,7 @@ class TransferPolicyTransaction {
63
50
  }) {
64
51
  if (!skipCheck) {
65
52
  const policies = await this.kioskClient.getTransferPolicies({ type });
66
- if (policies.length > 0)
67
- throw new Error("There's already transfer policy for this Type.");
53
+ if (policies.length > 0) throw new Error("There's already transfer policy for this Type.");
68
54
  }
69
55
  const cap = createTransferPolicy(this.transaction, type, publisher);
70
56
  this.transaction.transferObjects([cap], this.transaction.pure.address(address));
@@ -84,15 +70,14 @@ class TransferPolicyTransaction {
84
70
  }) {
85
71
  if (!skipCheck) {
86
72
  const policies = await this.kioskClient.getTransferPolicies({ type });
87
- if (policies.length > 0)
88
- throw new Error("There's already transfer policy for this Type.");
73
+ if (policies.length > 0) throw new Error("There's already transfer policy for this Type.");
89
74
  }
90
75
  const [policy, policyCap] = createTransferPolicyWithoutSharing(
91
76
  this.transaction,
92
77
  type,
93
78
  publisher
94
79
  );
95
- __privateMethod(this, _setup, setup_fn).call(this, policy, policyCap, type);
80
+ __privateMethod(this, _TransferPolicyTransaction_instances, setup_fn).call(this, policy, policyCap, type);
96
81
  return this;
97
82
  }
98
83
  /**
@@ -116,7 +101,7 @@ class TransferPolicyTransaction {
116
101
  * @param policyCapId The `TransferPolicyCap`
117
102
  */
118
103
  setCap({ policyId, policyCapId, type }) {
119
- return __privateMethod(this, _setup, setup_fn).call(this, policyId, policyCapId, type);
104
+ return __privateMethod(this, _TransferPolicyTransaction_instances, setup_fn).call(this, policyId, policyCapId, type);
120
105
  }
121
106
  /**
122
107
  * Withdraw from the transfer policy's profits.
@@ -124,7 +109,7 @@ class TransferPolicyTransaction {
124
109
  * @param amount (Optional) amount parameter. Will withdraw all profits if the amount is not specified.
125
110
  */
126
111
  withdraw(address, amount) {
127
- __privateMethod(this, _validateInputs, validateInputs_fn).call(this);
112
+ __privateMethod(this, _TransferPolicyTransaction_instances, validateInputs_fn).call(this);
128
113
  const coin = withdrawFromPolicy(
129
114
  this.transaction,
130
115
  this.type,
@@ -146,7 +131,7 @@ class TransferPolicyTransaction {
146
131
  * @param minAmount The minimum royalty amount per request in MIST.
147
132
  */
148
133
  addRoyaltyRule(percentageBps, minAmount) {
149
- __privateMethod(this, _validateInputs, validateInputs_fn).call(this);
134
+ __privateMethod(this, _TransferPolicyTransaction_instances, validateInputs_fn).call(this);
150
135
  attachRoyaltyRuleTx(
151
136
  this.transaction,
152
137
  this.type,
@@ -163,7 +148,7 @@ class TransferPolicyTransaction {
163
148
  * This Rule forces buyer to lock the item in the kiosk, preserving strong royalties.
164
149
  */
165
150
  addLockRule() {
166
- __privateMethod(this, _validateInputs, validateInputs_fn).call(this);
151
+ __privateMethod(this, _TransferPolicyTransaction_instances, validateInputs_fn).call(this);
167
152
  attachKioskLockRuleTx(
168
153
  this.transaction,
169
154
  this.type,
@@ -177,7 +162,7 @@ class TransferPolicyTransaction {
177
162
  * Attaches the Personal Kiosk Rule, making a purchase valid only for `SoulBound` kiosks.
178
163
  */
179
164
  addPersonalKioskRule() {
180
- __privateMethod(this, _validateInputs, validateInputs_fn).call(this);
165
+ __privateMethod(this, _TransferPolicyTransaction_instances, validateInputs_fn).call(this);
181
166
  attachPersonalKioskRuleTx(
182
167
  this.transaction,
183
168
  this.type,
@@ -192,7 +177,7 @@ class TransferPolicyTransaction {
192
177
  * @param minPrice The minimum price in MIST.
193
178
  */
194
179
  addFloorPriceRule(minPrice) {
195
- __privateMethod(this, _validateInputs, validateInputs_fn).call(this);
180
+ __privateMethod(this, _TransferPolicyTransaction_instances, validateInputs_fn).call(this);
196
181
  attachFloorPriceRuleTx(
197
182
  this.transaction,
198
183
  this.type,
@@ -209,7 +194,7 @@ class TransferPolicyTransaction {
209
194
  * @param configType The Config Type
210
195
  */
211
196
  removeRule({ ruleType, configType }) {
212
- __privateMethod(this, _validateInputs, validateInputs_fn).call(this);
197
+ __privateMethod(this, _TransferPolicyTransaction_instances, validateInputs_fn).call(this);
213
198
  removeTransferPolicyRule(
214
199
  this.transaction,
215
200
  this.type,
@@ -223,7 +208,7 @@ class TransferPolicyTransaction {
223
208
  * Removes the lock rule.
224
209
  */
225
210
  removeLockRule() {
226
- __privateMethod(this, _validateInputs, validateInputs_fn).call(this);
211
+ __privateMethod(this, _TransferPolicyTransaction_instances, validateInputs_fn).call(this);
227
212
  const packageId = this.kioskClient.getRulePackageId("kioskLockRulePackageId");
228
213
  removeTransferPolicyRule(
229
214
  this.transaction,
@@ -239,7 +224,7 @@ class TransferPolicyTransaction {
239
224
  * Removes the Royalty rule
240
225
  */
241
226
  removeRoyaltyRule() {
242
- __privateMethod(this, _validateInputs, validateInputs_fn).call(this);
227
+ __privateMethod(this, _TransferPolicyTransaction_instances, validateInputs_fn).call(this);
243
228
  const packageId = this.kioskClient.getRulePackageId("royaltyRulePackageId");
244
229
  removeTransferPolicyRule(
245
230
  this.transaction,
@@ -252,7 +237,7 @@ class TransferPolicyTransaction {
252
237
  return this;
253
238
  }
254
239
  removePersonalKioskRule() {
255
- __privateMethod(this, _validateInputs, validateInputs_fn).call(this);
240
+ __privateMethod(this, _TransferPolicyTransaction_instances, validateInputs_fn).call(this);
256
241
  const packageId = this.kioskClient.getRulePackageId("personalKioskRulePackageId");
257
242
  removeTransferPolicyRule(
258
243
  this.transaction,
@@ -265,7 +250,7 @@ class TransferPolicyTransaction {
265
250
  return this;
266
251
  }
267
252
  removeFloorPriceRule() {
268
- __privateMethod(this, _validateInputs, validateInputs_fn).call(this);
253
+ __privateMethod(this, _TransferPolicyTransaction_instances, validateInputs_fn).call(this);
269
254
  const packageId = this.kioskClient.getRulePackageId("floorPriceRulePackageId");
270
255
  removeTransferPolicyRule(
271
256
  this.transaction,
@@ -278,21 +263,19 @@ class TransferPolicyTransaction {
278
263
  return this;
279
264
  }
280
265
  getPolicy() {
281
- if (!this.policy)
282
- throw new Error("Policy not set.");
266
+ if (!this.policy) throw new Error("Policy not set.");
283
267
  return this.policy;
284
268
  }
285
269
  getPolicyCap() {
286
- if (!this.policyCap)
287
- throw new Error("Transfer Policy Cap not set.");
270
+ if (!this.policyCap) throw new Error("Transfer Policy Cap not set.");
288
271
  return this.policyCap;
289
272
  }
290
273
  }
291
- _validateInputs = new WeakSet();
274
+ _TransferPolicyTransaction_instances = new WeakSet();
275
+ // Internal function that that the policy's Id + Cap + type have been set.
292
276
  validateInputs_fn = function() {
293
277
  const genericErrorMessage = `Please use 'setCap()' to setup the TransferPolicy.`;
294
- if (!this.policy)
295
- throw new Error(`${genericErrorMessage} Missing: Transfer Policy Object.`);
278
+ if (!this.policy) throw new Error(`${genericErrorMessage} Missing: Transfer Policy Object.`);
296
279
  if (!this.policyCap)
297
280
  throw new Error(`${genericErrorMessage} Missing: TransferPolicyCap Object ID`);
298
281
  if (!this.type)
@@ -300,7 +283,9 @@ validateInputs_fn = function() {
300
283
  `${genericErrorMessage} Missing: Transfer Policy object type (e.g. {packageId}::item::Item)`
301
284
  );
302
285
  };
303
- _setup = new WeakSet();
286
+ /**
287
+ * Setup the state of the TransferPolicyTransaction.
288
+ */
304
289
  setup_fn = function(policyId, policyCap, type) {
305
290
  this.policy = policyId;
306
291
  this.policyCap = policyCap;
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/client/tp-transaction.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Transaction, TransactionObjectArgument } from '@mysten/sui/transactions';\n\nimport {\n\tattachFloorPriceRuleTx,\n\tattachKioskLockRuleTx,\n\tattachPersonalKioskRuleTx,\n\tattachRoyaltyRuleTx,\n} from '../tx/rules/attach.js';\nimport {\n\tcreateTransferPolicy,\n\tcreateTransferPolicyWithoutSharing,\n\tremoveTransferPolicyRule,\n\tshareTransferPolicy,\n\twithdrawFromPolicy,\n} from '../tx/transfer-policy.js';\nimport type { ObjectArgument, TransferPolicyCap } from '../types/index.js';\nimport type { KioskClient } from './kiosk-client.js';\n\nexport type TransferPolicyBaseParams = {\n\ttype: string;\n\tpublisher: ObjectArgument;\n\tskipCheck?: boolean;\n};\n\nexport type TransferPolicyTransactionParams = {\n\tkioskClient: KioskClient;\n\ttransaction: Transaction;\n\t/** @deprecated use transaction instead */\n\ttransactionBlock?: Transaction;\n\tcap?: TransferPolicyCap;\n};\n\nexport class TransferPolicyTransaction {\n\ttransaction: Transaction;\n\tkioskClient: KioskClient;\n\tpolicy?: ObjectArgument;\n\tpolicyCap?: ObjectArgument;\n\ttype?: string;\n\n\tconstructor({\n\t\tkioskClient,\n\t\ttransactionBlock,\n\t\ttransaction = transactionBlock!,\n\t\tcap,\n\t}: TransferPolicyTransactionParams) {\n\t\tthis.kioskClient = kioskClient;\n\t\tthis.transaction = transaction;\n\t\tif (cap) this.setCap(cap);\n\t}\n\n\t/**\n\t * A function to create a new transfer policy.\n\t * Checks if there's already an existing transfer policy to prevent\n\t * double transfer polciy mistakes.\n\t * There's an optional `skipCheck` flag that will just create the policy\n\t * without checking\n\t *\n\t * @param type The Type (`T`) for which we're creating the transfer policy.\n\t * @param publisher The Publisher Object Id.\n\t * @param address Address to save the `TransferPolicyCap` object to.\n\t * @param skipCheck (Optional) skip checking if a transfer policy already exists\n\t */\n\tasync createAndShare({\n\t\ttype,\n\t\tpublisher,\n\t\taddress,\n\t\tskipCheck,\n\t}: TransferPolicyBaseParams & {\n\t\taddress: string;\n\t}) {\n\t\tif (!skipCheck) {\n\t\t\tconst policies = await this.kioskClient.getTransferPolicies({ type });\n\t\t\tif (policies.length > 0) throw new Error(\"There's already transfer policy for this Type.\");\n\t\t}\n\t\tconst cap = createTransferPolicy(this.transaction, type, publisher);\n\t\tthis.transaction.transferObjects([cap], this.transaction.pure.address(address));\n\t}\n\n\t/**\n\t * A convenient function to create a Transfer Policy and attach some rules\n\t * before sharing it (so you can prepare it in a single PTB)\n\t * @param type The Type (`T`) for which we're creating the transfer policy.\n\t * @param publisher The Publisher Object Id.\n\t * @param address Address to save the `TransferPolicyCap` object to.\n\t * @param skipCheck (Optional) skip checking if a transfer policy already exists\n\t */\n\tasync create({\n\t\ttype,\n\t\tpublisher,\n\t\tskipCheck,\n\t}: TransferPolicyBaseParams): Promise<TransferPolicyTransaction> {\n\t\tif (!skipCheck) {\n\t\t\tconst policies = await this.kioskClient.getTransferPolicies({ type });\n\t\t\tif (policies.length > 0) throw new Error(\"There's already transfer policy for this Type.\");\n\t\t}\n\t\tconst [policy, policyCap] = createTransferPolicyWithoutSharing(\n\t\t\tthis.transaction,\n\t\t\ttype,\n\t\t\tpublisher,\n\t\t);\n\n\t\tthis.#setup(policy, policyCap, type); // sets the client's TP to the newly created one.\n\t\treturn this;\n\t}\n\n\t/**\n\t * This can be called after calling the `create` function to share the `TransferPolicy`,\n\t * and transfer the `TransferPolicyCap` to the specified address\n\t *\n\t * @param address The address to transfer the `TransferPolicyCap`\n\t */\n\tshareAndTransferCap(address: string) {\n\t\tif (!this.type || !this.policyCap || !this.policy)\n\t\t\tthrow new Error('This function can only be called after `transferPolicyManager.create`');\n\n\t\tshareTransferPolicy(this.transaction, this.type, this.policy as TransactionObjectArgument);\n\t\tthis.transaction.transferObjects(\n\t\t\t[this.policyCap as TransactionObjectArgument],\n\t\t\tthis.transaction.pure.address(address),\n\t\t);\n\t}\n\n\t/**\n\t * Setup the TransferPolicy by passing a `cap` returned from `kioskClient.getOwnedTransferPolicies` or\n\t * `kioskClient.getOwnedTransferPoliciesByType`.\n\t * @param policyCapId The `TransferPolicyCap`\n\t */\n\tsetCap({ policyId, policyCapId, type }: TransferPolicyCap) {\n\t\treturn this.#setup(policyId, policyCapId, type);\n\t}\n\n\t/**\n\t * Withdraw from the transfer policy's profits.\n\t * @param address Address to transfer the profits to.\n\t * @param amount (Optional) amount parameter. Will withdraw all profits if the amount is not specified.\n\t */\n\twithdraw(address: string, amount?: string | bigint) {\n\t\tthis.#validateInputs();\n\t\t// Withdraw coin for specified amount (or none)\n\t\tconst coin = withdrawFromPolicy(\n\t\t\tthis.transaction,\n\t\t\tthis.type!,\n\t\t\tthis.policy!,\n\t\t\tthis.policyCap!,\n\t\t\tamount,\n\t\t);\n\n\t\tthis.transaction.transferObjects([coin], this.transaction.pure.address(address));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds the Kiosk Royalty rule to the Transfer Policy.\n\t * You can pass the percentage, as well as a minimum amount.\n\t * The royalty that will be paid is the MAX(percentage, minAmount).\n\t * \tYou can pass 0 in either value if you want only percentage royalty, or a fixed amount fee.\n\t * \t(but you should define at least one of them for the rule to make sense).\n\t *\n\t * \t@param percentageBps The royalty percentage in basis points. Use `percentageToBasisPoints` helper to convert from percentage [0,100].\n\t * \t@param minAmount The minimum royalty amount per request in MIST.\n\t */\n\taddRoyaltyRule(\n\t\tpercentageBps: number | string, // this is in basis points.\n\t\tminAmount: number | string,\n\t) {\n\t\tthis.#validateInputs();\n\n\t\t// Hard-coding package Ids as these don't change.\n\t\t// Also, it's hard to keep versioning as with network wipes, mainnet\n\t\t// and testnet will conflict.\n\t\tattachRoyaltyRuleTx(\n\t\t\tthis.transaction,\n\t\t\tthis.type!,\n\t\t\tthis.policy!,\n\t\t\tthis.policyCap!,\n\t\t\tpercentageBps,\n\t\t\tminAmount,\n\t\t\tthis.kioskClient.getRulePackageId('royaltyRulePackageId'),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds the Kiosk Lock Rule to the Transfer Policy.\n\t * This Rule forces buyer to lock the item in the kiosk, preserving strong royalties.\n\t */\n\taddLockRule() {\n\t\tthis.#validateInputs();\n\n\t\tattachKioskLockRuleTx(\n\t\t\tthis.transaction,\n\t\t\tthis.type!,\n\t\t\tthis.policy!,\n\t\t\tthis.policyCap!,\n\t\t\tthis.kioskClient.getRulePackageId('kioskLockRulePackageId'),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Attaches the Personal Kiosk Rule, making a purchase valid only for `SoulBound` kiosks.\n\t */\n\taddPersonalKioskRule() {\n\t\tthis.#validateInputs();\n\n\t\tattachPersonalKioskRuleTx(\n\t\t\tthis.transaction,\n\t\t\tthis.type!,\n\t\t\tthis.policy!,\n\t\t\tthis.policyCap!,\n\t\t\tthis.kioskClient.getRulePackageId('personalKioskRulePackageId'),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * A function to add the floor price rule to a transfer policy.\n\t * @param minPrice The minimum price in MIST.\n\t */\n\taddFloorPriceRule(minPrice: string | bigint) {\n\t\tthis.#validateInputs();\n\n\t\tattachFloorPriceRuleTx(\n\t\t\tthis.transaction,\n\t\t\tthis.type!,\n\t\t\tthis.policy!,\n\t\t\tthis.policyCap!,\n\t\t\tminPrice,\n\t\t\tthis.kioskClient.getRulePackageId('floorPriceRulePackageId'),\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Generic helper to remove a rule, not from the SDK's base ruleset.\n\t * @param ruleType The Rule Type\n\t * @param configType The Config Type\n\t */\n\tremoveRule({ ruleType, configType }: { ruleType: string; configType: string }) {\n\t\tthis.#validateInputs();\n\n\t\tremoveTransferPolicyRule(\n\t\t\tthis.transaction,\n\t\t\tthis.type!,\n\t\t\truleType,\n\t\t\tconfigType,\n\t\t\tthis.policy!,\n\t\t\tthis.policyCap!,\n\t\t);\n\t}\n\n\t/**\n\t * Removes the lock rule.\n\t */\n\tremoveLockRule() {\n\t\tthis.#validateInputs();\n\n\t\tconst packageId = this.kioskClient.getRulePackageId('kioskLockRulePackageId');\n\n\t\tremoveTransferPolicyRule(\n\t\t\tthis.transaction,\n\t\t\tthis.type!,\n\t\t\t`${packageId}::kiosk_lock_rule::Rule`,\n\t\t\t`${packageId}::kiosk_lock_rule::Config`,\n\t\t\tthis.policy!,\n\t\t\tthis.policyCap!,\n\t\t);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Removes the Royalty rule\n\t */\n\tremoveRoyaltyRule() {\n\t\tthis.#validateInputs();\n\n\t\tconst packageId = this.kioskClient.getRulePackageId('royaltyRulePackageId');\n\n\t\tremoveTransferPolicyRule(\n\t\t\tthis.transaction,\n\t\t\tthis.type!,\n\t\t\t`${packageId}::royalty_rule::Rule`,\n\t\t\t`${packageId}::royalty_rule::Config`,\n\t\t\tthis.policy!,\n\t\t\tthis.policyCap!,\n\t\t);\n\t\treturn this;\n\t}\n\n\tremovePersonalKioskRule() {\n\t\tthis.#validateInputs();\n\n\t\tconst packageId = this.kioskClient.getRulePackageId('personalKioskRulePackageId');\n\n\t\tremoveTransferPolicyRule(\n\t\t\tthis.transaction,\n\t\t\tthis.type!,\n\t\t\t`${packageId}::personal_kiosk_rule::Rule`,\n\t\t\t`bool`,\n\t\t\tthis.policy!,\n\t\t\tthis.policyCap!,\n\t\t);\n\t\treturn this;\n\t}\n\n\tremoveFloorPriceRule() {\n\t\tthis.#validateInputs();\n\n\t\tconst packageId = this.kioskClient.getRulePackageId('floorPriceRulePackageId');\n\n\t\tremoveTransferPolicyRule(\n\t\t\tthis.transaction,\n\t\t\tthis.type!,\n\t\t\t`${packageId}::floor_price_rule::Rule`,\n\t\t\t`${packageId}::floor_price_rule::Config`,\n\t\t\tthis.policy!,\n\t\t\tthis.policyCap!,\n\t\t);\n\t\treturn this;\n\t}\n\n\tgetPolicy() {\n\t\tif (!this.policy) throw new Error('Policy not set.');\n\t\treturn this.policy;\n\t}\n\n\tgetPolicyCap() {\n\t\tif (!this.policyCap) throw new Error('Transfer Policy Cap not set.');\n\t\treturn this.policyCap;\n\t}\n\n\t// Internal function that that the policy's Id + Cap + type have been set.\n\t#validateInputs() {\n\t\tconst genericErrorMessage = `Please use 'setCap()' to setup the TransferPolicy.`;\n\t\tif (!this.policy) throw new Error(`${genericErrorMessage} Missing: Transfer Policy Object.`);\n\t\tif (!this.policyCap)\n\t\t\tthrow new Error(`${genericErrorMessage} Missing: TransferPolicyCap Object ID`);\n\t\tif (!this.type)\n\t\t\tthrow new Error(\n\t\t\t\t`${genericErrorMessage} Missing: Transfer Policy object type (e.g. {packageId}::item::Item)`,\n\t\t\t);\n\t}\n\n\t/**\n\t * Setup the state of the TransferPolicyTransaction.\n\t */\n\t#setup(policyId: ObjectArgument, policyCap: ObjectArgument, type: string) {\n\t\tthis.policy = policyId;\n\t\tthis.policyCap = policyCap;\n\t\tthis.type = type;\n\t\treturn this;\n\t}\n}\n"],
5
- "mappings": "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",
5
+ "mappings": ";;;;;;AAAA;AAKA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAkBA,MAAM,0BAA0B;AAAA,EAOtC,YAAY;AAAA,IACX;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd;AAAA,EACD,GAAoC;AAZ9B;AAaL,SAAK,cAAc;AACnB,SAAK,cAAc;AACnB,QAAI,IAAK,MAAK,OAAO,GAAG;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,MAAM,eAAe;AAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,GAEG;AACF,QAAI,CAAC,WAAW;AACf,YAAM,WAAW,MAAM,KAAK,YAAY,oBAAoB,EAAE,KAAK,CAAC;AACpE,UAAI,SAAS,SAAS,EAAG,OAAM,IAAI,MAAM,gDAAgD;AAAA,IAC1F;AACA,UAAM,MAAM,qBAAqB,KAAK,aAAa,MAAM,SAAS;AAClE,SAAK,YAAY,gBAAgB,CAAC,GAAG,GAAG,KAAK,YAAY,KAAK,QAAQ,OAAO,CAAC;AAAA,EAC/E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EACD,GAAiE;AAChE,QAAI,CAAC,WAAW;AACf,YAAM,WAAW,MAAM,KAAK,YAAY,oBAAoB,EAAE,KAAK,CAAC;AACpE,UAAI,SAAS,SAAS,EAAG,OAAM,IAAI,MAAM,gDAAgD;AAAA,IAC1F;AACA,UAAM,CAAC,QAAQ,SAAS,IAAI;AAAA,MAC3B,KAAK;AAAA,MACL;AAAA,MACA;AAAA,IACD;AAEA,0BAAK,gDAAL,WAAY,QAAQ,WAAW;AAC/B,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,oBAAoB,SAAiB;AACpC,QAAI,CAAC,KAAK,QAAQ,CAAC,KAAK,aAAa,CAAC,KAAK;AAC1C,YAAM,IAAI,MAAM,uEAAuE;AAExF,wBAAoB,KAAK,aAAa,KAAK,MAAM,KAAK,MAAmC;AACzF,SAAK,YAAY;AAAA,MAChB,CAAC,KAAK,SAAsC;AAAA,MAC5C,KAAK,YAAY,KAAK,QAAQ,OAAO;AAAA,IACtC;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,EAAE,UAAU,aAAa,KAAK,GAAsB;AAC1D,WAAO,sBAAK,gDAAL,WAAY,UAAU,aAAa;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAS,SAAiB,QAA0B;AACnD,0BAAK,yDAAL;AAEA,UAAM,OAAO;AAAA,MACZ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,IACD;AAEA,SAAK,YAAY,gBAAgB,CAAC,IAAI,GAAG,KAAK,YAAY,KAAK,QAAQ,OAAO,CAAC;AAE/E,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,eACC,eACA,WACC;AACD,0BAAK,yDAAL;AAKA;AAAA,MACC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA,KAAK,YAAY,iBAAiB,sBAAsB;AAAA,IACzD;AACA,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,cAAc;AACb,0BAAK,yDAAL;AAEA;AAAA,MACC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK,YAAY,iBAAiB,wBAAwB;AAAA,IAC3D;AACA,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAKA,uBAAuB;AACtB,0BAAK,yDAAL;AAEA;AAAA,MACC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK,YAAY,iBAAiB,4BAA4B;AAAA,IAC/D;AACA,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,kBAAkB,UAA2B;AAC5C,0BAAK,yDAAL;AAEA;AAAA,MACC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA,KAAK,YAAY,iBAAiB,yBAAyB;AAAA,IAC5D;AACA,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,WAAW,EAAE,UAAU,WAAW,GAA6C;AAC9E,0BAAK,yDAAL;AAEA;AAAA,MACC,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AAAA,EACD;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAiB;AAChB,0BAAK,yDAAL;AAEA,UAAM,YAAY,KAAK,YAAY,iBAAiB,wBAAwB;AAE5E;AAAA,MACC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,GAAG,SAAS;AAAA,MACZ,GAAG,SAAS;AAAA,MACZ,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AACA,WAAO;AAAA,EACR;AAAA;AAAA;AAAA;AAAA,EAKA,oBAAoB;AACnB,0BAAK,yDAAL;AAEA,UAAM,YAAY,KAAK,YAAY,iBAAiB,sBAAsB;AAE1E;AAAA,MACC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,GAAG,SAAS;AAAA,MACZ,GAAG,SAAS;AAAA,MACZ,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AACA,WAAO;AAAA,EACR;AAAA,EAEA,0BAA0B;AACzB,0BAAK,yDAAL;AAEA,UAAM,YAAY,KAAK,YAAY,iBAAiB,4BAA4B;AAEhF;AAAA,MACC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,GAAG,SAAS;AAAA,MACZ;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AACA,WAAO;AAAA,EACR;AAAA,EAEA,uBAAuB;AACtB,0BAAK,yDAAL;AAEA,UAAM,YAAY,KAAK,YAAY,iBAAiB,yBAAyB;AAE7E;AAAA,MACC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,GAAG,SAAS;AAAA,MACZ,GAAG,SAAS;AAAA,MACZ,KAAK;AAAA,MACL,KAAK;AAAA,IACN;AACA,WAAO;AAAA,EACR;AAAA,EAEA,YAAY;AACX,QAAI,CAAC,KAAK,OAAQ,OAAM,IAAI,MAAM,iBAAiB;AACnD,WAAO,KAAK;AAAA,EACb;AAAA,EAEA,eAAe;AACd,QAAI,CAAC,KAAK,UAAW,OAAM,IAAI,MAAM,8BAA8B;AACnE,WAAO,KAAK;AAAA,EACb;AAuBD;AAjUO;AAAA;AA6SN,oBAAe,WAAG;AACjB,QAAM,sBAAsB;AAC5B,MAAI,CAAC,KAAK,OAAQ,OAAM,IAAI,MAAM,GAAG,mBAAmB,mCAAmC;AAC3F,MAAI,CAAC,KAAK;AACT,UAAM,IAAI,MAAM,GAAG,mBAAmB,uCAAuC;AAC9E,MAAI,CAAC,KAAK;AACT,UAAM,IAAI;AAAA,MACT,GAAG,mBAAmB;AAAA,IACvB;AACF;AAAA;AAAA;AAAA;AAKA,WAAM,SAAC,UAA0B,WAA2B,MAAc;AACzE,OAAK,SAAS;AACd,OAAK,YAAY;AACjB,OAAK,OAAO;AACZ,SAAO;AACR;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/constants.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// eslint-disable-next-line import/no-cycle\nimport {\n\tresolveFloorPriceRule,\n\tresolveKioskLockRule,\n\tresolvePersonalKioskRule,\n\tresolveRoyaltyRule,\n} from './tx/rules//resolve.js';\nimport { Network } from './types/index.js';\nimport type { ObjectArgument, RuleResolvingParams } from './types/index.js';\n\n/**\n * The base rule package ids that can be extended\n */\nexport type BaseRulePackageIds = {\n\troyaltyRulePackageId?: string;\n\tkioskLockRulePackageId?: string;\n\tpersonalKioskRulePackageId?: string;\n\tfloorPriceRulePackageId?: string;\n};\n\n/**\n * The Transfer Policy rule.\n */\nexport type TransferPolicyRule = {\n\trule: string;\n\tpackageId: string;\n\tresolveRuleFunction: (rule: RuleResolvingParams) => ObjectArgument | void;\n\thasLockingRule?: boolean;\n};\n\nexport const ROYALTY_RULE_ADDRESS: Record<Network, string> = {\n\t[Network.TESTNET]: 'bd8fc1947cf119350184107a3087e2dc27efefa0dd82e25a1f699069fe81a585',\n\t[Network.MAINNET]: '0x434b5bd8f6a7b05fede0ff46c6e511d71ea326ed38056e3bcd681d2d7c2a7879',\n\t[Network.CUSTOM]: '',\n};\n\nexport const KIOSK_LOCK_RULE_ADDRESS: Record<Network, string> = {\n\t[Network.TESTNET]: 'bd8fc1947cf119350184107a3087e2dc27efefa0dd82e25a1f699069fe81a585',\n\t[Network.MAINNET]: '0x434b5bd8f6a7b05fede0ff46c6e511d71ea326ed38056e3bcd681d2d7c2a7879',\n\t[Network.CUSTOM]: '',\n};\n\nexport const FLOOR_PRICE_RULE_ADDRESS: Record<Network, string> = {\n\t[Network.TESTNET]: '0x06f6bdd3f2e2e759d8a4b9c252f379f7a05e72dfe4c0b9311cdac27b8eb791b1',\n\t[Network.MAINNET]: '0x34cc6762780f4f6f153c924c0680cfe2a1fb4601e7d33cc28a92297b62de1e0e',\n\t[Network.CUSTOM]: '',\n};\n\nexport const PERSONAL_KIOSK_RULE_ADDRESS: Record<Network, string> = {\n\t[Network.TESTNET]: '0x06f6bdd3f2e2e759d8a4b9c252f379f7a05e72dfe4c0b9311cdac27b8eb791b1',\n\t[Network.MAINNET]: '0x0cb4bcc0560340eb1a1b929cabe56b33fc6449820ec8c1980d69bb98b649b802',\n\t[Network.CUSTOM]: '',\n};\n\n/**\n * Constructs a list of rule resolvers based on the params.\n */\nexport function getBaseRules({\n\troyaltyRulePackageId,\n\tkioskLockRulePackageId,\n\tpersonalKioskRulePackageId,\n\tfloorPriceRulePackageId,\n}: BaseRulePackageIds): TransferPolicyRule[] {\n\tconst rules = [];\n\n\tif (royaltyRulePackageId) {\n\t\trules.push({\n\t\t\trule: `${royaltyRulePackageId}::royalty_rule::Rule`,\n\t\t\tpackageId: royaltyRulePackageId,\n\t\t\tresolveRuleFunction: resolveRoyaltyRule,\n\t\t});\n\t}\n\n\tif (kioskLockRulePackageId) {\n\t\trules.push({\n\t\t\trule: `${kioskLockRulePackageId}::kiosk_lock_rule::Rule`,\n\t\t\tpackageId: kioskLockRulePackageId,\n\t\t\tresolveRuleFunction: resolveKioskLockRule,\n\t\t\thasLockingRule: true,\n\t\t});\n\t}\n\n\tif (personalKioskRulePackageId) {\n\t\trules.push({\n\t\t\trule: `${personalKioskRulePackageId}::personal_kiosk_rule::Rule`,\n\t\t\tpackageId: personalKioskRulePackageId,\n\t\t\tresolveRuleFunction: resolvePersonalKioskRule,\n\t\t});\n\t}\n\n\tif (floorPriceRulePackageId) {\n\t\trules.push({\n\t\t\trule: `${floorPriceRulePackageId}::floor_price_rule::Rule`,\n\t\t\tpackageId: floorPriceRulePackageId,\n\t\t\tresolveRuleFunction: resolveFloorPriceRule,\n\t\t});\n\t}\n\n\treturn rules;\n}\n\n// A list of testnet's base rules.\nexport const testnetRules: TransferPolicyRule[] = getBaseRules({\n\troyaltyRulePackageId: ROYALTY_RULE_ADDRESS[Network.TESTNET],\n\tkioskLockRulePackageId: KIOSK_LOCK_RULE_ADDRESS[Network.TESTNET],\n\tpersonalKioskRulePackageId: PERSONAL_KIOSK_RULE_ADDRESS[Network.TESTNET],\n\tfloorPriceRulePackageId: FLOOR_PRICE_RULE_ADDRESS[Network.TESTNET],\n});\n\n// A list of mainnet's base rules.\nexport const mainnetRules: TransferPolicyRule[] = getBaseRules({\n\troyaltyRulePackageId: ROYALTY_RULE_ADDRESS[Network.MAINNET],\n\tkioskLockRulePackageId: KIOSK_LOCK_RULE_ADDRESS[Network.MAINNET],\n});\n\nexport const rules: TransferPolicyRule[] = [...testnetRules, ...mainnetRules];\n"],
5
- "mappings": "AAIA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,eAAe;AAuBjB,MAAM,uBAAgD;AAAA,EAC5D,CAAC,QAAQ,OAAO,GAAG;AAAA,EACnB,CAAC,QAAQ,OAAO,GAAG;AAAA,EACnB,CAAC,QAAQ,MAAM,GAAG;AACnB;AAEO,MAAM,0BAAmD;AAAA,EAC/D,CAAC,QAAQ,OAAO,GAAG;AAAA,EACnB,CAAC,QAAQ,OAAO,GAAG;AAAA,EACnB,CAAC,QAAQ,MAAM,GAAG;AACnB;AAEO,MAAM,2BAAoD;AAAA,EAChE,CAAC,QAAQ,OAAO,GAAG;AAAA,EACnB,CAAC,QAAQ,OAAO,GAAG;AAAA,EACnB,CAAC,QAAQ,MAAM,GAAG;AACnB;AAEO,MAAM,8BAAuD;AAAA,EACnE,CAAC,QAAQ,OAAO,GAAG;AAAA,EACnB,CAAC,QAAQ,OAAO,GAAG;AAAA,EACnB,CAAC,QAAQ,MAAM,GAAG;AACnB;AAKO,SAAS,aAAa;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAA6C;AAC5C,QAAMA,SAAQ,CAAC;AAEf,MAAI,sBAAsB;AACzB,IAAAA,OAAM,KAAK;AAAA,MACV,MAAM,GAAG;AAAA,MACT,WAAW;AAAA,MACX,qBAAqB;AAAA,IACtB,CAAC;AAAA,EACF;AAEA,MAAI,wBAAwB;AAC3B,IAAAA,OAAM,KAAK;AAAA,MACV,MAAM,GAAG;AAAA,MACT,WAAW;AAAA,MACX,qBAAqB;AAAA,MACrB,gBAAgB;AAAA,IACjB,CAAC;AAAA,EACF;AAEA,MAAI,4BAA4B;AAC/B,IAAAA,OAAM,KAAK;AAAA,MACV,MAAM,GAAG;AAAA,MACT,WAAW;AAAA,MACX,qBAAqB;AAAA,IACtB,CAAC;AAAA,EACF;AAEA,MAAI,yBAAyB;AAC5B,IAAAA,OAAM,KAAK;AAAA,MACV,MAAM,GAAG;AAAA,MACT,WAAW;AAAA,MACX,qBAAqB;AAAA,IACtB,CAAC;AAAA,EACF;AAEA,SAAOA;AACR;AAGO,MAAM,eAAqC,aAAa;AAAA,EAC9D,sBAAsB,qBAAqB,QAAQ,OAAO;AAAA,EAC1D,wBAAwB,wBAAwB,QAAQ,OAAO;AAAA,EAC/D,4BAA4B,4BAA4B,QAAQ,OAAO;AAAA,EACvE,yBAAyB,yBAAyB,QAAQ,OAAO;AAClE,CAAC;AAGM,MAAM,eAAqC,aAAa;AAAA,EAC9D,sBAAsB,qBAAqB,QAAQ,OAAO;AAAA,EAC1D,wBAAwB,wBAAwB,QAAQ,OAAO;AAChE,CAAC;AAEM,MAAM,QAA8B,CAAC,GAAG,cAAc,GAAG,YAAY;",
5
+ "mappings": "AAIA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,eAAe;AAuBjB,MAAM,uBAAgD;AAAA,EAC5D,CAAC,QAAQ,OAAO,GAAG;AAAA,EACnB,CAAC,QAAQ,OAAO,GAAG;AAAA,EACnB,CAAC,QAAQ,MAAM,GAAG;AACnB;AAEO,MAAM,0BAAmD;AAAA,EAC/D,CAAC,QAAQ,OAAO,GAAG;AAAA,EACnB,CAAC,QAAQ,OAAO,GAAG;AAAA,EACnB,CAAC,QAAQ,MAAM,GAAG;AACnB;AAEO,MAAM,2BAAoD;AAAA,EAChE,CAAC,QAAQ,OAAO,GAAG;AAAA,EACnB,CAAC,QAAQ,OAAO,GAAG;AAAA,EACnB,CAAC,QAAQ,MAAM,GAAG;AACnB;AAEO,MAAM,8BAAuD;AAAA,EACnE,CAAC,QAAQ,OAAO,GAAG;AAAA,EACnB,CAAC,QAAQ,OAAO,GAAG;AAAA,EACnB,CAAC,QAAQ,MAAM,GAAG;AACnB;AAKO,SAAS,aAAa;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAA6C;AAC5C,QAAMA,SAAQ,CAAC;AAEf,MAAI,sBAAsB;AACzB,IAAAA,OAAM,KAAK;AAAA,MACV,MAAM,GAAG,oBAAoB;AAAA,MAC7B,WAAW;AAAA,MACX,qBAAqB;AAAA,IACtB,CAAC;AAAA,EACF;AAEA,MAAI,wBAAwB;AAC3B,IAAAA,OAAM,KAAK;AAAA,MACV,MAAM,GAAG,sBAAsB;AAAA,MAC/B,WAAW;AAAA,MACX,qBAAqB;AAAA,MACrB,gBAAgB;AAAA,IACjB,CAAC;AAAA,EACF;AAEA,MAAI,4BAA4B;AAC/B,IAAAA,OAAM,KAAK;AAAA,MACV,MAAM,GAAG,0BAA0B;AAAA,MACnC,WAAW;AAAA,MACX,qBAAqB;AAAA,IACtB,CAAC;AAAA,EACF;AAEA,MAAI,yBAAyB;AAC5B,IAAAA,OAAM,KAAK;AAAA,MACV,MAAM,GAAG,uBAAuB;AAAA,MAChC,WAAW;AAAA,MACX,qBAAqB;AAAA,IACtB,CAAC;AAAA,EACF;AAEA,SAAOA;AACR;AAGO,MAAM,eAAqC,aAAa;AAAA,EAC9D,sBAAsB,qBAAqB,QAAQ,OAAO;AAAA,EAC1D,wBAAwB,wBAAwB,QAAQ,OAAO;AAAA,EAC/D,4BAA4B,4BAA4B,QAAQ,OAAO;AAAA,EACvE,yBAAyB,yBAAyB,QAAQ,OAAO;AAClE,CAAC;AAGM,MAAM,eAAqC,aAAa;AAAA,EAC9D,sBAAsB,qBAAqB,QAAQ,OAAO;AAAA,EAC1D,wBAAwB,wBAAwB,QAAQ,OAAO;AAChE,CAAC;AAEM,MAAM,QAA8B,CAAC,GAAG,cAAc,GAAG,YAAY;",
6
6
  "names": ["rules"]
7
7
  }
@@ -21,8 +21,7 @@ async function fetchKiosk(client, kioskId, pagination, options) {
21
21
  }) : Promise.resolve([]),
22
22
  options.withObjects ? getAllObjects(client, kioskData.itemIds, options.objectOptions || { showDisplay: true }) : Promise.resolve([])
23
23
  ]);
24
- if (options.withKioskFields)
25
- kioskData.kiosk = kiosk;
24
+ if (options.withKioskFields) kioskData.kiosk = kiosk;
26
25
  attachListingsAndPrices(kioskData, listings, listingObjects);
27
26
  attachLockedItems(kioskData, lockedItemIds);
28
27
  attachObjects(
@@ -92,8 +91,7 @@ async function fetchKioskExtension(client, kioskId, extensionType) {
92
91
  }
93
92
  }
94
93
  });
95
- if (!extension.data)
96
- return null;
94
+ if (!extension.data) return null;
97
95
  const fields = extension?.data?.content?.fields?.value?.fields;
98
96
  return {
99
97
  objectId: extension.data.objectId,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/query/kiosk.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n\tPaginationArguments,\n\tSuiClient,\n\tSuiObjectData,\n\tSuiObjectDataFilter,\n\tSuiObjectResponse,\n} from '@mysten/sui/client';\nimport { isValidSuiAddress } from '@mysten/sui/utils';\n\nimport type {\n\tFetchKioskOptions,\n\tKioskExtension,\n\tKioskListing,\n\tOwnedKiosks,\n\tPagedKioskData,\n} from '../types/index.js';\nimport { KIOSK_OWNER_CAP } from '../types/index.js';\nimport {\n\tattachListingsAndPrices,\n\tattachLockedItems,\n\tattachObjects,\n\textractKioskData,\n\tgetAllDynamicFields,\n\tgetAllObjects,\n\tgetKioskObject,\n} from '../utils.js';\n\nexport async function fetchKiosk(\n\tclient: SuiClient,\n\tkioskId: string,\n\tpagination: PaginationArguments<string>,\n\toptions: FetchKioskOptions,\n): Promise<PagedKioskData> {\n\t// TODO: Replace the `getAllDynamicFields` with a paginated\n\t// response, once we have better RPC support for\n\t// type filtering & batch fetching.\n\t// This can't work with pagination currently.\n\tconst data = await getAllDynamicFields(client, kioskId, pagination);\n\n\tconst listings: KioskListing[] = [];\n\tconst lockedItemIds: string[] = [];\n\n\t// extracted kiosk data.\n\tconst kioskData = extractKioskData(data, listings, lockedItemIds, kioskId);\n\n\t// split the fetching in two queries as we are most likely passing different options for each kind.\n\t// For items, we usually seek the Display.\n\t// For listings we usually seek the DF value (price) / exclusivity.\n\tconst [kiosk, listingObjects, items] = await Promise.all([\n\t\toptions.withKioskFields ? getKioskObject(client, kioskId) : Promise.resolve(undefined),\n\t\toptions.withListingPrices\n\t\t\t? getAllObjects(client, kioskData.listingIds, {\n\t\t\t\t\tshowContent: true,\n\t\t\t })\n\t\t\t: Promise.resolve([]),\n\t\toptions.withObjects\n\t\t\t? getAllObjects(client, kioskData.itemIds, options.objectOptions || { showDisplay: true })\n\t\t\t: Promise.resolve([]),\n\t]);\n\n\tif (options.withKioskFields) kioskData.kiosk = kiosk;\n\t// attach items listings. IF we have `options.withListingPrices === true`, it will also attach the prices.\n\tattachListingsAndPrices(kioskData, listings, listingObjects);\n\t// add `locked` status to items that are locked.\n\tattachLockedItems(kioskData, lockedItemIds);\n\n\t// Attach the objects for the queried items.\n\tattachObjects(\n\t\tkioskData,\n\t\titems.filter((x) => !!x.data).map((x) => x.data!),\n\t);\n\n\treturn {\n\t\tdata: kioskData,\n\t\tnextCursor: null,\n\t\thasNextPage: false,\n\t};\n}\n\n/**\n * A function to fetch all the user's kiosk Caps\n * And a list of the kiosk address ids.\n * Returns a list of `kioskOwnerCapIds` and `kioskIds`.\n * Extra options allow pagination.\n */\nexport async function getOwnedKiosks(\n\tclient: SuiClient,\n\taddress: string,\n\toptions?: {\n\t\tpagination?: PaginationArguments<string>;\n\t\tpersonalKioskType: string;\n\t},\n): Promise<OwnedKiosks> {\n\tif (!isValidSuiAddress(address))\n\t\treturn {\n\t\t\tnextCursor: null,\n\t\t\thasNextPage: false,\n\t\t\tkioskOwnerCaps: [],\n\t\t\tkioskIds: [],\n\t\t};\n\n\tconst filter: SuiObjectDataFilter = {\n\t\tMatchAny: [\n\t\t\t{\n\t\t\t\tStructType: KIOSK_OWNER_CAP,\n\t\t\t},\n\t\t],\n\t};\n\n\tif (options?.personalKioskType) {\n\t\tfilter.MatchAny.push({\n\t\t\tStructType: options.personalKioskType,\n\t\t});\n\t}\n\n\t// fetch owned kiosk caps, paginated.\n\tconst { data, hasNextPage, nextCursor } = await client.getOwnedObjects({\n\t\towner: address,\n\t\tfilter,\n\t\toptions: {\n\t\t\tshowContent: true,\n\t\t\tshowType: true,\n\t\t},\n\t\t...(options?.pagination || {}),\n\t});\n\n\t// get kioskIds from the OwnerCaps.\n\tconst kioskIdList = data?.map((x: SuiObjectResponse) => {\n\t\tconst fields = x.data?.content?.dataType === 'moveObject' ? x.data.content.fields : null;\n\t\t// @ts-ignore-next-line TODO: should i remove ts ignore here?\n\t\treturn (fields?.cap ? fields?.cap?.fields?.for : fields?.for) as string;\n\t\t// return (fields as { for: string })?.for;\n\t});\n\n\t// clean up data that might have an error in them.\n\t// only return valid objects.\n\tconst filteredData = data.filter((x) => 'data' in x).map((x) => x.data) as SuiObjectData[];\n\n\treturn {\n\t\tnextCursor,\n\t\thasNextPage,\n\t\tkioskOwnerCaps: filteredData.map((x, idx) => ({\n\t\t\tisPersonal: x.type !== KIOSK_OWNER_CAP,\n\t\t\tdigest: x.digest,\n\t\t\tversion: x.version,\n\t\t\tobjectId: x.objectId,\n\t\t\tkioskId: kioskIdList[idx],\n\t\t})),\n\t\tkioskIds: kioskIdList,\n\t};\n}\n\n// Get a kiosk extension data for a given kioskId and extensionType.\nexport async function fetchKioskExtension(\n\tclient: SuiClient,\n\tkioskId: string,\n\textensionType: string,\n): Promise<KioskExtension | null> {\n\tconst extension = await client.getDynamicFieldObject({\n\t\tparentId: kioskId,\n\t\tname: {\n\t\t\ttype: `0x2::kiosk_extension::ExtensionKey<${extensionType}>`,\n\t\t\tvalue: {\n\t\t\t\tdummy_field: false,\n\t\t\t},\n\t\t},\n\t});\n\n\tif (!extension.data) return null;\n\n\tconst fields = (extension?.data?.content as { fields: { [k: string]: any } })?.fields?.value\n\t\t?.fields;\n\n\treturn {\n\t\tobjectId: extension.data.objectId,\n\t\ttype: extensionType,\n\t\tisEnabled: fields?.is_enabled,\n\t\tpermissions: fields?.permissions,\n\t\tstorageId: fields?.storage?.fields?.id?.id,\n\t\tstorageSize: fields?.storage?.fields?.size,\n\t};\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n\tPaginationArguments,\n\tSuiClient,\n\tSuiObjectData,\n\tSuiObjectDataFilter,\n\tSuiObjectResponse,\n} from '@mysten/sui/client';\nimport { isValidSuiAddress } from '@mysten/sui/utils';\n\nimport type {\n\tFetchKioskOptions,\n\tKioskExtension,\n\tKioskListing,\n\tOwnedKiosks,\n\tPagedKioskData,\n} from '../types/index.js';\nimport { KIOSK_OWNER_CAP } from '../types/index.js';\nimport {\n\tattachListingsAndPrices,\n\tattachLockedItems,\n\tattachObjects,\n\textractKioskData,\n\tgetAllDynamicFields,\n\tgetAllObjects,\n\tgetKioskObject,\n} from '../utils.js';\n\nexport async function fetchKiosk(\n\tclient: SuiClient,\n\tkioskId: string,\n\tpagination: PaginationArguments<string>,\n\toptions: FetchKioskOptions,\n): Promise<PagedKioskData> {\n\t// TODO: Replace the `getAllDynamicFields` with a paginated\n\t// response, once we have better RPC support for\n\t// type filtering & batch fetching.\n\t// This can't work with pagination currently.\n\tconst data = await getAllDynamicFields(client, kioskId, pagination);\n\n\tconst listings: KioskListing[] = [];\n\tconst lockedItemIds: string[] = [];\n\n\t// extracted kiosk data.\n\tconst kioskData = extractKioskData(data, listings, lockedItemIds, kioskId);\n\n\t// split the fetching in two queries as we are most likely passing different options for each kind.\n\t// For items, we usually seek the Display.\n\t// For listings we usually seek the DF value (price) / exclusivity.\n\tconst [kiosk, listingObjects, items] = await Promise.all([\n\t\toptions.withKioskFields ? getKioskObject(client, kioskId) : Promise.resolve(undefined),\n\t\toptions.withListingPrices\n\t\t\t? getAllObjects(client, kioskData.listingIds, {\n\t\t\t\t\tshowContent: true,\n\t\t\t\t})\n\t\t\t: Promise.resolve([]),\n\t\toptions.withObjects\n\t\t\t? getAllObjects(client, kioskData.itemIds, options.objectOptions || { showDisplay: true })\n\t\t\t: Promise.resolve([]),\n\t]);\n\n\tif (options.withKioskFields) kioskData.kiosk = kiosk;\n\t// attach items listings. IF we have `options.withListingPrices === true`, it will also attach the prices.\n\tattachListingsAndPrices(kioskData, listings, listingObjects);\n\t// add `locked` status to items that are locked.\n\tattachLockedItems(kioskData, lockedItemIds);\n\n\t// Attach the objects for the queried items.\n\tattachObjects(\n\t\tkioskData,\n\t\titems.filter((x) => !!x.data).map((x) => x.data!),\n\t);\n\n\treturn {\n\t\tdata: kioskData,\n\t\tnextCursor: null,\n\t\thasNextPage: false,\n\t};\n}\n\n/**\n * A function to fetch all the user's kiosk Caps\n * And a list of the kiosk address ids.\n * Returns a list of `kioskOwnerCapIds` and `kioskIds`.\n * Extra options allow pagination.\n */\nexport async function getOwnedKiosks(\n\tclient: SuiClient,\n\taddress: string,\n\toptions?: {\n\t\tpagination?: PaginationArguments<string>;\n\t\tpersonalKioskType: string;\n\t},\n): Promise<OwnedKiosks> {\n\tif (!isValidSuiAddress(address))\n\t\treturn {\n\t\t\tnextCursor: null,\n\t\t\thasNextPage: false,\n\t\t\tkioskOwnerCaps: [],\n\t\t\tkioskIds: [],\n\t\t};\n\n\tconst filter: SuiObjectDataFilter = {\n\t\tMatchAny: [\n\t\t\t{\n\t\t\t\tStructType: KIOSK_OWNER_CAP,\n\t\t\t},\n\t\t],\n\t};\n\n\tif (options?.personalKioskType) {\n\t\tfilter.MatchAny.push({\n\t\t\tStructType: options.personalKioskType,\n\t\t});\n\t}\n\n\t// fetch owned kiosk caps, paginated.\n\tconst { data, hasNextPage, nextCursor } = await client.getOwnedObjects({\n\t\towner: address,\n\t\tfilter,\n\t\toptions: {\n\t\t\tshowContent: true,\n\t\t\tshowType: true,\n\t\t},\n\t\t...(options?.pagination || {}),\n\t});\n\n\t// get kioskIds from the OwnerCaps.\n\tconst kioskIdList = data?.map((x: SuiObjectResponse) => {\n\t\tconst fields = x.data?.content?.dataType === 'moveObject' ? x.data.content.fields : null;\n\t\t// @ts-ignore-next-line TODO: should i remove ts ignore here?\n\t\treturn (fields?.cap ? fields?.cap?.fields?.for : fields?.for) as string;\n\t\t// return (fields as { for: string })?.for;\n\t});\n\n\t// clean up data that might have an error in them.\n\t// only return valid objects.\n\tconst filteredData = data.filter((x) => 'data' in x).map((x) => x.data) as SuiObjectData[];\n\n\treturn {\n\t\tnextCursor,\n\t\thasNextPage,\n\t\tkioskOwnerCaps: filteredData.map((x, idx) => ({\n\t\t\tisPersonal: x.type !== KIOSK_OWNER_CAP,\n\t\t\tdigest: x.digest,\n\t\t\tversion: x.version,\n\t\t\tobjectId: x.objectId,\n\t\t\tkioskId: kioskIdList[idx],\n\t\t})),\n\t\tkioskIds: kioskIdList,\n\t};\n}\n\n// Get a kiosk extension data for a given kioskId and extensionType.\nexport async function fetchKioskExtension(\n\tclient: SuiClient,\n\tkioskId: string,\n\textensionType: string,\n): Promise<KioskExtension | null> {\n\tconst extension = await client.getDynamicFieldObject({\n\t\tparentId: kioskId,\n\t\tname: {\n\t\t\ttype: `0x2::kiosk_extension::ExtensionKey<${extensionType}>`,\n\t\t\tvalue: {\n\t\t\t\tdummy_field: false,\n\t\t\t},\n\t\t},\n\t});\n\n\tif (!extension.data) return null;\n\n\tconst fields = (extension?.data?.content as { fields: { [k: string]: any } })?.fields?.value\n\t\t?.fields;\n\n\treturn {\n\t\tobjectId: extension.data.objectId,\n\t\ttype: extensionType,\n\t\tisEnabled: fields?.is_enabled,\n\t\tpermissions: fields?.permissions,\n\t\tstorageId: fields?.storage?.fields?.id?.id,\n\t\tstorageSize: fields?.storage?.fields?.size,\n\t};\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -33,8 +33,7 @@ async function queryTransferPolicy(client, type) {
33
33
  });
34
34
  }
35
35
  async function queryTransferPolicyCapsByType(client, address, type) {
36
- if (!isValidSuiAddress(address))
37
- return [];
36
+ if (!isValidSuiAddress(address)) return [];
38
37
  const filter = {
39
38
  MatchAll: [
40
39
  {
@@ -50,8 +49,7 @@ async function queryTransferPolicyCapsByType(client, address, type) {
50
49
  return data.map((item) => parseTransferPolicyCapObject(item)).filter((item) => !!item);
51
50
  }
52
51
  async function queryOwnedTransferPolicies(client, address) {
53
- if (!isValidSuiAddress(address))
54
- return;
52
+ if (!isValidSuiAddress(address)) return;
55
53
  const filter = {
56
54
  MatchAll: [
57
55
  {
@@ -66,8 +64,7 @@ async function queryOwnedTransferPolicies(client, address) {
66
64
  const policies = [];
67
65
  for (const item of data) {
68
66
  const data2 = parseTransferPolicyCapObject(item);
69
- if (data2)
70
- policies.push(data2);
67
+ if (data2) policies.push(data2);
71
68
  }
72
69
  return policies;
73
70
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/query/transfer-policy.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui/client';\nimport { fromB64, isValidSuiAddress } from '@mysten/sui/utils';\n\nimport '../bcs.js';\n\nimport { TransferPolicyType } from '../bcs.js';\nimport type { TransferPolicy, TransferPolicyCap } from '../types/index.js';\nimport {\n\tTRANSFER_POLICY_CAP_TYPE,\n\tTRANSFER_POLICY_CREATED_EVENT,\n\tTRANSFER_POLICY_TYPE,\n} from '../types/index.js';\nimport { getAllOwnedObjects, parseTransferPolicyCapObject } from '../utils.js';\n\n/**\n * Searches the `TransferPolicy`-s for the given type. The seach is performed via\n * the `TransferPolicyCreated` event. The policy can either be owned or shared,\n * and the caller needs to filter the results accordingly (ie single owner can not\n * be accessed by anyone but the owner).\n *\n * @param provider\n * @param type\n */\nexport async function queryTransferPolicy(\n\tclient: SuiClient,\n\ttype: string,\n): Promise<TransferPolicy[]> {\n\t// console.log('event type: %s', `${TRANSFER_POLICY_CREATED_EVENT}<${type}>`);\n\tconst { data } = await client.queryEvents({\n\t\tquery: {\n\t\t\tMoveEventType: `${TRANSFER_POLICY_CREATED_EVENT}<${type}>`,\n\t\t},\n\t});\n\n\tconst search = data.map((event) => event.parsedJson as { id: string });\n\tconst policies = await client.multiGetObjects({\n\t\tids: search.map((policy) => policy.id),\n\t\toptions: { showBcs: true, showOwner: true },\n\t});\n\n\treturn policies\n\t\t.filter((policy) => !!policy && 'data' in policy)\n\t\t.map(({ data: policy }) => {\n\t\t\t// should never happen; policies are objects and fetched via an event.\n\t\t\t// policies are filtered for null and undefined above.\n\t\t\tif (!policy || !policy.bcs || !('bcsBytes' in policy.bcs)) {\n\t\t\t\tthrow new Error(`Invalid policy: ${policy?.objectId}, expected object, got package`);\n\t\t\t}\n\n\t\t\tconst parsed = TransferPolicyType.parse(fromB64(policy.bcs.bcsBytes));\n\n\t\t\treturn {\n\t\t\t\tid: policy?.objectId,\n\t\t\t\ttype: `${TRANSFER_POLICY_TYPE}<${type}>`,\n\t\t\t\towner: policy?.owner!,\n\t\t\t\trules: parsed.rules,\n\t\t\t\tbalance: parsed.balance,\n\t\t\t} as TransferPolicy;\n\t\t});\n}\n\n/**\n * A function to fetch all the user's kiosk Caps\n * And a list of the kiosk address ids.\n * Returns a list of `kioskOwnerCapIds` and `kioskIds`.\n * Extra options allow pagination.\n * @returns TransferPolicyCap Object ID | undefined if not found.\n */\nexport async function queryTransferPolicyCapsByType(\n\tclient: SuiClient,\n\taddress: string,\n\ttype: string,\n): Promise<TransferPolicyCap[]> {\n\tif (!isValidSuiAddress(address)) return [];\n\n\tconst filter = {\n\t\tMatchAll: [\n\t\t\t{\n\t\t\t\tStructType: `${TRANSFER_POLICY_CAP_TYPE}<${type}>`,\n\t\t\t},\n\t\t],\n\t};\n\n\t// fetch owned kiosk caps, paginated.\n\tconst data = await getAllOwnedObjects({\n\t\tclient,\n\t\tfilter,\n\t\towner: address,\n\t});\n\n\treturn data\n\t\t.map((item) => parseTransferPolicyCapObject(item))\n\t\t.filter((item) => !!item) as TransferPolicyCap[];\n}\n\n/**\n * A function to fetch all the user's kiosk Caps\n * And a list of the kiosk address ids.\n * Returns a list of `kioskOwnerCapIds` and `kioskIds`.\n * Extra options allow pagination.\n * @returns TransferPolicyCap Object ID | undefined if not found.\n */\nexport async function queryOwnedTransferPolicies(\n\tclient: SuiClient,\n\taddress: string,\n): Promise<TransferPolicyCap[] | undefined> {\n\tif (!isValidSuiAddress(address)) return;\n\n\tconst filter = {\n\t\tMatchAll: [\n\t\t\t{\n\t\t\t\tMoveModule: {\n\t\t\t\t\tmodule: 'transfer_policy',\n\t\t\t\t\tpackage: '0x2',\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t};\n\n\t// fetch all owned kiosk caps, paginated.\n\tconst data = await getAllOwnedObjects({ client, owner: address, filter });\n\n\tconst policies: TransferPolicyCap[] = [];\n\n\tfor (const item of data) {\n\t\tconst data = parseTransferPolicyCapObject(item);\n\t\tif (data) policies.push(data);\n\t}\n\n\treturn policies;\n}\n"],
5
- "mappings": "AAIA,SAAS,SAAS,yBAAyB;AAE3C,OAAO;AAEP,SAAS,0BAA0B;AAEnC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,oBAAoB,oCAAoC;AAWjE,eAAsB,oBACrB,QACA,MAC4B;AAE5B,QAAM,EAAE,KAAK,IAAI,MAAM,OAAO,YAAY;AAAA,IACzC,OAAO;AAAA,MACN,eAAe,GAAG,iCAAiC;AAAA,IACpD;AAAA,EACD,CAAC;AAED,QAAM,SAAS,KAAK,IAAI,CAAC,UAAU,MAAM,UAA4B;AACrE,QAAM,WAAW,MAAM,OAAO,gBAAgB;AAAA,IAC7C,KAAK,OAAO,IAAI,CAAC,WAAW,OAAO,EAAE;AAAA,IACrC,SAAS,EAAE,SAAS,MAAM,WAAW,KAAK;AAAA,EAC3C,CAAC;AAED,SAAO,SACL,OAAO,CAAC,WAAW,CAAC,CAAC,UAAU,UAAU,MAAM,EAC/C,IAAI,CAAC,EAAE,MAAM,OAAO,MAAM;AAG1B,QAAI,CAAC,UAAU,CAAC,OAAO,OAAO,EAAE,cAAc,OAAO,MAAM;AAC1D,YAAM,IAAI,MAAM,mBAAmB,QAAQ,wCAAwC;AAAA,IACpF;AAEA,UAAM,SAAS,mBAAmB,MAAM,QAAQ,OAAO,IAAI,QAAQ,CAAC;AAEpE,WAAO;AAAA,MACN,IAAI,QAAQ;AAAA,MACZ,MAAM,GAAG,wBAAwB;AAAA,MACjC,OAAO,QAAQ;AAAA,MACf,OAAO,OAAO;AAAA,MACd,SAAS,OAAO;AAAA,IACjB;AAAA,EACD,CAAC;AACH;AASA,eAAsB,8BACrB,QACA,SACA,MAC+B;AAC/B,MAAI,CAAC,kBAAkB,OAAO;AAAG,WAAO,CAAC;AAEzC,QAAM,SAAS;AAAA,IACd,UAAU;AAAA,MACT;AAAA,QACC,YAAY,GAAG,4BAA4B;AAAA,MAC5C;AAAA,IACD;AAAA,EACD;AAGA,QAAM,OAAO,MAAM,mBAAmB;AAAA,IACrC;AAAA,IACA;AAAA,IACA,OAAO;AAAA,EACR,CAAC;AAED,SAAO,KACL,IAAI,CAAC,SAAS,6BAA6B,IAAI,CAAC,EAChD,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI;AAC1B;AASA,eAAsB,2BACrB,QACA,SAC2C;AAC3C,MAAI,CAAC,kBAAkB,OAAO;AAAG;AAEjC,QAAM,SAAS;AAAA,IACd,UAAU;AAAA,MACT;AAAA,QACC,YAAY;AAAA,UACX,QAAQ;AAAA,UACR,SAAS;AAAA,QACV;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAGA,QAAM,OAAO,MAAM,mBAAmB,EAAE,QAAQ,OAAO,SAAS,OAAO,CAAC;AAExE,QAAM,WAAgC,CAAC;AAEvC,aAAW,QAAQ,MAAM;AACxB,UAAMA,QAAO,6BAA6B,IAAI;AAC9C,QAAIA;AAAM,eAAS,KAAKA,KAAI;AAAA,EAC7B;AAEA,SAAO;AACR;",
5
+ "mappings": "AAIA,SAAS,SAAS,yBAAyB;AAE3C,OAAO;AAEP,SAAS,0BAA0B;AAEnC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP,SAAS,oBAAoB,oCAAoC;AAWjE,eAAsB,oBACrB,QACA,MAC4B;AAE5B,QAAM,EAAE,KAAK,IAAI,MAAM,OAAO,YAAY;AAAA,IACzC,OAAO;AAAA,MACN,eAAe,GAAG,6BAA6B,IAAI,IAAI;AAAA,IACxD;AAAA,EACD,CAAC;AAED,QAAM,SAAS,KAAK,IAAI,CAAC,UAAU,MAAM,UAA4B;AACrE,QAAM,WAAW,MAAM,OAAO,gBAAgB;AAAA,IAC7C,KAAK,OAAO,IAAI,CAAC,WAAW,OAAO,EAAE;AAAA,IACrC,SAAS,EAAE,SAAS,MAAM,WAAW,KAAK;AAAA,EAC3C,CAAC;AAED,SAAO,SACL,OAAO,CAAC,WAAW,CAAC,CAAC,UAAU,UAAU,MAAM,EAC/C,IAAI,CAAC,EAAE,MAAM,OAAO,MAAM;AAG1B,QAAI,CAAC,UAAU,CAAC,OAAO,OAAO,EAAE,cAAc,OAAO,MAAM;AAC1D,YAAM,IAAI,MAAM,mBAAmB,QAAQ,QAAQ,gCAAgC;AAAA,IACpF;AAEA,UAAM,SAAS,mBAAmB,MAAM,QAAQ,OAAO,IAAI,QAAQ,CAAC;AAEpE,WAAO;AAAA,MACN,IAAI,QAAQ;AAAA,MACZ,MAAM,GAAG,oBAAoB,IAAI,IAAI;AAAA,MACrC,OAAO,QAAQ;AAAA,MACf,OAAO,OAAO;AAAA,MACd,SAAS,OAAO;AAAA,IACjB;AAAA,EACD,CAAC;AACH;AASA,eAAsB,8BACrB,QACA,SACA,MAC+B;AAC/B,MAAI,CAAC,kBAAkB,OAAO,EAAG,QAAO,CAAC;AAEzC,QAAM,SAAS;AAAA,IACd,UAAU;AAAA,MACT;AAAA,QACC,YAAY,GAAG,wBAAwB,IAAI,IAAI;AAAA,MAChD;AAAA,IACD;AAAA,EACD;AAGA,QAAM,OAAO,MAAM,mBAAmB;AAAA,IACrC;AAAA,IACA;AAAA,IACA,OAAO;AAAA,EACR,CAAC;AAED,SAAO,KACL,IAAI,CAAC,SAAS,6BAA6B,IAAI,CAAC,EAChD,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI;AAC1B;AASA,eAAsB,2BACrB,QACA,SAC2C;AAC3C,MAAI,CAAC,kBAAkB,OAAO,EAAG;AAEjC,QAAM,SAAS;AAAA,IACd,UAAU;AAAA,MACT;AAAA,QACC,YAAY;AAAA,UACX,QAAQ;AAAA,UACR,SAAS;AAAA,QACV;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAGA,QAAM,OAAO,MAAM,mBAAmB,EAAE,QAAQ,OAAO,SAAS,OAAO,CAAC;AAExE,QAAM,WAAgC,CAAC;AAEvC,aAAW,QAAQ,MAAM;AACxB,UAAMA,QAAO,6BAA6B,IAAI;AAC9C,QAAIA,MAAM,UAAS,KAAKA,KAAI;AAAA,EAC7B;AAEA,SAAO;AACR;",
6
6
  "names": ["data"]
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/tx/kiosk.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs } from '@mysten/sui/bcs';\nimport type {\n\tTransaction,\n\tTransactionArgument,\n\tTransactionObjectArgument,\n} from '@mysten/sui/transactions';\n\nimport type { ObjectArgument } from '../types/index.js';\nimport { KIOSK_MODULE, KIOSK_TYPE } from '../types/index.js';\n\n/**\n * Create a new shared Kiosk and returns the [kiosk, kioskOwnerCap] tuple.\n */\nexport function createKiosk(\n\ttx: Transaction,\n): [TransactionObjectArgument, TransactionObjectArgument] {\n\tconst [kiosk, kioskOwnerCap] = tx.moveCall({\n\t\ttarget: `${KIOSK_MODULE}::new`,\n\t});\n\n\treturn [kiosk, kioskOwnerCap];\n}\n\n/**\n * Calls the `kiosk::new()` function and shares the kiosk.\n * Returns the `kioskOwnerCap` object.\n */\nexport function createKioskAndShare(tx: Transaction): TransactionObjectArgument {\n\tconst [kiosk, kioskOwnerCap] = createKiosk(tx);\n\tshareKiosk(tx, kiosk);\n\treturn kioskOwnerCap;\n}\n\n/**\n * Converts Transfer Policy to a shared object.\n */\nexport function shareKiosk(tx: Transaction, kiosk: TransactionArgument) {\n\ttx.moveCall({\n\t\ttarget: `0x2::transfer::public_share_object`,\n\t\ttypeArguments: [KIOSK_TYPE],\n\t\targuments: [kiosk],\n\t});\n}\n\n/**\n * Call the `kiosk::place<T>(Kiosk, KioskOwnerCap, Item)` function.\n * Place an item to the Kiosk.\n */\nexport function place(\n\ttx: Transaction,\n\titemType: string,\n\tkiosk: ObjectArgument,\n\tkioskCap: ObjectArgument,\n\titem: ObjectArgument,\n): void {\n\ttx.moveCall({\n\t\ttarget: `${KIOSK_MODULE}::place`,\n\t\ttypeArguments: [itemType],\n\t\targuments: [tx.object(kiosk), tx.object(kioskCap), tx.object(item)],\n\t});\n}\n\n/**\n * Call the `kiosk::lock<T>(Kiosk, KioskOwnerCap, TransferPolicy, Item)`\n * function. Lock an item in the Kiosk.\n *\n * Unlike `place` this function requires a `TransferPolicy` to exist\n * and be passed in. This is done to make sure the item does not get\n * locked without an option to take it out.\n */\nexport function lock(\n\ttx: Transaction,\n\titemType: string,\n\tkiosk: ObjectArgument,\n\tkioskCap: ObjectArgument,\n\tpolicy: ObjectArgument,\n\titem: ObjectArgument,\n): void {\n\ttx.moveCall({\n\t\ttarget: `${KIOSK_MODULE}::lock`,\n\t\ttypeArguments: [itemType],\n\t\targuments: [tx.object(kiosk), tx.object(kioskCap), tx.object(policy), tx.object(item)],\n\t});\n}\n\n/**\n * Call the `kiosk::take<T>(Kiosk, KioskOwnerCap, ID)` function.\n * Take an item from the Kiosk.\n */\nexport function take(\n\ttx: Transaction,\n\titemType: string,\n\tkiosk: ObjectArgument,\n\tkioskCap: ObjectArgument,\n\titemId: string,\n): TransactionObjectArgument {\n\tconst [item] = tx.moveCall({\n\t\ttarget: `${KIOSK_MODULE}::take`,\n\t\ttypeArguments: [itemType],\n\t\targuments: [tx.object(kiosk), tx.object(kioskCap), tx.pure.id(itemId)],\n\t});\n\n\treturn item;\n}\n\n/**\n * Call the `kiosk::list<T>(Kiosk, KioskOwnerCap, ID, u64)` function.\n * List an item for sale.\n */\nexport function list(\n\ttx: Transaction,\n\titemType: string,\n\tkiosk: ObjectArgument,\n\tkioskCap: ObjectArgument,\n\titemId: string,\n\tprice: string | bigint,\n): void {\n\ttx.moveCall({\n\t\ttarget: `${KIOSK_MODULE}::list`,\n\t\ttypeArguments: [itemType],\n\t\targuments: [tx.object(kiosk), tx.object(kioskCap), tx.pure.id(itemId), tx.pure.u64(price)],\n\t});\n}\n\n/**\n * Call the `kiosk::list<T>(Kiosk, KioskOwnerCap, ID, u64)` function.\n * List an item for sale.\n */\nexport function delist(\n\ttx: Transaction,\n\titemType: string,\n\tkiosk: ObjectArgument,\n\tkioskCap: ObjectArgument,\n\titemId: string,\n): void {\n\ttx.moveCall({\n\t\ttarget: `${KIOSK_MODULE}::delist`,\n\t\ttypeArguments: [itemType],\n\t\targuments: [tx.object(kiosk), tx.object(kioskCap), tx.pure.id(itemId)],\n\t});\n}\n\n/**\n * Call the `kiosk::place_and_list<T>(Kiosk, KioskOwnerCap, Item, u64)` function.\n * Place an item to the Kiosk and list it for sale.\n */\nexport function placeAndList(\n\ttx: Transaction,\n\titemType: string,\n\tkiosk: ObjectArgument,\n\tkioskCap: ObjectArgument,\n\titem: ObjectArgument,\n\tprice: string | bigint,\n): void {\n\ttx.moveCall({\n\t\ttarget: `${KIOSK_MODULE}::place_and_list`,\n\t\ttypeArguments: [itemType],\n\t\targuments: [tx.object(kiosk), tx.object(kioskCap), tx.object(item), tx.pure.u64(price)],\n\t});\n}\n\n/**\n * Call the `kiosk::purchase<T>(Kiosk, ID, Coin<SUI>)` function and receive an Item and\n * a TransferRequest which needs to be dealt with (via a matching TransferPolicy).\n */\nexport function purchase(\n\ttx: Transaction,\n\titemType: string,\n\tkiosk: ObjectArgument,\n\titemId: string,\n\tpayment: ObjectArgument,\n): [TransactionObjectArgument, TransactionObjectArgument] {\n\tconst [item, transferRequest] = tx.moveCall({\n\t\ttarget: `${KIOSK_MODULE}::purchase`,\n\t\ttypeArguments: [itemType],\n\t\targuments: [tx.object(kiosk), tx.pure.id(itemId), tx.object(payment)],\n\t});\n\n\treturn [item, transferRequest];\n}\n\n/**\n * Call the `kiosk::withdraw(Kiosk, KioskOwnerCap, Option<u64>)` function and receive a Coin<SUI>.\n * If the amount is null, then the entire balance will be withdrawn.\n */\nexport function withdrawFromKiosk(\n\ttx: Transaction,\n\tkiosk: ObjectArgument,\n\tkioskCap: ObjectArgument,\n\tamount?: string | bigint | number,\n): TransactionObjectArgument {\n\tconst amountArg = bcs.option(bcs.u64()).serialize(amount);\n\n\tconst [coin] = tx.moveCall({\n\t\ttarget: `${KIOSK_MODULE}::withdraw`,\n\t\targuments: [tx.object(kiosk), tx.object(kioskCap), amountArg],\n\t});\n\n\treturn coin;\n}\n\n/**\n * Call the `kiosk::borrow_value<T>(Kiosk, KioskOwnerCap, ID): T` function.\n * Immutably borrow an item from the Kiosk and return it in the end.\n *\n * Requires calling `returnValue` to return the item.\n */\nexport function borrowValue(\n\ttx: Transaction,\n\titemType: string,\n\tkiosk: ObjectArgument,\n\tkioskCap: ObjectArgument,\n\titemId: string,\n): [TransactionArgument, TransactionArgument] {\n\tconst [item, promise] = tx.moveCall({\n\t\ttarget: `${KIOSK_MODULE}::borrow_val`,\n\t\ttypeArguments: [itemType],\n\t\targuments: [tx.object(kiosk), tx.object(kioskCap), tx.pure.id(itemId)],\n\t});\n\n\treturn [item, promise];\n}\n\n/**\n * Call the `kiosk::return_value<T>(Kiosk, Item, Borrow)` function.\n * Return an item to the Kiosk after it was `borrowValue`-d.\n */\nexport function returnValue(\n\ttx: Transaction,\n\titemType: string,\n\tkiosk: ObjectArgument,\n\titem: TransactionArgument,\n\tpromise: TransactionArgument,\n): void {\n\ttx.moveCall({\n\t\ttarget: `${KIOSK_MODULE}::return_val`,\n\t\ttypeArguments: [itemType],\n\t\targuments: [tx.object(kiosk), item, promise],\n\t});\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "AAGA,SAAS,WAAW;AAQpB,SAAS,cAAc,kBAAkB;AAKlC,SAAS,YACf,IACyD;AACzD,QAAM,CAAC,OAAO,aAAa,IAAI,GAAG,SAAS;AAAA,IAC1C,QAAQ,GAAG,YAAY;AAAA,EACxB,CAAC;AAED,SAAO,CAAC,OAAO,aAAa;AAC7B;AAMO,SAAS,oBAAoB,IAA4C;AAC/E,QAAM,CAAC,OAAO,aAAa,IAAI,YAAY,EAAE;AAC7C,aAAW,IAAI,KAAK;AACpB,SAAO;AACR;AAKO,SAAS,WAAW,IAAiB,OAA4B;AACvE,KAAG,SAAS;AAAA,IACX,QAAQ;AAAA,IACR,eAAe,CAAC,UAAU;AAAA,IAC1B,WAAW,CAAC,KAAK;AAAA,EAClB,CAAC;AACF;AAMO,SAAS,MACf,IACA,UACA,OACA,UACA,MACO;AACP,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG,YAAY;AAAA,IACvB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,KAAK,GAAG,GAAG,OAAO,QAAQ,GAAG,GAAG,OAAO,IAAI,CAAC;AAAA,EACnE,CAAC;AACF;AAUO,SAAS,KACf,IACA,UACA,OACA,UACA,QACA,MACO;AACP,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG,YAAY;AAAA,IACvB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,KAAK,GAAG,GAAG,OAAO,QAAQ,GAAG,GAAG,OAAO,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC;AAAA,EACtF,CAAC;AACF;AAMO,SAAS,KACf,IACA,UACA,OACA,UACA,QAC4B;AAC5B,QAAM,CAAC,IAAI,IAAI,GAAG,SAAS;AAAA,IAC1B,QAAQ,GAAG,YAAY;AAAA,IACvB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,KAAK,GAAG,GAAG,OAAO,QAAQ,GAAG,GAAG,KAAK,GAAG,MAAM,CAAC;AAAA,EACtE,CAAC;AAED,SAAO;AACR;AAMO,SAAS,KACf,IACA,UACA,OACA,UACA,QACA,OACO;AACP,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG,YAAY;AAAA,IACvB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,KAAK,GAAG,GAAG,OAAO,QAAQ,GAAG,GAAG,KAAK,GAAG,MAAM,GAAG,GAAG,KAAK,IAAI,KAAK,CAAC;AAAA,EAC1F,CAAC;AACF;AAMO,SAAS,OACf,IACA,UACA,OACA,UACA,QACO;AACP,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG,YAAY;AAAA,IACvB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,KAAK,GAAG,GAAG,OAAO,QAAQ,GAAG,GAAG,KAAK,GAAG,MAAM,CAAC;AAAA,EACtE,CAAC;AACF;AAMO,SAAS,aACf,IACA,UACA,OACA,UACA,MACA,OACO;AACP,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG,YAAY;AAAA,IACvB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,KAAK,GAAG,GAAG,OAAO,QAAQ,GAAG,GAAG,OAAO,IAAI,GAAG,GAAG,KAAK,IAAI,KAAK,CAAC;AAAA,EACvF,CAAC;AACF;AAMO,SAAS,SACf,IACA,UACA,OACA,QACA,SACyD;AACzD,QAAM,CAAC,MAAM,eAAe,IAAI,GAAG,SAAS;AAAA,IAC3C,QAAQ,GAAG,YAAY;AAAA,IACvB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,KAAK,GAAG,GAAG,KAAK,GAAG,MAAM,GAAG,GAAG,OAAO,OAAO,CAAC;AAAA,EACrE,CAAC;AAED,SAAO,CAAC,MAAM,eAAe;AAC9B;AAMO,SAAS,kBACf,IACA,OACA,UACA,QAC4B;AAC5B,QAAM,YAAY,IAAI,OAAO,IAAI,IAAI,CAAC,EAAE,UAAU,MAAM;AAExD,QAAM,CAAC,IAAI,IAAI,GAAG,SAAS;AAAA,IAC1B,QAAQ,GAAG,YAAY;AAAA,IACvB,WAAW,CAAC,GAAG,OAAO,KAAK,GAAG,GAAG,OAAO,QAAQ,GAAG,SAAS;AAAA,EAC7D,CAAC;AAED,SAAO;AACR;AAQO,SAAS,YACf,IACA,UACA,OACA,UACA,QAC6C;AAC7C,QAAM,CAAC,MAAM,OAAO,IAAI,GAAG,SAAS;AAAA,IACnC,QAAQ,GAAG,YAAY;AAAA,IACvB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,KAAK,GAAG,GAAG,OAAO,QAAQ,GAAG,GAAG,KAAK,GAAG,MAAM,CAAC;AAAA,EACtE,CAAC;AAED,SAAO,CAAC,MAAM,OAAO;AACtB;AAMO,SAAS,YACf,IACA,UACA,OACA,MACA,SACO;AACP,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG,YAAY;AAAA,IACvB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,KAAK,GAAG,MAAM,OAAO;AAAA,EAC5C,CAAC;AACF;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/tx/personal-kiosk.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Transaction, TransactionObjectArgument } from '@mysten/sui/transactions';\n\nimport type { ObjectArgument } from '../types/index.js';\n\nexport function convertToPersonalTx(\n\ttx: Transaction,\n\tkiosk: ObjectArgument,\n\tkioskOwnerCap: ObjectArgument,\n\tpackageId: string,\n): TransactionObjectArgument {\n\tconst personalKioskCap = tx.moveCall({\n\t\ttarget: `${packageId}::personal_kiosk::new`,\n\t\targuments: [tx.object(kiosk), tx.object(kioskOwnerCap)],\n\t});\n\n\treturn personalKioskCap;\n}\n\n/**\n * Transfers the personal kiosk Cap to the sender.\n */\nexport function transferPersonalCapTx(\n\ttx: Transaction,\n\tpersonalKioskCap: TransactionObjectArgument,\n\tpackageId: string,\n) {\n\ttx.moveCall({\n\t\ttarget: `${packageId}::personal_kiosk::transfer_to_sender`,\n\t\targuments: [personalKioskCap],\n\t});\n}\n"],
5
- "mappings": "AAOO,SAAS,oBACf,IACA,OACA,eACA,WAC4B;AAC5B,QAAM,mBAAmB,GAAG,SAAS;AAAA,IACpC,QAAQ,GAAG;AAAA,IACX,WAAW,CAAC,GAAG,OAAO,KAAK,GAAG,GAAG,OAAO,aAAa,CAAC;AAAA,EACvD,CAAC;AAED,SAAO;AACR;AAKO,SAAS,sBACf,IACA,kBACA,WACC;AACD,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG;AAAA,IACX,WAAW,CAAC,gBAAgB;AAAA,EAC7B,CAAC;AACF;",
5
+ "mappings": "AAOO,SAAS,oBACf,IACA,OACA,eACA,WAC4B;AAC5B,QAAM,mBAAmB,GAAG,SAAS;AAAA,IACpC,QAAQ,GAAG,SAAS;AAAA,IACpB,WAAW,CAAC,GAAG,OAAO,KAAK,GAAG,GAAG,OAAO,aAAa,CAAC;AAAA,EACvD,CAAC;AAED,SAAO;AACR;AAKO,SAAS,sBACf,IACA,kBACA,WACC;AACD,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG,SAAS;AAAA,IACpB,WAAW,CAAC,gBAAgB;AAAA,EAC7B,CAAC;AACF;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/tx/rules/attach.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Transaction } from '@mysten/sui/transactions';\n\nimport type { ObjectArgument } from '../../types/index.js';\n\nexport function attachKioskLockRuleTx(\n\ttx: Transaction,\n\ttype: string,\n\tpolicy: ObjectArgument,\n\tpolicyCap: ObjectArgument,\n\tpackageId: string,\n) {\n\ttx.moveCall({\n\t\ttarget: `${packageId}::kiosk_lock_rule::add`,\n\t\ttypeArguments: [type],\n\t\targuments: [tx.object(policy), tx.object(policyCap)],\n\t});\n}\n\nexport function attachRoyaltyRuleTx(\n\ttx: Transaction,\n\ttype: string,\n\tpolicy: ObjectArgument,\n\tpolicyCap: ObjectArgument,\n\tpercentageBps: number | string, // this is in basis points.\n\tminAmount: number | string,\n\tpackageId: string,\n) {\n\tif (Number(percentageBps) < 0 || Number(percentageBps) > 10_000)\n\t\tthrow new Error('Invalid basis point percentage. Use a value between [0,10000].');\n\n\ttx.moveCall({\n\t\ttarget: `${packageId}::royalty_rule::add`,\n\t\ttypeArguments: [type],\n\t\targuments: [\n\t\t\ttx.object(policy),\n\t\t\ttx.object(policyCap),\n\t\t\ttx.pure.u16(Number(percentageBps)),\n\t\t\ttx.pure.u64(minAmount),\n\t\t],\n\t});\n}\n\nexport function attachPersonalKioskRuleTx(\n\ttx: Transaction,\n\ttype: string,\n\tpolicy: ObjectArgument,\n\tpolicyCap: ObjectArgument,\n\tpackageId: string,\n) {\n\ttx.moveCall({\n\t\ttarget: `${packageId}::personal_kiosk_rule::add`,\n\t\ttypeArguments: [type],\n\t\targuments: [tx.object(policy), tx.object(policyCap)],\n\t});\n}\n\nexport function attachFloorPriceRuleTx(\n\ttx: Transaction,\n\ttype: string,\n\tpolicy: ObjectArgument,\n\tpolicyCap: ObjectArgument,\n\tminPrice: string | bigint,\n\tpackageId: string,\n) {\n\ttx.moveCall({\n\t\ttarget: `${packageId}::floor_price_rule::add`,\n\t\ttypeArguments: [type],\n\t\targuments: [tx.object(policy), tx.object(policyCap), tx.pure.u64(minPrice)],\n\t});\n}\n"],
5
- "mappings": "AAOO,SAAS,sBACf,IACA,MACA,QACA,WACA,WACC;AACD,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG;AAAA,IACX,eAAe,CAAC,IAAI;AAAA,IACpB,WAAW,CAAC,GAAG,OAAO,MAAM,GAAG,GAAG,OAAO,SAAS,CAAC;AAAA,EACpD,CAAC;AACF;AAEO,SAAS,oBACf,IACA,MACA,QACA,WACA,eACA,WACA,WACC;AACD,MAAI,OAAO,aAAa,IAAI,KAAK,OAAO,aAAa,IAAI;AACxD,UAAM,IAAI,MAAM,gEAAgE;AAEjF,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG;AAAA,IACX,eAAe,CAAC,IAAI;AAAA,IACpB,WAAW;AAAA,MACV,GAAG,OAAO,MAAM;AAAA,MAChB,GAAG,OAAO,SAAS;AAAA,MACnB,GAAG,KAAK,IAAI,OAAO,aAAa,CAAC;AAAA,MACjC,GAAG,KAAK,IAAI,SAAS;AAAA,IACtB;AAAA,EACD,CAAC;AACF;AAEO,SAAS,0BACf,IACA,MACA,QACA,WACA,WACC;AACD,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG;AAAA,IACX,eAAe,CAAC,IAAI;AAAA,IACpB,WAAW,CAAC,GAAG,OAAO,MAAM,GAAG,GAAG,OAAO,SAAS,CAAC;AAAA,EACpD,CAAC;AACF;AAEO,SAAS,uBACf,IACA,MACA,QACA,WACA,UACA,WACC;AACD,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG;AAAA,IACX,eAAe,CAAC,IAAI;AAAA,IACpB,WAAW,CAAC,GAAG,OAAO,MAAM,GAAG,GAAG,OAAO,SAAS,GAAG,GAAG,KAAK,IAAI,QAAQ,CAAC;AAAA,EAC3E,CAAC;AACF;",
5
+ "mappings": "AAOO,SAAS,sBACf,IACA,MACA,QACA,WACA,WACC;AACD,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG,SAAS;AAAA,IACpB,eAAe,CAAC,IAAI;AAAA,IACpB,WAAW,CAAC,GAAG,OAAO,MAAM,GAAG,GAAG,OAAO,SAAS,CAAC;AAAA,EACpD,CAAC;AACF;AAEO,SAAS,oBACf,IACA,MACA,QACA,WACA,eACA,WACA,WACC;AACD,MAAI,OAAO,aAAa,IAAI,KAAK,OAAO,aAAa,IAAI;AACxD,UAAM,IAAI,MAAM,gEAAgE;AAEjF,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG,SAAS;AAAA,IACpB,eAAe,CAAC,IAAI;AAAA,IACpB,WAAW;AAAA,MACV,GAAG,OAAO,MAAM;AAAA,MAChB,GAAG,OAAO,SAAS;AAAA,MACnB,GAAG,KAAK,IAAI,OAAO,aAAa,CAAC;AAAA,MACjC,GAAG,KAAK,IAAI,SAAS;AAAA,IACtB;AAAA,EACD,CAAC;AACF;AAEO,SAAS,0BACf,IACA,MACA,QACA,WACA,WACC;AACD,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG,SAAS;AAAA,IACpB,eAAe,CAAC,IAAI;AAAA,IACpB,WAAW,CAAC,GAAG,OAAO,MAAM,GAAG,GAAG,OAAO,SAAS,CAAC;AAAA,EACpD,CAAC;AACF;AAEO,SAAS,uBACf,IACA,MACA,QACA,WACA,UACA,WACC;AACD,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG,SAAS;AAAA,IACpB,eAAe,CAAC,IAAI;AAAA,IACpB,WAAW,CAAC,GAAG,OAAO,MAAM,GAAG,GAAG,OAAO,SAAS,GAAG,GAAG,KAAK,IAAI,QAAQ,CAAC;AAAA,EAC3E,CAAC;AACF;",
6
6
  "names": []
7
7
  }
@@ -25,8 +25,7 @@ function resolveKioskLockRule(params) {
25
25
  purchasedItem,
26
26
  transferRequest
27
27
  } = params;
28
- if (!kiosk || !kioskCap)
29
- throw new Error("Missing Owned Kiosk or Owned Kiosk Cap");
28
+ if (!kiosk || !kioskCap) throw new Error("Missing Owned Kiosk or Owned Kiosk Cap");
30
29
  lock(tx, itemType, kiosk, kioskCap, policyId, purchasedItem);
31
30
  tx.moveCall({
32
31
  target: `${packageId}::kiosk_lock_rule::prove`,
@@ -36,8 +35,7 @@ function resolveKioskLockRule(params) {
36
35
  }
37
36
  function resolvePersonalKioskRule(params) {
38
37
  const { transaction: tx, packageId, itemType, kiosk, transferRequest } = params;
39
- if (!kiosk)
40
- throw new Error("Missing owned Kiosk.");
38
+ if (!kiosk) throw new Error("Missing owned Kiosk.");
41
39
  tx.moveCall({
42
40
  target: `${packageId}::personal_kiosk_rule::prove`,
43
41
  typeArguments: [itemType],
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/tx/rules/resolve.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { RuleResolvingParams } from '../../types/index.js';\nimport { lock } from '../kiosk.js';\n\n/**\n * A helper to resolve the royalty rule.\n */\nexport function resolveRoyaltyRule(params: RuleResolvingParams) {\n\tconst { transaction: tx, itemType, price, packageId, transferRequest, policyId } = params;\n\n\tconst policyObj = tx.object(policyId);\n\n\t// calculates the amount\n\tconst [amount] = tx.moveCall({\n\t\ttarget: `${packageId}::royalty_rule::fee_amount`,\n\t\ttypeArguments: [itemType],\n\t\targuments: [policyObj, tx.pure.u64(price || '0')],\n\t});\n\n\t// splits the coin.\n\tconst feeCoin = tx.splitCoins(tx.gas, [amount]);\n\n\t// pays the policy\n\ttx.moveCall({\n\t\ttarget: `${packageId}::royalty_rule::pay`,\n\t\ttypeArguments: [itemType],\n\t\targuments: [policyObj, transferRequest, feeCoin],\n\t});\n}\n\nexport function resolveKioskLockRule(params: RuleResolvingParams) {\n\tconst {\n\t\ttransaction: tx,\n\t\tpackageId,\n\t\titemType,\n\t\tkiosk,\n\t\tkioskCap,\n\t\tpolicyId,\n\t\tpurchasedItem,\n\t\ttransferRequest,\n\t} = params;\n\n\tif (!kiosk || !kioskCap) throw new Error('Missing Owned Kiosk or Owned Kiosk Cap');\n\n\tlock(tx, itemType, kiosk, kioskCap, policyId, purchasedItem);\n\n\t// proves that the item is locked in the kiosk to the TP.\n\ttx.moveCall({\n\t\ttarget: `${packageId}::kiosk_lock_rule::prove`,\n\t\ttypeArguments: [itemType],\n\t\targuments: [transferRequest, tx.object(kiosk)],\n\t});\n}\n\n/**\n * A helper to resolve the personalKioskRule.\n * @param params\n */\nexport function resolvePersonalKioskRule(params: RuleResolvingParams) {\n\tconst { transaction: tx, packageId, itemType, kiosk, transferRequest } = params;\n\n\tif (!kiosk) throw new Error('Missing owned Kiosk.');\n\n\t// proves that the destination kiosk is personal.\n\ttx.moveCall({\n\t\ttarget: `${packageId}::personal_kiosk_rule::prove`,\n\t\ttypeArguments: [itemType],\n\t\targuments: [tx.object(kiosk), transferRequest],\n\t});\n}\n\n/**\n * Resolves the floor price rule.\n */\nexport function resolveFloorPriceRule(params: RuleResolvingParams) {\n\tconst { transaction: tx, packageId, itemType, policyId, transferRequest } = params;\n\n\t// proves that the destination kiosk is personal\n\ttx.moveCall({\n\t\ttarget: `${packageId}::floor_price_rule::prove`,\n\t\ttypeArguments: [itemType],\n\t\targuments: [tx.object(policyId), transferRequest],\n\t});\n}\n"],
5
- "mappings": "AAIA,SAAS,YAAY;AAKd,SAAS,mBAAmB,QAA6B;AAC/D,QAAM,EAAE,aAAa,IAAI,UAAU,OAAO,WAAW,iBAAiB,SAAS,IAAI;AAEnF,QAAM,YAAY,GAAG,OAAO,QAAQ;AAGpC,QAAM,CAAC,MAAM,IAAI,GAAG,SAAS;AAAA,IAC5B,QAAQ,GAAG;AAAA,IACX,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,WAAW,GAAG,KAAK,IAAI,SAAS,GAAG,CAAC;AAAA,EACjD,CAAC;AAGD,QAAM,UAAU,GAAG,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;AAG9C,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG;AAAA,IACX,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,WAAW,iBAAiB,OAAO;AAAA,EAChD,CAAC;AACF;AAEO,SAAS,qBAAqB,QAA6B;AACjE,QAAM;AAAA,IACL,aAAa;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI;AAEJ,MAAI,CAAC,SAAS,CAAC;AAAU,UAAM,IAAI,MAAM,wCAAwC;AAEjF,OAAK,IAAI,UAAU,OAAO,UAAU,UAAU,aAAa;AAG3D,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG;AAAA,IACX,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,iBAAiB,GAAG,OAAO,KAAK,CAAC;AAAA,EAC9C,CAAC;AACF;AAMO,SAAS,yBAAyB,QAA6B;AACrE,QAAM,EAAE,aAAa,IAAI,WAAW,UAAU,OAAO,gBAAgB,IAAI;AAEzE,MAAI,CAAC;AAAO,UAAM,IAAI,MAAM,sBAAsB;AAGlD,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG;AAAA,IACX,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,KAAK,GAAG,eAAe;AAAA,EAC9C,CAAC;AACF;AAKO,SAAS,sBAAsB,QAA6B;AAClE,QAAM,EAAE,aAAa,IAAI,WAAW,UAAU,UAAU,gBAAgB,IAAI;AAG5E,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG;AAAA,IACX,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,QAAQ,GAAG,eAAe;AAAA,EACjD,CAAC;AACF;",
5
+ "mappings": "AAIA,SAAS,YAAY;AAKd,SAAS,mBAAmB,QAA6B;AAC/D,QAAM,EAAE,aAAa,IAAI,UAAU,OAAO,WAAW,iBAAiB,SAAS,IAAI;AAEnF,QAAM,YAAY,GAAG,OAAO,QAAQ;AAGpC,QAAM,CAAC,MAAM,IAAI,GAAG,SAAS;AAAA,IAC5B,QAAQ,GAAG,SAAS;AAAA,IACpB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,WAAW,GAAG,KAAK,IAAI,SAAS,GAAG,CAAC;AAAA,EACjD,CAAC;AAGD,QAAM,UAAU,GAAG,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;AAG9C,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG,SAAS;AAAA,IACpB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,WAAW,iBAAiB,OAAO;AAAA,EAChD,CAAC;AACF;AAEO,SAAS,qBAAqB,QAA6B;AACjE,QAAM;AAAA,IACL,aAAa;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI;AAEJ,MAAI,CAAC,SAAS,CAAC,SAAU,OAAM,IAAI,MAAM,wCAAwC;AAEjF,OAAK,IAAI,UAAU,OAAO,UAAU,UAAU,aAAa;AAG3D,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG,SAAS;AAAA,IACpB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,iBAAiB,GAAG,OAAO,KAAK,CAAC;AAAA,EAC9C,CAAC;AACF;AAMO,SAAS,yBAAyB,QAA6B;AACrE,QAAM,EAAE,aAAa,IAAI,WAAW,UAAU,OAAO,gBAAgB,IAAI;AAEzE,MAAI,CAAC,MAAO,OAAM,IAAI,MAAM,sBAAsB;AAGlD,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG,SAAS;AAAA,IACpB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,KAAK,GAAG,eAAe;AAAA,EAC9C,CAAC;AACF;AAKO,SAAS,sBAAsB,QAA6B;AAClE,QAAM,EAAE,aAAa,IAAI,WAAW,UAAU,UAAU,gBAAgB,IAAI;AAG5E,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG,SAAS;AAAA,IACpB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,QAAQ,GAAG,eAAe;AAAA,EACjD,CAAC;AACF;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/tx/transfer-policy.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs } from '@mysten/sui/bcs';\nimport type {\n\tTransaction,\n\tTransactionArgument,\n\tTransactionObjectArgument,\n} from '@mysten/sui/transactions';\n\nimport type { ObjectArgument } from '../types/index.js';\nimport { TRANSFER_POLICY_MODULE, TRANSFER_POLICY_TYPE } from '../types/index.js';\n\n/**\n * Call the `transfer_policy::new` function to create a new transfer policy.\n * Returns `transferPolicyCap`\n */\nexport function createTransferPolicy(\n\ttx: Transaction,\n\titemType: string,\n\tpublisher: ObjectArgument,\n): TransactionObjectArgument {\n\tconst [transferPolicy, transferPolicyCap] = createTransferPolicyWithoutSharing(\n\t\ttx,\n\t\titemType,\n\t\tpublisher,\n\t);\n\n\tshareTransferPolicy(tx, itemType, transferPolicy);\n\n\treturn transferPolicyCap;\n}\n\n/**\n * Creates a transfer Policy and returns both the Policy and the Cap.\n * Used if we want to use the policy before making it a shared object.\n */\nexport function createTransferPolicyWithoutSharing(\n\ttx: Transaction,\n\titemType: string,\n\tpublisher: ObjectArgument,\n): [TransactionObjectArgument, TransactionObjectArgument] {\n\tconst [transferPolicy, transferPolicyCap] = tx.moveCall({\n\t\ttarget: `${TRANSFER_POLICY_MODULE}::new`,\n\t\ttypeArguments: [itemType],\n\t\targuments: [tx.object(publisher)],\n\t});\n\n\treturn [transferPolicy, transferPolicyCap];\n}\n/**\n * Converts Transfer Policy to a shared object.\n */\nexport function shareTransferPolicy(\n\ttx: Transaction,\n\titemType: string,\n\ttransferPolicy: TransactionObjectArgument,\n) {\n\ttx.moveCall({\n\t\ttarget: `0x2::transfer::public_share_object`,\n\t\ttypeArguments: [`${TRANSFER_POLICY_TYPE}<${itemType}>`],\n\t\targuments: [transferPolicy],\n\t});\n}\n\n/**\n * Call the `transfer_policy::withdraw` function to withdraw profits from a transfer policy.\n */\nexport function withdrawFromPolicy(\n\ttx: Transaction,\n\titemType: string,\n\tpolicy: ObjectArgument,\n\tpolicyCap: ObjectArgument,\n\tamount?: string | bigint | null,\n): TransactionObjectArgument {\n\tconst amountArg = bcs.option(bcs.u64()).serialize(amount);\n\n\tconst [profits] = tx.moveCall({\n\t\ttarget: `${TRANSFER_POLICY_MODULE}::withdraw`,\n\t\ttypeArguments: [itemType],\n\t\targuments: [tx.object(policy), tx.object(policyCap), amountArg],\n\t});\n\n\treturn profits;\n}\n\n/**\n * Call the `transfer_policy::confirm_request` function to unblock the\n * transaction.\n */\nexport function confirmRequest(\n\ttx: Transaction,\n\titemType: string,\n\tpolicy: ObjectArgument,\n\trequest: TransactionArgument,\n): void {\n\ttx.moveCall({\n\t\ttarget: `${TRANSFER_POLICY_MODULE}::confirm_request`,\n\t\ttypeArguments: [itemType],\n\t\targuments: [tx.object(policy), request],\n\t});\n}\n\n/**\n * Calls the `transfer_policy::remove_rule` function to remove a Rule from the transfer policy's ruleset.\n */\nexport function removeTransferPolicyRule(\n\ttx: Transaction,\n\titemType: string,\n\truleType: string,\n\tconfigType: string,\n\tpolicy: ObjectArgument,\n\tpolicyCap: ObjectArgument,\n): void {\n\ttx.moveCall({\n\t\ttarget: `${TRANSFER_POLICY_MODULE}::remove_rule`,\n\t\ttypeArguments: [itemType, ruleType, configType],\n\t\targuments: [tx.object(policy), tx.object(policyCap)],\n\t});\n}\n"],
5
- "mappings": "AAGA,SAAS,WAAW;AAQpB,SAAS,wBAAwB,4BAA4B;AAMtD,SAAS,qBACf,IACA,UACA,WAC4B;AAC5B,QAAM,CAAC,gBAAgB,iBAAiB,IAAI;AAAA,IAC3C;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAEA,sBAAoB,IAAI,UAAU,cAAc;AAEhD,SAAO;AACR;AAMO,SAAS,mCACf,IACA,UACA,WACyD;AACzD,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,GAAG,SAAS;AAAA,IACvD,QAAQ,GAAG;AAAA,IACX,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,SAAS,CAAC;AAAA,EACjC,CAAC;AAED,SAAO,CAAC,gBAAgB,iBAAiB;AAC1C;AAIO,SAAS,oBACf,IACA,UACA,gBACC;AACD,KAAG,SAAS;AAAA,IACX,QAAQ;AAAA,IACR,eAAe,CAAC,GAAG,wBAAwB,WAAW;AAAA,IACtD,WAAW,CAAC,cAAc;AAAA,EAC3B,CAAC;AACF;AAKO,SAAS,mBACf,IACA,UACA,QACA,WACA,QAC4B;AAC5B,QAAM,YAAY,IAAI,OAAO,IAAI,IAAI,CAAC,EAAE,UAAU,MAAM;AAExD,QAAM,CAAC,OAAO,IAAI,GAAG,SAAS;AAAA,IAC7B,QAAQ,GAAG;AAAA,IACX,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,MAAM,GAAG,GAAG,OAAO,SAAS,GAAG,SAAS;AAAA,EAC/D,CAAC;AAED,SAAO;AACR;AAMO,SAAS,eACf,IACA,UACA,QACA,SACO;AACP,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG;AAAA,IACX,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,MAAM,GAAG,OAAO;AAAA,EACvC,CAAC;AACF;AAKO,SAAS,yBACf,IACA,UACA,UACA,YACA,QACA,WACO;AACP,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG;AAAA,IACX,eAAe,CAAC,UAAU,UAAU,UAAU;AAAA,IAC9C,WAAW,CAAC,GAAG,OAAO,MAAM,GAAG,GAAG,OAAO,SAAS,CAAC;AAAA,EACpD,CAAC;AACF;",
5
+ "mappings": "AAGA,SAAS,WAAW;AAQpB,SAAS,wBAAwB,4BAA4B;AAMtD,SAAS,qBACf,IACA,UACA,WAC4B;AAC5B,QAAM,CAAC,gBAAgB,iBAAiB,IAAI;AAAA,IAC3C;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAEA,sBAAoB,IAAI,UAAU,cAAc;AAEhD,SAAO;AACR;AAMO,SAAS,mCACf,IACA,UACA,WACyD;AACzD,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,GAAG,SAAS;AAAA,IACvD,QAAQ,GAAG,sBAAsB;AAAA,IACjC,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,SAAS,CAAC;AAAA,EACjC,CAAC;AAED,SAAO,CAAC,gBAAgB,iBAAiB;AAC1C;AAIO,SAAS,oBACf,IACA,UACA,gBACC;AACD,KAAG,SAAS;AAAA,IACX,QAAQ;AAAA,IACR,eAAe,CAAC,GAAG,oBAAoB,IAAI,QAAQ,GAAG;AAAA,IACtD,WAAW,CAAC,cAAc;AAAA,EAC3B,CAAC;AACF;AAKO,SAAS,mBACf,IACA,UACA,QACA,WACA,QAC4B;AAC5B,QAAM,YAAY,IAAI,OAAO,IAAI,IAAI,CAAC,EAAE,UAAU,MAAM;AAExD,QAAM,CAAC,OAAO,IAAI,GAAG,SAAS;AAAA,IAC7B,QAAQ,GAAG,sBAAsB;AAAA,IACjC,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,MAAM,GAAG,GAAG,OAAO,SAAS,GAAG,SAAS;AAAA,EAC/D,CAAC;AAED,SAAO;AACR;AAMO,SAAS,eACf,IACA,UACA,QACA,SACO;AACP,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG,sBAAsB;AAAA,IACjC,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,MAAM,GAAG,OAAO;AAAA,EACvC,CAAC;AACF;AAKO,SAAS,yBACf,IACA,UACA,UACA,YACA,QACA,WACO;AACP,KAAG,SAAS;AAAA,IACX,QAAQ,GAAG,sBAAsB;AAAA,IACjC,eAAe,CAAC,UAAU,UAAU,UAAU;AAAA,IAC9C,WAAW,CAAC,GAAG,OAAO,MAAM,GAAG,GAAG,OAAO,SAAS,CAAC;AAAA,EACpD,CAAC;AACF;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/types/kiosk.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n\tPaginatedObjectsResponse,\n\tSuiObjectData,\n\tSuiObjectDataOptions,\n} from '@mysten/sui/client';\nimport type { TransactionArgument } from '@mysten/sui/transactions';\n\nimport type { ObjectArgument } from './index.js';\n\n/** The Kiosk module. */\nexport const KIOSK_MODULE = '0x2::kiosk';\n\n/** The Kiosk type. */\nexport const KIOSK_TYPE = `${KIOSK_MODULE}::Kiosk`;\n\n/** The Kiosk Owner Cap Type */\nexport const KIOSK_OWNER_CAP = `${KIOSK_MODULE}::KioskOwnerCap`;\n\n/** The Kiosk Item Type */\nexport const KIOSK_ITEM = `${KIOSK_MODULE}::Item`;\n\n/** The Kiosk Listing Type */\nexport const KIOSK_LISTING = `${KIOSK_MODULE}::Listing`;\n\n/** The Kiosk Lock Type */\nexport const KIOSK_LOCK = `${KIOSK_MODULE}::Lock`;\n\n/** The Kiosk PurchaseCap type */\nexport const KIOSK_PURCHASE_CAP = `${KIOSK_MODULE}::PurchaseCap`;\n\n/**\n * The Kiosk object fields (for BCS queries).\n */\nexport type Kiosk = {\n\tid: string;\n\tprofits: string;\n\towner: string;\n\titemCount: number;\n\tallowExtensions: boolean;\n};\n\n/**\n * PurchaseCap object fields (for BCS queries).\n */\nexport type PurchaseCap = {\n\tid: string;\n\tkioskId: string;\n\titemId: string;\n\tminPrice: string;\n};\n\n/**\n * The response type of a successful purchase flow.\n * Returns the item, and a `canTransfer` param.\n */\nexport type PurchaseAndResolvePoliciesResponse = {\n\titem: TransactionArgument;\n\tcanTransfer: boolean;\n};\n\n/**\n * Optional parameters for `purchaseAndResolvePolicies` flow.\n * This gives us the chance to extend the function in further releases\n * without introducing more breaking changes.\n */\nexport type PurchaseOptionalParams = {\n\townedKiosk?: ObjectArgument;\n\townedKioskCap?: ObjectArgument;\n};\n\n/**\n * A dynamic field `Listing { ID, isExclusive }` attached to the Kiosk.\n * Holds a `u64` value - the price of the item.\n */\nexport type KioskListing = {\n\t/** The ID of the Item */\n\tobjectId: string;\n\t/**\n\t * Whether or not there's a `PurchaseCap` issued. `true` means that\n\t * the listing is controlled by some logic and can't be purchased directly.\n\t *\n\t * TODO: consider renaming the field for better indication.\n\t */\n\tisExclusive: boolean;\n\t/** The ID of the listing */\n\tlistingId: string;\n\tprice?: string;\n};\n\n/**\n * A dynamic field `Item { ID }` attached to the Kiosk.\n * Holds an Item `T`. The type of the item is known upfront.\n */\nexport type KioskItem = {\n\t/** The ID of the Item */\n\tobjectId: string;\n\t/** The type of the Item */\n\ttype: string;\n\t/** Whether the item is Locked (there must be a `Lock` Dynamic Field) */\n\tisLocked: boolean;\n\t/** Optional listing */\n\tlisting?: KioskListing;\n\t/** The ID of the kiosk the item is placed in */\n\tkioskId: string;\n\t/** Optional Kiosk Data */\n\tdata?: SuiObjectData;\n};\n\n/** The overview type returned from `getKiosk` */\nexport type KioskExtensionOverview = {\n\t/** The ID of the extension's DF */\n\tobjectId: string;\n\t/** The inner type of the Extension */\n\ttype: string;\n};\n/**\n * Hold the KioskExtension data\n */\nexport type KioskExtension = KioskExtensionOverview & {\n\t/** These fields are only there if we have `withExtensions` flag */\n\tisEnabled: boolean;\n\tpermissions: string;\n\tstorageId: string;\n\tstorageSize: number;\n};\n\n/**\n * Aggregated data from the Kiosk.\n */\nexport type KioskData = {\n\titems: KioskItem[];\n\titemIds: string[];\n\tlistingIds: string[];\n\tkiosk?: Kiosk;\n\textensions: KioskExtensionOverview[]; // type will be defined on later versions of the SDK.\n};\n\nexport type PagedKioskData = {\n\tdata: KioskData;\n\tnextCursor: string | null | undefined;\n\thasNextPage: boolean;\n};\n\nexport type FetchKioskOptions = {\n\t/** Include the base kiosk object, which includes the profits, the owner and the base fields. */\n\twithKioskFields?: boolean;\n\t/** Include the listing prices. */\n\twithListingPrices?: boolean;\n\t/** Include the objects for the Items in the kiosk. Defaults to `display` only. */\n\twithObjects?: boolean;\n\t/** Pass the data options for the objects, when fetching, in case you want to query other details. */\n\tobjectOptions?: SuiObjectDataOptions;\n};\n\nexport type OwnedKiosks = {\n\tkioskOwnerCaps: KioskOwnerCap[];\n\tkioskIds: string[];\n} & Omit<PaginatedObjectsResponse, 'data'>;\n\nexport type KioskOwnerCap = {\n\tisPersonal?: boolean;\n\tobjectId: string;\n\tkioskId: string;\n\tdigest: string;\n\tversion: string;\n};\n\nexport type PurchaseOptions = {\n\textraArgs?: Record<string, any>;\n};\n\nexport type ItemId = { itemType: string; itemId: string };\nexport type ItemReference = { itemType: string; item: ObjectArgument };\nexport type ItemValue = { itemType: string; item: TransactionArgument };\nexport type Price = { price: string | bigint };\n"],
5
- "mappings": "AAaO,MAAM,eAAe;AAGrB,MAAM,aAAa,GAAG;AAGtB,MAAM,kBAAkB,GAAG;AAG3B,MAAM,aAAa,GAAG;AAGtB,MAAM,gBAAgB,GAAG;AAGzB,MAAM,aAAa,GAAG;AAGtB,MAAM,qBAAqB,GAAG;",
5
+ "mappings": "AAaO,MAAM,eAAe;AAGrB,MAAM,aAAa,GAAG,YAAY;AAGlC,MAAM,kBAAkB,GAAG,YAAY;AAGvC,MAAM,aAAa,GAAG,YAAY;AAGlC,MAAM,gBAAgB,GAAG,YAAY;AAGrC,MAAM,aAAa,GAAG,YAAY;AAGlC,MAAM,qBAAqB,GAAG,YAAY;",
6
6
  "names": []
7
7
  }
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/types/transfer-policy.ts"],
4
4
  "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ObjectOwner } from '@mysten/sui/client';\nimport type { Transaction, TransactionObjectArgument } from '@mysten/sui/transactions';\n\nimport type { ObjectArgument } from './index.js';\n\n/** The Transfer Policy module. */\nexport const TRANSFER_POLICY_MODULE = '0x2::transfer_policy';\n\n/** Name of the event emitted when a TransferPolicy for T is created. */\nexport const TRANSFER_POLICY_CREATED_EVENT = `${TRANSFER_POLICY_MODULE}::TransferPolicyCreated`;\n\n/** The Transfer Policy Type */\nexport const TRANSFER_POLICY_TYPE = `${TRANSFER_POLICY_MODULE}::TransferPolicy`;\n\n/** The Transfer Policy Cap Type */\nexport const TRANSFER_POLICY_CAP_TYPE = `${TRANSFER_POLICY_MODULE}::TransferPolicyCap`;\n\n/** The Kiosk Lock Rule */\nexport const KIOSK_LOCK_RULE = 'kiosk_lock_rule::Rule';\n\n/** The Royalty rule */\nexport const ROYALTY_RULE = 'royalty_rule::Rule';\n\n/**\n * The Transfer Policy Cap in a consumable way.\n */\nexport type TransferPolicyCap = {\n\tpolicyId: string;\n\tpolicyCapId: string;\n\ttype: string;\n};\n\n/** The `TransferPolicy` object */\nexport type TransferPolicy = {\n\tid: string;\n\ttype: string;\n\tbalance: string;\n\trules: string[];\n\towner: ObjectOwner;\n};\n\n/** Event emitted when a TransferPolicy is created. */\nexport type TransferPolicyCreated = {\n\tid: string;\n};\n\n// The object a Rule resolving function accepts\n// It can accept a set of fixed fields, that are part of every purchase flow as well any extra arguments to resolve custom policies!\n// Each rule resolving function should check that the key it's seeking is in the object\n// e.g. `if(!'my_key' in ruleParams!) throw new Error(\"Can't resolve that rule!\")`\nexport type RuleResolvingParams = {\n\ttransaction: Transaction;\n\t/** @deprecated use transaction instead */\n\ttransactionBlock: Transaction;\n\titemType: string;\n\titemId: string;\n\tprice: string;\n\tpolicyId: ObjectArgument;\n\tsellerKiosk: ObjectArgument;\n\tkiosk: ObjectArgument;\n\tkioskCap: ObjectArgument;\n\ttransferRequest: TransactionObjectArgument;\n\tpurchasedItem: TransactionObjectArgument;\n\tpackageId: string;\n\textraArgs: Record<string, any>; // extraParams contains more possible {key, values} to pass for custom rules.\n};\n"],
5
- "mappings": "AASO,MAAM,yBAAyB;AAG/B,MAAM,gCAAgC,GAAG;AAGzC,MAAM,uBAAuB,GAAG;AAGhC,MAAM,2BAA2B,GAAG;AAGpC,MAAM,kBAAkB;AAGxB,MAAM,eAAe;",
5
+ "mappings": "AASO,MAAM,yBAAyB;AAG/B,MAAM,gCAAgC,GAAG,sBAAsB;AAG/D,MAAM,uBAAuB,GAAG,sBAAsB;AAGtD,MAAM,2BAA2B,GAAG,sBAAsB;AAG1D,MAAM,kBAAkB;AAGxB,MAAM,eAAe;",
6
6
  "names": []
7
7
  }
package/dist/esm/utils.js CHANGED
@@ -56,12 +56,10 @@ function attachListingsAndPrices(kioskData, listings, listingObjects) {
56
56
  const itemListings = listings.reduce(
57
57
  (acc, item, idx) => {
58
58
  acc[item.objectId] = { ...item };
59
- if (listingObjects.length === 0)
60
- return acc;
59
+ if (listingObjects.length === 0) return acc;
61
60
  const content = listingObjects[idx].data?.content;
62
61
  const data = content?.dataType === "moveObject" ? content?.fields : null;
63
- if (!data)
64
- return acc;
62
+ if (!data) return acc;
65
63
  acc[item.objectId].price = data.value;
66
64
  return acc;
67
65
  },
@@ -158,8 +156,7 @@ function percentageToBasisPoints(percentage) {
158
156
  function parseTransferPolicyCapObject(item) {
159
157
  const type = item?.data?.content?.type;
160
158
  const policy = item?.data?.content?.fields?.policy_id;
161
- if (!type.includes(TRANSFER_POLICY_CAP_TYPE))
162
- return void 0;
159
+ if (!type.includes(TRANSFER_POLICY_CAP_TYPE)) return void 0;
163
160
  const objectType = type.replace(TRANSFER_POLICY_CAP_TYPE + "<", "").slice(0, -1);
164
161
  return {
165
162
  policyId: policy,