@iota/kiosk 0.6.2 → 0.8.0

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 (105) hide show
  1. package/CHANGELOG.md +77 -0
  2. package/dist/cjs/bcs.d.ts +22 -37
  3. package/dist/cjs/bcs.d.ts.map +1 -0
  4. package/dist/cjs/client/kiosk-client.d.ts +1 -0
  5. package/dist/cjs/client/kiosk-client.d.ts.map +1 -0
  6. package/dist/cjs/client/kiosk-client.js +1 -8
  7. package/dist/cjs/client/kiosk-client.js.map +2 -2
  8. package/dist/cjs/client/kiosk-transaction.d.ts +6 -7
  9. package/dist/cjs/client/kiosk-transaction.d.ts.map +1 -0
  10. package/dist/cjs/client/kiosk-transaction.js +8 -10
  11. package/dist/cjs/client/kiosk-transaction.js.map +2 -2
  12. package/dist/cjs/client/tp-transaction.d.ts +2 -3
  13. package/dist/cjs/client/tp-transaction.d.ts.map +1 -0
  14. package/dist/cjs/client/tp-transaction.js +1 -6
  15. package/dist/cjs/client/tp-transaction.js.map +2 -2
  16. package/dist/cjs/constants.d.ts +2 -1
  17. package/dist/cjs/constants.d.ts.map +1 -0
  18. package/dist/cjs/constants.js +1 -1
  19. package/dist/cjs/constants.js.map +2 -2
  20. package/dist/cjs/index.d.ts +1 -0
  21. package/dist/cjs/index.d.ts.map +1 -0
  22. package/dist/cjs/query/kiosk.d.ts +1 -0
  23. package/dist/cjs/query/kiosk.d.ts.map +1 -0
  24. package/dist/cjs/query/kiosk.js +81 -22
  25. package/dist/cjs/query/kiosk.js.map +2 -2
  26. package/dist/cjs/query/transfer-policy.d.ts +1 -0
  27. package/dist/cjs/query/transfer-policy.d.ts.map +1 -0
  28. package/dist/cjs/tx/kiosk.d.ts +1 -0
  29. package/dist/cjs/tx/kiosk.d.ts.map +1 -0
  30. package/dist/cjs/tx/personal-kiosk.d.ts +1 -0
  31. package/dist/cjs/tx/personal-kiosk.d.ts.map +1 -0
  32. package/dist/cjs/tx/rules/attach.d.ts +1 -0
  33. package/dist/cjs/tx/rules/attach.d.ts.map +1 -0
  34. package/dist/cjs/tx/rules/resolve.d.ts +2 -1
  35. package/dist/cjs/tx/rules/resolve.d.ts.map +1 -0
  36. package/dist/cjs/tx/rules/resolve.js +35 -5
  37. package/dist/cjs/tx/rules/resolve.js.map +2 -2
  38. package/dist/cjs/tx/transfer-policy.d.ts +1 -0
  39. package/dist/cjs/tx/transfer-policy.d.ts.map +1 -0
  40. package/dist/cjs/types/index.d.ts +1 -0
  41. package/dist/cjs/types/index.d.ts.map +1 -0
  42. package/dist/cjs/types/kiosk.d.ts +1 -0
  43. package/dist/cjs/types/kiosk.d.ts.map +1 -0
  44. package/dist/cjs/types/transfer-policy.d.ts +3 -2
  45. package/dist/cjs/types/transfer-policy.d.ts.map +1 -0
  46. package/dist/cjs/types/transfer-policy.js.map +2 -2
  47. package/dist/cjs/utils.d.ts +1 -0
  48. package/dist/cjs/utils.d.ts.map +1 -0
  49. package/dist/esm/bcs.d.ts +22 -37
  50. package/dist/esm/bcs.d.ts.map +1 -0
  51. package/dist/esm/client/kiosk-client.d.ts +1 -0
  52. package/dist/esm/client/kiosk-client.d.ts.map +1 -0
  53. package/dist/esm/client/kiosk-client.js +1 -8
  54. package/dist/esm/client/kiosk-client.js.map +2 -2
  55. package/dist/esm/client/kiosk-transaction.d.ts +6 -7
  56. package/dist/esm/client/kiosk-transaction.d.ts.map +1 -0
  57. package/dist/esm/client/kiosk-transaction.js +8 -10
  58. package/dist/esm/client/kiosk-transaction.js.map +2 -2
  59. package/dist/esm/client/tp-transaction.d.ts +2 -3
  60. package/dist/esm/client/tp-transaction.d.ts.map +1 -0
  61. package/dist/esm/client/tp-transaction.js +1 -6
  62. package/dist/esm/client/tp-transaction.js.map +2 -2
  63. package/dist/esm/constants.d.ts +2 -1
  64. package/dist/esm/constants.d.ts.map +1 -0
  65. package/dist/esm/constants.js +1 -1
  66. package/dist/esm/constants.js.map +2 -2
  67. package/dist/esm/index.d.ts +1 -0
  68. package/dist/esm/index.d.ts.map +1 -0
  69. package/dist/esm/query/kiosk.d.ts +1 -0
  70. package/dist/esm/query/kiosk.d.ts.map +1 -0
  71. package/dist/esm/query/kiosk.js +81 -22
  72. package/dist/esm/query/kiosk.js.map +2 -2
  73. package/dist/esm/query/transfer-policy.d.ts +1 -0
  74. package/dist/esm/query/transfer-policy.d.ts.map +1 -0
  75. package/dist/esm/tx/kiosk.d.ts +1 -0
  76. package/dist/esm/tx/kiosk.d.ts.map +1 -0
  77. package/dist/esm/tx/personal-kiosk.d.ts +1 -0
  78. package/dist/esm/tx/personal-kiosk.d.ts.map +1 -0
  79. package/dist/esm/tx/rules/attach.d.ts +1 -0
  80. package/dist/esm/tx/rules/attach.d.ts.map +1 -0
  81. package/dist/esm/tx/rules/resolve.d.ts +2 -1
  82. package/dist/esm/tx/rules/resolve.d.ts.map +1 -0
  83. package/dist/esm/tx/rules/resolve.js +35 -5
  84. package/dist/esm/tx/rules/resolve.js.map +2 -2
  85. package/dist/esm/tx/transfer-policy.d.ts +1 -0
  86. package/dist/esm/tx/transfer-policy.d.ts.map +1 -0
  87. package/dist/esm/types/index.d.ts +1 -0
  88. package/dist/esm/types/index.d.ts.map +1 -0
  89. package/dist/esm/types/kiosk.d.ts +1 -0
  90. package/dist/esm/types/kiosk.d.ts.map +1 -0
  91. package/dist/esm/types/transfer-policy.d.ts +3 -2
  92. package/dist/esm/types/transfer-policy.d.ts.map +1 -0
  93. package/dist/esm/types/transfer-policy.js.map +2 -2
  94. package/dist/esm/utils.d.ts +1 -0
  95. package/dist/esm/utils.d.ts.map +1 -0
  96. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  97. package/dist/tsconfig.tsbuildinfo +1 -1
  98. package/package.json +5 -5
  99. package/src/client/kiosk-client.ts +1 -10
  100. package/src/client/kiosk-transaction.ts +7 -11
  101. package/src/client/tp-transaction.ts +1 -8
  102. package/src/constants.ts +5 -3
  103. package/src/query/kiosk.ts +108 -28
  104. package/src/tx/rules/resolve.ts +45 -6
  105. package/src/types/transfer-policy.ts +3 -2
@@ -9,6 +9,9 @@ import {
9
9
  getAllObjects,
10
10
  getKioskObject
11
11
  } from "../utils.js";
12
+ const DEFAULT_PAGE_SIZE = 50;
13
+ const PERSONAL_KIOSKS_CURSOR = "personal";
14
+ const OWNED_KIOSKS_CURSOR = "owned";
12
15
  async function fetchKiosk(client, kioskId, pagination, options) {
13
16
  const data = await getAllDynamicFields(client, kioskId, pagination);
14
17
  const listings = [];
@@ -39,41 +42,97 @@ async function fetchKiosk(client, kioskId, pagination, options) {
39
42
  };
40
43
  }
41
44
  async function getOwnedKiosks(client, address, options) {
42
- if (!isValidIotaAddress(address))
45
+ if (!isValidIotaAddress(address)) {
43
46
  return {
44
47
  nextCursor: null,
45
48
  hasNextPage: false,
46
49
  kioskOwnerCaps: [],
47
50
  kioskIds: []
48
51
  };
49
- const filter = {
50
- MatchAny: [
51
- {
52
- StructType: KIOSK_OWNER_CAP
53
- }
54
- ]
55
- };
56
- if (options?.personalKioskType) {
57
- filter.MatchAny.push({
58
- StructType: options.personalKioskType
59
- });
60
52
  }
61
- const { data, hasNextPage, nextCursor } = await client.getOwnedObjects({
62
- owner: address,
63
- filter,
64
- options: {
65
- showContent: true,
66
- showType: true
67
- },
68
- ...options?.pagination || {}
69
- });
53
+ const limit = options?.pagination?.limit ?? DEFAULT_PAGE_SIZE;
54
+ const [cursorType, cursor] = options?.pagination?.cursor?.split(":") ?? [
55
+ PERSONAL_KIOSKS_CURSOR,
56
+ null
57
+ ];
58
+ if (options?.personalKioskType && cursorType === PERSONAL_KIOSKS_CURSOR) {
59
+ const personalKioskResponse = formatOwnedKioskResponse(
60
+ await client.getOwnedObjects({
61
+ owner: address,
62
+ filter: {
63
+ StructType: options.personalKioskType
64
+ },
65
+ options: {
66
+ showContent: true,
67
+ showType: true
68
+ },
69
+ cursor,
70
+ limit
71
+ }),
72
+ PERSONAL_KIOSKS_CURSOR
73
+ );
74
+ if (personalKioskResponse.hasNextPage) {
75
+ return personalKioskResponse;
76
+ }
77
+ const remainingLimit = limit - personalKioskResponse.kioskOwnerCaps.length;
78
+ if (remainingLimit < 1) {
79
+ return {
80
+ nextCursor: `${OWNED_KIOSKS_CURSOR}:`,
81
+ hasNextPage: true,
82
+ kioskOwnerCaps: personalKioskResponse.kioskOwnerCaps,
83
+ kioskIds: personalKioskResponse.kioskIds
84
+ };
85
+ }
86
+ const ownedKiosksResponse = formatOwnedKioskResponse(
87
+ await client.getOwnedObjects({
88
+ owner: address,
89
+ filter: {
90
+ StructType: KIOSK_OWNER_CAP
91
+ },
92
+ options: {
93
+ showContent: true,
94
+ showType: true
95
+ },
96
+ limit: remainingLimit
97
+ }),
98
+ OWNED_KIOSKS_CURSOR
99
+ );
100
+ return {
101
+ nextCursor: ownedKiosksResponse.nextCursor,
102
+ hasNextPage: ownedKiosksResponse.hasNextPage,
103
+ kioskOwnerCaps: [
104
+ ...personalKioskResponse.kioskOwnerCaps,
105
+ ...ownedKiosksResponse.kioskOwnerCaps
106
+ ],
107
+ kioskIds: [...personalKioskResponse.kioskIds, ...ownedKiosksResponse.kioskIds]
108
+ };
109
+ }
110
+ return formatOwnedKioskResponse(
111
+ await client.getOwnedObjects({
112
+ owner: address,
113
+ filter: {
114
+ StructType: KIOSK_OWNER_CAP
115
+ },
116
+ options: {
117
+ showContent: true,
118
+ showType: true
119
+ },
120
+ // cursor might be an empty string if the number of personal kiosks was a multiple of the limit.
121
+ cursor: cursor ? cursor : null,
122
+ limit
123
+ }),
124
+ OWNED_KIOSKS_CURSOR
125
+ );
126
+ }
127
+ function formatOwnedKioskResponse(response, cursorType) {
128
+ const { data, hasNextPage, nextCursor } = response;
70
129
  const kioskIdList = data?.map((x) => {
71
130
  const fields = x.data?.content?.dataType === "moveObject" ? x.data.content.fields : null;
72
131
  return fields?.cap ? fields?.cap?.fields?.for : fields?.for;
73
132
  });
74
133
  const filteredData = data.filter((x) => "data" in x).map((x) => x.data);
75
134
  return {
76
- nextCursor,
135
+ nextCursor: nextCursor ? `${cursorType}:${nextCursor}` : nextCursor,
77
136
  hasNextPage,
78
137
  kioskOwnerCaps: filteredData.map((x, idx) => ({
79
138
  isPersonal: x.type !== KIOSK_OWNER_CAP,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/query/kiosk.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n PaginationArguments,\n IotaClient,\n IotaObjectData,\n IotaObjectDataFilter,\n IotaObjectResponse,\n} from '@iota/iota-sdk/client';\nimport { isValidIotaAddress } from '@iota/iota-sdk/utils';\n\nimport type {\n FetchKioskOptions,\n KioskExtension,\n KioskListing,\n OwnedKiosks,\n PagedKioskData,\n} from '../types/index.js';\nimport { KIOSK_OWNER_CAP } from '../types/index.js';\nimport {\n attachListingsAndPrices,\n attachLockedItems,\n attachObjects,\n extractKioskData,\n getAllDynamicFields,\n getAllObjects,\n getKioskObject,\n} from '../utils.js';\n\nexport async function fetchKiosk(\n client: IotaClient,\n kioskId: string,\n pagination: PaginationArguments<string>,\n options: FetchKioskOptions,\n): Promise<PagedKioskData> {\n // TODO: Replace the `getAllDynamicFields` with a paginated\n // response, once we have better RPC support for\n // type filtering & batch fetching.\n // This can't work with pagination currently.\n const data = await getAllDynamicFields(client, kioskId, pagination);\n\n const listings: KioskListing[] = [];\n const lockedItemIds: string[] = [];\n\n // extracted kiosk data.\n const kioskData = extractKioskData(data, listings, lockedItemIds, kioskId);\n\n // split the fetching in two queries as we are most likely passing different options for each kind.\n // For items, we usually seek the Display.\n // For listings we usually seek the DF value (price) / exclusivity.\n const [kiosk, listingObjects, items] = await Promise.all([\n options.withKioskFields ? getKioskObject(client, kioskId) : Promise.resolve(undefined),\n options.withListingPrices\n ? getAllObjects(client, kioskData.listingIds, {\n showContent: true,\n })\n : Promise.resolve([]),\n options.withObjects\n ? getAllObjects(\n client,\n kioskData.itemIds,\n options.objectOptions || { showDisplay: true },\n )\n : Promise.resolve([]),\n ]);\n\n if (options.withKioskFields) kioskData.kiosk = kiosk;\n // attach items listings. IF we have `options.withListingPrices === true`, it will also attach the prices.\n attachListingsAndPrices(kioskData, listings, listingObjects);\n // add `locked` status to items that are locked.\n attachLockedItems(kioskData, lockedItemIds);\n\n // Attach the objects for the queried items.\n attachObjects(\n kioskData,\n items.filter((x) => !!x.data).map((x) => x.data!),\n );\n\n return {\n data: kioskData,\n nextCursor: null,\n hasNextPage: false,\n };\n}\n\n/**\n * A function to fetch all the user's kiosk Caps\n * And a list of the kiosk address ids.\n * Returns a list of `kioskOwnerCapIds` and `kioskIds`.\n * Extra options allow pagination.\n */\nexport async function getOwnedKiosks(\n client: IotaClient,\n address: string,\n options?: {\n pagination?: PaginationArguments<string>;\n personalKioskType: string;\n },\n): Promise<OwnedKiosks> {\n if (!isValidIotaAddress(address))\n return {\n nextCursor: null,\n hasNextPage: false,\n kioskOwnerCaps: [],\n kioskIds: [],\n };\n\n const filter: IotaObjectDataFilter = {\n MatchAny: [\n {\n StructType: KIOSK_OWNER_CAP,\n },\n ],\n };\n\n if (options?.personalKioskType) {\n filter.MatchAny.push({\n StructType: options.personalKioskType,\n });\n }\n\n // fetch owned kiosk caps, paginated.\n const { data, hasNextPage, nextCursor } = await client.getOwnedObjects({\n owner: address,\n filter,\n options: {\n showContent: true,\n showType: true,\n },\n ...(options?.pagination || {}),\n });\n\n // get kioskIds from the OwnerCaps.\n const kioskIdList = data?.map((x: IotaObjectResponse) => {\n const fields = x.data?.content?.dataType === 'moveObject' ? x.data.content.fields : null;\n // @ts-expect-error TODO: should i remove ts ignore here?\n return (fields?.cap ? fields?.cap?.fields?.for : fields?.for) as string;\n // return (fields as { for: string })?.for;\n });\n\n // clean up data that might have an error in them.\n // only return valid objects.\n const filteredData = data.filter((x) => 'data' in x).map((x) => x.data) as IotaObjectData[];\n\n return {\n nextCursor,\n hasNextPage,\n kioskOwnerCaps: filteredData.map((x, idx) => ({\n isPersonal: x.type !== KIOSK_OWNER_CAP,\n digest: x.digest,\n version: x.version,\n objectId: x.objectId,\n kioskId: kioskIdList[idx],\n })),\n kioskIds: kioskIdList,\n };\n}\n\n// Get a kiosk extension data for a given kioskId and extensionType.\nexport async function fetchKioskExtension(\n client: IotaClient,\n kioskId: string,\n extensionType: string,\n): Promise<KioskExtension | null> {\n const extension = await client.getDynamicFieldObjectV2({\n parentObjectId: kioskId,\n name: {\n type: `0x2::kiosk_extension::ExtensionKey<${extensionType}>`,\n value: {\n dummy_field: false,\n },\n },\n options: {\n showContent: true,\n },\n });\n\n if (!extension.data) return null;\n\n const fields = (extension?.data?.content as { fields: { [k: string]: any } })?.fields?.value\n ?.fields;\n\n return {\n objectId: extension.data.objectId,\n type: extensionType,\n isEnabled: fields?.is_enabled,\n permissions: fields?.permissions,\n storageId: fields?.storage?.fields?.id?.id,\n storageSize: fields?.storage?.fields?.size,\n };\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type {\n PaginatedObjectsResponse,\n PaginationArguments,\n IotaClient,\n IotaObjectData,\n IotaObjectResponse,\n} from '@iota/iota-sdk/client';\nimport { isValidIotaAddress } from '@iota/iota-sdk/utils';\n\nimport type {\n FetchKioskOptions,\n KioskExtension,\n KioskListing,\n OwnedKiosks,\n PagedKioskData,\n} from '../types/index.js';\nimport { KIOSK_OWNER_CAP } from '../types/index.js';\nimport {\n attachListingsAndPrices,\n attachLockedItems,\n attachObjects,\n extractKioskData,\n getAllDynamicFields,\n getAllObjects,\n getKioskObject,\n} from '../utils.js';\n\nconst DEFAULT_PAGE_SIZE = 50;\nconst PERSONAL_KIOSKS_CURSOR = 'personal';\nconst OWNED_KIOSKS_CURSOR = 'owned';\n\nexport async function fetchKiosk(\n client: IotaClient,\n kioskId: string,\n pagination: PaginationArguments<string>,\n options: FetchKioskOptions,\n): Promise<PagedKioskData> {\n // TODO: Replace the `getAllDynamicFields` with a paginated\n // response, once we have better RPC support for\n // type filtering & batch fetching.\n // This can't work with pagination currently.\n const data = await getAllDynamicFields(client, kioskId, pagination);\n\n const listings: KioskListing[] = [];\n const lockedItemIds: string[] = [];\n\n // extracted kiosk data.\n const kioskData = extractKioskData(data, listings, lockedItemIds, kioskId);\n\n // split the fetching in two queries as we are most likely passing different options for each kind.\n // For items, we usually seek the Display.\n // For listings we usually seek the DF value (price) / exclusivity.\n const [kiosk, listingObjects, items] = await Promise.all([\n options.withKioskFields ? getKioskObject(client, kioskId) : Promise.resolve(undefined),\n options.withListingPrices\n ? getAllObjects(client, kioskData.listingIds, {\n showContent: true,\n })\n : Promise.resolve([]),\n options.withObjects\n ? getAllObjects(\n client,\n kioskData.itemIds,\n options.objectOptions || { showDisplay: true },\n )\n : Promise.resolve([]),\n ]);\n\n if (options.withKioskFields) kioskData.kiosk = kiosk;\n // attach items listings. IF we have `options.withListingPrices === true`, it will also attach the prices.\n attachListingsAndPrices(kioskData, listings, listingObjects);\n // add `locked` status to items that are locked.\n attachLockedItems(kioskData, lockedItemIds);\n\n // Attach the objects for the queried items.\n attachObjects(\n kioskData,\n items.filter((x) => !!x.data).map((x) => x.data!),\n );\n\n return {\n data: kioskData,\n nextCursor: null,\n hasNextPage: false,\n };\n}\n\n/**\n * A function to fetch all the user's kiosk Caps\n * And a list of the kiosk address ids.\n * Returns a list of `kioskOwnerCapIds` and `kioskIds`.\n * Extra options allow pagination.\n */\nexport async function getOwnedKiosks(\n client: IotaClient,\n address: string,\n options?: {\n pagination?: PaginationArguments<string>;\n personalKioskType: string;\n },\n): Promise<OwnedKiosks> {\n // TODO: this should throw an error, but I am not going to change it right now incase it breaks existing code.\n if (!isValidIotaAddress(address)) {\n return {\n nextCursor: null,\n hasNextPage: false,\n kioskOwnerCaps: [],\n kioskIds: [],\n };\n }\n\n const limit = options?.pagination?.limit ?? DEFAULT_PAGE_SIZE;\n const [cursorType, cursor] = options?.pagination?.cursor?.split(':') ?? [\n PERSONAL_KIOSKS_CURSOR,\n null,\n ];\n\n if (options?.personalKioskType && cursorType === PERSONAL_KIOSKS_CURSOR) {\n const personalKioskResponse = formatOwnedKioskResponse(\n await client.getOwnedObjects({\n owner: address,\n filter: {\n StructType: options.personalKioskType,\n },\n options: {\n showContent: true,\n showType: true,\n },\n cursor,\n limit,\n }),\n PERSONAL_KIOSKS_CURSOR,\n );\n\n if (personalKioskResponse.hasNextPage) {\n return personalKioskResponse;\n }\n\n const remainingLimit = limit - personalKioskResponse.kioskOwnerCaps.length;\n\n // If we have all personal kiosks, but don't have space for the owned kiosks\n // we need to start loading owned kiosks for the next page, but don't have a real cursor\n if (remainingLimit < 1) {\n return {\n nextCursor: `${OWNED_KIOSKS_CURSOR}:`,\n hasNextPage: true,\n kioskOwnerCaps: personalKioskResponse.kioskOwnerCaps,\n kioskIds: personalKioskResponse.kioskIds,\n };\n }\n\n const ownedKiosksResponse = formatOwnedKioskResponse(\n await client.getOwnedObjects({\n owner: address,\n filter: {\n StructType: KIOSK_OWNER_CAP,\n },\n options: {\n showContent: true,\n showType: true,\n },\n limit: remainingLimit,\n }),\n OWNED_KIOSKS_CURSOR,\n );\n\n return {\n nextCursor: ownedKiosksResponse.nextCursor,\n hasNextPage: ownedKiosksResponse.hasNextPage,\n kioskOwnerCaps: [\n ...personalKioskResponse.kioskOwnerCaps,\n ...ownedKiosksResponse.kioskOwnerCaps,\n ],\n kioskIds: [...personalKioskResponse.kioskIds, ...ownedKiosksResponse.kioskIds],\n };\n }\n\n return formatOwnedKioskResponse(\n await client.getOwnedObjects({\n owner: address,\n filter: {\n StructType: KIOSK_OWNER_CAP,\n },\n options: {\n showContent: true,\n showType: true,\n },\n // cursor might be an empty string if the number of personal kiosks was a multiple of the limit.\n cursor: cursor ? cursor : null,\n limit,\n }),\n OWNED_KIOSKS_CURSOR,\n );\n}\n\nfunction formatOwnedKioskResponse(\n response: PaginatedObjectsResponse,\n cursorType: string,\n): OwnedKiosks {\n const { data, hasNextPage, nextCursor } = response;\n\n // get kioskIds from the OwnerCaps.\n const kioskIdList = data?.map((x: IotaObjectResponse) => {\n const fields =\n x.data?.content?.dataType === 'moveObject'\n ? (x.data.content.fields as unknown as\n | {\n cap: { fields: { for: string } };\n for?: never;\n }\n | {\n cap?: never;\n for: string;\n })\n : null;\n return fields?.cap ? fields?.cap?.fields?.for : (fields?.for as string);\n });\n\n // clean up data that might have an error in them.\n // only return valid objects.\n const filteredData = data.filter((x) => 'data' in x).map((x) => x.data) as IotaObjectData[];\n\n return {\n nextCursor: nextCursor ? `${cursorType}:${nextCursor}` : nextCursor,\n hasNextPage,\n kioskOwnerCaps: filteredData.map((x, idx) => ({\n isPersonal: x.type !== KIOSK_OWNER_CAP,\n digest: x.digest,\n version: x.version,\n objectId: x.objectId,\n kioskId: kioskIdList[idx],\n })),\n kioskIds: kioskIdList,\n };\n}\n\n// Get a kiosk extension data for a given kioskId and extensionType.\nexport async function fetchKioskExtension(\n client: IotaClient,\n kioskId: string,\n extensionType: string,\n): Promise<KioskExtension | null> {\n const extension = await client.getDynamicFieldObjectV2({\n parentObjectId: kioskId,\n name: {\n type: `0x2::kiosk_extension::ExtensionKey<${extensionType}>`,\n value: {\n dummy_field: false,\n },\n },\n options: {\n showContent: true,\n },\n });\n\n if (!extension.data) return null;\n\n const fields = (extension?.data?.content as { fields: { [k: string]: any } })?.fields?.value\n ?.fields;\n\n return {\n objectId: extension.data.objectId,\n type: extensionType,\n isEnabled: fields?.is_enabled,\n permissions: fields?.permissions,\n storageId: fields?.storage?.fields?.id?.id,\n storageSize: fields?.storage?.fields?.size,\n };\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -27,3 +27,4 @@ export declare function queryTransferPolicyCapsByType(client: IotaClient, addres
27
27
  * @returns TransferPolicyCap Object ID | undefined if not found.
28
28
  */
29
29
  export declare function queryOwnedTransferPolicies(client: IotaClient, address: string): Promise<TransferPolicyCap[] | undefined>;
30
+ //# sourceMappingURL=transfer-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-policy.d.ts","sourceRoot":"","sources":["../../../src/query/transfer-policy.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,WAAW,CAAC;AAGnB,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAQ3E;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,cAAc,EAAE,CAAC,CAmC3B;AAED;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CAC/C,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAqB9B;AAED;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC5C,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,EAAE,GAAG,SAAS,CAAC,CAyB1C"}
@@ -69,3 +69,4 @@ export declare function borrowValue(tx: Transaction, itemType: string, kiosk: Ob
69
69
  * Return an item to the Kiosk after it was `borrowValue`-d.
70
70
  */
71
71
  export declare function returnValue(tx: Transaction, itemType: string, kiosk: ObjectArgument, item: TransactionArgument, promise: TransactionArgument): void;
72
+ //# sourceMappingURL=kiosk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kiosk.d.ts","sourceRoot":"","sources":["../../../src/tx/kiosk.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACR,WAAW,EACX,mBAAmB,EACnB,yBAAyB,EAC5B,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD;;GAEG;AACH,wBAAgB,WAAW,CACvB,EAAE,EAAE,WAAW,GAChB,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,CAMxD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,WAAW,GAAG,yBAAyB,CAI9E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,mBAAmB,QAMrE;AAED;;;GAGG;AACH,wBAAgB,KAAK,CACjB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,cAAc,GACrB,IAAI,CAMN;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAChB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,cAAc,GACrB,IAAI,CAMN;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAChB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,MAAM,GACf,yBAAyB,CAQ3B;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAChB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GAAG,MAAM,GACvB,IAAI,CAMN;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAClB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,MAAM,GACf,IAAI,CAMN;AAED;;;GAGG;AACH,wBAAgB,YAAY,CACxB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,MAAM,GAAG,MAAM,GACvB,IAAI,CAMN;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CACpB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,cAAc,GACxB,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,CAQxD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC7B,EAAE,EAAE,WAAW,EACf,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,cAAc,EACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAClC,yBAAyB,CAS3B;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACvB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,MAAM,GACf,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAQ5C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACvB,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,mBAAmB,GAC7B,IAAI,CAMN"}
@@ -5,3 +5,4 @@ export declare function convertToPersonalTx(tx: Transaction, kiosk: ObjectArgume
5
5
  * Transfers the personal kiosk Cap to the sender.
6
6
  */
7
7
  export declare function transferPersonalCapTx(tx: Transaction, personalKioskCap: TransactionObjectArgument, packageId: string): void;
8
+ //# sourceMappingURL=personal-kiosk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"personal-kiosk.d.ts","sourceRoot":"","sources":["../../../src/tx/personal-kiosk.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAE1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,wBAAgB,mBAAmB,CAC/B,EAAE,EAAE,WAAW,EACf,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,cAAc,EAC7B,SAAS,EAAE,MAAM,GAClB,yBAAyB,CAO3B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACjC,EAAE,EAAE,WAAW,EACf,gBAAgB,EAAE,yBAAyB,EAC3C,SAAS,EAAE,MAAM,QAMpB"}
@@ -5,3 +5,4 @@ export declare function attachRoyaltyRuleTx(tx: Transaction, type: string, polic
5
5
  minAmount: number | string, packageId: string): void;
6
6
  export declare function attachPersonalKioskRuleTx(tx: Transaction, type: string, policy: ObjectArgument, policyCap: ObjectArgument, packageId: string): void;
7
7
  export declare function attachFloorPriceRuleTx(tx: Transaction, type: string, policy: ObjectArgument, policyCap: ObjectArgument, minPrice: string | bigint, packageId: string): void;
8
+ //# sourceMappingURL=attach.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attach.d.ts","sourceRoot":"","sources":["../../../../src/tx/rules/attach.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,wBAAgB,qBAAqB,CACjC,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,MAAM,QAOpB;AAED,wBAAgB,mBAAmB,CAC/B,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,cAAc,EACzB,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,2BAA2B;AAC3D,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,SAAS,EAAE,MAAM,QAepB;AAED,wBAAgB,yBAAyB,CACrC,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,MAAM,QAOpB;AAED,wBAAgB,sBAAsB,CAClC,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,cAAc,EACzB,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,SAAS,EAAE,MAAM,QAOpB"}
@@ -2,7 +2,7 @@ import type { RuleResolvingParams } from '../../types/index.js';
2
2
  /**
3
3
  * A helper to resolve the royalty rule.
4
4
  */
5
- export declare function resolveRoyaltyRule(params: RuleResolvingParams): void;
5
+ export declare function resolveRoyaltyRule(params: RuleResolvingParams): Promise<void>;
6
6
  export declare function resolveKioskLockRule(params: RuleResolvingParams): void;
7
7
  /**
8
8
  * A helper to resolve the personalKioskRule.
@@ -13,3 +13,4 @@ export declare function resolvePersonalKioskRule(params: RuleResolvingParams): v
13
13
  * Resolves the floor price rule.
14
14
  */
15
15
  export declare function resolveFloorPriceRule(params: RuleResolvingParams): void;
16
+ //# sourceMappingURL=resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../../src/tx/rules/resolve.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAGhE;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,iBAuDnE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,QAsB/D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,QAWnE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,QAShE"}
@@ -1,12 +1,42 @@
1
+ import { bcs } from "@iota/iota-sdk/bcs";
2
+ import { Transaction } from "@iota/iota-sdk/transactions";
3
+ import { normalizeIotaAddress } from "@iota/iota-sdk/utils";
1
4
  import { lock } from "../kiosk.js";
2
- function resolveRoyaltyRule(params) {
3
- const { transaction: tx, itemType, price, packageId, transferRequest, policyId } = params;
4
- const policyObj = tx.object(policyId);
5
- const [amount] = tx.moveCall({
5
+ async function resolveRoyaltyRule(params) {
6
+ const {
7
+ kioskClient,
8
+ transaction: tx,
9
+ itemType,
10
+ price,
11
+ packageId,
12
+ transferRequest,
13
+ policyId
14
+ } = params;
15
+ const feeTx = new Transaction();
16
+ feeTx.moveCall({
6
17
  target: `${packageId}::royalty_rule::fee_amount`,
7
18
  typeArguments: [itemType],
8
- arguments: [policyObj, tx.pure.u64(price || "0")]
19
+ arguments: [feeTx.object(policyId), feeTx.pure.u64(price || "0")]
20
+ });
21
+ const policyObj = tx.object(policyId);
22
+ const { results } = await kioskClient.client.devInspectTransactionBlock({
23
+ sender: tx.getData().sender || normalizeIotaAddress("0x0"),
24
+ transactionBlock: feeTx
9
25
  });
26
+ let amount = null;
27
+ if (results) {
28
+ const returnedAmount = results?.[0].returnValues?.[0]?.[0];
29
+ if (returnedAmount) {
30
+ amount = BigInt(bcs.U64.parse(new Uint8Array(returnedAmount)));
31
+ }
32
+ }
33
+ if (!amount) {
34
+ [amount] = tx.moveCall({
35
+ target: `${packageId}::royalty_rule::fee_amount`,
36
+ typeArguments: [itemType],
37
+ arguments: [policyObj, tx.pure.u64(price || "0")]
38
+ });
39
+ }
10
40
  const feeCoin = tx.splitCoins(tx.gas, [amount]);
11
41
  tx.moveCall({
12
42
  target: `${packageId}::royalty_rule::pay`,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/tx/rules/resolve.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { RuleResolvingParams } from '../../types/index.js';\nimport { lock } from '../kiosk.js';\n\n/**\n * A helper to resolve the royalty rule.\n */\nexport function resolveRoyaltyRule(params: RuleResolvingParams) {\n const { transaction: tx, itemType, price, packageId, transferRequest, policyId } = params;\n\n const policyObj = tx.object(policyId);\n\n // calculates the amount\n const [amount] = tx.moveCall({\n target: `${packageId}::royalty_rule::fee_amount`,\n typeArguments: [itemType],\n arguments: [policyObj, tx.pure.u64(price || '0')],\n });\n\n // splits the coin.\n const feeCoin = tx.splitCoins(tx.gas, [amount]);\n\n // pays the policy\n tx.moveCall({\n target: `${packageId}::royalty_rule::pay`,\n typeArguments: [itemType],\n arguments: [policyObj, transferRequest, feeCoin],\n });\n}\n\nexport function resolveKioskLockRule(params: RuleResolvingParams) {\n const {\n transaction: tx,\n packageId,\n itemType,\n kiosk,\n kioskCap,\n policyId,\n purchasedItem,\n transferRequest,\n } = params;\n\n if (!kiosk || !kioskCap) throw new Error('Missing Owned Kiosk or Owned Kiosk Cap');\n\n lock(tx, itemType, kiosk, kioskCap, policyId, purchasedItem);\n\n // proves that the item is locked in the kiosk to the TP.\n tx.moveCall({\n target: `${packageId}::kiosk_lock_rule::prove`,\n typeArguments: [itemType],\n arguments: [transferRequest, tx.object(kiosk)],\n });\n}\n\n/**\n * A helper to resolve the personalKioskRule.\n * @param params\n */\nexport function resolvePersonalKioskRule(params: RuleResolvingParams) {\n const { transaction: tx, packageId, itemType, kiosk, transferRequest } = params;\n\n if (!kiosk) throw new Error('Missing owned Kiosk.');\n\n // proves that the destination kiosk is personal.\n tx.moveCall({\n target: `${packageId}::personal_kiosk_rule::prove`,\n typeArguments: [itemType],\n arguments: [tx.object(kiosk), transferRequest],\n });\n}\n\n/**\n * Resolves the floor price rule.\n */\nexport function resolveFloorPriceRule(params: RuleResolvingParams) {\n const { transaction: tx, packageId, itemType, policyId, transferRequest } = params;\n\n // proves that the destination kiosk is personal\n tx.moveCall({\n target: `${packageId}::floor_price_rule::prove`,\n typeArguments: [itemType],\n arguments: [tx.object(policyId), transferRequest],\n });\n}\n"],
5
- "mappings": "AAKA,SAAS,YAAY;AAKd,SAAS,mBAAmB,QAA6B;AAC5D,QAAM,EAAE,aAAa,IAAI,UAAU,OAAO,WAAW,iBAAiB,SAAS,IAAI;AAEnF,QAAM,YAAY,GAAG,OAAO,QAAQ;AAGpC,QAAM,CAAC,MAAM,IAAI,GAAG,SAAS;AAAA,IACzB,QAAQ,GAAG,SAAS;AAAA,IACpB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,WAAW,GAAG,KAAK,IAAI,SAAS,GAAG,CAAC;AAAA,EACpD,CAAC;AAGD,QAAM,UAAU,GAAG,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;AAG9C,KAAG,SAAS;AAAA,IACR,QAAQ,GAAG,SAAS;AAAA,IACpB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,WAAW,iBAAiB,OAAO;AAAA,EACnD,CAAC;AACL;AAEO,SAAS,qBAAqB,QAA6B;AAC9D,QAAM;AAAA,IACF,aAAa;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAI;AAEJ,MAAI,CAAC,SAAS,CAAC,SAAU,OAAM,IAAI,MAAM,wCAAwC;AAEjF,OAAK,IAAI,UAAU,OAAO,UAAU,UAAU,aAAa;AAG3D,KAAG,SAAS;AAAA,IACR,QAAQ,GAAG,SAAS;AAAA,IACpB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,iBAAiB,GAAG,OAAO,KAAK,CAAC;AAAA,EACjD,CAAC;AACL;AAMO,SAAS,yBAAyB,QAA6B;AAClE,QAAM,EAAE,aAAa,IAAI,WAAW,UAAU,OAAO,gBAAgB,IAAI;AAEzE,MAAI,CAAC,MAAO,OAAM,IAAI,MAAM,sBAAsB;AAGlD,KAAG,SAAS;AAAA,IACR,QAAQ,GAAG,SAAS;AAAA,IACpB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,KAAK,GAAG,eAAe;AAAA,EACjD,CAAC;AACL;AAKO,SAAS,sBAAsB,QAA6B;AAC/D,QAAM,EAAE,aAAa,IAAI,WAAW,UAAU,UAAU,gBAAgB,IAAI;AAG5E,KAAG,SAAS;AAAA,IACR,QAAQ,GAAG,SAAS;AAAA,IACpB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,QAAQ,GAAG,eAAe;AAAA,EACpD,CAAC;AACL;",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2026 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport { bcs } from '@iota/iota-sdk/bcs';\nimport type { TransactionArgument } from '@iota/iota-sdk/transactions';\nimport { Transaction } from '@iota/iota-sdk/transactions';\nimport { normalizeIotaAddress } from '@iota/iota-sdk/utils';\n\nimport type { RuleResolvingParams } from '../../types/index.js';\nimport { lock } from '../kiosk.js';\n\n/**\n * A helper to resolve the royalty rule.\n */\nexport async function resolveRoyaltyRule(params: RuleResolvingParams) {\n const {\n kioskClient,\n transaction: tx,\n itemType,\n price,\n packageId,\n transferRequest,\n policyId,\n } = params;\n\n // We attempt to resolve the fee amount outside of the PTB so that the split amount is known before the transaction is sent.\n // This improves the display of the transaction within the wallet.\n\n const feeTx = new Transaction();\n // calculates the amount\n feeTx.moveCall({\n target: `${packageId}::royalty_rule::fee_amount`,\n typeArguments: [itemType],\n arguments: [feeTx.object(policyId), feeTx.pure.u64(price || '0')],\n });\n\n const policyObj = tx.object(policyId);\n\n const { results } = await kioskClient.client.devInspectTransactionBlock({\n sender: tx.getData().sender || normalizeIotaAddress('0x0'),\n transactionBlock: feeTx,\n });\n\n let amount: TransactionArgument | bigint | null = null;\n if (results) {\n const returnedAmount = results?.[0].returnValues?.[0]?.[0];\n if (returnedAmount) {\n amount = BigInt(bcs.U64.parse(new Uint8Array(returnedAmount as number[])));\n }\n }\n\n // We were not able to calculate the amount outside of the transaction, so fall back to resolving it within the PTB\n if (!amount) {\n [amount] = tx.moveCall({\n target: `${packageId}::royalty_rule::fee_amount`,\n typeArguments: [itemType],\n arguments: [policyObj, tx.pure.u64(price || '0')],\n });\n }\n\n // splits the coin.\n const feeCoin = tx.splitCoins(tx.gas, [amount]);\n\n // pays the policy\n tx.moveCall({\n target: `${packageId}::royalty_rule::pay`,\n typeArguments: [itemType],\n arguments: [policyObj, transferRequest, feeCoin],\n });\n}\n\nexport function resolveKioskLockRule(params: RuleResolvingParams) {\n const {\n transaction: tx,\n packageId,\n itemType,\n kiosk,\n kioskCap,\n policyId,\n purchasedItem,\n transferRequest,\n } = params;\n\n if (!kiosk || !kioskCap) throw new Error('Missing Owned Kiosk or Owned Kiosk Cap');\n\n lock(tx, itemType, kiosk, kioskCap, policyId, purchasedItem);\n\n // proves that the item is locked in the kiosk to the TP.\n tx.moveCall({\n target: `${packageId}::kiosk_lock_rule::prove`,\n typeArguments: [itemType],\n arguments: [transferRequest, tx.object(kiosk)],\n });\n}\n\n/**\n * A helper to resolve the personalKioskRule.\n * @param params\n */\nexport function resolvePersonalKioskRule(params: RuleResolvingParams) {\n const { transaction: tx, packageId, itemType, kiosk, transferRequest } = params;\n\n if (!kiosk) throw new Error('Missing owned Kiosk.');\n\n // proves that the destination kiosk is personal.\n tx.moveCall({\n target: `${packageId}::personal_kiosk_rule::prove`,\n typeArguments: [itemType],\n arguments: [tx.object(kiosk), transferRequest],\n });\n}\n\n/**\n * Resolves the floor price rule.\n */\nexport function resolveFloorPriceRule(params: RuleResolvingParams) {\n const { transaction: tx, packageId, itemType, policyId, transferRequest } = params;\n\n // proves that the destination kiosk is personal\n tx.moveCall({\n target: `${packageId}::floor_price_rule::prove`,\n typeArguments: [itemType],\n arguments: [tx.object(policyId), transferRequest],\n });\n}\n"],
5
+ "mappings": "AAIA,SAAS,WAAW;AAEpB,SAAS,mBAAmB;AAC5B,SAAS,4BAA4B;AAGrC,SAAS,YAAY;AAKrB,eAAsB,mBAAmB,QAA6B;AAClE,QAAM;AAAA,IACF;AAAA,IACA,aAAa;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAI;AAKJ,QAAM,QAAQ,IAAI,YAAY;AAE9B,QAAM,SAAS;AAAA,IACX,QAAQ,GAAG,SAAS;AAAA,IACpB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,MAAM,OAAO,QAAQ,GAAG,MAAM,KAAK,IAAI,SAAS,GAAG,CAAC;AAAA,EACpE,CAAC;AAED,QAAM,YAAY,GAAG,OAAO,QAAQ;AAEpC,QAAM,EAAE,QAAQ,IAAI,MAAM,YAAY,OAAO,2BAA2B;AAAA,IACpE,QAAQ,GAAG,QAAQ,EAAE,UAAU,qBAAqB,KAAK;AAAA,IACzD,kBAAkB;AAAA,EACtB,CAAC;AAED,MAAI,SAA8C;AAClD,MAAI,SAAS;AACT,UAAM,iBAAiB,UAAU,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC;AACzD,QAAI,gBAAgB;AAChB,eAAS,OAAO,IAAI,IAAI,MAAM,IAAI,WAAW,cAA0B,CAAC,CAAC;AAAA,IAC7E;AAAA,EACJ;AAGA,MAAI,CAAC,QAAQ;AACT,KAAC,MAAM,IAAI,GAAG,SAAS;AAAA,MACnB,QAAQ,GAAG,SAAS;AAAA,MACpB,eAAe,CAAC,QAAQ;AAAA,MACxB,WAAW,CAAC,WAAW,GAAG,KAAK,IAAI,SAAS,GAAG,CAAC;AAAA,IACpD,CAAC;AAAA,EACL;AAGA,QAAM,UAAU,GAAG,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;AAG9C,KAAG,SAAS;AAAA,IACR,QAAQ,GAAG,SAAS;AAAA,IACpB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,WAAW,iBAAiB,OAAO;AAAA,EACnD,CAAC;AACL;AAEO,SAAS,qBAAqB,QAA6B;AAC9D,QAAM;AAAA,IACF,aAAa;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAI;AAEJ,MAAI,CAAC,SAAS,CAAC,SAAU,OAAM,IAAI,MAAM,wCAAwC;AAEjF,OAAK,IAAI,UAAU,OAAO,UAAU,UAAU,aAAa;AAG3D,KAAG,SAAS;AAAA,IACR,QAAQ,GAAG,SAAS;AAAA,IACpB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,iBAAiB,GAAG,OAAO,KAAK,CAAC;AAAA,EACjD,CAAC;AACL;AAMO,SAAS,yBAAyB,QAA6B;AAClE,QAAM,EAAE,aAAa,IAAI,WAAW,UAAU,OAAO,gBAAgB,IAAI;AAEzE,MAAI,CAAC,MAAO,OAAM,IAAI,MAAM,sBAAsB;AAGlD,KAAG,SAAS;AAAA,IACR,QAAQ,GAAG,SAAS;AAAA,IACpB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,KAAK,GAAG,eAAe;AAAA,EACjD,CAAC;AACL;AAKO,SAAS,sBAAsB,QAA6B;AAC/D,QAAM,EAAE,aAAa,IAAI,WAAW,UAAU,UAAU,gBAAgB,IAAI;AAG5E,KAAG,SAAS;AAAA,IACR,QAAQ,GAAG,SAAS;AAAA,IACpB,eAAe,CAAC,QAAQ;AAAA,IACxB,WAAW,CAAC,GAAG,OAAO,QAAQ,GAAG,eAAe;AAAA,EACpD,CAAC;AACL;",
6
6
  "names": []
7
7
  }
@@ -27,3 +27,4 @@ export declare function confirmRequest(tx: Transaction, itemType: string, policy
27
27
  * Calls the `transfer_policy::remove_rule` function to remove a Rule from the transfer policy's ruleset.
28
28
  */
29
29
  export declare function removeTransferPolicyRule(tx: Transaction, itemType: string, ruleType: string, configType: string, policy: ObjectArgument, policyCap: ObjectArgument): void;
30
+ //# sourceMappingURL=transfer-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-policy.d.ts","sourceRoot":"","sources":["../../../src/tx/transfer-policy.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACR,WAAW,EACX,mBAAmB,EACnB,yBAAyB,EAC5B,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD;;;GAGG;AACH,wBAAgB,oBAAoB,CAChC,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,cAAc,GAC1B,yBAAyB,CAU3B;AAED;;;GAGG;AACH,wBAAgB,kCAAkC,CAC9C,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,cAAc,GAC1B,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,CAQxD;AACD;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,yBAAyB,QAO5C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAC9B,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,cAAc,EACzB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAChC,yBAAyB,CAU3B;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC1B,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,mBAAmB,GAC7B,IAAI,CAMN;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACpC,EAAE,EAAE,WAAW,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,cAAc,GAC1B,IAAI,CAMN"}
@@ -15,3 +15,4 @@ export type KioskClientOptions = {
15
15
  network: NetworkId;
16
16
  packageIds?: BaseRulePackageIds;
17
17
  };
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAE7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,yBAAyB,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,SAAS,CAAC;IACnB,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACnC,CAAC"}
@@ -157,3 +157,4 @@ export type ItemValue = {
157
157
  export type Price = {
158
158
  price: string | bigint;
159
159
  };
160
+ //# sourceMappingURL=kiosk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kiosk.d.ts","sourceRoot":"","sources":["../../../src/types/kiosk.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { ObjectOwner } from '@iota/iota-sdk/client';
2
2
  import type { Transaction, TransactionObjectArgument } from '@iota/iota-sdk/transactions';
3
+ import type { KioskClient } from '../client/kiosk-client.js';
3
4
  import type { ObjectArgument } from './index.js';
4
5
  /** The Transfer Policy module. */
5
6
  export declare const TRANSFER_POLICY_MODULE = "0x2::transfer_policy";
@@ -35,8 +36,6 @@ export type TransferPolicyCreated = {
35
36
  };
36
37
  export type RuleResolvingParams = {
37
38
  transaction: Transaction;
38
- /** @deprecated use transaction instead */
39
- transactionBlock: Transaction;
40
39
  itemType: string;
41
40
  itemId: string;
42
41
  price: string;
@@ -48,4 +47,6 @@ export type RuleResolvingParams = {
48
47
  purchasedItem: TransactionObjectArgument;
49
48
  packageId: string;
50
49
  extraArgs: Record<string, any>;
50
+ kioskClient: KioskClient;
51
51
  };
52
+ //# sourceMappingURL=transfer-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-policy.d.ts","sourceRoot":"","sources":["../../../src/types/transfer-policy.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAE1F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,kCAAkC;AAClC,eAAO,MAAM,sBAAsB,yBAAyB,CAAC;AAE7D,wEAAwE;AACxE,eAAO,MAAM,6BAA6B,gDAAqD,CAAC;AAEhG,+BAA+B;AAC/B,eAAO,MAAM,oBAAoB,yCAA8C,CAAC;AAEhF,mCAAmC;AACnC,eAAO,MAAM,wBAAwB,4CAAiD,CAAC;AAEvF,0BAA0B;AAC1B,eAAO,MAAM,eAAe,0BAA0B,CAAC;AAEvD,uBAAuB;AACvB,eAAO,MAAM,YAAY,uBAAuB,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,kCAAkC;AAClC,MAAM,MAAM,cAAc,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,sDAAsD;AACtD,MAAM,MAAM,qBAAqB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;CACd,CAAC;AAMF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,cAAc,CAAC;IAC5B,KAAK,EAAE,cAAc,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,eAAe,EAAE,yBAAyB,CAAC;IAC3C,aAAa,EAAE,yBAAyB,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE/B,WAAW,EAAE,WAAW,CAAC;CAC5B,CAAC"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/types/transfer-policy.ts"],
4
- "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ObjectOwner } from '@iota/iota-sdk/client';\nimport type { Transaction, TransactionObjectArgument } from '@iota/iota-sdk/transactions';\n\nimport type { ObjectArgument } from './index.js';\n\n/** The Transfer Policy module. */\nexport const TRANSFER_POLICY_MODULE = '0x2::transfer_policy';\n\n/** Name of the event emitted when a TransferPolicy for T is created. */\nexport const TRANSFER_POLICY_CREATED_EVENT = `${TRANSFER_POLICY_MODULE}::TransferPolicyCreated`;\n\n/** The Transfer Policy Type */\nexport const TRANSFER_POLICY_TYPE = `${TRANSFER_POLICY_MODULE}::TransferPolicy`;\n\n/** The Transfer Policy Cap Type */\nexport const TRANSFER_POLICY_CAP_TYPE = `${TRANSFER_POLICY_MODULE}::TransferPolicyCap`;\n\n/** The Kiosk Lock Rule */\nexport const KIOSK_LOCK_RULE = 'kiosk_lock_rule::Rule';\n\n/** The Royalty rule */\nexport const ROYALTY_RULE = 'royalty_rule::Rule';\n\n/**\n * The Transfer Policy Cap in a consumable way.\n */\nexport type TransferPolicyCap = {\n policyId: string;\n policyCapId: string;\n type: string;\n};\n\n/** The `TransferPolicy` object */\nexport type TransferPolicy = {\n id: string;\n type: string;\n balance: string;\n rules: string[];\n owner: ObjectOwner;\n};\n\n/** Event emitted when a TransferPolicy is created. */\nexport type TransferPolicyCreated = {\n id: string;\n};\n\n// The object a Rule resolving function accepts\n// It can accept a set of fixed fields, that are part of every purchase flow as well any extra arguments to resolve custom policies!\n// Each rule resolving function should check that the key it's seeking is in the object\n// e.g. `if(!'my_key' in ruleParams!) throw new Error(\"Can't resolve that rule!\")`\nexport type RuleResolvingParams = {\n transaction: Transaction;\n /** @deprecated use transaction instead */\n transactionBlock: Transaction;\n itemType: string;\n itemId: string;\n price: string;\n policyId: ObjectArgument;\n sellerKiosk: ObjectArgument;\n kiosk: ObjectArgument;\n kioskCap: ObjectArgument;\n transferRequest: TransactionObjectArgument;\n purchasedItem: TransactionObjectArgument;\n packageId: string;\n extraArgs: Record<string, any>; // extraParams contains more possible {key, values} to pass for custom rules.\n};\n"],
5
- "mappings": "AAUO,MAAM,yBAAyB;AAG/B,MAAM,gCAAgC,GAAG,sBAAsB;AAG/D,MAAM,uBAAuB,GAAG,sBAAsB;AAGtD,MAAM,2BAA2B,GAAG,sBAAsB;AAG1D,MAAM,kBAAkB;AAGxB,MAAM,eAAe;",
4
+ "sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// Modifications Copyright (c) 2024 IOTA Stiftung\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ObjectOwner } from '@iota/iota-sdk/client';\nimport type { Transaction, TransactionObjectArgument } from '@iota/iota-sdk/transactions';\n\nimport type { KioskClient } from '../client/kiosk-client.js';\nimport type { ObjectArgument } from './index.js';\n\n/** The Transfer Policy module. */\nexport const TRANSFER_POLICY_MODULE = '0x2::transfer_policy';\n\n/** Name of the event emitted when a TransferPolicy for T is created. */\nexport const TRANSFER_POLICY_CREATED_EVENT = `${TRANSFER_POLICY_MODULE}::TransferPolicyCreated`;\n\n/** The Transfer Policy Type */\nexport const TRANSFER_POLICY_TYPE = `${TRANSFER_POLICY_MODULE}::TransferPolicy`;\n\n/** The Transfer Policy Cap Type */\nexport const TRANSFER_POLICY_CAP_TYPE = `${TRANSFER_POLICY_MODULE}::TransferPolicyCap`;\n\n/** The Kiosk Lock Rule */\nexport const KIOSK_LOCK_RULE = 'kiosk_lock_rule::Rule';\n\n/** The Royalty rule */\nexport const ROYALTY_RULE = 'royalty_rule::Rule';\n\n/**\n * The Transfer Policy Cap in a consumable way.\n */\nexport type TransferPolicyCap = {\n policyId: string;\n policyCapId: string;\n type: string;\n};\n\n/** The `TransferPolicy` object */\nexport type TransferPolicy = {\n id: string;\n type: string;\n balance: string;\n rules: string[];\n owner: ObjectOwner;\n};\n\n/** Event emitted when a TransferPolicy is created. */\nexport type TransferPolicyCreated = {\n id: string;\n};\n\n// The object a Rule resolving function accepts\n// It can accept a set of fixed fields, that are part of every purchase flow as well any extra arguments to resolve custom policies!\n// Each rule resolving function should check that the key it's seeking is in the object\n// e.g. `if(!'my_key' in ruleParams!) throw new Error(\"Can't resolve that rule!\")`\nexport type RuleResolvingParams = {\n transaction: Transaction;\n itemType: string;\n itemId: string;\n price: string;\n policyId: ObjectArgument;\n sellerKiosk: ObjectArgument;\n kiosk: ObjectArgument;\n kioskCap: ObjectArgument;\n transferRequest: TransactionObjectArgument;\n purchasedItem: TransactionObjectArgument;\n packageId: string;\n extraArgs: Record<string, any>; // extraParams contains more possible {key, values} to pass for custom rules.\n\n kioskClient: KioskClient;\n};\n"],
5
+ "mappings": "AAWO,MAAM,yBAAyB;AAG/B,MAAM,gCAAgC,GAAG,sBAAsB;AAG/D,MAAM,uBAAuB,GAAG,sBAAsB;AAGtD,MAAM,2BAA2B,GAAG,sBAAsB;AAG1D,MAAM,kBAAkB;AAGxB,MAAM,eAAe;",
6
6
  "names": []
7
7
  }
@@ -49,3 +49,4 @@ export declare function percentageToBasisPoints(percentage: number): number;
49
49
  */
50
50
  export declare function parseTransferPolicyCapObject(item: IotaObjectResponse): TransferPolicyCap | undefined;
51
51
  export declare function getNormalizedRuleType(rule: string): string;
52
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACR,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EACrB,MAAM,uBAAuB,CAAC;AAS/B,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAK1F,wBAAsB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAYnF;AAGD,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,gBAAgB,EAAE,EACxB,QAAQ,EAAE,YAAY,EAAE,EACxB,aAAa,EAAE,MAAM,EAAE,EACvB,OAAO,EAAE,MAAM,GAChB,SAAS,CAqCX;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACnC,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,YAAY,EAAE,EACxB,cAAc,EAAE,kBAAkB,EAAE,QA0BvC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,QAY5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,QAc9E;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,mBAAmB,CAAC,MAAM,CAAC,+BAkB1C;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAC/B,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,MAAM,EAAE,EACb,OAAO,EAAE,qBAAqB,EAC9B,KAAK,GAAE,MAA4B,iCAgBtC;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,EACrC,MAAM,EACN,KAAK,EACL,MAAM,EACN,KAA2B,EAC3B,OAA+C,GAClD,EAAE;IACC,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,iCAmBA;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,UAIzD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CACxC,IAAI,EAAE,kBAAkB,GACzB,iBAAiB,GAAG,SAAS,CAiB/B;AAGD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,UAIjD"}