@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.
Files changed (267) hide show
  1. package/CHANGELOG.md +114 -2
  2. package/dist/client/kiosk-client.d.mts +126 -0
  3. package/dist/client/kiosk-client.d.mts.map +1 -0
  4. package/dist/client/kiosk-client.mjs +124 -0
  5. package/dist/client/kiosk-client.mjs.map +1 -0
  6. package/dist/client/kiosk-transaction.d.mts +236 -0
  7. package/dist/client/kiosk-transaction.d.mts.map +1 -0
  8. package/dist/client/kiosk-transaction.mjs +472 -0
  9. package/dist/client/kiosk-transaction.mjs.map +1 -0
  10. package/dist/client/tp-transaction.d.mts +139 -0
  11. package/dist/client/tp-transaction.d.mts.map +1 -0
  12. package/dist/client/tp-transaction.mjs +273 -0
  13. package/dist/client/tp-transaction.mjs.map +1 -0
  14. package/dist/constants.d.mts +42 -0
  15. package/dist/constants.d.mts.map +1 -0
  16. package/dist/constants.mjs +62 -0
  17. package/dist/constants.mjs.map +1 -0
  18. package/dist/contracts/0x2/bag.mjs +19 -0
  19. package/dist/contracts/0x2/bag.mjs.map +1 -0
  20. package/dist/contracts/0x2/balance.mjs +20 -0
  21. package/dist/contracts/0x2/balance.mjs.map +1 -0
  22. package/dist/contracts/0x2/deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.mjs +16 -0
  23. package/dist/contracts/0x2/deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.mjs.map +1 -0
  24. package/dist/contracts/0x2/kiosk.mjs +244 -0
  25. package/dist/contracts/0x2/kiosk.mjs.map +1 -0
  26. package/dist/contracts/0x2/kiosk_extension.mjs +25 -0
  27. package/dist/contracts/0x2/kiosk_extension.mjs.map +1 -0
  28. package/dist/contracts/0x2/transfer_policy.mjs +99 -0
  29. package/dist/contracts/0x2/transfer_policy.mjs.map +1 -0
  30. package/dist/contracts/0x2/vec_set.mjs +18 -0
  31. package/dist/contracts/0x2/vec_set.mjs.map +1 -0
  32. package/dist/contracts/kiosk/deps/sui/kiosk.mjs +98 -0
  33. package/dist/contracts/kiosk/deps/sui/kiosk.mjs.map +1 -0
  34. package/dist/contracts/kiosk/floor_price_rule.mjs +70 -0
  35. package/dist/contracts/kiosk/floor_price_rule.mjs.map +1 -0
  36. package/dist/contracts/kiosk/kiosk_lock_rule.mjs +72 -0
  37. package/dist/contracts/kiosk/kiosk_lock_rule.mjs.map +1 -0
  38. package/dist/contracts/kiosk/personal_kiosk.mjs +102 -0
  39. package/dist/contracts/kiosk/personal_kiosk.mjs.map +1 -0
  40. package/dist/contracts/kiosk/personal_kiosk_rule.mjs +66 -0
  41. package/dist/contracts/kiosk/personal_kiosk_rule.mjs.map +1 -0
  42. package/dist/contracts/kiosk/royalty_rule.mjs +115 -0
  43. package/dist/contracts/kiosk/royalty_rule.mjs.map +1 -0
  44. package/dist/contracts/utils/index.mjs +118 -0
  45. package/dist/contracts/utils/index.mjs.map +1 -0
  46. package/dist/index.d.mts +9 -0
  47. package/dist/index.mjs +9 -0
  48. package/dist/query/client-utils.mjs +30 -0
  49. package/dist/query/client-utils.mjs.map +1 -0
  50. package/dist/query/kiosk.mjs +154 -0
  51. package/dist/query/kiosk.mjs.map +1 -0
  52. package/dist/query/transfer-policy.mjs +110 -0
  53. package/dist/query/transfer-policy.mjs.map +1 -0
  54. package/dist/tx/kiosk.mjs +20 -0
  55. package/dist/tx/kiosk.mjs.map +1 -0
  56. package/dist/tx/rules/resolve.mjs +114 -0
  57. package/dist/tx/rules/resolve.mjs.map +1 -0
  58. package/dist/tx/transfer-policy.mjs +38 -0
  59. package/dist/tx/transfer-policy.mjs.map +1 -0
  60. package/dist/types/index.d.mts +23 -0
  61. package/dist/types/index.d.mts.map +1 -0
  62. package/dist/types/kiosk.d.mts +165 -0
  63. package/dist/types/kiosk.d.mts.map +1 -0
  64. package/dist/types/kiosk.mjs +21 -0
  65. package/dist/types/kiosk.mjs.map +1 -0
  66. package/dist/types/transfer-policy.d.mts +56 -0
  67. package/dist/types/transfer-policy.d.mts.map +1 -0
  68. package/dist/types/transfer-policy.mjs +19 -0
  69. package/dist/types/transfer-policy.mjs.map +1 -0
  70. package/dist/utils.d.mts +45 -0
  71. package/dist/utils.d.mts.map +1 -0
  72. package/dist/utils.mjs +156 -0
  73. package/dist/utils.mjs.map +1 -0
  74. package/package.json +31 -20
  75. package/src/client/kiosk-client.ts +42 -5
  76. package/src/client/kiosk-transaction.ts +144 -65
  77. package/src/client/tp-transaction.ts +149 -95
  78. package/src/constants.ts +19 -24
  79. package/src/contracts/0x2/accumulator.ts +24 -0
  80. package/src/contracts/0x2/accumulator_metadata.ts +38 -0
  81. package/src/contracts/0x2/accumulator_settlement.ts +14 -0
  82. package/src/contracts/0x2/address.ts +145 -0
  83. package/src/contracts/0x2/address_alias.ts +92 -0
  84. package/src/contracts/0x2/authenticator_state.ts +44 -0
  85. package/src/contracts/0x2/bag.ts +192 -0
  86. package/src/contracts/0x2/balance.ts +269 -0
  87. package/src/contracts/0x2/bcs.ts +495 -0
  88. package/src/contracts/0x2/bls12381.ts +717 -0
  89. package/src/contracts/0x2/borrow.ts +99 -0
  90. package/src/contracts/0x2/clock.ts +30 -0
  91. package/src/contracts/0x2/coin.ts +977 -0
  92. package/src/contracts/0x2/coin_registry.ts +874 -0
  93. package/src/contracts/0x2/config.ts +30 -0
  94. package/src/contracts/0x2/deny_list.ts +55 -0
  95. package/src/contracts/0x2/deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.ts +12 -0
  96. package/src/contracts/0x2/derived_object.ts +95 -0
  97. package/src/contracts/0x2/display.ts +258 -0
  98. package/src/contracts/0x2/dynamic_field.ts +171 -0
  99. package/src/contracts/0x2/dynamic_object_field.ts +167 -0
  100. package/src/contracts/0x2/ecdsa_k1.ts +65 -0
  101. package/src/contracts/0x2/ecdsa_r1.ts +49 -0
  102. package/src/contracts/0x2/ecvrf.ts +29 -0
  103. package/src/contracts/0x2/ed25519.ts +25 -0
  104. package/src/contracts/0x2/event.ts +42 -0
  105. package/src/contracts/0x2/funds_accumulator.ts +86 -0
  106. package/src/contracts/0x2/groth16.ts +171 -0
  107. package/src/contracts/0x2/group_ops.ts +49 -0
  108. package/src/contracts/0x2/hash.ts +37 -0
  109. package/src/contracts/0x2/hex.ts +37 -0
  110. package/src/contracts/0x2/hmac.ts +21 -0
  111. package/src/contracts/0x2/kiosk.ts +797 -0
  112. package/src/contracts/0x2/kiosk_extension.ts +270 -0
  113. package/src/contracts/0x2/linked_table.ts +354 -0
  114. package/src/contracts/0x2/math.ts +117 -0
  115. package/src/contracts/0x2/nitro_attestation.ts +186 -0
  116. package/src/contracts/0x2/object.ts +249 -0
  117. package/src/contracts/0x2/object_bag.ts +210 -0
  118. package/src/contracts/0x2/object_table.ts +200 -0
  119. package/src/contracts/0x2/package.ts +414 -0
  120. package/src/contracts/0x2/party.ts +37 -0
  121. package/src/contracts/0x2/pay.ts +153 -0
  122. package/src/contracts/0x2/poseidon.ts +21 -0
  123. package/src/contracts/0x2/priority_queue.ts +139 -0
  124. package/src/contracts/0x2/random.ts +294 -0
  125. package/src/contracts/0x2/sui.ts +29 -0
  126. package/src/contracts/0x2/table.ts +200 -0
  127. package/src/contracts/0x2/table_vec.ts +232 -0
  128. package/src/contracts/0x2/token.ts +873 -0
  129. package/src/contracts/0x2/transfer.ts +216 -0
  130. package/src/contracts/0x2/transfer_policy.ts +400 -0
  131. package/src/contracts/0x2/tx_context.ts +129 -0
  132. package/src/contracts/0x2/types.ts +24 -0
  133. package/src/contracts/0x2/url.ts +77 -0
  134. package/src/contracts/0x2/vdf.ts +45 -0
  135. package/src/contracts/0x2/vec_map.ts +401 -0
  136. package/src/contracts/0x2/vec_set.ts +211 -0
  137. package/src/contracts/0x2/versioned.ts +153 -0
  138. package/src/contracts/0x2/zklogin_verified_id.ts +172 -0
  139. package/src/contracts/0x2/zklogin_verified_issuer.ts +99 -0
  140. package/src/contracts/kiosk/deps/sui/kiosk.ts +94 -0
  141. package/src/contracts/kiosk/deps/sui/object.ts +15 -0
  142. package/src/contracts/kiosk/floor_price_rule.ts +92 -0
  143. package/src/contracts/kiosk/kiosk_lock_rule.ts +97 -0
  144. package/src/contracts/kiosk/personal_kiosk.ts +295 -0
  145. package/src/contracts/kiosk/personal_kiosk_rule.ts +89 -0
  146. package/src/contracts/kiosk/royalty_rule.ts +144 -0
  147. package/src/contracts/kiosk/witness_rule.ts +92 -0
  148. package/src/contracts/utils/index.ts +234 -0
  149. package/src/query/client-utils.ts +51 -0
  150. package/src/query/kiosk.ts +128 -100
  151. package/src/query/transfer-policy.ts +112 -78
  152. package/src/tx/kiosk.ts +7 -231
  153. package/src/tx/rules/resolve.ts +97 -48
  154. package/src/tx/transfer-policy.ts +25 -86
  155. package/src/types/index.ts +3 -14
  156. package/src/types/kiosk.ts +10 -12
  157. package/src/types/transfer-policy.ts +4 -4
  158. package/src/utils.ts +90 -128
  159. package/dist/cjs/bcs.d.ts +0 -23
  160. package/dist/cjs/bcs.js +0 -50
  161. package/dist/cjs/bcs.js.map +0 -7
  162. package/dist/cjs/client/kiosk-client.d.ts +0 -76
  163. package/dist/cjs/client/kiosk-client.js +0 -123
  164. package/dist/cjs/client/kiosk-client.js.map +0 -7
  165. package/dist/cjs/client/kiosk-transaction.d.ts +0 -186
  166. package/dist/cjs/client/kiosk-transaction.js +0 -462
  167. package/dist/cjs/client/kiosk-transaction.js.map +0 -7
  168. package/dist/cjs/client/tp-transaction.d.ts +0 -114
  169. package/dist/cjs/client/tp-transaction.js +0 -307
  170. package/dist/cjs/client/tp-transaction.js.map +0 -7
  171. package/dist/cjs/constants.d.ts +0 -31
  172. package/dist/cjs/constants.js +0 -102
  173. package/dist/cjs/constants.js.map +0 -7
  174. package/dist/cjs/index.d.ts +0 -6
  175. package/dist/cjs/index.js +0 -24
  176. package/dist/cjs/index.js.map +0 -7
  177. package/dist/cjs/package.json +0 -5
  178. package/dist/cjs/query/kiosk.d.ts +0 -8
  179. package/dist/cjs/query/kiosk.js +0 -181
  180. package/dist/cjs/query/kiosk.js.map +0 -7
  181. package/dist/cjs/query/transfer-policy.d.ts +0 -29
  182. package/dist/cjs/query/transfer-policy.js +0 -92
  183. package/dist/cjs/query/transfer-policy.js.map +0 -7
  184. package/dist/cjs/tx/kiosk.d.ts +0 -71
  185. package/dist/cjs/tx/kiosk.js +0 -130
  186. package/dist/cjs/tx/kiosk.js.map +0 -7
  187. package/dist/cjs/tx/personal-kiosk.d.ts +0 -7
  188. package/dist/cjs/tx/personal-kiosk.js +0 -38
  189. package/dist/cjs/tx/personal-kiosk.js.map +0 -7
  190. package/dist/cjs/tx/rules/attach.d.ts +0 -7
  191. package/dist/cjs/tx/rules/attach.js +0 -62
  192. package/dist/cjs/tx/rules/attach.js.map +0 -7
  193. package/dist/cjs/tx/rules/resolve.d.ts +0 -15
  194. package/dist/cjs/tx/rules/resolve.js +0 -109
  195. package/dist/cjs/tx/rules/resolve.js.map +0 -7
  196. package/dist/cjs/tx/transfer-policy.d.ts +0 -29
  197. package/dist/cjs/tx/transfer-policy.js +0 -78
  198. package/dist/cjs/tx/transfer-policy.js.map +0 -7
  199. package/dist/cjs/types/index.d.ts +0 -27
  200. package/dist/cjs/types/index.js +0 -33
  201. package/dist/cjs/types/index.js.map +0 -7
  202. package/dist/cjs/types/kiosk.d.ts +0 -160
  203. package/dist/cjs/types/kiosk.js +0 -37
  204. package/dist/cjs/types/kiosk.js.map +0 -7
  205. package/dist/cjs/types/transfer-policy.d.ts +0 -53
  206. package/dist/cjs/types/transfer-policy.js +0 -35
  207. package/dist/cjs/types/transfer-policy.js.map +0 -7
  208. package/dist/cjs/utils.d.ts +0 -51
  209. package/dist/cjs/utils.js +0 -198
  210. package/dist/cjs/utils.js.map +0 -7
  211. package/dist/esm/bcs.d.ts +0 -23
  212. package/dist/esm/bcs.js +0 -35
  213. package/dist/esm/bcs.js.map +0 -7
  214. package/dist/esm/client/kiosk-client.d.ts +0 -76
  215. package/dist/esm/client/kiosk-client.js +0 -114
  216. package/dist/esm/client/kiosk-client.js.map +0 -7
  217. package/dist/esm/client/kiosk-transaction.d.ts +0 -186
  218. package/dist/esm/client/kiosk-transaction.js +0 -432
  219. package/dist/esm/client/kiosk-transaction.js.map +0 -7
  220. package/dist/esm/client/tp-transaction.d.ts +0 -114
  221. package/dist/esm/client/tp-transaction.js +0 -298
  222. package/dist/esm/client/tp-transaction.js.map +0 -7
  223. package/dist/esm/constants.d.ts +0 -31
  224. package/dist/esm/constants.js +0 -87
  225. package/dist/esm/constants.js.map +0 -7
  226. package/dist/esm/index.d.ts +0 -6
  227. package/dist/esm/index.js +0 -7
  228. package/dist/esm/index.js.map +0 -7
  229. package/dist/esm/package.json +0 -5
  230. package/dist/esm/query/kiosk.d.ts +0 -8
  231. package/dist/esm/query/kiosk.js +0 -169
  232. package/dist/esm/query/kiosk.js.map +0 -7
  233. package/dist/esm/query/transfer-policy.d.ts +0 -29
  234. package/dist/esm/query/transfer-policy.js +0 -76
  235. package/dist/esm/query/transfer-policy.js.map +0 -7
  236. package/dist/esm/tx/kiosk.d.ts +0 -71
  237. package/dist/esm/tx/kiosk.js +0 -110
  238. package/dist/esm/tx/kiosk.js.map +0 -7
  239. package/dist/esm/tx/personal-kiosk.d.ts +0 -7
  240. package/dist/esm/tx/personal-kiosk.js +0 -18
  241. package/dist/esm/tx/personal-kiosk.js.map +0 -7
  242. package/dist/esm/tx/rules/attach.d.ts +0 -7
  243. package/dist/esm/tx/rules/attach.js +0 -42
  244. package/dist/esm/tx/rules/attach.js.map +0 -7
  245. package/dist/esm/tx/rules/resolve.d.ts +0 -15
  246. package/dist/esm/tx/rules/resolve.js +0 -89
  247. package/dist/esm/tx/rules/resolve.js.map +0 -7
  248. package/dist/esm/tx/transfer-policy.d.ts +0 -29
  249. package/dist/esm/tx/transfer-policy.js +0 -58
  250. package/dist/esm/tx/transfer-policy.js.map +0 -7
  251. package/dist/esm/types/index.d.ts +0 -27
  252. package/dist/esm/types/index.js +0 -12
  253. package/dist/esm/types/index.js.map +0 -7
  254. package/dist/esm/types/kiosk.d.ts +0 -160
  255. package/dist/esm/types/kiosk.js +0 -17
  256. package/dist/esm/types/kiosk.js.map +0 -7
  257. package/dist/esm/types/transfer-policy.d.ts +0 -53
  258. package/dist/esm/types/transfer-policy.js +0 -15
  259. package/dist/esm/types/transfer-policy.js.map +0 -7
  260. package/dist/esm/utils.d.ts +0 -51
  261. package/dist/esm/utils.js +0 -183
  262. package/dist/esm/utils.js.map +0 -7
  263. package/dist/tsconfig.esm.tsbuildinfo +0 -1
  264. package/dist/tsconfig.tsbuildinfo +0 -1
  265. package/src/bcs.ts +0 -39
  266. package/src/tx/personal-kiosk.ts +0 -34
  267. 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/client';
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 = '0x2::transfer_policy';
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 type {
5
- DynamicFieldInfo,
6
- PaginationArguments,
7
- SuiClient,
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 async function getKioskObject(client: SuiClient, id: string): Promise<Kiosk> {
28
- const queryRes = await client.getObject({ id, options: { showBcs: true } });
15
+ export type DynamicFieldInfo = SuiClientTypes.ListDynamicFieldsResponse['dynamicFields'][number];
29
16
 
30
- if (!queryRes || queryRes.error || !queryRes.data) {
31
- throw new Error(`Kiosk ${id} not found; ${queryRes.error}`);
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 (!queryRes.data.bcs || !('bcsBytes' in queryRes.data.bcs)) {
35
- throw new Error(`Invalid kiosk query: ${id}, expected object, got package`);
23
+ if (!object.content) {
24
+ throw new Error(`Kiosk ${id} not found or has no content`);
36
25
  }
37
26
 
38
- return KioskType.parse(fromBase64(queryRes.data.bcs!.bcsBytes));
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
- if (type.startsWith('0x2::kiosk::Item')) {
53
- acc.itemIds.push(val.objectId);
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.objectId,
56
- type: val.objectType,
58
+ objectId: val.fieldId,
59
+ type: val.valueType,
57
60
  isLocked: false,
58
61
  kioskId,
59
62
  });
60
63
  }
61
- if (type.startsWith('0x2::kiosk::Listing')) {
62
- acc.listingIds.push(val.objectId);
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: (val.name.value as { id: string }).id,
65
- listingId: val.objectId,
66
- isExclusive: (val.name.value as { is_exclusive: boolean }).is_exclusive,
73
+ objectId: parsed.id,
74
+ listingId: val.fieldId,
75
+ isExclusive: parsed.is_exclusive,
67
76
  });
68
77
  }
69
- if (type.startsWith('0x2::kiosk::Lock')) {
70
- lockedItemIds?.push((val.name.value as { id: string }).id);
78
+
79
+ if (
80
+ baseType ===
81
+ '0x0000000000000000000000000000000000000000000000000000000000000002::kiosk::Lock'
82
+ ) {
83
+ lockedItemIds?.push(Lock.parse(val.name.bcs).id);
71
84
  }
72
85
 
73
- if (type.startsWith('0x2::kiosk_extension::ExtensionKey')) {
86
+ // Check for ExtensionKey type
87
+ if (
88
+ baseType ===
89
+ '0x0000000000000000000000000000000000000000000000000000000000000002::kiosk_extension::ExtensionKey'
90
+ ) {
74
91
  acc.extensions.push({
75
- objectId: val.objectId,
76
- type: normalizeStructTag(parseStructTag(val.name.type).typeParams[0]),
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: SuiObjectResponse[],
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 content = listingObjects[idx].data?.content;
105
- const data = content?.dataType === 'moveObject' ? content?.fields : null;
119
+ const obj = listingObjects[idx];
106
120
 
107
- if (!data) return acc;
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 the listing prices to kiosk listings.
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: SuiObjectData[]) {
124
- const mapping = objects.reduce<Record<string, SuiObjectData>>(
125
- (acc: Record<string, SuiObjectData>, obj) => {
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 DF pages.
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: SuiClient,
179
+ client: ClientWithCoreApi,
163
180
  parentId: string,
164
181
  pagination: PaginationArguments<string>,
165
- ) {
182
+ ): Promise<DynamicFieldInfo[]> {
166
183
  let hasNextPage = true;
167
- let cursor = undefined;
184
+ let cursor: string | null = null;
168
185
  const data: DynamicFieldInfo[] = [];
169
186
 
170
187
  while (hasNextPage) {
171
- const result = await client.getDynamicFields({
188
+ const result = await client.core.listDynamicFields({
172
189
  parentId,
173
190
  limit: pagination.limit || undefined,
174
191
  cursor,
175
192
  });
176
- data.push(...result.data);
193
+
194
+ data.push(...result.dynamicFields);
195
+
177
196
  hasNextPage = result.hasNextPage;
178
- cursor = result.nextCursor;
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: SuiClient,
209
+ client: ClientWithCoreApi,
191
210
  ids: string[],
192
- options: SuiObjectDataOptions,
193
- limit: number = DEFAULT_QUERY_LIMIT,
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((chunk) => {
199
- return client.multiGetObjects({
200
- ids: chunk,
201
- options,
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
@@ -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
- }