@pasosdejesus/m 0.28.0 → 0.30.0

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.
Files changed (44) hide show
  1. package/README.md +1 -1
  2. package/dist/CHANGELOG.md +69 -0
  3. package/dist/compose/data.d.ts +30 -0
  4. package/dist/compose/data.d.ts.map +1 -0
  5. package/dist/compose/data.js +46 -0
  6. package/dist/compose/data.js.map +1 -0
  7. package/dist/compose/derive.d.ts +18 -2
  8. package/dist/compose/derive.d.ts.map +1 -1
  9. package/dist/compose/derive.js +56 -5
  10. package/dist/compose/derive.js.map +1 -1
  11. package/dist/compose/git.d.ts +31 -0
  12. package/dist/compose/git.d.ts.map +1 -0
  13. package/dist/compose/git.js +71 -0
  14. package/dist/compose/git.js.map +1 -0
  15. package/dist/compose/index.d.ts +4 -2
  16. package/dist/compose/index.d.ts.map +1 -1
  17. package/dist/compose/index.js +3 -1
  18. package/dist/compose/index.js.map +1 -1
  19. package/dist/compose/manifest.d.ts +2 -1
  20. package/dist/compose/manifest.d.ts.map +1 -1
  21. package/dist/compose/vendor.d.ts +25 -2
  22. package/dist/compose/vendor.d.ts.map +1 -1
  23. package/dist/compose/vendor.js +28 -9
  24. package/dist/compose/vendor.js.map +1 -1
  25. package/dist/compose/verify.d.ts.map +1 -1
  26. package/dist/compose/verify.js +37 -2
  27. package/dist/compose/verify.js.map +1 -1
  28. package/dist/i18n/locales/cli.d.ts.map +1 -1
  29. package/dist/i18n/locales/cli.js +26 -22
  30. package/dist/i18n/locales/cli.js.map +1 -1
  31. package/dist/m.js +9 -7
  32. package/dist/m.js.map +1 -1
  33. package/dist/tasks/engine.d.ts.map +1 -1
  34. package/dist/tasks/engine.js +207 -11
  35. package/dist/tasks/engine.js.map +1 -1
  36. package/dist/tasks/wallet.js +38 -38
  37. package/dist/tasks/wallet.js.map +1 -1
  38. package/dist/templates/AGENTS.md.hbs +3 -3
  39. package/dist/templates/ARCHITECTURE.md.hbs +7 -7
  40. package/dist/templates/CONTRIBUTING.md.hbs +2 -2
  41. package/dist/templates/README.md.hbs +2 -2
  42. package/dist/templates/apps/.env.example.hbs +1 -1
  43. package/package.json +2 -2
  44. package/src/tasks/README.md +2 -2
@@ -4,24 +4,28 @@ import fs from 'fs';
4
4
  import path from 'path';
5
5
  import { createRequire } from 'node:module';
6
6
  import { spawnSync } from 'node:child_process';
7
+ import { gunzipSync } from 'node:zlib';
7
8
  import { success, info, warn, problem } from '../util/colors.js';
8
9
  import { discoverEnginesUpward } from '../util/engines.js';
9
10
  import { parseFlags } from '../util/cli-parser.js';
10
11
  import { sync } from '../compose/sync.js';
11
12
  import { verify } from '../compose/verify.js';
12
13
  import { vendor, unvendor, drift, readProvenance, resolveOrigin } from '../compose/vendor.js';
14
+ import { parseFromGit, motorInCheckout } from '../compose/git.js';
15
+ import { planMigrationCopy, motorSeedFile } from '../compose/data.js';
13
16
  import { readGenerated } from '../compose/derive.js';
14
17
  import { readPackageJson } from '../compose/discover.js';
15
18
  import { declaredUsage, tablesUsed, undeclaredImports, usageReport } from '../compose/usage.js';
19
+ import { runBaseModelSetup, runBaseModelSeed } from './msip.js';
16
20
  import { createTranslator } from '../i18n/createTranslator.js';
17
21
  import { detectLocale } from '../util/locale.js';
18
22
  import commonCli from '../i18n/common-cli.js';
19
23
  const t = createTranslator(detectLocale(), {
20
24
  en: {
21
- 'engine.unknown': 'Unknown engine command: {{0}}. Use: wba:setup, credentials:setup, list, sync, remove, verify, check',
25
+ 'engine.unknown': 'Unknown engine command: {{0}}. Use: wba:setup, credentials:setup, list, sync, remove, verify, check, setup, seed',
22
26
  },
23
27
  es: {
24
- 'engine.unknown': 'Comando de motor desconocido: {{0}}. Use: wba:setup, credentials:setup, list, sync, remove, verify, check',
28
+ 'engine.unknown': 'Comando de motor desconocido: {{0}}. Use: wba:setup, credentials:setup, list, sync, remove, verify, check, setup, seed',
25
29
  },
26
30
  }, commonCli);
27
31
  function getArg(args, name) {
@@ -149,7 +153,17 @@ async function cmdCheck(rest = []) {
149
153
  continue;
150
154
  const outDir = path.join(generatedDir, entry.name);
151
155
  const provenance = readProvenance(outDir);
152
- const originalDir = resolveOrigin(from, provenance?.motor ?? entry.name, provenance?.source);
156
+ let originalDir = resolveOrigin(from, provenance?.motor ?? entry.name, provenance?.source);
157
+ // Fuente git (https://gitlab.com/pasosdeJesus/m/-/work_items/40 D4): sin original local, materializa el ref anotado.
158
+ if (!originalDir && provenance?.kind === 'git' && provenance.origin && provenance.ref) {
159
+ try {
160
+ originalDir = motorInCheckout({ url: provenance.origin, ref: provenance.ref, path: provenance.path });
161
+ }
162
+ catch (error) {
163
+ warn(` [WARN] ${entry.name}: no se pudo materializar ${provenance.origin}#${provenance.ref}: ${error instanceof Error ? error.message : String(error)}`);
164
+ continue;
165
+ }
166
+ }
153
167
  if (!originalDir) {
154
168
  warn(` [WARN] vendorizada sin motor original localizable: ${entry.name}${from ? ` (--from ${from})` : ' (usa `eng:check --from <checkout>`)'}`);
155
169
  continue;
@@ -232,15 +246,40 @@ async function motorDirs(target) {
232
246
  return [process.cwd()];
233
247
  return (await discoverEnginesUpward(process.cwd())).map((engine) => engine.dir);
234
248
  }
235
- /** `eng:sync [<motor>] [--check]` — regenerates `m-engine.generated.ts`. */
249
+ /** `eng:sync [<motor>] [--check] [--vendor] [--from-git <url>#<ref>] [--path <subdir>]`. */
236
250
  async function cmdSync(rest) {
237
- const { options } = parseFlags(rest, {
251
+ const { options, positional } = parseFlags(rest, {
238
252
  check: { type: 'boolean' },
239
253
  vendor: { type: 'boolean' },
240
254
  out: { type: 'string' },
255
+ 'from-git': { type: 'string' },
256
+ path: { type: 'string' },
241
257
  });
242
- const target = rest.find((arg) => !arg.startsWith('-'));
243
- const dirs = await motorDirs(target);
258
+ const target = positional[0];
259
+ // Fuente git (https://gitlab.com/pasosdeJesus/m/-/work_items/40 D4): materializa el ref en caché y toma el motor de ahí.
260
+ const fromGit = options['from-git'];
261
+ let gitOrigin;
262
+ let dirs;
263
+ if (fromGit) {
264
+ const { url, ref } = parseFromGit(fromGit);
265
+ const sub = options.path;
266
+ gitOrigin = { url, ref, ...(sub ? { path: sub } : {}) };
267
+ const dir = motorInCheckout(gitOrigin);
268
+ if (!fs.existsSync(path.join(dir, 'm-engine.json'))) {
269
+ problem(`[FAIL] no hay motor en ${url}#${ref}${sub ? ` (--path ${sub})` : ''} (falta m-engine.json)`);
270
+ process.exitCode = 1;
271
+ return;
272
+ }
273
+ dirs = [dir];
274
+ if (!options.vendor) {
275
+ info(`[OK] fuente git materializada: ${dir}`);
276
+ info(' usa `--vendor` para copiarla con procedencia');
277
+ return;
278
+ }
279
+ }
280
+ else {
281
+ dirs = await motorDirs(target);
282
+ }
244
283
  if (dirs.length === 0) {
245
284
  warn('[WARN] no motors discovered (no packages with m-engine.json)');
246
285
  return;
@@ -248,10 +287,17 @@ async function cmdSync(rest) {
248
287
  // Vendorización "etapa 0" (https://gitlab.com/pasosdeJesus/m/-/work_items/39 D17): copia trazable dentro del consumidor.
249
288
  if (options.vendor) {
250
289
  for (const dir of dirs) {
251
- const out = path.resolve(options.out ?? path.join(process.cwd(), 'packages', 'generated', path.basename(dir)));
252
- const provenance = vendor(dir, out);
290
+ // El nombre del motor (no el basename del checkout, que en git es un hash) nombra la copia.
291
+ const name = gitOrigin ? await motorName(dir) : path.basename(dir);
292
+ const out = path.resolve(options.out ?? path.join(process.cwd(), 'packages', 'generated', name));
293
+ const provenance = vendor(dir, out, gitOrigin);
253
294
  success(`[OK] vendorizado ${provenance.motor} v${provenance.version} → ${out}`);
254
- info(` procedencia sha256 ${provenance.sha256.slice(0, 12)}... (drift: \`eng:check\`)`);
295
+ if (provenance.kind === 'git') {
296
+ info(` origen ${provenance.origin}#${provenance.ref} sha256 ${provenance.sha256.slice(0, 12)}... (drift: \`eng:check\`)`);
297
+ }
298
+ else {
299
+ info(` procedencia sha256 ${provenance.sha256.slice(0, 12)}... (drift: \`eng:check\`)`);
300
+ }
255
301
  }
256
302
  return;
257
303
  }
@@ -321,7 +367,13 @@ async function cmdRemove(rest) {
321
367
  async function cmdVerify(rest) {
322
368
  const target = rest.find((arg) => !arg.startsWith('-'));
323
369
  const engines = await discoverEnginesUpward(process.cwd());
324
- const byName = new Map(engines.map((engine) => [engine.name, engine]));
370
+ const byName = new Map();
371
+ for (const engine of engines) {
372
+ byName.set(engine.name, engine);
373
+ const short = engine.name.split('/').filter(Boolean).pop();
374
+ if (short)
375
+ byName.set(short, engine);
376
+ }
325
377
  const dirs = await motorDirs(target);
326
378
  if (dirs.length === 0) {
327
379
  warn('[WARN] no motors discovered (no packages with m-engine.json)');
@@ -350,6 +402,142 @@ async function cmdVerify(rest) {
350
402
  if (!ok)
351
403
  process.exitCode = 1;
352
404
  }
405
+ /** Nombre corto del motor (último segmento del paquete, o el basename del directorio). */
406
+ async function motorName(dir) {
407
+ const pkg = readPackageJson(dir);
408
+ const name = pkg?.name ?? path.basename(dir);
409
+ return name.split('/').filter(Boolean).pop() ?? path.basename(dir);
410
+ }
411
+ /** Carga un seed con `psql -1`, descomprimiendo si es `.gz`. */
412
+ function loadSeedFile(file) {
413
+ let input;
414
+ try {
415
+ input = fs.readFileSync(file);
416
+ }
417
+ catch (error) {
418
+ problem(`[FAIL] seed no encontrado: ${file} (${error instanceof Error ? error.message : String(error)})`);
419
+ return false;
420
+ }
421
+ if (file.endsWith('.gz')) {
422
+ try {
423
+ input = gunzipSync(input);
424
+ }
425
+ catch (error) {
426
+ problem(`[FAIL] seed .gz ilegible: ${error instanceof Error ? error.message : String(error)}`);
427
+ return false;
428
+ }
429
+ }
430
+ const res = spawnSync('psql', ['-1', '-v', 'ON_ERROR_STOP=1', '-q'], {
431
+ input,
432
+ encoding: 'utf-8',
433
+ env: { ...process.env, PSQLRC: '/dev/null', PAGER: '', PSQL_PAGER: '' },
434
+ timeout: 600_000,
435
+ });
436
+ if (res.status !== 0) {
437
+ problem(`[FAIL] el seed falló: ${(res.stderr ?? '').toString().trim()}`);
438
+ return false;
439
+ }
440
+ return true;
441
+ }
442
+ /**
443
+ * `eng:setup [<motor>] [--out db/migrations] [--check]` — escribe en el consumidor
444
+ * las migraciones de los motores ([REQ/40](https://gitlab.com/pasosdeJesus/m/-/work_items/40) D3). Un motor con
445
+ * `db/migrations` se copia de forma **idempotente**; `msip`, cuyas migraciones se
446
+ * generan desde sus pasos forward, delega en `eng:msip:setup`. `eng:msip:setup` es un alias.
447
+ */
448
+ async function cmdSetup(rest) {
449
+ const { options, positional } = parseFlags(rest, {
450
+ out: { type: 'string' },
451
+ check: { type: 'boolean' },
452
+ });
453
+ const target = positional[0];
454
+ const dirs = target ? [await motorDir(target)] : await motorDirs();
455
+ if (dirs.length === 0) {
456
+ warn('[WARN] no motors discovered (no packages with m-engine.json)');
457
+ return;
458
+ }
459
+ const out = options.out ?? path.join('db', 'migrations');
460
+ const outDir = path.resolve(process.cwd(), out);
461
+ let failed = false;
462
+ for (const dir of dirs) {
463
+ const name = await motorName(dir);
464
+ if (name === 'msip') {
465
+ await runBaseModelSetup();
466
+ if (process.exitCode)
467
+ failed = true;
468
+ continue;
469
+ }
470
+ const plan = planMigrationCopy(dir, outDir);
471
+ if (!plan.sourceDir) {
472
+ info(` [OK] ${name}: sin migraciones propias`);
473
+ continue;
474
+ }
475
+ if (options.check) {
476
+ if (plan.missing.length === 0)
477
+ success(` [OK] ${name}: migraciones al día (${plan.present.length})`);
478
+ else {
479
+ for (const file of plan.missing)
480
+ problem(` [FAIL] ${name}: falta ${file}`);
481
+ failed = true;
482
+ }
483
+ continue;
484
+ }
485
+ fs.mkdirSync(outDir, { recursive: true });
486
+ for (const file of plan.missing) {
487
+ fs.copyFileSync(path.join(plan.sourceDir, file), path.join(outDir, file));
488
+ success(`[OK] ${path.join(out, file)}`);
489
+ }
490
+ if (plan.missing.length === 0)
491
+ info(` [OK] ${name}: migraciones al día (${plan.present.length})`);
492
+ }
493
+ if (failed)
494
+ process.exitCode = 1;
495
+ }
496
+ /**
497
+ * `eng:seed [<motor>] [--file <sql|sql.gz>] [--force] [--check]` — carga los datos
498
+ * iniciales de un motor (`<motor>/db/seed.sql.gz` por convención). Para `msip` usa su
499
+ * seed idempotente (`--force` recarga; `--check` reporta). `eng:msip:seed` es un alias.
500
+ */
501
+ async function cmdSeed(rest) {
502
+ const { options, positional } = parseFlags(rest, {
503
+ file: { type: 'string' },
504
+ force: { type: 'boolean' },
505
+ check: { type: 'boolean' },
506
+ });
507
+ const target = positional[0];
508
+ const dirs = target ? [await motorDir(target)] : await motorDirs();
509
+ if (dirs.length === 0) {
510
+ warn('[WARN] no motors discovered (no packages with m-engine.json)');
511
+ return;
512
+ }
513
+ let failed = false;
514
+ for (const dir of dirs) {
515
+ const name = await motorName(dir);
516
+ if (name === 'msip') {
517
+ await runBaseModelSeed();
518
+ if (process.exitCode)
519
+ failed = true;
520
+ continue;
521
+ }
522
+ const file = options.file ?? motorSeedFile(dir);
523
+ if (!file) {
524
+ problem(`[FAIL] el motor ${name} no trae seed (db/seed.sql[.gz]); usa --file <sql>`);
525
+ failed = true;
526
+ continue;
527
+ }
528
+ if (options.check) {
529
+ info(` [OK] ${name}: seed declarado (${path.relative(process.cwd(), file)}); --check no lo verifica sin metadatos del motor`);
530
+ continue;
531
+ }
532
+ info(`Aplicando seed ${file}...`);
533
+ if (loadSeedFile(file))
534
+ success(`[OK] ${name}: seed aplicado`);
535
+ else
536
+ failed = true;
537
+ }
538
+ if (failed)
539
+ process.exitCode = 1;
540
+ }
353
541
  export async function runEngine(args) {
354
542
  if (args.length === 0 || args.includes('--help') || args.includes('-h')) {
355
543
  console.log('Engine commands:');
@@ -358,6 +546,8 @@ export async function runEngine(args) {
358
546
  console.log(' eng:remove <motor> [--drop] — Remove a vendored motor copy (--drop drops its tables)');
359
547
  console.log(' eng:verify [motor] — Guard m-engine.generated.ts against the sources and the declared dependencies');
360
548
  console.log(' eng:check [--from <dir>] — Verify engine schemas, vendored drift (--from a checkout) and self-containment');
549
+ console.log(' eng:setup [motor] [--check] — Write the motors migrations into the consumer (idempotent)');
550
+ console.log(' eng:seed [motor] [--force] — Load a motor seed (msip keeps its idempotent seed)');
361
551
  console.log(' eng:wba:setup — Create WBA migration files');
362
552
  console.log(' eng:credentials:setup — Create credential migration files');
363
553
  }
@@ -387,6 +577,12 @@ export async function runEngine(args) {
387
577
  case 'check':
388
578
  await cmdCheck(rest);
389
579
  break;
580
+ case 'setup':
581
+ await cmdSetup(rest);
582
+ break;
583
+ case 'seed':
584
+ await cmdSeed(rest);
585
+ break;
390
586
  default:
391
587
  problem(t('engine.unknown', command));
392
588
  throw new Error(t('engine.unknown', command));
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/tasks/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/tasks/engine.ts"],"names":[],"mappings":"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"}
@@ -14,11 +14,11 @@ import { accountFromMnemonic, accountFromPrivateKey, newMnemonic, privateKeyFrom
14
14
  const t = createTranslator(detectLocale(), {
15
15
  en: {
16
16
  'wallet.unknown': 'Unknown command: wallet:{{0}}',
17
- 'wallet.no_wallets': 'No wallets found. Use wallet:generate or wallet:import first.',
17
+ 'wallet.no_wallets': 'No wallets found. Use eng:opwallet:generate or eng:opwallet:import first.',
18
18
  },
19
19
  es: {
20
20
  'wallet.unknown': 'Comando desconocido: wallet:{{0}}',
21
- 'wallet.no_wallets': 'No se encontraron billeteras. Use wallet:generate o wallet:import primero.',
21
+ 'wallet.no_wallets': 'No se encontraron billeteras. Use eng:opwallet:generate o eng:opwallet:import primero.',
22
22
  },
23
23
  }, commonCli);
24
24
  // ==================== STORAGE ====================
@@ -120,7 +120,7 @@ async function resolveToAddress(value) {
120
120
  return w.address;
121
121
  throw new Error(`Wallet not found and not a valid address: ${value}`);
122
122
  }
123
- // ==================== wallet:generate ====================
123
+ // ==================== eng:opwallet:generate ====================
124
124
  async function cmdGenerate(args) {
125
125
  const name = getArg(args, '--name');
126
126
  const index = parseInt(getArg(args, '--index') || '0');
@@ -145,7 +145,7 @@ async function cmdGenerate(args) {
145
145
  console.log(`\n${outputEnv}=${account.address}`);
146
146
  }
147
147
  }
148
- // ==================== wallet:approve ====================
148
+ // ==================== eng:opwallet:approve ====================
149
149
  async function cmdApprove(args) {
150
150
  const name = getArg(args, '--name');
151
151
  const token = getArg(args, '--token');
@@ -158,7 +158,7 @@ async function cmdApprove(args) {
158
158
  }
159
159
  const wallet = loadWallet(name);
160
160
  if (!wallet)
161
- throw new Error(`Wallet "${name}" not found. Use wallet:generate or wallet:import first.`);
161
+ throw new Error(`Wallet "${name}" not found. Use eng:opwallet:generate or eng:opwallet:import first.`);
162
162
  if (!wallet.privateKey)
163
163
  throw new Error(`Wallet "${name}" has no private key stored.`);
164
164
  const spender = await resolveToAddress(spenderRaw);
@@ -231,7 +231,7 @@ function getDefaultRpc(network) {
231
231
  };
232
232
  return defaults[network] || '';
233
233
  }
234
- // ==================== wallet:import ====================
234
+ // ==================== eng:opwallet:import ====================
235
235
  async function cmdImport(args) {
236
236
  const name = getArg(args, '--name');
237
237
  const mnemonic = getArg(args, '--mnemonic');
@@ -259,7 +259,7 @@ async function cmdImport(args) {
259
259
  success(`[OK] Wallet imported: ${name}`);
260
260
  console.log(` Address: ${address}`);
261
261
  }
262
- // ==================== wallet:list ====================
262
+ // ==================== eng:opwallet:list ====================
263
263
  async function cmdList(args) {
264
264
  const nameFilter = getArg(args, '--name');
265
265
  const addressOnly = args.includes('--address-only');
@@ -270,7 +270,7 @@ async function cmdList(args) {
270
270
  ensurePermissions(getWalletsDir());
271
271
  const files = fs.readdirSync(getWalletsDir()).filter(f => f.endsWith('.json'));
272
272
  if (files.length === 0) {
273
- console.log('No wallets found. Use wallet:generate or wallet:import to create one.');
273
+ console.log('No wallets found. Use eng:opwallet:generate or eng:opwallet:import to create one.');
274
274
  return;
275
275
  }
276
276
  for (const file of files) {
@@ -298,7 +298,7 @@ async function cmdList(args) {
298
298
  }
299
299
  }
300
300
  }
301
- // ==================== wallet:send ====================
301
+ // ==================== eng:opwallet:send ====================
302
302
  async function cmdSend(args) {
303
303
  const name = getArg(args, '--name');
304
304
  const toRaw = getArg(args, '--to');
@@ -396,7 +396,7 @@ async function cmdSend(args) {
396
396
  console.log(` TX: ${hash}`);
397
397
  }
398
398
  }
399
- // ==================== wallet:balance ====================
399
+ // ==================== eng:opwallet:balance ====================
400
400
  async function cmdBalance(args) {
401
401
  const name = getArg(args, '--name');
402
402
  const token = getArg(args, '--token');
@@ -441,7 +441,7 @@ async function cmdBalance(args) {
441
441
  }
442
442
  }
443
443
  }
444
- // ==================== wallet:call ====================
444
+ // ==================== eng:opwallet:call ====================
445
445
  async function cmdCall(args) {
446
446
  const name = getArg(args, '--name');
447
447
  const to = getArg(args, '--to');
@@ -481,7 +481,7 @@ async function cmdCall(args) {
481
481
  });
482
482
  console.log(result);
483
483
  }
484
- // ==================== wallet:derive ====================
484
+ // ==================== eng:opwallet:derive ====================
485
485
  async function cmdDerive(args) {
486
486
  const parentName = getArg(args, '--name');
487
487
  const asName = getArg(args, '--as');
@@ -494,7 +494,7 @@ async function cmdDerive(args) {
494
494
  const parentMnemonic = parent.mnemonic;
495
495
  if (!parentMnemonic) {
496
496
  throw new Error(`Cannot derive from "${parentName}" — no mnemonic stored. ` +
497
- `Re-generate the wallet with wallet:generate.`);
497
+ `Re-generate the wallet with eng:opwallet:generate.`);
498
498
  }
499
499
  const targetPath = getWalletPath(asName);
500
500
  if (fs.existsSync(targetPath)) {
@@ -509,7 +509,7 @@ async function cmdDerive(args) {
509
509
  console.log(` Derived from: ${parentName} (index ${index})`);
510
510
  console.log(` Stored: ${targetPath}`);
511
511
  }
512
- // ==================== wallet:sign (airgapped) ====================
512
+ // ==================== eng:opwallet:sign (airgapped) ====================
513
513
  async function cmdSign(args) {
514
514
  const name = getArg(args, '--name');
515
515
  const txFile = getArg(args, '--tx');
@@ -540,7 +540,7 @@ async function cmdSign(args) {
540
540
  fs.writeFileSync(signedPath, JSON.stringify({ signedTx: signed }, null, 2));
541
541
  success(`[OK] Signed transaction saved to ${signedPath}`);
542
542
  }
543
- // ==================== wallet:broadcast ====================
543
+ // ==================== eng:opwallet:broadcast ====================
544
544
  async function cmdBroadcast(args) {
545
545
  const signedFile = getArg(args, '--signed-tx');
546
546
  const rpcUrl = getArg(args, '--rpc');
@@ -560,7 +560,7 @@ async function cmdBroadcast(args) {
560
560
  // ==================== KECCAK ====================
561
561
  async function cmdKeccak(args) {
562
562
  if (args.length === 0) {
563
- throw new Error('Usage: bin/m wallet:keccak <string>');
563
+ throw new Error('Usage: bin/m eng:opwallet:keccak <string>');
564
564
  }
565
565
  const input = args.join(' ');
566
566
  const hash = keccak(input);
@@ -569,56 +569,56 @@ async function cmdKeccak(args) {
569
569
  // ==================== USAGE ====================
570
570
  function usage(command) {
571
571
  if (command === 'send') {
572
- console.log('Usage: bin/m wallet:send --name <n> --to <addr|name> [--amount <eth>] [--token <addr>] [--function "name(type,...)"] [--args "v1,v2"] [--data 0x...] [--network celoSepolia] [--rpc <url>]');
572
+ console.log('Usage: bin/m eng:opwallet:send --name <n> --to <addr|name> [--amount <eth>] [--token <addr>] [--function "name(type,...)"] [--args "v1,v2"] [--data 0x...] [--network celoSepolia] [--rpc <url>]');
573
573
  return;
574
574
  }
575
575
  if (command === 'generate') {
576
- console.log('Usage: bin/m wallet:generate --name <n> [--index 0] [--output-env <VAR>]');
576
+ console.log('Usage: bin/m eng:opwallet:generate --name <n> [--index 0] [--output-env <VAR>]');
577
577
  return;
578
578
  }
579
579
  if (command === 'approve') {
580
- console.log('Usage: bin/m wallet:approve --name <n> --token <addr> --spender <addr|name> --amount <u> [--network celoSepolia] [--rpc <url>]');
580
+ console.log('Usage: bin/m eng:opwallet:approve --name <n> --token <addr> --spender <addr|name> --amount <u> [--network celoSepolia] [--rpc <url>]');
581
581
  return;
582
582
  }
583
583
  if (command === 'list') {
584
- console.log('Usage: bin/m wallet:list [--name <n>] [--address-only] [--balance] [--network celoSepolia] [--rpc <url>]');
584
+ console.log('Usage: bin/m eng:opwallet:list [--name <n>] [--address-only] [--balance] [--network celoSepolia] [--rpc <url>]');
585
585
  return;
586
586
  }
587
587
  if (command === 'import') {
588
- console.log('Usage: bin/m wallet:import --name <n> [--mnemonic "..."] [--private-key 0x...] [--index 0]');
588
+ console.log('Usage: bin/m eng:opwallet:import --name <n> [--mnemonic "..."] [--private-key 0x...] [--index 0]');
589
589
  return;
590
590
  }
591
591
  if (command === 'balance') {
592
- console.log('Usage: bin/m wallet:balance --name <n> [--token <addr>] [--network celoSepolia] [--rpc <url>]');
592
+ console.log('Usage: bin/m eng:opwallet:balance --name <n> [--token <addr>] [--network celoSepolia] [--rpc <url>]');
593
593
  return;
594
594
  }
595
595
  if (command === 'sign') {
596
- console.log('Usage: bin/m wallet:sign --name <n> --tx <json-file>');
596
+ console.log('Usage: bin/m eng:opwallet:sign --name <n> --tx <json-file>');
597
597
  return;
598
598
  }
599
599
  if (command === 'broadcast') {
600
- console.log('Usage: bin/m wallet:broadcast --signed-tx <json> [--rpc <url>]');
600
+ console.log('Usage: bin/m eng:opwallet:broadcast --signed-tx <json> [--rpc <url>]');
601
601
  return;
602
602
  }
603
603
  if (command === 'keccak') {
604
- console.log('Usage: bin/m wallet:keccak <string>');
604
+ console.log('Usage: bin/m eng:opwallet:keccak <string>');
605
605
  return;
606
606
  }
607
607
  if (command === 'call') {
608
- console.log('Usage: bin/m wallet:call --name <n> --to <addr> --function "name(type,...)" [--args "v1,v2"] [--network celoSepolia] [--rpc <url>]');
608
+ console.log('Usage: bin/m eng:opwallet:call --name <n> --to <addr> --function "name(type,...)" [--args "v1,v2"] [--network celoSepolia] [--rpc <url>]');
609
609
  return;
610
610
  }
611
611
  console.log('Wallet commands:');
612
- console.log(' bin/m wallet:generate --name <n> [--index 0] [--output-env <VAR>]');
613
- console.log(' bin/m wallet:approve --name <n> --token <addr> --spender <addr|name> --amount <u> [--network celoSepolia] [--rpc <url>]');
614
- console.log(' bin/m wallet:list [--name <n>] [--address-only] [--balance]');
615
- console.log(' bin/m wallet:import --name <n> [--mnemonic "..."] [--private-key 0x...] [--index 0]');
616
- console.log(' bin/m wallet:send --name <n> --to <addr|name> [--amount <eth>] [--token <addr>] [--function "name(type,...)"] [--args "v1,v2"] [--data 0x...]');
617
- console.log(' bin/m wallet:balance --name <n> [--token <addr>]');
618
- console.log(' bin/m wallet:sign --name <n> --tx <json-file>');
619
- console.log(' bin/m wallet:broadcast --signed-tx <json> [--rpc <url>]');
620
- console.log(' bin/m wallet:keccak <string>');
621
- console.log(' bin/m wallet:call --name <n> --to <addr> --function "name(type,...)" [--args "v1,v2"]');
612
+ console.log(' bin/m eng:opwallet:generate --name <n> [--index 0] [--output-env <VAR>]');
613
+ console.log(' bin/m eng:opwallet:approve --name <n> --token <addr> --spender <addr|name> --amount <u> [--network celoSepolia] [--rpc <url>]');
614
+ console.log(' bin/m eng:opwallet:list [--name <n>] [--address-only] [--balance]');
615
+ console.log(' bin/m eng:opwallet:import --name <n> [--mnemonic "..."] [--private-key 0x...] [--index 0]');
616
+ console.log(' bin/m eng:opwallet:send --name <n> --to <addr|name> [--amount <eth>] [--token <addr>] [--function "name(type,...)"] [--args "v1,v2"] [--data 0x...]');
617
+ console.log(' bin/m eng:opwallet:balance --name <n> [--token <addr>]');
618
+ console.log(' bin/m eng:opwallet:sign --name <n> --tx <json-file>');
619
+ console.log(' bin/m eng:opwallet:broadcast --signed-tx <json> [--rpc <url>]');
620
+ console.log(' bin/m eng:opwallet:keccak <string>');
621
+ console.log(' bin/m eng:opwallet:call --name <n> --to <addr> --function "name(type,...)" [--args "v1,v2"]');
622
622
  }
623
623
  // ==================== ENTRY POINT ====================
624
624
  export async function runWallet(args) {
@@ -626,12 +626,12 @@ export async function runWallet(args) {
626
626
  usage();
627
627
  return;
628
628
  }
629
- // Per-command help: wallet:send --help
629
+ // Per-command help: eng:opwallet:send --help
630
630
  if (args.length >= 2 && (args[1] === '--help' || args[1] === '-h')) {
631
631
  usage(args[0]);
632
632
  return;
633
633
  }
634
- // Generic help: wallet --help or wallet:send --help (when command is --help directly)
634
+ // Generic help: wallet --help or eng:opwallet:send --help (when command is --help directly)
635
635
  if (args.includes('--help') || args.includes('-h')) {
636
636
  usage();
637
637
  return;