@dcl/content-validator 2.1.0 → 2.1.1-20220622185224.commit-163289a

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 (99) hide show
  1. package/dist/content-validator.api.json +38 -180
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/the-graph-client/the-graph-client.d.ts.map +1 -1
  5. package/dist/the-graph-client/the-graph-client.js +4 -13
  6. package/dist/the-graph-client/the-graph-client.js.map +1 -1
  7. package/dist/types.d.ts +0 -4
  8. package/dist/types.d.ts.map +1 -1
  9. package/dist/types.js +1 -16
  10. package/dist/types.js.map +1 -1
  11. package/dist/validations/ADR51.d.ts +3 -5
  12. package/dist/validations/ADR51.d.ts.map +1 -1
  13. package/dist/validations/ADR51.js +4 -0
  14. package/dist/validations/ADR51.js.map +1 -1
  15. package/dist/validations/access-checker/access.d.ts.map +1 -1
  16. package/dist/validations/access-checker/access.js +7 -7
  17. package/dist/validations/access-checker/access.js.map +1 -1
  18. package/dist/validations/access-checker/emotes.d.ts +3 -0
  19. package/dist/validations/access-checker/emotes.d.ts.map +1 -0
  20. package/dist/validations/access-checker/emotes.js +13 -0
  21. package/dist/validations/access-checker/emotes.js.map +1 -0
  22. package/dist/validations/access-checker/items/collection-asset.d.ts +15 -0
  23. package/dist/validations/access-checker/items/collection-asset.d.ts.map +1 -0
  24. package/dist/validations/access-checker/items/collection-asset.js +133 -0
  25. package/dist/validations/access-checker/items/collection-asset.js.map +1 -0
  26. package/dist/validations/access-checker/items/items.d.ts +13 -0
  27. package/dist/validations/access-checker/items/items.d.ts.map +1 -0
  28. package/dist/validations/access-checker/items/items.js +68 -0
  29. package/dist/validations/access-checker/items/items.js.map +1 -0
  30. package/dist/validations/access-checker/items/off-chain-asset.d.ts +3 -0
  31. package/dist/validations/access-checker/items/off-chain-asset.d.ts.map +1 -0
  32. package/dist/validations/access-checker/items/off-chain-asset.js +17 -0
  33. package/dist/validations/access-checker/items/off-chain-asset.js.map +1 -0
  34. package/dist/validations/access-checker/items/third-party-asset.d.ts +3 -0
  35. package/dist/validations/access-checker/items/third-party-asset.d.ts.map +1 -0
  36. package/dist/validations/access-checker/items/third-party-asset.js +107 -0
  37. package/dist/validations/access-checker/items/third-party-asset.js.map +1 -0
  38. package/dist/validations/access-checker/profiles.d.ts.map +1 -1
  39. package/dist/validations/access-checker/profiles.js +3 -3
  40. package/dist/validations/access-checker/profiles.js.map +1 -1
  41. package/dist/validations/access-checker/scenes.d.ts.map +1 -1
  42. package/dist/validations/access-checker/scenes.js +3 -10
  43. package/dist/validations/access-checker/scenes.js.map +1 -1
  44. package/dist/validations/access-checker/stores.d.ts.map +1 -1
  45. package/dist/validations/access-checker/stores.js.map +1 -1
  46. package/dist/validations/access-checker/wearables.d.ts +0 -18
  47. package/dist/validations/access-checker/wearables.d.ts.map +1 -1
  48. package/dist/validations/access-checker/wearables.js +9 -322
  49. package/dist/validations/access-checker/wearables.js.map +1 -1
  50. package/dist/validations/content.d.ts +3 -0
  51. package/dist/validations/content.d.ts.map +1 -1
  52. package/dist/validations/content.js +30 -17
  53. package/dist/validations/content.js.map +1 -1
  54. package/dist/validations/entity-structure.d.ts.map +1 -1
  55. package/dist/validations/entity-structure.js.map +1 -1
  56. package/dist/validations/index.d.ts +4 -23
  57. package/dist/validations/index.d.ts.map +1 -1
  58. package/dist/validations/index.js +6 -51
  59. package/dist/validations/index.js.map +1 -1
  60. package/dist/validations/ipfs-hashing.d.ts.map +1 -1
  61. package/dist/validations/ipfs-hashing.js +3 -6
  62. package/dist/validations/ipfs-hashing.js.map +1 -1
  63. package/dist/validations/items/emotes.d.ts +5 -0
  64. package/dist/validations/items/emotes.d.ts.map +1 -0
  65. package/dist/validations/items/emotes.js +35 -0
  66. package/dist/validations/items/emotes.js.map +1 -0
  67. package/dist/validations/items/items.d.ts +10 -0
  68. package/dist/validations/items/items.d.ts.map +1 -0
  69. package/dist/validations/items/items.js +79 -0
  70. package/dist/validations/items/items.js.map +1 -0
  71. package/dist/validations/{wearable.d.ts → items/wearables.d.ts} +2 -5
  72. package/dist/validations/items/wearables.d.ts.map +1 -0
  73. package/dist/validations/items/wearables.js +32 -0
  74. package/dist/validations/items/wearables.js.map +1 -0
  75. package/dist/validations/metadata-schema.d.ts +2 -5
  76. package/dist/validations/metadata-schema.d.ts.map +1 -1
  77. package/dist/validations/metadata-schema.js +37 -7
  78. package/dist/validations/metadata-schema.js.map +1 -1
  79. package/dist/validations/profile.d.ts.map +1 -1
  80. package/dist/validations/profile.js +9 -20
  81. package/dist/validations/profile.js.map +1 -1
  82. package/dist/validations/signature.d.ts.map +1 -1
  83. package/dist/validations/signature.js +1 -3
  84. package/dist/validations/signature.js.map +1 -1
  85. package/dist/validations/size.d.ts.map +1 -1
  86. package/dist/validations/size.js +4 -3
  87. package/dist/validations/size.js.map +1 -1
  88. package/dist/validations/timestamps.d.ts +21 -0
  89. package/dist/validations/timestamps.d.ts.map +1 -0
  90. package/dist/validations/timestamps.js +24 -0
  91. package/dist/validations/timestamps.js.map +1 -0
  92. package/dist/validations/validations.d.ts +9 -0
  93. package/dist/validations/validations.d.ts.map +1 -0
  94. package/dist/validations/validations.js +47 -0
  95. package/dist/validations/validations.js.map +1 -0
  96. package/package.json +4 -4
  97. package/dist/validations/wearable.d.ts.map +0 -1
  98. package/dist/validations/wearable.js +0 -110
  99. package/dist/validations/wearable.js.map +0 -1
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.emotes = void 0;
4
+ const items_1 = require("./items/items");
5
+ exports.emotes = {
6
+ validate: async (components, deployment) => {
7
+ return items_1.itemsValidation.validate(components, deployment, [
8
+ 'blockchain-collection-v2-asset',
9
+ 'blockchain-collection-third-party'
10
+ ]);
11
+ }
12
+ };
13
+ //# sourceMappingURL=emotes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emotes.js","sourceRoot":"","sources":["../../../src/validations/access-checker/emotes.ts"],"names":[],"mappings":";;;AAEA,yCAA+C;AAElC,QAAA,MAAM,GAAe;IAChC,QAAQ,EAAE,KAAK,EACb,UAAyF,EACzF,UAAU,EACV,EAAE;QACF,OAAO,uBAAe,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE;YACtD,gCAAgC;YAChC,mCAAmC;SACpC,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { AssetValidation } from './items';
2
+ declare type CollectionItem = {
3
+ managers: string[];
4
+ contentHash: string;
5
+ };
6
+ export declare type ItemCollection = {
7
+ creator: string;
8
+ managers: string[];
9
+ isApproved: boolean;
10
+ isCompleted: boolean;
11
+ items: CollectionItem[];
12
+ };
13
+ export declare const v1andV2collectionAssetValidation: AssetValidation;
14
+ export {};
15
+ //# sourceMappingURL=collection-asset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection-asset.d.ts","sourceRoot":"","sources":["../../../../src/validations/access-checker/items/collection-asset.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAoBzC,aAAK,cAAc,GAAG;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,oBAAY,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE,OAAO,CAAA;IACpB,KAAK,EAAE,cAAc,EAAE,CAAA;CACxB,CAAA;AAkID,eAAO,MAAM,gCAAgC,EAAE,eAuD9C,CAAA"}
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.v1andV2collectionAssetValidation = void 0;
4
+ const hashing_1 = require("@dcl/hashing");
5
+ const types_1 = require("../../../types");
6
+ const L1_NETWORKS = ['mainnet', 'ropsten', 'kovan', 'rinkeby', 'goerli'];
7
+ const L2_NETWORKS = ['matic', 'mumbai'];
8
+ async function getCollectionItems(components, subgraphUrl, collection, itemId, block) {
9
+ const query = `
10
+ query getCollectionRoles($collection: String!, $itemId: String!, $block: Int!) {
11
+ collections(where:{ id: $collection }, block: { number: $block }) {
12
+ creator
13
+ managers
14
+ isApproved
15
+ isCompleted
16
+ items(where:{ id: $itemId }) {
17
+ managers
18
+ contentHash
19
+ }
20
+ }
21
+
22
+ accounts(where:{ isCommitteeMember: true }, block: { number: $block }) {
23
+ id
24
+ }
25
+ }`;
26
+ const result = await components.externalCalls.queryGraph(subgraphUrl, query, {
27
+ collection,
28
+ itemId: `${collection}-${itemId}`,
29
+ block
30
+ });
31
+ const collectionResult = result.collections[0];
32
+ const itemResult = collectionResult?.items[0];
33
+ return {
34
+ collectionCreator: collectionResult?.creator,
35
+ collectionManagers: collectionResult?.managers,
36
+ isApproved: collectionResult?.isApproved,
37
+ isCompleted: collectionResult?.isCompleted,
38
+ itemManagers: itemResult?.managers,
39
+ contentHash: itemResult?.contentHash,
40
+ committee: result.accounts.map(({ id }) => id.toLowerCase())
41
+ };
42
+ }
43
+ async function hasPermission(components, subgraphUrl, collection, itemId, block, entity, logger) {
44
+ try {
45
+ const { content, metadata } = entity;
46
+ const permissions = await getCollectionItems(components, subgraphUrl, collection, itemId, block);
47
+ const ethAddressLowercase = entity.ethAddress.toLowerCase();
48
+ if (!!permissions.contentHash) {
49
+ const deployedByCommittee = permissions.committee.includes(ethAddressLowercase);
50
+ const calculateHashes = () => {
51
+ // Compare both by key and hash
52
+ const compare = (a, b) => {
53
+ if (a.hash > b.hash)
54
+ return 1;
55
+ else if (a.hash < b.hash)
56
+ return -1;
57
+ else
58
+ return a.key > b.key ? 1 : -1;
59
+ };
60
+ const contentAsJson = (content ?? []).map(({ file, hash }) => ({ key: file, hash })).sort(compare);
61
+ const buffer = Buffer.from(JSON.stringify({ content: contentAsJson, metadata }));
62
+ return Promise.all([(0, hashing_1.hashV0)(buffer), (0, hashing_1.hashV1)(buffer)]);
63
+ };
64
+ return deployedByCommittee && (await calculateHashes()).includes(permissions.contentHash);
65
+ }
66
+ else {
67
+ const addressHasAccess = (permissions.collectionCreator && permissions.collectionCreator === ethAddressLowercase) ||
68
+ (permissions.collectionManagers && permissions.collectionManagers.includes(ethAddressLowercase)) ||
69
+ (permissions.itemManagers && permissions.itemManagers.includes(ethAddressLowercase));
70
+ // Deployments to the content server are made after the collection is completed, so that the committee can then approve it.
71
+ // That's why isCompleted must be true, but isApproved must be false. After the committee approves the wearable, there can't be any more changes
72
+ const isCollectionValid = !permissions.isApproved && permissions.isCompleted;
73
+ return addressHasAccess && isCollectionValid;
74
+ }
75
+ }
76
+ catch (error) {
77
+ logger.error(`Error checking permission for (${collection}-${itemId}) at block ${block}`);
78
+ return false;
79
+ }
80
+ }
81
+ async function checkCollectionAccess(components, blocksSubgraphUrl, collectionsSubgraphUrl, collection, itemId, entity, logger) {
82
+ const { timestamp } = entity;
83
+ try {
84
+ const { blockNumberAtDeployment, blockNumberFiveMinBeforeDeployment } = await components.theGraphClient.findBlocksForTimestamp(blocksSubgraphUrl, timestamp);
85
+ // It could happen that the subgraph hasn't synced yet, so someone who just lost access still managed to make a deployment. The problem would be that when other catalysts perform
86
+ // the same check, the subgraph might have synced and the deployment is no longer valid. So, in order to prevent inconsistencies between catalysts, we will allow all deployments that
87
+ // have access now, or had access 5 minutes ago.
88
+ const hasPermissionOnBlock = async (blockNumber) => !!blockNumber &&
89
+ (await hasPermission(components, collectionsSubgraphUrl, collection, itemId, blockNumber, entity, logger));
90
+ return ((await hasPermissionOnBlock(blockNumberAtDeployment)) ||
91
+ (await hasPermissionOnBlock(blockNumberFiveMinBeforeDeployment)));
92
+ }
93
+ catch (error) {
94
+ logger.error(`Error checking wearable access (${collection}, ${itemId}, ${entity.ethAddress}, ${timestamp}, ${blocksSubgraphUrl}).`);
95
+ return false;
96
+ }
97
+ }
98
+ exports.v1andV2collectionAssetValidation = {
99
+ async validateAsset(components, asset, deployment) {
100
+ const { externalCalls } = components;
101
+ const ethAddress = externalCalls.ownerAddress(deployment.auditInfo);
102
+ const logger = components.logs.getLogger('collection asset access validation');
103
+ // L1 or L2 so contractAddress is present
104
+ const collection = asset.contractAddress;
105
+ const network = asset.network;
106
+ const isL1 = L1_NETWORKS.includes(network);
107
+ const isL2 = L2_NETWORKS.includes(network);
108
+ if (!isL1 && !isL2)
109
+ return (0, types_1.validationFailed)(`Found an unknown network on the urn '${network}'`);
110
+ const blocksSubgraphUrl = isL1 ? 'blocksSubgraph' : 'maticBlocksSubgraph';
111
+ const collectionsSubgraphUrl = isL1
112
+ ? externalCalls.subgraphs.L1.collections
113
+ : externalCalls.subgraphs.L2.collections;
114
+ const hasAccess = await checkCollectionAccess(components, blocksSubgraphUrl, collectionsSubgraphUrl, collection, asset.id, {
115
+ ...deployment.entity,
116
+ ethAddress
117
+ }, logger);
118
+ if (!hasAccess) {
119
+ if (isL2)
120
+ return (0, types_1.validationFailed)(`The provided Eth Address does not have access to the following item: (${asset.contractAddress}, ${asset.id})`);
121
+ // L1 collections are deployed by Decentraland Address
122
+ const isAllowlistedCollection = asset.uri.toString().startsWith('urn:decentraland:ethereum:collections-v1');
123
+ if (!externalCalls.isAddressOwnedByDecentraland(ethAddress) || !isAllowlistedCollection) {
124
+ return (0, types_1.validationFailed)(`The provided Eth Address '${ethAddress}' does not have access to the following item: '${asset.uri}'`);
125
+ }
126
+ }
127
+ return types_1.OK;
128
+ },
129
+ canValidate(asset) {
130
+ return asset.type === 'blockchain-collection-v1-asset' || asset.type === 'blockchain-collection-v2-asset';
131
+ }
132
+ };
133
+ //# sourceMappingURL=collection-asset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collection-asset.js","sourceRoot":"","sources":["../../../../src/validations/access-checker/items/collection-asset.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { BlockchainCollectionThirdParty, BlockchainCollectionV1Asset, BlockchainCollectionV2Asset, OffChainAsset } from '@dcl/urn-resolver';
2
+ import { DeploymentToValidate } from '../../..';
3
+ import { ContentValidatorComponents, ValidationResponse } from '../../../types';
4
+ export declare type UrnType = 'off-chain' | 'blockchain-collection-v1-asset' | 'blockchain-collection-v2-asset' | 'blockchain-collection-third-party';
5
+ export declare type SupportedAsset = BlockchainCollectionV1Asset | BlockchainCollectionV2Asset | OffChainAsset | BlockchainCollectionThirdParty;
6
+ export declare type AssetValidation = {
7
+ validateAsset(components: Pick<ContentValidatorComponents, 'externalCalls'>, asset: SupportedAsset, deployment: DeploymentToValidate): ValidationResponse | Promise<ValidationResponse>;
8
+ canValidate(asset: SupportedAsset): boolean;
9
+ };
10
+ export declare const itemsValidation: {
11
+ validate: (components: Pick<ContentValidatorComponents, 'externalCalls' | 'logs' | 'theGraphClient'>, deployment: DeploymentToValidate, validUrnTypesForItem: UrnType[]) => Promise<ValidationResponse>;
12
+ };
13
+ //# sourceMappingURL=items.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../../../src/validations/access-checker/items/items.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,2BAA2B,EAC3B,2BAA2B,EAC3B,aAAa,EAEd,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAC/C,OAAO,EAAE,0BAA0B,EAAoB,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAKjG,oBAAY,OAAO,GACf,WAAW,GACX,gCAAgC,GAChC,gCAAgC,GAChC,mCAAmC,CAAA;AAEvC,oBAAY,cAAc,GACtB,2BAA2B,GAC3B,2BAA2B,GAC3B,aAAa,GACb,8BAA8B,CAAA;AAElC,oBAAY,eAAe,GAAG;IAC5B,aAAa,CACX,UAAU,EAAE,IAAI,CAAC,0BAA0B,EAAE,eAAe,CAAC,EAC7D,KAAK,EAAE,cAAc,EACrB,UAAU,EAAE,oBAAoB,GAC/B,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACnD,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAA;CAC5C,CAAA;AAsCD,eAAO,MAAM,eAAe;2BAEZ,KAAK,0BAA0B,EAAE,eAAe,GAAG,MAAM,GAAG,gBAAgB,CAAC,cAC7E,oBAAoB,wBACV,OAAO,EAAE;CAkClC,CAAA"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.itemsValidation = void 0;
4
+ const urn_resolver_1 = require("@dcl/urn-resolver");
5
+ const types_1 = require("../../../types");
6
+ const collection_asset_1 = require("./collection-asset");
7
+ const off_chain_asset_1 = require("./off-chain-asset");
8
+ const third_party_asset_1 = require("./third-party-asset");
9
+ const assetValidations = [off_chain_asset_1.offChainAssetValidation, collection_asset_1.v1andV2collectionAssetValidation, third_party_asset_1.thirdPartyAssetValidation];
10
+ function alreadySeen(resolvedPointers, parsed) {
11
+ return resolvedPointers.some((alreadyResolved) => resolveSameUrn(alreadyResolved, parsed));
12
+ }
13
+ /**
14
+ * This method returns true if the two assets are the same except for its uri.
15
+ * For example, urns for collection v1 wearables can have a 'contractAddress' OR 'collectionName'
16
+ * in the uri but reference the same asset.
17
+ */
18
+ function resolveSameUrn(alreadyParsed, parsed) {
19
+ const { ['uri']: uri1, ...alreadyParsedWithoutUri } = alreadyParsed;
20
+ const { ['uri']: uri2, ...parsedWithoutUri } = parsed;
21
+ return JSON.stringify(parsedWithoutUri) == JSON.stringify(alreadyParsedWithoutUri);
22
+ }
23
+ async function parseUrnNoFail(urn) {
24
+ try {
25
+ const parsed = await (0, urn_resolver_1.parseUrn)(urn);
26
+ if (parsed?.type === 'blockchain-collection-v1-asset') {
27
+ return parsed;
28
+ }
29
+ if (parsed?.type === 'blockchain-collection-v2-asset') {
30
+ return parsed;
31
+ }
32
+ if (parsed?.type === 'off-chain') {
33
+ return parsed;
34
+ }
35
+ if (parsed?.type === 'blockchain-collection-third-party') {
36
+ return parsed;
37
+ }
38
+ }
39
+ catch { }
40
+ return null;
41
+ }
42
+ exports.itemsValidation = {
43
+ validate: async (components, deployment, validUrnTypesForItem) => {
44
+ const { pointers } = deployment.entity;
45
+ const resolvedPointers = [];
46
+ // deduplicate pointer resolution
47
+ for (const pointer of pointers) {
48
+ const parsed = await parseUrnNoFail(pointer);
49
+ if (!parsed)
50
+ return (0, types_1.validationFailed)(`Item pointers should be a urn, for example (urn:decentraland:{protocol}:collections-v2:{contract(0x[a-fA-F0-9]+)}:{id}). Invalid pointer: (${pointer})`);
51
+ if (!alreadySeen(resolvedPointers, parsed))
52
+ resolvedPointers.push(parsed);
53
+ }
54
+ if (resolvedPointers.length > 1)
55
+ return (0, types_1.validationFailed)(`Only one pointer is allowed when you create an item. Received: ${pointers}`);
56
+ const parsedAsset = resolvedPointers[0];
57
+ if (!validUrnTypesForItem.includes(parsedAsset.type)) {
58
+ return (0, types_1.validationFailed)(`For the entity type: ${deployment.entity.type}, the asset with urn type: ${parsedAsset.type} is invalid. Valid urn types for this entity: ${validUrnTypesForItem}`);
59
+ }
60
+ for (const validation of assetValidations) {
61
+ if (validation.canValidate(parsedAsset)) {
62
+ return validation.validateAsset(components, parsedAsset, deployment);
63
+ }
64
+ }
65
+ throw new Error('This should never happen. There is no validations for the asset.');
66
+ }
67
+ };
68
+ //# sourceMappingURL=items.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"items.js","sourceRoot":"","sources":["../../../../src/validations/access-checker/items/items.ts"],"names":[],"mappings":";;;AAAA,oDAM0B;AAE1B,0CAAiG;AACjG,yDAAqE;AACrE,uDAA2D;AAC3D,2DAA+D;AAuB/D,MAAM,gBAAgB,GAAG,CAAC,yCAAuB,EAAE,mDAAgC,EAAE,6CAAyB,CAAC,CAAA;AAE/G,SAAS,WAAW,CAAC,gBAAkC,EAAE,MAAsB;IAC7E,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAA;AAC5F,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,aAA6B,EAAE,MAAsB;IAC3E,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,uBAAuB,EAAE,GAAG,aAAa,CAAA;IACnE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,gBAAgB,EAAE,GAAG,MAAM,CAAA;IACrD,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAA;AACpF,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,GAAW;IACvC,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAQ,EAAC,GAAG,CAAC,CAAA;QAClC,IAAI,MAAM,EAAE,IAAI,KAAK,gCAAgC,EAAE;YACrD,OAAO,MAAM,CAAA;SACd;QACD,IAAI,MAAM,EAAE,IAAI,KAAK,gCAAgC,EAAE;YACrD,OAAO,MAAM,CAAA;SACd;QACD,IAAI,MAAM,EAAE,IAAI,KAAK,WAAW,EAAE;YAChC,OAAO,MAAM,CAAA;SACd;QACD,IAAI,MAAM,EAAE,IAAI,KAAK,mCAAmC,EAAE;YACxD,OAAO,MAAM,CAAA;SACd;KACF;IAAC,MAAM,GAAE;IACV,OAAO,IAAI,CAAA;AACb,CAAC;AAEY,QAAA,eAAe,GAAG;IAC7B,QAAQ,EAAE,KAAK,EACb,UAAyF,EACzF,UAAgC,EAChC,oBAA+B,EAC/B,EAAE;QACF,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,MAAM,CAAA;QAEtC,MAAM,gBAAgB,GAAqB,EAAE,CAAA;QAC7C,iCAAiC;QACjC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAA;YAC5C,IAAI,CAAC,MAAM;gBACT,OAAO,IAAA,wBAAgB,EACrB,8IAA8I,OAAO,GAAG,CACzJ,CAAA;YAEH,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,MAAM,CAAC;gBAAE,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;SAC1E;QAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC;YAC7B,OAAO,IAAA,wBAAgB,EAAC,kEAAkE,QAAQ,EAAE,CAAC,CAAA;QAEvG,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAA;QAEvC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;YACpD,OAAO,IAAA,wBAAgB,EACrB,wBAAwB,UAAU,CAAC,MAAM,CAAC,IAAI,8BAA8B,WAAW,CAAC,IAAI,iDAAiD,oBAAoB,EAAE,CACpK,CAAA;SACF;QAED,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE;YACzC,IAAI,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;gBACvC,OAAO,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAA;aACrE;SACF;QACD,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;IACrF,CAAC;CACF,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { AssetValidation } from './items';
2
+ export declare const offChainAssetValidation: AssetValidation;
3
+ //# sourceMappingURL=off-chain-asset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"off-chain-asset.d.ts","sourceRoot":"","sources":["../../../../src/validations/access-checker/items/off-chain-asset.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAEzC,eAAO,MAAM,uBAAuB,EAAE,eAgBrC,CAAA"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.offChainAssetValidation = void 0;
4
+ const __1 = require("../../..");
5
+ const types_1 = require("../../../types");
6
+ exports.offChainAssetValidation = {
7
+ validateAsset(components, asset, deployment) {
8
+ const ethAddress = components.externalCalls.ownerAddress(deployment.auditInfo);
9
+ if (!components.externalCalls.isAddressOwnedByDecentraland(ethAddress))
10
+ return (0, types_1.validationFailed)(`The provided Eth Address '${ethAddress}' does not have access to the following item: '${asset.uri}'`);
11
+ return __1.OK;
12
+ },
13
+ canValidate(asset) {
14
+ return asset.type === 'off-chain';
15
+ }
16
+ };
17
+ //# sourceMappingURL=off-chain-asset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"off-chain-asset.js","sourceRoot":"","sources":["../../../../src/validations/access-checker/items/off-chain-asset.ts"],"names":[],"mappings":";;;AACA,gCAAmD;AACnD,0CAA6E;AAGhE,QAAA,uBAAuB,GAAoB;IACtD,aAAa,CACX,UAA6D,EAC7D,KAAoB,EACpB,UAAgC;QAEhC,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAC9E,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,4BAA4B,CAAC,UAAU,CAAC;YACpE,OAAO,IAAA,wBAAgB,EACrB,6BAA6B,UAAU,kDAAkD,KAAK,CAAC,GAAG,GAAG,CACtG,CAAA;QACH,OAAO,MAAE,CAAA;IACX,CAAC;IACD,WAAW,CAAC,KAAK;QACf,OAAO,KAAK,CAAC,IAAI,KAAK,WAAW,CAAA;IACnC,CAAC;CACF,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { AssetValidation } from './items';
2
+ export declare const thirdPartyAssetValidation: AssetValidation;
3
+ //# sourceMappingURL=third-party-asset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"third-party-asset.d.ts","sourceRoot":"","sources":["../../../../src/validations/access-checker/items/third-party-asset.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAiHzC,eAAO,MAAM,yBAAyB,EAAE,eAiBvC,CAAA"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.thirdPartyAssetValidation = void 0;
4
+ const content_hash_tree_1 = require("@dcl/content-hash-tree");
5
+ const hashing_1 = require("@dcl/hashing");
6
+ const schemas_1 = require("@dcl/schemas");
7
+ const types_1 = require("../../../types");
8
+ function toHexBuffer(value) {
9
+ if (value.startsWith('0x')) {
10
+ return Buffer.from(value.substring(2), 'hex'); // removing first 2 characters (0x)
11
+ }
12
+ return Buffer.from(value, 'hex');
13
+ }
14
+ function getThirdPartyId(urn) {
15
+ return `urn:decentraland:${urn.network}:collections-thirdparty:${urn.thirdPartyName}`;
16
+ }
17
+ async function verifyHash(metadata, merkleRoot, logger) {
18
+ if (!schemas_1.MerkleProof.validate(metadata.merkleProof)) {
19
+ logger.debug('Merkle proof is not valid', {
20
+ merkleProof: metadata.merkleProof
21
+ });
22
+ return false;
23
+ }
24
+ const merkleProof = metadata.merkleProof;
25
+ const generatedCrcHash = (0, hashing_1.keccak256Hash)(metadata, metadata.merkleProof.hashingKeys);
26
+ // The hash provided in the merkleProof for the entity MUST match the hash generated by the validator.
27
+ if (metadata.merkleProof.entityHash !== generatedCrcHash) {
28
+ logger.debug(`The hash provided in the merkleProof doesn't match the one generated by the validator`, {
29
+ generatedCrcHash,
30
+ entityHash: metadata.merkleProof.entityHash
31
+ });
32
+ return false;
33
+ }
34
+ // Verify if the entity belongs to the Merkle Tree.
35
+ const bufferedProofs = merkleProof.proof.map((value) => toHexBuffer(value));
36
+ const bufferedMerkleRoot = toHexBuffer(merkleRoot);
37
+ return (0, content_hash_tree_1.verifyProof)(merkleProof.index, merkleProof.entityHash, bufferedProofs, bufferedMerkleRoot);
38
+ }
39
+ async function getMerkleRoot(components, block, thirdPartyId) {
40
+ const query = `
41
+ query MerkleRoot($id: String!, $block: Int!) {
42
+ thirdParties(where: { id: $id, isApproved: true }, block: { number: $block }, first: 1) {
43
+ root
44
+ }
45
+ }`;
46
+ const result = await components.externalCalls.queryGraph(components.externalCalls.subgraphs.L2.thirdPartyRegistry, query, {
47
+ id: thirdPartyId,
48
+ block
49
+ });
50
+ if (!result.thirdParties || result.thirdParties.length < 1)
51
+ return;
52
+ return result.thirdParties[0]?.root;
53
+ }
54
+ async function verifyMerkleProofedEntity(components, urn, deployment, logger) {
55
+ // do merkle proofed entity validation, required keys are defined by the Catalyst and must be a subset of the hashingKeys from the MerkleProof to succeed
56
+ const metadata = deployment.entity.metadata;
57
+ if (!(0, schemas_1.isThirdParty)(deployment.entity.metadata)) {
58
+ // This should never happen as the metadata validation ran before
59
+ return false;
60
+ }
61
+ const thirdPartyId = getThirdPartyId(urn);
62
+ const { blockNumberAtDeployment, blockNumberFiveMinBeforeDeployment } = await components.theGraphClient.findBlocksForTimestamp('maticBlocksSubgraph', deployment.entity.timestamp);
63
+ const merkleRoots = [];
64
+ const hasPermissionOnBlock = async (blockNumber) => {
65
+ try {
66
+ if (!blockNumber)
67
+ return false;
68
+ const merkleRoot = await getMerkleRoot(components, blockNumber, thirdPartyId);
69
+ if (!merkleRoot) {
70
+ logger.debug(`Merkle proof not found for given block and third party ID`, { blockNumber, thirdPartyId });
71
+ return false;
72
+ }
73
+ merkleRoots.push(merkleRoot);
74
+ return await verifyHash(metadata, merkleRoot, logger);
75
+ }
76
+ catch (e) {
77
+ const error = e?.message;
78
+ logger.debug(error);
79
+ return false;
80
+ }
81
+ };
82
+ const validMerkleProofedEntity = (await hasPermissionOnBlock(blockNumberAtDeployment)) ||
83
+ (await hasPermissionOnBlock(blockNumberFiveMinBeforeDeployment));
84
+ if (!validMerkleProofedEntity) {
85
+ logger.debug(`Merkle Tree based verifications failed:`, {
86
+ merkleProof: JSON.stringify(metadata.merkleProof),
87
+ merkleRoots: JSON.stringify(merkleRoots),
88
+ blocks: JSON.stringify([blockNumberAtDeployment, blockNumberFiveMinBeforeDeployment])
89
+ });
90
+ }
91
+ return validMerkleProofedEntity;
92
+ }
93
+ exports.thirdPartyAssetValidation = {
94
+ async validateAsset(components, asset, deployment) {
95
+ const logger = components.logs.getLogger('collection asset access validation');
96
+ // Third Party wearables are validated doing merkle tree based verification proof
97
+ const verified = await verifyMerkleProofedEntity(components, asset, deployment, logger);
98
+ if (!verified) {
99
+ return (0, types_1.validationFailed)(`Couldn't verify merkle proofed entity`);
100
+ }
101
+ return types_1.OK;
102
+ },
103
+ canValidate(asset) {
104
+ return asset.type === 'blockchain-collection-third-party';
105
+ }
106
+ };
107
+ //# sourceMappingURL=third-party-asset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"third-party-asset.js","sourceRoot":"","sources":["../../../../src/validations/access-checker/items/third-party-asset.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../src/validations/access-checker/profiles.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,UAAU,EAAoB,MAAM,aAAa,CAAA;AAM9D;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,UA4DtB,CAAA"}
1
+ {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../src/validations/access-checker/profiles.ts"],"names":[],"mappings":"AAEA,OAAO,EAAM,UAAU,EAAoB,MAAM,aAAa,CAAA;AAI9D;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,UAoDtB,CAAA"}
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.profiles = void 0;
4
4
  const schemas_1 = require("@dcl/schemas");
5
- const types_1 = require("../../types");
6
5
  const urn_resolver_1 = require("@dcl/urn-resolver");
7
- const index_1 = require("../index");
6
+ const types_1 = require("../../types");
8
7
  const profile_1 = require("../profile");
8
+ const timestamps_1 = require("../timestamps");
9
9
  /**
10
10
  * Validate that the pointers are valid, and that the Ethereum address has write access to them
11
11
  * @public
@@ -27,7 +27,7 @@ exports.profiles = {
27
27
  else if (pointer !== ethAddress.toLowerCase()) {
28
28
  return (0, types_1.validationFailed)(`You can only alter your own profile. The pointer address and the signer address are different (pointer:${pointer} signer: ${ethAddress.toLowerCase()}).`);
29
29
  }
30
- if (deployment.entity.timestamp < index_1.ADR_75_TIMESTAMP)
30
+ if (deployment.entity.timestamp < timestamps_1.ADR_75_TIMESTAMP)
31
31
  return types_1.OK;
32
32
  const names = allClaimedNames(deployment.entity);
33
33
  const namesCheckResult = await theGraphClient.checkForNamesOwnershipWithTimestamp(ethAddress, names, deployment.entity.timestamp);
@@ -1 +1 @@
1
- {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../../src/validations/access-checker/profiles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../../src/validations/access-checker/profiles.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scenes.d.ts","sourceRoot":"","sources":["../../../src/validations/access-checker/scenes.ts"],"names":[],"mappings":"AAEA,OAAO,EAA6B,UAAU,EAAE,MAAM,aAAa,CAAA;AAgCnE;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,UA6WpB,CAAA"}
1
+ {"version":3,"file":"scenes.d.ts","sourceRoot":"","sources":["../../../src/validations/access-checker/scenes.ts"],"names":[],"mappings":"AAEA,OAAO,EAA6B,UAAU,EAAE,MAAM,aAAa,CAAA;AAgCnE;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,UA4SpB,CAAA"}
@@ -167,11 +167,7 @@ exports.scenes = {
167
167
  return false;
168
168
  };
169
169
  const hasAccessThroughFirstLevelAuthorities = async (target, ethAddress) => {
170
- const firstLevelAuthorities = [
171
- ...target.owners,
172
- ...target.operators,
173
- ...target.updateOperators
174
- ]
170
+ const firstLevelAuthorities = [...target.owners, ...target.operators, ...target.updateOperators]
175
171
  .filter((addressSnapshot) => addressSnapshot.address)
176
172
  .map((addressSnapshot) => addressSnapshot.address.toLowerCase());
177
173
  return firstLevelAuthorities.includes(ethAddress.toLowerCase());
@@ -193,13 +189,10 @@ exports.scenes = {
193
189
  */
194
190
  const parcel = await getParcel(x, y, timestamp);
195
191
  if (parcel) {
196
- const belongsToEstate = parcel.estates != undefined &&
197
- parcel.estates.length > 0 &&
198
- parcel.estates[0].estateId != undefined;
192
+ const belongsToEstate = parcel.estates != undefined && parcel.estates.length > 0 && parcel.estates[0].estateId != undefined;
199
193
  return ((await hasAccessThroughFirstLevelAuthorities(parcel, ethAddress)) ||
200
194
  (await hasAccessThroughAuthorizations(parcel.owners[0].address, ethAddress, timestamp)) ||
201
- (belongsToEstate &&
202
- (await isEstateUpdateAuthorized(parcel.estates[0].estateId, timestamp, ethAddress))));
195
+ (belongsToEstate && (await isEstateUpdateAuthorized(parcel.estates[0].estateId, timestamp, ethAddress))));
203
196
  }
204
197
  throw new Error(`Parcel(${x},${y},${timestamp}) not found`);
205
198
  };
@@ -1 +1 @@
1
- {"version":3,"file":"scenes.js","sourceRoot":"","sources":["../../../src/validations/access-checker/scenes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scenes.js","sourceRoot":"","sources":["../../../src/validations/access-checker/scenes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../../../src/validations/access-checker/stores.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,UAAU,EAAoB,MAAM,aAAa,CAAA;AAY9D;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,UAyBpB,CAAA"}
1
+ {"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../../../src/validations/access-checker/stores.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,UAAU,EAAoB,MAAM,aAAa,CAAA;AAU9D;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,UAuBpB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"stores.js","sourceRoot":"","sources":["../../../src/validations/access-checker/stores.ts"],"names":[],"mappings":";;;AAAA,oDAA2D;AAC3D,uCAA8D;AAE9D,MAAM,cAAc,GAAG,KAAK,EAC1B,OAAe,EACqB,EAAE;IACtC,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAQ,EAAC,OAAO,CAAC,CAAA;QACtC,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,IAAI,KAAK,WAAW;YAAE,OAAO,SAAS,CAAA;QAC7D,OAAO,MAAM,CAAA;KACd;IAAC,MAAM,GAAE;AACZ,CAAC,CAAA;AAED;;;GAGG;AACU,QAAA,MAAM,GAAe;IAChC,QAAQ,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,EAAE;QAChD,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAA;QAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAEnE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YACvB,OAAO,IAAA,wBAAgB,EACrB,kEAAkE,QAAQ,EAAE,CAC7E,CAAA;QAEH,MAAM,OAAO,GAAW,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;QACjD,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAA;QAEnD,IAAI,CAAC,aAAa;YAChB,OAAO,IAAA,wBAAgB,EACrB,2HAA2H,OAAO,EAAE,CACrI,CAAA;QAEH,IAAI,aAAa,CAAC,EAAE,KAAK,UAAU;YACjC,OAAO,IAAA,wBAAgB,EACrB,wGAAwG,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,UAAU,CAAC,WAAW,EAAE,IAAI,CAC/K,CAAA;QAEH,OAAO,UAAE,CAAA;IACX,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"stores.js","sourceRoot":"","sources":["../../../src/validations/access-checker/stores.ts"],"names":[],"mappings":";;;AAAA,oDAA2D;AAC3D,uCAA8D;AAE9D,MAAM,cAAc,GAAG,KAAK,EAAE,OAAe,EAAsC,EAAE;IACnF,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAQ,EAAC,OAAO,CAAC,CAAA;QACtC,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,IAAI,KAAK,WAAW;YAAE,OAAO,SAAS,CAAA;QAC7D,OAAO,MAAM,CAAA;KACd;IAAC,MAAM,GAAE;AACZ,CAAC,CAAA;AAED;;;GAGG;AACU,QAAA,MAAM,GAAe;IAChC,QAAQ,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,EAAE;QAChD,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAA;QAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAEnE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YACvB,OAAO,IAAA,wBAAgB,EAAC,kEAAkE,QAAQ,EAAE,CAAC,CAAA;QAEvG,MAAM,OAAO,GAAW,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;QACjD,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAA;QAEnD,IAAI,CAAC,aAAa;YAChB,OAAO,IAAA,wBAAgB,EACrB,2HAA2H,OAAO,EAAE,CACrI,CAAA;QAEH,IAAI,aAAa,CAAC,EAAE,KAAK,UAAU;YACjC,OAAO,IAAA,wBAAgB,EACrB,wGAAwG,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,UAAU,CAAC,WAAW,EAAE,IAAI,CAC/K,CAAA;QAEH,OAAO,UAAE,CAAA;IACX,CAAC;CACF,CAAA"}
@@ -1,21 +1,3 @@
1
1
  import { Validation } from '../../types';
2
- export declare const MERKLE_PROOF_REQUIRED_KEYS: readonly ["id", "name", "description", "i18n", "image", "thumbnail", "data", "content"];
3
- export declare type WearableCollection = {
4
- creator: string;
5
- managers: string[];
6
- isApproved: boolean;
7
- isCompleted: boolean;
8
- items: WearableCollectionItem[];
9
- };
10
- declare type WearableCollectionItem = {
11
- managers: string[];
12
- contentHash: string;
13
- };
14
- /**
15
- * Given the pointers (URNs), determine which layer should be used to check the access.
16
- * Checks if the ethereum address has access to the collection.
17
- * @public
18
- */
19
2
  export declare const wearables: Validation;
20
- export {};
21
3
  //# sourceMappingURL=wearables.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wearables.d.ts","sourceRoot":"","sources":["../../../src/validations/access-checker/wearables.ts"],"names":[],"mappings":"AAUA,OAAO,EAIL,UAAU,EAEX,MAAM,aAAa,CAAA;AAQpB,eAAO,MAAM,0BAA0B,yFAS7B,CAAA;AA8BV,oBAAY,kBAAkB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE,OAAO,CAAA;IACpB,KAAK,EAAE,sBAAsB,EAAE,CAAA;CAChC,CAAA;AAED,aAAK,sBAAsB,GAAG;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAmDD;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,UAqYvB,CAAA"}
1
+ {"version":3,"file":"wearables.d.ts","sourceRoot":"","sources":["../../../src/validations/access-checker/wearables.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,UAAU,EAAE,MAAM,aAAa,CAAA;AAGpE,eAAO,MAAM,SAAS,EAAE,UAYvB,CAAA"}