@dcl/content-validator 4.7.2-4996656097.commit-94c5f99 → 4.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -10,8 +10,8 @@ Install dependencies and run tests:
|
|
|
10
10
|
|
|
11
11
|
```
|
|
12
12
|
> yarn
|
|
13
|
-
>
|
|
14
|
-
>
|
|
13
|
+
> yarn build
|
|
14
|
+
> yarn test
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
### Debugging tests
|
|
@@ -28,5 +28,5 @@ To make Catalysts accept deployments of new entity types, they must have defined
|
|
|
28
28
|
|
|
29
29
|
1. Create entity schema on [@dcl/schemas](https://github.com/decentraland/common-schemas).
|
|
30
30
|
2. Add entity type and schema on [catalyst-commons](https://github.com/decentraland/catalyst-commons/).
|
|
31
|
-
3. Add entity type and access checker in [access.ts](./src/validations/access-checker/access.ts).
|
|
31
|
+
3. Add entity type and access checker in [access.ts](./src/validations/access-checker/access.ts).
|
|
32
32
|
a. Verify entity pointers can be resolved. If required add a new resolver in [@dcl/urn-resolver](https://github.com/decentraland/urn-resolver).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenes.d.ts","sourceRoot":"","sources":["../../../../src/validations/access/subgraph/scenes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scenes.d.ts","sourceRoot":"","sources":["../../../../src/validations/access/subgraph/scenes.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,oBAAoB,EAGpB,+BAA+B,EAC/B,kBAAkB,EACnB,MAAM,gBAAgB,CAAA;AAgCvB;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,aAAa,EACb,SAAS,EACT,IAAI,EACJ,cAAc,EACf,EAAE,IAAI,CAAC,+BAA+B,EAAE,eAAe,GAAG,MAAM,GAAG,WAAW,GAAG,gBAAgB,CAAC,gBAQpD,oBAAoB,KAAG,QAAQ,kBAAkB,CAAC,CA8ThG"}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.createSceneValidateFn = void 0;
|
|
7
7
|
const ms_1 = __importDefault(require("ms"));
|
|
8
|
+
const p_queue_1 = __importDefault(require("p-queue"));
|
|
8
9
|
const types_1 = require("../../../types");
|
|
9
10
|
/**
|
|
10
11
|
* Checks if the given address has access to the given parcel at the given timestamp.
|
|
@@ -13,6 +14,9 @@ const types_1 = require("../../../types");
|
|
|
13
14
|
function createSceneValidateFn({ externalCalls, subGraphs, logs, tokenAddresses }) {
|
|
14
15
|
const logger = logs.getLogger('scenes access validator');
|
|
15
16
|
const SCENE_LOOKBACK_TIME = (0, ms_1.default)('5m');
|
|
17
|
+
const SCENE_VALIDATIONS_CONCURRENCY = process.env.SCENE_VALIDATIONS_CONCURRENCY
|
|
18
|
+
? parseInt(process.env.SCENE_VALIDATIONS_CONCURRENCY)
|
|
19
|
+
: 10;
|
|
16
20
|
return async function validateFn(deployment) {
|
|
17
21
|
const getAuthorizations = async (owner, operator, timestamp, tokenAddress) => {
|
|
18
22
|
const query = `
|
|
@@ -213,27 +217,36 @@ function createSceneValidateFn({ externalCalls, subGraphs, logs, tokenAddresses
|
|
|
213
217
|
const ethAddress = externalCalls.ownerAddress(deployment.auditInfo);
|
|
214
218
|
const errors = [];
|
|
215
219
|
const lowerCasePointers = pointers.map((pointer) => pointer.toLowerCase());
|
|
220
|
+
const queue = new p_queue_1.default({ concurrency: SCENE_VALIDATIONS_CONCURRENCY });
|
|
221
|
+
const controller = new AbortController();
|
|
216
222
|
for (const pointer of lowerCasePointers) {
|
|
217
223
|
const pointerParts = pointer.split(',');
|
|
218
224
|
if (pointerParts.length === 2) {
|
|
219
225
|
const x = parseInt(pointerParts[0], 10);
|
|
220
226
|
const y = parseInt(pointerParts[1], 10);
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
+
// 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)
|
|
228
|
+
queue
|
|
229
|
+
.add(async () => {
|
|
230
|
+
if (!controller.signal.aborted) {
|
|
231
|
+
const hasAccess = (await checkParcelAccess(x, y, timestamp, ethAddress, externalCalls)) ||
|
|
232
|
+
(await checkParcelAccess(x, y, timestamp - SCENE_LOOKBACK_TIME, ethAddress, externalCalls));
|
|
233
|
+
if (!hasAccess) {
|
|
234
|
+
errors.push(`The provided Eth Address does not have access to the following parcel: (${x},${y})`);
|
|
235
|
+
controller.abort();
|
|
236
|
+
}
|
|
227
237
|
}
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
errors.push(`The provided Eth Address does not have access to the following parcel: (${x},${y}). ${
|
|
231
|
-
|
|
238
|
+
})
|
|
239
|
+
.catch((error) => {
|
|
240
|
+
errors.push(`The provided Eth Address does not have access to the following parcel: (${x},${y}). ${error}`);
|
|
241
|
+
controller.abort();
|
|
242
|
+
});
|
|
232
243
|
}
|
|
233
244
|
else {
|
|
234
245
|
errors.push(`Scene pointers should only contain two integers separated by a comma, for example (10,10) or (120,-45). Invalid pointer: ${pointer}`);
|
|
246
|
+
controller.abort();
|
|
235
247
|
}
|
|
236
248
|
}
|
|
249
|
+
await queue.onIdle();
|
|
237
250
|
return (0, types_1.fromErrors)(...errors);
|
|
238
251
|
};
|
|
239
252
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenes.js","sourceRoot":"","sources":["../../../../src/validations/access/subgraph/scenes.ts"],"names":[],"mappings":";;;;;;AACA,4CAAmB;AACnB,0CAMuB;AAgCvB;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,EACpC,aAAa,EACb,SAAS,EACT,IAAI,EACJ,cAAc,EACmF;IACjG,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAA;IAExD,MAAM,mBAAmB,GAAG,IAAA,YAAE,EAAC,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"scenes.js","sourceRoot":"","sources":["../../../../src/validations/access/subgraph/scenes.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dcl/content-validator",
|
|
3
|
-
"version": "4.7.2
|
|
3
|
+
"version": "4.7.2",
|
|
4
4
|
"description": "Catalyst content validations",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -60,10 +60,11 @@
|
|
|
60
60
|
"@well-known-components/interfaces": "^1.3.0",
|
|
61
61
|
"@well-known-components/thegraph-component": "^1.4.3",
|
|
62
62
|
"ms": "^2.1.3",
|
|
63
|
+
"p-queue": "^6.6.2",
|
|
63
64
|
"sharp": "^0.32.0"
|
|
64
65
|
},
|
|
65
66
|
"files": [
|
|
66
67
|
"dist"
|
|
67
68
|
],
|
|
68
|
-
"commit": "
|
|
69
|
+
"commit": "c64f59b649448366b571298b1a105a228d1e1538"
|
|
69
70
|
}
|