@dcl/content-validator 4.0.27-20230106194717.commit-dd49367 → 4.1.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 (34) hide show
  1. package/dist/content-validator.api.json +73 -180
  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/ADR45.d.ts +7 -0
  11. package/dist/validations/ADR45.d.ts.map +1 -0
  12. package/dist/validations/ADR45.js +20 -0
  13. package/dist/validations/ADR45.js.map +1 -0
  14. package/dist/validations/ADR51.d.ts +1 -1
  15. package/dist/validations/ADR51.d.ts.map +1 -1
  16. package/dist/validations/access-checker/items/collection-asset.d.ts +2 -2
  17. package/dist/validations/access-checker/items/collection-asset.d.ts.map +1 -1
  18. package/dist/validations/access-checker/items/collection-asset.js +106 -43
  19. package/dist/validations/access-checker/items/collection-asset.js.map +1 -1
  20. package/dist/validations/access-checker/items/items.d.ts +3 -3
  21. package/dist/validations/access-checker/items/items.d.ts.map +1 -1
  22. package/dist/validations/access-checker/items/third-party-asset.d.ts.map +1 -1
  23. package/dist/validations/access-checker/items/third-party-asset.js +80 -21
  24. package/dist/validations/access-checker/items/third-party-asset.js.map +1 -1
  25. package/dist/validations/access-checker/scenes.d.ts.map +1 -1
  26. package/dist/validations/access-checker/scenes.js +227 -29
  27. package/dist/validations/access-checker/scenes.js.map +1 -1
  28. package/dist/validations/index.d.ts +2 -2
  29. package/dist/validations/index.d.ts.map +1 -1
  30. package/dist/validations/index.js +2 -1
  31. package/dist/validations/index.js.map +1 -1
  32. package/dist/validations/timestamps.d.ts +1 -1
  33. package/dist/validations/timestamps.js +2 -2
  34. package/package.json +4 -9
@@ -1,20 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createTheGraphClient = exports.timestampBounds = void 0;
3
+ exports.createTheGraphClient = void 0;
4
4
  const urn_resolver_1 = require("@dcl/urn-resolver");
5
- function timestampBounds(timestampMs) {
6
- /*
7
- * This mimics original behavior of looking up to 8 seconds after the entity timestamp
8
- * and up to 5 minutes and 7 seconds before
9
- */
10
- const timestampSec = Math.ceil(timestampMs / 1000) + 8;
11
- const timestamp5MinAgo = Math.max(timestampSec - 60 * 5 - 7, 0);
12
- return {
13
- upper: timestampSec,
14
- lower: timestamp5MinAgo
15
- };
16
- }
17
- exports.timestampBounds = timestampBounds;
18
5
  /**
19
6
  * @public
20
7
  */
@@ -26,19 +13,27 @@ const createTheGraphClient = (components) => {
26
13
  if (namesToCheck.length === 0) {
27
14
  return permissionOk();
28
15
  }
29
- const blocks = await findBlocksForTimestamp(timestamp, components.subGraphs.l1BlockSearch);
16
+ const blocks = await findBlocksForTimestamp(components.subGraphs.L1.blocks, timestamp);
30
17
  const hasPermissionOnBlock = async (blockNumber) => {
31
18
  if (!blockNumber) {
32
19
  return permissionError();
33
20
  }
21
+ const runOwnedNamesOnBlockQuery = async (blockNumber) => {
22
+ const query = {
23
+ description: 'check for names ownership',
24
+ subgraph: components.subGraphs.L1.ensOwner,
25
+ query: QUERY_NAMES_FOR_ADDRESS_AT_BLOCK,
26
+ mapper: (response) => new Set(response.names.map(({ name }) => name))
27
+ };
28
+ return runQuery(query, {
29
+ block: blockNumber,
30
+ ethAddress,
31
+ nameList: namesToCheck
32
+ });
33
+ };
34
34
  try {
35
- const result = await components.subGraphs.L1.checker.checkNames(ethAddress, namesToCheck, blockNumber);
36
- const notOwned = [];
37
- for (let i = 0; i < namesToCheck.length; i++) {
38
- if (!result[i]) {
39
- notOwned.push(namesToCheck[i]);
40
- }
41
- }
35
+ const ownedNames = await runOwnedNamesOnBlockQuery(blockNumber);
36
+ const notOwned = namesToCheck.filter((name) => !ownedNames.has(name));
42
37
  return notOwned.length > 0 ? permissionError(notOwned) : permissionOk();
43
38
  }
44
39
  catch {
@@ -46,11 +41,11 @@ const createTheGraphClient = (components) => {
46
41
  return permissionError();
47
42
  }
48
43
  };
49
- const permissionMostRecentBlock = await hasPermissionOnBlock(blocks.blockAtDeployment);
44
+ const permissionMostRecentBlock = await hasPermissionOnBlock(blocks.blockNumberAtDeployment);
50
45
  if (permissionMostRecentBlock.result) {
51
46
  return permissionMostRecentBlock;
52
47
  }
53
- return await hasPermissionOnBlock(blocks.blockFiveMinBeforeDeployment);
48
+ return await hasPermissionOnBlock(blocks.blockNumberFiveMinBeforeDeployment);
54
49
  };
55
50
  const splitItemsByNetwork = async (urnsToCheck) => {
56
51
  const ethereum = [];
@@ -83,8 +78,8 @@ const createTheGraphClient = (components) => {
83
78
  return permissionOk();
84
79
  }
85
80
  const { ethereum, matic } = await splitItemsByNetwork(urnsToCheck);
86
- const ethereumItemsOwnersPromise = ownsItemsAtTimestampInBlockchain(ethAddress, ethereum, timestamp, components.subGraphs.L1.collections, components.subGraphs.l1BlockSearch);
87
- const maticItemsOwnersPromise = ownsItemsAtTimestampInBlockchain(ethAddress, matic, timestamp, components.subGraphs.L2.collections, components.subGraphs.l2BlockSearch);
81
+ const ethereumItemsOwnersPromise = ownsItemsAtTimestampInBlockchain(ethAddress, ethereum, timestamp, components.subGraphs.L1.blocks, components.subGraphs.L1.collections);
82
+ const maticItemsOwnersPromise = ownsItemsAtTimestampInBlockchain(ethAddress, matic, timestamp, components.subGraphs.L2.blocks, components.subGraphs.L2.collections);
88
83
  const [ethereumItemsOwnership, maticItemsOwnership] = await Promise.all([
89
84
  ethereumItemsOwnersPromise,
90
85
  maticItemsOwnersPromise
@@ -95,11 +90,11 @@ const createTheGraphClient = (components) => {
95
90
  return permissionError([...(ethereumItemsOwnership.failing ?? []), ...(maticItemsOwnership.failing ?? [])]);
96
91
  }
97
92
  };
98
- const ownsItemsAtTimestampInBlockchain = async (ethAddress, urnsToCheck, timestamp, collectionsSubgraph, blockSearch) => {
93
+ const ownsItemsAtTimestampInBlockchain = async (ethAddress, urnsToCheck, timestamp, blocksSubgraph, collectionsSubgraph) => {
99
94
  if (urnsToCheck.length === 0) {
100
95
  return permissionOk();
101
96
  }
102
- const blocks = await findBlocksForTimestamp(timestamp, blockSearch);
97
+ const blocks = await findBlocksForTimestamp(blocksSubgraph, timestamp);
103
98
  const hasPermissionOnBlock = async (blockNumber) => {
104
99
  if (!blockNumber) {
105
100
  return permissionError();
@@ -123,39 +118,49 @@ const createTheGraphClient = (components) => {
123
118
  return notOwned.length > 0 ? permissionError(notOwned) : permissionOk();
124
119
  }
125
120
  catch (error) {
126
- logger.error(`Error retrieving items owned by address ${ethAddress} at block ${blocks.blockAtDeployment}`);
121
+ logger.error(`Error retrieving items owned by address ${ethAddress} at block ${blocks.blockNumberAtDeployment}`);
127
122
  return permissionError();
128
123
  }
129
124
  };
130
- const permissionMostRecentBlock = await hasPermissionOnBlock(blocks.blockAtDeployment);
125
+ const permissionMostRecentBlock = await hasPermissionOnBlock(blocks.blockNumberAtDeployment);
131
126
  if (permissionMostRecentBlock.result) {
132
127
  return permissionMostRecentBlock;
133
128
  }
134
- return await hasPermissionOnBlock(blocks.blockFiveMinBeforeDeployment);
129
+ return await hasPermissionOnBlock(blocks.blockNumberFiveMinBeforeDeployment);
135
130
  };
136
131
  const runQuery = async (query, variables) => {
137
132
  const response = await query.subgraph.query(query.query, variables);
138
133
  return query.mapper(response);
139
134
  };
140
- const findBlocksForTimestamp = async (timestamp, blockSearch) => {
141
- const { lower, upper } = timestampBounds(timestamp);
142
- const result = await Promise.all([
143
- blockSearch.findBlockForTimestamp(upper),
144
- blockSearch.findBlockForTimestamp(lower)
145
- ]);
146
- const blockNumberAtDeployment = result[0];
147
- let blockNumberFiveMinBeforeDeployment = result[1];
148
- if (blockNumberFiveMinBeforeDeployment && blockNumberFiveMinBeforeDeployment.timestamp < lower) {
149
- // Mimic the way TheGraph was calculating this
150
- blockNumberFiveMinBeforeDeployment = {
151
- ...blockNumberFiveMinBeforeDeployment,
152
- block: blockNumberFiveMinBeforeDeployment.block + 1
153
- };
154
- }
155
- return {
156
- blockAtDeployment: blockNumberAtDeployment?.block,
157
- blockFiveMinBeforeDeployment: blockNumberFiveMinBeforeDeployment?.block
135
+ const findBlocksForTimestamp = async (subgraph, timestamp) => {
136
+ const query = {
137
+ description: 'fetch blocks for timestamp',
138
+ subgraph: subgraph,
139
+ query: QUERY_BLOCKS_FOR_TIMESTAMP,
140
+ mapper: (response) => {
141
+ const blockNumberAtDeployment = response.max[0]?.number;
142
+ const blockNumberFiveMinBeforeDeployment = response.min[0]?.number;
143
+ if (blockNumberAtDeployment === undefined && blockNumberFiveMinBeforeDeployment === undefined) {
144
+ throw new Error(`Failed to find blocks for the specific timestamp`);
145
+ }
146
+ return {
147
+ blockNumberAtDeployment: !!blockNumberAtDeployment ? parseInt(blockNumberAtDeployment) : undefined,
148
+ blockNumberFiveMinBeforeDeployment: !!blockNumberFiveMinBeforeDeployment
149
+ ? parseInt(blockNumberFiveMinBeforeDeployment)
150
+ : undefined
151
+ };
152
+ }
158
153
  };
154
+ /*
155
+ * This mimics original behavior of looking up to 8 seconds after the entity timestamp
156
+ * and up to 5 minutes and 7 seconds before
157
+ */
158
+ const timestampSec = Math.ceil(timestamp / 1000) + 8;
159
+ const timestamp5MinAgo = timestampSec - 60 * 5 - 7;
160
+ return await runQuery(query, {
161
+ timestamp: timestampSec,
162
+ timestamp5Min: timestamp5MinAgo
163
+ });
159
164
  };
160
165
  return {
161
166
  ownsNamesAtTimestamp,
@@ -164,6 +169,35 @@ const createTheGraphClient = (components) => {
164
169
  };
165
170
  };
166
171
  exports.createTheGraphClient = createTheGraphClient;
172
+ const QUERY_BLOCKS_FOR_TIMESTAMP = `
173
+ query getBlockForTimestampRange($timestamp: Int!, $timestamp5Min: Int!) {
174
+ min: blocks(
175
+ where: {timestamp_gte: $timestamp5Min, timestamp_lte: $timestamp}
176
+ first: 1
177
+ orderBy: timestamp
178
+ orderDirection: desc
179
+ ) {
180
+ number
181
+ }
182
+ max: blocks(
183
+ where: {timestamp_gte: $timestamp5Min, timestamp_lte: $timestamp}
184
+ first: 1
185
+ orderBy: timestamp
186
+ orderDirection: asc
187
+ ) {
188
+ number
189
+ }
190
+ }`;
191
+ const QUERY_NAMES_FOR_ADDRESS_AT_BLOCK = `
192
+ query getNftNamesForBlock($block: Int!, $ethAddress: String!, $nameList: [String!]) {
193
+ names: nfts(
194
+ block: {number: $block}
195
+ where: {owner: $ethAddress, category: ens, name_in: $nameList}
196
+ first: 1000
197
+ ) {
198
+ name
199
+ }
200
+ }`;
167
201
  const QUERY_ITEMS_FOR_ADDRESS_AT_BLOCK = `
168
202
  query getNftItemsForBlock($block: Int!, $ethAddress: String!, $urnList: [String!]) {
169
203
  items: nfts(
@@ -1 +1 @@
1
- {"version":3,"file":"the-graph-client.js","sourceRoot":"","sources":["../../src/the-graph-client/the-graph-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"the-graph-client.js","sourceRoot":"","sources":["../../src/the-graph-client/the-graph-client.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.33.7"
8
+ "packageVersion": "7.24.2"
9
9
  }
10
10
  ]
11
11
  }
package/dist/types.d.ts CHANGED
@@ -1,34 +1,32 @@
1
- /// <reference types="node" />
2
1
  import { AuthChain, Entity, EthAddress } from '@dcl/schemas';
3
2
  import { IConfigComponent, ILoggerComponent } from '@well-known-components/interfaces';
4
3
  import { ISubgraphComponent, Variables } from '@well-known-components/thegraph-component';
5
4
  import { PermissionResult } from './the-graph-client/the-graph-client';
6
- import { BlockSearch } from '@dcl/block-indexer';
7
5
  /**
8
6
  * @public
9
7
  */
10
- export type LocalDeploymentAuditInfo = {
8
+ export declare type LocalDeploymentAuditInfo = {
11
9
  authChain: AuthChain;
12
10
  };
13
11
  /**
14
12
  * @public
15
13
  */
16
- export type Errors = string[];
14
+ export declare type Errors = string[];
17
15
  /**
18
16
  * @public
19
17
  */
20
- export type Warnings = string[];
18
+ export declare type Warnings = string[];
21
19
  /**
22
20
  * @public
23
21
  */
24
- export type EntityWithEthAddress = Entity & {
22
+ export declare type EntityWithEthAddress = Entity & {
25
23
  ethAddress: string;
26
24
  };
27
25
  /**
28
26
  * Deployment object to be validated by the validator.
29
27
  * @public
30
28
  */
31
- export type DeploymentToValidate = {
29
+ export declare type DeploymentToValidate = {
32
30
  entity: Entity;
33
31
  files: Map<string, Uint8Array>;
34
32
  auditInfo: LocalDeploymentAuditInfo;
@@ -37,12 +35,12 @@ export type DeploymentToValidate = {
37
35
  * Function used to fetch TheGraph
38
36
  * @public
39
37
  */
40
- export type QueryGraph = <T = any>(query: string, variables?: Variables, remainingAttempts?: number) => Promise<T>;
38
+ export declare type QueryGraph = <T = any>(query: string, variables?: Variables, remainingAttempts?: number) => Promise<T>;
41
39
  /**
42
40
  * External calls interface to be provided by the servers.
43
41
  * @public
44
42
  */
45
- export type ExternalCalls = {
43
+ export declare type ExternalCalls = {
46
44
  isContentStoredAlready: (hashes: string[]) => Promise<Map<string, boolean>>;
47
45
  fetchContentFileSize: (hash: string) => Promise<number | undefined>;
48
46
  validateSignature: (entityId: string, auditInfo: LocalDeploymentAuditInfo, timestamp: number) => Promise<{
@@ -62,26 +60,26 @@ export interface Validator {
62
60
  /**
63
61
  * @public
64
62
  */
65
- export type ValidationArgs = {
63
+ export declare type ValidationArgs = {
66
64
  deployment: DeploymentToValidate;
67
65
  };
68
66
  /**
69
67
  * @public
70
68
  */
71
- export type ValidationResponse = {
69
+ export declare type ValidationResponse = {
72
70
  ok: boolean;
73
71
  errors?: Errors;
74
72
  };
75
73
  /**
76
74
  * @public
77
75
  */
78
- export type Validation = {
76
+ export declare type Validation = {
79
77
  validate: (components: ContentValidatorComponents, deployment: DeploymentToValidate) => ValidationResponse | Promise<ValidationResponse>;
80
78
  };
81
79
  /**
82
80
  * @public
83
81
  */
84
- export type ConditionalValidation = {
82
+ export declare type ConditionalValidation = {
85
83
  predicate: (components: ContentValidatorComponents, deployment: DeploymentToValidate) => ValidationResponse | Promise<ValidationResponse>;
86
84
  };
87
85
  /**
@@ -96,56 +94,43 @@ export declare const validationFailed: (...error: string[]) => ValidationRespons
96
94
  * @public
97
95
  */
98
96
  export declare const fromErrors: (...errors: Errors) => ValidationResponse;
99
- /**
100
- * @public
101
- */
102
- export type L1Checker = {
103
- checkLAND(ethAddress: string, parcels: [number, number][], block: number): Promise<boolean[]>;
104
- checkNames(ethAddress: string, names: string[], block: number): Promise<boolean[]>;
105
- };
106
- /**
107
- * @public
108
- */
109
- export type L2Checker = {
110
- validateWearables(ethAddress: string, contractAddress: string, assetId: string, hash: string, block: number): Promise<boolean>;
111
- validateThirdParty(ethAddress: string, tpId: string, root: Buffer, block: number): Promise<boolean>;
112
- };
113
97
  /**
114
98
  * A list with all sub-graphs used for validations.
115
99
  * @public
116
100
  */
117
- export type SubGraphs = {
101
+ export declare type SubGraphs = {
118
102
  L1: {
119
- checker: L1Checker;
103
+ landManager: ISubgraphComponent;
104
+ blocks: ISubgraphComponent;
120
105
  collections: ISubgraphComponent;
106
+ ensOwner: ISubgraphComponent;
121
107
  };
122
108
  L2: {
123
- checker: L2Checker;
109
+ blocks: ISubgraphComponent;
124
110
  collections: ISubgraphComponent;
111
+ thirdPartyRegistry: ISubgraphComponent;
125
112
  };
126
- l1BlockSearch: BlockSearch;
127
- l2BlockSearch: BlockSearch;
128
113
  };
129
114
  /**
130
115
  * @public
131
116
  */
132
- export type TheGraphClient = {
117
+ export declare type TheGraphClient = {
133
118
  ownsNamesAtTimestamp: (ethAddress: EthAddress, namesToCheck: string[], timestamp: number) => Promise<PermissionResult>;
134
119
  ownsItemsAtTimestamp: (ethAddress: EthAddress, urnsToCheck: string[], timestamp: number) => Promise<PermissionResult>;
135
- findBlocksForTimestamp: (timestamp: number, blockSearch: BlockSearch) => Promise<BlockInformation>;
120
+ findBlocksForTimestamp: (subgraph: ISubgraphComponent, timestamp: number) => Promise<BlockInformation>;
136
121
  };
137
122
  /**
138
123
  * @public
139
124
  */
140
- export type BlockInformation = {
141
- blockAtDeployment: number | undefined;
142
- blockFiveMinBeforeDeployment: number | undefined;
125
+ export declare type BlockInformation = {
126
+ blockNumberAtDeployment: number | undefined;
127
+ blockNumberFiveMinBeforeDeployment: number | undefined;
143
128
  };
144
129
  /**
145
130
  * Components that can be used to validate deployments.
146
131
  * @public
147
132
  */
148
- export type ContentValidatorComponents = {
133
+ export declare type ContentValidatorComponents = {
149
134
  config: IConfigComponent;
150
135
  logs: ILoggerComponent;
151
136
  theGraphClient: TheGraphClient;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAuGA;;GAEG;AACU,QAAA,EAAE,GAAuB,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;AAElD;;GAEG;AACI,MAAM,gBAAgB,GAAG,CAAC,GAAG,KAAe,EAAsB,EAAE,CAAC,CAAC;IAC3E,EAAE,EAAE,KAAK;IACT,MAAM,EAAE,KAAK;CACd,CAAC,CAAA;AAHW,QAAA,gBAAgB,oBAG3B;AAEF;;GAEG;AACI,MAAM,UAAU,GAAG,CAAC,GAAG,MAAc,EAAsB,EAAE,CAAC,CAAC;IACpE,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;CAC/C,CAAC,CAAA;AAHW,QAAA,UAAU,cAGrB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAsGA;;GAEG;AACU,QAAA,EAAE,GAAuB,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;AAElD;;GAEG;AACI,MAAM,gBAAgB,GAAG,CAAC,GAAG,KAAe,EAAsB,EAAE,CAAC,CAAC;IAC3E,EAAE,EAAE,KAAK;IACT,MAAM,EAAE,KAAK;CACd,CAAC,CAAA;AAHW,QAAA,gBAAgB,oBAG3B;AAEF;;GAEG;AACI,MAAM,UAAU,GAAG,CAAC,GAAG,MAAc,EAAsB,EAAE,CAAC,CAAC;IACpE,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;CAC/C,CAAC,CAAA;AAHW,QAAA,UAAU,cAGrB"}
@@ -0,0 +1,7 @@
1
+ import { Validation } from '../types';
2
+ /**
3
+ * Validate that entity meets ADR-45 validations
4
+ * @public
5
+ */
6
+ export declare const adr45: Validation;
7
+ //# sourceMappingURL=ADR45.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ADR45.d.ts","sourceRoot":"","sources":["../../src/validations/ADR45.ts"],"names":[],"mappings":"AACA,OAAO,EAAkC,UAAU,EAAoB,MAAM,UAAU,CAAA;AAOvF;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,UASnB,CAAA"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.adr45 = void 0;
4
+ const types_1 = require("../types");
5
+ const timestamps_1 = require("./timestamps");
6
+ const entityIsNotVersion3 = (entity) => entity.version !== 'v3';
7
+ const entityWasDeployedAfterADR45 = (entity) => entity.timestamp > timestamps_1.ADR_45_TIMESTAMP;
8
+ /**
9
+ * Validate that entity meets ADR-45 validations
10
+ * @public
11
+ */
12
+ exports.adr45 = {
13
+ validate: async (components, deployment) => {
14
+ const { entity } = deployment;
15
+ if (entityIsNotVersion3(entity) && entityWasDeployedAfterADR45(entity))
16
+ return (0, types_1.validationFailed)('Only entities v3 are allowed after ADR-45');
17
+ return types_1.OK;
18
+ }
19
+ };
20
+ //# sourceMappingURL=ADR45.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ADR45.js","sourceRoot":"","sources":["../../src/validations/ADR45.ts"],"names":[],"mappings":";;;AACA,oCAAuF;AACvF,6CAA+C;AAE/C,MAAM,mBAAmB,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,CAAA;AAEvE,MAAM,2BAA2B,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,GAAG,6BAAgB,CAAA;AAE3F;;;GAGG;AACU,QAAA,KAAK,GAAe;IAC/B,QAAQ,EAAE,KAAK,EAAE,UAAsC,EAAE,UAAU,EAAE,EAAE;QACrE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;QAE7B,IAAI,mBAAmB,CAAC,MAAM,CAAC,IAAI,2BAA2B,CAAC,MAAM,CAAC;YACpE,OAAO,IAAA,wBAAgB,EAAC,2CAA2C,CAAC,CAAA;QAEtE,OAAO,UAAE,CAAA;IACX,CAAC;CACF,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { Emote, EntityType, Profile, Scene, Store, ValidateFunction, Wearable } from '@dcl/schemas';
2
- type Params = {
2
+ declare type Params = {
3
3
  validate: ValidateFunction<Scene | Profile | Wearable | Store | Emote>;
4
4
  maxSizeInMB: number;
5
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ADR51.d.ts","sourceRoot":"","sources":["../../src/validations/ADR51.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEnG,KAAK,MAAM,GAAG;IACZ,QAAQ,EAAE,gBAAgB,CAAC,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC,CAAA;IACtE,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAqBvD,CAAA"}
1
+ {"version":3,"file":"ADR51.d.ts","sourceRoot":"","sources":["../../src/validations/ADR51.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAEnG,aAAK,MAAM,GAAG;IACZ,QAAQ,EAAE,gBAAgB,CAAC,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC,CAAA;IACtE,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAqBvD,CAAA"}
@@ -1,9 +1,9 @@
1
1
  import { AssetValidation } from './items';
2
- type CollectionItem = {
2
+ declare type CollectionItem = {
3
3
  managers: string[];
4
4
  contentHash: string;
5
5
  };
6
- export type ItemCollection = {
6
+ export declare type ItemCollection = {
7
7
  creator: string;
8
8
  managers: string[];
9
9
  isApproved: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"collection-asset.d.ts","sourceRoot":"","sources":["../../../../src/validations/access-checker/items/collection-asset.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAKzC,KAAK,cAAc,GAAG;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,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;AAED,eAAO,MAAM,gCAAgC,EAAE,eA+E9C,CAAA"}
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;AAsID,eAAO,MAAM,gCAAgC,EAAE,eAqD9C,CAAA"}