codecrypto-cli 1.0.2 → 1.0.4
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/dist/commands/deploy-sc.d.ts +3 -0
- package/dist/commands/deploy-sc.d.ts.map +1 -0
- package/dist/commands/deploy-sc.js +185 -0
- package/dist/commands/deploy-sc.js.map +1 -0
- package/dist/commands/deploy.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/commands/deploy-sc.ts +166 -0
- package/src/commands/deploy.ts +2 -2
- package/src/index.ts +2 -0
|
@@ -0,0 +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;AAOpC,eAAO,MAAM,eAAe,SA6JxB,CAAC"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.deployScCommand = void 0;
|
|
40
|
+
const commander_1 = require("commander");
|
|
41
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
42
|
+
const ora_1 = __importDefault(require("ora"));
|
|
43
|
+
const child_process_1 = require("child_process");
|
|
44
|
+
const fs = __importStar(require("fs"));
|
|
45
|
+
const path = __importStar(require("path"));
|
|
46
|
+
exports.deployScCommand = new commander_1.Command('deploy-sc')
|
|
47
|
+
.description('Deploy smart contract using Foundry')
|
|
48
|
+
.argument('<script-path>', 'Path to the Foundry deployment script')
|
|
49
|
+
.option('-u, --url <rpc-url>', 'RPC URL of the blockchain', 'http://server.codecrypto.academy:8546')
|
|
50
|
+
.option('-k, --private-key <key>', 'Private key for deployment (or use PRIVATE_KEY env var)')
|
|
51
|
+
.option('--verify', 'Verify contract on block explorer', false)
|
|
52
|
+
.option('--broadcast', 'Broadcast the transaction', true)
|
|
53
|
+
.option('--slow', 'Use slow mode for deployment', false)
|
|
54
|
+
.action(async (scriptPath, options) => {
|
|
55
|
+
console.log(chalk_1.default.blue('\n🔷 CodeCrypto Smart Contract Deployment\n'));
|
|
56
|
+
try {
|
|
57
|
+
// Resolver ruta del script
|
|
58
|
+
const resolvedScriptPath = path.resolve(scriptPath);
|
|
59
|
+
// Verificar que el script existe
|
|
60
|
+
if (!fs.existsSync(resolvedScriptPath)) {
|
|
61
|
+
console.error(chalk_1.default.red(`❌ Error: El script no existe: ${resolvedScriptPath}`));
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
// Verificar que es un archivo .s.sol (Foundry script)
|
|
65
|
+
if (!resolvedScriptPath.endsWith('.s.sol')) {
|
|
66
|
+
console.warn(chalk_1.default.yellow(`⚠️ Advertencia: El archivo no tiene extensión .s.sol`));
|
|
67
|
+
}
|
|
68
|
+
// Obtener directorio del proyecto (asumimos que el script está en un proyecto Foundry)
|
|
69
|
+
const projectDir = path.dirname(resolvedScriptPath);
|
|
70
|
+
// Verificar que existe foundry.toml o que estamos en un proyecto Foundry
|
|
71
|
+
const foundryToml = path.join(projectDir, 'foundry.toml');
|
|
72
|
+
const foundryTomlParent = path.join(path.dirname(projectDir), 'foundry.toml');
|
|
73
|
+
let foundryProjectDir = projectDir;
|
|
74
|
+
if (fs.existsSync(foundryToml)) {
|
|
75
|
+
foundryProjectDir = projectDir;
|
|
76
|
+
}
|
|
77
|
+
else if (fs.existsSync(foundryTomlParent)) {
|
|
78
|
+
foundryProjectDir = path.dirname(projectDir);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
console.warn(chalk_1.default.yellow('⚠️ No se encontró foundry.toml, asumiendo que foundry está instalado globalmente'));
|
|
82
|
+
}
|
|
83
|
+
// Obtener nombre del script relativo al proyecto
|
|
84
|
+
const scriptRelativePath = path.relative(foundryProjectDir, resolvedScriptPath);
|
|
85
|
+
console.log(chalk_1.default.gray('Deployment Configuration:'));
|
|
86
|
+
console.log(chalk_1.default.white(` Script: ${chalk_1.default.green(scriptRelativePath)}`));
|
|
87
|
+
console.log(chalk_1.default.white(` RPC URL: ${chalk_1.default.green(options.url)}`));
|
|
88
|
+
console.log(chalk_1.default.white(` Broadcast: ${chalk_1.default.green(options.broadcast ? 'Yes' : 'No')}`));
|
|
89
|
+
console.log(chalk_1.default.white(` Verify: ${options.verify ? chalk_1.default.green('Yes') : chalk_1.default.yellow('No')}\n`));
|
|
90
|
+
// Verificar que forge está instalado
|
|
91
|
+
const forgeSpinner = (0, ora_1.default)('Verificando Foundry...').start();
|
|
92
|
+
try {
|
|
93
|
+
(0, child_process_1.execSync)('forge --version', { stdio: 'pipe' });
|
|
94
|
+
forgeSpinner.succeed('Foundry está instalado');
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
forgeSpinner.fail('Foundry no está instalado');
|
|
98
|
+
console.error(chalk_1.default.red('Por favor instala Foundry: https://book.getfoundry.sh/getting-started/installation'));
|
|
99
|
+
process.exit(1);
|
|
100
|
+
}
|
|
101
|
+
// Preparar variables de entorno
|
|
102
|
+
const env = {
|
|
103
|
+
...process.env,
|
|
104
|
+
RPC_URL: options.url,
|
|
105
|
+
};
|
|
106
|
+
// Agregar private key si se proporciona
|
|
107
|
+
if (options.privateKey) {
|
|
108
|
+
env.PRIVATE_KEY = options.privateKey;
|
|
109
|
+
}
|
|
110
|
+
else if (!process.env.PRIVATE_KEY) {
|
|
111
|
+
console.warn(chalk_1.default.yellow('⚠️ No se proporcionó PRIVATE_KEY. Asegúrate de tenerla configurada en el entorno.'));
|
|
112
|
+
}
|
|
113
|
+
// Construir comando forge script
|
|
114
|
+
const forgeArgs = [
|
|
115
|
+
'script',
|
|
116
|
+
scriptRelativePath,
|
|
117
|
+
'--rpc-url',
|
|
118
|
+
options.url,
|
|
119
|
+
];
|
|
120
|
+
// Agregar private key si está disponible
|
|
121
|
+
const privateKey = options.privateKey || process.env.PRIVATE_KEY;
|
|
122
|
+
if (privateKey) {
|
|
123
|
+
forgeArgs.push('--private-key', privateKey);
|
|
124
|
+
}
|
|
125
|
+
if (options.broadcast) {
|
|
126
|
+
forgeArgs.push('--broadcast');
|
|
127
|
+
}
|
|
128
|
+
// Solo agregar --verify si se especifica explícitamente
|
|
129
|
+
// Advertir si se intenta verificar en una cadena personalizada
|
|
130
|
+
if (options.verify) {
|
|
131
|
+
// Detectar si es una cadena personalizada (no es mainnet, sepolia, etc.)
|
|
132
|
+
const isCustomChain = options.url.includes('codecrypto.academy') ||
|
|
133
|
+
options.url.includes('localhost') ||
|
|
134
|
+
options.url.includes('127.0.0.1') ||
|
|
135
|
+
options.url.includes('8546') ||
|
|
136
|
+
options.url.includes('8545');
|
|
137
|
+
if (isCustomChain) {
|
|
138
|
+
console.warn(chalk_1.default.yellow('⚠️ Advertencia: La verificación en block explorer puede no funcionar para cadenas personalizadas'));
|
|
139
|
+
console.warn(chalk_1.default.yellow(' Si obtienes un error "Chain not found", omite el flag --verify'));
|
|
140
|
+
}
|
|
141
|
+
forgeArgs.push('--verify');
|
|
142
|
+
}
|
|
143
|
+
if (options.slow) {
|
|
144
|
+
forgeArgs.push('--slow');
|
|
145
|
+
}
|
|
146
|
+
// Ejecutar el script
|
|
147
|
+
const deploySpinner = (0, ora_1.default)('Desplegando smart contract...').start();
|
|
148
|
+
try {
|
|
149
|
+
const command = `forge ${forgeArgs.join(' ')}`;
|
|
150
|
+
console.log(chalk_1.default.gray(`\nEjecutando: ${command}\n`));
|
|
151
|
+
(0, child_process_1.execSync)(command, {
|
|
152
|
+
cwd: foundryProjectDir,
|
|
153
|
+
stdio: 'inherit',
|
|
154
|
+
env,
|
|
155
|
+
});
|
|
156
|
+
deploySpinner.succeed('Smart contract desplegado exitosamente');
|
|
157
|
+
console.log(chalk_1.default.green('\n✅ Deployment completed successfully!'));
|
|
158
|
+
console.log(chalk_1.default.gray('Contract details:'));
|
|
159
|
+
console.log(chalk_1.default.white(` Script: ${chalk_1.default.cyan(scriptRelativePath)}`));
|
|
160
|
+
console.log(chalk_1.default.white(` Network: ${chalk_1.default.cyan(options.url)}`));
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
deploySpinner.fail('Error al desplegar el smart contract');
|
|
164
|
+
console.error(chalk_1.default.red('\n❌ Error durante el despliegue'));
|
|
165
|
+
const errorOutput = error.stdout?.toString() || error.stderr?.toString() || error.message || String(error);
|
|
166
|
+
// Detectar error de verificación en cadena no soportada
|
|
167
|
+
if (errorOutput.includes('Chain') && errorOutput.includes('not found')) {
|
|
168
|
+
console.error(chalk_1.default.yellow('\n💡 Sugerencia: Parece que estás intentando verificar en una cadena personalizada.'));
|
|
169
|
+
console.error(chalk_1.default.yellow(' Intenta ejecutar sin el flag --verify:'));
|
|
170
|
+
console.error(chalk_1.default.cyan(` codecrypto deploy-sc ${scriptRelativePath} --url ${options.url}`));
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
if (errorOutput) {
|
|
174
|
+
console.error(chalk_1.default.red(` ${errorOutput}`));
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
process.exit(1);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
console.error(chalk_1.default.red(`\n❌ Error: ${error.message}`));
|
|
182
|
+
process.exit(1);
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
//# sourceMappingURL=deploy-sc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy-sc.js","sourceRoot":"","sources":["../../src/commands/deploy-sc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAsB;AACtB,iDAAyC;AACzC,uCAAyB;AACzB,2CAA6B;AAEhB,QAAA,aAAa,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,kEAAkE,CAAC;KAC/E,QAAQ,CAAC,gBAAgB,EAAE,uCAAuC,CAAC;KACnE,QAAQ,CAAC,eAAe,EAAE,6CAA6C,EAAE,gBAAgB,CAAC;KAC1F,MAAM,CAAC,cAAc,EAAE,2CAA2C,EAAE,KAAK,CAAC;KAC1E,MAAM,CAAC,WAAW,EAAE,yCAAyC,EAAE,KAAK,CAAC;KACrE,MAAM,CAAC,KAAK,EAAE,WAAmB,EAAE,UAAkB,EAAE,OAAO,EAAE,EAAE;IACjE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;IAE/D,IAAI,CAAC;QACH,iCAAiC;QACjC,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,kDAAkD,mBAAmB,EAAE,CAAC,CAAC,CAAC;YAClG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,uCAAuC;QACvC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;QACvE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,gCAAgC;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,IAAI,QAAQ,CAAC;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,UAAU,WAAW,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC;QAC5C,MAAM,WAAW,GAAG,GAAG,SAAS,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
const commander_1 = require("commander");
|
|
5
5
|
const deploy_1 = require("./commands/deploy");
|
|
6
|
+
const deploy_sc_1 = require("./commands/deploy-sc");
|
|
6
7
|
const user_1 = require("./commands/user");
|
|
7
8
|
const config_1 = require("./commands/config");
|
|
8
9
|
const database_1 = require("./commands/database");
|
|
@@ -13,6 +14,7 @@ program
|
|
|
13
14
|
.version('1.0.0');
|
|
14
15
|
// Registrar comandos
|
|
15
16
|
program.addCommand(deploy_1.deployCommand);
|
|
17
|
+
program.addCommand(deploy_sc_1.deployScCommand);
|
|
16
18
|
program.addCommand(user_1.userCommand);
|
|
17
19
|
program.addCommand(config_1.configCommand);
|
|
18
20
|
program.addCommand(database_1.dbCommand);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,8CAAkD;AAClD,0CAA8C;AAC9C,8CAAkD;AAClD,kDAAgD;AAEhD,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,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,oBAAS,CAAC,CAAC;AAE9B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,8CAAkD;AAClD,oDAAuD;AACvD,0CAA8C;AAC9C,8CAAkD;AAClD,kDAAgD;AAEhD,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;AAClC,OAAO,CAAC,UAAU,CAAC,oBAAS,CAAC,CAAC;AAE9B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
import { execSync } from 'child_process';
|
|
5
|
+
import * as fs from 'fs';
|
|
6
|
+
import * as path from 'path';
|
|
7
|
+
|
|
8
|
+
export const deployScCommand = new Command('deploy-sc')
|
|
9
|
+
.description('Deploy smart contract using Foundry')
|
|
10
|
+
.argument('<script-path>', 'Path to the Foundry deployment script')
|
|
11
|
+
.option('-u, --url <rpc-url>', 'RPC URL of the blockchain', 'http://server.codecrypto.academy:8546')
|
|
12
|
+
.option('-k, --private-key <key>', 'Private key for deployment (or use PRIVATE_KEY env var)')
|
|
13
|
+
.option('--verify', 'Verify contract on block explorer', false)
|
|
14
|
+
.option('--broadcast', 'Broadcast the transaction', true)
|
|
15
|
+
.option('--slow', 'Use slow mode for deployment', false)
|
|
16
|
+
.action(async (scriptPath: string, options) => {
|
|
17
|
+
console.log(chalk.blue('\n🔷 CodeCrypto Smart Contract Deployment\n'));
|
|
18
|
+
|
|
19
|
+
try {
|
|
20
|
+
// Resolver ruta del script
|
|
21
|
+
const resolvedScriptPath = path.resolve(scriptPath);
|
|
22
|
+
|
|
23
|
+
// Verificar que el script existe
|
|
24
|
+
if (!fs.existsSync(resolvedScriptPath)) {
|
|
25
|
+
console.error(chalk.red(`❌ Error: El script no existe: ${resolvedScriptPath}`));
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Verificar que es un archivo .s.sol (Foundry script)
|
|
30
|
+
if (!resolvedScriptPath.endsWith('.s.sol')) {
|
|
31
|
+
console.warn(chalk.yellow(`⚠️ Advertencia: El archivo no tiene extensión .s.sol`));
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Obtener directorio del proyecto (asumimos que el script está en un proyecto Foundry)
|
|
35
|
+
const projectDir = path.dirname(resolvedScriptPath);
|
|
36
|
+
|
|
37
|
+
// Verificar que existe foundry.toml o que estamos en un proyecto Foundry
|
|
38
|
+
const foundryToml = path.join(projectDir, 'foundry.toml');
|
|
39
|
+
const foundryTomlParent = path.join(path.dirname(projectDir), 'foundry.toml');
|
|
40
|
+
|
|
41
|
+
let foundryProjectDir = projectDir;
|
|
42
|
+
if (fs.existsSync(foundryToml)) {
|
|
43
|
+
foundryProjectDir = projectDir;
|
|
44
|
+
} else if (fs.existsSync(foundryTomlParent)) {
|
|
45
|
+
foundryProjectDir = path.dirname(projectDir);
|
|
46
|
+
} else {
|
|
47
|
+
console.warn(chalk.yellow('⚠️ No se encontró foundry.toml, asumiendo que foundry está instalado globalmente'));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Obtener nombre del script relativo al proyecto
|
|
51
|
+
const scriptRelativePath = path.relative(foundryProjectDir, resolvedScriptPath);
|
|
52
|
+
|
|
53
|
+
console.log(chalk.gray('Deployment Configuration:'));
|
|
54
|
+
console.log(chalk.white(` Script: ${chalk.green(scriptRelativePath)}`));
|
|
55
|
+
console.log(chalk.white(` RPC URL: ${chalk.green(options.url)}`));
|
|
56
|
+
console.log(chalk.white(` Broadcast: ${chalk.green(options.broadcast ? 'Yes' : 'No')}`));
|
|
57
|
+
console.log(chalk.white(` Verify: ${options.verify ? chalk.green('Yes') : chalk.yellow('No')}\n`));
|
|
58
|
+
|
|
59
|
+
// Verificar que forge está instalado
|
|
60
|
+
const forgeSpinner = ora('Verificando Foundry...').start();
|
|
61
|
+
try {
|
|
62
|
+
execSync('forge --version', { stdio: 'pipe' });
|
|
63
|
+
forgeSpinner.succeed('Foundry está instalado');
|
|
64
|
+
} catch (error) {
|
|
65
|
+
forgeSpinner.fail('Foundry no está instalado');
|
|
66
|
+
console.error(chalk.red('Por favor instala Foundry: https://book.getfoundry.sh/getting-started/installation'));
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Preparar variables de entorno
|
|
71
|
+
const env: Record<string, string> = {
|
|
72
|
+
...process.env,
|
|
73
|
+
RPC_URL: options.url,
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
// Agregar private key si se proporciona
|
|
77
|
+
if (options.privateKey) {
|
|
78
|
+
env.PRIVATE_KEY = options.privateKey;
|
|
79
|
+
} else if (!process.env.PRIVATE_KEY) {
|
|
80
|
+
console.warn(chalk.yellow('⚠️ No se proporcionó PRIVATE_KEY. Asegúrate de tenerla configurada en el entorno.'));
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Construir comando forge script
|
|
84
|
+
const forgeArgs: string[] = [
|
|
85
|
+
'script',
|
|
86
|
+
scriptRelativePath,
|
|
87
|
+
'--rpc-url',
|
|
88
|
+
options.url,
|
|
89
|
+
];
|
|
90
|
+
|
|
91
|
+
// Agregar private key si está disponible
|
|
92
|
+
const privateKey = options.privateKey || process.env.PRIVATE_KEY;
|
|
93
|
+
if (privateKey) {
|
|
94
|
+
forgeArgs.push('--private-key', privateKey);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
if (options.broadcast) {
|
|
98
|
+
forgeArgs.push('--broadcast');
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// Solo agregar --verify si se especifica explícitamente
|
|
102
|
+
// Advertir si se intenta verificar en una cadena personalizada
|
|
103
|
+
if (options.verify) {
|
|
104
|
+
// Detectar si es una cadena personalizada (no es mainnet, sepolia, etc.)
|
|
105
|
+
const isCustomChain = options.url.includes('codecrypto.academy') ||
|
|
106
|
+
options.url.includes('localhost') ||
|
|
107
|
+
options.url.includes('127.0.0.1') ||
|
|
108
|
+
options.url.includes('8546') ||
|
|
109
|
+
options.url.includes('8545');
|
|
110
|
+
|
|
111
|
+
if (isCustomChain) {
|
|
112
|
+
console.warn(chalk.yellow('⚠️ Advertencia: La verificación en block explorer puede no funcionar para cadenas personalizadas'));
|
|
113
|
+
console.warn(chalk.yellow(' Si obtienes un error "Chain not found", omite el flag --verify'));
|
|
114
|
+
}
|
|
115
|
+
forgeArgs.push('--verify');
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
if (options.slow) {
|
|
119
|
+
forgeArgs.push('--slow');
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Ejecutar el script
|
|
123
|
+
const deploySpinner = ora('Desplegando smart contract...').start();
|
|
124
|
+
|
|
125
|
+
try {
|
|
126
|
+
const command = `forge ${forgeArgs.join(' ')}`;
|
|
127
|
+
console.log(chalk.gray(`\nEjecutando: ${command}\n`));
|
|
128
|
+
|
|
129
|
+
execSync(command, {
|
|
130
|
+
cwd: foundryProjectDir,
|
|
131
|
+
stdio: 'inherit',
|
|
132
|
+
env,
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
deploySpinner.succeed('Smart contract desplegado exitosamente');
|
|
136
|
+
|
|
137
|
+
console.log(chalk.green('\n✅ Deployment completed successfully!'));
|
|
138
|
+
console.log(chalk.gray('Contract details:'));
|
|
139
|
+
console.log(chalk.white(` Script: ${chalk.cyan(scriptRelativePath)}`));
|
|
140
|
+
console.log(chalk.white(` Network: ${chalk.cyan(options.url)}`));
|
|
141
|
+
|
|
142
|
+
} catch (error: any) {
|
|
143
|
+
deploySpinner.fail('Error al desplegar el smart contract');
|
|
144
|
+
console.error(chalk.red('\n❌ Error durante el despliegue'));
|
|
145
|
+
|
|
146
|
+
const errorOutput = error.stdout?.toString() || error.stderr?.toString() || error.message || String(error);
|
|
147
|
+
|
|
148
|
+
// Detectar error de verificación en cadena no soportada
|
|
149
|
+
if (errorOutput.includes('Chain') && errorOutput.includes('not found')) {
|
|
150
|
+
console.error(chalk.yellow('\n💡 Sugerencia: Parece que estás intentando verificar en una cadena personalizada.'));
|
|
151
|
+
console.error(chalk.yellow(' Intenta ejecutar sin el flag --verify:'));
|
|
152
|
+
console.error(chalk.cyan(` codecrypto deploy-sc ${scriptRelativePath} --url ${options.url}`));
|
|
153
|
+
} else {
|
|
154
|
+
if (errorOutput) {
|
|
155
|
+
console.error(chalk.red(` ${errorOutput}`));
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
process.exit(1);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
} catch (error: any) {
|
|
162
|
+
console.error(chalk.red(`\n❌ Error: ${error.message}`));
|
|
163
|
+
process.exit(1);
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
|
package/src/commands/deploy.ts
CHANGED
|
@@ -37,7 +37,7 @@ export const deployCommand = new Command('deploy')
|
|
|
37
37
|
const imageName = `${imageBase}:${version}`;
|
|
38
38
|
const imageLatest = `${imageBase}:latest`;
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
console.log(chalk.gray('Deployment Configuration:'));
|
|
41
41
|
console.log(chalk.white(` Project: ${chalk.green(projectName)}`));
|
|
42
42
|
console.log(chalk.white(` Version: ${chalk.green(version)}`));
|
|
43
43
|
console.log(chalk.white(` Image: ${chalk.green(imageName)}`));
|
|
@@ -140,7 +140,7 @@ CMD ["node", "server.js"]
|
|
|
140
140
|
execSync(`docker buildx create --name ${builderName} --use --bootstrap`, { stdio: 'pipe' });
|
|
141
141
|
} else {
|
|
142
142
|
execSync(`docker buildx use ${builderName}`, { stdio: 'pipe' });
|
|
143
|
-
|
|
143
|
+
}
|
|
144
144
|
builderSpinner.succeed('Builder ready');
|
|
145
145
|
} catch (error) {
|
|
146
146
|
builderSpinner.fail('Failed to setup builder');
|
package/src/index.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { Command } from 'commander';
|
|
4
4
|
import { deployCommand } from './commands/deploy';
|
|
5
|
+
import { deployScCommand } from './commands/deploy-sc';
|
|
5
6
|
import { userCommand } from './commands/user';
|
|
6
7
|
import { configCommand } from './commands/config';
|
|
7
8
|
import { dbCommand } from './commands/database';
|
|
@@ -15,6 +16,7 @@ program
|
|
|
15
16
|
|
|
16
17
|
// Registrar comandos
|
|
17
18
|
program.addCommand(deployCommand);
|
|
19
|
+
program.addCommand(deployScCommand);
|
|
18
20
|
program.addCommand(userCommand);
|
|
19
21
|
program.addCommand(configCommand);
|
|
20
22
|
program.addCommand(dbCommand);
|