codecrypto-cli 1.0.6 → 1.0.7
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.
|
@@ -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;AAOpC,eAAO,MAAM,eAAe,
|
|
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,SA+LxB,CAAC"}
|
|
@@ -48,6 +48,8 @@ exports.deployScCommand = new commander_1.Command('deploy-sc')
|
|
|
48
48
|
.argument('<script-path>', 'Path to the Foundry deployment script')
|
|
49
49
|
.option('-u, --url <rpc-url>', 'RPC URL of the blockchain', 'http://server.codecrypto.academy:8546')
|
|
50
50
|
.option('-k, --private-key <key>', 'Private key for deployment (or use PRIVATE_KEY env var)')
|
|
51
|
+
.option('--account <index>', 'Account index to use (for Anvil, use 0 for the default unlocked account)')
|
|
52
|
+
.option('--anvil', 'Force use of Anvil account 0 (ignores private-key)')
|
|
51
53
|
.option('--verify', 'Verify contract on block explorer', false)
|
|
52
54
|
.option('--broadcast', 'Broadcast the transaction', true)
|
|
53
55
|
.option('--slow', 'Use slow mode for deployment', false)
|
|
@@ -117,11 +119,44 @@ exports.deployScCommand = new commander_1.Command('deploy-sc')
|
|
|
117
119
|
'--rpc-url',
|
|
118
120
|
options.url,
|
|
119
121
|
];
|
|
120
|
-
//
|
|
122
|
+
// Detectar si estamos usando Anvil (local o remoto)
|
|
123
|
+
const isAnvilLocal = options.url.includes('localhost') ||
|
|
124
|
+
options.url.includes('127.0.0.1') ||
|
|
125
|
+
options.url.includes(':8545') ||
|
|
126
|
+
options.url.includes(':55556') ||
|
|
127
|
+
options.url.includes('server.codecrypto.academy:8546') ||
|
|
128
|
+
options.anvil === true;
|
|
129
|
+
// Agregar private key o account según el caso - REQUERIDO
|
|
121
130
|
const privateKey = options.privateKey || process.env.PRIVATE_KEY;
|
|
122
|
-
|
|
131
|
+
// Si se especifica explícitamente --account, usarlo
|
|
132
|
+
if (options.account !== undefined) {
|
|
133
|
+
forgeArgs.push('--account', String(options.account));
|
|
134
|
+
if (privateKey) {
|
|
135
|
+
console.warn(chalk_1.default.yellow('⚠️ Se proporcionó PRIVATE_KEY pero se está usando --account. Se ignora la PRIVATE_KEY.'));
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
else if (privateKey) {
|
|
139
|
+
// Usar private key proporcionada (preferido)
|
|
123
140
|
forgeArgs.push('--private-key', privateKey);
|
|
124
141
|
}
|
|
142
|
+
else if (isAnvilLocal) {
|
|
143
|
+
// Para Anvil, si no se proporciona private key, usar cuenta 0 como fallback
|
|
144
|
+
console.warn(chalk_1.default.yellow('⚠️ No se proporcionó PRIVATE_KEY.'));
|
|
145
|
+
console.warn(chalk_1.default.yellow(' Usando cuenta 0 de Anvil (--account 0) como alternativa.'));
|
|
146
|
+
console.warn(chalk_1.default.yellow(' Recomendado: Proporciona --private-key para mayor control.'));
|
|
147
|
+
forgeArgs.push('--account', '0');
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
// ERROR: Se requiere private key para redes remotas
|
|
151
|
+
console.error(chalk_1.default.red('\n❌ Error: Se requiere PRIVATE_KEY para desplegar.'));
|
|
152
|
+
console.error(chalk_1.default.red(' Para Anvil: usa --account <index> o proporciona --private-key'));
|
|
153
|
+
console.error(chalk_1.default.red(' Para otras redes: proporciona --private-key o establece PRIVATE_KEY en el entorno'));
|
|
154
|
+
console.error(chalk_1.default.cyan('\n Ejemplos:'));
|
|
155
|
+
console.error(chalk_1.default.cyan(' --private-key 0x...'));
|
|
156
|
+
console.error(chalk_1.default.cyan(' --account 0 (solo para Anvil)'));
|
|
157
|
+
console.error(chalk_1.default.cyan(' export PRIVATE_KEY=0x...'));
|
|
158
|
+
process.exit(1);
|
|
159
|
+
}
|
|
125
160
|
if (options.broadcast) {
|
|
126
161
|
forgeArgs.push('--broadcast');
|
|
127
162
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-sc.js","sourceRoot":"","sources":["../../src/commands/deploy-sc.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"deploy-sc.js","sourceRoot":"","sources":["../../src/commands/deploy-sc.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -10,6 +10,8 @@ export const deployScCommand = new Command('deploy-sc')
|
|
|
10
10
|
.argument('<script-path>', 'Path to the Foundry deployment script')
|
|
11
11
|
.option('-u, --url <rpc-url>', 'RPC URL of the blockchain', 'http://server.codecrypto.academy:8546')
|
|
12
12
|
.option('-k, --private-key <key>', 'Private key for deployment (or use PRIVATE_KEY env var)')
|
|
13
|
+
.option('--account <index>', 'Account index to use (for Anvil, use 0 for the default unlocked account)')
|
|
14
|
+
.option('--anvil', 'Force use of Anvil account 0 (ignores private-key)')
|
|
13
15
|
.option('--verify', 'Verify contract on block explorer', false)
|
|
14
16
|
.option('--broadcast', 'Broadcast the transaction', true)
|
|
15
17
|
.option('--slow', 'Use slow mode for deployment', false)
|
|
@@ -88,10 +90,42 @@ export const deployScCommand = new Command('deploy-sc')
|
|
|
88
90
|
options.url,
|
|
89
91
|
];
|
|
90
92
|
|
|
91
|
-
//
|
|
93
|
+
// Detectar si estamos usando Anvil (local o remoto)
|
|
94
|
+
const isAnvilLocal = options.url.includes('localhost') ||
|
|
95
|
+
options.url.includes('127.0.0.1') ||
|
|
96
|
+
options.url.includes(':8545') ||
|
|
97
|
+
options.url.includes(':55556') ||
|
|
98
|
+
options.url.includes('server.codecrypto.academy:8546') ||
|
|
99
|
+
options.anvil === true;
|
|
100
|
+
|
|
101
|
+
// Agregar private key o account según el caso - REQUERIDO
|
|
92
102
|
const privateKey = options.privateKey || process.env.PRIVATE_KEY;
|
|
93
|
-
|
|
103
|
+
|
|
104
|
+
// Si se especifica explícitamente --account, usarlo
|
|
105
|
+
if (options.account !== undefined) {
|
|
106
|
+
forgeArgs.push('--account', String(options.account));
|
|
107
|
+
if (privateKey) {
|
|
108
|
+
console.warn(chalk.yellow('⚠️ Se proporcionó PRIVATE_KEY pero se está usando --account. Se ignora la PRIVATE_KEY.'));
|
|
109
|
+
}
|
|
110
|
+
} else if (privateKey) {
|
|
111
|
+
// Usar private key proporcionada (preferido)
|
|
94
112
|
forgeArgs.push('--private-key', privateKey);
|
|
113
|
+
} else if (isAnvilLocal) {
|
|
114
|
+
// Para Anvil, si no se proporciona private key, usar cuenta 0 como fallback
|
|
115
|
+
console.warn(chalk.yellow('⚠️ No se proporcionó PRIVATE_KEY.'));
|
|
116
|
+
console.warn(chalk.yellow(' Usando cuenta 0 de Anvil (--account 0) como alternativa.'));
|
|
117
|
+
console.warn(chalk.yellow(' Recomendado: Proporciona --private-key para mayor control.'));
|
|
118
|
+
forgeArgs.push('--account', '0');
|
|
119
|
+
} else {
|
|
120
|
+
// ERROR: Se requiere private key para redes remotas
|
|
121
|
+
console.error(chalk.red('\n❌ Error: Se requiere PRIVATE_KEY para desplegar.'));
|
|
122
|
+
console.error(chalk.red(' Para Anvil: usa --account <index> o proporciona --private-key'));
|
|
123
|
+
console.error(chalk.red(' Para otras redes: proporciona --private-key o establece PRIVATE_KEY en el entorno'));
|
|
124
|
+
console.error(chalk.cyan('\n Ejemplos:'));
|
|
125
|
+
console.error(chalk.cyan(' --private-key 0x...'));
|
|
126
|
+
console.error(chalk.cyan(' --account 0 (solo para Anvil)'));
|
|
127
|
+
console.error(chalk.cyan(' export PRIVATE_KEY=0x...'));
|
|
128
|
+
process.exit(1);
|
|
95
129
|
}
|
|
96
130
|
|
|
97
131
|
if (options.broadcast) {
|