@dcl/content-validator 2.3.2-20220720202727.commit-e3818dd → 2.3.2-20220721154251.commit-22905aa
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.
|
@@ -45,11 +45,11 @@ async function hasPermission(components, subgraph, collection, itemId, block, en
|
|
|
45
45
|
const { content, metadata } = entity;
|
|
46
46
|
const permissions = await getCollectionItems(components, subgraph, collection, itemId, block);
|
|
47
47
|
const ethAddressLowercase = entity.ethAddress.toLowerCase();
|
|
48
|
-
logger.
|
|
48
|
+
logger.info(`MARIANO(${entity.id}) contentHash: ${permissions.contentHash}`);
|
|
49
49
|
if (!!permissions.contentHash) {
|
|
50
50
|
const deployedByCommittee = permissions.committee.includes(ethAddressLowercase);
|
|
51
51
|
if (!deployedByCommittee) {
|
|
52
|
-
logger.
|
|
52
|
+
logger.info(`MARIANO(${entity.id}) The eth address ${ethAddressLowercase} is not part of committee.`);
|
|
53
53
|
}
|
|
54
54
|
const calculateHashes = () => {
|
|
55
55
|
// Compare both by key and hash
|
|
@@ -63,14 +63,14 @@ async function hasPermission(components, subgraph, collection, itemId, block, en
|
|
|
63
63
|
};
|
|
64
64
|
const contentAsJson = (content ?? []).map(({ file, hash }) => ({ key: file, hash })).sort(compare);
|
|
65
65
|
const data = JSON.stringify({ content: contentAsJson, metadata });
|
|
66
|
-
logger.
|
|
66
|
+
logger.info(`MARIANO(${entity.id}) data: ${data}`);
|
|
67
67
|
const buffer = Buffer.from(data);
|
|
68
68
|
return Promise.all([(0, hashing_1.hashV0)(buffer), (0, hashing_1.hashV1)(buffer)]);
|
|
69
69
|
};
|
|
70
70
|
const hashes = await calculateHashes();
|
|
71
71
|
const contentHashIsOk = hashes.includes(permissions.contentHash);
|
|
72
72
|
if (!contentHashIsOk) {
|
|
73
|
-
logger.
|
|
73
|
+
logger.info(`MARIANO(${entity.id}) The hash ${permissions.contentHash} doesn't match any of the calculated hashes: ${JSON.stringify(hashes)}. Content: ${JSON.stringify(content)}`);
|
|
74
74
|
}
|
|
75
75
|
return deployedByCommittee && contentHashIsOk;
|
|
76
76
|
}
|
|
@@ -78,7 +78,7 @@ async function hasPermission(components, subgraph, collection, itemId, block, en
|
|
|
78
78
|
const b1 = permissions.collectionCreator && permissions.collectionCreator === ethAddressLowercase;
|
|
79
79
|
const b2 = permissions.collectionManagers && permissions.collectionManagers.includes(ethAddressLowercase);
|
|
80
80
|
const b3 = permissions.itemManagers && permissions.itemManagers.includes(ethAddressLowercase);
|
|
81
|
-
logger.
|
|
81
|
+
logger.info(`MARIANO(${entity.id}) b1: ${b1}, b2: ${b2}, b3: ${b3}`);
|
|
82
82
|
const addressHasAccess = b1 || b2 || b3;
|
|
83
83
|
// Deployments to the content server are made after the collection is completed, so that the committee can then approve it.
|
|
84
84
|
// 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
|
|
@@ -95,7 +95,7 @@ async function checkCollectionAccess(components, blocksSubgraph, collectionsSubg
|
|
|
95
95
|
const { timestamp } = entity;
|
|
96
96
|
try {
|
|
97
97
|
const { blockNumberAtDeployment, blockNumberFiveMinBeforeDeployment } = await components.theGraphClient.findBlocksForTimestamp(blocksSubgraph, timestamp);
|
|
98
|
-
logger.
|
|
98
|
+
logger.info(`MARIANO(${entity.id}) blockNumberAtDeployment ${blockNumberAtDeployment}, blockNumberFiveMinBeforeDeployment: ${blockNumberFiveMinBeforeDeployment}`);
|
|
99
99
|
// 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
|
|
100
100
|
// 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
|
|
101
101
|
// have access now, or had access 5 minutes ago.
|
|
@@ -106,11 +106,11 @@ async function checkCollectionAccess(components, blocksSubgraph, collectionsSubg
|
|
|
106
106
|
return b1;
|
|
107
107
|
}
|
|
108
108
|
else {
|
|
109
|
-
logger.
|
|
109
|
+
logger.info(`MARIANO(${entity.id}) b1: ${b1}`);
|
|
110
110
|
}
|
|
111
111
|
const b2 = await hasPermissionOnBlock(blockNumberFiveMinBeforeDeployment);
|
|
112
112
|
if (!b2)
|
|
113
|
-
logger.
|
|
113
|
+
logger.info(`MARIANO(${entity.id}) b2: ${b2}`);
|
|
114
114
|
return b2;
|
|
115
115
|
}
|
|
116
116
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection-asset.js","sourceRoot":"","sources":["../../../../src/validations/access-checker/items/collection-asset.ts"],"names":[],"mappings":";;;AAAA,0CAA6C;AAK7C,0CAMuB;AAGvB,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;AACxE,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AA8BvC,KAAK,UAAU,kBAAkB,CAC/B,UAA6D,EAC7D,QAA4B,EAC5B,UAAkB,EAClB,MAAc,EACd,KAAa;IAEb,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;UAgBN,CAAA;IAER,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAkB,KAAK,EAAE;QAC1D,UAAU;QACV,MAAM,EAAE,GAAG,UAAU,IAAI,MAAM,EAAE;QACjC,KAAK;KACN,CAAC,CAAA;IACF,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;IAC9C,MAAM,UAAU,GAAG,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;IAC7C,OAAO;QACL,iBAAiB,EAAE,gBAAgB,EAAE,OAAO;QAC5C,kBAAkB,EAAE,gBAAgB,EAAE,QAAQ;QAC9C,UAAU,EAAE,gBAAgB,EAAE,UAAU;QACxC,WAAW,EAAE,gBAAgB,EAAE,WAAW;QAC1C,YAAY,EAAE,UAAU,EAAE,QAAQ;QAClC,WAAW,EAAE,UAAU,EAAE,WAAW;QACpC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;KAC7D,CAAA;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,UAA6D,EAC7D,QAA4B,EAC5B,UAAkB,EAClB,MAAc,EACd,KAAa,EACb,MAA4B,EAC5B,MAAgC;IAEhC,IAAI;QACF,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAA;QACpC,MAAM,WAAW,GAAwB,MAAM,kBAAkB,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QAClH,MAAM,mBAAmB,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAA;QAE3D,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"collection-asset.js","sourceRoot":"","sources":["../../../../src/validations/access-checker/items/collection-asset.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": "2.3.2-
|
|
3
|
+
"version": "2.3.2-20220721154251.commit-22905aa",
|
|
4
4
|
"description": "Catalyst content validations",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -60,5 +60,5 @@
|
|
|
60
60
|
"files": [
|
|
61
61
|
"dist"
|
|
62
62
|
],
|
|
63
|
-
"commit": "
|
|
63
|
+
"commit": "22905aaf19389dcf64b4c8639abb22db51366c8a"
|
|
64
64
|
}
|