codecrypto-cli 1.0.13 → 1.0.15

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
@@ -2,25 +2,87 @@
2
2
 
3
3
  CLI tool para desplegar aplicaciones Next.js/Express y smart contracts con Foundry.
4
4
 
5
- ## Instalación
5
+ ## 🚀 Instalación Rápida
6
6
 
7
7
  ```bash
8
- # Usando NPX (sin instalación)
8
+ # Instalación global (recomendado)
9
+ npm install -g codecrypto-cli
10
+
11
+ # O usar sin instalar
9
12
  npx codecrypto-cli [command]
10
13
 
11
- # Instalación global
12
- npm install -g codecrypto-cli
13
- codecrypto [command]
14
+ # Verificar instalación
15
+ codecrypto --help
16
+ ```
17
+
18
+ **Primeros pasos:**
19
+ ```bash
20
+ # 1. Validar que todo está listo
21
+ codecrypto doctor
22
+
23
+ # 2. Autenticarse
24
+ codecrypto auth
14
25
 
15
- # Desarrollo local
16
- git clone <repository>
17
- cd cli-cc
26
+ # 3. ¡Listo para usar!
27
+ ```
28
+
29
+ **Desarrollo local:**
30
+ ```bash
31
+ # Clonar repositorio
32
+ git clone https://gitlab.codecrypto.academy/codecrypto/codecrypto-cli.git
33
+ cd codecrypto-cli
34
+
35
+ # Instalar dependencias
18
36
  npm install
37
+
38
+ # Compilar
19
39
  npm run build
40
+
41
+ # Enlazar localmente
20
42
  npm link
43
+
44
+ # Probar
45
+ codecrypto --help
46
+ ```
47
+
48
+ ---
49
+
50
+ ## 📋 Guía Rápida de Comandos
51
+
52
+ | Comando | Descripción | Uso Básico |
53
+ |---------|-------------|------------|
54
+ | `auth` | Autenticarse con CodeCrypto | `codecrypto auth` |
55
+ | `doctor` | Validar sistema y prerequisitos | `codecrypto doctor` |
56
+ | `deploy` | Desplegar app Next.js/Express | `codecrypto deploy <ruta-proyecto>` |
57
+ | `deploy-sc` | Desplegar smart contract | `codecrypto deploy-sc <script.s.sol>` |
58
+ | `generate-keys` | Generar claves Foundry | `codecrypto generate-keys` |
59
+
60
+ ### Ejemplos Rápidos
61
+
62
+ **Desplegar aplicación:**
63
+ ```bash
64
+ codecrypto deploy ../mi-app --deploy
21
65
  ```
22
66
 
23
- ## Comandos
67
+ **Desplegar smart contract en Anvil:**
68
+ ```bash
69
+ codecrypto deploy-sc ./script/Deploy.s.sol --anvil
70
+ ```
71
+
72
+ **Generar claves para desarrollo:**
73
+ ```bash
74
+ codecrypto generate-keys --count 10
75
+ ```
76
+
77
+ **Ver ayuda de un comando:**
78
+ ```bash
79
+ codecrypto deploy --help
80
+ codecrypto deploy-sc --help
81
+ ```
82
+
83
+ ---
84
+
85
+ ## 📖 Documentación Completa de Comandos
24
86
 
25
87
  ### 🔐 `auth` - Autenticación
26
88
 
@@ -54,10 +116,13 @@ codecrypto doctor --verbose
54
116
  - ✅ Docker Hub authentication
55
117
  - ✅ CodeCrypto token
56
118
  - ✅ Certificados Docker (desde token.json)
119
+ - ✅ Acceso al servidor proyectos.codecrypto.academy
57
120
  - ✅ Git
58
121
  - ✅ Foundry (forge, cast, anvil)
59
122
  - ✅ Anvil corriendo (puerto 8545)
60
123
  - ✅ Acceso a cuenta Anvil 0
124
+ - ✅ Acceso a red Besu1 (https://besu1.proyectos.codecrypto.academy)
125
+ - ✅ Acceso a red Besu2 (https://besu2.proyectos.codecrypto.academy)
61
126
 
62
127
  ---
63
128
 
@@ -140,7 +205,7 @@ codecrypto deploy-sc <script-path> \
140
205
 
141
206
  **Opciones:**
142
207
  - `<script-path>` - Ruta al script Foundry `.s.sol` (requerido)
143
- - `-u, --url <rpc-url>` - URL RPC (default: `https://besu1.codecrypto.academy`)
208
+ - `-u, --url <rpc-url>` - URL RPC (default: `https://besu1.proyectos.codecrypto.academy`)
144
209
  - `-k, --private-key <key>` - Clave privada (o usar `PRIVATE_KEY` env var)
145
210
  - `--account <index>` - Índice de cuenta (para Anvil, usa `0`)
146
211
  - `--anvil` - Forzar uso de cuenta Anvil 0 (ignora private-key)
@@ -152,9 +217,17 @@ codecrypto deploy-sc <script-path> \
152
217
  **Proceso:**
153
218
  1. Valida que el script existe y es `.s.sol`
154
219
  2. Detecta proyecto Foundry (busca `foundry.toml`)
155
- 3. Ejecuta `forge script` con configuración
156
- 4. Guarda resultados en `broadcast/`
157
- 5. Sube transacciones a BD vía `/api/uploadSmartContract`
220
+ 3. **Valida el saldo de la cuenta** (si se usa `--private-key`, verifica que tenga al menos 0.001 ETH)
221
+ 4. Ejecuta `forge script` con configuración
222
+ 5. Guarda resultados en `broadcast/`
223
+ 6. Sube transacciones a BD vía `/api/uploadSmartContract` en `https://proyectos.proyectos.codecrypto.academy`
224
+
225
+ **Validación de saldo:**
226
+ - Se valida automáticamente cuando se usa `--private-key`
227
+ - Requiere un saldo mínimo de **1.0 ETH** para continuar
228
+ - Muestra la dirección y el saldo actual antes de desplegar
229
+ - Si el saldo es insuficiente, sugiere usar el faucet: `https://faucet.codecrypto.academy`
230
+ - No se valida cuando se usa `--anvil` o `--account` (desarrollo local)
158
231
 
159
232
  **Datos subidos a BD:**
160
233
  - Email del usuario
@@ -163,6 +236,80 @@ codecrypto deploy-sc <script-path> \
163
236
  - RPC URL usado
164
237
  - Clave privada (o `account-{index}`)
165
238
 
239
+ **URL de subida:**
240
+ - Por defecto: `https://proyectos.proyectos.codecrypto.academy/api/uploadSmartContract`
241
+ - Configurable mediante variable de entorno: `CODECRYPTO_UPLOAD_URL` o `UPLOAD_SMART_CONTRACT_URL`
242
+
243
+ ---
244
+
245
+ ### 🔑 `generate-keys` - Generación de Claves Foundry
246
+
247
+ Genera un archivo de claves Foundry con mnemonic y cuentas derivadas para desarrollo y testing.
248
+
249
+ ```bash
250
+ # Generar claves con mnemonic aleatorio (10 cuentas por defecto)
251
+ codecrypto generate-keys
252
+
253
+ # Especificar número de cuentas
254
+ codecrypto generate-keys --count 20
255
+
256
+ # Usar mnemonic existente
257
+ codecrypto generate-keys --mnemonic "word1 word2 ... word12"
258
+
259
+ # Especificar archivo de salida
260
+ codecrypto generate-keys --output ~/.foundry/keys.json
261
+
262
+ # Combinar opciones
263
+ codecrypto generate-keys \
264
+ --mnemonic "your twelve word mnemonic phrase here" \
265
+ --count 5 \
266
+ --output ./my-keys.json
267
+ ```
268
+
269
+ **Opciones:**
270
+ - `-m, --mnemonic <mnemonic>` - Frase mnemonic (si no se proporciona, se genera una aleatoria)
271
+ - `-n, --count <number>` - Número de cuentas a generar (default: `10`, máximo: `100`)
272
+ - `-o, --output <path>` - Ruta del archivo de salida (default: `~/.foundry/keys.json`)
273
+
274
+ **Funcionamiento:**
275
+ 1. Genera o valida mnemonic (12 palabras)
276
+ 2. Deriva cuentas usando el path estándar BIP44: `m/44'/60'/0'/0/{index}`
277
+ 3. Guarda todas las cuentas con sus direcciones y claves privadas
278
+ 4. Crea el directorio de salida si no existe
279
+
280
+ **Formato del archivo generado:**
281
+ ```json
282
+ {
283
+ "mnemonic": "word1 word2 word3 ... word12",
284
+ "accounts": [
285
+ {
286
+ "address": "0x...",
287
+ "private_key": "0x..."
288
+ },
289
+ ...
290
+ ]
291
+ }
292
+ ```
293
+
294
+ **Uso con Foundry:**
295
+ ```bash
296
+ # Generar claves
297
+ codecrypto generate-keys --output ~/.foundry/keys.json
298
+
299
+ # Usar en scripts Foundry
300
+ # Las claves privadas se pueden usar directamente en forge script
301
+ forge script Deploy.s.sol \
302
+ --private-key $(jq -r '.accounts[0].private_key' ~/.foundry/keys.json) \
303
+ --rpc-url http://localhost:8545 \
304
+ --broadcast
305
+ ```
306
+
307
+ **Seguridad:**
308
+ - ⚠️ **Nunca** compartas tu mnemonic o claves privadas
309
+ - ⚠️ **Nunca** commitees el archivo de claves a control de versiones
310
+ - ⚠️ Usa estas claves solo para desarrollo y testing
311
+ - ⚠️ Para producción, usa un wallet seguro (MetaMask, Ledger, etc.)
312
+
166
313
  ---
167
314
 
168
315
  ## Ejemplos de Uso
@@ -203,12 +350,24 @@ codecrypto deploy-sc ./script/Deploy.s.sol \
203
350
 
204
351
  # En red remota con clave privada
205
352
  codecrypto deploy-sc ./script/Deploy.s.sol \
206
- --url https://besu1.codecrypto.academy \
353
+ --url https://besu1.proyectos.codecrypto.academy \
207
354
  --private-key 0x1234567890abcdef... \
208
355
  --broadcast \
209
356
  --verify
210
357
  ```
211
358
 
359
+ ### Generar claves para desarrollo
360
+
361
+ ```bash
362
+ # Generar claves Foundry
363
+ codecrypto generate-keys --count 10
364
+
365
+ # Usar en script de despliegue
366
+ codecrypto deploy-sc ./script/Deploy.s.sol \
367
+ --private-key $(jq -r '.accounts[0].private_key' ~/.foundry/keys.json) \
368
+ --anvil
369
+ ```
370
+
212
371
  ### Workflow completo
213
372
 
214
373
  ```bash
@@ -218,10 +377,13 @@ codecrypto doctor
218
377
  # 2. Autenticarse (si es necesario)
219
378
  codecrypto auth
220
379
 
221
- # 3. Desplegar aplicación
380
+ # 3. Generar claves (opcional, para smart contracts)
381
+ codecrypto generate-keys
382
+
383
+ # 4. Desplegar aplicación
222
384
  codecrypto deploy ../mi-app --deploy
223
385
 
224
- # 4. Desplegar smart contract
386
+ # 5. Desplegar smart contract
225
387
  codecrypto deploy-sc ./script/Deploy.s.sol --anvil
226
388
  ```
227
389
 
@@ -237,7 +399,8 @@ cli-cc/
237
399
  │ ├── auth.ts # Autenticación
238
400
  │ ├── deploy.ts # Deploy Next.js/Express
239
401
  │ ├── deploy-sc.ts # Deploy Smart Contracts
240
- └── doctor.ts # Validación del sistema
402
+ ├── doctor.ts # Validación del sistema
403
+ │ └── generate-keys.ts # Generación de claves Foundry
241
404
  ├── dist/ # Build output
242
405
  ├── package.json
243
406
  ├── tsconfig.json
@@ -335,19 +498,179 @@ EOF
335
498
  **Nota:** El folder `~/.codecrypto` se crea automáticamente la primera vez que ejecutas `codecrypto auth`, pero puedes crearlo manualmente antes si lo necesitas.
336
499
 
337
500
  **Variables disponibles:**
338
- - `CODECRYPTO_API_URL` o `API_URL` - URL del servidor API (default: `http://localhost:3000`)
501
+ - `CODECRYPTO_API_URL` o `API_URL` - URL del servidor API (default: `https://proyectos.codecrypto.academy`)
502
+ - `CODECRYPTO_UPLOAD_URL` o `UPLOAD_SMART_CONTRACT_URL` - URL para subir smart contracts (default: `https://proyectos.proyectos.codecrypto.academy`)
339
503
 
340
504
  **Nota:** Las variables del sistema operativo tienen prioridad sobre el archivo `.env`.
341
505
 
342
506
  ---
343
507
 
344
- ## Requisitos
508
+ ## 📋 Prerequisitos Detallados
509
+
510
+ Antes de usar el CLI, asegúrate de tener instalados y configurados los siguientes componentes:
511
+
512
+ ### Requisitos Obligatorios
345
513
 
346
- - Node.js >= 16.0.0
514
+ #### 1. Node.js y npm
515
+ - **Node.js** >= 16.0.0 (recomendado: >= 18.0.0)
516
+ - **npm** (incluido con Node.js)
517
+
518
+ **Instalación:**
519
+ ```bash
520
+ # Verificar versión instalada
521
+ node --version
522
+ npm --version
523
+
524
+ # Si no está instalado, descargar desde:
525
+ # https://nodejs.org/
526
+ ```
527
+
528
+ #### 2. Docker y Docker Buildx
529
+ - **Docker** >= 20.10.0
530
+ - **Docker Buildx** (incluido en Docker Desktop o instalable por separado)
531
+
532
+ **Instalación:**
533
+ ```bash
534
+ # Verificar instalación
535
+ docker --version
536
+ docker buildx version
537
+
538
+ # Instalar Docker Desktop desde:
539
+ # https://www.docker.com/get-started
540
+
541
+ # O en Linux:
542
+ # Ubuntu/Debian
543
+ sudo apt-get update
544
+ sudo apt-get install docker.io docker-buildx-plugin
545
+
546
+ # Verificar que el daemon está corriendo
547
+ docker info
548
+ ```
549
+
550
+ **Configuración Docker Hub:**
551
+ ```bash
552
+ # Autenticarse en Docker Hub
553
+ docker login
554
+
555
+ # Verificar autenticación
556
+ docker info | grep Username
557
+ ```
558
+
559
+ #### 3. Git
560
+ - **Git** >= 2.0.0
561
+
562
+ **Instalación:**
563
+ ```bash
564
+ # Verificar versión
565
+ git --version
566
+
567
+ # Si no está instalado:
568
+ # macOS: viene con Xcode Command Line Tools
569
+ xcode-select --install
570
+
571
+ # Linux
572
+ sudo apt-get install git # Ubuntu/Debian
573
+ sudo yum install git # CentOS/RHEL
574
+
575
+ # Windows: https://git-scm.com/download/win
576
+ ```
577
+
578
+ ### Requisitos para Smart Contracts
579
+
580
+ #### 4. Foundry
581
+ - **forge** (compilador de Solidity)
582
+ - **cast** (herramienta CLI para interactuar con contratos)
583
+ - **anvil** (blockchain local para desarrollo)
584
+
585
+ **Instalación:**
586
+ ```bash
587
+ # Instalar Foundry
588
+ curl -L https://foundry.paradigm.xyz | bash
589
+ foundryup
590
+
591
+ # Verificar instalación
592
+ forge --version
593
+ cast --version
594
+ anvil --version
595
+ ```
596
+
597
+ **Configuración:**
598
+ ```bash
599
+ # Crear proyecto Foundry (opcional, para testing)
600
+ forge init my-project
601
+ cd my-project
602
+ ```
603
+
604
+ #### 5. Anvil (Blockchain Local)
605
+ Anvil debe estar corriendo para desplegar smart contracts localmente.
606
+
607
+ **Iniciar Anvil:**
608
+ ```bash
609
+ # Configuración recomendada para CodeCrypto
610
+ anvil --chain-id 3133731337 --port 55556
611
+
612
+ # O en puerto estándar
613
+ anvil --chain-id 3133731337 --port 8545
614
+ ```
615
+
616
+ **Verificar que está corriendo:**
617
+ ```bash
618
+ # Verificar conexión
619
+ cast block-number --rpc-url http://localhost:8545
620
+
621
+ # O si usas puerto 55556
622
+ cast block-number --rpc-url http://localhost:55556
623
+ ```
624
+
625
+ ### Requisitos para Despliegue Remoto
626
+
627
+ #### 6. Acceso a Servidores CodeCrypto
628
+ - Acceso a `proyectos.codecrypto.academy` (para despliegue de aplicaciones)
629
+ - Acceso a `besu1.proyectos.codecrypto.academy` (red blockchain Besu 1)
630
+ - Acceso a `besu2.proyectos.codecrypto.academy` (red blockchain Besu 2)
631
+
632
+ **Verificar conectividad:**
633
+ ```bash
634
+ # Verificar acceso a servidor de proyectos
635
+ curl -I https://proyectos.codecrypto.academy
636
+
637
+ # Verificar acceso a redes blockchain
638
+ curl -I https://besu1.proyectos.codecrypto.academy
639
+ curl -I https://besu2.proyectos.codecrypto.academy
640
+ ```
641
+
642
+ ### Verificación Completa
643
+
644
+ Ejecuta el comando `doctor` para validar todos los prerequisitos:
645
+
646
+ ```bash
647
+ codecrypto doctor
648
+ ```
649
+
650
+ O con información detallada:
651
+
652
+ ```bash
653
+ codecrypto doctor --verbose
654
+ ```
655
+
656
+ ---
657
+
658
+ ## Requisitos (Resumen)
659
+
660
+ **Resumen rápido:**
661
+ - Node.js >= 16.0.0 (recomendado >= 18.0.0)
347
662
  - Docker y Docker Buildx
348
663
  - Git
349
664
  - Foundry (forge, cast, anvil)
350
- - Anvil corriendo en puerto 8545 (para smart contracts locales)
665
+ - Anvil corriendo (puerto 8545 o 55556)
666
+ - Acceso a servidores CodeCrypto
667
+
668
+ **Verificación rápida:**
669
+ ```bash
670
+ codecrypto doctor
671
+ ```
672
+
673
+ Para instrucciones detalladas de instalación, consulta la sección [Prerequisitos Detallados](#-prerequisitos-detallados) arriba.
351
674
 
352
675
  ---
353
676
 
@@ -362,6 +685,7 @@ codecrypto deploy --help
362
685
  codecrypto deploy-sc --help
363
686
  codecrypto auth --help
364
687
  codecrypto doctor --help
688
+ codecrypto generate-keys --help
365
689
  ```
366
690
 
367
691
  ---
@@ -44,7 +44,7 @@ const fs = __importStar(require("fs"));
44
44
  const path = __importStar(require("path"));
45
45
  const os = __importStar(require("os"));
46
46
  const jose_1 = require("jose");
47
- const API_BASE_URL = process.env.CODECRYPTO_API_URL || process.env.API_URL || 'http://localhost:3000';
47
+ const API_BASE_URL = process.env.CODECRYPTO_API_URL || process.env.API_URL || 'https://proyectos.codecrypto.academy';
48
48
  const POLL_INTERVAL = 3000; // 3 segundos
49
49
  const MAX_POLL_ATTEMPTS = 100; // Máximo 5 minutos (100 * 3 segundos)
50
50
  exports.authCommand = new commander_1.Command('auth')
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"deploy-sc.d.ts","sourceRoot":"","sources":["../../src/commands/deploy-sc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,eAAe,SAoOxB,CAAC"}
1
+ {"version":3,"file":"deploy-sc.d.ts","sourceRoot":"","sources":["../../src/commands/deploy-sc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,eAAO,MAAM,eAAe,SA0QxB,CAAC"}
@@ -44,10 +44,11 @@ const child_process_1 = require("child_process");
44
44
  const fs = __importStar(require("fs"));
45
45
  const path = __importStar(require("path"));
46
46
  const os = __importStar(require("os"));
47
+ const ethers_1 = require("ethers");
47
48
  exports.deployScCommand = new commander_1.Command('deploy-sc')
48
49
  .description('Deploy smart contract using Foundry')
49
50
  .argument('<script-path>', 'Path to the Foundry deployment script')
50
- .option('-u, --url <rpc-url>', 'RPC URL of the blockchain', 'https://besu1.codecrypto.academy')
51
+ .option('-u, --url <rpc-url>', 'RPC URL of the blockchain', 'https://besu1.proyectos.codecrypto.academy')
51
52
  .option('-k, --private-key <key>', 'Private key for deployment (required unless using --anvil or --account)')
52
53
  .option('--account <index>', 'Account index to use (for Anvil, use 0 for the default unlocked account)')
53
54
  .option('--anvil', 'Force use of Anvil account 0 (ignores private-key)')
@@ -182,6 +183,40 @@ exports.deployScCommand = new commander_1.Command('deploy-sc')
182
183
  if (options.slow) {
183
184
  forgeArgs.push('--slow');
184
185
  }
186
+ // Validar saldo antes de desplegar (solo si se usa private-key)
187
+ if (options.privateKey && !options.anvil && options.account === undefined) {
188
+ const balanceSpinner = (0, ora_1.default)('Verificando saldo de la cuenta...').start();
189
+ try {
190
+ const provider = new ethers_1.ethers.JsonRpcProvider(options.url);
191
+ const wallet = new ethers_1.ethers.Wallet(options.privateKey, provider);
192
+ const address = wallet.address;
193
+ const balance = await provider.getBalance(address);
194
+ // Convertir a ETH (mínimo 1 ETH recomendado)
195
+ const balanceInEth = ethers_1.ethers.formatEther(balance);
196
+ const minBalance = ethers_1.ethers.parseEther('1.0');
197
+ balanceSpinner.succeed(`Saldo verificado: ${balanceInEth} ETH`);
198
+ if (balance < minBalance) {
199
+ console.error(chalk_1.default.red('\n❌ Error: Saldo insuficiente en la cuenta'));
200
+ console.error(chalk_1.default.red(` Dirección: ${address}`));
201
+ console.error(chalk_1.default.red(` Saldo actual: ${balanceInEth} ETH`));
202
+ console.error(chalk_1.default.red(` Saldo mínimo recomendado: 1.0 ETH`));
203
+ console.error(chalk_1.default.yellow('\n💡 Asegúrate de tener suficiente saldo para pagar las fees de gas'));
204
+ console.log(chalk_1.default.cyan('\n🚰 Obtén fondos del faucet:'));
205
+ console.log(chalk_1.default.cyan(` ${chalk_1.default.underline('https://faucet.codecrypto.academy')}`));
206
+ console.log(chalk_1.default.gray(` Visita el faucet y solicita fondos para tu dirección: ${address}\n`));
207
+ process.exit(1);
208
+ }
209
+ console.log(chalk_1.default.green(` Dirección: ${chalk_1.default.cyan(address)}`));
210
+ console.log(chalk_1.default.green(` Saldo: ${chalk_1.default.cyan(balanceInEth)} ETH\n`));
211
+ }
212
+ catch (error) {
213
+ balanceSpinner.warn(`No se pudo verificar el saldo: ${error.message}`);
214
+ console.log(chalk_1.default.yellow(' Continuando con el despliegue...'));
215
+ console.log(chalk_1.default.yellow(' Asegúrate de tener suficiente saldo para las fees de gas'));
216
+ console.log(chalk_1.default.cyan('\n🚰 Si necesitas fondos, usa el faucet:'));
217
+ console.log(chalk_1.default.cyan(` ${chalk_1.default.underline('https://faucet.codecrypto.academy')}\n`));
218
+ }
219
+ }
185
220
  // Ejecutar el script
186
221
  const deploySpinner = (0, ora_1.default)('Desplegando smart contract...').start();
187
222
  try {
@@ -274,7 +309,8 @@ async function uploadDeploymentResults(config) {
274
309
  throw new Error(`Failed to read token file: ${error.message}`);
275
310
  }
276
311
  const email = tokenData.email;
277
- const serverUrl = tokenData.serverUrl || process.env.CODECRYPTO_API_URL || process.env.API_URL || 'http://localhost:3000';
312
+ // URL específica para subir smart contracts
313
+ const uploadServerUrl = process.env.CODECRYPTO_UPLOAD_URL || process.env.UPLOAD_SMART_CONTRACT_URL || 'https://proyectos.proyectos.codecrypto.academy';
278
314
  const token = tokenData.token;
279
315
  if (!email) {
280
316
  throw new Error('Email not found in token.json');
@@ -328,7 +364,7 @@ async function uploadDeploymentResults(config) {
328
364
  throw new Error('No transactions found in run-latest.json');
329
365
  }
330
366
  // 6. Hacer la llamada POST al endpoint
331
- const apiUrl = `${serverUrl}/api/uploadSmartContract`;
367
+ const apiUrl = `${uploadServerUrl}/api/uploadSmartContract`;
332
368
  // Log de la petición (solo si debug está activado)
333
369
  if (config.debug) {
334
370
  console.log(chalk_1.default.gray('\n[UPLOAD REQUEST] POST /api/uploadSmartContract:'));