@haneullabs/kiosk 0.1.0 → 1.1.2

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 (213) hide show
  1. package/CHANGELOG.md +271 -137
  2. package/README.md +3 -3
  3. package/dist/client/kiosk-client.d.mts +126 -0
  4. package/dist/client/kiosk-client.d.mts.map +1 -0
  5. package/dist/client/kiosk-client.mjs +124 -0
  6. package/dist/client/kiosk-client.mjs.map +1 -0
  7. package/dist/client/kiosk-transaction.d.mts +236 -0
  8. package/dist/client/kiosk-transaction.d.mts.map +1 -0
  9. package/dist/client/kiosk-transaction.mjs +472 -0
  10. package/dist/client/kiosk-transaction.mjs.map +1 -0
  11. package/dist/client/tp-transaction.d.mts +139 -0
  12. package/dist/client/tp-transaction.d.mts.map +1 -0
  13. package/dist/client/tp-transaction.mjs +273 -0
  14. package/dist/client/tp-transaction.mjs.map +1 -0
  15. package/dist/constants.d.mts +42 -0
  16. package/dist/constants.d.mts.map +1 -0
  17. package/dist/constants.mjs +62 -0
  18. package/dist/constants.mjs.map +1 -0
  19. package/dist/contracts/0x2/bag.mjs +19 -0
  20. package/dist/contracts/0x2/bag.mjs.map +1 -0
  21. package/dist/contracts/0x2/balance.mjs +16 -0
  22. package/dist/contracts/0x2/balance.mjs.map +1 -0
  23. package/dist/contracts/0x2/deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.mjs +16 -0
  24. package/dist/contracts/0x2/deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.mjs.map +1 -0
  25. package/dist/contracts/0x2/kiosk.mjs +244 -0
  26. package/dist/contracts/0x2/kiosk.mjs.map +1 -0
  27. package/dist/contracts/0x2/kiosk_extension.mjs +25 -0
  28. package/dist/contracts/0x2/kiosk_extension.mjs.map +1 -0
  29. package/dist/contracts/0x2/transfer_policy.mjs +99 -0
  30. package/dist/contracts/0x2/transfer_policy.mjs.map +1 -0
  31. package/dist/contracts/0x2/vec_set.mjs +18 -0
  32. package/dist/contracts/0x2/vec_set.mjs.map +1 -0
  33. package/dist/contracts/kiosk/deps/haneul/kiosk.mjs +98 -0
  34. package/dist/contracts/kiosk/deps/haneul/kiosk.mjs.map +1 -0
  35. package/dist/contracts/kiosk/floor_price_rule.mjs +70 -0
  36. package/dist/contracts/kiosk/floor_price_rule.mjs.map +1 -0
  37. package/dist/contracts/kiosk/kiosk_lock_rule.mjs +72 -0
  38. package/dist/contracts/kiosk/kiosk_lock_rule.mjs.map +1 -0
  39. package/dist/contracts/kiosk/personal_kiosk.mjs +102 -0
  40. package/dist/contracts/kiosk/personal_kiosk.mjs.map +1 -0
  41. package/dist/contracts/kiosk/personal_kiosk_rule.mjs +66 -0
  42. package/dist/contracts/kiosk/personal_kiosk_rule.mjs.map +1 -0
  43. package/dist/contracts/kiosk/royalty_rule.mjs +115 -0
  44. package/dist/contracts/kiosk/royalty_rule.mjs.map +1 -0
  45. package/dist/contracts/utils/index.mjs +118 -0
  46. package/dist/contracts/utils/index.mjs.map +1 -0
  47. package/dist/index.d.mts +9 -0
  48. package/dist/index.mjs +9 -0
  49. package/dist/query/client-utils.mjs +215 -0
  50. package/dist/query/client-utils.mjs.map +1 -0
  51. package/dist/query/kiosk.mjs +155 -0
  52. package/dist/query/kiosk.mjs.map +1 -0
  53. package/dist/query/transfer-policy.mjs +110 -0
  54. package/dist/query/transfer-policy.mjs.map +1 -0
  55. package/dist/tx/kiosk.mjs +20 -0
  56. package/dist/tx/kiosk.mjs.map +1 -0
  57. package/dist/tx/rules/resolve.mjs +114 -0
  58. package/dist/tx/rules/resolve.mjs.map +1 -0
  59. package/dist/tx/transfer-policy.mjs +38 -0
  60. package/dist/tx/transfer-policy.mjs.map +1 -0
  61. package/dist/types/index.d.mts +26 -0
  62. package/dist/types/index.d.mts.map +1 -0
  63. package/dist/types/kiosk.d.mts +175 -0
  64. package/dist/types/kiosk.d.mts.map +1 -0
  65. package/dist/types/kiosk.mjs +21 -0
  66. package/dist/types/kiosk.mjs.map +1 -0
  67. package/dist/types/transfer-policy.d.mts +56 -0
  68. package/dist/types/transfer-policy.d.mts.map +1 -0
  69. package/dist/types/transfer-policy.mjs +19 -0
  70. package/dist/types/transfer-policy.mjs.map +1 -0
  71. package/dist/utils.d.mts +39 -0
  72. package/dist/utils.d.mts.map +1 -0
  73. package/dist/utils.mjs +137 -0
  74. package/dist/utils.mjs.map +1 -0
  75. package/package.json +25 -20
  76. package/src/client/kiosk-client.ts +43 -5
  77. package/src/client/kiosk-transaction.ts +144 -65
  78. package/src/client/tp-transaction.ts +149 -95
  79. package/src/constants.ts +19 -24
  80. package/src/contracts/0x2/bag.ts +13 -0
  81. package/src/contracts/0x2/balance.ts +12 -0
  82. package/src/contracts/0x2/deps/0x0000000000000000000000000000000000000000000000000000000000000001/type_name.ts +12 -0
  83. package/src/contracts/0x2/kiosk.ts +797 -0
  84. package/src/contracts/0x2/kiosk_extension.ts +270 -0
  85. package/src/contracts/0x2/transfer_policy.ts +400 -0
  86. package/src/contracts/0x2/vec_set.ts +14 -0
  87. package/src/contracts/kiosk/deps/haneul/kiosk.ts +94 -0
  88. package/src/contracts/kiosk/floor_price_rule.ts +92 -0
  89. package/src/contracts/kiosk/kiosk_lock_rule.ts +97 -0
  90. package/src/contracts/kiosk/personal_kiosk.ts +295 -0
  91. package/src/contracts/kiosk/personal_kiosk_rule.ts +89 -0
  92. package/src/contracts/kiosk/royalty_rule.ts +144 -0
  93. package/src/contracts/kiosk/witness_rule.ts +92 -0
  94. package/src/contracts/utils/index.ts +234 -0
  95. package/src/query/client-utils.ts +302 -0
  96. package/src/query/kiosk.ts +130 -101
  97. package/src/query/transfer-policy.ts +112 -79
  98. package/src/tx/kiosk.ts +7 -231
  99. package/src/tx/rules/resolve.ts +97 -48
  100. package/src/tx/transfer-policy.ts +25 -86
  101. package/src/types/index.ts +7 -14
  102. package/src/types/kiosk.ts +22 -12
  103. package/src/types/transfer-policy.ts +4 -4
  104. package/src/utils.ts +79 -147
  105. package/dist/cjs/bcs.d.ts +0 -23
  106. package/dist/cjs/bcs.js +0 -50
  107. package/dist/cjs/bcs.js.map +0 -7
  108. package/dist/cjs/client/kiosk-client.d.ts +0 -76
  109. package/dist/cjs/client/kiosk-client.js +0 -123
  110. package/dist/cjs/client/kiosk-client.js.map +0 -7
  111. package/dist/cjs/client/kiosk-transaction.d.ts +0 -186
  112. package/dist/cjs/client/kiosk-transaction.js +0 -462
  113. package/dist/cjs/client/kiosk-transaction.js.map +0 -7
  114. package/dist/cjs/client/tp-transaction.d.ts +0 -114
  115. package/dist/cjs/client/tp-transaction.js +0 -307
  116. package/dist/cjs/client/tp-transaction.js.map +0 -7
  117. package/dist/cjs/constants.d.ts +0 -31
  118. package/dist/cjs/constants.js +0 -102
  119. package/dist/cjs/constants.js.map +0 -7
  120. package/dist/cjs/index.d.ts +0 -6
  121. package/dist/cjs/index.js +0 -24
  122. package/dist/cjs/index.js.map +0 -7
  123. package/dist/cjs/package.json +0 -5
  124. package/dist/cjs/query/kiosk.d.ts +0 -8
  125. package/dist/cjs/query/kiosk.js +0 -181
  126. package/dist/cjs/query/kiosk.js.map +0 -7
  127. package/dist/cjs/query/transfer-policy.d.ts +0 -29
  128. package/dist/cjs/query/transfer-policy.js +0 -92
  129. package/dist/cjs/query/transfer-policy.js.map +0 -7
  130. package/dist/cjs/tx/kiosk.d.ts +0 -71
  131. package/dist/cjs/tx/kiosk.js +0 -130
  132. package/dist/cjs/tx/kiosk.js.map +0 -7
  133. package/dist/cjs/tx/personal-kiosk.d.ts +0 -7
  134. package/dist/cjs/tx/personal-kiosk.js +0 -38
  135. package/dist/cjs/tx/personal-kiosk.js.map +0 -7
  136. package/dist/cjs/tx/rules/attach.d.ts +0 -7
  137. package/dist/cjs/tx/rules/attach.js +0 -62
  138. package/dist/cjs/tx/rules/attach.js.map +0 -7
  139. package/dist/cjs/tx/rules/resolve.d.ts +0 -15
  140. package/dist/cjs/tx/rules/resolve.js +0 -109
  141. package/dist/cjs/tx/rules/resolve.js.map +0 -7
  142. package/dist/cjs/tx/transfer-policy.d.ts +0 -29
  143. package/dist/cjs/tx/transfer-policy.js +0 -78
  144. package/dist/cjs/tx/transfer-policy.js.map +0 -7
  145. package/dist/cjs/types/index.d.ts +0 -27
  146. package/dist/cjs/types/index.js +0 -33
  147. package/dist/cjs/types/index.js.map +0 -7
  148. package/dist/cjs/types/kiosk.d.ts +0 -160
  149. package/dist/cjs/types/kiosk.js +0 -37
  150. package/dist/cjs/types/kiosk.js.map +0 -7
  151. package/dist/cjs/types/transfer-policy.d.ts +0 -53
  152. package/dist/cjs/types/transfer-policy.js +0 -35
  153. package/dist/cjs/types/transfer-policy.js.map +0 -7
  154. package/dist/cjs/utils.d.ts +0 -51
  155. package/dist/cjs/utils.js +0 -198
  156. package/dist/cjs/utils.js.map +0 -7
  157. package/dist/esm/bcs.d.ts +0 -23
  158. package/dist/esm/bcs.js +0 -35
  159. package/dist/esm/bcs.js.map +0 -7
  160. package/dist/esm/client/kiosk-client.d.ts +0 -76
  161. package/dist/esm/client/kiosk-client.js +0 -114
  162. package/dist/esm/client/kiosk-client.js.map +0 -7
  163. package/dist/esm/client/kiosk-transaction.d.ts +0 -186
  164. package/dist/esm/client/kiosk-transaction.js +0 -432
  165. package/dist/esm/client/kiosk-transaction.js.map +0 -7
  166. package/dist/esm/client/tp-transaction.d.ts +0 -114
  167. package/dist/esm/client/tp-transaction.js +0 -298
  168. package/dist/esm/client/tp-transaction.js.map +0 -7
  169. package/dist/esm/constants.d.ts +0 -31
  170. package/dist/esm/constants.js +0 -87
  171. package/dist/esm/constants.js.map +0 -7
  172. package/dist/esm/index.d.ts +0 -6
  173. package/dist/esm/index.js +0 -7
  174. package/dist/esm/index.js.map +0 -7
  175. package/dist/esm/package.json +0 -5
  176. package/dist/esm/query/kiosk.d.ts +0 -8
  177. package/dist/esm/query/kiosk.js +0 -169
  178. package/dist/esm/query/kiosk.js.map +0 -7
  179. package/dist/esm/query/transfer-policy.d.ts +0 -29
  180. package/dist/esm/query/transfer-policy.js +0 -76
  181. package/dist/esm/query/transfer-policy.js.map +0 -7
  182. package/dist/esm/tx/kiosk.d.ts +0 -71
  183. package/dist/esm/tx/kiosk.js +0 -110
  184. package/dist/esm/tx/kiosk.js.map +0 -7
  185. package/dist/esm/tx/personal-kiosk.d.ts +0 -7
  186. package/dist/esm/tx/personal-kiosk.js +0 -18
  187. package/dist/esm/tx/personal-kiosk.js.map +0 -7
  188. package/dist/esm/tx/rules/attach.d.ts +0 -7
  189. package/dist/esm/tx/rules/attach.js +0 -42
  190. package/dist/esm/tx/rules/attach.js.map +0 -7
  191. package/dist/esm/tx/rules/resolve.d.ts +0 -15
  192. package/dist/esm/tx/rules/resolve.js +0 -89
  193. package/dist/esm/tx/rules/resolve.js.map +0 -7
  194. package/dist/esm/tx/transfer-policy.d.ts +0 -29
  195. package/dist/esm/tx/transfer-policy.js +0 -58
  196. package/dist/esm/tx/transfer-policy.js.map +0 -7
  197. package/dist/esm/types/index.d.ts +0 -27
  198. package/dist/esm/types/index.js +0 -12
  199. package/dist/esm/types/index.js.map +0 -7
  200. package/dist/esm/types/kiosk.d.ts +0 -160
  201. package/dist/esm/types/kiosk.js +0 -17
  202. package/dist/esm/types/kiosk.js.map +0 -7
  203. package/dist/esm/types/transfer-policy.d.ts +0 -53
  204. package/dist/esm/types/transfer-policy.js +0 -15
  205. package/dist/esm/types/transfer-policy.js.map +0 -7
  206. package/dist/esm/utils.d.ts +0 -51
  207. package/dist/esm/utils.js +0 -183
  208. package/dist/esm/utils.js.map +0 -7
  209. package/dist/tsconfig.esm.tsbuildinfo +0 -1
  210. package/dist/tsconfig.tsbuildinfo +0 -1
  211. package/src/bcs.ts +0 -39
  212. package/src/tx/personal-kiosk.ts +0 -34
  213. package/src/tx/rules/attach.ts +0 -73
package/src/utils.ts CHANGED
@@ -1,41 +1,35 @@
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
- HaneulClient,
8
- HaneulObjectData,
9
- HaneulObjectDataFilter,
10
- HaneulObjectDataOptions,
11
- HaneulObjectResponse,
12
- } from '@haneullabs/haneul/client';
13
- import {
14
- fromBase64,
15
- normalizeStructTag,
16
- normalizeHaneulAddress,
17
- parseStructTag,
18
- } from '@haneullabs/haneul/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';
23
- import { chunk } from '@haneullabs/utils';
24
-
25
- const DEFAULT_QUERY_LIMIT = 50;
26
-
27
- export async function getKioskObject(client: HaneulClient, id: string): Promise<Kiosk> {
28
- const queryRes = await client.getObject({ id, options: { showBcs: true } });
29
-
30
- if (!queryRes || queryRes.error || !queryRes.data) {
31
- throw new Error(`Kiosk ${id} not found; ${queryRes.error}`);
32
- }
4
+ import { bcs } from '@haneullabs/haneul/bcs';
5
+ import { PaginationArguments } from '@haneullabs/haneul/jsonRpc';
6
+ import type { ClientWithCoreApi, HaneulClientTypes } from '@haneullabs/haneul/client';
7
+ import { normalizeStructTag, normalizeHaneulAddress, parseStructTag } from '@haneullabs/haneul/utils';
8
+
9
+ import { Item, Listing, Lock, Kiosk as KioskStruct } from './contracts/0x2/kiosk.js';
10
+ import type { Kiosk, KioskData, KioskListing, ObjectWithDisplay } from './types/index.js';
11
+
12
+ export type DynamicFieldInfo = HaneulClientTypes.ListDynamicFieldsResponse['dynamicFields'][number];
33
13
 
34
- if (!queryRes.data.bcs || !('bcsBytes' in queryRes.data.bcs)) {
35
- throw new Error(`Invalid kiosk query: ${id}, expected object, got package`);
14
+ export async function getKioskObject(client: ClientWithCoreApi, id: string): Promise<Kiosk> {
15
+ const { object } = await client.core.getObject({
16
+ objectId: id,
17
+ include: { content: true },
18
+ });
19
+
20
+ if (!object.content) {
21
+ throw new Error(`Kiosk ${id} not found or has no content`);
36
22
  }
37
23
 
38
- return KioskType.parse(fromBase64(queryRes.data.bcs!.bcsBytes));
24
+ const parsed = KioskStruct.parse(object.content);
25
+
26
+ return {
27
+ id: parsed.id,
28
+ profits: parsed.profits.value.toString(),
29
+ owner: parsed.owner,
30
+ itemCount: parsed.item_count,
31
+ allowExtensions: parsed.allow_extensions,
32
+ };
39
33
  }
40
34
 
41
35
  // helper to extract kiosk data from dynamic fields.
@@ -49,31 +43,52 @@ export function extractKioskData(
49
43
  (acc: KioskData, val: DynamicFieldInfo) => {
50
44
  const type = val.name.type;
51
45
 
52
- if (type.startsWith('0x2::kiosk::Item')) {
53
- acc.itemIds.push(val.objectId);
46
+ const parsedType = parseStructTag(type);
47
+ const baseType = `${normalizeHaneulAddress(parsedType.address)}::${parsedType.module}::${parsedType.name}`;
48
+
49
+ if (
50
+ baseType ===
51
+ '0x0000000000000000000000000000000000000000000000000000000000000002::kiosk::Item'
52
+ ) {
53
+ const parsed = Item.parse(val.name.bcs);
54
+ acc.itemIds.push(parsed.id);
54
55
  acc.items.push({
55
- objectId: val.objectId,
56
- type: val.objectType,
56
+ objectId: parsed.id,
57
+ type: val.valueType,
57
58
  isLocked: false,
58
59
  kioskId,
59
60
  });
60
61
  }
61
- if (type.startsWith('0x2::kiosk::Listing')) {
62
- acc.listingIds.push(val.objectId);
62
+
63
+ if (
64
+ baseType ===
65
+ '0x0000000000000000000000000000000000000000000000000000000000000002::kiosk::Listing'
66
+ ) {
67
+ const parsed = Listing.parse(val.name.bcs);
68
+
69
+ acc.listingIds.push(val.fieldId);
63
70
  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,
71
+ objectId: parsed.id,
72
+ listingId: val.fieldId,
73
+ isExclusive: parsed.is_exclusive,
67
74
  });
68
75
  }
69
- if (type.startsWith('0x2::kiosk::Lock')) {
70
- lockedItemIds?.push((val.name.value as { id: string }).id);
76
+
77
+ if (
78
+ baseType ===
79
+ '0x0000000000000000000000000000000000000000000000000000000000000002::kiosk::Lock'
80
+ ) {
81
+ lockedItemIds?.push(Lock.parse(val.name.bcs).id);
71
82
  }
72
83
 
73
- if (type.startsWith('0x2::kiosk_extension::ExtensionKey')) {
84
+ // Check for ExtensionKey type
85
+ if (
86
+ baseType ===
87
+ '0x0000000000000000000000000000000000000000000000000000000000000002::kiosk_extension::ExtensionKey'
88
+ ) {
74
89
  acc.extensions.push({
75
- objectId: val.objectId,
76
- type: normalizeStructTag(parseStructTag(val.name.type).typeParams[0]),
90
+ objectId: val.fieldId,
91
+ type: normalizeStructTag(parsedType.typeParams[0]),
77
92
  });
78
93
  }
79
94
 
@@ -89,10 +104,8 @@ export function extractKioskData(
89
104
  export function attachListingsAndPrices(
90
105
  kioskData: KioskData,
91
106
  listings: KioskListing[],
92
- listingObjects: HaneulObjectResponse[],
107
+ listingObjects: HaneulClientTypes.Object[],
93
108
  ) {
94
- // map item listings as {item_id: KioskListing}
95
- // for easier mapping on the nex
96
109
  const itemListings = listings.reduce<Record<string, KioskListing>>(
97
110
  (acc: Record<string, KioskListing>, item, idx) => {
98
111
  acc[item.objectId] = { ...item };
@@ -101,12 +114,13 @@ export function attachListingsAndPrices(
101
114
  // that's the case when we don't have the `listingPrices` included.
102
115
  if (listingObjects.length === 0) return acc;
103
116
 
104
- const content = listingObjects[idx].data?.content;
105
- const data = content?.dataType === 'moveObject' ? content?.fields : null;
117
+ const obj = listingObjects[idx];
106
118
 
107
- if (!data) return acc;
119
+ // Parse BCS content to extract the price (u64 value)
120
+ if (obj.content) {
121
+ acc[item.objectId].price = bcs.u64().parse(obj.content).toString();
122
+ }
108
123
 
109
- acc[item.objectId].price = (data as { value: string }).value;
110
124
  return acc;
111
125
  },
112
126
  {},
@@ -118,11 +132,12 @@ export function attachListingsAndPrices(
118
132
  }
119
133
 
120
134
  /**
121
- * A helper that attaches the listing prices to kiosk listings.
135
+ * A helper that attaches object data to kiosk items.
136
+ * Works with core API objects that contain BCS content.
122
137
  */
123
- export function attachObjects(kioskData: KioskData, objects: HaneulObjectData[]) {
124
- const mapping = objects.reduce<Record<string, HaneulObjectData>>(
125
- (acc: Record<string, HaneulObjectData>, obj) => {
138
+ export function attachObjects(kioskData: KioskData, objects: ObjectWithDisplay[]) {
139
+ const mapping = objects.reduce<Record<string, ObjectWithDisplay>>(
140
+ (acc: Record<string, ObjectWithDisplay>, obj) => {
126
141
  acc[obj.objectId] = obj;
127
142
  return acc;
128
143
  },
@@ -154,90 +169,30 @@ export function attachLockedItems(kioskData: KioskData, lockedItemIds: string[])
154
169
  }
155
170
 
156
171
  /**
157
- * A helper to fetch all DF pages.
172
+ * A helper to fetch all dynamic field pages.
158
173
  * We need that to fetch the kiosk DFs consistently, until we have
159
174
  * RPC calls that allow filtering of Type / batch fetching of spec
160
175
  */
161
176
  export async function getAllDynamicFields(
162
- client: HaneulClient,
177
+ client: ClientWithCoreApi,
163
178
  parentId: string,
164
179
  pagination: PaginationArguments<string>,
165
- ) {
180
+ ): Promise<DynamicFieldInfo[]> {
166
181
  let hasNextPage = true;
167
- let cursor = undefined;
182
+ let cursor: string | null = null;
168
183
  const data: DynamicFieldInfo[] = [];
169
184
 
170
185
  while (hasNextPage) {
171
- const result = await client.getDynamicFields({
186
+ const result = await client.core.listDynamicFields({
172
187
  parentId,
173
188
  limit: pagination.limit || undefined,
174
189
  cursor,
175
190
  });
176
- data.push(...result.data);
177
- hasNextPage = result.hasNextPage;
178
- cursor = result.nextCursor;
179
- }
180
191
 
181
- return data;
182
- }
192
+ data.push(...result.dynamicFields);
183
193
 
184
- /**
185
- * A helper to fetch all objects that works with pagination.
186
- * It will fetch all objects in the array, and limit it to 50/request.
187
- * Requests are sent using `Promise.all`.
188
- */
189
- export async function getAllObjects(
190
- client: HaneulClient,
191
- ids: string[],
192
- options: HaneulObjectDataOptions,
193
- limit: number = DEFAULT_QUERY_LIMIT,
194
- ) {
195
- const chunks = chunk(ids, limit);
196
-
197
- const results = await Promise.all(
198
- chunks.map((chunk) => {
199
- return client.multiGetObjects({
200
- ids: chunk,
201
- options,
202
- });
203
- }),
204
- );
205
-
206
- return results.flat();
207
- }
208
-
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: HaneulClient;
221
- owner: string;
222
- filter?: HaneulObjectDataFilter;
223
- options?: HaneulObjectDataOptions;
224
- limit?: number;
225
- }) {
226
- let hasNextPage = true;
227
- let cursor = undefined;
228
- const data: HaneulObjectResponse[] = [];
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
194
  hasNextPage = result.hasNextPage;
240
- cursor = result.nextCursor;
195
+ cursor = result.cursor;
241
196
  }
242
197
 
243
198
  return data;
@@ -255,29 +210,6 @@ export function percentageToBasisPoints(percentage: number) {
255
210
  return Math.ceil(percentage * 100);
256
211
  }
257
212
 
258
- /**
259
- * A helper to parse a transfer policy Cap into a usable object.
260
- */
261
- export function parseTransferPolicyCapObject(
262
- item: HaneulObjectResponse,
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
213
  // Normalizes the packageId part of a rule's type.
282
214
  export function getNormalizedRuleType(rule: string) {
283
215
  const normalizedRuleAddress = rule.split('::');
package/dist/cjs/bcs.d.ts DELETED
@@ -1,23 +0,0 @@
1
- export declare const KioskType: import("@haneullabs/haneul/bcs").BcsStruct<{
2
- id: import("@haneullabs/haneul/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
3
- profits: import("@haneullabs/haneul/bcs").BcsType<string, string | number | bigint, "u64">;
4
- owner: import("@haneullabs/haneul/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
5
- itemCount: import("@haneullabs/haneul/bcs").BcsType<number, number, "u32">;
6
- allowExtensions: import("@haneullabs/haneul/bcs").BcsType<boolean, boolean, "bool">;
7
- }, string>;
8
- export declare const KioskPurchaseCap: import("@haneullabs/haneul/bcs").BcsStruct<{
9
- id: import("@haneullabs/haneul/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
10
- kioskId: import("@haneullabs/haneul/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
11
- itemId: import("@haneullabs/haneul/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
12
- minPrice: import("@haneullabs/haneul/bcs").BcsType<string, string | number | bigint, "u64">;
13
- }, string>;
14
- export declare const TransferPolicyCreatedEvent: import("@haneullabs/haneul/bcs").BcsStruct<{
15
- id: import("@haneullabs/haneul/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
16
- }, string>;
17
- export declare const TransferPolicyType: import("@haneullabs/haneul/bcs").BcsStruct<{
18
- id: import("@haneullabs/haneul/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
19
- balance: import("@haneullabs/haneul/bcs").BcsType<string, string | number | bigint, "u64">;
20
- rules: import("@haneullabs/haneul/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("@haneullabs/haneul/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 '@haneullabs/haneul/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, HaneulClient } from '@haneullabs/haneul/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: HaneulClient;
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, HaneulClient } from '@haneullabs/haneul/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: HaneulClient;\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
- }