@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 +19 -1
- package/dist/commands/scene-insights/index.js +5 -2
- package/dist/commands/scene-insights/index.js.map +1 -1
- package/dist/commands/scene-insights/session-store.d.ts +2 -1
- package/dist/commands/scene-insights/session-store.js +3 -2
- package/dist/commands/scene-insights/session-store.js.map +1 -1
- package/dist/commands/scene-insights/session.d.ts +8 -4
- package/dist/commands/scene-insights/session.js +6 -11
- package/dist/commands/scene-insights/session.js.map +1 -1
- package/dist/commands/scene-insights/sign-in.d.ts +3 -3
- package/dist/commands/scene-insights/sign-in.js +23 -14
- package/dist/commands/scene-insights/sign-in.js.map +1 -1
- package/dist/commands/scene-insights/signature-validation.d.ts +6 -0
- package/dist/commands/scene-insights/signature-validation.js +100 -0
- package/dist/commands/scene-insights/signature-validation.js.map +1 -0
- package/package.json +4 -3
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
|
|
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
|
|
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":";;;;;;
|
|
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 {
|
|
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
|
|
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<
|
|
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
|
|
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
|
|
90
|
-
|
|
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":";;;
|
|
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 {
|
|
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:
|
|
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
|
|
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
|
|
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
|
|
63
|
+
let validated;
|
|
61
64
|
try {
|
|
62
|
-
|
|
65
|
+
validated = await signed;
|
|
63
66
|
}
|
|
64
67
|
finally {
|
|
65
|
-
|
|
68
|
+
// Cleanup must not replace a signature validation error.
|
|
69
|
+
await program.stop().catch(() => undefined);
|
|
66
70
|
}
|
|
67
|
-
const
|
|
68
|
-
|
|
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":";;;;;
|
|
1
|
+
{"version":3,"file":"sign-in.js","sourceRoot":"","sources":["../../../src/commands/scene-insights/sign-in.ts"],"names":[],"mappings":";;;;;AAqDA,gCAwEC;AAQD,wCAQC;AAMD,0CA0CC;AA7LD,0DAA8B;AAE9B,iEAA+D;AAI/D,6CAA4C;AAC5C,qDAAoE;AACpE,6CAAqD;AACrD,uCASkB;AAClB,mDAAyF;AAuBzF;;;;;;;;;;GAUG;AACI,KAAK,UAAU,UAAU,CAC9B,UAAqE,EACrE,KAAkB,EAClB,OAAuB;IAEvB,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QAChC,OAAO,EAAE,OAAO,EAAE,IAAA,qCAA2B,EAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAA;IACrG,CAAC;IAED,MAAM,QAAQ,GAAG,IAAA,6CAAsB,EAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC1D,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,MAAM,IAAA,2BAAW,EAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAA;QAC/E,IAAI,KAAK;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;QAE7D,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,IAAI,gBAAQ,CAChB,iCAAiC,EACjC,yJAAyJ,CAC1J,CAAA;QACH,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,MAAM,IAAA,6CAA6B,EAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAEjD,MAAM,iBAAiB,GAAG,IAAA,iCAAuB,GAAE,CAAA;IACnD,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,yBAAe,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IACrE,MAAM,OAAO,GAAG,IAAA,mCAAyB,EAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAEhF,MAAM,MAAM,GAAG,IAAA,mBAAM,GAA+B,CAAA;IACpD,uGAAuG;IACvG,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IAClC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAA,kBAAS,EAAC,UAAU,EAAE;QACrD,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK;QACjC,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC;QAChC,eAAe,EAAE,IAAI;QACrB,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK;QAC1B,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK;QACtB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,MAAM,EAAE,WAAW;KACpB,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,eAAe,CAC5B,YAAY,EACZ,iBAAiB,CAAC,OAAO,EACzB,OAAO,EACP,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAChC,QAAQ,EACR,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAChC,CAAA;IAED,UAAU,CAAC,MAAM,CAAC,IAAI,CACpB,sEAAsE,yBAAe,GAAG,EAAE,QAAQ,CACnG,CAAA;IACD,UAAU,CAAC,MAAM,CAAC,IAAI,CACpB,0JAA0J,CAC3J,CAAA;IACD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,kBAAO,EAAC,UAAU,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;IAE3F,IAAI,SAAsC,CAAA;IAC1C,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,MAAM,CAAA;IAC1B,CAAC;YAAS,CAAC;QACT,yDAAyD;QACzD,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,SAAS,CAAA;IACtC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;IACpE,MAAM,IAAA,2BAAW,EAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;IACrF,OAAO,EAAE,OAAO,EAAE,IAAA,gCAAsB,EAAC,iBAAiB,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;AACxG,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;AAE9D;;;GAGG;AACH,SAAgB,cAAc,CAAC,MAAqB,EAAE,IAAmB;IACvE,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;QAC3B,OAAO,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAC7B,MAAsB,EACtB,gBAAwB,EACxB,OAAe,EACf,QAA2D,EAC3D,QAA4B,EAC5B,OAAgC;IAEhC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACrC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACxF,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,gDAAgD,EAAE,EAAE,CAAA;QAC3G,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAmB,CAAA;QAC1D,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtD,MAAM,IAAI,gBAAQ,CAAC,kCAAkC,EAAE,8CAA8C,CAAC,CAAA;YACxG,CAAC;YACD,MAAM,UAAU,GAAG,MAAM,IAAA,mCAAyB,EAChD,KAAK,CAAC,SAAS,EACf,gBAAgB,EAChB,OAAO,EACP,IAAI,CAAC,GAAG,EAAE,EACV,QAAQ,CACT,CAAA;YACD,+CAA+C;YAC/C,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAA;YAC3C,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAA;QACpC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IACE,CAAC,YAAY,gBAAQ;gBACrB,CAAC,CAAC,CAAC,IAAI,KAAK,4BAA4B,IAAI,CAAC,CAAC,IAAI,KAAK,iCAAiC,CAAC,EACzF,CAAC;gBACD,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;gBACnC,OAAO;oBACL,MAAM,EAAE,CAAC,CAAC,IAAI,KAAK,4BAA4B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;oBAC3D,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;iBAC3C,CAAA;YACH,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,CAAW,CAAC,OAAO,EAAE,EAAE,CAAA;QAC/E,CAAC;IACH,CAAC,CAAC,CAAA;IACF,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -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-
|
|
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/
|
|
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": "
|
|
78
|
+
"commit": "5e4cadacd85ac2d2629b68e4bc4ad67a6ff66df9"
|
|
78
79
|
}
|