@mysten/kiosk 0.8.10 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/cjs/bcs.d.ts +40 -2
- package/dist/cjs/bcs.js +22 -19
- package/dist/cjs/bcs.js.map +2 -2
- package/dist/cjs/client/kiosk-client.d.ts +1 -1
- package/dist/cjs/client/kiosk-client.js.map +1 -1
- package/dist/cjs/client/kiosk-transaction.d.ts +8 -6
- package/dist/cjs/client/kiosk-transaction.js +41 -54
- package/dist/cjs/client/kiosk-transaction.js.map +2 -2
- package/dist/cjs/client/tp-transaction.d.ts +6 -4
- package/dist/cjs/client/tp-transaction.js +24 -19
- package/dist/cjs/client/tp-transaction.js.map +2 -2
- package/dist/cjs/query/kiosk.d.ts +1 -1
- package/dist/cjs/query/kiosk.js +1 -1
- package/dist/cjs/query/kiosk.js.map +1 -1
- package/dist/cjs/query/transfer-policy.d.ts +2 -1
- package/dist/cjs/query/transfer-policy.js +3 -2
- package/dist/cjs/query/transfer-policy.js.map +3 -3
- package/dist/cjs/tx/kiosk.d.ts +14 -14
- package/dist/cjs/tx/kiosk.js +1 -1
- package/dist/cjs/tx/kiosk.js.map +2 -2
- package/dist/cjs/tx/personal-kiosk.d.ts +3 -3
- package/dist/cjs/tx/personal-kiosk.js.map +1 -1
- package/dist/cjs/tx/rules/attach.d.ts +5 -5
- package/dist/cjs/tx/rules/attach.js.map +1 -1
- package/dist/cjs/tx/rules/resolve.js +16 -16
- package/dist/cjs/tx/rules/resolve.js.map +2 -2
- package/dist/cjs/tx/transfer-policy.d.ts +7 -7
- package/dist/cjs/tx/transfer-policy.js +1 -1
- package/dist/cjs/tx/transfer-policy.js.map +1 -1
- package/dist/cjs/types/index.d.ts +2 -2
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/kiosk.d.ts +2 -2
- package/dist/cjs/types/kiosk.js.map +1 -1
- package/dist/cjs/types/transfer-policy.d.ts +5 -3
- package/dist/cjs/types/transfer-policy.js.map +1 -1
- package/dist/cjs/utils.d.ts +1 -1
- package/dist/cjs/utils.js +2 -2
- package/dist/cjs/utils.js.map +2 -2
- package/dist/esm/bcs.d.ts +40 -2
- package/dist/esm/bcs.js +22 -19
- package/dist/esm/bcs.js.map +2 -2
- package/dist/esm/client/kiosk-client.d.ts +1 -1
- package/dist/esm/client/kiosk-client.js.map +1 -1
- package/dist/esm/client/kiosk-transaction.d.ts +8 -6
- package/dist/esm/client/kiosk-transaction.js +41 -54
- package/dist/esm/client/kiosk-transaction.js.map +2 -2
- package/dist/esm/client/tp-transaction.d.ts +6 -4
- package/dist/esm/client/tp-transaction.js +24 -19
- package/dist/esm/client/tp-transaction.js.map +2 -2
- package/dist/esm/query/kiosk.d.ts +1 -1
- package/dist/esm/query/kiosk.js +1 -1
- package/dist/esm/query/kiosk.js.map +1 -1
- package/dist/esm/query/transfer-policy.d.ts +2 -1
- package/dist/esm/query/transfer-policy.js +4 -3
- package/dist/esm/query/transfer-policy.js.map +2 -2
- package/dist/esm/tx/kiosk.d.ts +14 -14
- package/dist/esm/tx/kiosk.js +1 -1
- package/dist/esm/tx/kiosk.js.map +2 -2
- package/dist/esm/tx/personal-kiosk.d.ts +3 -3
- package/dist/esm/tx/personal-kiosk.js.map +1 -1
- package/dist/esm/tx/rules/attach.d.ts +5 -5
- package/dist/esm/tx/rules/attach.js.map +1 -1
- package/dist/esm/tx/rules/resolve.js +16 -16
- package/dist/esm/tx/rules/resolve.js.map +2 -2
- package/dist/esm/tx/transfer-policy.d.ts +7 -7
- package/dist/esm/tx/transfer-policy.js +1 -1
- package/dist/esm/tx/transfer-policy.js.map +1 -1
- package/dist/esm/types/index.d.ts +2 -2
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/kiosk.d.ts +2 -2
- package/dist/esm/types/kiosk.js.map +1 -1
- package/dist/esm/types/transfer-policy.d.ts +5 -3
- package/dist/esm/types/transfer-policy.js.map +1 -1
- package/dist/esm/utils.d.ts +1 -1
- package/dist/esm/utils.js +9 -4
- package/dist/esm/utils.js.map +2 -2
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/src/bcs.ts +18 -20
- package/src/client/kiosk-client.ts +1 -1
- package/src/client/kiosk-transaction.ts +50 -60
- package/src/client/tp-transaction.ts +29 -22
- package/src/query/kiosk.ts +2 -2
- package/src/query/transfer-policy.ts +6 -4
- package/src/tx/kiosk.ts +16 -16
- package/src/tx/personal-kiosk.ts +3 -3
- package/src/tx/rules/attach.ts +5 -5
- package/src/tx/rules/resolve.ts +16 -16
- package/src/tx/transfer-policy.ts +9 -9
- package/src/types/index.ts +2 -2
- package/src/types/kiosk.ts +2 -2
- package/src/types/transfer-policy.ts +5 -3
- package/src/utils.ts +11 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Transaction } from '@mysten/sui/transactions';
|
|
2
2
|
import type { ObjectArgument, TransferPolicyCap } from '../types/index.js';
|
|
3
3
|
import type { KioskClient } from './kiosk-client.js';
|
|
4
4
|
export type TransferPolicyBaseParams = {
|
|
@@ -8,17 +8,19 @@ export type TransferPolicyBaseParams = {
|
|
|
8
8
|
};
|
|
9
9
|
export type TransferPolicyTransactionParams = {
|
|
10
10
|
kioskClient: KioskClient;
|
|
11
|
-
|
|
11
|
+
transaction: Transaction;
|
|
12
|
+
/** @deprecated use transaction instead */
|
|
13
|
+
transactionBlock?: Transaction;
|
|
12
14
|
cap?: TransferPolicyCap;
|
|
13
15
|
};
|
|
14
16
|
export declare class TransferPolicyTransaction {
|
|
15
17
|
#private;
|
|
16
|
-
|
|
18
|
+
transaction: Transaction;
|
|
17
19
|
kioskClient: KioskClient;
|
|
18
20
|
policy?: ObjectArgument;
|
|
19
21
|
policyCap?: ObjectArgument;
|
|
20
22
|
type?: string;
|
|
21
|
-
constructor({ kioskClient, transactionBlock, cap }: TransferPolicyTransactionParams);
|
|
23
|
+
constructor({ kioskClient, transactionBlock, transaction, cap, }: TransferPolicyTransactionParams);
|
|
22
24
|
/**
|
|
23
25
|
* A function to create a new transfer policy.
|
|
24
26
|
* Checks if there's already an existing transfer policy to prevent
|
|
@@ -38,7 +38,12 @@ var import_attach = require("../tx/rules/attach.js");
|
|
|
38
38
|
var import_transfer_policy = require("../tx/transfer-policy.js");
|
|
39
39
|
var _validateInputs, validateInputs_fn, _setup, setup_fn;
|
|
40
40
|
class TransferPolicyTransaction {
|
|
41
|
-
constructor({
|
|
41
|
+
constructor({
|
|
42
|
+
kioskClient,
|
|
43
|
+
transactionBlock,
|
|
44
|
+
transaction = transactionBlock,
|
|
45
|
+
cap
|
|
46
|
+
}) {
|
|
42
47
|
// Internal function that that the policy's Id + Cap + type have been set.
|
|
43
48
|
__privateAdd(this, _validateInputs);
|
|
44
49
|
/**
|
|
@@ -46,7 +51,7 @@ class TransferPolicyTransaction {
|
|
|
46
51
|
*/
|
|
47
52
|
__privateAdd(this, _setup);
|
|
48
53
|
this.kioskClient = kioskClient;
|
|
49
|
-
this.
|
|
54
|
+
this.transaction = transaction;
|
|
50
55
|
if (cap)
|
|
51
56
|
this.setCap(cap);
|
|
52
57
|
}
|
|
@@ -73,8 +78,8 @@ class TransferPolicyTransaction {
|
|
|
73
78
|
if (policies.length > 0)
|
|
74
79
|
throw new Error("There's already transfer policy for this Type.");
|
|
75
80
|
}
|
|
76
|
-
const cap = (0, import_transfer_policy.createTransferPolicy)(this.
|
|
77
|
-
this.
|
|
81
|
+
const cap = (0, import_transfer_policy.createTransferPolicy)(this.transaction, type, publisher);
|
|
82
|
+
this.transaction.transferObjects([cap], this.transaction.pure.address(address));
|
|
78
83
|
}
|
|
79
84
|
/**
|
|
80
85
|
* A convenient function to create a Transfer Policy and attach some rules
|
|
@@ -95,7 +100,7 @@ class TransferPolicyTransaction {
|
|
|
95
100
|
throw new Error("There's already transfer policy for this Type.");
|
|
96
101
|
}
|
|
97
102
|
const [policy, policyCap] = (0, import_transfer_policy.createTransferPolicyWithoutSharing)(
|
|
98
|
-
this.
|
|
103
|
+
this.transaction,
|
|
99
104
|
type,
|
|
100
105
|
publisher
|
|
101
106
|
);
|
|
@@ -111,10 +116,10 @@ class TransferPolicyTransaction {
|
|
|
111
116
|
shareAndTransferCap(address) {
|
|
112
117
|
if (!this.type || !this.policyCap || !this.policy)
|
|
113
118
|
throw new Error("This function can only be called after `transferPolicyManager.create`");
|
|
114
|
-
(0, import_transfer_policy.shareTransferPolicy)(this.
|
|
115
|
-
this.
|
|
119
|
+
(0, import_transfer_policy.shareTransferPolicy)(this.transaction, this.type, this.policy);
|
|
120
|
+
this.transaction.transferObjects(
|
|
116
121
|
[this.policyCap],
|
|
117
|
-
this.
|
|
122
|
+
this.transaction.pure.address(address)
|
|
118
123
|
);
|
|
119
124
|
}
|
|
120
125
|
/**
|
|
@@ -133,13 +138,13 @@ class TransferPolicyTransaction {
|
|
|
133
138
|
withdraw(address, amount) {
|
|
134
139
|
__privateMethod(this, _validateInputs, validateInputs_fn).call(this);
|
|
135
140
|
const coin = (0, import_transfer_policy.withdrawFromPolicy)(
|
|
136
|
-
this.
|
|
141
|
+
this.transaction,
|
|
137
142
|
this.type,
|
|
138
143
|
this.policy,
|
|
139
144
|
this.policyCap,
|
|
140
145
|
amount
|
|
141
146
|
);
|
|
142
|
-
this.
|
|
147
|
+
this.transaction.transferObjects([coin], this.transaction.pure.address(address));
|
|
143
148
|
return this;
|
|
144
149
|
}
|
|
145
150
|
/**
|
|
@@ -155,7 +160,7 @@ class TransferPolicyTransaction {
|
|
|
155
160
|
addRoyaltyRule(percentageBps, minAmount) {
|
|
156
161
|
__privateMethod(this, _validateInputs, validateInputs_fn).call(this);
|
|
157
162
|
(0, import_attach.attachRoyaltyRuleTx)(
|
|
158
|
-
this.
|
|
163
|
+
this.transaction,
|
|
159
164
|
this.type,
|
|
160
165
|
this.policy,
|
|
161
166
|
this.policyCap,
|
|
@@ -172,7 +177,7 @@ class TransferPolicyTransaction {
|
|
|
172
177
|
addLockRule() {
|
|
173
178
|
__privateMethod(this, _validateInputs, validateInputs_fn).call(this);
|
|
174
179
|
(0, import_attach.attachKioskLockRuleTx)(
|
|
175
|
-
this.
|
|
180
|
+
this.transaction,
|
|
176
181
|
this.type,
|
|
177
182
|
this.policy,
|
|
178
183
|
this.policyCap,
|
|
@@ -186,7 +191,7 @@ class TransferPolicyTransaction {
|
|
|
186
191
|
addPersonalKioskRule() {
|
|
187
192
|
__privateMethod(this, _validateInputs, validateInputs_fn).call(this);
|
|
188
193
|
(0, import_attach.attachPersonalKioskRuleTx)(
|
|
189
|
-
this.
|
|
194
|
+
this.transaction,
|
|
190
195
|
this.type,
|
|
191
196
|
this.policy,
|
|
192
197
|
this.policyCap,
|
|
@@ -201,7 +206,7 @@ class TransferPolicyTransaction {
|
|
|
201
206
|
addFloorPriceRule(minPrice) {
|
|
202
207
|
__privateMethod(this, _validateInputs, validateInputs_fn).call(this);
|
|
203
208
|
(0, import_attach.attachFloorPriceRuleTx)(
|
|
204
|
-
this.
|
|
209
|
+
this.transaction,
|
|
205
210
|
this.type,
|
|
206
211
|
this.policy,
|
|
207
212
|
this.policyCap,
|
|
@@ -218,7 +223,7 @@ class TransferPolicyTransaction {
|
|
|
218
223
|
removeRule({ ruleType, configType }) {
|
|
219
224
|
__privateMethod(this, _validateInputs, validateInputs_fn).call(this);
|
|
220
225
|
(0, import_transfer_policy.removeTransferPolicyRule)(
|
|
221
|
-
this.
|
|
226
|
+
this.transaction,
|
|
222
227
|
this.type,
|
|
223
228
|
ruleType,
|
|
224
229
|
configType,
|
|
@@ -233,7 +238,7 @@ class TransferPolicyTransaction {
|
|
|
233
238
|
__privateMethod(this, _validateInputs, validateInputs_fn).call(this);
|
|
234
239
|
const packageId = this.kioskClient.getRulePackageId("kioskLockRulePackageId");
|
|
235
240
|
(0, import_transfer_policy.removeTransferPolicyRule)(
|
|
236
|
-
this.
|
|
241
|
+
this.transaction,
|
|
237
242
|
this.type,
|
|
238
243
|
`${packageId}::kiosk_lock_rule::Rule`,
|
|
239
244
|
`${packageId}::kiosk_lock_rule::Config`,
|
|
@@ -249,7 +254,7 @@ class TransferPolicyTransaction {
|
|
|
249
254
|
__privateMethod(this, _validateInputs, validateInputs_fn).call(this);
|
|
250
255
|
const packageId = this.kioskClient.getRulePackageId("royaltyRulePackageId");
|
|
251
256
|
(0, import_transfer_policy.removeTransferPolicyRule)(
|
|
252
|
-
this.
|
|
257
|
+
this.transaction,
|
|
253
258
|
this.type,
|
|
254
259
|
`${packageId}::royalty_rule::Rule`,
|
|
255
260
|
`${packageId}::royalty_rule::Config`,
|
|
@@ -262,7 +267,7 @@ class TransferPolicyTransaction {
|
|
|
262
267
|
__privateMethod(this, _validateInputs, validateInputs_fn).call(this);
|
|
263
268
|
const packageId = this.kioskClient.getRulePackageId("personalKioskRulePackageId");
|
|
264
269
|
(0, import_transfer_policy.removeTransferPolicyRule)(
|
|
265
|
-
this.
|
|
270
|
+
this.transaction,
|
|
266
271
|
this.type,
|
|
267
272
|
`${packageId}::personal_kiosk_rule::Rule`,
|
|
268
273
|
`bool`,
|
|
@@ -275,7 +280,7 @@ class TransferPolicyTransaction {
|
|
|
275
280
|
__privateMethod(this, _validateInputs, validateInputs_fn).call(this);
|
|
276
281
|
const packageId = this.kioskClient.getRulePackageId("floorPriceRulePackageId");
|
|
277
282
|
(0, import_transfer_policy.removeTransferPolicyRule)(
|
|
278
|
-
this.
|
|
283
|
+
this.transaction,
|
|
279
284
|
this.type,
|
|
280
285
|
`${packageId}::floor_price_rule::Rule`,
|
|
281
286
|
`${packageId}::floor_price_rule::Config`,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/client/tp-transaction.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { TransactionBlock, TransactionObjectArgument } from '@mysten/sui.js/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\ttransactionBlock: TransactionBlock;\n\tcap?: TransferPolicyCap;\n};\n\nexport class TransferPolicyTransaction {\n\ttransactionBlock: TransactionBlock;\n\tkioskClient: KioskClient;\n\tpolicy?: ObjectArgument;\n\tpolicyCap?: ObjectArgument;\n\ttype?: string;\n\n\tconstructor({ kioskClient, transactionBlock, cap }: TransferPolicyTransactionParams) {\n\t\tthis.kioskClient = kioskClient;\n\t\tthis.transactionBlock = transactionBlock;\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.transactionBlock, type, publisher);\n\t\tthis.transactionBlock.transferObjects([cap], this.transactionBlock.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.transactionBlock,\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.transactionBlock, this.type, this.policy as TransactionObjectArgument);\n\t\tthis.transactionBlock.transferObjects(\n\t\t\t[this.policyCap as TransactionObjectArgument],\n\t\t\tthis.transactionBlock.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.transactionBlock,\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.transactionBlock.transferObjects([coin], this.transactionBlock.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.transactionBlock,\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.transactionBlock,\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.transactionBlock,\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.transactionBlock,\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.transactionBlock,\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.transactionBlock,\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.transactionBlock,\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.transactionBlock,\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.transactionBlock,\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": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,oBAKO;AACP,6BAMO;AAjBP;
|
|
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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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PaginationArguments, SuiClient } from '@mysten/sui
|
|
1
|
+
import type { PaginationArguments, SuiClient } from '@mysten/sui/client';
|
|
2
2
|
import type { FetchKioskOptions, KioskExtension, OwnedKiosks, PagedKioskData } from '../types/index.js';
|
|
3
3
|
export declare function fetchKiosk(client: SuiClient, kioskId: string, pagination: PaginationArguments<string>, options: FetchKioskOptions): Promise<PagedKioskData>;
|
|
4
4
|
/**
|
package/dist/cjs/query/kiosk.js
CHANGED
|
@@ -23,7 +23,7 @@ __export(kiosk_exports, {
|
|
|
23
23
|
getOwnedKiosks: () => getOwnedKiosks
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(kiosk_exports);
|
|
26
|
-
var import_utils = require("@mysten/sui
|
|
26
|
+
var import_utils = require("@mysten/sui/utils");
|
|
27
27
|
var import_types = require("../types/index.js");
|
|
28
28
|
var import_utils2 = require("../utils.js");
|
|
29
29
|
async function fetchKiosk(client, kioskId, pagination, options) {
|
|
@@ -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
|
|
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
5
|
"mappings": "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",
|
|
6
6
|
"names": ["import_utils"]
|
|
7
7
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { SuiClient } from '@mysten/sui
|
|
1
|
+
import type { SuiClient } from '@mysten/sui/client';
|
|
2
|
+
import '../bcs.js';
|
|
2
3
|
import type { TransferPolicy, TransferPolicyCap } from '../types/index.js';
|
|
3
4
|
/**
|
|
4
5
|
* Searches the `TransferPolicy`-s for the given type. The seach is performed via
|
|
@@ -23,8 +23,9 @@ __export(transfer_policy_exports, {
|
|
|
23
23
|
queryTransferPolicyCapsByType: () => queryTransferPolicyCapsByType
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(transfer_policy_exports);
|
|
26
|
-
var import_utils = require("@mysten/sui
|
|
26
|
+
var import_utils = require("@mysten/sui/utils");
|
|
27
27
|
var import_bcs = require("../bcs.js");
|
|
28
|
+
var import_bcs2 = require("../bcs.js");
|
|
28
29
|
var import_types = require("../types/index.js");
|
|
29
30
|
var import_utils2 = require("../utils.js");
|
|
30
31
|
async function queryTransferPolicy(client, type) {
|
|
@@ -42,7 +43,7 @@ async function queryTransferPolicy(client, type) {
|
|
|
42
43
|
if (!policy || !policy.bcs || !("bcsBytes" in policy.bcs)) {
|
|
43
44
|
throw new Error(`Invalid policy: ${policy?.objectId}, expected object, got package`);
|
|
44
45
|
}
|
|
45
|
-
const parsed =
|
|
46
|
+
const parsed = import_bcs2.TransferPolicyType.parse((0, import_utils.fromB64)(policy.bcs.bcsBytes));
|
|
46
47
|
return {
|
|
47
48
|
id: policy?.objectId,
|
|
48
49
|
type: `${import_types.TRANSFER_POLICY_TYPE}<${type}>`,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/query/transfer-policy.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { SuiClient } from '@mysten/sui
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,
|
|
6
|
-
"names": ["import_utils", "data"]
|
|
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": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,mBAA2C;AAE3C,iBAAO;AAEP,IAAAA,cAAmC;AAEnC,mBAIO;AACP,IAAAC,gBAAiE;AAWjE,eAAsB,oBACrB,QACA,MAC4B;AAE5B,QAAM,EAAE,KAAK,IAAI,MAAM,OAAO,YAAY;AAAA,IACzC,OAAO;AAAA,MACN,eAAe,GAAG,8CAAiC;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,+BAAmB,UAAM,sBAAQ,OAAO,IAAI,QAAQ,CAAC;AAEpE,WAAO;AAAA,MACN,IAAI,QAAQ;AAAA,MACZ,MAAM,GAAG,qCAAwB;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,KAAC,gCAAkB,OAAO;AAAG,WAAO,CAAC;AAEzC,QAAM,SAAS;AAAA,IACd,UAAU;AAAA,MACT;AAAA,QACC,YAAY,GAAG,yCAA4B;AAAA,MAC5C;AAAA,IACD;AAAA,EACD;AAGA,QAAM,OAAO,UAAM,kCAAmB;AAAA,IACrC;AAAA,IACA;AAAA,IACA,OAAO;AAAA,EACR,CAAC;AAED,SAAO,KACL,IAAI,CAAC,aAAS,4CAA6B,IAAI,CAAC,EAChD,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI;AAC1B;AASA,eAAsB,2BACrB,QACA,SAC2C;AAC3C,MAAI,KAAC,gCAAkB,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,UAAM,kCAAmB,EAAE,QAAQ,OAAO,SAAS,OAAO,CAAC;AAExE,QAAM,WAAgC,CAAC;AAEvC,aAAW,QAAQ,MAAM;AACxB,UAAMC,YAAO,4CAA6B,IAAI;AAC9C,QAAIA;AAAM,eAAS,KAAKA,KAAI;AAAA,EAC7B;AAEA,SAAO;AACR;",
|
|
6
|
+
"names": ["import_bcs", "import_utils", "data"]
|
|
7
7
|
}
|
package/dist/cjs/tx/kiosk.d.ts
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Transaction, TransactionArgument, TransactionObjectArgument } from '@mysten/sui/transactions';
|
|
2
2
|
import type { ObjectArgument } from '../types/index.js';
|
|
3
3
|
/**
|
|
4
4
|
* Create a new shared Kiosk and returns the [kiosk, kioskOwnerCap] tuple.
|
|
5
5
|
*/
|
|
6
|
-
export declare function createKiosk(tx:
|
|
6
|
+
export declare function createKiosk(tx: Transaction): [TransactionObjectArgument, TransactionObjectArgument];
|
|
7
7
|
/**
|
|
8
8
|
* Calls the `kiosk::new()` function and shares the kiosk.
|
|
9
9
|
* Returns the `kioskOwnerCap` object.
|
|
10
10
|
*/
|
|
11
|
-
export declare function createKioskAndShare(tx:
|
|
11
|
+
export declare function createKioskAndShare(tx: Transaction): TransactionObjectArgument;
|
|
12
12
|
/**
|
|
13
13
|
* Converts Transfer Policy to a shared object.
|
|
14
14
|
*/
|
|
15
|
-
export declare function shareKiosk(tx:
|
|
15
|
+
export declare function shareKiosk(tx: Transaction, kiosk: TransactionArgument): void;
|
|
16
16
|
/**
|
|
17
17
|
* Call the `kiosk::place<T>(Kiosk, KioskOwnerCap, Item)` function.
|
|
18
18
|
* Place an item to the Kiosk.
|
|
19
19
|
*/
|
|
20
|
-
export declare function place(tx:
|
|
20
|
+
export declare function place(tx: Transaction, itemType: string, kiosk: ObjectArgument, kioskCap: ObjectArgument, item: ObjectArgument): void;
|
|
21
21
|
/**
|
|
22
22
|
* Call the `kiosk::lock<T>(Kiosk, KioskOwnerCap, TransferPolicy, Item)`
|
|
23
23
|
* function. Lock an item in the Kiosk.
|
|
@@ -26,46 +26,46 @@ export declare function place(tx: TransactionBlock, itemType: string, kiosk: Obj
|
|
|
26
26
|
* and be passed in. This is done to make sure the item does not get
|
|
27
27
|
* locked without an option to take it out.
|
|
28
28
|
*/
|
|
29
|
-
export declare function lock(tx:
|
|
29
|
+
export declare function lock(tx: Transaction, itemType: string, kiosk: ObjectArgument, kioskCap: ObjectArgument, policy: ObjectArgument, item: ObjectArgument): void;
|
|
30
30
|
/**
|
|
31
31
|
* Call the `kiosk::take<T>(Kiosk, KioskOwnerCap, ID)` function.
|
|
32
32
|
* Take an item from the Kiosk.
|
|
33
33
|
*/
|
|
34
|
-
export declare function take(tx:
|
|
34
|
+
export declare function take(tx: Transaction, itemType: string, kiosk: ObjectArgument, kioskCap: ObjectArgument, itemId: string): TransactionObjectArgument;
|
|
35
35
|
/**
|
|
36
36
|
* Call the `kiosk::list<T>(Kiosk, KioskOwnerCap, ID, u64)` function.
|
|
37
37
|
* List an item for sale.
|
|
38
38
|
*/
|
|
39
|
-
export declare function list(tx:
|
|
39
|
+
export declare function list(tx: Transaction, itemType: string, kiosk: ObjectArgument, kioskCap: ObjectArgument, itemId: string, price: string | bigint): void;
|
|
40
40
|
/**
|
|
41
41
|
* Call the `kiosk::list<T>(Kiosk, KioskOwnerCap, ID, u64)` function.
|
|
42
42
|
* List an item for sale.
|
|
43
43
|
*/
|
|
44
|
-
export declare function delist(tx:
|
|
44
|
+
export declare function delist(tx: Transaction, itemType: string, kiosk: ObjectArgument, kioskCap: ObjectArgument, itemId: string): void;
|
|
45
45
|
/**
|
|
46
46
|
* Call the `kiosk::place_and_list<T>(Kiosk, KioskOwnerCap, Item, u64)` function.
|
|
47
47
|
* Place an item to the Kiosk and list it for sale.
|
|
48
48
|
*/
|
|
49
|
-
export declare function placeAndList(tx:
|
|
49
|
+
export declare function placeAndList(tx: Transaction, itemType: string, kiosk: ObjectArgument, kioskCap: ObjectArgument, item: ObjectArgument, price: string | bigint): void;
|
|
50
50
|
/**
|
|
51
51
|
* Call the `kiosk::purchase<T>(Kiosk, ID, Coin<SUI>)` function and receive an Item and
|
|
52
52
|
* a TransferRequest which needs to be dealt with (via a matching TransferPolicy).
|
|
53
53
|
*/
|
|
54
|
-
export declare function purchase(tx:
|
|
54
|
+
export declare function purchase(tx: Transaction, itemType: string, kiosk: ObjectArgument, itemId: string, payment: ObjectArgument): [TransactionObjectArgument, TransactionObjectArgument];
|
|
55
55
|
/**
|
|
56
56
|
* Call the `kiosk::withdraw(Kiosk, KioskOwnerCap, Option<u64>)` function and receive a Coin<SUI>.
|
|
57
57
|
* If the amount is null, then the entire balance will be withdrawn.
|
|
58
58
|
*/
|
|
59
|
-
export declare function withdrawFromKiosk(tx:
|
|
59
|
+
export declare function withdrawFromKiosk(tx: Transaction, kiosk: ObjectArgument, kioskCap: ObjectArgument, amount?: string | bigint | number): TransactionObjectArgument;
|
|
60
60
|
/**
|
|
61
61
|
* Call the `kiosk::borrow_value<T>(Kiosk, KioskOwnerCap, ID): T` function.
|
|
62
62
|
* Immutably borrow an item from the Kiosk and return it in the end.
|
|
63
63
|
*
|
|
64
64
|
* Requires calling `returnValue` to return the item.
|
|
65
65
|
*/
|
|
66
|
-
export declare function borrowValue(tx:
|
|
66
|
+
export declare function borrowValue(tx: Transaction, itemType: string, kiosk: ObjectArgument, kioskCap: ObjectArgument, itemId: string): [TransactionArgument, TransactionArgument];
|
|
67
67
|
/**
|
|
68
68
|
* Call the `kiosk::return_value<T>(Kiosk, Item, Borrow)` function.
|
|
69
69
|
* Return an item to the Kiosk after it was `borrowValue`-d.
|
|
70
70
|
*/
|
|
71
|
-
export declare function returnValue(tx:
|
|
71
|
+
export declare function returnValue(tx: Transaction, itemType: string, kiosk: ObjectArgument, item: TransactionArgument, promise: TransactionArgument): void;
|
package/dist/cjs/tx/kiosk.js
CHANGED
|
@@ -33,7 +33,7 @@ __export(kiosk_exports, {
|
|
|
33
33
|
withdrawFromKiosk: () => withdrawFromKiosk
|
|
34
34
|
});
|
|
35
35
|
module.exports = __toCommonJS(kiosk_exports);
|
|
36
|
-
var import_bcs = require("@mysten/sui
|
|
36
|
+
var import_bcs = require("@mysten/sui/bcs");
|
|
37
37
|
var import_types = require("../types/index.js");
|
|
38
38
|
function createKiosk(tx) {
|
|
39
39
|
const [kiosk, kioskOwnerCap] = tx.moveCall({
|
package/dist/cjs/tx/kiosk.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/tx/kiosk.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs } from '@mysten/sui
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,iBAAoB;AAQpB,mBAAyC;AAKlC,SAAS,YACf,IACyD;AACzD,QAAM,CAAC,OAAO,aAAa,IAAI,GAAG,SAAS;AAAA,IAC1C,QAAQ,GAAG;AAAA,EACZ,CAAC;AAED,SAAO,CAAC,OAAO,aAAa;AAC7B;AAMO,SAAS,oBAAoB,
|
|
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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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Transaction, TransactionObjectArgument } from '@mysten/sui/transactions';
|
|
2
2
|
import type { ObjectArgument } from '../types/index.js';
|
|
3
|
-
export declare function convertToPersonalTx(tx:
|
|
3
|
+
export declare function convertToPersonalTx(tx: Transaction, kiosk: ObjectArgument, kioskOwnerCap: ObjectArgument, packageId: string): TransactionObjectArgument;
|
|
4
4
|
/**
|
|
5
5
|
* Transfers the personal kiosk Cap to the sender.
|
|
6
6
|
*/
|
|
7
|
-
export declare function transferPersonalCapTx(tx:
|
|
7
|
+
export declare function transferPersonalCapTx(tx: Transaction, personalKioskCap: TransactionObjectArgument, packageId: string): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/tx/personal-kiosk.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {
|
|
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
5
|
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Transaction } from '@mysten/sui/transactions';
|
|
2
2
|
import type { ObjectArgument } from '../../types/index.js';
|
|
3
|
-
export declare function attachKioskLockRuleTx(tx:
|
|
4
|
-
export declare function attachRoyaltyRuleTx(tx:
|
|
3
|
+
export declare function attachKioskLockRuleTx(tx: Transaction, type: string, policy: ObjectArgument, policyCap: ObjectArgument, packageId: string): void;
|
|
4
|
+
export declare function attachRoyaltyRuleTx(tx: Transaction, type: string, policy: ObjectArgument, policyCap: ObjectArgument, percentageBps: number | string, // this is in basis points.
|
|
5
5
|
minAmount: number | string, packageId: string): void;
|
|
6
|
-
export declare function attachPersonalKioskRuleTx(tx:
|
|
7
|
-
export declare function attachFloorPriceRuleTx(tx:
|
|
6
|
+
export declare function attachPersonalKioskRuleTx(tx: Transaction, type: string, policy: ObjectArgument, policyCap: ObjectArgument, packageId: string): void;
|
|
7
|
+
export declare function attachFloorPriceRuleTx(tx: Transaction, type: string, policy: ObjectArgument, policyCap: ObjectArgument, minPrice: string | bigint, packageId: string): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/tx/rules/attach.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {
|
|
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
5
|
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|