@dcl/sdk-commands 7.31.1-41472004640.commit-3147448 → 7.31.1-41498712919.commit-5e4cada

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -113,10 +113,28 @@ For detailed documentation on using the CLI tools, visit:
113
113
  sessions use these same explicit grants. They cover scenes the wallet already has
114
114
  permission to read; the credential is not restricted to a single scene. No wildcard
115
115
  or write operation is granted. Environments sharing the `insights` service identifier
116
- (including `.org` and `.zone`) accept the same credential. The signed headers don't
116
+ (including `.org` and `.zone`) accept the same credential when the wallet signatures
117
+ verify on the selected network. The signed headers don't
117
118
  name the host, so `--target` only accepts https hosts under `decentraland.org` or
118
119
  `decentraland.zone` unless `--trust-target` is passed.
119
120
 
120
121
  Previously saved full-login sessions require signing in again. A saved scoped
121
122
  session expires no later than its parent delegation. Deploy the scoped-login
122
123
  Insights server before using this command version.
124
+
125
+ Smart-contract wallets can sign through the browser linker. Contract signatures are
126
+ validated via Ethereum RPC during login and whenever a saved session is loaded.
127
+ The target selects Mainnet for `.org` and Sepolia for `.zone`; pass the same
128
+ `--target` to `login`, `session`, and read commands. For a custom target, set
129
+ `DCL_SCENE_INSIGHTS_RPC_URL` to its trusted Ethereum RPC endpoint. The endpoint is
130
+ local configuration, never taken from the wallet response, and is ignored for
131
+ `.org`/`.zone` targets so their network mapping stays fixed. Normal EOA sessions
132
+ remain offline during local validation.
133
+
134
+ Deploy the Insights server with `ETH_RPC_URL` before releasing this CLI version.
135
+ The server independently verifies every request against its configured network,
136
+ read-operation grants, and scene permissions. RPC outages return exit 6, including during browser login, without
137
+ removing the saved session or requesting another login. A new browser delegation is
138
+ validated once, then saved with its validated expiration. Invalid or revoked saved
139
+ sessions, including ones that exceed the RPC-call budget, require a new login. Validation is limited to
140
+ 10 chain links, 16 RPC calls and 15 seconds; each RPC request has a 5-second timeout.
@@ -14,6 +14,7 @@ const client_1 = require("./client");
14
14
  const inputs_1 = require("./inputs");
15
15
  const session_store_1 = require("./session-store");
16
16
  const sign_in_1 = require("./sign-in");
17
+ const signature_validation_1 = require("./signature-validation");
17
18
  exports.args = (0, args_1.declareArgs)({
18
19
  '--help': Boolean,
19
20
  '-h': '--help',
@@ -55,7 +56,7 @@ const SCENE_FLAGS = [...TARGET_FLAGS, ...SIGN_IN_FLAGS, '--world', '--position',
55
56
  const FLAGS_BY_SUBCOMMAND = {
56
57
  login: [...TARGET_FLAGS, ...SIGN_IN_FLAGS],
57
58
  logout: [],
58
- session: [],
59
+ session: [...TARGET_FLAGS],
59
60
  logs: [...SCENE_FLAGS, '--from', '--to', '--level', '--source', '--query', '--execution', '--limit', '--order'],
60
61
  tail: [...SCENE_FLAGS, '--for', '--lines', '--level', '--query'],
61
62
  metrics: [...SCENE_FLAGS, '--from', '--to', '--step', '--execution'],
@@ -90,6 +91,8 @@ function help(options) {
90
91
  Until it expires it can sign Decentraland requests as your address; "logout" removes it.
91
92
  The .dcl folder is never deployed and ignores itself in git, so the session is never published.
92
93
  With DCL_PRIVATE_KEY set, requests are signed with that key and nothing is saved.
94
+ Contract wallets use Ethereum RPC: Mainnet for .org, Sepolia for .zone. Use the same --target
95
+ for login, session and reads. Set DCL_SCENE_INSIGHTS_RPC_URL for a custom target's network.
93
96
  Without a terminal (scripts, AI agents) a missing session is an error, never a browser prompt.
94
97
 
95
98
  Runs from any directory with --world and/or --position; otherwise reads scene.json
@@ -240,7 +243,7 @@ async function run(options) {
240
243
  write(`Signing as ${address} with DCL_PRIVATE_KEY`);
241
244
  return { address, expiration: null, source: 'DCL_PRIVATE_KEY' };
242
245
  }
243
- const saved = await (0, session_store_1.loadSession)(components, file);
246
+ const saved = await (0, session_store_1.loadSession)(components, file, Date.now(), (0, signature_validation_1.createInsightsProvider)(baseUrl));
244
247
  if (!saved) {
245
248
  throw new error_1.CliError('SCENE_INSIGHTS_SESSION_REQUIRED', 'Not signed in; run "sdk-commands scene-insights login"');
246
249
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/scene-insights/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/scene-insights/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { AuthChainProvider } from '@dcl/crypto-middleware';
1
2
  import { AuthChain, AuthIdentity } from '@dcl/crypto';
2
3
  import { CliComponents } from '../../components';
3
4
  import { InsightsSession } from './session';
@@ -20,7 +21,7 @@ export declare function getSessionFilePath(base?: string): string;
20
21
  * Reads the saved session. Returns undefined when there is none, it is malformed, it expires within
21
22
  * a minute, or its delegation does not verify (tampered, or not a delegation to its key).
22
23
  */
23
- export declare function loadSession(components: Pick<CliComponents, 'fs'>, file: string, now?: number): Promise<{
24
+ export declare function loadSession(components: Pick<CliComponents, 'fs'>, file: string, now?: number, provider?: AuthChainProvider): Promise<{
24
25
  session: InsightsSession;
25
26
  saved: SavedSession;
26
27
  } | undefined>;
@@ -10,6 +10,7 @@ exports.assertSessionFileIsNotTracked = assertSessionFileIsNotTracked;
10
10
  exports.saveSession = saveSession;
11
11
  exports.deleteSession = deleteSession;
12
12
  const os_1 = require("os");
13
+ const signature_validation_1 = require("./signature-validation");
13
14
  const path_1 = __importDefault(require("path"));
14
15
  const crypto_1 = require("crypto");
15
16
  const child_process_1 = require("child_process");
@@ -32,7 +33,7 @@ function getSessionFilePath(base = process.env[exports.SESSION_DIR_ENV] || (0, o
32
33
  * Reads the saved session. Returns undefined when there is none, it is malformed, it expires within
33
34
  * a minute, or its delegation does not verify (tampered, or not a delegation to its key).
34
35
  */
35
- async function loadSession(components, file, now = Date.now()) {
36
+ async function loadSession(components, file, now = Date.now(), provider) {
36
37
  const { fs } = components;
37
38
  if (!(await fs.fileExists(file)))
38
39
  return undefined;
@@ -53,7 +54,7 @@ async function loadSession(components, file, now = Date.now()) {
53
54
  const expiration = new Date(saved.expiration);
54
55
  if (!(expiration.getTime() - EXPIRY_MARGIN_MS > now))
55
56
  return undefined;
56
- const check = await crypto_2.Authenticator.validateSignature(saved.ephemeralIdentity.address.toLowerCase(), saved.authChain, null, now, { service: session_1.INSIGHTS_SERVICE });
57
+ const check = await (0, signature_validation_1.validateInsightsSignature)(saved.ephemeralIdentity.address.toLowerCase(), saved.authChain, now, provider);
57
58
  if (!check.ok ||
58
59
  !check.scope ||
59
60
  !session_1.INSIGHTS_OPERATIONS.every((operation) => (0, crypto_2.isOperationGranted)(check.scope, operation)))
@@ -1 +1 @@
1
- {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../../src/commands/scene-insights/session-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../../src/commands/scene-insights/session-store.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { AuthChain, AuthIdentity } from '@dcl/crypto';
1
+ import type { AuthChainProvider } from '@dcl/crypto-middleware';
2
+ import { AuthChain, AuthIdentity, ScopedLoginScope } from '@dcl/crypto';
2
3
  /** How long one signature lasts; after that, `scene-insights login` signs a new session. */
3
4
  export declare const SESSION_MINUTES: number;
4
5
  export declare const INSIGHTS_SERVICE = "insights";
@@ -28,6 +29,10 @@ export declare function createEphemeralIdentity(): AuthIdentity['ephemeralIdenti
28
29
  export declare function createSessionFromChain(ephemeralIdentity: AuthIdentity['ephemeralIdentity'], expiration: Date, authChain: AuthChain): InsightsSession;
29
30
  /** A delegation signed directly with a private key (`DCL_PRIVATE_KEY`). */
30
31
  export declare function createSessionFromPrivateKey(privateKey: string, now?: number): InsightsSession;
32
+ export interface ValidatedInsightsDelegation {
33
+ authChain: AuthChain;
34
+ scope: ScopedLoginScope;
35
+ }
31
36
  /**
32
37
  * Turns what the linker dApp returns into a delegation to our ephemeral key.
33
38
  *
@@ -36,7 +41,6 @@ export declare function createSessionFromPrivateKey(privateKey: string, now?: nu
36
41
  * link a signature of the message by the dApp's key, which is exactly a scoped delegation, so
37
42
  * it is relabeled as one: wallet → dApp key → our key.
38
43
  *
39
- * @throws CliError when the chain does not sign the message, or comes from a contract wallet
40
- * (scoped contract-wallet chains require a provider rather than Catalyst validation).
44
+ * @throws CliError when the chain does not sign the message or RPC validation is unavailable.
41
45
  */
42
- export declare function delegationFromLinkerChain(authChain: AuthChain, ephemeralAddress: string, message: string, now?: number): Promise<AuthChain>;
46
+ export declare function delegationFromLinkerChain(authChain: AuthChain, ephemeralAddress: string, message: string, now?: number, provider?: AuthChainProvider): Promise<ValidatedInsightsDelegation>;
@@ -8,6 +8,7 @@ exports.createSessionFromChain = createSessionFromChain;
8
8
  exports.createSessionFromPrivateKey = createSessionFromPrivateKey;
9
9
  exports.delegationFromLinkerChain = delegationFromLinkerChain;
10
10
  const crypto_1 = require("crypto");
11
+ const signature_validation_1 = require("./signature-validation");
11
12
  const crypto_2 = require("@dcl/crypto");
12
13
  const crypto_3 = require("@dcl/crypto/dist/crypto");
13
14
  const eth_connect_1 = require("eth-connect");
@@ -68,13 +69,9 @@ function createSessionFromPrivateKey(privateKey, now = Date.now()) {
68
69
  * link a signature of the message by the dApp's key, which is exactly a scoped delegation, so
69
70
  * it is relabeled as one: wallet → dApp key → our key.
70
71
  *
71
- * @throws CliError when the chain does not sign the message, or comes from a contract wallet
72
- * (scoped contract-wallet chains require a provider rather than Catalyst validation).
72
+ * @throws CliError when the chain does not sign the message or RPC validation is unavailable.
73
73
  */
74
- async function delegationFromLinkerChain(authChain, ephemeralAddress, message, now = Date.now()) {
75
- if (authChain.some((link) => link.type === crypto_2.AuthLinkType.ECDSA_EIP_1654_EPHEMERAL)) {
76
- throw new error_1.CliError('SCENE_INSIGHTS_UNSUPPORTED_WALLET', 'Smart contract wallets cannot sign insights sessions in the browser; set DCL_PRIVATE_KEY to an address with access instead');
77
- }
74
+ async function delegationFromLinkerChain(authChain, ephemeralAddress, message, now = Date.now(), provider) {
78
75
  const last = authChain[authChain.length - 1];
79
76
  if (authChain.length < 2 ||
80
77
  !last ||
@@ -86,12 +83,10 @@ async function delegationFromLinkerChain(authChain, ephemeralAddress, message, n
86
83
  ...authChain.slice(0, -1),
87
84
  { ...last, type: crypto_2.ScopedAuthLinkType.ECDSA_PERSONAL_SCOPED_EPHEMERAL }
88
85
  ];
89
- const result = await crypto_2.Authenticator.validateSignature(ephemeralAddress.toLowerCase(), delegation, null, now, {
90
- service: exports.INSIGHTS_SERVICE
91
- });
92
- if (!result.ok) {
86
+ const result = await (0, signature_validation_1.validateInsightsSignature)(ephemeralAddress.toLowerCase(), delegation, now, provider);
87
+ if (!result.ok || !result.scope) {
93
88
  throw new error_1.CliError('SCENE_INSIGHTS_INVALID_SIGNATURE', `The insights session signature is invalid: ${result.message}`);
94
89
  }
95
- return delegation;
90
+ return { authChain: delegation, scope: result.scope };
96
91
  }
97
92
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/commands/scene-insights/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/commands/scene-insights/session.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { AuthChain } from '@dcl/crypto';
1
+ import type { AuthChainProvider } from '@dcl/crypto-middleware';
2
2
  import { Router } from '@well-known-components/http-server';
3
3
  import { CliComponents } from '../../components';
4
4
  import { dAppOptions } from '../../run-dapp';
5
- import { InsightsSession } from './session';
5
+ import { InsightsSession, ValidatedInsightsDelegation } from './session';
6
6
  /** What the linker dApp shows while signing. */
7
7
  export interface SignInLabel {
8
8
  label: string;
@@ -45,4 +45,4 @@ export declare function isLinkerOrigin(origin: string | null, host: string | nul
45
45
  * The linker dApp posts `view-logs` signatures to `/api/logs`. Only its own page is accepted: any
46
46
  * other page could sign the message with its own wallet and sign the CLI in as that address.
47
47
  */
48
- export declare function setSignInRoutes(router: Router<object>, ephemeralAddress: string, message: string, onSigned: (delegation: AuthChain) => void): Router<object>;
48
+ export declare function setSignInRoutes(router: Router<object>, ephemeralAddress: string, message: string, onSigned: (delegation: ValidatedInsightsDelegation) => void, provider?: AuthChainProvider, onError?: (error: Error) => void): Router<object>;
@@ -7,7 +7,7 @@ exports.getSession = getSession;
7
7
  exports.isLinkerOrigin = isLinkerOrigin;
8
8
  exports.setSignInRoutes = setSignInRoutes;
9
9
  const fp_future_1 = __importDefault(require("fp-future"));
10
- const crypto_1 = require("@dcl/crypto");
10
+ const signature_validation_1 = require("./signature-validation");
11
11
  const error_1 = require("../../logic/error");
12
12
  const routes_1 = require("../../linker-dapp/routes");
13
13
  const run_dapp_1 = require("../../run-dapp");
@@ -28,8 +28,9 @@ async function getSession(components, label, options) {
28
28
  if (process.env.DCL_PRIVATE_KEY) {
29
29
  return { session: (0, session_1.createSessionFromPrivateKey)(process.env.DCL_PRIVATE_KEY), source: 'private-key' };
30
30
  }
31
+ const provider = (0, signature_validation_1.createInsightsProvider)(options.targetUrl);
31
32
  if (!options.forceNew) {
32
- const saved = await (0, session_store_1.loadSession)(components, options.file);
33
+ const saved = await (0, session_store_1.loadSession)(components, options.file, Date.now(), provider);
33
34
  if (saved)
34
35
  return { session: saved.session, source: 'saved' };
35
36
  if (!options.interactive) {
@@ -42,6 +43,8 @@ async function getSession(components, label, options) {
42
43
  const expiration = new Date(Date.now() + session_1.SESSION_MINUTES * 60 * 1000);
43
44
  const message = (0, session_1.getInsightsSessionMessage)(ephemeralIdentity.address, expiration);
44
45
  const signed = (0, fp_future_1.default)();
46
+ // A browser callback can fail while runDapp is still starting; await signed below still propagates it.
47
+ void signed.catch(() => undefined);
45
48
  const { router: commonRouter } = (0, routes_1.setRoutes)(components, {
46
49
  rootCID: message,
47
50
  baseParcel: label.parcel ?? '0,0',
@@ -53,22 +56,20 @@ async function getSession(components, label, options) {
53
56
  targetUrl: options.targetUrl,
54
57
  action: 'view-logs'
55
58
  });
56
- const router = setSignInRoutes(commonRouter, ephemeralIdentity.address, message, (chain) => signed.resolve(chain));
59
+ const router = setSignInRoutes(commonRouter, ephemeralIdentity.address, message, (chain) => signed.resolve(chain), provider, (error) => signed.reject(error));
57
60
  components.logger.info(`Sign read-only access to logs, metrics and executions for the next ${session_1.SESSION_MINUTES / 60} hours`);
58
- components.logger.info('This credential works across Insights environments sharing the insights service identifier, including .org and .zone.');
61
+ components.logger.info('This credential works across Insights environments sharing the insights service identifier where the wallet signatures verify on the configured network.');
59
62
  const { program } = await (0, run_dapp_1.runDapp)(components, router, { ...options.linkOptions, uri: '/' });
60
- let authChain;
63
+ let validated;
61
64
  try {
62
- authChain = await signed;
65
+ validated = await signed;
63
66
  }
64
67
  finally {
65
- void program.stop();
68
+ // Cleanup must not replace a signature validation error.
69
+ await program.stop().catch(() => undefined);
66
70
  }
67
- const validated = await crypto_1.Authenticator.validateSignature(ephemeralIdentity.address.toLowerCase(), authChain, null, Date.now(), { service: session_1.INSIGHTS_SERVICE });
68
- if (!validated.ok || !validated.scope) {
69
- throw new error_1.CliError('SCENE_INSIGHTS_INVALID_SIGNATURE', 'The wallet did not return a valid scoped insights login');
70
- }
71
- expiration.setTime(Math.min(expiration.getTime(), validated.scope.expiration));
71
+ const { authChain, scope } = validated;
72
+ expiration.setTime(Math.min(expiration.getTime(), scope.expiration));
72
73
  await (0, session_store_1.saveSession)(components, options.file, ephemeralIdentity, expiration, authChain);
73
74
  return { session: (0, session_1.createSessionFromChain)(ephemeralIdentity, expiration, authChain), source: 'signed' };
74
75
  }
@@ -92,7 +93,7 @@ function isLinkerOrigin(origin, host) {
92
93
  * The linker dApp posts `view-logs` signatures to `/api/logs`. Only its own page is accepted: any
93
94
  * other page could sign the message with its own wallet and sign the CLI in as that address.
94
95
  */
95
- function setSignInRoutes(router, ephemeralAddress, message, onSigned) {
96
+ function setSignInRoutes(router, ephemeralAddress, message, onSigned, provider, onError) {
96
97
  router.post('/api/logs', async (ctx) => {
97
98
  if (!isLinkerOrigin(ctx.request.headers.get('origin'), ctx.request.headers.get('host'))) {
98
99
  return { status: 403, body: { success: false, error: 'Sign from the page the CLI opened on localhost' } };
@@ -102,12 +103,20 @@ function setSignInRoutes(router, ephemeralAddress, message, onSigned) {
102
103
  if (!value.address || !Array.isArray(value.authChain)) {
103
104
  throw new error_1.CliError('SCENE_INSIGHTS_INVALID_SIGNATURE', 'The wallet did not sign the insights session');
104
105
  }
105
- const delegation = await (0, session_1.delegationFromLinkerChain)(value.authChain, ephemeralAddress, message);
106
+ const delegation = await (0, session_1.delegationFromLinkerChain)(value.authChain, ephemeralAddress, message, Date.now(), provider);
106
107
  // answer the dApp before its server is stopped
107
108
  setTimeout(() => onSigned(delegation), 100);
108
109
  return { body: { success: true } };
109
110
  }
110
111
  catch (e) {
112
+ if (e instanceof error_1.CliError &&
113
+ (e.name === 'SCENE_INSIGHTS_UNAVAILABLE' || e.name === 'SCENE_INSIGHTS_INVALID_ARGUMENT')) {
114
+ setTimeout(() => onError?.(e), 100);
115
+ return {
116
+ status: e.name === 'SCENE_INSIGHTS_UNAVAILABLE' ? 503 : 400,
117
+ body: { success: false, error: e.message }
118
+ };
119
+ }
111
120
  return { status: 400, body: { success: false, error: e.message } };
112
121
  }
113
122
  });
@@ -1 +1 @@
1
- {"version":3,"file":"sign-in.js","sourceRoot":"","sources":["../../../src/commands/scene-insights/sign-in.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sign-in.js","sourceRoot":"","sources":["../../../src/commands/scene-insights/sign-in.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { AuthChain, Authenticator } from '@dcl/crypto';
2
+ import { AuthChainProvider } from '@dcl/crypto-middleware';
3
+ /** Select RPC from trusted CLI configuration, never from the wallet response. */
4
+ export declare function createInsightsProvider(target: string): AuthChainProvider;
5
+ /** Validate a saved or newly signed delegation without unbounded RPC fallback work. */
6
+ export declare function validateInsightsSignature(expected: string, chain: AuthChain, now?: number, provider?: AuthChainProvider): ReturnType<typeof Authenticator.validateSignature>;
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createInsightsProvider = createInsightsProvider;
4
+ exports.validateInsightsSignature = validateInsightsSignature;
5
+ const crypto_1 = require("@dcl/crypto");
6
+ const crypto_middleware_1 = require("@dcl/crypto-middleware");
7
+ const error_1 = require("../../logic/error");
8
+ /** Select RPC from trusted CLI configuration, never from the wallet response. */
9
+ function createInsightsProvider(target) {
10
+ let provider;
11
+ return {
12
+ sendAsync(payload, callback, signal) {
13
+ if (!provider) {
14
+ const hostname = new URL(target).hostname;
15
+ const network = hostname === 'decentraland.zone' || hostname.endsWith('.decentraland.zone')
16
+ ? 'sepolia'
17
+ : hostname === 'decentraland.org' || hostname.endsWith('.decentraland.org')
18
+ ? 'mainnet'
19
+ : undefined;
20
+ const url = network
21
+ ? `https://rpc.decentraland.org/${network}?project=sdk-commands`
22
+ : process.env.DCL_SCENE_INSIGHTS_RPC_URL;
23
+ if (!url) {
24
+ callback(new error_1.CliError('SCENE_INSIGHTS_INVALID_ARGUMENT', 'Set DCL_SCENE_INSIGHTS_RPC_URL for contract wallets on a custom Insights target'));
25
+ return;
26
+ }
27
+ try {
28
+ provider = (0, crypto_middleware_1.createSignatureRpcProvider)(url);
29
+ }
30
+ catch {
31
+ callback(new error_1.CliError('SCENE_INSIGHTS_INVALID_ARGUMENT', 'DCL_SCENE_INSIGHTS_RPC_URL must be an HTTP(S) URL without user information'));
32
+ return;
33
+ }
34
+ }
35
+ provider.sendAsync(payload, callback, signal);
36
+ }
37
+ };
38
+ }
39
+ /** Validate a saved or newly signed delegation without unbounded RPC fallback work. */
40
+ async function validateInsightsSignature(expected, chain, now = Date.now(), provider) {
41
+ if (chain.length < 2 || chain.length > 10)
42
+ return { ok: false, message: 'Invalid auth chain length' };
43
+ const controller = new AbortController();
44
+ let rejectValidation = () => undefined;
45
+ let invalidate = () => undefined;
46
+ const interrupted = new Promise((resolve, reject) => {
47
+ invalidate = resolve;
48
+ rejectValidation = reject;
49
+ });
50
+ const interrupt = (error) => {
51
+ if (!controller.signal.aborted) {
52
+ rejectValidation(error);
53
+ controller.abort();
54
+ }
55
+ return error;
56
+ };
57
+ let calls = 0;
58
+ const bounded = provider && {
59
+ sendAsync(payload, callback) {
60
+ if (controller.signal.aborted) {
61
+ callback(new Error('Signature validation stopped'));
62
+ return;
63
+ }
64
+ if (++calls > 16) {
65
+ const message = 'Signature validation exceeded its RPC budget';
66
+ invalidate({ ok: false, message });
67
+ controller.abort();
68
+ callback(new Error(message));
69
+ return;
70
+ }
71
+ try {
72
+ provider.sendAsync(payload, (error, response) => {
73
+ if (error) {
74
+ callback(interrupt(error instanceof error_1.CliError
75
+ ? error
76
+ : new error_1.CliError('SCENE_INSIGHTS_UNAVAILABLE', 'Contract-wallet signature verification unavailable; retry shortly')));
77
+ }
78
+ else {
79
+ callback(null, response);
80
+ }
81
+ }, controller.signal);
82
+ }
83
+ catch {
84
+ callback(interrupt(new error_1.CliError('SCENE_INSIGHTS_UNAVAILABLE', 'Contract-wallet signature verification unavailable; retry shortly')));
85
+ }
86
+ }
87
+ };
88
+ const timer = setTimeout(() => interrupt(new error_1.CliError('SCENE_INSIGHTS_UNAVAILABLE', 'Contract-wallet signature verification timed out; retry shortly')), 15000);
89
+ try {
90
+ return await Promise.race([
91
+ crypto_1.Authenticator.validateSignature(expected, chain, bounded ?? null, now, { service: 'insights' }),
92
+ interrupted
93
+ ]);
94
+ }
95
+ finally {
96
+ clearTimeout(timer);
97
+ controller.abort();
98
+ }
99
+ }
100
+ //# sourceMappingURL=signature-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature-validation.js","sourceRoot":"","sources":["../../../src/commands/scene-insights/signature-validation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,14 +1,15 @@
1
1
  {
2
2
  "name": "@dcl/sdk-commands",
3
3
  "description": "",
4
- "version": "7.31.1-41472004640.commit-3147448",
4
+ "version": "7.31.1-41498712919.commit-5e4cada",
5
5
  "author": "Decentraland",
6
6
  "bin": {
7
7
  "sdk-commands": "./dist/index.js"
8
8
  },
9
9
  "dependencies": {
10
10
  "@dcl/crypto": "^3.9.0",
11
- "@dcl/ecs": "7.31.1-41472004640.commit-3147448",
11
+ "@dcl/crypto-middleware": "6.5.0",
12
+ "@dcl/ecs": "7.31.1-41498712919.commit-5e4cada",
12
13
  "@dcl/gltf-validator-ts": "1.0.14",
13
14
  "@dcl/hashing": "1.1.3",
14
15
  "@dcl/inspector": "7.36.3",
@@ -74,5 +75,5 @@
74
75
  "displayName": "SDK",
75
76
  "tsconfig": "./tsconfig.json"
76
77
  },
77
- "commit": "3147448fde36e4c3fec211567b2b75adc6392f3f"
78
+ "commit": "5e4cadacd85ac2d2629b68e4bc4ad67a6ff66df9"
78
79
  }