@mysten/kiosk 0.14.6 → 1.0.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 +114 -2
- package/dist/client/kiosk-client.d.mts +126 -0
- package/dist/client/kiosk-client.d.mts.map +1 -0
- package/dist/client/kiosk-client.mjs +124 -0
- package/dist/client/kiosk-client.mjs.map +1 -0
- package/dist/client/kiosk-transaction.d.mts +236 -0
- package/dist/client/kiosk-transaction.d.mts.map +1 -0
- package/dist/client/kiosk-transaction.mjs +472 -0
- package/dist/client/kiosk-transaction.mjs.map +1 -0
- package/dist/client/tp-transaction.d.mts +139 -0
- package/dist/client/tp-transaction.d.mts.map +1 -0
- package/dist/client/tp-transaction.mjs +273 -0
- package/dist/client/tp-transaction.mjs.map +1 -0
- package/dist/constants.d.mts +42 -0
- package/dist/constants.d.mts.map +1 -0
- package/dist/constants.mjs +62 -0
- package/dist/constants.mjs.map +1 -0
- package/dist/contracts/0x2/bag.mjs +19 -0
- package/dist/contracts/0x2/bag.mjs.map +1 -0
- package/dist/contracts/0x2/balance.mjs +20 -0
- package/dist/contracts/0x2/balance.mjs.map +1 -0
- package/dist/contracts/0x2/deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.mjs +16 -0
- package/dist/contracts/0x2/deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.mjs.map +1 -0
- package/dist/contracts/0x2/kiosk.mjs +244 -0
- package/dist/contracts/0x2/kiosk.mjs.map +1 -0
- package/dist/contracts/0x2/kiosk_extension.mjs +25 -0
- package/dist/contracts/0x2/kiosk_extension.mjs.map +1 -0
- package/dist/contracts/0x2/transfer_policy.mjs +99 -0
- package/dist/contracts/0x2/transfer_policy.mjs.map +1 -0
- package/dist/contracts/0x2/vec_set.mjs +18 -0
- package/dist/contracts/0x2/vec_set.mjs.map +1 -0
- package/dist/contracts/kiosk/deps/sui/kiosk.mjs +98 -0
- package/dist/contracts/kiosk/deps/sui/kiosk.mjs.map +1 -0
- package/dist/contracts/kiosk/floor_price_rule.mjs +70 -0
- package/dist/contracts/kiosk/floor_price_rule.mjs.map +1 -0
- package/dist/contracts/kiosk/kiosk_lock_rule.mjs +72 -0
- package/dist/contracts/kiosk/kiosk_lock_rule.mjs.map +1 -0
- package/dist/contracts/kiosk/personal_kiosk.mjs +102 -0
- package/dist/contracts/kiosk/personal_kiosk.mjs.map +1 -0
- package/dist/contracts/kiosk/personal_kiosk_rule.mjs +66 -0
- package/dist/contracts/kiosk/personal_kiosk_rule.mjs.map +1 -0
- package/dist/contracts/kiosk/royalty_rule.mjs +115 -0
- package/dist/contracts/kiosk/royalty_rule.mjs.map +1 -0
- package/dist/contracts/utils/index.mjs +118 -0
- package/dist/contracts/utils/index.mjs.map +1 -0
- package/dist/index.d.mts +9 -0
- package/dist/index.mjs +9 -0
- package/dist/query/client-utils.mjs +30 -0
- package/dist/query/client-utils.mjs.map +1 -0
- package/dist/query/kiosk.mjs +154 -0
- package/dist/query/kiosk.mjs.map +1 -0
- package/dist/query/transfer-policy.mjs +110 -0
- package/dist/query/transfer-policy.mjs.map +1 -0
- package/dist/tx/kiosk.mjs +20 -0
- package/dist/tx/kiosk.mjs.map +1 -0
- package/dist/tx/rules/resolve.mjs +114 -0
- package/dist/tx/rules/resolve.mjs.map +1 -0
- package/dist/tx/transfer-policy.mjs +38 -0
- package/dist/tx/transfer-policy.mjs.map +1 -0
- package/dist/types/index.d.mts +23 -0
- package/dist/types/index.d.mts.map +1 -0
- package/dist/types/kiosk.d.mts +165 -0
- package/dist/types/kiosk.d.mts.map +1 -0
- package/dist/types/kiosk.mjs +21 -0
- package/dist/types/kiosk.mjs.map +1 -0
- package/dist/types/transfer-policy.d.mts +56 -0
- package/dist/types/transfer-policy.d.mts.map +1 -0
- package/dist/types/transfer-policy.mjs +19 -0
- package/dist/types/transfer-policy.mjs.map +1 -0
- package/dist/utils.d.mts +45 -0
- package/dist/utils.d.mts.map +1 -0
- package/dist/utils.mjs +156 -0
- package/dist/utils.mjs.map +1 -0
- package/package.json +31 -20
- package/src/client/kiosk-client.ts +42 -5
- package/src/client/kiosk-transaction.ts +144 -65
- package/src/client/tp-transaction.ts +149 -95
- package/src/constants.ts +19 -24
- package/src/contracts/0x2/accumulator.ts +24 -0
- package/src/contracts/0x2/accumulator_metadata.ts +38 -0
- package/src/contracts/0x2/accumulator_settlement.ts +14 -0
- package/src/contracts/0x2/address.ts +145 -0
- package/src/contracts/0x2/address_alias.ts +92 -0
- package/src/contracts/0x2/authenticator_state.ts +44 -0
- package/src/contracts/0x2/bag.ts +192 -0
- package/src/contracts/0x2/balance.ts +269 -0
- package/src/contracts/0x2/bcs.ts +495 -0
- package/src/contracts/0x2/bls12381.ts +717 -0
- package/src/contracts/0x2/borrow.ts +99 -0
- package/src/contracts/0x2/clock.ts +30 -0
- package/src/contracts/0x2/coin.ts +977 -0
- package/src/contracts/0x2/coin_registry.ts +874 -0
- package/src/contracts/0x2/config.ts +30 -0
- package/src/contracts/0x2/deny_list.ts +55 -0
- package/src/contracts/0x2/deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.ts +12 -0
- package/src/contracts/0x2/derived_object.ts +95 -0
- package/src/contracts/0x2/display.ts +258 -0
- package/src/contracts/0x2/dynamic_field.ts +171 -0
- package/src/contracts/0x2/dynamic_object_field.ts +167 -0
- package/src/contracts/0x2/ecdsa_k1.ts +65 -0
- package/src/contracts/0x2/ecdsa_r1.ts +49 -0
- package/src/contracts/0x2/ecvrf.ts +29 -0
- package/src/contracts/0x2/ed25519.ts +25 -0
- package/src/contracts/0x2/event.ts +42 -0
- package/src/contracts/0x2/funds_accumulator.ts +86 -0
- package/src/contracts/0x2/groth16.ts +171 -0
- package/src/contracts/0x2/group_ops.ts +49 -0
- package/src/contracts/0x2/hash.ts +37 -0
- package/src/contracts/0x2/hex.ts +37 -0
- package/src/contracts/0x2/hmac.ts +21 -0
- package/src/contracts/0x2/kiosk.ts +797 -0
- package/src/contracts/0x2/kiosk_extension.ts +270 -0
- package/src/contracts/0x2/linked_table.ts +354 -0
- package/src/contracts/0x2/math.ts +117 -0
- package/src/contracts/0x2/nitro_attestation.ts +186 -0
- package/src/contracts/0x2/object.ts +249 -0
- package/src/contracts/0x2/object_bag.ts +210 -0
- package/src/contracts/0x2/object_table.ts +200 -0
- package/src/contracts/0x2/package.ts +414 -0
- package/src/contracts/0x2/party.ts +37 -0
- package/src/contracts/0x2/pay.ts +153 -0
- package/src/contracts/0x2/poseidon.ts +21 -0
- package/src/contracts/0x2/priority_queue.ts +139 -0
- package/src/contracts/0x2/random.ts +294 -0
- package/src/contracts/0x2/sui.ts +29 -0
- package/src/contracts/0x2/table.ts +200 -0
- package/src/contracts/0x2/table_vec.ts +232 -0
- package/src/contracts/0x2/token.ts +873 -0
- package/src/contracts/0x2/transfer.ts +216 -0
- package/src/contracts/0x2/transfer_policy.ts +400 -0
- package/src/contracts/0x2/tx_context.ts +129 -0
- package/src/contracts/0x2/types.ts +24 -0
- package/src/contracts/0x2/url.ts +77 -0
- package/src/contracts/0x2/vdf.ts +45 -0
- package/src/contracts/0x2/vec_map.ts +401 -0
- package/src/contracts/0x2/vec_set.ts +211 -0
- package/src/contracts/0x2/versioned.ts +153 -0
- package/src/contracts/0x2/zklogin_verified_id.ts +172 -0
- package/src/contracts/0x2/zklogin_verified_issuer.ts +99 -0
- package/src/contracts/kiosk/deps/sui/kiosk.ts +94 -0
- package/src/contracts/kiosk/deps/sui/object.ts +15 -0
- package/src/contracts/kiosk/floor_price_rule.ts +92 -0
- package/src/contracts/kiosk/kiosk_lock_rule.ts +97 -0
- package/src/contracts/kiosk/personal_kiosk.ts +295 -0
- package/src/contracts/kiosk/personal_kiosk_rule.ts +89 -0
- package/src/contracts/kiosk/royalty_rule.ts +144 -0
- package/src/contracts/kiosk/witness_rule.ts +92 -0
- package/src/contracts/utils/index.ts +234 -0
- package/src/query/client-utils.ts +51 -0
- package/src/query/kiosk.ts +128 -100
- package/src/query/transfer-policy.ts +112 -78
- package/src/tx/kiosk.ts +7 -231
- package/src/tx/rules/resolve.ts +97 -48
- package/src/tx/transfer-policy.ts +25 -86
- package/src/types/index.ts +3 -14
- package/src/types/kiosk.ts +10 -12
- package/src/types/transfer-policy.ts +4 -4
- package/src/utils.ts +90 -128
- package/dist/cjs/bcs.d.ts +0 -23
- package/dist/cjs/bcs.js +0 -50
- package/dist/cjs/bcs.js.map +0 -7
- package/dist/cjs/client/kiosk-client.d.ts +0 -76
- package/dist/cjs/client/kiosk-client.js +0 -123
- package/dist/cjs/client/kiosk-client.js.map +0 -7
- package/dist/cjs/client/kiosk-transaction.d.ts +0 -186
- package/dist/cjs/client/kiosk-transaction.js +0 -462
- package/dist/cjs/client/kiosk-transaction.js.map +0 -7
- package/dist/cjs/client/tp-transaction.d.ts +0 -114
- package/dist/cjs/client/tp-transaction.js +0 -307
- package/dist/cjs/client/tp-transaction.js.map +0 -7
- package/dist/cjs/constants.d.ts +0 -31
- package/dist/cjs/constants.js +0 -102
- package/dist/cjs/constants.js.map +0 -7
- package/dist/cjs/index.d.ts +0 -6
- package/dist/cjs/index.js +0 -24
- package/dist/cjs/index.js.map +0 -7
- package/dist/cjs/package.json +0 -5
- package/dist/cjs/query/kiosk.d.ts +0 -8
- package/dist/cjs/query/kiosk.js +0 -181
- package/dist/cjs/query/kiosk.js.map +0 -7
- package/dist/cjs/query/transfer-policy.d.ts +0 -29
- package/dist/cjs/query/transfer-policy.js +0 -92
- package/dist/cjs/query/transfer-policy.js.map +0 -7
- package/dist/cjs/tx/kiosk.d.ts +0 -71
- package/dist/cjs/tx/kiosk.js +0 -130
- package/dist/cjs/tx/kiosk.js.map +0 -7
- package/dist/cjs/tx/personal-kiosk.d.ts +0 -7
- package/dist/cjs/tx/personal-kiosk.js +0 -38
- package/dist/cjs/tx/personal-kiosk.js.map +0 -7
- package/dist/cjs/tx/rules/attach.d.ts +0 -7
- package/dist/cjs/tx/rules/attach.js +0 -62
- package/dist/cjs/tx/rules/attach.js.map +0 -7
- package/dist/cjs/tx/rules/resolve.d.ts +0 -15
- package/dist/cjs/tx/rules/resolve.js +0 -109
- package/dist/cjs/tx/rules/resolve.js.map +0 -7
- package/dist/cjs/tx/transfer-policy.d.ts +0 -29
- package/dist/cjs/tx/transfer-policy.js +0 -78
- package/dist/cjs/tx/transfer-policy.js.map +0 -7
- package/dist/cjs/types/index.d.ts +0 -27
- package/dist/cjs/types/index.js +0 -33
- package/dist/cjs/types/index.js.map +0 -7
- package/dist/cjs/types/kiosk.d.ts +0 -160
- package/dist/cjs/types/kiosk.js +0 -37
- package/dist/cjs/types/kiosk.js.map +0 -7
- package/dist/cjs/types/transfer-policy.d.ts +0 -53
- package/dist/cjs/types/transfer-policy.js +0 -35
- package/dist/cjs/types/transfer-policy.js.map +0 -7
- package/dist/cjs/utils.d.ts +0 -51
- package/dist/cjs/utils.js +0 -198
- package/dist/cjs/utils.js.map +0 -7
- package/dist/esm/bcs.d.ts +0 -23
- package/dist/esm/bcs.js +0 -35
- package/dist/esm/bcs.js.map +0 -7
- package/dist/esm/client/kiosk-client.d.ts +0 -76
- package/dist/esm/client/kiosk-client.js +0 -114
- package/dist/esm/client/kiosk-client.js.map +0 -7
- package/dist/esm/client/kiosk-transaction.d.ts +0 -186
- package/dist/esm/client/kiosk-transaction.js +0 -432
- package/dist/esm/client/kiosk-transaction.js.map +0 -7
- package/dist/esm/client/tp-transaction.d.ts +0 -114
- package/dist/esm/client/tp-transaction.js +0 -298
- package/dist/esm/client/tp-transaction.js.map +0 -7
- package/dist/esm/constants.d.ts +0 -31
- package/dist/esm/constants.js +0 -87
- package/dist/esm/constants.js.map +0 -7
- package/dist/esm/index.d.ts +0 -6
- package/dist/esm/index.js +0 -7
- package/dist/esm/index.js.map +0 -7
- package/dist/esm/package.json +0 -5
- package/dist/esm/query/kiosk.d.ts +0 -8
- package/dist/esm/query/kiosk.js +0 -169
- package/dist/esm/query/kiosk.js.map +0 -7
- package/dist/esm/query/transfer-policy.d.ts +0 -29
- package/dist/esm/query/transfer-policy.js +0 -76
- package/dist/esm/query/transfer-policy.js.map +0 -7
- package/dist/esm/tx/kiosk.d.ts +0 -71
- package/dist/esm/tx/kiosk.js +0 -110
- package/dist/esm/tx/kiosk.js.map +0 -7
- package/dist/esm/tx/personal-kiosk.d.ts +0 -7
- package/dist/esm/tx/personal-kiosk.js +0 -18
- package/dist/esm/tx/personal-kiosk.js.map +0 -7
- package/dist/esm/tx/rules/attach.d.ts +0 -7
- package/dist/esm/tx/rules/attach.js +0 -42
- package/dist/esm/tx/rules/attach.js.map +0 -7
- package/dist/esm/tx/rules/resolve.d.ts +0 -15
- package/dist/esm/tx/rules/resolve.js +0 -89
- package/dist/esm/tx/rules/resolve.js.map +0 -7
- package/dist/esm/tx/transfer-policy.d.ts +0 -29
- package/dist/esm/tx/transfer-policy.js +0 -58
- package/dist/esm/tx/transfer-policy.js.map +0 -7
- package/dist/esm/types/index.d.ts +0 -27
- package/dist/esm/types/index.js +0 -12
- package/dist/esm/types/index.js.map +0 -7
- package/dist/esm/types/kiosk.d.ts +0 -160
- package/dist/esm/types/kiosk.js +0 -17
- package/dist/esm/types/kiosk.js.map +0 -7
- package/dist/esm/types/transfer-policy.d.ts +0 -53
- package/dist/esm/types/transfer-policy.js +0 -15
- package/dist/esm/types/transfer-policy.js.map +0 -7
- package/dist/esm/utils.d.ts +0 -51
- package/dist/esm/utils.js +0 -183
- package/dist/esm/utils.js.map +0 -7
- package/dist/tsconfig.esm.tsbuildinfo +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/src/bcs.ts +0 -39
- package/src/tx/personal-kiosk.ts +0 -34
- package/src/tx/rules/attach.ts +0 -73
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
// Copyright (c) Mysten Labs, Inc.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
import type { ObjectOwner } from '@mysten/sui/
|
|
4
|
+
import type { ObjectOwner } from '@mysten/sui/jsonRpc';
|
|
5
5
|
import type { Transaction, TransactionObjectArgument } from '@mysten/sui/transactions';
|
|
6
6
|
|
|
7
7
|
import type { KioskClient } from '../client/kiosk-client.js';
|
|
8
8
|
import type { ObjectArgument } from './index.js';
|
|
9
9
|
|
|
10
|
+
import { SUI_FRAMEWORK_ADDRESS } from '@mysten/sui/utils';
|
|
11
|
+
|
|
10
12
|
/** The Transfer Policy module. */
|
|
11
|
-
export const TRANSFER_POLICY_MODULE =
|
|
13
|
+
export const TRANSFER_POLICY_MODULE = `${SUI_FRAMEWORK_ADDRESS}::transfer_policy`;
|
|
12
14
|
|
|
13
15
|
/** Name of the event emitted when a TransferPolicy for T is created. */
|
|
14
16
|
export const TRANSFER_POLICY_CREATED_EVENT = `${TRANSFER_POLICY_MODULE}::TransferPolicyCreated`;
|
|
@@ -54,8 +56,6 @@ export type TransferPolicyCreated = {
|
|
|
54
56
|
// e.g. `if(!'my_key' in ruleParams!) throw new Error("Can't resolve that rule!")`
|
|
55
57
|
export type RuleResolvingParams = {
|
|
56
58
|
transaction: Transaction;
|
|
57
|
-
/** @deprecated use transaction instead */
|
|
58
|
-
transactionBlock: Transaction;
|
|
59
59
|
itemType: string;
|
|
60
60
|
itemId: string;
|
|
61
61
|
price: string;
|
package/src/utils.ts
CHANGED
|
@@ -1,41 +1,38 @@
|
|
|
1
1
|
// Copyright (c) Mysten Labs, Inc.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
SuiObjectData,
|
|
9
|
-
SuiObjectDataFilter,
|
|
10
|
-
SuiObjectDataOptions,
|
|
11
|
-
SuiObjectResponse,
|
|
12
|
-
} from '@mysten/sui/client';
|
|
13
|
-
import {
|
|
14
|
-
fromBase64,
|
|
15
|
-
normalizeStructTag,
|
|
16
|
-
normalizeSuiAddress,
|
|
17
|
-
parseStructTag,
|
|
18
|
-
} from '@mysten/sui/utils';
|
|
19
|
-
|
|
20
|
-
import { KioskType } from './bcs.js';
|
|
21
|
-
import type { Kiosk, KioskData, KioskListing, TransferPolicyCap } from './types/index.js';
|
|
22
|
-
import { TRANSFER_POLICY_CAP_TYPE } from './types/index.js';
|
|
4
|
+
import { bcs } from '@mysten/sui/bcs';
|
|
5
|
+
import { PaginationArguments } from '@mysten/sui/jsonRpc';
|
|
6
|
+
import type { ClientWithCoreApi, SuiClientTypes } from '@mysten/sui/client';
|
|
7
|
+
import { normalizeStructTag, normalizeSuiAddress, parseStructTag } from '@mysten/sui/utils';
|
|
23
8
|
import { chunk } from '@mysten/utils';
|
|
24
9
|
|
|
10
|
+
import { Listing, Lock, Kiosk as KioskStruct } from './contracts/0x2/kiosk.js';
|
|
11
|
+
import type { Kiosk, KioskData, KioskListing } from './types/index.js';
|
|
12
|
+
|
|
25
13
|
const DEFAULT_QUERY_LIMIT = 50;
|
|
26
14
|
|
|
27
|
-
export
|
|
28
|
-
const queryRes = await client.getObject({ id, options: { showBcs: true } });
|
|
15
|
+
export type DynamicFieldInfo = SuiClientTypes.ListDynamicFieldsResponse['dynamicFields'][number];
|
|
29
16
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
17
|
+
export async function getKioskObject(client: ClientWithCoreApi, id: string): Promise<Kiosk> {
|
|
18
|
+
const { object } = await client.core.getObject({
|
|
19
|
+
objectId: id,
|
|
20
|
+
include: { content: true },
|
|
21
|
+
});
|
|
33
22
|
|
|
34
|
-
if (!
|
|
35
|
-
throw new Error(`
|
|
23
|
+
if (!object.content) {
|
|
24
|
+
throw new Error(`Kiosk ${id} not found or has no content`);
|
|
36
25
|
}
|
|
37
26
|
|
|
38
|
-
|
|
27
|
+
const parsed = KioskStruct.parse(object.content);
|
|
28
|
+
|
|
29
|
+
return {
|
|
30
|
+
id: parsed.id,
|
|
31
|
+
profits: parsed.profits.value.toString(),
|
|
32
|
+
owner: parsed.owner,
|
|
33
|
+
itemCount: parsed.item_count,
|
|
34
|
+
allowExtensions: parsed.allow_extensions,
|
|
35
|
+
};
|
|
39
36
|
}
|
|
40
37
|
|
|
41
38
|
// helper to extract kiosk data from dynamic fields.
|
|
@@ -49,31 +46,51 @@ export function extractKioskData(
|
|
|
49
46
|
(acc: KioskData, val: DynamicFieldInfo) => {
|
|
50
47
|
const type = val.name.type;
|
|
51
48
|
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
const parsedType = parseStructTag(type);
|
|
50
|
+
const baseType = `${normalizeSuiAddress(parsedType.address)}::${parsedType.module}::${parsedType.name}`;
|
|
51
|
+
|
|
52
|
+
if (
|
|
53
|
+
baseType ===
|
|
54
|
+
'0x0000000000000000000000000000000000000000000000000000000000000002::kiosk::Item'
|
|
55
|
+
) {
|
|
56
|
+
acc.itemIds.push(val.fieldId);
|
|
54
57
|
acc.items.push({
|
|
55
|
-
objectId: val.
|
|
56
|
-
type: val.
|
|
58
|
+
objectId: val.fieldId,
|
|
59
|
+
type: val.valueType,
|
|
57
60
|
isLocked: false,
|
|
58
61
|
kioskId,
|
|
59
62
|
});
|
|
60
63
|
}
|
|
61
|
-
|
|
62
|
-
|
|
64
|
+
|
|
65
|
+
if (
|
|
66
|
+
baseType ===
|
|
67
|
+
'0x0000000000000000000000000000000000000000000000000000000000000002::kiosk::Listing'
|
|
68
|
+
) {
|
|
69
|
+
const parsed = Listing.parse(val.name.bcs);
|
|
70
|
+
|
|
71
|
+
acc.listingIds.push(val.fieldId);
|
|
63
72
|
listings.push({
|
|
64
|
-
objectId:
|
|
65
|
-
listingId: val.
|
|
66
|
-
isExclusive:
|
|
73
|
+
objectId: parsed.id,
|
|
74
|
+
listingId: val.fieldId,
|
|
75
|
+
isExclusive: parsed.is_exclusive,
|
|
67
76
|
});
|
|
68
77
|
}
|
|
69
|
-
|
|
70
|
-
|
|
78
|
+
|
|
79
|
+
if (
|
|
80
|
+
baseType ===
|
|
81
|
+
'0x0000000000000000000000000000000000000000000000000000000000000002::kiosk::Lock'
|
|
82
|
+
) {
|
|
83
|
+
lockedItemIds?.push(Lock.parse(val.name.bcs).id);
|
|
71
84
|
}
|
|
72
85
|
|
|
73
|
-
|
|
86
|
+
// Check for ExtensionKey type
|
|
87
|
+
if (
|
|
88
|
+
baseType ===
|
|
89
|
+
'0x0000000000000000000000000000000000000000000000000000000000000002::kiosk_extension::ExtensionKey'
|
|
90
|
+
) {
|
|
74
91
|
acc.extensions.push({
|
|
75
|
-
objectId: val.
|
|
76
|
-
type: normalizeStructTag(
|
|
92
|
+
objectId: val.fieldId,
|
|
93
|
+
type: normalizeStructTag(parsedType.typeParams[0]),
|
|
77
94
|
});
|
|
78
95
|
}
|
|
79
96
|
|
|
@@ -89,10 +106,8 @@ export function extractKioskData(
|
|
|
89
106
|
export function attachListingsAndPrices(
|
|
90
107
|
kioskData: KioskData,
|
|
91
108
|
listings: KioskListing[],
|
|
92
|
-
listingObjects:
|
|
109
|
+
listingObjects: SuiClientTypes.Object[],
|
|
93
110
|
) {
|
|
94
|
-
// map item listings as {item_id: KioskListing}
|
|
95
|
-
// for easier mapping on the nex
|
|
96
111
|
const itemListings = listings.reduce<Record<string, KioskListing>>(
|
|
97
112
|
(acc: Record<string, KioskListing>, item, idx) => {
|
|
98
113
|
acc[item.objectId] = { ...item };
|
|
@@ -101,12 +116,13 @@ export function attachListingsAndPrices(
|
|
|
101
116
|
// that's the case when we don't have the `listingPrices` included.
|
|
102
117
|
if (listingObjects.length === 0) return acc;
|
|
103
118
|
|
|
104
|
-
const
|
|
105
|
-
const data = content?.dataType === 'moveObject' ? content?.fields : null;
|
|
119
|
+
const obj = listingObjects[idx];
|
|
106
120
|
|
|
107
|
-
|
|
121
|
+
// Parse BCS content to extract the price (u64 value)
|
|
122
|
+
if (obj.content) {
|
|
123
|
+
acc[item.objectId].price = bcs.u64().parse(obj.content).toString();
|
|
124
|
+
}
|
|
108
125
|
|
|
109
|
-
acc[item.objectId].price = (data as { value: string }).value;
|
|
110
126
|
return acc;
|
|
111
127
|
},
|
|
112
128
|
{},
|
|
@@ -118,11 +134,12 @@ export function attachListingsAndPrices(
|
|
|
118
134
|
}
|
|
119
135
|
|
|
120
136
|
/**
|
|
121
|
-
* A helper that attaches
|
|
137
|
+
* A helper that attaches object data to kiosk items.
|
|
138
|
+
* Works with core API objects that contain BCS content.
|
|
122
139
|
*/
|
|
123
|
-
export function attachObjects(kioskData: KioskData, objects:
|
|
124
|
-
const mapping = objects.reduce<Record<string,
|
|
125
|
-
(acc: Record<string,
|
|
140
|
+
export function attachObjects(kioskData: KioskData, objects: SuiClientTypes.Object[]) {
|
|
141
|
+
const mapping = objects.reduce<Record<string, SuiClientTypes.Object>>(
|
|
142
|
+
(acc: Record<string, SuiClientTypes.Object>, obj) => {
|
|
126
143
|
acc[obj.objectId] = obj;
|
|
127
144
|
return acc;
|
|
128
145
|
},
|
|
@@ -154,28 +171,30 @@ export function attachLockedItems(kioskData: KioskData, lockedItemIds: string[])
|
|
|
154
171
|
}
|
|
155
172
|
|
|
156
173
|
/**
|
|
157
|
-
* A helper to fetch all
|
|
174
|
+
* A helper to fetch all dynamic field pages.
|
|
158
175
|
* We need that to fetch the kiosk DFs consistently, until we have
|
|
159
176
|
* RPC calls that allow filtering of Type / batch fetching of spec
|
|
160
177
|
*/
|
|
161
178
|
export async function getAllDynamicFields(
|
|
162
|
-
client:
|
|
179
|
+
client: ClientWithCoreApi,
|
|
163
180
|
parentId: string,
|
|
164
181
|
pagination: PaginationArguments<string>,
|
|
165
|
-
) {
|
|
182
|
+
): Promise<DynamicFieldInfo[]> {
|
|
166
183
|
let hasNextPage = true;
|
|
167
|
-
let cursor =
|
|
184
|
+
let cursor: string | null = null;
|
|
168
185
|
const data: DynamicFieldInfo[] = [];
|
|
169
186
|
|
|
170
187
|
while (hasNextPage) {
|
|
171
|
-
const result = await client.
|
|
188
|
+
const result = await client.core.listDynamicFields({
|
|
172
189
|
parentId,
|
|
173
190
|
limit: pagination.limit || undefined,
|
|
174
191
|
cursor,
|
|
175
192
|
});
|
|
176
|
-
|
|
193
|
+
|
|
194
|
+
data.push(...result.dynamicFields);
|
|
195
|
+
|
|
177
196
|
hasNextPage = result.hasNextPage;
|
|
178
|
-
cursor = result.
|
|
197
|
+
cursor = result.cursor;
|
|
179
198
|
}
|
|
180
199
|
|
|
181
200
|
return data;
|
|
@@ -187,62 +206,28 @@ export async function getAllDynamicFields(
|
|
|
187
206
|
* Requests are sent using `Promise.all`.
|
|
188
207
|
*/
|
|
189
208
|
export async function getAllObjects(
|
|
190
|
-
client:
|
|
209
|
+
client: ClientWithCoreApi,
|
|
191
210
|
ids: string[],
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
) {
|
|
195
|
-
const chunks = chunk(ids, limit);
|
|
211
|
+
): Promise<SuiClientTypes.Object[]> {
|
|
212
|
+
const chunks = chunk(ids, DEFAULT_QUERY_LIMIT);
|
|
196
213
|
|
|
197
214
|
const results = await Promise.all(
|
|
198
|
-
chunks.map((
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
215
|
+
chunks.map(async (objectIds) => {
|
|
216
|
+
const { objects } = await client.core.getObjects({
|
|
217
|
+
objectIds,
|
|
218
|
+
include: {
|
|
219
|
+
content: true,
|
|
220
|
+
previousTransaction: true,
|
|
221
|
+
},
|
|
202
222
|
});
|
|
223
|
+
|
|
224
|
+
return objects.filter((obj): obj is SuiClientTypes.Object => !(obj instanceof Error));
|
|
203
225
|
}),
|
|
204
226
|
);
|
|
205
227
|
|
|
206
228
|
return results.flat();
|
|
207
229
|
}
|
|
208
230
|
|
|
209
|
-
/**
|
|
210
|
-
* A helper to return all owned objects, with an optional filter.
|
|
211
|
-
* It parses all the pages and returns the data.
|
|
212
|
-
*/
|
|
213
|
-
export async function getAllOwnedObjects({
|
|
214
|
-
client,
|
|
215
|
-
owner,
|
|
216
|
-
filter,
|
|
217
|
-
limit = DEFAULT_QUERY_LIMIT,
|
|
218
|
-
options = { showType: true, showContent: true },
|
|
219
|
-
}: {
|
|
220
|
-
client: SuiClient;
|
|
221
|
-
owner: string;
|
|
222
|
-
filter?: SuiObjectDataFilter;
|
|
223
|
-
options?: SuiObjectDataOptions;
|
|
224
|
-
limit?: number;
|
|
225
|
-
}) {
|
|
226
|
-
let hasNextPage = true;
|
|
227
|
-
let cursor = undefined;
|
|
228
|
-
const data: SuiObjectResponse[] = [];
|
|
229
|
-
|
|
230
|
-
while (hasNextPage) {
|
|
231
|
-
const result = await client.getOwnedObjects({
|
|
232
|
-
owner,
|
|
233
|
-
filter,
|
|
234
|
-
limit,
|
|
235
|
-
cursor,
|
|
236
|
-
options,
|
|
237
|
-
});
|
|
238
|
-
data.push(...result.data);
|
|
239
|
-
hasNextPage = result.hasNextPage;
|
|
240
|
-
cursor = result.nextCursor;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
return data;
|
|
244
|
-
}
|
|
245
|
-
|
|
246
231
|
/**
|
|
247
232
|
* Converts a number to basis points.
|
|
248
233
|
* Supports up to 2 decimal points.
|
|
@@ -255,29 +240,6 @@ export function percentageToBasisPoints(percentage: number) {
|
|
|
255
240
|
return Math.ceil(percentage * 100);
|
|
256
241
|
}
|
|
257
242
|
|
|
258
|
-
/**
|
|
259
|
-
* A helper to parse a transfer policy Cap into a usable object.
|
|
260
|
-
*/
|
|
261
|
-
export function parseTransferPolicyCapObject(
|
|
262
|
-
item: SuiObjectResponse,
|
|
263
|
-
): TransferPolicyCap | undefined {
|
|
264
|
-
const type = (item?.data?.content as { type: string })?.type;
|
|
265
|
-
|
|
266
|
-
//@ts-ignore-next-line
|
|
267
|
-
const policy = item?.data?.content?.fields?.policy_id as string;
|
|
268
|
-
|
|
269
|
-
if (!type.includes(TRANSFER_POLICY_CAP_TYPE)) return undefined;
|
|
270
|
-
|
|
271
|
-
// Transform 0x2::transfer_policy::TransferPolicyCap<itemType> -> itemType
|
|
272
|
-
const objectType = type.replace(TRANSFER_POLICY_CAP_TYPE + '<', '').slice(0, -1);
|
|
273
|
-
|
|
274
|
-
return {
|
|
275
|
-
policyId: policy,
|
|
276
|
-
policyCapId: item.data?.objectId!,
|
|
277
|
-
type: objectType,
|
|
278
|
-
};
|
|
279
|
-
}
|
|
280
|
-
|
|
281
243
|
// Normalizes the packageId part of a rule's type.
|
|
282
244
|
export function getNormalizedRuleType(rule: string) {
|
|
283
245
|
const normalizedRuleAddress = rule.split('::');
|
package/dist/cjs/bcs.d.ts
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export declare const KioskType: import("@mysten/sui/bcs").BcsStruct<{
|
|
2
|
-
id: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
3
|
-
profits: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
4
|
-
owner: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
5
|
-
itemCount: import("@mysten/sui/bcs").BcsType<number, number, "u32">;
|
|
6
|
-
allowExtensions: import("@mysten/sui/bcs").BcsType<boolean, boolean, "bool">;
|
|
7
|
-
}, string>;
|
|
8
|
-
export declare const KioskPurchaseCap: import("@mysten/sui/bcs").BcsStruct<{
|
|
9
|
-
id: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
10
|
-
kioskId: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
11
|
-
itemId: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
12
|
-
minPrice: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
13
|
-
}, string>;
|
|
14
|
-
export declare const TransferPolicyCreatedEvent: import("@mysten/sui/bcs").BcsStruct<{
|
|
15
|
-
id: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
16
|
-
}, string>;
|
|
17
|
-
export declare const TransferPolicyType: import("@mysten/sui/bcs").BcsStruct<{
|
|
18
|
-
id: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
19
|
-
balance: import("@mysten/sui/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
20
|
-
rules: import("@mysten/sui/bcs").BcsType<string[], Iterable<string> & {
|
|
21
|
-
length: number;
|
|
22
|
-
}, string>;
|
|
23
|
-
}, string>;
|
package/dist/cjs/bcs.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var bcs_exports = {};
|
|
20
|
-
__export(bcs_exports, {
|
|
21
|
-
KioskPurchaseCap: () => KioskPurchaseCap,
|
|
22
|
-
KioskType: () => KioskType,
|
|
23
|
-
TransferPolicyCreatedEvent: () => TransferPolicyCreatedEvent,
|
|
24
|
-
TransferPolicyType: () => TransferPolicyType
|
|
25
|
-
});
|
|
26
|
-
module.exports = __toCommonJS(bcs_exports);
|
|
27
|
-
var import_bcs = require("@mysten/sui/bcs");
|
|
28
|
-
var import_types = require("./types/index.js");
|
|
29
|
-
const KioskType = import_bcs.bcs.struct(import_types.KIOSK_TYPE, {
|
|
30
|
-
id: import_bcs.bcs.Address,
|
|
31
|
-
profits: import_bcs.bcs.u64(),
|
|
32
|
-
owner: import_bcs.bcs.Address,
|
|
33
|
-
itemCount: import_bcs.bcs.u32(),
|
|
34
|
-
allowExtensions: import_bcs.bcs.bool()
|
|
35
|
-
});
|
|
36
|
-
const KioskPurchaseCap = import_bcs.bcs.struct(import_types.KIOSK_PURCHASE_CAP, {
|
|
37
|
-
id: import_bcs.bcs.Address,
|
|
38
|
-
kioskId: import_bcs.bcs.Address,
|
|
39
|
-
itemId: import_bcs.bcs.Address,
|
|
40
|
-
minPrice: import_bcs.bcs.u64()
|
|
41
|
-
});
|
|
42
|
-
const TransferPolicyCreatedEvent = import_bcs.bcs.struct(import_types.TRANSFER_POLICY_CREATED_EVENT, {
|
|
43
|
-
id: import_bcs.bcs.Address
|
|
44
|
-
});
|
|
45
|
-
const TransferPolicyType = import_bcs.bcs.struct(import_types.TRANSFER_POLICY_TYPE, {
|
|
46
|
-
id: import_bcs.bcs.Address,
|
|
47
|
-
balance: import_bcs.bcs.u64(),
|
|
48
|
-
rules: import_bcs.bcs.vector(import_bcs.bcs.string())
|
|
49
|
-
});
|
|
50
|
-
//# sourceMappingURL=bcs.js.map
|
package/dist/cjs/bcs.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/bcs.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs } from '@mysten/sui/bcs';\n\nimport {\n\tKIOSK_PURCHASE_CAP,\n\tKIOSK_TYPE,\n\tTRANSFER_POLICY_CREATED_EVENT,\n\tTRANSFER_POLICY_TYPE,\n} from './types/index.js';\n\n// Register the `Kiosk` struct for faster queries.\nexport const KioskType = bcs.struct(KIOSK_TYPE, {\n\tid: bcs.Address,\n\tprofits: bcs.u64(),\n\towner: bcs.Address,\n\titemCount: bcs.u32(),\n\tallowExtensions: bcs.bool(),\n});\n\n// Register the `PurchaseCap` for faster queries.\nexport const KioskPurchaseCap = bcs.struct(KIOSK_PURCHASE_CAP, {\n\tid: bcs.Address,\n\tkioskId: bcs.Address,\n\titemId: bcs.Address,\n\tminPrice: bcs.u64(),\n});\n\n// Register the `TransferPolicyCreated` event data.\nexport const TransferPolicyCreatedEvent = bcs.struct(TRANSFER_POLICY_CREATED_EVENT, {\n\tid: bcs.Address,\n});\n\nexport const TransferPolicyType = bcs.struct(TRANSFER_POLICY_TYPE, {\n\tid: bcs.Address,\n\tbalance: bcs.u64(),\n\trules: bcs.vector(bcs.string()),\n});\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,iBAAoB;AAEpB,mBAKO;AAGA,MAAM,YAAY,eAAI,OAAO,yBAAY;AAAA,EAC/C,IAAI,eAAI;AAAA,EACR,SAAS,eAAI,IAAI;AAAA,EACjB,OAAO,eAAI;AAAA,EACX,WAAW,eAAI,IAAI;AAAA,EACnB,iBAAiB,eAAI,KAAK;AAC3B,CAAC;AAGM,MAAM,mBAAmB,eAAI,OAAO,iCAAoB;AAAA,EAC9D,IAAI,eAAI;AAAA,EACR,SAAS,eAAI;AAAA,EACb,QAAQ,eAAI;AAAA,EACZ,UAAU,eAAI,IAAI;AACnB,CAAC;AAGM,MAAM,6BAA6B,eAAI,OAAO,4CAA+B;AAAA,EACnF,IAAI,eAAI;AACT,CAAC;AAEM,MAAM,qBAAqB,eAAI,OAAO,mCAAsB;AAAA,EAClE,IAAI,eAAI;AAAA,EACR,SAAS,eAAI,IAAI;AAAA,EACjB,OAAO,eAAI,OAAO,eAAI,OAAO,CAAC;AAC/B,CAAC;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import type { PaginationArguments, SuiClient } from '@mysten/sui/client';
|
|
2
|
-
import type { BaseRulePackageIds, TransferPolicyRule } from '../constants.js';
|
|
3
|
-
import { Network } from '../types/index.js';
|
|
4
|
-
import type { FetchKioskOptions, KioskClientOptions, KioskData, OwnedKiosks } from '../types/index.js';
|
|
5
|
-
/**
|
|
6
|
-
* A Client that allows you to interact with kiosk.
|
|
7
|
-
* Offers utilities to query kiosk, craft transactions to edit your own kiosk,
|
|
8
|
-
* purchase, manage transfer policies, create new kiosks etc.
|
|
9
|
-
* If you pass packageIds, all functionality will be managed using these packages.
|
|
10
|
-
*/
|
|
11
|
-
export declare class KioskClient {
|
|
12
|
-
client: SuiClient;
|
|
13
|
-
network: Network;
|
|
14
|
-
rules: TransferPolicyRule[];
|
|
15
|
-
packageIds?: BaseRulePackageIds;
|
|
16
|
-
constructor(options: KioskClientOptions);
|
|
17
|
-
/**
|
|
18
|
-
* Get an addresses's owned kiosks.
|
|
19
|
-
* @param address The address for which we want to retrieve the kiosks.
|
|
20
|
-
* @param pagination Optional pagination arguments.
|
|
21
|
-
* @returns An Object containing all the `kioskOwnerCap` objects as well as the kioskIds.
|
|
22
|
-
*/
|
|
23
|
-
getOwnedKiosks({ address, pagination, }: {
|
|
24
|
-
address: string;
|
|
25
|
-
pagination?: PaginationArguments<string>;
|
|
26
|
-
}): Promise<OwnedKiosks>;
|
|
27
|
-
/**
|
|
28
|
-
* Fetches the kiosk contents.
|
|
29
|
-
* @param id The ID of the kiosk to fetch.
|
|
30
|
-
* @param options Optional to control the fetch behavior.
|
|
31
|
-
* @returns
|
|
32
|
-
*/
|
|
33
|
-
getKiosk({ id, options }: {
|
|
34
|
-
id: string;
|
|
35
|
-
options?: FetchKioskOptions;
|
|
36
|
-
}): Promise<KioskData>;
|
|
37
|
-
/**
|
|
38
|
-
* Fetch the extension data (if any) for a kiosk, by type
|
|
39
|
-
* @param kioskId The ID of the kiosk to lookup
|
|
40
|
-
* @param extensionType The Type of the extension (can be used from by using the type returned by `getKiosk()`)
|
|
41
|
-
*/
|
|
42
|
-
getKioskExtension({ kioskId, type }: {
|
|
43
|
-
kioskId: string;
|
|
44
|
-
type: string;
|
|
45
|
-
}): Promise<import("../types/kiosk.js").KioskExtension | null>;
|
|
46
|
-
/**
|
|
47
|
-
* Query the Transfer Policy(ies) for type `T`.
|
|
48
|
-
* @param type The Type we're querying for (E.g `0xMyAddress::hero::Hero`)
|
|
49
|
-
*/
|
|
50
|
-
getTransferPolicies({ type }: {
|
|
51
|
-
type: string;
|
|
52
|
-
}): Promise<import("../types/transfer-policy.js").TransferPolicy[]>;
|
|
53
|
-
/**
|
|
54
|
-
* Query all the owned transfer policies for an address.
|
|
55
|
-
* Returns `TransferPolicyCap` which uncludes `policyId, policyCapId, type`.
|
|
56
|
-
* @param address The address we're searching the owned transfer policies for.
|
|
57
|
-
*/
|
|
58
|
-
getOwnedTransferPolicies({ address }: {
|
|
59
|
-
address: string;
|
|
60
|
-
}): Promise<import("../types/transfer-policy.js").TransferPolicyCap[] | undefined>;
|
|
61
|
-
/**
|
|
62
|
-
* Query the Transfer Policy Cap for type `T`, owned by `address`
|
|
63
|
-
* @param type The Type `T` for the object
|
|
64
|
-
* @param address The address that owns the cap.
|
|
65
|
-
*/
|
|
66
|
-
getOwnedTransferPoliciesByType({ type, address }: {
|
|
67
|
-
type: string;
|
|
68
|
-
address: string;
|
|
69
|
-
}): Promise<import("../types/transfer-policy.js").TransferPolicyCap[]>;
|
|
70
|
-
addRuleResolver(rule: TransferPolicyRule): void;
|
|
71
|
-
/**
|
|
72
|
-
* A convenient helper to get the packageIds for our supported ruleset,
|
|
73
|
-
* based on `kioskClient` configuration.
|
|
74
|
-
*/
|
|
75
|
-
getRulePackageId(rule: 'kioskLockRulePackageId' | 'royaltyRulePackageId' | 'personalKioskRulePackageId' | 'floorPriceRulePackageId'): string;
|
|
76
|
-
}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var kiosk_client_exports = {};
|
|
20
|
-
__export(kiosk_client_exports, {
|
|
21
|
-
KioskClient: () => KioskClient
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(kiosk_client_exports);
|
|
24
|
-
var import_constants = require("../constants.js");
|
|
25
|
-
var import_kiosk = require("../query/kiosk.js");
|
|
26
|
-
var import_transfer_policy = require("../query/transfer-policy.js");
|
|
27
|
-
var import_types = require("../types/index.js");
|
|
28
|
-
class KioskClient {
|
|
29
|
-
constructor(options) {
|
|
30
|
-
this.client = options.client;
|
|
31
|
-
this.network = options.network;
|
|
32
|
-
this.rules = import_constants.rules;
|
|
33
|
-
this.packageIds = options.packageIds;
|
|
34
|
-
if (options.packageIds) this.rules.push(...(0, import_constants.getBaseRules)(options.packageIds));
|
|
35
|
-
}
|
|
36
|
-
/// Querying
|
|
37
|
-
/**
|
|
38
|
-
* Get an addresses's owned kiosks.
|
|
39
|
-
* @param address The address for which we want to retrieve the kiosks.
|
|
40
|
-
* @param pagination Optional pagination arguments.
|
|
41
|
-
* @returns An Object containing all the `kioskOwnerCap` objects as well as the kioskIds.
|
|
42
|
-
*/
|
|
43
|
-
async getOwnedKiosks({
|
|
44
|
-
address,
|
|
45
|
-
pagination
|
|
46
|
-
}) {
|
|
47
|
-
const personalPackageId = this.packageIds?.personalKioskRulePackageId || import_constants.PERSONAL_KIOSK_RULE_ADDRESS[this.network];
|
|
48
|
-
return (0, import_kiosk.getOwnedKiosks)(this.client, address, {
|
|
49
|
-
pagination,
|
|
50
|
-
personalKioskType: personalPackageId ? `${personalPackageId}::personal_kiosk::PersonalKioskCap` : ""
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Fetches the kiosk contents.
|
|
55
|
-
* @param id The ID of the kiosk to fetch.
|
|
56
|
-
* @param options Optional to control the fetch behavior.
|
|
57
|
-
* @returns
|
|
58
|
-
*/
|
|
59
|
-
async getKiosk({ id, options }) {
|
|
60
|
-
return (await (0, import_kiosk.fetchKiosk)(this.client, id, {}, options || {})).data;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Fetch the extension data (if any) for a kiosk, by type
|
|
64
|
-
* @param kioskId The ID of the kiosk to lookup
|
|
65
|
-
* @param extensionType The Type of the extension (can be used from by using the type returned by `getKiosk()`)
|
|
66
|
-
*/
|
|
67
|
-
async getKioskExtension({ kioskId, type }) {
|
|
68
|
-
return (0, import_kiosk.fetchKioskExtension)(this.client, kioskId, type);
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Query the Transfer Policy(ies) for type `T`.
|
|
72
|
-
* @param type The Type we're querying for (E.g `0xMyAddress::hero::Hero`)
|
|
73
|
-
*/
|
|
74
|
-
async getTransferPolicies({ type }) {
|
|
75
|
-
return (0, import_transfer_policy.queryTransferPolicy)(this.client, type);
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Query all the owned transfer policies for an address.
|
|
79
|
-
* Returns `TransferPolicyCap` which uncludes `policyId, policyCapId, type`.
|
|
80
|
-
* @param address The address we're searching the owned transfer policies for.
|
|
81
|
-
*/
|
|
82
|
-
async getOwnedTransferPolicies({ address }) {
|
|
83
|
-
return (0, import_transfer_policy.queryOwnedTransferPolicies)(this.client, address);
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Query the Transfer Policy Cap for type `T`, owned by `address`
|
|
87
|
-
* @param type The Type `T` for the object
|
|
88
|
-
* @param address The address that owns the cap.
|
|
89
|
-
*/
|
|
90
|
-
async getOwnedTransferPoliciesByType({ type, address }) {
|
|
91
|
-
return (0, import_transfer_policy.queryTransferPolicyCapsByType)(this.client, address, type);
|
|
92
|
-
}
|
|
93
|
-
// Someone would just have to create a `kiosk-client.ts` file in their project, initialize a KioskClient
|
|
94
|
-
// and call the `addRuleResolver` function. Each rule has a `resolve` function.
|
|
95
|
-
// The resolve function is automatically called on `purchaseAndResolve` function call.
|
|
96
|
-
addRuleResolver(rule) {
|
|
97
|
-
if (this.rules.find((x) => x.rule === rule.rule))
|
|
98
|
-
throw new Error(`Rule ${rule.rule} resolver already exists.`);
|
|
99
|
-
this.rules.push(rule);
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* A convenient helper to get the packageIds for our supported ruleset,
|
|
103
|
-
* based on `kioskClient` configuration.
|
|
104
|
-
*/
|
|
105
|
-
getRulePackageId(rule) {
|
|
106
|
-
const rules2 = this.packageIds || {};
|
|
107
|
-
const network = this.network;
|
|
108
|
-
if (!rules2[rule] && network !== import_types.Network.MAINNET && network !== import_types.Network.TESTNET) {
|
|
109
|
-
throw new Error(`Missing packageId for rule ${rule}`);
|
|
110
|
-
}
|
|
111
|
-
switch (rule) {
|
|
112
|
-
case "kioskLockRulePackageId":
|
|
113
|
-
return rules2[rule] || import_constants.KIOSK_LOCK_RULE_ADDRESS[network];
|
|
114
|
-
case "royaltyRulePackageId":
|
|
115
|
-
return rules2[rule] || import_constants.ROYALTY_RULE_ADDRESS[network];
|
|
116
|
-
case "personalKioskRulePackageId":
|
|
117
|
-
return rules2[rule] || import_constants.PERSONAL_KIOSK_RULE_ADDRESS[network];
|
|
118
|
-
case "floorPriceRulePackageId":
|
|
119
|
-
return rules2[rule] || import_constants.FLOOR_PRICE_RULE_ADDRESS[network];
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
//# sourceMappingURL=kiosk-client.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/client/kiosk-client.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { PaginationArguments, SuiClient } from '@mysten/sui/client';\n\nimport {\n\tFLOOR_PRICE_RULE_ADDRESS,\n\tgetBaseRules,\n\tKIOSK_LOCK_RULE_ADDRESS,\n\tPERSONAL_KIOSK_RULE_ADDRESS,\n\tROYALTY_RULE_ADDRESS,\n\trules,\n} from '../constants.js';\nimport type { BaseRulePackageIds, TransferPolicyRule } from '../constants.js';\nimport { fetchKiosk, fetchKioskExtension, getOwnedKiosks } from '../query/kiosk.js';\nimport {\n\tqueryOwnedTransferPolicies,\n\tqueryTransferPolicy,\n\tqueryTransferPolicyCapsByType,\n} from '../query/transfer-policy.js';\nimport { Network } from '../types/index.js';\nimport type {\n\tFetchKioskOptions,\n\tKioskClientOptions,\n\tKioskData,\n\tOwnedKiosks,\n} from '../types/index.js';\n\n/**\n * A Client that allows you to interact with kiosk.\n * Offers utilities to query kiosk, craft transactions to edit your own kiosk,\n * purchase, manage transfer policies, create new kiosks etc.\n * If you pass packageIds, all functionality will be managed using these packages.\n */\nexport class KioskClient {\n\tclient: SuiClient;\n\tnetwork: Network;\n\trules: TransferPolicyRule[];\n\tpackageIds?: BaseRulePackageIds;\n\n\tconstructor(options: KioskClientOptions) {\n\t\tthis.client = options.client;\n\t\tthis.network = options.network;\n\t\tthis.rules = rules; // add all the default rules.\n\t\tthis.packageIds = options.packageIds;\n\n\t\t// Add the custom Package Ids too on the rule list.\n\t\t// Only adds the rules that are passed in the packageId object.\n\t\tif (options.packageIds) this.rules.push(...getBaseRules(options.packageIds));\n\t}\n\n\t/// Querying\n\n\t/**\n\t * Get an addresses's owned kiosks.\n\t * @param address The address for which we want to retrieve the kiosks.\n\t * @param pagination Optional pagination arguments.\n\t * @returns An Object containing all the `kioskOwnerCap` objects as well as the kioskIds.\n\t */\n\tasync getOwnedKiosks({\n\t\taddress,\n\t\tpagination,\n\t}: {\n\t\taddress: string;\n\t\tpagination?: PaginationArguments<string>;\n\t}): Promise<OwnedKiosks> {\n\t\tconst personalPackageId =\n\t\t\tthis.packageIds?.personalKioskRulePackageId || PERSONAL_KIOSK_RULE_ADDRESS[this.network];\n\n\t\treturn getOwnedKiosks(this.client, address, {\n\t\t\tpagination,\n\t\t\tpersonalKioskType: personalPackageId\n\t\t\t\t? `${personalPackageId}::personal_kiosk::PersonalKioskCap`\n\t\t\t\t: '',\n\t\t});\n\t}\n\n\t/**\n\t * Fetches the kiosk contents.\n\t * @param id The ID of the kiosk to fetch.\n\t * @param options Optional to control the fetch behavior.\n\t * @returns\n\t */\n\tasync getKiosk({ id, options }: { id: string; options?: FetchKioskOptions }): Promise<KioskData> {\n\t\treturn (await fetchKiosk(this.client, id, {}, options || {})).data;\n\t}\n\n\t/**\n\t * Fetch the extension data (if any) for a kiosk, by type\n\t * @param kioskId The ID of the kiosk to lookup\n\t * @param extensionType The Type of the extension (can be used from by using the type returned by `getKiosk()`)\n\t */\n\tasync getKioskExtension({ kioskId, type }: { kioskId: string; type: string }) {\n\t\treturn fetchKioskExtension(this.client, kioskId, type);\n\t}\n\n\t/**\n\t * Query the Transfer Policy(ies) for type `T`.\n\t * @param type The Type we're querying for (E.g `0xMyAddress::hero::Hero`)\n\t */\n\tasync getTransferPolicies({ type }: { type: string }) {\n\t\treturn queryTransferPolicy(this.client, type);\n\t}\n\n\t/**\n\t * Query all the owned transfer policies for an address.\n\t * Returns `TransferPolicyCap` which uncludes `policyId, policyCapId, type`.\n\t * @param address The address we're searching the owned transfer policies for.\n\t */\n\tasync getOwnedTransferPolicies({ address }: { address: string }) {\n\t\treturn queryOwnedTransferPolicies(this.client, address);\n\t}\n\n\t/**\n\t * Query the Transfer Policy Cap for type `T`, owned by `address`\n\t * @param type The Type `T` for the object\n\t * @param address The address that owns the cap.\n\t */\n\tasync getOwnedTransferPoliciesByType({ type, address }: { type: string; address: string }) {\n\t\treturn queryTransferPolicyCapsByType(this.client, address, type);\n\t}\n\n\t// Someone would just have to create a `kiosk-client.ts` file in their project, initialize a KioskClient\n\t// and call the `addRuleResolver` function. Each rule has a `resolve` function.\n\t// The resolve function is automatically called on `purchaseAndResolve` function call.\n\taddRuleResolver(rule: TransferPolicyRule) {\n\t\tif (this.rules.find((x) => x.rule === rule.rule))\n\t\t\tthrow new Error(`Rule ${rule.rule} resolver already exists.`);\n\t\tthis.rules.push(rule);\n\t}\n\n\t/**\n\t * A convenient helper to get the packageIds for our supported ruleset,\n\t * based on `kioskClient` configuration.\n\t */\n\tgetRulePackageId(\n\t\trule:\n\t\t\t| 'kioskLockRulePackageId'\n\t\t\t| 'royaltyRulePackageId'\n\t\t\t| 'personalKioskRulePackageId'\n\t\t\t| 'floorPriceRulePackageId',\n\t) {\n\t\tconst rules = this.packageIds || {};\n\t\tconst network = this.network;\n\n\t\t/// Check existence of rule based on network and throw an error if it's not found.\n\t\t/// We always have a fallback for testnet or mainnet.\n\t\tif (!rules[rule] && network !== Network.MAINNET && network !== Network.TESTNET) {\n\t\t\tthrow new Error(`Missing packageId for rule ${rule}`);\n\t\t}\n\n\t\tswitch (rule) {\n\t\t\tcase 'kioskLockRulePackageId':\n\t\t\t\treturn rules[rule] || KIOSK_LOCK_RULE_ADDRESS[network];\n\t\t\tcase 'royaltyRulePackageId':\n\t\t\t\treturn rules[rule] || ROYALTY_RULE_ADDRESS[network];\n\t\t\tcase 'personalKioskRulePackageId':\n\t\t\t\treturn rules[rule] || PERSONAL_KIOSK_RULE_ADDRESS[network];\n\t\t\tcase 'floorPriceRulePackageId':\n\t\t\t\treturn rules[rule] || FLOOR_PRICE_RULE_ADDRESS[network];\n\t\t}\n\t}\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,uBAOO;AAEP,mBAAgE;AAChE,6BAIO;AACP,mBAAwB;AAcjB,MAAM,YAAY;AAAA,EAMxB,YAAY,SAA6B;AACxC,SAAK,SAAS,QAAQ;AACtB,SAAK,UAAU,QAAQ;AACvB,SAAK,QAAQ;AACb,SAAK,aAAa,QAAQ;AAI1B,QAAI,QAAQ,WAAY,MAAK,MAAM,KAAK,OAAG,+BAAa,QAAQ,UAAU,CAAC;AAAA,EAC5E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,eAAe;AAAA,IACpB;AAAA,IACA;AAAA,EACD,GAGyB;AACxB,UAAM,oBACL,KAAK,YAAY,8BAA8B,6CAA4B,KAAK,OAAO;AAExF,eAAO,6BAAe,KAAK,QAAQ,SAAS;AAAA,MAC3C;AAAA,MACA,mBAAmB,oBAChB,GAAG,iBAAiB,uCACpB;AAAA,IACJ,CAAC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,SAAS,EAAE,IAAI,QAAQ,GAAoE;AAChG,YAAQ,UAAM,yBAAW,KAAK,QAAQ,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,kBAAkB,EAAE,SAAS,KAAK,GAAsC;AAC7E,eAAO,kCAAoB,KAAK,QAAQ,SAAS,IAAI;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,oBAAoB,EAAE,KAAK,GAAqB;AACrD,eAAO,4CAAoB,KAAK,QAAQ,IAAI;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,yBAAyB,EAAE,QAAQ,GAAwB;AAChE,eAAO,mDAA2B,KAAK,QAAQ,OAAO;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,+BAA+B,EAAE,MAAM,QAAQ,GAAsC;AAC1F,eAAO,sDAA8B,KAAK,QAAQ,SAAS,IAAI;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAgB,MAA0B;AACzC,QAAI,KAAK,MAAM,KAAK,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI;AAC9C,YAAM,IAAI,MAAM,QAAQ,KAAK,IAAI,2BAA2B;AAC7D,SAAK,MAAM,KAAK,IAAI;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,iBACC,MAKC;AACD,UAAMA,SAAQ,KAAK,cAAc,CAAC;AAClC,UAAM,UAAU,KAAK;AAIrB,QAAI,CAACA,OAAM,IAAI,KAAK,YAAY,qBAAQ,WAAW,YAAY,qBAAQ,SAAS;AAC/E,YAAM,IAAI,MAAM,8BAA8B,IAAI,EAAE;AAAA,IACrD;AAEA,YAAQ,MAAM;AAAA,MACb,KAAK;AACJ,eAAOA,OAAM,IAAI,KAAK,yCAAwB,OAAO;AAAA,MACtD,KAAK;AACJ,eAAOA,OAAM,IAAI,KAAK,sCAAqB,OAAO;AAAA,MACnD,KAAK;AACJ,eAAOA,OAAM,IAAI,KAAK,6CAA4B,OAAO;AAAA,MAC1D,KAAK;AACJ,eAAOA,OAAM,IAAI,KAAK,0CAAyB,OAAO;AAAA,IACxD;AAAA,EACD;AACD;",
|
|
6
|
-
"names": ["rules"]
|
|
7
|
-
}
|