@dcl/content-validator 4.3.0 → 4.3.1-4346672765.commit-51a4f9f
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/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -12
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +60 -24
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/validations/ADR45.d.ts +2 -2
- package/dist/validations/ADR45.d.ts.map +1 -1
- package/dist/validations/ADR45.js +3 -3
- package/dist/validations/ADR45.js.map +1 -1
- package/dist/validations/access/common/items.d.ts +10 -0
- package/dist/validations/access/common/items.d.ts.map +1 -0
- package/dist/validations/access/common/items.js +94 -0
- package/dist/validations/access/common/items.js.map +1 -0
- package/dist/validations/access/common/profiles.d.ts +3 -0
- package/dist/validations/access/common/profiles.d.ts.map +1 -0
- package/dist/validations/access/common/profiles.js +28 -0
- package/dist/validations/access/common/profiles.js.map +1 -0
- package/dist/validations/access/common/stores.d.ts +7 -0
- package/dist/validations/access/common/stores.d.ts.map +1 -0
- package/dist/validations/access/common/stores.js +35 -0
- package/dist/validations/access/common/stores.js.map +1 -0
- package/dist/validations/access/index.d.ts +8 -0
- package/dist/validations/access/index.d.ts.map +1 -0
- package/dist/validations/access/index.js +30 -0
- package/dist/validations/access/index.js.map +1 -0
- package/dist/validations/access/on-chain/client.d.ts +14 -0
- package/dist/validations/access/on-chain/client.d.ts.map +1 -0
- package/dist/validations/access/on-chain/client.js +177 -0
- package/dist/validations/access/on-chain/client.js.map +1 -0
- package/dist/validations/access/on-chain/collection-asset.d.ts +3 -0
- package/dist/validations/access/on-chain/collection-asset.d.ts.map +1 -0
- package/dist/validations/access/on-chain/collection-asset.js +66 -0
- package/dist/validations/access/on-chain/collection-asset.js.map +1 -0
- package/dist/validations/access/on-chain/index.d.ts +4 -0
- package/dist/validations/access/on-chain/index.d.ts.map +1 -0
- package/dist/validations/access/on-chain/index.js +23 -0
- package/dist/validations/access/on-chain/index.js.map +1 -0
- package/dist/validations/access/on-chain/profiles.d.ts +5 -0
- package/dist/validations/access/on-chain/profiles.d.ts.map +1 -0
- package/dist/validations/access/on-chain/profiles.js +84 -0
- package/dist/validations/access/on-chain/profiles.js.map +1 -0
- package/dist/validations/access/on-chain/scenes.d.ts +7 -0
- package/dist/validations/access/on-chain/scenes.d.ts.map +1 -0
- package/dist/validations/access/on-chain/scenes.js +53 -0
- package/dist/validations/access/on-chain/scenes.js.map +1 -0
- package/dist/validations/access/on-chain/third-party-asset.d.ts +3 -0
- package/dist/validations/access/on-chain/third-party-asset.d.ts.map +1 -0
- package/dist/validations/access/on-chain/third-party-asset.js +53 -0
- package/dist/validations/access/on-chain/third-party-asset.js.map +1 -0
- package/dist/validations/access/subgraph/collection-asset.d.ts +15 -0
- package/dist/validations/access/subgraph/collection-asset.d.ts.map +1 -0
- package/dist/validations/{access-checker/items → access/subgraph}/collection-asset.js +10 -13
- package/dist/validations/access/subgraph/collection-asset.js.map +1 -0
- package/dist/validations/access/subgraph/index.d.ts +4 -0
- package/dist/validations/access/subgraph/index.d.ts.map +1 -0
- package/dist/validations/access/subgraph/index.js +23 -0
- package/dist/validations/access/subgraph/index.js.map +1 -0
- package/dist/validations/access/subgraph/profiles.d.ts +5 -0
- package/dist/validations/access/subgraph/profiles.d.ts.map +1 -0
- package/dist/validations/access/subgraph/profiles.js +84 -0
- package/dist/validations/access/subgraph/profiles.js.map +1 -0
- package/dist/validations/access/subgraph/scenes.d.ts +7 -0
- package/dist/validations/access/subgraph/scenes.d.ts.map +1 -0
- package/dist/validations/access/subgraph/scenes.js +262 -0
- package/dist/validations/access/subgraph/scenes.js.map +1 -0
- package/dist/validations/access/subgraph/the-graph-client.d.ts +10 -0
- package/dist/validations/access/subgraph/the-graph-client.d.ts.map +1 -0
- package/dist/validations/access/subgraph/the-graph-client.js.map +1 -0
- package/dist/validations/access/subgraph/third-party-asset.d.ts +3 -0
- package/dist/validations/access/subgraph/third-party-asset.d.ts.map +1 -0
- package/dist/validations/{access-checker/items → access/subgraph}/third-party-asset.js +6 -8
- package/dist/validations/access/subgraph/third-party-asset.js.map +1 -0
- package/dist/validations/content.d.ts +6 -10
- package/dist/validations/content.d.ts.map +1 -1
- package/dist/validations/content.js +29 -24
- package/dist/validations/content.js.map +1 -1
- package/dist/validations/entity-structure.d.ts +2 -2
- package/dist/validations/entity-structure.d.ts.map +1 -1
- package/dist/validations/entity-structure.js +3 -3
- package/dist/validations/entity-structure.js.map +1 -1
- package/dist/validations/index.d.ts +2 -18
- package/dist/validations/index.d.ts.map +1 -1
- package/dist/validations/index.js +20 -15
- package/dist/validations/index.js.map +1 -1
- package/dist/validations/ipfs-hashing.d.ts +1 -2
- package/dist/validations/ipfs-hashing.d.ts.map +1 -1
- package/dist/validations/ipfs-hashing.js +2 -2
- package/dist/validations/ipfs-hashing.js.map +1 -1
- package/dist/validations/items/emotes.d.ts +4 -4
- package/dist/validations/items/emotes.d.ts.map +1 -1
- package/dist/validations/items/emotes.js +6 -6
- package/dist/validations/items/emotes.js.map +1 -1
- package/dist/validations/items/items.d.ts +4 -4
- package/dist/validations/items/items.d.ts.map +1 -1
- package/dist/validations/items/items.js +67 -52
- package/dist/validations/items/items.js.map +1 -1
- package/dist/validations/items/wearables.d.ts +3 -3
- package/dist/validations/items/wearables.d.ts.map +1 -1
- package/dist/validations/items/wearables.js +4 -4
- package/dist/validations/items/wearables.js.map +1 -1
- package/dist/validations/metadata-schema.d.ts +10 -1
- package/dist/validations/metadata-schema.d.ts.map +1 -1
- package/dist/validations/metadata-schema.js +9 -6
- package/dist/validations/metadata-schema.js.map +1 -1
- package/dist/validations/profile.d.ts +7 -10
- package/dist/validations/profile.d.ts.map +1 -1
- package/dist/validations/profile.js +57 -37
- package/dist/validations/profile.js.map +1 -1
- package/dist/validations/scene.d.ts +2 -2
- package/dist/validations/scene.d.ts.map +1 -1
- package/dist/validations/scene.js +8 -7
- package/dist/validations/scene.js.map +1 -1
- package/dist/validations/signature.d.ts +2 -2
- package/dist/validations/signature.d.ts.map +1 -1
- package/dist/validations/signature.js +8 -6
- package/dist/validations/signature.js.map +1 -1
- package/dist/validations/size.d.ts +2 -2
- package/dist/validations/size.d.ts.map +1 -1
- package/dist/validations/size.js +31 -29
- package/dist/validations/size.js.map +1 -1
- package/dist/validations/validations.d.ts.map +1 -1
- package/dist/validations/validations.js +6 -5
- package/dist/validations/validations.js.map +1 -1
- package/package.json +7 -4
- package/dist/the-graph-client/the-graph-client.d.ts +0 -10
- package/dist/the-graph-client/the-graph-client.d.ts.map +0 -1
- package/dist/the-graph-client/the-graph-client.js.map +0 -1
- package/dist/validations/access-checker/access.d.ts +0 -7
- package/dist/validations/access-checker/access.d.ts.map +0 -1
- package/dist/validations/access-checker/access.js +0 -42
- package/dist/validations/access-checker/access.js.map +0 -1
- package/dist/validations/access-checker/emotes.d.ts +0 -3
- package/dist/validations/access-checker/emotes.d.ts.map +0 -1
- package/dist/validations/access-checker/emotes.js +0 -12
- package/dist/validations/access-checker/emotes.js.map +0 -1
- package/dist/validations/access-checker/items/collection-asset.d.ts +0 -15
- package/dist/validations/access-checker/items/collection-asset.d.ts.map +0 -1
- package/dist/validations/access-checker/items/collection-asset.js.map +0 -1
- package/dist/validations/access-checker/items/items.d.ts +0 -11
- package/dist/validations/access-checker/items/items.d.ts.map +0 -1
- package/dist/validations/access-checker/items/items.js +0 -67
- package/dist/validations/access-checker/items/items.js.map +0 -1
- package/dist/validations/access-checker/items/off-chain-asset.d.ts +0 -3
- package/dist/validations/access-checker/items/off-chain-asset.d.ts.map +0 -1
- package/dist/validations/access-checker/items/off-chain-asset.js +0 -17
- package/dist/validations/access-checker/items/off-chain-asset.js.map +0 -1
- package/dist/validations/access-checker/items/third-party-asset.d.ts +0 -3
- package/dist/validations/access-checker/items/third-party-asset.d.ts.map +0 -1
- package/dist/validations/access-checker/items/third-party-asset.js.map +0 -1
- package/dist/validations/access-checker/profiles.d.ts +0 -7
- package/dist/validations/access-checker/profiles.d.ts.map +0 -1
- package/dist/validations/access-checker/profiles.js +0 -114
- package/dist/validations/access-checker/profiles.js.map +0 -1
- package/dist/validations/access-checker/scenes.d.ts +0 -7
- package/dist/validations/access-checker/scenes.d.ts.map +0 -1
- package/dist/validations/access-checker/scenes.js +0 -261
- package/dist/validations/access-checker/scenes.js.map +0 -1
- package/dist/validations/access-checker/stores.d.ts +0 -7
- package/dist/validations/access-checker/stores.d.ts.map +0 -1
- package/dist/validations/access-checker/stores.js +0 -33
- package/dist/validations/access-checker/stores.js.map +0 -1
- package/dist/validations/access-checker/wearables.d.ts +0 -3
- package/dist/validations/access-checker/wearables.d.ts.map +0 -1
- package/dist/validations/access-checker/wearables.js +0 -14
- package/dist/validations/access-checker/wearables.js.map +0 -1
- /package/dist/{the-graph-client → validations/access/subgraph}/the-graph-client.js +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { ContentValidatorComponents,
|
|
2
|
-
export { createTheGraphClient } from './the-graph-client/the-graph-client';
|
|
1
|
+
import { ContentValidatorComponents, ValidateFn } from './types';
|
|
3
2
|
export * from './types';
|
|
4
3
|
export * from './validations';
|
|
5
4
|
/**
|
|
6
5
|
* Creates a validator instance with given external calls.
|
|
7
6
|
* @public
|
|
8
7
|
*/
|
|
9
|
-
export declare const createValidator: (components:
|
|
8
|
+
export declare const createValidator: (components: ContentValidatorComponents) => ValidateFn;
|
|
10
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAM,UAAU,EAAE,MAAM,SAAS,CAAA;AAGpE,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAE7B;;;GAGG;AACH,eAAO,MAAM,eAAe,eAAgB,0BAA0B,KAAG,UAaxE,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -14,11 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.createValidator =
|
|
17
|
+
exports.createValidator = void 0;
|
|
18
18
|
const types_1 = require("./types");
|
|
19
19
|
const validations_1 = require("./validations");
|
|
20
|
-
var the_graph_client_1 = require("./the-graph-client/the-graph-client");
|
|
21
|
-
Object.defineProperty(exports, "createTheGraphClient", { enumerable: true, get: function () { return the_graph_client_1.createTheGraphClient; } });
|
|
22
20
|
__exportStar(require("./types"), exports);
|
|
23
21
|
__exportStar(require("./validations"), exports);
|
|
24
22
|
/**
|
|
@@ -27,17 +25,16 @@ __exportStar(require("./validations"), exports);
|
|
|
27
25
|
*/
|
|
28
26
|
const createValidator = (components) => {
|
|
29
27
|
const logs = components.logs.getLogger('ContentValidator');
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
28
|
+
const validateFns = [...(0, validations_1.createValidateFns)(components), components.accessValidateFn];
|
|
29
|
+
return async function validateFn(deployment) {
|
|
30
|
+
for (const validate of validateFns) {
|
|
31
|
+
const result = await validate(deployment);
|
|
32
|
+
if (!result.ok) {
|
|
33
|
+
logs.debug(`Validation failed:\n${result.errors?.join('\n')}`);
|
|
34
|
+
return result;
|
|
38
35
|
}
|
|
39
|
-
return types_1.OK;
|
|
40
36
|
}
|
|
37
|
+
return types_1.OK;
|
|
41
38
|
};
|
|
42
39
|
};
|
|
43
40
|
exports.createValidator = createValidator;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mCAAoE;AACpE,+CAAiD;AAEjD,0CAAuB;AACvB,gDAA6B;AAE7B;;;GAGG;AACI,MAAM,eAAe,GAAG,CAAC,UAAsC,EAAc,EAAE;IACpF,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAC1D,MAAM,WAAW,GAAG,CAAC,GAAG,IAAA,+BAAiB,EAAC,UAAU,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAA;IACnF,OAAO,KAAK,UAAU,UAAU,CAAC,UAAU;QACzC,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE;YAClC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAA;YACzC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,uBAAuB,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAC9D,OAAO,MAAM,CAAA;aACd;SACF;QACD,OAAO,UAAE,CAAA;IACX,CAAC,CAAA;AACH,CAAC,CAAA;AAbY,QAAA,eAAe,mBAa3B"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { BlockSearch } from '@dcl/block-indexer';
|
|
1
3
|
import { AuthChain, Entity, EthAddress } from '@dcl/schemas';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
4
|
+
import { BlockchainCollectionThirdParty, BlockchainCollectionV1Asset, BlockchainCollectionV2Asset } from '@dcl/urn-resolver';
|
|
5
|
+
import { ILoggerComponent } from '@well-known-components/interfaces';
|
|
6
|
+
import { ISubgraphComponent } from '@well-known-components/thegraph-component';
|
|
7
|
+
import { PermissionResult } from './validations/access/subgraph/the-graph-client';
|
|
5
8
|
/**
|
|
6
9
|
* @public
|
|
7
10
|
*/
|
|
@@ -31,11 +34,6 @@ export declare type DeploymentToValidate = {
|
|
|
31
34
|
files: Map<string, Uint8Array>;
|
|
32
35
|
auditInfo: LocalDeploymentAuditInfo;
|
|
33
36
|
};
|
|
34
|
-
/**
|
|
35
|
-
* Function used to fetch TheGraph
|
|
36
|
-
* @public
|
|
37
|
-
*/
|
|
38
|
-
export declare type QueryGraph = <T = any>(query: string, variables?: Variables, remainingAttempts?: number) => Promise<T>;
|
|
39
37
|
/**
|
|
40
38
|
* External calls interface to be provided by the servers.
|
|
41
39
|
* @public
|
|
@@ -50,19 +48,6 @@ export declare type ExternalCalls = {
|
|
|
50
48
|
ownerAddress: (auditInfo: LocalDeploymentAuditInfo) => string;
|
|
51
49
|
isAddressOwnedByDecentraland: (address: string) => boolean;
|
|
52
50
|
};
|
|
53
|
-
/**
|
|
54
|
-
* Validator interface to be used by any server.
|
|
55
|
-
* @public
|
|
56
|
-
*/
|
|
57
|
-
export interface Validator {
|
|
58
|
-
validate(deployment: DeploymentToValidate): Promise<ValidationResponse>;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* @public
|
|
62
|
-
*/
|
|
63
|
-
export declare type ValidationArgs = {
|
|
64
|
-
deployment: DeploymentToValidate;
|
|
65
|
-
};
|
|
66
51
|
/**
|
|
67
52
|
* @public
|
|
68
53
|
*/
|
|
@@ -73,7 +58,7 @@ export declare type ValidationResponse = {
|
|
|
73
58
|
/**
|
|
74
59
|
* @public
|
|
75
60
|
*/
|
|
76
|
-
export declare type ValidateFn = (
|
|
61
|
+
export declare type ValidateFn = (deployment: DeploymentToValidate) => Promise<ValidationResponse>;
|
|
77
62
|
/**
|
|
78
63
|
* @public
|
|
79
64
|
*/
|
|
@@ -86,6 +71,20 @@ export declare const validationFailed: (...error: string[]) => ValidationRespons
|
|
|
86
71
|
* @public
|
|
87
72
|
*/
|
|
88
73
|
export declare const fromErrors: (...errors: Errors) => ValidationResponse;
|
|
74
|
+
/**
|
|
75
|
+
* @public
|
|
76
|
+
*/
|
|
77
|
+
export declare type L1Checker = {
|
|
78
|
+
checkLAND(ethAddress: string, parcels: [number, number][], block: number): Promise<boolean[]>;
|
|
79
|
+
checkNames(ethAddress: string, names: string[], block: number): Promise<boolean[]>;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* @public
|
|
83
|
+
*/
|
|
84
|
+
export declare type L2Checker = {
|
|
85
|
+
validateWearables(ethAddress: string, contractAddress: string, assetId: string, hashes: string[], block: number): Promise<boolean>;
|
|
86
|
+
validateThirdParty(tpId: string, root: Buffer, block: number): Promise<boolean>;
|
|
87
|
+
};
|
|
89
88
|
/**
|
|
90
89
|
* A list with all sub-graphs used for validations.
|
|
91
90
|
* @public
|
|
@@ -111,6 +110,14 @@ export declare type TheGraphClient = {
|
|
|
111
110
|
ownsItemsAtTimestamp: (ethAddress: EthAddress, urnsToCheck: string[], timestamp: number) => Promise<PermissionResult>;
|
|
112
111
|
findBlocksForTimestamp: (subgraph: ISubgraphComponent, timestamp: number) => Promise<BlockInformation>;
|
|
113
112
|
};
|
|
113
|
+
/**
|
|
114
|
+
* @public
|
|
115
|
+
*/
|
|
116
|
+
export declare type OnChainClient = {
|
|
117
|
+
ownsNamesAtTimestamp: (ethAddress: EthAddress, namesToCheck: string[], timestamp: number) => Promise<PermissionResult>;
|
|
118
|
+
ownsItemsAtTimestamp: (ethAddress: EthAddress, urnsToCheck: string[], timestamp: number) => Promise<PermissionResult>;
|
|
119
|
+
findBlocksForTimestamp: (timestamp: number, blockSearch: BlockSearch) => Promise<BlockInformation>;
|
|
120
|
+
};
|
|
114
121
|
/**
|
|
115
122
|
* @public
|
|
116
123
|
*/
|
|
@@ -123,10 +130,39 @@ export declare type BlockInformation = {
|
|
|
123
130
|
* @public
|
|
124
131
|
*/
|
|
125
132
|
export declare type ContentValidatorComponents = {
|
|
126
|
-
config: IConfigComponent;
|
|
127
133
|
logs: ILoggerComponent;
|
|
128
|
-
theGraphClient: TheGraphClient;
|
|
129
134
|
externalCalls: ExternalCalls;
|
|
135
|
+
accessValidateFn: ValidateFn;
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* @public
|
|
139
|
+
*/
|
|
140
|
+
export declare type SubgraphAccessCheckerComponents = Pick<ContentValidatorComponents, 'logs' | 'externalCalls'> & {
|
|
141
|
+
theGraphClient: TheGraphClient;
|
|
130
142
|
subGraphs: SubGraphs;
|
|
131
143
|
};
|
|
144
|
+
/**
|
|
145
|
+
* @public
|
|
146
|
+
*/
|
|
147
|
+
export declare type OnChainAccessCheckerComponents = Pick<ContentValidatorComponents, 'logs' | 'externalCalls'> & {
|
|
148
|
+
client: OnChainClient;
|
|
149
|
+
L1: {
|
|
150
|
+
checker: L1Checker;
|
|
151
|
+
collections: ISubgraphComponent;
|
|
152
|
+
blockSearch: BlockSearch;
|
|
153
|
+
};
|
|
154
|
+
L2: {
|
|
155
|
+
checker: L2Checker;
|
|
156
|
+
collections: ISubgraphComponent;
|
|
157
|
+
blockSearch: BlockSearch;
|
|
158
|
+
};
|
|
159
|
+
};
|
|
160
|
+
/**
|
|
161
|
+
* @internal
|
|
162
|
+
*/
|
|
163
|
+
export declare type V1andV2collectionAssetValidateFn = (asset: BlockchainCollectionV1Asset | BlockchainCollectionV2Asset, deployment: DeploymentToValidate) => Promise<ValidationResponse>;
|
|
164
|
+
/**
|
|
165
|
+
* @internal
|
|
166
|
+
*/
|
|
167
|
+
export declare type ThirdPartyAssetValidateFn = (asset: BlockchainCollectionThirdParty, deployment: DeploymentToValidate) => Promise<ValidationResponse>;
|
|
132
168
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,
|
|
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":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAwEA;;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,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DeploymentToValidate, ValidationResponse } from '../types';
|
|
2
2
|
/**
|
|
3
3
|
* Validate that entity meets ADR-45 validations
|
|
4
4
|
* @public
|
|
5
5
|
*/
|
|
6
|
-
export declare function
|
|
6
|
+
export declare function adr45ValidateFn(deployment: DeploymentToValidate): Promise<ValidationResponse>;
|
|
7
7
|
//# sourceMappingURL=ADR45.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ADR45.d.ts","sourceRoot":"","sources":["../../src/validations/ADR45.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ADR45.d.ts","sourceRoot":"","sources":["../../src/validations/ADR45.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAwB,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAOzF;;;GAGG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,oBAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAOnG"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.adr45ValidateFn = void 0;
|
|
4
4
|
const types_1 = require("../types");
|
|
5
5
|
const timestamps_1 = require("./timestamps");
|
|
6
6
|
const entityIsNotVersion3 = (entity) => entity.version !== 'v3';
|
|
@@ -9,11 +9,11 @@ const entityWasDeployedAfterADR45 = (entity) => entity.timestamp > timestamps_1.
|
|
|
9
9
|
* Validate that entity meets ADR-45 validations
|
|
10
10
|
* @public
|
|
11
11
|
*/
|
|
12
|
-
function
|
|
12
|
+
async function adr45ValidateFn(deployment) {
|
|
13
13
|
const { entity } = deployment;
|
|
14
14
|
if (entityIsNotVersion3(entity) && entityWasDeployedAfterADR45(entity))
|
|
15
15
|
return (0, types_1.validationFailed)('Only entities v3 are allowed after ADR-45');
|
|
16
16
|
return types_1.OK;
|
|
17
17
|
}
|
|
18
|
-
exports.
|
|
18
|
+
exports.adr45ValidateFn = adr45ValidateFn;
|
|
19
19
|
//# sourceMappingURL=ADR45.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ADR45.js","sourceRoot":"","sources":["../../src/validations/ADR45.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"ADR45.js","sourceRoot":"","sources":["../../src/validations/ADR45.ts"],"names":[],"mappings":";;;AACA,oCAAyF;AACzF,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;AACI,KAAK,UAAU,eAAe,CAAC,UAAgC;IACpE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAA;IAE7B,IAAI,mBAAmB,CAAC,MAAM,CAAC,IAAI,2BAA2B,CAAC,MAAM,CAAC;QACpE,OAAO,IAAA,wBAAgB,EAAC,2CAA2C,CAAC,CAAA;IAEtE,OAAO,UAAE,CAAA;AACX,CAAC;AAPD,0CAOC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BlockchainCollectionThirdParty, BlockchainCollectionV1Asset, BlockchainCollectionV2Asset, OffChainAsset } from '@dcl/urn-resolver';
|
|
2
|
+
import { ThirdPartyAssetValidateFn, V1andV2collectionAssetValidateFn } from '../../..';
|
|
3
|
+
import { ContentValidatorComponents, ValidateFn } from '../../../types';
|
|
4
|
+
export declare type ItemValidateFnComponents = Pick<ContentValidatorComponents, 'externalCalls'>;
|
|
5
|
+
export declare type UrnType = 'off-chain' | 'blockchain-collection-v1-asset' | 'blockchain-collection-v2-asset' | 'blockchain-collection-third-party';
|
|
6
|
+
export declare type SupportedAsset = BlockchainCollectionV1Asset | BlockchainCollectionV2Asset | OffChainAsset | BlockchainCollectionThirdParty;
|
|
7
|
+
export declare function createWearableValidateFn(components: ItemValidateFnComponents, v1andV2collectionAssetValidateFn: V1andV2collectionAssetValidateFn, thirdPartyAssetValidateFn: ThirdPartyAssetValidateFn): ValidateFn;
|
|
8
|
+
export declare function createEmoteValidateFn(components: ItemValidateFnComponents, v1andV2collectionAssetValidateFn: V1andV2collectionAssetValidateFn, thirdPartyAssetValidateFn: ThirdPartyAssetValidateFn): ValidateFn;
|
|
9
|
+
export declare function createItemValidateFn({ externalCalls }: ItemValidateFnComponents, v1andV2collectionAssetValidateFn: V1andV2collectionAssetValidateFn, thirdPartyAssetValidateFn: ThirdPartyAssetValidateFn, validUrnTypesForItem: UrnType[]): ValidateFn;
|
|
10
|
+
//# sourceMappingURL=items.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../../../src/validations/access/common/items.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,2BAA2B,EAC3B,2BAA2B,EAC3B,aAAa,EAEd,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,yBAAyB,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAA;AACtF,OAAO,EACL,0BAA0B,EAG1B,UAAU,EAGX,MAAM,gBAAgB,CAAA;AAEvB,oBAAY,wBAAwB,GAAG,IAAI,CAAC,0BAA0B,EAAE,eAAe,CAAC,CAAA;AAExF,oBAAY,OAAO,GACf,WAAW,GACX,gCAAgC,GAChC,gCAAgC,GAChC,mCAAmC,CAAA;AAEvC,oBAAY,cAAc,GACtB,2BAA2B,GAC3B,2BAA2B,GAC3B,aAAa,GACb,8BAA8B,CAAA;AAoClC,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,wBAAwB,EACpC,gCAAgC,EAAE,gCAAgC,EAClE,yBAAyB,EAAE,yBAAyB,GACnD,UAAU,CAOZ;AAED,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,wBAAwB,EACpC,gCAAgC,EAAE,gCAAgC,EAClE,yBAAyB,EAAE,yBAAyB,GACnD,UAAU,CAKZ;AAED,wBAAgB,oBAAoB,CAClC,EAAE,aAAa,EAAE,EAAE,wBAAwB,EAC3C,gCAAgC,EAAE,gCAAgC,EAClE,yBAAyB,EAAE,yBAAyB,EACpD,oBAAoB,EAAE,OAAO,EAAE,GAC9B,UAAU,CAiDZ"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createItemValidateFn = exports.createEmoteValidateFn = exports.createWearableValidateFn = void 0;
|
|
4
|
+
const urn_resolver_1 = require("@dcl/urn-resolver");
|
|
5
|
+
const types_1 = require("../../../types");
|
|
6
|
+
function alreadySeen(resolvedPointers, parsed) {
|
|
7
|
+
return resolvedPointers.some((alreadyResolved) => resolveSameUrn(alreadyResolved, parsed));
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* This method returns true if the two assets are the same except for its uri.
|
|
11
|
+
* For example, urns for collection v1 wearables can have a 'contractAddress' OR 'collectionName'
|
|
12
|
+
* in the uri but reference the same asset.
|
|
13
|
+
*/
|
|
14
|
+
function resolveSameUrn(alreadyParsed, parsed) {
|
|
15
|
+
const { ['uri']: uri1, ...alreadyParsedWithoutUri } = alreadyParsed;
|
|
16
|
+
const { ['uri']: uri2, ...parsedWithoutUri } = parsed;
|
|
17
|
+
return JSON.stringify(parsedWithoutUri) == JSON.stringify(alreadyParsedWithoutUri);
|
|
18
|
+
}
|
|
19
|
+
async function parseUrnNoFail(urn) {
|
|
20
|
+
try {
|
|
21
|
+
const parsed = await (0, urn_resolver_1.parseUrn)(urn);
|
|
22
|
+
if (parsed?.type === 'blockchain-collection-v1-asset') {
|
|
23
|
+
return parsed;
|
|
24
|
+
}
|
|
25
|
+
if (parsed?.type === 'blockchain-collection-v2-asset') {
|
|
26
|
+
return parsed;
|
|
27
|
+
}
|
|
28
|
+
if (parsed?.type === 'off-chain') {
|
|
29
|
+
return parsed;
|
|
30
|
+
}
|
|
31
|
+
if (parsed?.type === 'blockchain-collection-third-party') {
|
|
32
|
+
return parsed;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
catch { }
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
function createWearableValidateFn(components, v1andV2collectionAssetValidateFn, thirdPartyAssetValidateFn) {
|
|
39
|
+
return createItemValidateFn(components, v1andV2collectionAssetValidateFn, thirdPartyAssetValidateFn, [
|
|
40
|
+
'off-chain',
|
|
41
|
+
'blockchain-collection-v1-asset',
|
|
42
|
+
'blockchain-collection-v2-asset',
|
|
43
|
+
'blockchain-collection-third-party'
|
|
44
|
+
]);
|
|
45
|
+
}
|
|
46
|
+
exports.createWearableValidateFn = createWearableValidateFn;
|
|
47
|
+
function createEmoteValidateFn(components, v1andV2collectionAssetValidateFn, thirdPartyAssetValidateFn) {
|
|
48
|
+
return createItemValidateFn(components, v1andV2collectionAssetValidateFn, thirdPartyAssetValidateFn, [
|
|
49
|
+
'blockchain-collection-v2-asset',
|
|
50
|
+
'blockchain-collection-third-party'
|
|
51
|
+
]);
|
|
52
|
+
}
|
|
53
|
+
exports.createEmoteValidateFn = createEmoteValidateFn;
|
|
54
|
+
function createItemValidateFn({ externalCalls }, v1andV2collectionAssetValidateFn, thirdPartyAssetValidateFn, validUrnTypesForItem) {
|
|
55
|
+
return async function validateFn(deployment) {
|
|
56
|
+
const { pointers } = deployment.entity;
|
|
57
|
+
const resolvedPointers = [];
|
|
58
|
+
// deduplicate pointer resolution
|
|
59
|
+
for (const pointer of pointers) {
|
|
60
|
+
const parsed = await parseUrnNoFail(pointer);
|
|
61
|
+
if (!parsed) {
|
|
62
|
+
return (0, types_1.validationFailed)(`Item pointers should be a urn, for example (urn:decentraland:{protocol}:collections-v2:{contract(0x[a-fA-F0-9]+)}:{id}). Invalid pointer: (${pointer})`);
|
|
63
|
+
}
|
|
64
|
+
if (!alreadySeen(resolvedPointers, parsed)) {
|
|
65
|
+
resolvedPointers.push(parsed);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (resolvedPointers.length > 1) {
|
|
69
|
+
return (0, types_1.validationFailed)(`Only one pointer is allowed when you create an item. Received: ${pointers}`);
|
|
70
|
+
}
|
|
71
|
+
const parsedAsset = resolvedPointers[0];
|
|
72
|
+
if (!validUrnTypesForItem.includes(parsedAsset.type)) {
|
|
73
|
+
return (0, types_1.validationFailed)(`For the entity type: ${deployment.entity.type}, the asset with urn type: ${parsedAsset.type} is invalid. Valid urn types for this entity: ${validUrnTypesForItem}`);
|
|
74
|
+
}
|
|
75
|
+
if (parsedAsset.type === 'off-chain') {
|
|
76
|
+
const ethAddress = externalCalls.ownerAddress(deployment.auditInfo);
|
|
77
|
+
if (!externalCalls.isAddressOwnedByDecentraland(ethAddress))
|
|
78
|
+
return (0, types_1.validationFailed)(`The provided Eth Address '${ethAddress}' does not have access to the following item: '${parsedAsset.uri}'`);
|
|
79
|
+
return types_1.OK;
|
|
80
|
+
}
|
|
81
|
+
else if (parsedAsset.type === 'blockchain-collection-v1-asset' ||
|
|
82
|
+
parsedAsset.type === 'blockchain-collection-v2-asset') {
|
|
83
|
+
return v1andV2collectionAssetValidateFn(parsedAsset, deployment);
|
|
84
|
+
}
|
|
85
|
+
else if (parsedAsset.type === 'blockchain-collection-third-party') {
|
|
86
|
+
return thirdPartyAssetValidateFn(parsedAsset, deployment);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
throw new Error('This should never happen. There is no validations for the asset.');
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
exports.createItemValidateFn = createItemValidateFn;
|
|
94
|
+
//# sourceMappingURL=items.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"items.js","sourceRoot":"","sources":["../../../../src/validations/access/common/items.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../../src/validations/access/common/profiles.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,EAG1B,UAAU,EAGX,MAAM,gBAAgB,CAAA;AAEvB,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,IAAI,CAAC,0BAA0B,EAAE,eAAe,CAAC,GAAG,UAAU,CAuBjH"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createPointerValidateFn = void 0;
|
|
4
|
+
const schemas_1 = require("@dcl/schemas");
|
|
5
|
+
const types_1 = require("../../../types");
|
|
6
|
+
function createPointerValidateFn(components) {
|
|
7
|
+
return async function validateFn(deployment) {
|
|
8
|
+
const pointers = deployment.entity.pointers;
|
|
9
|
+
const ethAddress = components.externalCalls.ownerAddress(deployment.auditInfo);
|
|
10
|
+
if (pointers.length !== 1) {
|
|
11
|
+
return (0, types_1.validationFailed)(`Only one pointer is allowed when you create a Profile. Received: ${pointers}`);
|
|
12
|
+
}
|
|
13
|
+
const pointer = pointers[0].toLowerCase();
|
|
14
|
+
if (pointer.startsWith('default')) {
|
|
15
|
+
if (!components.externalCalls.isAddressOwnedByDecentraland(ethAddress))
|
|
16
|
+
return (0, types_1.validationFailed)(`Only Decentraland can add or modify default profiles`);
|
|
17
|
+
}
|
|
18
|
+
else if (!schemas_1.EthAddress.validate(pointer)) {
|
|
19
|
+
return (0, types_1.validationFailed)(`The given pointer is not a valid ethereum address.`);
|
|
20
|
+
}
|
|
21
|
+
else if (pointer !== ethAddress.toLowerCase()) {
|
|
22
|
+
return (0, types_1.validationFailed)(`You can only alter your own profile. The pointer address and the signer address are different (pointer:${pointer} signer: ${ethAddress.toLowerCase()}).`);
|
|
23
|
+
}
|
|
24
|
+
return types_1.OK;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
exports.createPointerValidateFn = createPointerValidateFn;
|
|
28
|
+
//# sourceMappingURL=profiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../../../src/validations/access/common/profiles.ts"],"names":[],"mappings":";;;AAAA,0CAAyC;AACzC,0CAOuB;AAEvB,SAAgB,uBAAuB,CAAC,UAA6D;IACnG,OAAO,KAAK,UAAU,UAAU,CAAC,UAAgC;QAC/D,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAA;QAC3C,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAE9E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YACzB,OAAO,IAAA,wBAAgB,EAAC,oEAAoE,QAAQ,EAAE,CAAC,CAAA;SACxG;QAED,MAAM,OAAO,GAAW,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;QAEjD,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;YACjC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,4BAA4B,CAAC,UAAU,CAAC;gBACpE,OAAO,IAAA,wBAAgB,EAAC,sDAAsD,CAAC,CAAA;SAClF;aAAM,IAAI,CAAC,oBAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;YACxC,OAAO,IAAA,wBAAgB,EAAC,oDAAoD,CAAC,CAAA;SAC9E;aAAM,IAAI,OAAO,KAAK,UAAU,CAAC,WAAW,EAAE,EAAE;YAC/C,OAAO,IAAA,wBAAgB,EACrB,0GAA0G,OAAO,YAAY,UAAU,CAAC,WAAW,EAAE,IAAI,CAC1J,CAAA;SACF;QACD,OAAO,UAAE,CAAA;IACX,CAAC,CAAA;AACH,CAAC;AAvBD,0DAuBC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ContentValidatorComponents, ValidateFn } from '../../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Validate that the pointers are valid, and that the Ethereum address has write access to them
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export declare function createStoreValidateFn({ externalCalls }: Pick<ContentValidatorComponents, 'externalCalls'>): ValidateFn;
|
|
7
|
+
//# sourceMappingURL=stores.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../../../../src/validations/access/common/stores.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,EAG1B,UAAU,EAGX,MAAM,gBAAgB,CAAA;AAUvB;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,aAAa,EACd,EAAE,IAAI,CAAC,0BAA0B,EAAE,eAAe,CAAC,GAAG,UAAU,CAuBhE"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createStoreValidateFn = void 0;
|
|
4
|
+
const urn_resolver_1 = require("@dcl/urn-resolver");
|
|
5
|
+
const types_1 = require("../../../types");
|
|
6
|
+
async function parseUrnNoFail(pointer) {
|
|
7
|
+
try {
|
|
8
|
+
const parsed = await (0, urn_resolver_1.parseUrn)(pointer);
|
|
9
|
+
if (!parsed || parsed?.type !== 'off-chain')
|
|
10
|
+
return undefined;
|
|
11
|
+
return parsed;
|
|
12
|
+
}
|
|
13
|
+
catch { }
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Validate that the pointers are valid, and that the Ethereum address has write access to them
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
19
|
+
function createStoreValidateFn({ externalCalls }) {
|
|
20
|
+
return async function validateFn(deployment) {
|
|
21
|
+
const pointers = deployment.entity.pointers;
|
|
22
|
+
const ethAddress = externalCalls.ownerAddress(deployment.auditInfo);
|
|
23
|
+
if (pointers.length !== 1)
|
|
24
|
+
return (0, types_1.validationFailed)(`Only one pointer is allowed when you create a Store. Received: ${pointers}`);
|
|
25
|
+
const pointer = pointers[0].toLowerCase();
|
|
26
|
+
const offchainAsset = await parseUrnNoFail(pointer);
|
|
27
|
+
if (!offchainAsset)
|
|
28
|
+
return (0, types_1.validationFailed)(`Store pointers should be a urn, for example (urn:decentraland:off-chain:marketplace-stores:{address}). Invalid pointer: ${pointer}`);
|
|
29
|
+
if (offchainAsset.id !== ethAddress)
|
|
30
|
+
return (0, types_1.validationFailed)(`You can only alter your own store. The pointer address and the signer address are different (address:${offchainAsset.id.toLowerCase()} signer: ${ethAddress.toLowerCase()}).`);
|
|
31
|
+
return types_1.OK;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
exports.createStoreValidateFn = createStoreValidateFn;
|
|
35
|
+
//# sourceMappingURL=stores.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stores.js","sourceRoot":"","sources":["../../../../src/validations/access/common/stores.ts"],"names":[],"mappings":";;;AAAA,oDAA2D;AAC3D,0CAOuB;AAEvB,KAAK,UAAU,cAAc,CAAC,OAAe;IAC3C,IAAI;QACF,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAQ,EAAC,OAAO,CAAC,CAAA;QACtC,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,IAAI,KAAK,WAAW;YAAE,OAAO,SAAS,CAAA;QAC7D,OAAO,MAAM,CAAA;KACd;IAAC,MAAM,GAAE;AACZ,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,EACpC,aAAa,EACqC;IAClD,OAAO,KAAK,UAAU,UAAU,CAAC,UAAgC;QAC/D,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAA;QAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAEnE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YACvB,OAAO,IAAA,wBAAgB,EAAC,kEAAkE,QAAQ,EAAE,CAAC,CAAA;QAEvG,MAAM,OAAO,GAAW,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;QACjD,MAAM,aAAa,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAA;QAEnD,IAAI,CAAC,aAAa;YAChB,OAAO,IAAA,wBAAgB,EACrB,2HAA2H,OAAO,EAAE,CACrI,CAAA;QAEH,IAAI,aAAa,CAAC,EAAE,KAAK,UAAU;YACjC,OAAO,IAAA,wBAAgB,EACrB,wGAAwG,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,UAAU,CAAC,WAAW,EAAE,IAAI,CAC/K,CAAA;QAEH,OAAO,UAAE,CAAA;IACX,CAAC,CAAA;AACH,CAAC;AAzBD,sDAyBC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { EntityType } from '@dcl/schemas';
|
|
2
|
+
import { ContentValidatorComponents, ValidateFn } from '../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Validate that the pointers are valid, and that the Ethereum address has write access to them
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export declare function createAccessValidateFn(components: Pick<ContentValidatorComponents, 'externalCalls'>, accessValidateFns: Record<EntityType, ValidateFn>): ValidateFn;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/validations/access/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EACL,0BAA0B,EAG1B,UAAU,EAGX,MAAM,aAAa,CAAA;AAGpB;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,IAAI,CAAC,0BAA0B,EAAE,eAAe,CAAC,EAC7D,iBAAiB,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAChD,UAAU,CAwBZ"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createAccessValidateFn = void 0;
|
|
4
|
+
const schemas_1 = require("@dcl/schemas");
|
|
5
|
+
const types_1 = require("../../types");
|
|
6
|
+
const timestamps_1 = require("../timestamps");
|
|
7
|
+
/**
|
|
8
|
+
* Validate that the pointers are valid, and that the Ethereum address has write access to them
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
function createAccessValidateFn(components, accessValidateFns) {
|
|
12
|
+
const { externalCalls } = components;
|
|
13
|
+
return async function validateFn(deployment) {
|
|
14
|
+
const deployedBeforeDCLLaunch = deployment.entity.timestamp <= timestamps_1.LEGACY_CONTENT_MIGRATION_TIMESTAMP;
|
|
15
|
+
const address = externalCalls.ownerAddress(deployment.auditInfo);
|
|
16
|
+
const isDefaultScene = deployment.entity.type === schemas_1.EntityType.SCENE &&
|
|
17
|
+
deployment.entity.pointers.some((p) => p.toLowerCase().startsWith('default'));
|
|
18
|
+
// Default scenes were removed from the Content Servers after https://github.com/decentraland/catalyst/issues/878
|
|
19
|
+
if (isDefaultScene) {
|
|
20
|
+
return (0, types_1.validationFailed)(`Scene pointers should only contain two integers separated by a comma, for example (10,10) or (120,-45).`);
|
|
21
|
+
}
|
|
22
|
+
// Legacy entities still need to be synchronized
|
|
23
|
+
if (deployedBeforeDCLLaunch && externalCalls.isAddressOwnedByDecentraland(address)) {
|
|
24
|
+
return types_1.OK;
|
|
25
|
+
}
|
|
26
|
+
return accessValidateFns[deployment.entity.type](deployment);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
exports.createAccessValidateFn = createAccessValidateFn;
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validations/access/index.ts"],"names":[],"mappings":";;;AAAA,0CAAyC;AACzC,uCAOoB;AACpB,8CAAkE;AAElE;;;GAGG;AACH,SAAgB,sBAAsB,CACpC,UAA6D,EAC7D,iBAAiD;IAEjD,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,CAAA;IAEpC,OAAO,KAAK,UAAU,UAAU,CAAC,UAAgC;QAC/D,MAAM,uBAAuB,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,IAAI,+CAAkC,CAAA;QACjG,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAEhE,MAAM,cAAc,GAClB,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,oBAAU,CAAC,KAAK;YAC3C,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;QAE/E,iHAAiH;QACjH,IAAI,cAAc,EAAE;YAClB,OAAO,IAAA,wBAAgB,EACrB,yGAAyG,CAC1G,CAAA;SACF;QACD,gDAAgD;QAChD,IAAI,uBAAuB,IAAI,aAAa,CAAC,4BAA4B,CAAC,OAAO,CAAC,EAAE;YAClF,OAAO,UAAE,CAAA;SACV;QAED,OAAO,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAA;IAC9D,CAAC,CAAA;AACH,CAAC;AA3BD,wDA2BC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { OnChainAccessCheckerComponents, OnChainClient } from '../../../types';
|
|
2
|
+
export declare type PermissionResult = {
|
|
3
|
+
result: boolean;
|
|
4
|
+
failing?: string[];
|
|
5
|
+
};
|
|
6
|
+
export declare function timestampBounds(timestampMs: number): {
|
|
7
|
+
upper: number;
|
|
8
|
+
lower: number;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* @public
|
|
12
|
+
*/
|
|
13
|
+
export declare const createOnChainClient: (components: Pick<OnChainAccessCheckerComponents, 'logs' | 'L1' | 'L2'>) => OnChainClient;
|
|
14
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/validations/access/on-chain/client.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,8BAA8B,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAEhG,oBAAY,gBAAgB,GAAG;IAC7B,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB,CAAA;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM;;;EAYlD;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,eAClB,KAAK,8BAA8B,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,KACrE,aA2MF,CAAA"}
|