@0xsequence/catapult 1.2.1 → 1.3.2
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 +42 -14
- package/dist/commands/dry.d.ts.map +1 -1
- package/dist/commands/dry.js +3 -2
- package/dist/commands/dry.js.map +1 -1
- package/dist/commands/etherscan.d.ts.map +1 -1
- package/dist/commands/etherscan.js +24 -36
- package/dist/commands/etherscan.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +4 -2
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/utils.d.ts.map +1 -1
- package/dist/commands/utils.js +191 -0
- package/dist/commands/utils.js.map +1 -1
- package/dist/lib/__tests__/deployer.spec.js +1 -1
- package/dist/lib/__tests__/deployer.spec.js.map +1 -1
- package/dist/lib/__tests__/network-loader.spec.js +3 -2
- package/dist/lib/__tests__/network-loader.spec.js.map +1 -1
- package/dist/lib/__tests__/network-selection.spec.d.ts +2 -0
- package/dist/lib/__tests__/network-selection.spec.d.ts.map +1 -0
- package/dist/lib/__tests__/network-selection.spec.js +34 -0
- package/dist/lib/__tests__/network-selection.spec.js.map +1 -0
- package/dist/lib/core/__tests__/engine.spec.js +26 -2
- package/dist/lib/core/__tests__/engine.spec.js.map +1 -1
- package/dist/lib/core/__tests__/json-integration.spec.js +1 -1
- package/dist/lib/core/__tests__/json-integration.spec.js.map +1 -1
- package/dist/lib/core/__tests__/multi-platform-verification.spec.js +1 -1
- package/dist/lib/core/__tests__/multi-platform-verification.spec.js.map +1 -1
- package/dist/lib/core/__tests__/static-action.spec.js +1 -1
- package/dist/lib/core/__tests__/static-action.spec.js.map +1 -1
- package/dist/lib/core/engine.d.ts +9 -1
- package/dist/lib/core/engine.d.ts.map +1 -1
- package/dist/lib/core/engine.js +17 -4
- package/dist/lib/core/engine.js.map +1 -1
- package/dist/lib/deployer.d.ts.map +1 -1
- package/dist/lib/deployer.js +56 -2
- package/dist/lib/deployer.js.map +1 -1
- package/dist/lib/events/cli-adapter.d.ts.map +1 -1
- package/dist/lib/events/cli-adapter.js +16 -3
- package/dist/lib/events/cli-adapter.js.map +1 -1
- package/dist/lib/events/types.d.ts +18 -1
- package/dist/lib/events/types.d.ts.map +1 -1
- package/dist/lib/network-loader.d.ts.map +1 -1
- package/dist/lib/network-loader.js +1 -1
- package/dist/lib/network-loader.js.map +1 -1
- package/dist/lib/network-selection.d.ts +4 -0
- package/dist/lib/network-selection.d.ts.map +1 -0
- package/dist/lib/network-selection.js +49 -0
- package/dist/lib/network-selection.js.map +1 -0
- package/package.json +1 -1
- package/src/commands/dry.ts +4 -3
- package/src/commands/etherscan.ts +42 -42
- package/src/commands/run.ts +5 -3
- package/src/commands/utils.ts +163 -0
- package/src/lib/__tests__/deployer.spec.ts +1 -3
- package/src/lib/__tests__/network-loader.spec.ts +3 -2
- package/src/lib/__tests__/network-selection.spec.ts +41 -0
- package/src/lib/core/__tests__/engine.spec.ts +33 -2
- package/src/lib/core/__tests__/json-integration.spec.ts +1 -1
- package/src/lib/core/__tests__/multi-platform-verification.spec.ts +1 -1
- package/src/lib/core/__tests__/static-action.spec.ts +1 -1
- package/src/lib/core/engine.ts +26 -4
- package/src/lib/deployer.ts +68 -3
- package/src/lib/events/cli-adapter.ts +21 -5
- package/src/lib/events/types.ts +23 -0
- package/src/lib/network-loader.ts +2 -1
- package/src/lib/network-selection.ts +73 -0
- package/CONCEPT.md +0 -24
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Catapult
|
|
2
2
|
|
|
3
|
+
[](https://github.com/0xsequence/catapult/actions/workflows/ci.yml)
|
|
4
|
+
|
|
3
5
|
**Catapult** is a powerful Ethereum contract deployment and management framework designed to simplify the orchestration of complex contract deployments across multiple blockchain networks. Built with TypeScript and Node.js, it provides a declarative YAML-based approach to defining deployment jobs, templates, and dependencies.
|
|
4
6
|
|
|
5
7
|
## Overview
|
|
@@ -21,6 +23,33 @@ Catapult addresses the challenge of managing complex contract deployment scenari
|
|
|
21
23
|
|
|
22
24
|
## Installation
|
|
23
25
|
|
|
26
|
+
### From npm (recommended)
|
|
27
|
+
|
|
28
|
+
Available on npm as `@0xsequence/catapult`.
|
|
29
|
+
|
|
30
|
+
Global install (provides the `catapult` CLI on your PATH):
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npm install -g @0xsequence/catapult
|
|
34
|
+
# or
|
|
35
|
+
yarn global add @0xsequence/catapult
|
|
36
|
+
# or
|
|
37
|
+
pnpm add -g @0xsequence/catapult
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Project-local install (use via npx or package.json scripts):
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm install -D @0xsequence/catapult
|
|
44
|
+
# or
|
|
45
|
+
yarn add -D @0xsequence/catapult
|
|
46
|
+
# or
|
|
47
|
+
pnpm add -D @0xsequence/catapult
|
|
48
|
+
|
|
49
|
+
# then run
|
|
50
|
+
npx catapult --help
|
|
51
|
+
```
|
|
52
|
+
|
|
24
53
|
### From Source
|
|
25
54
|
|
|
26
55
|
```bash
|
|
@@ -31,10 +60,10 @@ npm run build
|
|
|
31
60
|
npm link
|
|
32
61
|
```
|
|
33
62
|
|
|
34
|
-
### Global Installation (
|
|
63
|
+
### Global Installation (from npm)
|
|
35
64
|
|
|
36
65
|
```bash
|
|
37
|
-
npm install -g catapult
|
|
66
|
+
npm install -g @0xsequence/catapult
|
|
38
67
|
```
|
|
39
68
|
|
|
40
69
|
## Project Structure
|
|
@@ -152,7 +181,7 @@ https://node.url/something/my-secret-token
|
|
|
152
181
|
```
|
|
153
182
|
|
|
154
183
|
Notes:
|
|
155
|
-
- If an `{{RPC_*}}` placeholder is present and the corresponding environment variable is not set,
|
|
184
|
+
- If an `{{RPC_*}}` placeholder is present and the corresponding environment variable is not set, it now defaults to an empty string. This allows templates like `https://node.url/{{RPC_TOKEN}}` to collapse gracefully to `https://node.url/` without failing the load.
|
|
156
185
|
- Multiple RPC tokens in one URL are supported, and whitespace inside the token delimiters is ignored (e.g., `{{ RPC_TOKEN }}`).
|
|
157
186
|
|
|
158
187
|
### Job Definitions
|
|
@@ -348,14 +377,17 @@ catapult run job1 job? -k $PRIVATE_KEY
|
|
|
348
377
|
Deploy to specific networks:
|
|
349
378
|
|
|
350
379
|
```bash
|
|
351
|
-
|
|
380
|
+
# Comma-separated, supports chain IDs and network names (name matches include all networks with that name)
|
|
381
|
+
catapult run --network 1,42161 --private-key YOUR_PRIVATE_KEY
|
|
382
|
+
catapult run --network mainnet --private-key YOUR_PRIVATE_KEY # all networks named "Mainnet"
|
|
383
|
+
catapult run --network mainnet,polygon -k $PRIVATE_KEY core-contracts
|
|
352
384
|
```
|
|
353
385
|
|
|
354
386
|
Common options (run):
|
|
355
387
|
|
|
356
388
|
- `-p, --project <path>`: Project root directory (defaults to current directory)
|
|
357
389
|
- `--dotenv <path>`: Load environment variables from a custom .env file (run command only)
|
|
358
|
-
- `-n, --network <
|
|
390
|
+
- `-n, --network <selectors>`: Comma-separated selectors by chain ID or network name
|
|
359
391
|
- `--rpc-url <url>`: Run against a single custom RPC; chain ID is auto-detected (no networks.yaml required)
|
|
360
392
|
- `-k, --private-key <key>`: EOA private key (or set `PRIVATE_KEY`)
|
|
361
393
|
- `--etherscan-api-key <key>`: Etherscan API key (or set `ETHERSCAN_API_KEY`)
|
|
@@ -403,6 +435,8 @@ Validate specific jobs:
|
|
|
403
435
|
|
|
404
436
|
```bash
|
|
405
437
|
catapult dry-run core-contracts --network 1
|
|
438
|
+
catapult dry-run core-contracts --network polygon
|
|
439
|
+
catapult dry-run core-contracts --network mainnet,42161
|
|
406
440
|
```
|
|
407
441
|
|
|
408
442
|
### Listing Resources
|
|
@@ -471,9 +505,11 @@ Etherscan helpers:
|
|
|
471
505
|
```bash
|
|
472
506
|
# Fetch ABI from Etherscan v2
|
|
473
507
|
catapult etherscan abi -n 1 -a 0xdAC17F958D2ee523a2206206994597C13D831ec7 --etherscan-api-key $ETHERSCAN_API_KEY
|
|
508
|
+
catapult etherscan abi -n mainnet -a 0xdAC17F... --etherscan-api-key $ETHERSCAN_API_KEY
|
|
474
509
|
|
|
475
510
|
# Fetch source (standard-json or flattened) from Etherscan v2
|
|
476
511
|
catapult etherscan source -n 1 -a 0xdAC17F958D2ee523a2206206994597C13D831ec7 --etherscan-api-key $ETHERSCAN_API_KEY
|
|
512
|
+
catapult etherscan source -n mainnet -a 0xdAC17F... --etherscan-api-key $ETHERSCAN_API_KEY
|
|
477
513
|
```
|
|
478
514
|
|
|
479
515
|
## Built-in Actions
|
|
@@ -809,14 +845,6 @@ npm run watch
|
|
|
809
845
|
```
|
|
810
846
|
|
|
811
847
|
### Scripts
|
|
812
|
-
<<<<<<< Current (Your changes)
|
|
813
848
|
- `npm run build` - Compile TypeScript to JavaScript
|
|
814
849
|
- `npm run dev` - Run the CLI in development mode with ts-node
|
|
815
|
-
- `npm run watch`
|
|
816
|
-
|
|
817
|
-
---
|
|
818
|
-
|
|
819
|
-
_Co-authored with Sonet-4, GLM-4.5-Air, and GPT-5. This project was vibe-coded._
|
|
820
|
-
=======
|
|
821
|
-
- `npm run build`
|
|
822
|
-
>>>>>>> Incoming (Background Agent changes)
|
|
850
|
+
- `npm run watch` - Watch for changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dry.d.ts","sourceRoot":"","sources":["../../src/commands/dry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"dry.d.ts","sourceRoot":"","sources":["../../src/commands/dry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAgDnC,wBAAgB,iBAAiB,IAAI,OAAO,CAgK3C"}
|
package/dist/commands/dry.js
CHANGED
|
@@ -12,6 +12,7 @@ const graph_1 = require("../lib/core/graph");
|
|
|
12
12
|
const common_2 = require("./common");
|
|
13
13
|
const contract_references_1 = require("../lib/validation/contract-references");
|
|
14
14
|
const index_1 = require("../index");
|
|
15
|
+
const network_selection_1 = require("../lib/network-selection");
|
|
15
16
|
function extractConstantRefs(value, refs, templateCtx) {
|
|
16
17
|
if (typeof value === 'string') {
|
|
17
18
|
const m = value.match(/^{{(.*)}}$/);
|
|
@@ -38,7 +39,7 @@ function makeDryRunCommand() {
|
|
|
38
39
|
const dryRun = new commander_1.Command('dry-run')
|
|
39
40
|
.description('Validate project configuration and show execution plan without running transactions')
|
|
40
41
|
.argument('[jobs...]', 'Specific job names to validate (and their dependencies).')
|
|
41
|
-
.option('-n, --network <
|
|
42
|
+
.option('-n, --network <selectors>', 'Comma-separated network selectors (by chain ID or name).');
|
|
42
43
|
(0, common_2.projectOption)(dryRun);
|
|
43
44
|
(0, common_2.noStdOption)(dryRun);
|
|
44
45
|
(0, common_2.verbosityOption)(dryRun);
|
|
@@ -137,7 +138,7 @@ function makeDryRunCommand() {
|
|
|
137
138
|
}
|
|
138
139
|
console.log(chalk_1.default.green(' - All constant references are valid.'));
|
|
139
140
|
const runJobs = jobs.length > 0 ? jobs : undefined;
|
|
140
|
-
const runOnNetworks = options.network
|
|
141
|
+
const runOnNetworks = (0, network_selection_1.resolveSelectedChainIds)(options.network, allNetworks);
|
|
141
142
|
const jobsToRun = new Set();
|
|
142
143
|
if (runJobs) {
|
|
143
144
|
for (const jobName of runJobs) {
|
package/dist/commands/dry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dry.js","sourceRoot":"","sources":["../../src/commands/dry.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"dry.js","sourceRoot":"","sources":["../../src/commands/dry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"etherscan.d.ts","sourceRoot":"","sources":["../../src/commands/etherscan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"etherscan.d.ts","sourceRoot":"","sources":["../../src/commands/etherscan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAiHnC,wBAAgB,oBAAoB,IAAI,OAAO,CAsP9C"}
|
|
@@ -40,6 +40,7 @@ exports.makeEtherscanCommand = makeEtherscanCommand;
|
|
|
40
40
|
const commander_1 = require("commander");
|
|
41
41
|
const chalk_1 = __importDefault(require("chalk"));
|
|
42
42
|
const network_loader_1 = require("../lib/network-loader");
|
|
43
|
+
const network_selection_1 = require("../lib/network-selection");
|
|
43
44
|
const common_1 = require("./common");
|
|
44
45
|
const index_1 = require("../index");
|
|
45
46
|
const solc = __importStar(require("solc"));
|
|
@@ -109,7 +110,7 @@ function makeEtherscanCommand() {
|
|
|
109
110
|
(0, common_1.verbosityOption)(cmd);
|
|
110
111
|
cmd
|
|
111
112
|
.option('--etherscan-api-key <key>', 'Etherscan API key. Can also be set via ETHERSCAN_API_KEY env var.')
|
|
112
|
-
.option('-n, --network <
|
|
113
|
+
.option('-n, --network <selector>', 'Target network (chain ID or name). When a name matches multiple networks, the first match is used.')
|
|
113
114
|
.option('-a, --address <address>', 'Contract address to query', '')
|
|
114
115
|
.option('--raw', 'Print raw response (no pretty JSON). Useful for piping.', false);
|
|
115
116
|
return cmd;
|
|
@@ -130,23 +131,16 @@ function makeEtherscanCommand() {
|
|
|
130
131
|
process.exit(1);
|
|
131
132
|
}
|
|
132
133
|
let chainId;
|
|
134
|
+
const networks = await (0, network_loader_1.loadNetworks)(options.project);
|
|
133
135
|
if (options.network) {
|
|
134
|
-
|
|
135
|
-
if (Number.isNaN(parsed)) {
|
|
136
|
-
console.error(chalk_1.default.red('Invalid --network value. Must be a chain ID number.'));
|
|
137
|
-
process.exit(1);
|
|
138
|
-
}
|
|
139
|
-
chainId = parsed;
|
|
136
|
+
chainId = (0, network_selection_1.resolveSingleChainId)(options.network, networks);
|
|
140
137
|
}
|
|
141
|
-
else {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
console.error(chalk_1.default.red('Please provide --network <chainId> (multiple or zero networks configured).'));
|
|
148
|
-
process.exit(1);
|
|
149
|
-
}
|
|
138
|
+
else if (networks.length === 1) {
|
|
139
|
+
chainId = networks[0].chainId;
|
|
140
|
+
}
|
|
141
|
+
if (!chainId) {
|
|
142
|
+
console.error(chalk_1.default.red('Please provide --network <selector>. When multiple networks are configured, selection is required.'));
|
|
143
|
+
process.exit(1);
|
|
150
144
|
}
|
|
151
145
|
const result = await fetchFromEtherscan(chainId, apiKey, options.address, 'getabi');
|
|
152
146
|
if (options.raw) {
|
|
@@ -177,23 +171,16 @@ function makeEtherscanCommand() {
|
|
|
177
171
|
process.exit(1);
|
|
178
172
|
}
|
|
179
173
|
let chainId;
|
|
174
|
+
const networks2 = await (0, network_loader_1.loadNetworks)(options.project);
|
|
180
175
|
if (options.network) {
|
|
181
|
-
|
|
182
|
-
if (Number.isNaN(parsed)) {
|
|
183
|
-
console.error(chalk_1.default.red('Invalid --network value. Must be a chain ID number.'));
|
|
184
|
-
process.exit(1);
|
|
185
|
-
}
|
|
186
|
-
chainId = parsed;
|
|
176
|
+
chainId = (0, network_selection_1.resolveSingleChainId)(options.network, networks2);
|
|
187
177
|
}
|
|
188
|
-
else {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
console.error(chalk_1.default.red('Please provide --network <chainId> (multiple or zero networks configured).'));
|
|
195
|
-
process.exit(1);
|
|
196
|
-
}
|
|
178
|
+
else if (networks2.length === 1) {
|
|
179
|
+
chainId = networks2[0].chainId;
|
|
180
|
+
}
|
|
181
|
+
if (!chainId) {
|
|
182
|
+
console.error(chalk_1.default.red('Please provide --network <selector>. When multiple networks are configured, selection is required.'));
|
|
183
|
+
process.exit(1);
|
|
197
184
|
}
|
|
198
185
|
const result = await fetchFromEtherscan(chainId, apiKey, options.address, 'getsourcecode');
|
|
199
186
|
const raw = result.rawResult;
|
|
@@ -202,15 +189,15 @@ function makeEtherscanCommand() {
|
|
|
202
189
|
const optimizationUsed = raw?.OptimizationUsed || '';
|
|
203
190
|
const runsStr = raw?.Runs || '';
|
|
204
191
|
const evmVersionRaw = raw?.EVMVersion || '';
|
|
205
|
-
const isStandardJson = parsed && typeof parsed === 'object' &&
|
|
192
|
+
const isStandardJson = !!(parsed && typeof parsed === 'object' && 'language' in parsed && 'sources' in parsed);
|
|
206
193
|
let input;
|
|
207
194
|
if (isStandardJson) {
|
|
208
|
-
input =
|
|
209
|
-
const currentSel = input.settings?.outputSelection
|
|
195
|
+
input = parsed;
|
|
196
|
+
const currentSel = (input.settings?.outputSelection ?? {});
|
|
210
197
|
const mergedSel = {
|
|
211
198
|
'*': {
|
|
212
199
|
'*': Array.from(new Set([
|
|
213
|
-
...(currentSel?.['*']?.['*'] || []),
|
|
200
|
+
...((currentSel?.['*']?.['*']) || []),
|
|
214
201
|
'abi',
|
|
215
202
|
'evm.bytecode',
|
|
216
203
|
'evm.deployedBytecode',
|
|
@@ -281,7 +268,8 @@ function makeEtherscanCommand() {
|
|
|
281
268
|
const output = JSON.parse(outputRaw);
|
|
282
269
|
const id = (0, crypto_1.createHash)('sha1').update(solcInput).digest('hex');
|
|
283
270
|
const solcLongVersion = output?.compiler?.version || (compilerVersion ? compilerVersion.replace(/^v/, '') : undefined);
|
|
284
|
-
const
|
|
271
|
+
const solcMaybe = solc;
|
|
272
|
+
const solcVersion = (solcLongVersion || '').split('+')[0] || (typeof solcMaybe.version === 'function' ? solcMaybe.version() : 'unknown');
|
|
285
273
|
const basePath = process.cwd();
|
|
286
274
|
const includePaths = [basePath];
|
|
287
275
|
const allowPaths = includePaths;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"etherscan.js","sourceRoot":"","sources":["../../src/commands/etherscan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"etherscan.js","sourceRoot":"","sources":["../../src/commands/etherscan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAyBnC,wBAAgB,cAAc,IAAI,OAAO,CAgHxC"}
|
package/dist/commands/run.js
CHANGED
|
@@ -7,13 +7,14 @@ const network_loader_1 = require("../lib/network-loader");
|
|
|
7
7
|
const network_utils_1 = require("../lib/network-utils");
|
|
8
8
|
const events_1 = require("../lib/events");
|
|
9
9
|
const common_1 = require("./common");
|
|
10
|
+
const network_selection_1 = require("../lib/network-selection");
|
|
10
11
|
const index_1 = require("../index");
|
|
11
12
|
function makeRunCommand() {
|
|
12
13
|
const run = new commander_1.Command('run')
|
|
13
14
|
.description('Run deployment jobs on specified networks')
|
|
14
15
|
.argument('[jobs...]', 'Specific job names or patterns to run (and their dependencies). Supports wildcards like "sequence/*" or "job?". If not provided, all jobs are run.')
|
|
15
16
|
.option('-k, --private-key <key>', 'Signer private key. Can also be set via PRIVATE_KEY env var.')
|
|
16
|
-
.option('-n, --network <
|
|
17
|
+
.option('-n, --network <selectors>', 'Comma-separated network selectors (by chain ID or name). If not provided, runs on all configured networks.')
|
|
17
18
|
.option('--rpc-url <url>', 'Custom RPC URL to run on. The system will automatically detect chainId and network information. This overrides networks.yaml configuration.')
|
|
18
19
|
.option('--etherscan-api-key <key>', 'Etherscan API key for contract verification. Can also be set via ETHERSCAN_API_KEY env var.')
|
|
19
20
|
.option('--fail-early', 'Stop execution as soon as any job fails. Default: false', false)
|
|
@@ -59,12 +60,13 @@ function makeRunCommand() {
|
|
|
59
60
|
if (networks.length === 0 && !options.rpcUrl) {
|
|
60
61
|
throw new Error('No networks configured. Please create a networks.yaml file in your project root or use --rpc-url to specify a custom network.');
|
|
61
62
|
}
|
|
63
|
+
const selectedChainIds = (0, network_selection_1.resolveSelectedChainIds)(options.network, networks);
|
|
62
64
|
const deployerOptions = {
|
|
63
65
|
projectRoot,
|
|
64
66
|
privateKey,
|
|
65
67
|
networks,
|
|
66
68
|
runJobs: jobs.length > 0 ? jobs : undefined,
|
|
67
|
-
runOnNetworks:
|
|
69
|
+
runOnNetworks: selectedChainIds,
|
|
68
70
|
etherscanApiKey,
|
|
69
71
|
failEarly: options.failEarly,
|
|
70
72
|
noPostCheckConditions: options.noPostCheckConditions,
|
package/dist/commands/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/commands/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/commands/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAanC,wBAAgB,gBAAgB,IAAI,OAAO,CAyM1C"}
|
package/dist/commands/utils.js
CHANGED
|
@@ -1,4 +1,37 @@
|
|
|
1
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
|
+
})();
|
|
2
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
37
|
};
|
|
@@ -6,6 +39,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
39
|
exports.makeUtilsCommand = makeUtilsCommand;
|
|
7
40
|
const commander_1 = require("commander");
|
|
8
41
|
const chalk_1 = __importDefault(require("chalk"));
|
|
42
|
+
const fs = __importStar(require("fs"));
|
|
43
|
+
const path = __importStar(require("path"));
|
|
9
44
|
const common_1 = require("./common");
|
|
10
45
|
const network_loader_1 = require("../lib/network-loader");
|
|
11
46
|
const index_1 = require("../index");
|
|
@@ -41,6 +76,162 @@ function makeUtilsCommand() {
|
|
|
41
76
|
}
|
|
42
77
|
});
|
|
43
78
|
utils.addCommand(chainIdToName);
|
|
79
|
+
const genTable = new commander_1.Command('gen-table')
|
|
80
|
+
.description('Generate a consolidated addresses table from an output directory')
|
|
81
|
+
.argument('<output-dir>', 'Directory containing job output JSON files (searches recursively)')
|
|
82
|
+
.option('--name', 'Include Name column', true)
|
|
83
|
+
.option('--key', 'Include Key column', false)
|
|
84
|
+
.option('--file', 'Include File column', false)
|
|
85
|
+
.option('--chain-ids, --chainIds', 'Include ChainIds column', false)
|
|
86
|
+
.option('--job', 'Include Job column', true)
|
|
87
|
+
.option('--address', 'Include Address column', true)
|
|
88
|
+
.option('--format <format>', "Output format: 'markdown' or 'ascii' (default)", 'ascii')
|
|
89
|
+
.action(async (outputDir, options) => {
|
|
90
|
+
try {
|
|
91
|
+
const absoluteDir = path.resolve(outputDir);
|
|
92
|
+
if (!fs.existsSync(absoluteDir) || !fs.statSync(absoluteDir).isDirectory()) {
|
|
93
|
+
console.error(chalk_1.default.red(`Output directory not found or not a directory: ${absoluteDir}`));
|
|
94
|
+
process.exit(1);
|
|
95
|
+
}
|
|
96
|
+
const jsonFiles = [];
|
|
97
|
+
const walk = (dir) => {
|
|
98
|
+
for (const entry of fs.readdirSync(dir)) {
|
|
99
|
+
const full = path.join(dir, entry);
|
|
100
|
+
const stat = fs.statSync(full);
|
|
101
|
+
if (stat.isDirectory())
|
|
102
|
+
walk(full);
|
|
103
|
+
else if (stat.isFile() && entry.toLowerCase().endsWith('.json'))
|
|
104
|
+
jsonFiles.push(full);
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
walk(absoluteDir);
|
|
108
|
+
const rows = [];
|
|
109
|
+
const addressRegex = /^0x[a-fA-F0-9]{40}$/;
|
|
110
|
+
const toTitleCase = (slug) => slug.split(/[-_\s]+/).filter(Boolean).map(s => s.charAt(0).toUpperCase() + s.slice(1)).join('');
|
|
111
|
+
const extractVersionSuffix = (jobName) => {
|
|
112
|
+
const m = jobName.match(/[-_]?v(\d+)/i);
|
|
113
|
+
return m ? `V${m[1]}` : '';
|
|
114
|
+
};
|
|
115
|
+
const deriveName = (jobName, key) => {
|
|
116
|
+
const version = extractVersionSuffix(jobName);
|
|
117
|
+
const baseJob = jobName.replace(/[-_]?v\d+$/i, '');
|
|
118
|
+
const keyCore = key.replace(/\.address$/i, '');
|
|
119
|
+
const isGeneric = /^(factory|address)$/i.test(keyCore);
|
|
120
|
+
const nameCore = isGeneric ? `${toTitleCase(baseJob)} ${toTitleCase(keyCore)}` : toTitleCase(keyCore);
|
|
121
|
+
return `${nameCore.replace(/\s+/g, '')}${version}`;
|
|
122
|
+
};
|
|
123
|
+
for (const file of jsonFiles) {
|
|
124
|
+
try {
|
|
125
|
+
const raw = fs.readFileSync(file, 'utf8');
|
|
126
|
+
const data = JSON.parse(raw);
|
|
127
|
+
if (!data || typeof data !== 'object' || !Array.isArray(data.networks))
|
|
128
|
+
continue;
|
|
129
|
+
const jobName = data.jobName ?? path.basename(file, '.json');
|
|
130
|
+
for (const net of data.networks) {
|
|
131
|
+
if (!net || typeof net !== 'object')
|
|
132
|
+
continue;
|
|
133
|
+
const outputs = net.outputs;
|
|
134
|
+
if (!outputs)
|
|
135
|
+
continue;
|
|
136
|
+
const chainIds = Array.isArray(net.chainIds) ? net.chainIds : [];
|
|
137
|
+
for (const [key, value] of Object.entries(outputs)) {
|
|
138
|
+
let address;
|
|
139
|
+
if (typeof value === 'string' && addressRegex.test(value)) {
|
|
140
|
+
address = value;
|
|
141
|
+
}
|
|
142
|
+
else if (value && typeof value === 'object' && 'address' in value && typeof value.address === 'string' && addressRegex.test(value.address)) {
|
|
143
|
+
address = value.address;
|
|
144
|
+
}
|
|
145
|
+
if (!address)
|
|
146
|
+
continue;
|
|
147
|
+
rows.push({
|
|
148
|
+
job: jobName,
|
|
149
|
+
chainIds: chainIds.join(','),
|
|
150
|
+
name: deriveName(jobName, key),
|
|
151
|
+
address,
|
|
152
|
+
key,
|
|
153
|
+
file
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
rows.sort((a, b) => a.job.localeCompare(b.job) || a.name.localeCompare(b.name));
|
|
162
|
+
if (rows.length === 0) {
|
|
163
|
+
console.log(chalk_1.default.yellow('No address entries found.'));
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const showJob = !!options.job;
|
|
167
|
+
const showAddress = !!options.address;
|
|
168
|
+
const showName = !!options.name;
|
|
169
|
+
const showKey = !!options.key;
|
|
170
|
+
const showChainIds = !!options.chainIds;
|
|
171
|
+
const showFile = !!options.file;
|
|
172
|
+
const selectedHeaders = [];
|
|
173
|
+
if (showJob)
|
|
174
|
+
selectedHeaders.push('job');
|
|
175
|
+
if (showChainIds)
|
|
176
|
+
selectedHeaders.push('chainIds');
|
|
177
|
+
if (showName)
|
|
178
|
+
selectedHeaders.push('name');
|
|
179
|
+
if (showAddress)
|
|
180
|
+
selectedHeaders.push('address');
|
|
181
|
+
if (showKey)
|
|
182
|
+
selectedHeaders.push('key');
|
|
183
|
+
if (showFile)
|
|
184
|
+
selectedHeaders.push('file');
|
|
185
|
+
const titles = {
|
|
186
|
+
job: 'Job',
|
|
187
|
+
chainIds: 'ChainIds',
|
|
188
|
+
name: 'Name',
|
|
189
|
+
address: 'Address',
|
|
190
|
+
key: 'Key',
|
|
191
|
+
file: 'File'
|
|
192
|
+
};
|
|
193
|
+
const format = String(options.format || 'markdown').toLowerCase();
|
|
194
|
+
if (format !== 'markdown' && format !== 'ascii') {
|
|
195
|
+
console.error(chalk_1.default.red("Invalid format. Use 'markdown' or 'ascii'."));
|
|
196
|
+
process.exit(1);
|
|
197
|
+
}
|
|
198
|
+
if (format === 'markdown') {
|
|
199
|
+
const header = '| ' + selectedHeaders.map(h => titles[h]).join(' | ') + ' |';
|
|
200
|
+
const sepMd = '| ' + selectedHeaders.map(h => '-'.repeat(Math.max(3, String(titles[h]).length))).join(' | ') + ' |';
|
|
201
|
+
console.log(header);
|
|
202
|
+
console.log(sepMd);
|
|
203
|
+
for (const r of rows) {
|
|
204
|
+
console.log('| ' + selectedHeaders.map(h => String(r[h])).join(' | ') + ' |');
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
const widths = {};
|
|
209
|
+
for (const h of selectedHeaders) {
|
|
210
|
+
widths[h] = Math.max(titles[h].length, ...rows.map(r => String(r[h]).length));
|
|
211
|
+
}
|
|
212
|
+
const makeSep = (left, mid, right, fill) => {
|
|
213
|
+
return left + selectedHeaders.map(h => fill.repeat(widths[h] + 2)).join(mid) + right;
|
|
214
|
+
};
|
|
215
|
+
const pad = (s, w) => s + ' '.repeat(Math.max(0, w - s.length));
|
|
216
|
+
const top = makeSep('┌', '┬', '┐', '─');
|
|
217
|
+
const sep = makeSep('├', '┼', '┤', '─');
|
|
218
|
+
const bot = makeSep('└', '┴', '┘', '─');
|
|
219
|
+
const headerLine = '│' + selectedHeaders.map(h => ' ' + pad(titles[h], widths[h]) + ' ').join('│') + '│';
|
|
220
|
+
const lines = rows.map(r => '│' + selectedHeaders.map(h => ' ' + pad(String(r[h]), widths[h]) + ' ').join('│') + '│');
|
|
221
|
+
console.log(top);
|
|
222
|
+
console.log(headerLine);
|
|
223
|
+
console.log(sep);
|
|
224
|
+
for (const line of lines)
|
|
225
|
+
console.log(line);
|
|
226
|
+
console.log(bot);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
console.error(chalk_1.default.red('Error generating table:'), error instanceof Error ? error.message : String(error));
|
|
231
|
+
process.exit(1);
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
utils.addCommand(genTable);
|
|
44
235
|
return utils;
|
|
45
236
|
}
|
|
46
237
|
//# sourceMappingURL=utils.js.map
|