@dcl/content-validator 4.13.3-8265154044.commit-b4783ee → 4.14.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.
- package/dist/types.d.ts +8 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/validations/access/on-chain/client.d.ts +1 -1
- package/dist/validations/access/on-chain/client.d.ts.map +1 -1
- package/dist/validations/access/on-chain/client.js +49 -82
- package/dist/validations/access/on-chain/client.js.map +1 -1
- package/package.json +2 -2
package/dist/types.d.ts
CHANGED
|
@@ -87,6 +87,12 @@ export type L2Checker = {
|
|
|
87
87
|
validateWearables(ethAddress: string, contractAddress: string, assetId: string, hashes: string[], block: number): Promise<boolean>;
|
|
88
88
|
validateThirdParty(tpId: string, root: Buffer, block: number): Promise<boolean>;
|
|
89
89
|
};
|
|
90
|
+
/**
|
|
91
|
+
* @public
|
|
92
|
+
*/
|
|
93
|
+
export type ItemChecker = {
|
|
94
|
+
checkItems(ethAddress: string, items: string[], block: number): Promise<boolean[]>;
|
|
95
|
+
};
|
|
90
96
|
/**
|
|
91
97
|
* A list with all sub-graphs used for validations.
|
|
92
98
|
* @public
|
|
@@ -161,12 +167,12 @@ export type OnChainAccessCheckerComponents = Pick<ContentValidatorComponents, 'l
|
|
|
161
167
|
client: OnChainClient;
|
|
162
168
|
L1: {
|
|
163
169
|
checker: L1Checker;
|
|
164
|
-
collections:
|
|
170
|
+
collections: ItemChecker;
|
|
165
171
|
blockSearch: BlockSearch;
|
|
166
172
|
};
|
|
167
173
|
L2: {
|
|
168
174
|
checker: L2Checker;
|
|
169
|
-
collections:
|
|
175
|
+
collections: ItemChecker;
|
|
170
176
|
blockSearch: BlockSearch;
|
|
171
177
|
};
|
|
172
178
|
};
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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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"}
|
|
@@ -10,5 +10,5 @@ export declare function timestampBounds(timestampMs: number): {
|
|
|
10
10
|
/**
|
|
11
11
|
* @public
|
|
12
12
|
*/
|
|
13
|
-
export declare
|
|
13
|
+
export declare function createOnChainClient(components: Pick<OnChainAccessCheckerComponents, 'logs' | 'L1' | 'L2'>): OnChainClient;
|
|
14
14
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/validations/access/on-chain/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/validations/access/on-chain/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiC,8BAA8B,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAG7G,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAaD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM;;;EAYlD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,IAAI,CAAC,8BAA8B,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,GACrE,aAAa,CAmKf"}
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createOnChainClient = exports.timestampBounds = void 0;
|
|
4
|
-
const urn_resolver_1 = require("@dcl/urn-resolver");
|
|
5
4
|
const utils_1 = require("../../../utils");
|
|
5
|
+
function permissionOk() {
|
|
6
|
+
return { result: true };
|
|
7
|
+
}
|
|
8
|
+
function permissionError(failing) {
|
|
9
|
+
return {
|
|
10
|
+
result: false,
|
|
11
|
+
failing: failing
|
|
12
|
+
};
|
|
13
|
+
}
|
|
6
14
|
function timestampBounds(timestampMs) {
|
|
7
15
|
/*
|
|
8
16
|
* This mimics the original behavior of looking up to 8 seconds after the entity timestamp
|
|
@@ -19,14 +27,14 @@ exports.timestampBounds = timestampBounds;
|
|
|
19
27
|
/**
|
|
20
28
|
* @public
|
|
21
29
|
*/
|
|
22
|
-
|
|
30
|
+
function createOnChainClient(components) {
|
|
23
31
|
const logger = components.logs.getLogger('OnChainClient');
|
|
24
|
-
|
|
32
|
+
async function ownsNamesAtTimestamp(ethAddress, namesToCheck, timestamp) {
|
|
25
33
|
if (namesToCheck.length === 0) {
|
|
26
34
|
return permissionOk();
|
|
27
35
|
}
|
|
28
36
|
const blocks = await findBlocksForTimestamp(timestamp, components.L1.blockSearch);
|
|
29
|
-
|
|
37
|
+
async function hasPermissionOnBlock(blockNumber) {
|
|
30
38
|
if (!blockNumber) {
|
|
31
39
|
return permissionError();
|
|
32
40
|
}
|
|
@@ -44,103 +52,73 @@ const createOnChainClient = (components) => {
|
|
|
44
52
|
logger.error(`Error retrieving names owned by address ${ethAddress} at block ${blockNumber}`);
|
|
45
53
|
return permissionError();
|
|
46
54
|
}
|
|
47
|
-
}
|
|
55
|
+
}
|
|
48
56
|
const permissionMostRecentBlock = await hasPermissionOnBlock(blocks.blockNumberAtDeployment);
|
|
49
57
|
if (permissionMostRecentBlock.result) {
|
|
50
58
|
return permissionMostRecentBlock;
|
|
51
59
|
}
|
|
52
60
|
return await hasPermissionOnBlock(blocks.blockNumberFiveMinBeforeDeployment);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
const permissionError = (failing) => ({
|
|
56
|
-
result: false,
|
|
57
|
-
failing: failing
|
|
58
|
-
});
|
|
59
|
-
const ownsItemsAtTimestamp = async (ethAddress, urnsToCheck, timestamp) => {
|
|
61
|
+
}
|
|
62
|
+
async function ownsItemsAtTimestamp(ethAddress, urnsToCheck, timestamp) {
|
|
60
63
|
if (urnsToCheck.length === 0) {
|
|
61
64
|
return permissionOk();
|
|
62
65
|
}
|
|
63
66
|
const { ethereum, matic } = await (0, utils_1.splitItemsURNsByNetwork)(urnsToCheck);
|
|
64
|
-
const
|
|
65
|
-
|
|
67
|
+
const ignoredSet = new Set([
|
|
68
|
+
...ethereum.filter(({ type }) => type === 'blockchain-collection-v1-asset').map(({ urn }) => urn),
|
|
69
|
+
...matic.filter(({ type }) => type === 'blockchain-collection-v2-asset').map(({ urn }) => urn)
|
|
70
|
+
]);
|
|
71
|
+
if (ignoredSet.size > 0) {
|
|
72
|
+
logger.info(`Ignoring these assets, considering them as "owned" by the address: ${[...ignoredSet]}`);
|
|
73
|
+
}
|
|
74
|
+
const filteredEthereum = ethereum
|
|
75
|
+
.filter(({ type }) => type !== 'blockchain-collection-v1-asset')
|
|
76
|
+
.map(({ urn }) => urn);
|
|
77
|
+
const filteredMatic = matic.filter(({ type }) => type !== 'blockchain-collection-v2-asset').map(({ urn }) => urn);
|
|
66
78
|
const [ethereumItemsOwnership, maticItemsOwnership] = await Promise.all([
|
|
67
|
-
|
|
68
|
-
|
|
79
|
+
ownsItemsAtTimestampInBlockchain(ethAddress, filteredEthereum, timestamp, components.L1.collections, components.L1.blockSearch),
|
|
80
|
+
ownsItemsAtTimestampInBlockchain(ethAddress, filteredMatic, timestamp, components.L2.collections, components.L2.blockSearch)
|
|
69
81
|
]);
|
|
70
|
-
if (ethereumItemsOwnership.result && maticItemsOwnership.result)
|
|
82
|
+
if (ethereumItemsOwnership.result && maticItemsOwnership.result) {
|
|
71
83
|
return permissionOk();
|
|
84
|
+
}
|
|
72
85
|
else {
|
|
73
86
|
return permissionError([...(ethereumItemsOwnership.failing ?? []), ...(maticItemsOwnership.failing ?? [])]);
|
|
74
87
|
}
|
|
75
|
-
}
|
|
76
|
-
|
|
88
|
+
}
|
|
89
|
+
async function ownsItemsAtTimestampInBlockchain(ethAddress, urnsToCheck, timestamp, itemChecker, blockSearch) {
|
|
77
90
|
if (urnsToCheck.length === 0) {
|
|
78
91
|
return permissionOk();
|
|
79
92
|
}
|
|
80
|
-
const urnsToQuery = urnsToCheck.map((urn) => {
|
|
81
|
-
if (urn.type === 'blockchain-collection-v1-item' || urn.type === 'blockchain-collection-v2-item') {
|
|
82
|
-
// Urns that need to be split into urn and tokenId
|
|
83
|
-
const { assetUrn } = (0, urn_resolver_1.getTokenIdAndAssetUrn)(urn.urn);
|
|
84
|
-
return assetUrn;
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
return urn.urn;
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
93
|
const blocks = await findBlocksForTimestamp(timestamp, blockSearch);
|
|
91
|
-
|
|
94
|
+
async function hasPermissionOnBlock(blockNumber) {
|
|
92
95
|
if (!blockNumber) {
|
|
93
96
|
return permissionError();
|
|
94
97
|
}
|
|
95
|
-
const runOwnedItemsOnBlockQuery = async (blockNumber) => {
|
|
96
|
-
const query = {
|
|
97
|
-
description: 'check for items ownership',
|
|
98
|
-
subgraph: collectionsSubgraph,
|
|
99
|
-
query: QUERY_ITEMS_FOR_ADDRESS_AT_BLOCK,
|
|
100
|
-
mapper: (response) => new Set(response.items.map(({ urn, tokenId }) => ({
|
|
101
|
-
urn,
|
|
102
|
-
tokenId
|
|
103
|
-
})))
|
|
104
|
-
};
|
|
105
|
-
return runQuery(query, {
|
|
106
|
-
block: blockNumber,
|
|
107
|
-
ethAddress: ethAddress.toLowerCase(),
|
|
108
|
-
urnList: urnsToQuery
|
|
109
|
-
});
|
|
110
|
-
};
|
|
111
98
|
try {
|
|
112
|
-
|
|
113
|
-
const
|
|
114
|
-
const notOwned = [];
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
else if (!ownedItemsArray.some((item) => item.urn === urn.urn)) {
|
|
123
|
-
notOwned.push(urn.urn);
|
|
124
|
-
}
|
|
99
|
+
logger.debug(`Checking items owned by address ${ethAddress} at block ${blockNumber}: ${urnsToCheck}`);
|
|
100
|
+
const result = await itemChecker.checkItems(ethAddress, urnsToCheck, blockNumber);
|
|
101
|
+
const notOwned = urnsToCheck.filter((_, i) => !result[i]);
|
|
102
|
+
if (notOwned.length > 0) {
|
|
103
|
+
logger.info(`Not owned: ${notOwned}`);
|
|
104
|
+
return permissionError(notOwned);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
return permissionOk();
|
|
125
108
|
}
|
|
126
|
-
return notOwned.length > 0 ? permissionError(notOwned) : permissionOk();
|
|
127
109
|
}
|
|
128
|
-
catch (
|
|
129
|
-
logger.
|
|
110
|
+
catch (e) {
|
|
111
|
+
logger.warn(`Error retrieving items owned by address ${ethAddress} at block ${blockNumber}: ${e.message}`);
|
|
130
112
|
return permissionError();
|
|
131
113
|
}
|
|
132
|
-
}
|
|
114
|
+
}
|
|
133
115
|
const permissionMostRecentBlock = await hasPermissionOnBlock(blocks.blockNumberAtDeployment);
|
|
134
116
|
if (permissionMostRecentBlock.result) {
|
|
135
117
|
return permissionMostRecentBlock;
|
|
136
118
|
}
|
|
137
119
|
return await hasPermissionOnBlock(blocks.blockNumberFiveMinBeforeDeployment);
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
const response = await query.subgraph.query(query.query, variables);
|
|
141
|
-
return query.mapper(response);
|
|
142
|
-
};
|
|
143
|
-
const findBlocksForTimestamp = async (timestamp, blockSearch) => {
|
|
120
|
+
}
|
|
121
|
+
async function findBlocksForTimestamp(timestamp, blockSearch) {
|
|
144
122
|
const { lower, upper } = timestampBounds(timestamp);
|
|
145
123
|
const result = await Promise.all([
|
|
146
124
|
blockSearch.findBlockForTimestamp(upper),
|
|
@@ -159,23 +137,12 @@ const createOnChainClient = (components) => {
|
|
|
159
137
|
blockNumberAtDeployment: blockNumberAtDeployment?.block,
|
|
160
138
|
blockNumberFiveMinBeforeDeployment: blockNumberFiveMinBeforeDeployment?.block
|
|
161
139
|
};
|
|
162
|
-
}
|
|
140
|
+
}
|
|
163
141
|
return {
|
|
164
142
|
ownsNamesAtTimestamp,
|
|
165
143
|
ownsItemsAtTimestamp,
|
|
166
144
|
findBlocksForTimestamp
|
|
167
145
|
};
|
|
168
|
-
}
|
|
146
|
+
}
|
|
169
147
|
exports.createOnChainClient = createOnChainClient;
|
|
170
|
-
const QUERY_ITEMS_FOR_ADDRESS_AT_BLOCK = `
|
|
171
|
-
query getNftItemsForBlock($block: Int!, $ethAddress: String!, $urnList: [String!]) {
|
|
172
|
-
items: nfts(
|
|
173
|
-
block: {number: $block}
|
|
174
|
-
where: {owner: $ethAddress, searchItemType_in: ["wearable_v1", "wearable_v2", "smart_wearable_v1", "emote_v1"] urn_in: $urnList}
|
|
175
|
-
first: 1000
|
|
176
|
-
) {
|
|
177
|
-
urn
|
|
178
|
-
tokenId
|
|
179
|
-
}
|
|
180
|
-
}`;
|
|
181
148
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/validations/access/on-chain/client.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/validations/access/on-chain/client.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.
|
|
3
|
+
"version": "4.14.0",
|
|
4
4
|
"description": "Catalyst content validations",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"files": [
|
|
56
56
|
"dist"
|
|
57
57
|
],
|
|
58
|
-
"commit": "
|
|
58
|
+
"commit": "8a4c38ffd37ad4c335159e1fcf2e11d287798d9e"
|
|
59
59
|
}
|