@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.
Files changed (168) hide show
  1. package/dist/index.d.ts +2 -3
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +9 -12
  4. package/dist/index.js.map +1 -1
  5. package/dist/types.d.ts +60 -24
  6. package/dist/types.d.ts.map +1 -1
  7. package/dist/types.js.map +1 -1
  8. package/dist/validations/ADR45.d.ts +2 -2
  9. package/dist/validations/ADR45.d.ts.map +1 -1
  10. package/dist/validations/ADR45.js +3 -3
  11. package/dist/validations/ADR45.js.map +1 -1
  12. package/dist/validations/access/common/items.d.ts +10 -0
  13. package/dist/validations/access/common/items.d.ts.map +1 -0
  14. package/dist/validations/access/common/items.js +94 -0
  15. package/dist/validations/access/common/items.js.map +1 -0
  16. package/dist/validations/access/common/profiles.d.ts +3 -0
  17. package/dist/validations/access/common/profiles.d.ts.map +1 -0
  18. package/dist/validations/access/common/profiles.js +28 -0
  19. package/dist/validations/access/common/profiles.js.map +1 -0
  20. package/dist/validations/access/common/stores.d.ts +7 -0
  21. package/dist/validations/access/common/stores.d.ts.map +1 -0
  22. package/dist/validations/access/common/stores.js +35 -0
  23. package/dist/validations/access/common/stores.js.map +1 -0
  24. package/dist/validations/access/index.d.ts +8 -0
  25. package/dist/validations/access/index.d.ts.map +1 -0
  26. package/dist/validations/access/index.js +30 -0
  27. package/dist/validations/access/index.js.map +1 -0
  28. package/dist/validations/access/on-chain/client.d.ts +14 -0
  29. package/dist/validations/access/on-chain/client.d.ts.map +1 -0
  30. package/dist/validations/access/on-chain/client.js +177 -0
  31. package/dist/validations/access/on-chain/client.js.map +1 -0
  32. package/dist/validations/access/on-chain/collection-asset.d.ts +3 -0
  33. package/dist/validations/access/on-chain/collection-asset.d.ts.map +1 -0
  34. package/dist/validations/access/on-chain/collection-asset.js +66 -0
  35. package/dist/validations/access/on-chain/collection-asset.js.map +1 -0
  36. package/dist/validations/access/on-chain/index.d.ts +4 -0
  37. package/dist/validations/access/on-chain/index.d.ts.map +1 -0
  38. package/dist/validations/access/on-chain/index.js +23 -0
  39. package/dist/validations/access/on-chain/index.js.map +1 -0
  40. package/dist/validations/access/on-chain/profiles.d.ts +5 -0
  41. package/dist/validations/access/on-chain/profiles.d.ts.map +1 -0
  42. package/dist/validations/access/on-chain/profiles.js +84 -0
  43. package/dist/validations/access/on-chain/profiles.js.map +1 -0
  44. package/dist/validations/access/on-chain/scenes.d.ts +7 -0
  45. package/dist/validations/access/on-chain/scenes.d.ts.map +1 -0
  46. package/dist/validations/access/on-chain/scenes.js +53 -0
  47. package/dist/validations/access/on-chain/scenes.js.map +1 -0
  48. package/dist/validations/access/on-chain/third-party-asset.d.ts +3 -0
  49. package/dist/validations/access/on-chain/third-party-asset.d.ts.map +1 -0
  50. package/dist/validations/access/on-chain/third-party-asset.js +53 -0
  51. package/dist/validations/access/on-chain/third-party-asset.js.map +1 -0
  52. package/dist/validations/access/subgraph/collection-asset.d.ts +15 -0
  53. package/dist/validations/access/subgraph/collection-asset.d.ts.map +1 -0
  54. package/dist/validations/{access-checker/items → access/subgraph}/collection-asset.js +10 -13
  55. package/dist/validations/access/subgraph/collection-asset.js.map +1 -0
  56. package/dist/validations/access/subgraph/index.d.ts +4 -0
  57. package/dist/validations/access/subgraph/index.d.ts.map +1 -0
  58. package/dist/validations/access/subgraph/index.js +23 -0
  59. package/dist/validations/access/subgraph/index.js.map +1 -0
  60. package/dist/validations/access/subgraph/profiles.d.ts +5 -0
  61. package/dist/validations/access/subgraph/profiles.d.ts.map +1 -0
  62. package/dist/validations/access/subgraph/profiles.js +84 -0
  63. package/dist/validations/access/subgraph/profiles.js.map +1 -0
  64. package/dist/validations/access/subgraph/scenes.d.ts +7 -0
  65. package/dist/validations/access/subgraph/scenes.d.ts.map +1 -0
  66. package/dist/validations/access/subgraph/scenes.js +262 -0
  67. package/dist/validations/access/subgraph/scenes.js.map +1 -0
  68. package/dist/validations/access/subgraph/the-graph-client.d.ts +10 -0
  69. package/dist/validations/access/subgraph/the-graph-client.d.ts.map +1 -0
  70. package/dist/validations/access/subgraph/the-graph-client.js.map +1 -0
  71. package/dist/validations/access/subgraph/third-party-asset.d.ts +3 -0
  72. package/dist/validations/access/subgraph/third-party-asset.d.ts.map +1 -0
  73. package/dist/validations/{access-checker/items → access/subgraph}/third-party-asset.js +6 -8
  74. package/dist/validations/access/subgraph/third-party-asset.js.map +1 -0
  75. package/dist/validations/content.d.ts +6 -10
  76. package/dist/validations/content.d.ts.map +1 -1
  77. package/dist/validations/content.js +29 -24
  78. package/dist/validations/content.js.map +1 -1
  79. package/dist/validations/entity-structure.d.ts +2 -2
  80. package/dist/validations/entity-structure.d.ts.map +1 -1
  81. package/dist/validations/entity-structure.js +3 -3
  82. package/dist/validations/entity-structure.js.map +1 -1
  83. package/dist/validations/index.d.ts +2 -18
  84. package/dist/validations/index.d.ts.map +1 -1
  85. package/dist/validations/index.js +20 -15
  86. package/dist/validations/index.js.map +1 -1
  87. package/dist/validations/ipfs-hashing.d.ts +1 -2
  88. package/dist/validations/ipfs-hashing.d.ts.map +1 -1
  89. package/dist/validations/ipfs-hashing.js +2 -2
  90. package/dist/validations/ipfs-hashing.js.map +1 -1
  91. package/dist/validations/items/emotes.d.ts +4 -4
  92. package/dist/validations/items/emotes.d.ts.map +1 -1
  93. package/dist/validations/items/emotes.js +6 -6
  94. package/dist/validations/items/emotes.js.map +1 -1
  95. package/dist/validations/items/items.d.ts +4 -4
  96. package/dist/validations/items/items.d.ts.map +1 -1
  97. package/dist/validations/items/items.js +67 -52
  98. package/dist/validations/items/items.js.map +1 -1
  99. package/dist/validations/items/wearables.d.ts +3 -3
  100. package/dist/validations/items/wearables.d.ts.map +1 -1
  101. package/dist/validations/items/wearables.js +4 -4
  102. package/dist/validations/items/wearables.js.map +1 -1
  103. package/dist/validations/metadata-schema.d.ts +10 -1
  104. package/dist/validations/metadata-schema.d.ts.map +1 -1
  105. package/dist/validations/metadata-schema.js +9 -6
  106. package/dist/validations/metadata-schema.js.map +1 -1
  107. package/dist/validations/profile.d.ts +7 -10
  108. package/dist/validations/profile.d.ts.map +1 -1
  109. package/dist/validations/profile.js +57 -37
  110. package/dist/validations/profile.js.map +1 -1
  111. package/dist/validations/scene.d.ts +2 -2
  112. package/dist/validations/scene.d.ts.map +1 -1
  113. package/dist/validations/scene.js +8 -7
  114. package/dist/validations/scene.js.map +1 -1
  115. package/dist/validations/signature.d.ts +2 -2
  116. package/dist/validations/signature.d.ts.map +1 -1
  117. package/dist/validations/signature.js +8 -6
  118. package/dist/validations/signature.js.map +1 -1
  119. package/dist/validations/size.d.ts +2 -2
  120. package/dist/validations/size.d.ts.map +1 -1
  121. package/dist/validations/size.js +31 -29
  122. package/dist/validations/size.js.map +1 -1
  123. package/dist/validations/validations.d.ts.map +1 -1
  124. package/dist/validations/validations.js +6 -5
  125. package/dist/validations/validations.js.map +1 -1
  126. package/package.json +7 -4
  127. package/dist/the-graph-client/the-graph-client.d.ts +0 -10
  128. package/dist/the-graph-client/the-graph-client.d.ts.map +0 -1
  129. package/dist/the-graph-client/the-graph-client.js.map +0 -1
  130. package/dist/validations/access-checker/access.d.ts +0 -7
  131. package/dist/validations/access-checker/access.d.ts.map +0 -1
  132. package/dist/validations/access-checker/access.js +0 -42
  133. package/dist/validations/access-checker/access.js.map +0 -1
  134. package/dist/validations/access-checker/emotes.d.ts +0 -3
  135. package/dist/validations/access-checker/emotes.d.ts.map +0 -1
  136. package/dist/validations/access-checker/emotes.js +0 -12
  137. package/dist/validations/access-checker/emotes.js.map +0 -1
  138. package/dist/validations/access-checker/items/collection-asset.d.ts +0 -15
  139. package/dist/validations/access-checker/items/collection-asset.d.ts.map +0 -1
  140. package/dist/validations/access-checker/items/collection-asset.js.map +0 -1
  141. package/dist/validations/access-checker/items/items.d.ts +0 -11
  142. package/dist/validations/access-checker/items/items.d.ts.map +0 -1
  143. package/dist/validations/access-checker/items/items.js +0 -67
  144. package/dist/validations/access-checker/items/items.js.map +0 -1
  145. package/dist/validations/access-checker/items/off-chain-asset.d.ts +0 -3
  146. package/dist/validations/access-checker/items/off-chain-asset.d.ts.map +0 -1
  147. package/dist/validations/access-checker/items/off-chain-asset.js +0 -17
  148. package/dist/validations/access-checker/items/off-chain-asset.js.map +0 -1
  149. package/dist/validations/access-checker/items/third-party-asset.d.ts +0 -3
  150. package/dist/validations/access-checker/items/third-party-asset.d.ts.map +0 -1
  151. package/dist/validations/access-checker/items/third-party-asset.js.map +0 -1
  152. package/dist/validations/access-checker/profiles.d.ts +0 -7
  153. package/dist/validations/access-checker/profiles.d.ts.map +0 -1
  154. package/dist/validations/access-checker/profiles.js +0 -114
  155. package/dist/validations/access-checker/profiles.js.map +0 -1
  156. package/dist/validations/access-checker/scenes.d.ts +0 -7
  157. package/dist/validations/access-checker/scenes.d.ts.map +0 -1
  158. package/dist/validations/access-checker/scenes.js +0 -261
  159. package/dist/validations/access-checker/scenes.js.map +0 -1
  160. package/dist/validations/access-checker/stores.d.ts +0 -7
  161. package/dist/validations/access-checker/stores.d.ts.map +0 -1
  162. package/dist/validations/access-checker/stores.js +0 -33
  163. package/dist/validations/access-checker/stores.js.map +0 -1
  164. package/dist/validations/access-checker/wearables.d.ts +0 -3
  165. package/dist/validations/access-checker/wearables.d.ts.map +0 -1
  166. package/dist/validations/access-checker/wearables.js +0 -14
  167. package/dist/validations/access-checker/wearables.js.map +0 -1
  168. /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, Validator } from './types';
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: Pick<ContentValidatorComponents, 'config' | 'externalCalls' | 'logs' | 'theGraphClient' | 'subGraphs'>) => Validator;
8
+ export declare const createValidator: (components: ContentValidatorComponents) => ValidateFn;
10
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAM,SAAS,EAAE,MAAM,SAAS,CAAA;AAGnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAC1E,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAE7B;;;GAGG;AACH,eAAO,MAAM,eAAe,eACd,KAAK,0BAA0B,EAAE,QAAQ,GAAG,eAAe,GAAG,MAAM,GAAG,gBAAgB,GAAG,WAAW,CAAC,KACjH,SAeF,CAAA"}
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 = exports.createTheGraphClient = void 0;
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
- return {
31
- validate: async (deployment) => {
32
- for (const validate of validations_1.validateFns) {
33
- const result = await validate(components, deployment);
34
- if (!result.ok) {
35
- logs.debug(`Validation failed:\n${result.errors?.join('\n')}`);
36
- return result;
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,mCAAmE;AACnE,+CAA2C;AAE3C,wEAA0E;AAAjE,wHAAA,oBAAoB,OAAA;AAC7B,0CAAuB;AACvB,gDAA6B;AAE7B;;;GAGG;AACI,MAAM,eAAe,GAAG,CAC7B,UAAkH,EACvG,EAAE;IACb,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAE1D,OAAO;QACL,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;YAC7B,KAAK,MAAM,QAAQ,IAAI,yBAAW,EAAE;gBAClC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;gBACrD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;oBACd,IAAI,CAAC,KAAK,CAAC,uBAAuB,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;oBAC9D,OAAO,MAAM,CAAA;iBACd;aACF;YACD,OAAO,UAAE,CAAA;QACX,CAAC;KACF,CAAA;AACH,CAAC,CAAA;AAjBY,QAAA,eAAe,mBAiB3B"}
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 { IConfigComponent, ILoggerComponent } from '@well-known-components/interfaces';
3
- import { ISubgraphComponent, Variables } from '@well-known-components/thegraph-component';
4
- import { PermissionResult } from './the-graph-client/the-graph-client';
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 = (components: ContentValidatorComponents, deployment: DeploymentToValidate) => ValidationResponse | Promise<ValidationResponse>;
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
@@ -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":";;;AA0FA;;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":";;;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 { ContentValidatorComponents, DeploymentToValidate } from '../types';
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 adr45(components: ContentValidatorComponents, deployment: DeploymentToValidate): import("../types").ValidationResponse;
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,0BAA0B,EAAE,oBAAoB,EAAwB,MAAM,UAAU,CAAA;AAOjG;;;GAGG;AACH,wBAAgB,KAAK,CAAC,UAAU,EAAE,0BAA0B,EAAE,UAAU,EAAE,oBAAoB,yCAO7F"}
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.adr45 = void 0;
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 adr45(components, deployment) {
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.adr45 = adr45;
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,oCAAiG;AACjG,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;AACH,SAAgB,KAAK,CAAC,UAAsC,EAAE,UAAgC;IAC5F,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,sBAOC"}
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,3 @@
1
+ import { ContentValidatorComponents, ValidateFn } from '../../../types';
2
+ export declare function createPointerValidateFn(components: Pick<ContentValidatorComponents, 'externalCalls'>): ValidateFn;
3
+ //# sourceMappingURL=profiles.d.ts.map
@@ -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"}