@grimoirelabs/cli 0.14.1 → 0.15.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 (116) hide show
  1. package/dist/commands/advisory-handlers.d.ts.map +1 -1
  2. package/dist/commands/advisory-handlers.js +1 -180
  3. package/dist/commands/advisory-handlers.js.map +1 -1
  4. package/dist/commands/advisory-live-trace.d.ts.map +1 -1
  5. package/dist/commands/advisory-live-trace.js +1 -1
  6. package/dist/commands/advisory-live-trace.js.map +1 -1
  7. package/dist/commands/advisory-verbose-trace.d.ts +15 -0
  8. package/dist/commands/advisory-verbose-trace.d.ts.map +1 -0
  9. package/dist/commands/advisory-verbose-trace.js +185 -0
  10. package/dist/commands/advisory-verbose-trace.js.map +1 -0
  11. package/dist/commands/cast-cross-chain.d.ts +69 -0
  12. package/dist/commands/cast-cross-chain.d.ts.map +1 -0
  13. package/dist/commands/cast-cross-chain.js +456 -0
  14. package/dist/commands/cast-cross-chain.js.map +1 -0
  15. package/dist/commands/cast.d.ts +1 -1
  16. package/dist/commands/cast.d.ts.map +1 -1
  17. package/dist/commands/cast.js +84 -709
  18. package/dist/commands/cast.js.map +1 -1
  19. package/dist/commands/compile-all.d.ts +15 -2
  20. package/dist/commands/compile-all.d.ts.map +1 -1
  21. package/dist/commands/compile-all.js +16 -21
  22. package/dist/commands/compile-all.js.map +1 -1
  23. package/dist/commands/compile.d.ts +1 -1
  24. package/dist/commands/compile.d.ts.map +1 -1
  25. package/dist/commands/compile.js +22 -26
  26. package/dist/commands/compile.js.map +1 -1
  27. package/dist/commands/cross-chain-helpers.d.ts +0 -1
  28. package/dist/commands/cross-chain-helpers.d.ts.map +1 -1
  29. package/dist/commands/cross-chain-helpers.js +0 -3
  30. package/dist/commands/cross-chain-helpers.js.map +1 -1
  31. package/dist/commands/history.d.ts +1 -2
  32. package/dist/commands/history.d.ts.map +1 -1
  33. package/dist/commands/history.js +59 -69
  34. package/dist/commands/history.js.map +1 -1
  35. package/dist/commands/init.d.ts +5 -1
  36. package/dist/commands/init.d.ts.map +1 -1
  37. package/dist/commands/init.js +25 -20
  38. package/dist/commands/init.js.map +1 -1
  39. package/dist/commands/log.d.ts +1 -2
  40. package/dist/commands/log.d.ts.map +1 -1
  41. package/dist/commands/log.js +9 -12
  42. package/dist/commands/log.js.map +1 -1
  43. package/dist/commands/resume.d.ts +18 -1
  44. package/dist/commands/resume.d.ts.map +1 -1
  45. package/dist/commands/resume.js +44 -66
  46. package/dist/commands/resume.js.map +1 -1
  47. package/dist/commands/setup-ui.d.ts +46 -0
  48. package/dist/commands/setup-ui.d.ts.map +1 -0
  49. package/dist/commands/setup-ui.js +221 -0
  50. package/dist/commands/setup-ui.js.map +1 -0
  51. package/dist/commands/setup.d.ts +31 -3
  52. package/dist/commands/setup.d.ts.map +1 -1
  53. package/dist/commands/setup.js +27 -270
  54. package/dist/commands/setup.js.map +1 -1
  55. package/dist/commands/simulate-cross-chain.d.ts +53 -0
  56. package/dist/commands/simulate-cross-chain.d.ts.map +1 -0
  57. package/dist/commands/simulate-cross-chain.js +256 -0
  58. package/dist/commands/simulate-cross-chain.js.map +1 -0
  59. package/dist/commands/simulate.d.ts +5 -1
  60. package/dist/commands/simulate.d.ts.map +1 -1
  61. package/dist/commands/simulate.js +16 -364
  62. package/dist/commands/simulate.js.map +1 -1
  63. package/dist/commands/state-helpers.d.ts.map +1 -1
  64. package/dist/commands/state-helpers.js +1 -5
  65. package/dist/commands/state-helpers.js.map +1 -1
  66. package/dist/commands/validate.d.ts +24 -2
  67. package/dist/commands/validate.d.ts.map +1 -1
  68. package/dist/commands/validate.js +40 -42
  69. package/dist/commands/validate.js.map +1 -1
  70. package/dist/commands/venue-doctor-morpho.d.ts +38 -0
  71. package/dist/commands/venue-doctor-morpho.d.ts.map +1 -0
  72. package/dist/commands/venue-doctor-morpho.js +214 -0
  73. package/dist/commands/venue-doctor-morpho.js.map +1 -0
  74. package/dist/commands/venue-doctor.d.ts +2 -26
  75. package/dist/commands/venue-doctor.d.ts.map +1 -1
  76. package/dist/commands/venue-doctor.js +27 -229
  77. package/dist/commands/venue-doctor.js.map +1 -1
  78. package/dist/commands/venue.d.ts +1 -1
  79. package/dist/commands/venue.d.ts.map +1 -1
  80. package/dist/commands/venue.js +32 -122
  81. package/dist/commands/venue.js.map +1 -1
  82. package/dist/commands/venues.d.ts +1 -5
  83. package/dist/commands/venues.d.ts.map +1 -1
  84. package/dist/commands/venues.js +11 -10
  85. package/dist/commands/venues.js.map +1 -1
  86. package/dist/commands/wallet-weth.d.ts +22 -0
  87. package/dist/commands/wallet-weth.d.ts.map +1 -0
  88. package/dist/commands/wallet-weth.js +150 -0
  89. package/dist/commands/wallet-weth.js.map +1 -0
  90. package/dist/commands/wallet.d.ts +65 -3
  91. package/dist/commands/wallet.d.ts.map +1 -1
  92. package/dist/commands/wallet.js +183 -377
  93. package/dist/commands/wallet.js.map +1 -1
  94. package/dist/index.js +375 -170
  95. package/dist/index.js.map +1 -1
  96. package/dist/lib/execution-helpers.d.ts +24 -0
  97. package/dist/lib/execution-helpers.d.ts.map +1 -0
  98. package/dist/lib/execution-helpers.js +133 -0
  99. package/dist/lib/execution-helpers.js.map +1 -0
  100. package/dist/lib/json.d.ts +8 -0
  101. package/dist/lib/json.d.ts.map +1 -0
  102. package/dist/lib/json.js +10 -0
  103. package/dist/lib/json.js.map +1 -0
  104. package/dist/lib/keystore.d.ts +12 -0
  105. package/dist/lib/keystore.d.ts.map +1 -0
  106. package/dist/lib/keystore.js +14 -0
  107. package/dist/lib/keystore.js.map +1 -0
  108. package/dist/lib/prompts.d.ts +16 -0
  109. package/dist/lib/prompts.d.ts.map +1 -0
  110. package/dist/lib/prompts.js +61 -0
  111. package/dist/lib/prompts.js.map +1 -0
  112. package/dist/lib/venue-discovery.d.ts +44 -0
  113. package/dist/lib/venue-discovery.d.ts.map +1 -0
  114. package/dist/lib/venue-discovery.js +192 -0
  115. package/dist/lib/venue-discovery.js.map +1 -0
  116. package/package.json +4 -4
@@ -2,16 +2,13 @@
2
2
  * Venues Command
3
3
  * Lists available adapters and supported chains
4
4
  */
5
- import { adapters } from "@grimoirelabs/venues";
6
5
  import chalk from "chalk";
7
- export async function venuesCommand(options) {
8
- const metas = adapters
6
+ import { loadAllAdapters } from "../lib/venue-discovery.js";
7
+ export async function venuesCommand() {
8
+ const allAdapters = await loadAllAdapters();
9
+ const metas = allAdapters
9
10
  .map((adapter) => adapter.meta)
10
11
  .sort((a, b) => a.name.localeCompare(b.name));
11
- if (options.json) {
12
- console.log(JSON.stringify(metas, null, 2));
13
- return;
14
- }
15
12
  const headers = [
16
13
  "Name",
17
14
  "Exec",
@@ -38,12 +35,16 @@ export async function venuesCommand(options) {
38
35
  formatArray(meta.dataEndpoints),
39
36
  meta.description ?? "",
40
37
  ]);
38
+ printTable(headers, rows);
39
+ return metas;
40
+ }
41
+ function printTable(headers, rows) {
41
42
  const widths = headers.map((header, index) => Math.max(header.length, ...rows.map((row) => row[index]?.length ?? 0)));
42
43
  const formatRow = (row) => row.map((cell, index) => cell.padEnd(widths[index] ?? 0)).join(" ");
43
- console.log(chalk.bold(formatRow(headers)));
44
- console.log(chalk.dim(widths.map((width) => "-".repeat(width)).join(" ")));
44
+ console.error(chalk.bold(formatRow(headers)));
45
+ console.error(chalk.dim(widths.map((width) => "-".repeat(width)).join(" ")));
45
46
  for (const row of rows) {
46
- console.log(formatRow(row));
47
+ console.error(formatRow(row));
47
48
  }
48
49
  }
49
50
  function formatArray(values) {
@@ -1 +1 @@
1
- {"version":3,"file":"venues.js","sourceRoot":"","sources":["../../src/commands/venues.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"venues.js","sourceRoot":"","sources":["../../src/commands/venues.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * WETH Wrap/Unwrap Operations
3
+ * Handles wrapping ETH → WETH and unwrapping WETH → ETH
4
+ */
5
+ interface SharedOptions {
6
+ keystore?: string;
7
+ passwordEnv?: string;
8
+ }
9
+ export declare function wrapAction(options: SharedOptions & {
10
+ amount: string;
11
+ chain?: string;
12
+ rpcUrl?: string;
13
+ json?: boolean;
14
+ }): Promise<void>;
15
+ export declare function unwrapAction(options: SharedOptions & {
16
+ amount: string;
17
+ chain?: string;
18
+ rpcUrl?: string;
19
+ json?: boolean;
20
+ }): Promise<void>;
21
+ export {};
22
+ //# sourceMappingURL=wallet-weth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet-weth.d.ts","sourceRoot":"","sources":["../../src/commands/wallet-weth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAoCD,wBAAsB,UAAU,CAC9B,OAAO,EAAE,aAAa,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3F,OAAO,CAAC,IAAI,CAAC,CAmEf;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,aAAa,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3F,OAAO,CAAC,IAAI,CAAC,CAqEf"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * WETH Wrap/Unwrap Operations
3
+ * Handles wrapping ETH → WETH and unwrapping WETH → ETH
4
+ */
5
+ import { existsSync, readFileSync } from "node:fs";
6
+ import { createProvider, createWalletFromConfig, formatWei, getNativeCurrencySymbol, } from "@grimoirelabs/core";
7
+ import chalk from "chalk";
8
+ import ora from "ora";
9
+ import { resolveKeystorePath } from "../lib/keystore.js";
10
+ import { promptPassword } from "../lib/prompts.js";
11
+ const ETH_DECIMALS = 18;
12
+ const DEFAULT_WETH_CHAIN_ID = "8453";
13
+ const WETH_ADDRESSES = {
14
+ 1: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
15
+ 8453: "0x4200000000000000000000000000000000000006",
16
+ 10: "0x4200000000000000000000000000000000000006",
17
+ 42161: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
18
+ };
19
+ const WETH_DEPOSIT_SELECTOR = "0xd0e30db0";
20
+ const WETH_WITHDRAW_SELECTOR = "0x2e1a7d4d";
21
+ function ethToWei(eth) {
22
+ const [whole = "0", frac = ""] = eth.split(".");
23
+ const padded = frac.padEnd(ETH_DECIMALS, "0").slice(0, ETH_DECIMALS);
24
+ return BigInt(whole) * 10n ** BigInt(ETH_DECIMALS) + BigInt(padded);
25
+ }
26
+ async function resolveKeystorePassword(options) {
27
+ const envName = options.passwordEnv ?? "KEYSTORE_PASSWORD";
28
+ const envValue = process.env[envName];
29
+ if (envValue) {
30
+ return envValue;
31
+ }
32
+ if (process.stdin.isTTY) {
33
+ return await promptPassword("Keystore password: ");
34
+ }
35
+ throw new Error(`No password available. Set ${envName} or run interactively.`);
36
+ }
37
+ export async function wrapAction(options) {
38
+ try {
39
+ const keystorePath = resolveKeystorePath(options);
40
+ if (!existsSync(keystorePath)) {
41
+ console.error(chalk.red(`Keystore not found: ${keystorePath}`));
42
+ console.error(chalk.dim("Run 'grimoire wallet generate' to create one."));
43
+ throw new Error("Wallet WETH operation failed");
44
+ }
45
+ const password = await resolveKeystorePassword(options);
46
+ const keystoreJson = readFileSync(keystorePath, "utf-8");
47
+ const keyConfig = { type: "keystore", source: keystoreJson, password };
48
+ const chainId = Number.parseInt(options.chain ?? DEFAULT_WETH_CHAIN_ID, 10);
49
+ const nativeSymbol = getNativeCurrencySymbol(chainId);
50
+ if (nativeSymbol !== "ETH") {
51
+ console.error(chalk.red(`WETH only exists on ETH-native chains. Chain ${chainId} uses ${nativeSymbol}.`));
52
+ throw new Error("Wallet WETH operation failed");
53
+ }
54
+ const wethAddress = WETH_ADDRESSES[chainId];
55
+ if (!wethAddress) {
56
+ console.error(chalk.red(`No known WETH address for chain ${chainId}`));
57
+ throw new Error("Wallet WETH operation failed");
58
+ }
59
+ const provider = createProvider(chainId, options.rpcUrl);
60
+ const wallet = createWalletFromConfig(keyConfig, chainId, provider.rpcUrl);
61
+ const amountWei = ethToWei(options.amount);
62
+ const spinner = ora(`Wrapping ${options.amount} ETH → WETH on chain ${chainId}...`).start();
63
+ const receipt = await wallet.sendTransaction({
64
+ to: wethAddress,
65
+ value: amountWei,
66
+ data: WETH_DEPOSIT_SELECTOR,
67
+ });
68
+ if (receipt.status === "reverted") {
69
+ spinner.fail(chalk.red("Transaction reverted"));
70
+ console.error(` Tx: ${receipt.hash}`);
71
+ throw new Error("Wallet WETH operation failed");
72
+ }
73
+ spinner.succeed(chalk.green(`Wrapped ${options.amount} ETH → WETH`));
74
+ const balance = await provider.getBalance(wallet.address);
75
+ if (options.json) {
76
+ console.error(JSON.stringify({
77
+ tx: receipt.hash,
78
+ amount: options.amount,
79
+ chain: chainId,
80
+ balance: formatWei(balance),
81
+ }));
82
+ }
83
+ else {
84
+ console.error(` ${chalk.dim("Tx:")} ${receipt.hash}`);
85
+ console.error(` ${chalk.dim("Balance:")} ${formatWei(balance)} ETH`);
86
+ }
87
+ }
88
+ catch (error) {
89
+ console.error(chalk.red(`Failed: ${error.message}`));
90
+ throw new Error("Wallet WETH operation failed");
91
+ }
92
+ }
93
+ export async function unwrapAction(options) {
94
+ try {
95
+ const keystorePath = resolveKeystorePath(options);
96
+ if (!existsSync(keystorePath)) {
97
+ console.error(chalk.red(`Keystore not found: ${keystorePath}`));
98
+ console.error(chalk.dim("Run 'grimoire wallet generate' to create one."));
99
+ throw new Error("Wallet WETH operation failed");
100
+ }
101
+ const password = await resolveKeystorePassword(options);
102
+ const keystoreJson = readFileSync(keystorePath, "utf-8");
103
+ const keyConfig = { type: "keystore", source: keystoreJson, password };
104
+ const chainId = Number.parseInt(options.chain ?? DEFAULT_WETH_CHAIN_ID, 10);
105
+ const nativeSymbol = getNativeCurrencySymbol(chainId);
106
+ if (nativeSymbol !== "ETH") {
107
+ console.error(chalk.red(`WETH only exists on ETH-native chains. Chain ${chainId} uses ${nativeSymbol}.`));
108
+ throw new Error("Wallet WETH operation failed");
109
+ }
110
+ const wethAddress = WETH_ADDRESSES[chainId];
111
+ if (!wethAddress) {
112
+ console.error(chalk.red(`No known WETH address for chain ${chainId}`));
113
+ throw new Error("Wallet WETH operation failed");
114
+ }
115
+ const provider = createProvider(chainId, options.rpcUrl);
116
+ const wallet = createWalletFromConfig(keyConfig, chainId, provider.rpcUrl);
117
+ const amountWei = ethToWei(options.amount);
118
+ const amountHex = amountWei.toString(16).padStart(64, "0");
119
+ const data = `${WETH_WITHDRAW_SELECTOR}${amountHex}`;
120
+ const spinner = ora(`Unwrapping ${options.amount} WETH → ETH on chain ${chainId}...`).start();
121
+ const receipt = await wallet.sendTransaction({
122
+ to: wethAddress,
123
+ data,
124
+ });
125
+ if (receipt.status === "reverted") {
126
+ spinner.fail(chalk.red("Transaction reverted"));
127
+ console.error(` Tx: ${receipt.hash}`);
128
+ throw new Error("Wallet WETH operation failed");
129
+ }
130
+ spinner.succeed(chalk.green(`Unwrapped ${options.amount} WETH → ETH`));
131
+ const balance = await provider.getBalance(wallet.address);
132
+ if (options.json) {
133
+ console.error(JSON.stringify({
134
+ tx: receipt.hash,
135
+ amount: options.amount,
136
+ chain: chainId,
137
+ balance: formatWei(balance),
138
+ }));
139
+ }
140
+ else {
141
+ console.error(` ${chalk.dim("Tx:")} ${receipt.hash}`);
142
+ console.error(` ${chalk.dim("Balance:")} ${formatWei(balance)} ETH`);
143
+ }
144
+ }
145
+ catch (error) {
146
+ console.error(chalk.red(`Failed: ${error.message}`));
147
+ throw new Error("Wallet WETH operation failed");
148
+ }
149
+ }
150
+ //# sourceMappingURL=wallet-weth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet-weth.js","sourceRoot":"","sources":["../../src/commands/wallet-weth.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,69 @@
1
1
  /**
2
2
  * Wallet Command
3
- * Manage wallet lifecycle: generate, address, balance, import
3
+ * Manage wallet lifecycle: generate, address, balance, import, wrap, unwrap
4
4
  */
5
- import { Command } from "commander";
6
- export declare const walletCommand: Command;
5
+ import { Cli } from "incur";
6
+ export declare const walletCli: Cli.Cli<{
7
+ generate: {
8
+ args: {};
9
+ options: {
10
+ keystore?: string | undefined;
11
+ passwordEnv?: string | undefined;
12
+ printKey?: boolean | undefined;
13
+ };
14
+ };
15
+ } & {
16
+ address: {
17
+ args: {};
18
+ options: {
19
+ keystore?: string | undefined;
20
+ passwordEnv?: string | undefined;
21
+ keyEnv?: string | undefined;
22
+ mnemonic?: string | undefined;
23
+ };
24
+ };
25
+ } & {
26
+ balance: {
27
+ args: {};
28
+ options: {
29
+ chain: string;
30
+ keystore?: string | undefined;
31
+ passwordEnv?: string | undefined;
32
+ keyEnv?: string | undefined;
33
+ mnemonic?: string | undefined;
34
+ rpcUrl?: string | undefined;
35
+ };
36
+ };
37
+ } & {
38
+ import: {
39
+ args: {};
40
+ options: {
41
+ keyEnv: string;
42
+ keystore?: string | undefined;
43
+ passwordEnv?: string | undefined;
44
+ };
45
+ };
46
+ } & {
47
+ wrap: {
48
+ args: {};
49
+ options: {
50
+ amount: string;
51
+ chain: string;
52
+ keystore?: string | undefined;
53
+ passwordEnv?: string | undefined;
54
+ rpcUrl?: string | undefined;
55
+ };
56
+ };
57
+ } & {
58
+ unwrap: {
59
+ args: {};
60
+ options: {
61
+ amount: string;
62
+ chain: string;
63
+ keystore?: string | undefined;
64
+ passwordEnv?: string | undefined;
65
+ rpcUrl?: string | undefined;
66
+ };
67
+ };
68
+ }, undefined, undefined>;
7
69
  //# sourceMappingURL=wallet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/commands/wallet.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmBH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwdpC,eAAO,MAAM,aAAa,SAAoE,CAAC"}
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/commands/wallet.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH,OAAO,EAAE,GAAG,EAAK,MAAM,OAAO,CAAC;AAkO/B,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA0ElB,CAAC"}