@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.
- package/CHANGELOG.md +43 -11
- package/dist/cjs/client/kiosk-client.js +1 -2
- package/dist/cjs/client/kiosk-client.js.map +1 -1
- package/dist/cjs/client/kiosk-transaction.js +58 -89
- package/dist/cjs/client/kiosk-transaction.js.map +1 -1
- package/dist/cjs/client/tp-transaction.js +31 -46
- package/dist/cjs/client/tp-transaction.js.map +1 -1
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/query/kiosk.js +2 -4
- package/dist/cjs/query/kiosk.js.map +2 -2
- package/dist/cjs/query/transfer-policy.js +3 -6
- package/dist/cjs/query/transfer-policy.js.map +1 -1
- package/dist/cjs/tx/kiosk.js.map +1 -1
- package/dist/cjs/tx/personal-kiosk.js.map +1 -1
- package/dist/cjs/tx/rules/attach.js.map +1 -1
- package/dist/cjs/tx/rules/resolve.js +2 -4
- package/dist/cjs/tx/rules/resolve.js.map +1 -1
- package/dist/cjs/tx/transfer-policy.js.map +1 -1
- package/dist/cjs/types/kiosk.js.map +1 -1
- package/dist/cjs/types/transfer-policy.js.map +1 -1
- package/dist/cjs/utils.js +3 -6
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/client/kiosk-client.js +1 -2
- package/dist/esm/client/kiosk-client.js.map +1 -1
- package/dist/esm/client/kiosk-transaction.js +57 -88
- package/dist/esm/client/kiosk-transaction.js.map +1 -1
- package/dist/esm/client/tp-transaction.js +30 -45
- package/dist/esm/client/tp-transaction.js.map +1 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/query/kiosk.js +2 -4
- package/dist/esm/query/kiosk.js.map +2 -2
- package/dist/esm/query/transfer-policy.js +3 -6
- package/dist/esm/query/transfer-policy.js.map +1 -1
- package/dist/esm/tx/kiosk.js.map +1 -1
- package/dist/esm/tx/personal-kiosk.js.map +1 -1
- package/dist/esm/tx/rules/attach.js.map +1 -1
- package/dist/esm/tx/rules/resolve.js +2 -4
- package/dist/esm/tx/rules/resolve.js.map +1 -1
- package/dist/esm/tx/transfer-policy.js.map +1 -1
- package/dist/esm/types/kiosk.js.map +1 -1
- package/dist/esm/types/transfer-policy.js.map +1 -1
- package/dist/esm/utils.js +3 -6
- package/dist/esm/utils.js.map +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/src/query/kiosk.ts +1 -1
|
@@ -1,17 +1,10 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
3
|
-
throw TypeError("Cannot " + msg);
|
|
1
|
+
var __typeError = (msg) => {
|
|
2
|
+
throw TypeError(msg);
|
|
4
3
|
};
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
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": "
|
|
5
|
+
"mappings": "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",
|
|
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,
|
|
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
|
}
|
package/dist/esm/query/kiosk.js
CHANGED
|
@@ -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
|
|
5
|
-
"mappings": "AAUA,SAAS,yBAAyB;AASlC,SAAS,uBAAuB;AAChC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAEP,eAAsB,WACrB,QACA,SACA,YACA,SAC0B;AAK1B,QAAM,OAAO,MAAM,oBAAoB,QAAQ,SAAS,UAAU;AAElE,QAAM,WAA2B,CAAC;AAClC,QAAM,gBAA0B,CAAC;AAGjC,QAAM,YAAY,iBAAiB,MAAM,UAAU,eAAe,OAAO;AAKzE,QAAM,CAAC,OAAO,gBAAgB,KAAK,IAAI,MAAM,QAAQ,IAAI;AAAA,IACxD,QAAQ,kBAAkB,eAAe,QAAQ,OAAO,IAAI,QAAQ,QAAQ,MAAS;AAAA,IACrF,QAAQ,oBACL,cAAc,QAAQ,UAAU,YAAY;AAAA,MAC5C,aAAa;AAAA,
|
|
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,
|
|
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
|
}
|
package/dist/esm/tx/kiosk.js.map
CHANGED
|
@@ -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": "AAGA,SAAS,WAAW;AAQpB,SAAS,cAAc,kBAAkB;AAKlC,SAAS,YACf,IACyD;AACzD,QAAM,CAAC,OAAO,aAAa,IAAI,GAAG,SAAS;AAAA,IAC1C,QAAQ,GAAG;AAAA,
|
|
5
|
+
"mappings": "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",
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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;
|
|
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;
|
|
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,
|