codecrypto-cli 1.0.9 → 1.0.11
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 +238 -399
- package/dist/commands/auth.js +1 -1
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/deploy-sc.d.ts.map +1 -1
- package/dist/commands/deploy-sc.js +35 -18
- package/dist/commands/deploy-sc.js.map +1 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +296 -97
- package/dist/commands/deploy.js.map +1 -1
- package/dist/index.js +65 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/auth.ts +1 -1
- package/src/commands/deploy-sc.ts +32 -18
- package/src/commands/deploy.ts +327 -107
- package/src/index.ts +37 -0
- package/Dockerfile +0 -15
- package/docker-build/Dockerfile +0 -18
- package/docker-build/standalone/.next/BUILD_ID +0 -1
- package/docker-build/standalone/.next/app-path-routes-manifest.json +0 -6
- package/docker-build/standalone/.next/build-manifest.json +0 -19
- package/docker-build/standalone/.next/package.json +0 -1
- package/docker-build/standalone/.next/prerender-manifest.json +0 -114
- package/docker-build/standalone/.next/required-server-files.json +0 -164
- package/docker-build/standalone/.next/routes-manifest.json +0 -68
- package/docker-build/standalone/.next/server/app/_global-error/page/app-paths-manifest.json +0 -3
- package/docker-build/standalone/.next/server/app/_global-error/page/build-manifest.json +0 -16
- package/docker-build/standalone/.next/server/app/_global-error/page/next-font-manifest.json +0 -6
- package/docker-build/standalone/.next/server/app/_global-error/page/react-loadable-manifest.json +0 -1
- package/docker-build/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +0 -4
- package/docker-build/standalone/.next/server/app/_global-error/page.js +0 -11
- package/docker-build/standalone/.next/server/app/_global-error/page.js.map +0 -5
- package/docker-build/standalone/.next/server/app/_global-error/page.js.nft.json +0 -1
- package/docker-build/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +0 -2
- package/docker-build/standalone/.next/server/app/_global-error.html +0 -2
- package/docker-build/standalone/.next/server/app/_global-error.meta +0 -15
- package/docker-build/standalone/.next/server/app/_global-error.rsc +0 -13
- package/docker-build/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +0 -5
- package/docker-build/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +0 -13
- package/docker-build/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +0 -6
- package/docker-build/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +0 -4
- package/docker-build/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +0 -1
- package/docker-build/standalone/.next/server/app/_not-found/page/app-paths-manifest.json +0 -3
- package/docker-build/standalone/.next/server/app/_not-found/page/build-manifest.json +0 -16
- package/docker-build/standalone/.next/server/app/_not-found/page/next-font-manifest.json +0 -11
- package/docker-build/standalone/.next/server/app/_not-found/page/react-loadable-manifest.json +0 -1
- package/docker-build/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +0 -4
- package/docker-build/standalone/.next/server/app/_not-found/page.js +0 -14
- package/docker-build/standalone/.next/server/app/_not-found/page.js.map +0 -5
- package/docker-build/standalone/.next/server/app/_not-found/page.js.nft.json +0 -1
- package/docker-build/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +0 -2
- package/docker-build/standalone/.next/server/app/_not-found.html +0 -1
- package/docker-build/standalone/.next/server/app/_not-found.meta +0 -16
- package/docker-build/standalone/.next/server/app/_not-found.rsc +0 -14
- package/docker-build/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +0 -14
- package/docker-build/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +0 -6
- package/docker-build/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +0 -5
- package/docker-build/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +0 -5
- package/docker-build/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +0 -4
- package/docker-build/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +0 -2
- package/docker-build/standalone/.next/server/app/favicon.ico/route/app-paths-manifest.json +0 -3
- package/docker-build/standalone/.next/server/app/favicon.ico/route/build-manifest.json +0 -11
- package/docker-build/standalone/.next/server/app/favicon.ico/route.js +0 -6
- package/docker-build/standalone/.next/server/app/favicon.ico/route.js.map +0 -5
- package/docker-build/standalone/.next/server/app/favicon.ico/route.js.nft.json +0 -1
- package/docker-build/standalone/.next/server/app/favicon.ico.body +0 -0
- package/docker-build/standalone/.next/server/app/favicon.ico.meta +0 -1
- package/docker-build/standalone/.next/server/app/index.html +0 -1
- package/docker-build/standalone/.next/server/app/index.meta +0 -14
- package/docker-build/standalone/.next/server/app/index.rsc +0 -16
- package/docker-build/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +0 -5
- package/docker-build/standalone/.next/server/app/index.segments/_full.segment.rsc +0 -16
- package/docker-build/standalone/.next/server/app/index.segments/_head.segment.rsc +0 -6
- package/docker-build/standalone/.next/server/app/index.segments/_index.segment.rsc +0 -5
- package/docker-build/standalone/.next/server/app/index.segments/_tree.segment.rsc +0 -4
- package/docker-build/standalone/.next/server/app/page/app-paths-manifest.json +0 -3
- package/docker-build/standalone/.next/server/app/page/build-manifest.json +0 -16
- package/docker-build/standalone/.next/server/app/page/next-font-manifest.json +0 -11
- package/docker-build/standalone/.next/server/app/page/react-loadable-manifest.json +0 -1
- package/docker-build/standalone/.next/server/app/page/server-reference-manifest.json +0 -4
- package/docker-build/standalone/.next/server/app/page.js +0 -16
- package/docker-build/standalone/.next/server/app/page.js.map +0 -5
- package/docker-build/standalone/.next/server/app/page.js.nft.json +0 -1
- package/docker-build/standalone/.next/server/app/page_client-reference-manifest.js +0 -2
- package/docker-build/standalone/.next/server/app-paths-manifest.json +0 -6
- package/docker-build/standalone/.next/server/chunks/66d90_example-navidad__next-internal_server_app_favicon_ico_route_actions_a30dceae.js +0 -3
- package/docker-build/standalone/.next/server/chunks/[externals]_next_dist_03fe02e0._.js +0 -3
- package/docker-build/standalone/.next/server/chunks/[root-of-the-server]__4b49000d._.js +0 -21
- package/docker-build/standalone/.next/server/chunks/[turbopack]_runtime.js +0 -795
- package/docker-build/standalone/.next/server/chunks/ssr/10072_infra_example-navidad__next-internal_server_app_page_actions_a387aef9.js +0 -3
- package/docker-build/standalone/.next/server/chunks/ssr/2025_cc_CODECRYPTO_infra_example-navidad_377109b0._.js +0 -3
- package/docker-build/standalone/.next/server/chunks/ssr/2025_cc_CODECRYPTO_infra_example-navidad_90799f30._.js +0 -4
- package/docker-build/standalone/.next/server/chunks/ssr/2025_cc_CODECRYPTO_infra_example-navidad_app_b9057478._.js +0 -3
- package/docker-build/standalone/.next/server/chunks/ssr/66d90_example-navidad__next-internal_server_app__global-error_page_actions_a079475f.js +0 -3
- package/docker-build/standalone/.next/server/chunks/ssr/66d90_example-navidad__next-internal_server_app__not-found_page_actions_ac88cec2.js +0 -3
- package/docker-build/standalone/.next/server/chunks/ssr/77a20_next_dist_51be1544._.js +0 -4
- package/docker-build/standalone/.next/server/chunks/ssr/77a20_next_dist_8dba0557._.js +0 -6
- package/docker-build/standalone/.next/server/chunks/ssr/77a20_next_dist_client_components_41330064._.js +0 -3
- package/docker-build/standalone/.next/server/chunks/ssr/77a20_next_dist_client_components_builtin_forbidden_ff3a0457.js +0 -3
- package/docker-build/standalone/.next/server/chunks/ssr/77a20_next_dist_client_components_builtin_global-error_e0d57e6e.js +0 -3
- package/docker-build/standalone/.next/server/chunks/ssr/77a20_next_dist_client_components_builtin_unauthorized_f1c47e13.js +0 -3
- package/docker-build/standalone/.next/server/chunks/ssr/77a20_next_dist_d332f292._.js +0 -3
- package/docker-build/standalone/.next/server/chunks/ssr/77a20_next_dist_esm_build_templates_app-page_cf6afba1.js +0 -4
- package/docker-build/standalone/.next/server/chunks/ssr/[root-of-the-server]__02f3f427._.js +0 -3
- package/docker-build/standalone/.next/server/chunks/ssr/[root-of-the-server]__2f460610._.js +0 -4
- package/docker-build/standalone/.next/server/chunks/ssr/[root-of-the-server]__4722e53c._.js +0 -3
- package/docker-build/standalone/.next/server/chunks/ssr/[root-of-the-server]__53b749fa._.js +0 -3
- package/docker-build/standalone/.next/server/chunks/ssr/[root-of-the-server]__61942f2d._.js +0 -3
- package/docker-build/standalone/.next/server/chunks/ssr/[root-of-the-server]__7707ad1b._.js +0 -3
- package/docker-build/standalone/.next/server/chunks/ssr/[root-of-the-server]__864cadbf._.js +0 -10
- package/docker-build/standalone/.next/server/chunks/ssr/[root-of-the-server]__9939e281._.js +0 -3
- package/docker-build/standalone/.next/server/chunks/ssr/[root-of-the-server]__b4b0aa8a._.js +0 -3
- package/docker-build/standalone/.next/server/chunks/ssr/[root-of-the-server]__d2b7072b._.js +0 -3
- package/docker-build/standalone/.next/server/chunks/ssr/[turbopack]_runtime.js +0 -795
- package/docker-build/standalone/.next/server/functions-config-manifest.json +0 -4
- package/docker-build/standalone/.next/server/middleware-build-manifest.js +0 -20
- package/docker-build/standalone/.next/server/middleware-manifest.json +0 -6
- package/docker-build/standalone/.next/server/next-font-manifest.js +0 -1
- package/docker-build/standalone/.next/server/next-font-manifest.json +0 -15
- package/docker-build/standalone/.next/server/pages/404.html +0 -1
- package/docker-build/standalone/.next/server/pages/500.html +0 -2
- package/docker-build/standalone/.next/server/pages-manifest.json +0 -4
- package/docker-build/standalone/.next/server/server-reference-manifest.js +0 -1
- package/docker-build/standalone/.next/server/server-reference-manifest.json +0 -5
- package/docker-build/standalone/.next/static/_NbfI2TKfapiyxsQgIG3h/_buildManifest.js +0 -11
- package/docker-build/standalone/.next/static/_NbfI2TKfapiyxsQgIG3h/_clientMiddlewareManifest.json +0 -1
- package/docker-build/standalone/.next/static/_NbfI2TKfapiyxsQgIG3h/_ssgManifest.js +0 -1
- package/docker-build/standalone/.next/static/chunks/57d1af92f5dc15fa.js +0 -1
- package/docker-build/standalone/.next/static/chunks/6ae71d5e8ea4d1eb.js +0 -1
- package/docker-build/standalone/.next/static/chunks/70977d70c9306213.js +0 -1
- package/docker-build/standalone/.next/static/chunks/777dac7104fe2a30.js +0 -5
- package/docker-build/standalone/.next/static/chunks/a6dad97d9634a72d.js +0 -1
- package/docker-build/standalone/.next/static/chunks/a6dad97d9634a72d.js.map +0 -1
- package/docker-build/standalone/.next/static/chunks/d6aec49b013224a2.css +0 -3
- package/docker-build/standalone/.next/static/chunks/turbopack-0ce517fb6224c1f0.js +0 -4
- package/docker-build/standalone/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
- package/docker-build/standalone/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
- package/docker-build/standalone/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
- package/docker-build/standalone/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
- package/docker-build/standalone/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
- package/docker-build/standalone/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
- package/docker-build/standalone/.next/static/media/favicon.0b3bf435.ico +0 -0
- package/docker-build/standalone/package.json +0 -26
- package/docker-build/standalone/public/file.svg +0 -1
- package/docker-build/standalone/public/globe.svg +0 -1
- package/docker-build/standalone/public/next.svg +0 -1
- package/docker-build/standalone/public/vercel.svg +0 -1
- package/docker-build/standalone/public/window.svg +0 -1
- package/docker-build/standalone/server.js +0 -38
- package/token.json +0 -69
package/dist/index.js
CHANGED
|
@@ -1,11 +1,76 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
3
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
37
|
const commander_1 = require("commander");
|
|
38
|
+
const fs = __importStar(require("fs"));
|
|
39
|
+
const path = __importStar(require("path"));
|
|
40
|
+
const os = __importStar(require("os"));
|
|
5
41
|
const deploy_1 = require("./commands/deploy");
|
|
6
42
|
const deploy_sc_1 = require("./commands/deploy-sc");
|
|
7
43
|
const auth_1 = require("./commands/auth");
|
|
8
44
|
const doctor_1 = require("./commands/doctor");
|
|
45
|
+
// Cargar variables de entorno desde ~/.codecrypto/.env si existe
|
|
46
|
+
function loadEnvFile() {
|
|
47
|
+
const homeDir = os.homedir();
|
|
48
|
+
const codecryptoDir = path.join(homeDir, '.codecrypto');
|
|
49
|
+
const envFilePath = path.join(codecryptoDir, '.env');
|
|
50
|
+
// Si el archivo .env existe, cargarlo
|
|
51
|
+
if (fs.existsSync(envFilePath)) {
|
|
52
|
+
const envContent = fs.readFileSync(envFilePath, 'utf-8');
|
|
53
|
+
const envLines = envContent.split('\n');
|
|
54
|
+
for (const line of envLines) {
|
|
55
|
+
const trimmed = line.trim();
|
|
56
|
+
// Ignorar comentarios y líneas vacías
|
|
57
|
+
if (!trimmed || trimmed.startsWith('#'))
|
|
58
|
+
continue;
|
|
59
|
+
const equalIndex = trimmed.indexOf('=');
|
|
60
|
+
if (equalIndex === -1)
|
|
61
|
+
continue;
|
|
62
|
+
const key = trimmed.substring(0, equalIndex).trim();
|
|
63
|
+
const value = trimmed.substring(equalIndex + 1).trim();
|
|
64
|
+
// Solo establecer si no está ya definida en process.env (las variables del sistema tienen prioridad)
|
|
65
|
+
if (!process.env[key]) {
|
|
66
|
+
process.env[key] = value;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Si el folder no existe, se creará automáticamente cuando se ejecute 'auth' por primera vez
|
|
71
|
+
}
|
|
72
|
+
// Cargar .env antes de ejecutar comandos
|
|
73
|
+
loadEnvFile();
|
|
9
74
|
const program = new commander_1.Command();
|
|
10
75
|
program
|
|
11
76
|
.name('codecrypto')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,8CAAkD;AAClD,oDAAuD;AACvD,0CAA8C;AAC9C,8CAAkD;AAElD,iEAAiE;AACjE,SAAS,WAAW;IAClB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAErD,sCAAsC;IACtC,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAExC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,sCAAsC;YACtC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAElD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,UAAU,KAAK,CAAC,CAAC;gBAAE,SAAS;YAEhC,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAEvD,qGAAqG;YACrG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IACD,6FAA6F;AAC/F,CAAC;AAED,yCAAyC;AACzC,WAAW,EAAE,CAAC;AAEd,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,oCAAoC,CAAC;KACjD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,qBAAqB;AACrB,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,2BAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAElC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
package/package.json
CHANGED
package/src/commands/auth.ts
CHANGED
|
@@ -25,7 +25,7 @@ interface TokenVerificationResponse {
|
|
|
25
25
|
error?: string;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
const API_BASE_URL = 'http://localhost:3000';
|
|
28
|
+
const API_BASE_URL = process.env.CODECRYPTO_API_URL || process.env.API_URL || 'http://localhost:3000';
|
|
29
29
|
const POLL_INTERVAL = 3000; // 3 segundos
|
|
30
30
|
const MAX_POLL_ATTEMPTS = 100; // Máximo 5 minutos (100 * 3 segundos)
|
|
31
31
|
|
|
@@ -10,7 +10,7 @@ export const deployScCommand = new Command('deploy-sc')
|
|
|
10
10
|
.description('Deploy smart contract using Foundry')
|
|
11
11
|
.argument('<script-path>', 'Path to the Foundry deployment script')
|
|
12
12
|
.option('-u, --url <rpc-url>', 'RPC URL of the blockchain', 'http://server.codecrypto.academy:8546')
|
|
13
|
-
.option('-k, --private-key <key>', 'Private key for deployment (
|
|
13
|
+
.option('-k, --private-key <key>', 'Private key for deployment (required unless using --anvil or --account)')
|
|
14
14
|
.option('--account <index>', 'Account index to use (for Anvil, use 0 for the default unlocked account)')
|
|
15
15
|
.option('--anvil', 'Force use of Anvil account 0 (ignores private-key)')
|
|
16
16
|
.option('--verify', 'Verify contract on block explorer', false)
|
|
@@ -80,8 +80,6 @@ export const deployScCommand = new Command('deploy-sc')
|
|
|
80
80
|
// Agregar private key si se proporciona
|
|
81
81
|
if (options.privateKey) {
|
|
82
82
|
env.PRIVATE_KEY = options.privateKey;
|
|
83
|
-
} else if (!process.env.PRIVATE_KEY) {
|
|
84
|
-
console.warn(chalk.yellow('⚠️ No se proporcionó PRIVATE_KEY. Asegúrate de tenerla configurada en el entorno.'));
|
|
85
83
|
}
|
|
86
84
|
|
|
87
85
|
// Construir comando forge script
|
|
@@ -101,32 +99,36 @@ export const deployScCommand = new Command('deploy-sc')
|
|
|
101
99
|
options.anvil === true;
|
|
102
100
|
|
|
103
101
|
// Agregar private key o account según el caso - REQUERIDO
|
|
104
|
-
const privateKey = options.privateKey || process.env.PRIVATE_KEY;
|
|
105
|
-
|
|
106
102
|
// Si se especifica explícitamente --account, usarlo
|
|
107
103
|
if (options.account !== undefined) {
|
|
108
104
|
forgeArgs.push('--account', String(options.account));
|
|
109
|
-
if (privateKey) {
|
|
110
|
-
console.warn(chalk.yellow('⚠️ Se proporcionó
|
|
105
|
+
if (options.privateKey) {
|
|
106
|
+
console.warn(chalk.yellow('⚠️ Se proporcionó --private-key pero se está usando --account. Se ignora la --private-key.'));
|
|
107
|
+
}
|
|
108
|
+
} else if (options.anvil) {
|
|
109
|
+
// Si se usa --anvil, usar cuenta 0
|
|
110
|
+
forgeArgs.push('--account', '0');
|
|
111
|
+
if (options.privateKey) {
|
|
112
|
+
console.warn(chalk.yellow('⚠️ Se proporcionó --private-key pero se está usando --anvil. Se ignora la --private-key.'));
|
|
111
113
|
}
|
|
112
|
-
} else if (privateKey) {
|
|
113
|
-
// Usar private key proporcionada
|
|
114
|
-
forgeArgs.push('--private-key', privateKey);
|
|
114
|
+
} else if (options.privateKey) {
|
|
115
|
+
// Usar private key proporcionada
|
|
116
|
+
forgeArgs.push('--private-key', options.privateKey);
|
|
115
117
|
} else if (isAnvilLocal) {
|
|
116
|
-
// Para Anvil, si no se proporciona private key, usar cuenta 0 como fallback
|
|
117
|
-
console.warn(chalk.yellow('⚠️ No se proporcionó
|
|
118
|
+
// Para Anvil local, si no se proporciona private key, usar cuenta 0 como fallback
|
|
119
|
+
console.warn(chalk.yellow('⚠️ No se proporcionó --private-key.'));
|
|
118
120
|
console.warn(chalk.yellow(' Usando cuenta 0 de Anvil (--account 0) como alternativa.'));
|
|
119
121
|
console.warn(chalk.yellow(' Recomendado: Proporciona --private-key para mayor control.'));
|
|
120
122
|
forgeArgs.push('--account', '0');
|
|
121
123
|
} else {
|
|
122
124
|
// ERROR: Se requiere private key para redes remotas
|
|
123
|
-
console.error(chalk.red('\n❌ Error: Se requiere
|
|
124
|
-
console.error(chalk.red(' Para Anvil: usa --account <index> o
|
|
125
|
-
console.error(chalk.red(' Para otras redes: proporciona --private-key
|
|
125
|
+
console.error(chalk.red('\n❌ Error: Se requiere --private-key para desplegar.'));
|
|
126
|
+
console.error(chalk.red(' Para Anvil: usa --account <index> o --anvil'));
|
|
127
|
+
console.error(chalk.red(' Para otras redes: proporciona --private-key'));
|
|
126
128
|
console.error(chalk.cyan('\n Ejemplos:'));
|
|
127
129
|
console.error(chalk.cyan(' --private-key 0x...'));
|
|
128
130
|
console.error(chalk.cyan(' --account 0 (solo para Anvil)'));
|
|
129
|
-
console.error(chalk.cyan('
|
|
131
|
+
console.error(chalk.cyan(' --anvil (usa cuenta 0 de Anvil)'));
|
|
130
132
|
process.exit(1);
|
|
131
133
|
}
|
|
132
134
|
|
|
@@ -174,11 +176,23 @@ export const deployScCommand = new Command('deploy-sc')
|
|
|
174
176
|
if (options.broadcast) {
|
|
175
177
|
const uploadSpinner = ora('Uploading deployment results to database...').start();
|
|
176
178
|
try {
|
|
179
|
+
// Determinar qué privateKey/account se usó para el upload
|
|
180
|
+
let privateKeyForUpload: string | null = null;
|
|
181
|
+
if (options.privateKey) {
|
|
182
|
+
privateKeyForUpload = options.privateKey;
|
|
183
|
+
} else if (options.account !== undefined) {
|
|
184
|
+
privateKeyForUpload = `account-${options.account}`;
|
|
185
|
+
} else if (options.anvil) {
|
|
186
|
+
privateKeyForUpload = 'account-0';
|
|
187
|
+
} else if (isAnvilLocal && !options.privateKey) {
|
|
188
|
+
privateKeyForUpload = 'account-0';
|
|
189
|
+
}
|
|
190
|
+
|
|
177
191
|
await uploadDeploymentResults({
|
|
178
192
|
scriptPath: scriptRelativePath,
|
|
179
193
|
foundryProjectDir,
|
|
180
194
|
rpcUrl: options.url,
|
|
181
|
-
privateKey:
|
|
195
|
+
privateKey: privateKeyForUpload,
|
|
182
196
|
debug: options.debug || false,
|
|
183
197
|
});
|
|
184
198
|
uploadSpinner.succeed('Deployment results uploaded successfully');
|
|
@@ -245,7 +259,7 @@ async function uploadDeploymentResults(config: {
|
|
|
245
259
|
}
|
|
246
260
|
|
|
247
261
|
const email = tokenData.email;
|
|
248
|
-
const serverUrl = tokenData.serverUrl || 'http://localhost:3000';
|
|
262
|
+
const serverUrl = tokenData.serverUrl || process.env.CODECRYPTO_API_URL || process.env.API_URL || 'http://localhost:3000';
|
|
249
263
|
const token = tokenData.token;
|
|
250
264
|
|
|
251
265
|
if (!email) {
|