@dcl/content-validator 4.0.27-20230106194717.commit-dd49367 → 4.0.27

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 (26) hide show
  1. package/dist/content-validator.api.json +53 -178
  2. package/dist/the-graph-client/the-graph-client.d.ts +1 -5
  3. package/dist/the-graph-client/the-graph-client.d.ts.map +1 -1
  4. package/dist/the-graph-client/the-graph-client.js +83 -49
  5. package/dist/the-graph-client/the-graph-client.js.map +1 -1
  6. package/dist/tsdoc-metadata.json +1 -1
  7. package/dist/types.d.ts +23 -38
  8. package/dist/types.d.ts.map +1 -1
  9. package/dist/types.js.map +1 -1
  10. package/dist/validations/ADR51.d.ts +1 -1
  11. package/dist/validations/ADR51.d.ts.map +1 -1
  12. package/dist/validations/access-checker/items/collection-asset.d.ts +2 -2
  13. package/dist/validations/access-checker/items/collection-asset.d.ts.map +1 -1
  14. package/dist/validations/access-checker/items/collection-asset.js +106 -43
  15. package/dist/validations/access-checker/items/collection-asset.js.map +1 -1
  16. package/dist/validations/access-checker/items/items.d.ts +3 -3
  17. package/dist/validations/access-checker/items/items.d.ts.map +1 -1
  18. package/dist/validations/access-checker/items/third-party-asset.d.ts.map +1 -1
  19. package/dist/validations/access-checker/items/third-party-asset.js +80 -21
  20. package/dist/validations/access-checker/items/third-party-asset.js.map +1 -1
  21. package/dist/validations/access-checker/scenes.d.ts.map +1 -1
  22. package/dist/validations/access-checker/scenes.js +227 -29
  23. package/dist/validations/access-checker/scenes.js.map +1 -1
  24. package/dist/validations/timestamps.d.ts +1 -1
  25. package/dist/validations/timestamps.js +2 -2
  26. package/package.json +4 -9
@@ -1 +1 @@
1
- {"version":3,"file":"collection-asset.js","sourceRoot":"","sources":["../../../../src/validations/access-checker/items/collection-asset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection-asset.js","sourceRoot":"","sources":["../../../../src/validations/access-checker/items/collection-asset.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { BlockchainCollectionThirdParty, BlockchainCollectionV1Asset, BlockchainCollectionV2Asset, OffChainAsset } from '@dcl/urn-resolver';
2
2
  import { DeploymentToValidate } from '../../..';
3
3
  import { ContentValidatorComponents, ValidationResponse } from '../../../types';
4
- export type UrnType = 'off-chain' | 'blockchain-collection-v1-asset' | 'blockchain-collection-v2-asset' | 'blockchain-collection-third-party';
5
- export type SupportedAsset = BlockchainCollectionV1Asset | BlockchainCollectionV2Asset | OffChainAsset | BlockchainCollectionThirdParty;
6
- export type AssetValidation = {
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
7
  validateAsset(components: Pick<ContentValidatorComponents, 'externalCalls'>, asset: SupportedAsset, deployment: DeploymentToValidate): ValidationResponse | Promise<ValidationResponse>;
8
8
  canValidate(asset: SupportedAsset): boolean;
9
9
  };
@@ -1 +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,MAAM,MAAM,OAAO,GACf,WAAW,GACX,gCAAgC,GAChC,gCAAgC,GAChC,mCAAmC,CAAA;AAEvC,MAAM,MAAM,cAAc,GACtB,2BAA2B,GAC3B,2BAA2B,GAC3B,aAAa,GACb,8BAA8B,CAAA;AAElC,MAAM,MAAM,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"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"third-party-asset.d.ts","sourceRoot":"","sources":["../../../../src/validations/access-checker/items/third-party-asset.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAazC,eAAO,MAAM,yBAAyB,EAAE,eA6CvC,CAAA"}
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"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.thirdPartyAssetValidation = void 0;
4
4
  const content_hash_tree_1 = require("@dcl/content-hash-tree");
5
+ const hashing_1 = require("@dcl/hashing");
5
6
  const schemas_1 = require("@dcl/schemas");
6
7
  const types_1 = require("../../../types");
7
8
  function toHexBuffer(value) {
@@ -13,29 +14,87 @@ function toHexBuffer(value) {
13
14
  function getThirdPartyId(urn) {
14
15
  return `urn:decentraland:${urn.network}:collections-thirdparty:${urn.thirdPartyName}`;
15
16
  }
16
- exports.thirdPartyAssetValidation = {
17
- async validateAsset(components, asset, deployment) {
18
- const { checker } = components.subGraphs.L2;
19
- const { timestamp } = deployment.entity;
20
- let verified = false;
21
- if ((0, schemas_1.isThirdParty)(deployment.entity.metadata)) {
22
- // This should always happen as the metadata validation ran before
23
- const metadata = deployment.entity.metadata;
24
- const merkleProof = metadata.merkleProof;
25
- const ethAddress = components.externalCalls.ownerAddress(deployment.auditInfo);
26
- const thirdPartyId = getThirdPartyId(asset);
27
- const bufferedProofs = merkleProof.proof.map((value) => toHexBuffer(value));
28
- const root = (0, content_hash_tree_1.generateRoot)(merkleProof.index, merkleProof.entityHash, bufferedProofs);
29
- const { blockAtDeployment, blockFiveMinBeforeDeployment } = await components.theGraphClient.findBlocksForTimestamp(timestamp, components.subGraphs.l2BlockSearch);
30
- const batch = [];
31
- if (blockAtDeployment) {
32
- batch.push(checker.validateThirdParty(ethAddress, thirdPartyId, root, blockAtDeployment));
33
- }
34
- if (blockFiveMinBeforeDeployment) {
35
- batch.push(checker.validateThirdParty(ethAddress, thirdPartyId, root, blockFiveMinBeforeDeployment));
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.subGraphs.L2.thirdPartyRegistry.query(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(components.subGraphs.L2.blocks, 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;
36
72
  }
37
- verified = (await Promise.all(batch)).some((r) => r);
73
+ merkleRoots.push(merkleRoot);
74
+ return await verifyHash(metadata, merkleRoot, logger);
38
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);
39
98
  if (!verified) {
40
99
  return (0, types_1.validationFailed)(`Couldn't verify merkle proofed entity`);
41
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"third-party-asset.js","sourceRoot":"","sources":["../../../../src/validations/access-checker/items/third-party-asset.ts"],"names":[],"mappings":";;;AAAA,8DAAqD;AACrD,0CAA4D;AAE5D,0CAAuG;AAGvG,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;QAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA,CAAC,mCAAmC;KAClF;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAClC,CAAC;AAED,SAAS,eAAe,CAAC,GAAmC;IAC1D,OAAO,oBAAoB,GAAG,CAAC,OAAO,2BAA2B,GAAG,CAAC,cAAc,EAAE,CAAA;AACvF,CAAC;AAEY,QAAA,yBAAyB,GAAoB;IACxD,KAAK,CAAC,aAAa,CACjB,UAAuG,EACvG,KAAqC,EACrC,UAAgC;QAEhC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,EAAE,CAAA;QAE3C,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,MAAM,CAAA;QACvC,IAAI,QAAQ,GAAG,KAAK,CAAA;QAEpB,IAAI,IAAA,sBAAY,EAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;YAC5C,kEAAkE;YAClE,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,QAA2B,CAAA;YAC9D,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAA;YAExC,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;YAE9E,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;YAE3C,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;YAC3E,MAAM,IAAI,GAAG,IAAA,gCAAY,EAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;YAEpF,MAAM,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,GACvD,MAAM,UAAU,CAAC,cAAc,CAAC,sBAAsB,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;YAEvG,MAAM,KAAK,GAAuB,EAAE,CAAA;YACpC,IAAI,iBAAiB,EAAE;gBACrB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAA;aAC1F;YACD,IAAI,4BAA4B,EAAE;gBAChC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,4BAA4B,CAAC,CAAC,CAAA;aACrG;YAED,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;SACrD;QAED,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,IAAA,wBAAgB,EAAC,uCAAuC,CAAC,CAAA;SACjE;QACD,OAAO,UAAE,CAAA;IACX,CAAC;IACD,WAAW,CAAC,KAAK;QACf,OAAO,KAAK,CAAC,IAAI,KAAK,mCAAmC,CAAA;IAC3D,CAAC;CACF,CAAA"}
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":"scenes.d.ts","sourceRoot":"","sources":["../../../src/validations/access-checker/scenes.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,UAAU,EAAE,MAAM,aAAa,CAAA;AAIpD;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,UAyDpB,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,UAsSpB,CAAA"}
@@ -6,58 +6,256 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.scenes = void 0;
7
7
  const ms_1 = __importDefault(require("ms"));
8
8
  const types_1 = require("../../types");
9
- const SCENE_LOOKBACK_TIME = (0, ms_1.default)('5m');
10
9
  /**
11
10
  * Checks if the given address has access to the given parcel at the given timestamp.
12
11
  * @public
13
12
  */
14
13
  exports.scenes = {
15
- validate: async ({ externalCalls, subGraphs, logs }, deployment) => {
14
+ validate: async ({ externalCalls, logs, subGraphs }, deployment) => {
15
+ const logger = logs.getLogger('scenes access validator');
16
+ const getAuthorizations = async (owner, operator, timestamp) => {
17
+ const query = `
18
+ query GetAuthorizations($owner: String!, $operator: String!, $timestamp: Int!) {
19
+ authorizations(
20
+ where: {
21
+ owner: $owner,
22
+ operator: $operator,
23
+ createdAt_lte: $timestamp
24
+ },
25
+ orderBy: timestamp,
26
+ orderDirection: desc
27
+ ) {
28
+ type
29
+ isApproved
30
+ }
31
+ }`;
32
+ const variables = {
33
+ owner,
34
+ operator,
35
+ timestamp: Math.floor(timestamp / 1000) // js(ms) -> UNIX(s)
36
+ };
37
+ try {
38
+ return (await subGraphs.L1.landManager.query(query, variables)).authorizations;
39
+ }
40
+ catch (error) {
41
+ logger.error(`Error fetching authorizations for ${owner}`);
42
+ throw error;
43
+ }
44
+ };
45
+ const getEstate = async (estateId, timestamp) => {
46
+ /**
47
+ * You can use `owner`, `operator` and `updateOperator` to check the current value for that estate.
48
+ * Keep in mind that each association (owners, operators, etc) is capped to a thousand (1000) results.
49
+ * For more information, you can use the query explorer at https://thegraph.com/explorer/subgraph/decentraland/land-manager
50
+ */
51
+ const query = `
52
+ query GetEstate($estateId: String!, $timestamp: Int!) {
53
+ estates(where:{ id: $estateId }) {
54
+ id
55
+ owners(
56
+ where: { createdAt_lte: $timestamp },
57
+ orderBy: timestamp,
58
+ orderDirection: desc,
59
+ first: 1
60
+ ) {
61
+ address
62
+ }
63
+ operators(
64
+ where: { createdAt_lte: $timestamp },
65
+ orderBy: timestamp,
66
+ orderDirection: desc,
67
+ first: 1
68
+ ) {
69
+ address
70
+ }
71
+ updateOperators(
72
+ where: { createdAt_lte: $timestamp },
73
+ orderBy: timestamp,
74
+ orderDirection: desc,
75
+ first: 1
76
+ ) {
77
+ address
78
+ }
79
+ }
80
+ }`;
81
+ const variables = {
82
+ estateId,
83
+ timestamp: Math.floor(timestamp / 1000) // UNIX
84
+ };
85
+ try {
86
+ return (await subGraphs.L1.landManager.query(query, variables)).estates[0];
87
+ }
88
+ catch (error) {
89
+ logger.error(`Error fetching estate (${estateId})`);
90
+ throw error;
91
+ }
92
+ };
93
+ const getParcel = async (x, y, timestamp) => {
94
+ /**
95
+ * You can use `owner`, `operator` and `updateOperator` to check the current value for that parcel.
96
+ * Keep in mind that each association (owners, operators, etc) is capped to a thousand (1000) results.
97
+ * For more information, you can use the query explorer at https://thegraph.com/explorer/subgraph/decentraland/land-manager
98
+ */
99
+ const query = `
100
+ query GetParcel($x: Int!, $y: Int!, $timestamp: Int!) {
101
+ parcels(where:{ x: $x, y: $y }) {
102
+ estates(
103
+ where: { createdAt_lte: $timestamp },
104
+ orderBy: createdAt,
105
+ orderDirection: desc,
106
+ first: 1
107
+ ) {
108
+ estateId
109
+ }
110
+ owners(
111
+ where: { createdAt_lte: $timestamp },
112
+ orderBy: timestamp,
113
+ orderDirection: desc,
114
+ first: 1
115
+ ) {
116
+ address
117
+ }
118
+ operators(
119
+ where: { createdAt_lte: $timestamp },
120
+ orderBy: timestamp,
121
+ orderDirection: desc,
122
+ first: 1
123
+ ) {
124
+ address
125
+ }
126
+ updateOperators(
127
+ where: { createdAt_lte: $timestamp },
128
+ orderBy: timestamp,
129
+ orderDirection: desc,
130
+ first: 1
131
+ ) {
132
+ address
133
+ }
134
+ }
135
+ }`;
136
+ const variables = {
137
+ x,
138
+ y,
139
+ timestamp: Math.floor(timestamp / 1000) // UNIX
140
+ };
141
+ try {
142
+ const r = await subGraphs.L1.landManager.query(query, variables);
143
+ if (r.parcels && r.parcels.length)
144
+ return r.parcels[0];
145
+ logger.error(`Error fetching parcel (${x}, ${y}, ${timestamp}): ${JSON.stringify(r)}`);
146
+ throw new Error(`Error fetching parcel (${x}, ${y}), ${timestamp}`);
147
+ }
148
+ catch (error) {
149
+ logger.error(`Error fetching parcel (${x}, ${y}, ${timestamp})`);
150
+ throw error;
151
+ }
152
+ };
153
+ const hasAccessThroughAuthorizations = async (owner, ethAddress, timestamp) => {
154
+ /* You also get access if you received:
155
+ * - an authorization with isApproved and type Operator, ApprovalForAll or UpdateManager
156
+ * at that time
157
+ */
158
+ const authorizations = await getAuthorizations(owner.toLowerCase(), ethAddress.toLowerCase(), timestamp);
159
+ const firstOperatorAuthorization = authorizations.find((authorization) => authorization.type === 'Operator');
160
+ const firstApprovalForAllAuthorization = authorizations.find((authorization) => authorization.type === 'ApprovalForAll');
161
+ const firstUpdateManagerAuthorization = authorizations.find((authorization) => authorization.type === 'UpdateManager');
162
+ if (firstOperatorAuthorization?.isApproved ||
163
+ firstApprovalForAllAuthorization?.isApproved ||
164
+ firstUpdateManagerAuthorization?.isApproved) {
165
+ return true;
166
+ }
167
+ return false;
168
+ };
169
+ const hasAccessThroughFirstLevelAuthorities = async (target, ethAddress) => {
170
+ const firstLevelAuthorities = [...target.owners, ...target.operators, ...target.updateOperators]
171
+ .filter((addressSnapshot) => addressSnapshot.address)
172
+ .map((addressSnapshot) => addressSnapshot.address.toLowerCase());
173
+ return firstLevelAuthorities.includes(ethAddress.toLowerCase());
174
+ };
175
+ const isEstateUpdateAuthorized = async (estateId, timestamp, ethAddress) => {
176
+ const estate = await getEstate(estateId.toString(), timestamp);
177
+ if (estate) {
178
+ return ((await hasAccessThroughFirstLevelAuthorities(estate, ethAddress)) ||
179
+ (await hasAccessThroughAuthorizations(estate.owners[0].address, ethAddress, timestamp)));
180
+ }
181
+ throw new Error(`Couldn\'t find the state ${estateId}`);
182
+ };
183
+ const isParcelUpdateAuthorized = async (x, y, timestamp, ethAddress, _externalCalls) => {
184
+ /* You get direct access if you were the:
185
+ * - owner
186
+ * - operator
187
+ * - update operator
188
+ * at that time
189
+ */
190
+ const parcel = await getParcel(x, y, timestamp);
191
+ if (parcel) {
192
+ const belongsToEstate = parcel.estates != undefined && parcel.estates.length > 0 && parcel.estates[0].estateId != undefined;
193
+ return ((await hasAccessThroughFirstLevelAuthorities(parcel, ethAddress)) ||
194
+ (await hasAccessThroughAuthorizations(parcel.owners[0].address, ethAddress, timestamp)) ||
195
+ (belongsToEstate && (await isEstateUpdateAuthorized(parcel.estates[0].estateId, timestamp, ethAddress))));
196
+ }
197
+ throw new Error(`Parcel(${x},${y},${timestamp}) not found`);
198
+ };
199
+ const checkParcelAccess = async (x, y, timestamp, ethAddress, externalCalls) => {
200
+ try {
201
+ return await retry(() => isParcelUpdateAuthorized(x, y, timestamp, ethAddress, externalCalls), 5, '0.1s');
202
+ }
203
+ catch (error) {
204
+ logger.error(`Error checking parcel access (${x}, ${y}, ${timestamp}, ${ethAddress}).`);
205
+ throw error;
206
+ }
207
+ };
208
+ const SCENE_LOOKBACK_TIME = (0, ms_1.default)('5m');
16
209
  const { entity } = deployment;
17
210
  const { pointers, timestamp } = entity;
18
- const logger = logs.getLogger('scenes-validator');
19
- let block;
20
- try {
21
- // Check that the address has access (we check both the present and the 5 min into the past to avoid synchronization issues in the blockchain)
22
- const blockInfo = await subGraphs.l1BlockSearch.findBlockForTimestamp(timestamp - SCENE_LOOKBACK_TIME);
23
- if (blockInfo === undefined) {
24
- return (0, types_1.fromErrors)('Deployment timestamp is invalid, no matching block found');
25
- }
26
- block = blockInfo.block;
27
- }
28
- catch (err) {
29
- return (0, types_1.fromErrors)(`Deployment timestamp is invalid, no matching block found: ${err}`);
30
- }
31
211
  const ethAddress = externalCalls.ownerAddress(deployment.auditInfo);
32
212
  const errors = [];
33
213
  const lowerCasePointers = pointers.map((pointer) => pointer.toLowerCase());
34
- const batch = [];
35
214
  for (const pointer of lowerCasePointers) {
36
215
  const pointerParts = pointer.split(',');
37
216
  if (pointerParts.length === 2) {
38
217
  const x = parseInt(pointerParts[0], 10);
39
218
  const y = parseInt(pointerParts[1], 10);
40
- batch.push([x, y]);
219
+ try {
220
+ // Check that the address has access (we check both the present and the 5 min into the past to avoid synchronization issues in the blockchain)
221
+ const hasAccess = (await checkParcelAccess(x, y, timestamp, ethAddress, externalCalls)) ||
222
+ (await checkParcelAccess(x, y, timestamp - SCENE_LOOKBACK_TIME, ethAddress, externalCalls));
223
+ if (!hasAccess) {
224
+ errors.push(`The provided Eth Address does not have access to the following parcel: (${x},${y})`);
225
+ }
226
+ }
227
+ catch (e) {
228
+ errors.push(`The provided Eth Address does not have access to the following parcel: (${x},${y}). ${e}`);
229
+ }
41
230
  }
42
231
  else {
43
232
  errors.push(`Scene pointers should only contain two integers separated by a comma, for example (10,10) or (120,-45). Invalid pointer: ${pointer}`);
44
233
  }
45
234
  }
235
+ return (0, types_1.fromErrors)(...errors);
236
+ }
237
+ };
238
+ /** @internal */
239
+ async function retry(execution, attempts, waitTime = '1s', failedAttemptCallback) {
240
+ while (attempts > 0) {
46
241
  try {
47
- const access = await subGraphs.L1.checker.checkLAND(ethAddress, batch, block);
48
- for (let i = 0; i < batch.length; i++) {
49
- const [x, y] = batch[i];
50
- const hasAccess = access[i];
51
- if (!hasAccess) {
52
- errors.push(`The provided Eth Address does not have access to the following parcel: (${x},${y})`);
242
+ return await execution();
243
+ // ^^^^^ never remove this "await" keyword, otherwise this function won't
244
+ // catch the exception and perform the retries
245
+ }
246
+ catch (error) {
247
+ attempts--;
248
+ if (attempts > 0) {
249
+ if (failedAttemptCallback) {
250
+ failedAttemptCallback(attempts);
53
251
  }
252
+ await new Promise((res) => setTimeout(res, (0, ms_1.default)(waitTime)));
253
+ }
254
+ else {
255
+ throw error;
54
256
  }
55
257
  }
56
- catch (err) {
57
- logger.error(err);
58
- return (0, types_1.fromErrors)(`Cannot validate deployment`);
59
- }
60
- return (0, types_1.fromErrors)(...errors);
61
258
  }
62
- };
259
+ throw new Error('Please specify more than one attempt for the retry function');
260
+ }
63
261
  //# sourceMappingURL=scenes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scenes.js","sourceRoot":"","sources":["../../../src/validations/access-checker/scenes.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AACnB,uCAAoD;AAEpD,MAAM,mBAAmB,GAAG,IAAA,YAAE,EAAC,IAAI,CAAC,CAAA;AAEpC;;;GAGG;AACU,QAAA,MAAM,GAAe;IAChC,QAAQ,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE;QACjE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;QAC7B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;QAEtC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;QAEjD,IAAI,KAAa,CAAA;QACjB,IAAI;YACF,8IAA8I;YAC9I,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,qBAAqB,CAAC,SAAS,GAAG,mBAAmB,CAAC,CAAA;YACtG,IAAI,SAAS,KAAK,SAAS,EAAE;gBAC3B,OAAO,IAAA,kBAAU,EAAC,0DAA0D,CAAC,CAAA;aAC9E;YAED,KAAK,GAAG,SAAS,CAAC,KAAK,CAAA;SACxB;QAAC,OAAO,GAAQ,EAAE;YACjB,OAAO,IAAA,kBAAU,EAAC,6DAA6D,GAAG,EAAE,CAAC,CAAA;SACtF;QAED,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAEnE,MAAM,MAAM,GAAG,EAAE,CAAA;QACjB,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;QAE1E,MAAM,KAAK,GAAuB,EAAE,CAAA;QAEpC,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE;YACvC,MAAM,YAAY,GAAa,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACjD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,MAAM,CAAC,GAAW,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;gBAC/C,MAAM,CAAC,GAAW,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;gBAE/C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aACnB;iBAAM;gBACL,MAAM,CAAC,IAAI,CACT,4HAA4H,OAAO,EAAE,CACtI,CAAA;aACF;SACF;QAED,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;YAC7E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACrC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBACvB,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;gBAC3B,IAAI,CAAC,SAAS,EAAE;oBACd,MAAM,CAAC,IAAI,CAAC,2EAA2E,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;iBAClG;aACF;SACF;QAAC,OAAO,GAAQ,EAAE;YACjB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACjB,OAAO,IAAA,kBAAU,EAAC,4BAA4B,CAAC,CAAA;SAChD;QAED,OAAO,IAAA,kBAAU,EAAC,GAAG,MAAM,CAAC,CAAA;IAC9B,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"scenes.js","sourceRoot":"","sources":["../../../src/validations/access-checker/scenes.ts"],"names":[],"mappings":";;;;;;AACA,4CAAmB;AACnB,uCAAmE;AAgCnE;;;GAGG;AACU,QAAA,MAAM,GAAe;IAChC,QAAQ,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,EAAE;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAA;QACxD,MAAM,iBAAiB,GAAG,KAAK,EAC7B,KAAiB,EACjB,QAAoB,EACpB,SAAoB,EACM,EAAE;YAC5B,MAAM,KAAK,GAAG;;;;;;;;;;;;;;cAcN,CAAA;YAER,MAAM,SAAS,GAAG;gBAChB,KAAK;gBACL,QAAQ;gBACR,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,oBAAoB;aAC7D,CAAA;YAED,IAAI;gBACF,OAAO,CACL,MAAM,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAEjC,KAAK,EAAE,SAAS,CAAC,CACrB,CAAC,cAAc,CAAA;aACjB;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,CAAC,KAAK,CAAC,qCAAqC,KAAK,EAAE,CAAC,CAAA;gBAC1D,MAAM,KAAK,CAAA;aACZ;QACH,CAAC,CAAA;QAED,MAAM,SAAS,GAAG,KAAK,EAAE,QAAgB,EAAE,SAAoB,EAA+B,EAAE;YAC9F;;;;eAIG;YAEH,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA6BN,CAAA;YAER,MAAM,SAAS,GAAG;gBAChB,QAAQ;gBACR,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,OAAO;aAChD,CAAA;YAED,IAAI;gBACF,OAAO,CACL,MAAM,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAEjC,KAAK,EAAE,SAAS,CAAC,CACrB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;aACb;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,CAAC,KAAK,CAAC,0BAA0B,QAAQ,GAAG,CAAC,CAAA;gBACnD,MAAM,KAAK,CAAA;aACZ;QACH,CAAC,CAAA;QAED,MAAM,SAAS,GAAG,KAAK,EAAE,CAAS,EAAE,CAAS,EAAE,SAAoB,EAA+B,EAAE;YAClG;;;;eAIG;YAEH,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoCN,CAAA;YAER,MAAM,SAAS,GAAG;gBAChB,CAAC;gBACD,CAAC;gBACD,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,OAAO;aAChD,CAAA;YAED,IAAI;gBACF,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAE3C,KAAK,EAAE,SAAS,CAAC,CAAA;gBAEpB,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM;oBAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;gBAEtD,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,KAAK,CAAC,KAAK,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;gBACtF,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,KAAK,CAAC,MAAM,SAAS,EAAE,CAAC,CAAA;aACpE;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,KAAK,CAAC,KAAK,SAAS,GAAG,CAAC,CAAA;gBAChE,MAAM,KAAK,CAAA;aACZ;QACH,CAAC,CAAA;QAED,MAAM,8BAA8B,GAAG,KAAK,EAC1C,KAAiB,EACjB,UAAsB,EACtB,SAAoB,EACF,EAAE;YACpB;;;eAGG;YACH,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,CAAA;YAExG,MAAM,0BAA0B,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;YAC5G,MAAM,gCAAgC,GAAG,cAAc,CAAC,IAAI,CAC1D,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,KAAK,gBAAgB,CAC3D,CAAA;YACD,MAAM,+BAA+B,GAAG,cAAc,CAAC,IAAI,CACzD,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,KAAK,eAAe,CAC1D,CAAA;YAED,IACE,0BAA0B,EAAE,UAAU;gBACtC,gCAAgC,EAAE,UAAU;gBAC5C,+BAA+B,EAAE,UAAU,EAC3C;gBACA,OAAO,IAAI,CAAA;aACZ;YAED,OAAO,KAAK,CAAA;QACd,CAAC,CAAA;QAED,MAAM,qCAAqC,GAAG,KAAK,EACjD,MAA4B,EAC5B,UAAsB,EACJ,EAAE;YACpB,MAAM,qBAAqB,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC;iBAC7F,MAAM,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC;iBACpD,GAAG,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;YAClE,OAAO,qBAAqB,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAA;QACjE,CAAC,CAAA;QAED,MAAM,wBAAwB,GAAG,KAAK,EACpC,QAAgB,EAChB,SAAoB,EACpB,UAAsB,EACJ,EAAE;YACpB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAA;YAC9D,IAAI,MAAM,EAAE;gBACV,OAAO,CACL,CAAC,MAAM,qCAAqC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;oBACjE,CAAC,MAAM,8BAA8B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CACxF,CAAA;aACF;YACD,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAA;QACzD,CAAC,CAAA;QAED,MAAM,wBAAwB,GAAG,KAAK,EACpC,CAAS,EACT,CAAS,EACT,SAAoB,EACpB,UAAsB,EACtB,cAA6B,EACX,EAAE;YACpB;;;;;eAKG;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;YAC/C,IAAI,MAAM,EAAE;gBACV,MAAM,eAAe,GACnB,MAAM,CAAC,OAAO,IAAI,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAA;gBAErG,OAAO,CACL,CAAC,MAAM,qCAAqC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;oBACjE,CAAC,MAAM,8BAA8B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;oBACvF,CAAC,eAAe,IAAI,CAAC,MAAM,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CACzG,CAAA;aACF;YACD,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,SAAS,aAAa,CAAC,CAAA;QAC7D,CAAC,CAAA;QAED,MAAM,iBAAiB,GAAG,KAAK,EAC7B,CAAS,EACT,CAAS,EACT,SAAoB,EACpB,UAAsB,EACtB,aAA4B,EACV,EAAE;YACpB,IAAI;gBACF,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;aAC1G;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,KAAK,CAAC,KAAK,SAAS,KAAK,UAAU,IAAI,CAAC,CAAA;gBACvF,MAAM,KAAK,CAAA;aACZ;QACH,CAAC,CAAA;QAED,MAAM,mBAAmB,GAAG,IAAA,YAAE,EAAC,IAAI,CAAC,CAAA;QAEpC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;QAC7B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;QACtC,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAEnE,MAAM,MAAM,GAAG,EAAE,CAAA;QACjB,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;QAE1E,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE;YACvC,MAAM,YAAY,GAAa,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACjD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,MAAM,CAAC,GAAW,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;gBAC/C,MAAM,CAAC,GAAW,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;gBAC/C,IAAI;oBACF,8IAA8I;oBAC9I,MAAM,SAAS,GACb,CAAC,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;wBACrE,CAAC,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,GAAG,mBAAmB,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;oBAC7F,IAAI,CAAC,SAAS,EAAE;wBACd,MAAM,CAAC,IAAI,CAAC,2EAA2E,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;qBAClG;iBACF;gBAAC,OAAO,CAAC,EAAE;oBACV,MAAM,CAAC,IAAI,CAAC,2EAA2E,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;iBACxG;aACF;iBAAM;gBACL,MAAM,CAAC,IAAI,CACT,4HAA4H,OAAO,EAAE,CACtI,CAAA;aACF;SACF;QAED,OAAO,IAAA,kBAAU,EAAC,GAAG,MAAM,CAAC,CAAA;IAC9B,CAAC;CACF,CAAA;AAED,gBAAgB;AAChB,KAAK,UAAU,KAAK,CAClB,SAA2B,EAC3B,QAAgB,EAChB,WAAmB,IAAI,EACvB,qBAAsD;IAEtD,OAAO,QAAQ,GAAG,CAAC,EAAE;QACnB,IAAI;YACF,OAAO,MAAM,SAAS,EAAE,CAAA;YACxB,6EAA6E;YAC7E,wDAAwD;SACzD;QAAC,OAAO,KAAK,EAAE;YACd,QAAQ,EAAE,CAAA;YACV,IAAI,QAAQ,GAAG,CAAC,EAAE;gBAChB,IAAI,qBAAqB,EAAE;oBACzB,qBAAqB,CAAC,QAAQ,CAAC,CAAA;iBAChC;gBACD,MAAM,IAAI,OAAO,CAAO,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,IAAA,YAAE,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;aAChE;iBAAM;gBACL,MAAM,KAAK,CAAA;aACZ;SACF;KACF;IACD,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAA;AAChF,CAAC"}
@@ -14,7 +14,7 @@ export declare const ADR_75_TIMESTAMP: number;
14
14
  */
15
15
  export declare const ADR_74_TIMESTAMP: number;
16
16
  /**
17
- * 1673362800000 = 2023-01-10T15:00:00Z
17
+ * 1674576000000 = 2023-01-24T15:00:00Z
18
18
  * @public
19
19
  */
20
20
  export declare const ADR_158_TIMESTAMP: number;
@@ -17,10 +17,10 @@ exports.ADR_75_TIMESTAMP = process.env.ADR_75_TIMESTAMP ? parseInt(process.env.A
17
17
  */
18
18
  exports.ADR_74_TIMESTAMP = process.env.ADR_74_TIMESTAMP ? parseInt(process.env.ADR_74_TIMESTAMP) : 1662987600000;
19
19
  /**
20
- * 1673362800000 = 2023-01-10T15:00:00Z
20
+ * 1674576000000 = 2023-01-24T15:00:00Z
21
21
  * @public
22
22
  */
23
- exports.ADR_158_TIMESTAMP = process.env.ADR_158_TIMESTAMP ? parseInt(process.env.ADR_158_TIMESTAMP) : 1673352000000;
23
+ exports.ADR_158_TIMESTAMP = process.env.ADR_158_TIMESTAMP ? parseInt(process.env.ADR_158_TIMESTAMP) : 1674576000000;
24
24
  /**
25
25
  * DCL Launch Day
26
26
  * @public
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dcl/content-validator",
3
- "version": "4.0.27-20230106194717.commit-dd49367",
3
+ "version": "4.0.27",
4
4
  "description": "Catalyst content validations",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -9,7 +9,6 @@
9
9
  "api-extractor": "yarn clean-api-extractor && api-extractor run --local --verbose --diagnostics --typescript-compiler-folder ./node_modules/typescript",
10
10
  "api-extractor-ci": "yarn clean-api-extractor && api-extractor run --typescript-compiler-folder ./node_modules/typescript",
11
11
  "build": "tsc -p tsconfig.json",
12
- "build:watch": "tsc -p tsconfig.json --watch",
13
12
  "lint:check": "eslint '**/*.{js,ts}'",
14
13
  "lint:fix": "eslint '**/*.{js,ts}' --fix",
15
14
  "test": "jest --runInBand --detectOpenHandles --colors --coverage",
@@ -41,7 +40,6 @@
41
40
  "@typescript-eslint/eslint-plugin": "5.21.0",
42
41
  "@typescript-eslint/parser": "5.21.0",
43
42
  "@well-known-components/env-config-provider": "^1.1.1",
44
- "@well-known-components/http-server": "^1.1.6",
45
43
  "eslint": "8.14.0",
46
44
  "eslint-config-prettier": "8.5.0",
47
45
  "eslint-plugin-prettier": "4.0.0",
@@ -51,14 +49,11 @@
51
49
  "typescript": "^4.7.3"
52
50
  },
53
51
  "dependencies": {
54
- "@dcl/block-indexer": "^1.0.0-20221223191317.commit-2d753e7",
55
- "@dcl/content-hash-tree": "^1.1.4",
52
+ "@dcl/content-hash-tree": "^1.1.3",
56
53
  "@dcl/hashing": "1.1.3",
57
54
  "@dcl/schemas": "^5.4.2",
58
55
  "@dcl/urn-resolver": "2.0.3",
59
- "@well-known-components/interfaces": "^1.1.3",
60
- "@well-known-components/logger": "^3.0.0",
61
- "@well-known-components/metrics": "^2.0.1",
56
+ "@well-known-components/interfaces": "1.1.3",
62
57
  "@well-known-components/thegraph-component": "^1.2.0",
63
58
  "ms": "2.1.3",
64
59
  "sharp": "^0.30.6"
@@ -66,5 +61,5 @@
66
61
  "files": [
67
62
  "dist"
68
63
  ],
69
- "commit": "dd493678349f47abedb09e8a07018f26653d2b3d"
64
+ "commit": "f4b8b31f5c1590344220dbec2284cc8074a8fb73"
70
65
  }