@rocketh/verifier 0.10.1
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/.prettierignore +3 -0
- package/.prettierrc +7 -0
- package/CHANGELOG.md +9 -0
- package/README.md +1 -0
- package/dist/cli.cjs +123 -0
- package/dist/cli.cjs.map +1 -0
- package/dist/cli.mjs +120 -0
- package/dist/cli.mjs.map +1 -0
- package/dist/index.cjs +671 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.mjs +669 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +45 -0
- package/src/blockscout.ts +157 -0
- package/src/cli.ts +65 -0
- package/src/etherscan.ts +431 -0
- package/src/index.ts +82 -0
- package/src/metadata.ts +30 -0
- package/src/sourcify.ts +109 -0
- package/src/utils/match-all.ts +72 -0
- package/tsconfig.json +15 -0
package/.prettierignore
ADDED
package/.prettierrc
ADDED
package/CHANGELOG.md
ADDED
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# rocketh-verifier
|
package/dist/cli.cjs
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var ldenv = require('ldenv');
|
|
5
|
+
var rocketh = require('rocketh');
|
|
6
|
+
var index = require('./index.cjs');
|
|
7
|
+
var commander = require('commander');
|
|
8
|
+
var fs = require('fs-extra');
|
|
9
|
+
var path = require('path');
|
|
10
|
+
require('fs');
|
|
11
|
+
require('qs');
|
|
12
|
+
require('chalk');
|
|
13
|
+
|
|
14
|
+
var name = "@rocketh/verifier";
|
|
15
|
+
var version = "0.10.0";
|
|
16
|
+
var description = "submit verification proof to verifier services (blockchain explorer, sourcify...";
|
|
17
|
+
var publishConfig = {
|
|
18
|
+
access: "public"
|
|
19
|
+
};
|
|
20
|
+
var type = "module";
|
|
21
|
+
var main = "dist/index.cjs";
|
|
22
|
+
var module$1 = "dist/index.mjs";
|
|
23
|
+
var types = "dist/index.d.ts";
|
|
24
|
+
var bin = {
|
|
25
|
+
"rocketh-verify": "dist/cli.cjs"
|
|
26
|
+
};
|
|
27
|
+
var devDependencies = {
|
|
28
|
+
"@types/node": "^20.12.7",
|
|
29
|
+
pkgroll: "^2.0.2",
|
|
30
|
+
rimraf: "^5.0.5",
|
|
31
|
+
typescript: "^5.4.5"
|
|
32
|
+
};
|
|
33
|
+
var dependencies = {
|
|
34
|
+
"@types/fs-extra": "^11.0.4",
|
|
35
|
+
"@types/qs": "^6.9.14",
|
|
36
|
+
chalk: "^5.3.0",
|
|
37
|
+
commander: "^12.0.0",
|
|
38
|
+
"fs-extra": "^11.2.0",
|
|
39
|
+
ldenv: "^0.3.10",
|
|
40
|
+
qs: "^6.12.1",
|
|
41
|
+
rocketh: "workspace:*"
|
|
42
|
+
};
|
|
43
|
+
var scripts = {
|
|
44
|
+
build: "rimraf dist && pkgroll --sourcemap",
|
|
45
|
+
dev: "pkgroll --watch"
|
|
46
|
+
};
|
|
47
|
+
var pkg = {
|
|
48
|
+
name: name,
|
|
49
|
+
version: version,
|
|
50
|
+
description: description,
|
|
51
|
+
publishConfig: publishConfig,
|
|
52
|
+
type: type,
|
|
53
|
+
main: main,
|
|
54
|
+
module: module$1,
|
|
55
|
+
types: types,
|
|
56
|
+
".": {
|
|
57
|
+
require: {
|
|
58
|
+
types: "./dist/index.d.ts",
|
|
59
|
+
"default": "./dist/index.cjs"
|
|
60
|
+
},
|
|
61
|
+
"import": {
|
|
62
|
+
types: "./dist/index.d.ts",
|
|
63
|
+
"default": "./dist/index.mjs"
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
bin: bin,
|
|
67
|
+
devDependencies: devDependencies,
|
|
68
|
+
dependencies: dependencies,
|
|
69
|
+
scripts: scripts
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
function exportMetadata(config, { out }) {
|
|
73
|
+
const { deployments, chainId } = rocketh.loadDeployments(config.deployments, config.network.name, false);
|
|
74
|
+
if (Object.keys(deployments).length === 0) {
|
|
75
|
+
console.log(`the network ${config.network.name} has zero deployments`);
|
|
76
|
+
process.exit();
|
|
77
|
+
}
|
|
78
|
+
if (!chainId) {
|
|
79
|
+
console.error(`the network ${config.network.name} has no chainId recorded`);
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
const folder = path.join(out, config.network.name);
|
|
83
|
+
fs.emptyDirSync(folder);
|
|
84
|
+
const deploymentNames = Object.keys(deployments);
|
|
85
|
+
for (const deploymentName of deploymentNames) {
|
|
86
|
+
const deployment = deployments[deploymentName];
|
|
87
|
+
if (deployment.metadata) {
|
|
88
|
+
fs.writeFileSync(
|
|
89
|
+
path.join(folder, `${deploymentName}_at_${deployment.address}.metadata.json`),
|
|
90
|
+
deployment.metadata
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
ldenv.loadEnv();
|
|
97
|
+
const commandName = `rocketh-verify`;
|
|
98
|
+
const program = new commander.Command();
|
|
99
|
+
program.name(commandName).description("submit contract for verification").version(pkg.version).option("-d, --deployments <value>", "folder where deployments are saved").requiredOption("-n, --network <value>", "network context to use");
|
|
100
|
+
program.command("etherscan").description("submit contract for verification to etherscan").option("--endpoint <value>", "endpoint to connect to").action((options) => {
|
|
101
|
+
const programOptions = program.opts();
|
|
102
|
+
const resolvedConfig = rocketh.readAndResolveConfig({ ...programOptions, ignoreMissingRPC: true });
|
|
103
|
+
index.run(resolvedConfig, {
|
|
104
|
+
verifier: { type: "etherscan", apiKey: process.env["ETHERSCAN_API_KEY"], endpoint: options.endpoint }
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
program.command("sourcify").description("submit contract for verification to sourcify").option("--endpoint <value>", "endpoint to connect to").action((options) => {
|
|
108
|
+
const programOptions = program.opts();
|
|
109
|
+
const resolvedConfig = rocketh.readAndResolveConfig({ ...programOptions, ignoreMissingRPC: true });
|
|
110
|
+
index.run(resolvedConfig, { verifier: { type: "sourcify", endpoint: options.endpoint } });
|
|
111
|
+
});
|
|
112
|
+
program.command("blockscout").description("submit contract for verification to blockscout").option("--endpoint <value>", "endpoint to connect to").action((options) => {
|
|
113
|
+
const programOptions = program.opts();
|
|
114
|
+
const resolvedConfig = rocketh.readAndResolveConfig({ ...programOptions, ignoreMissingRPC: true });
|
|
115
|
+
index.run(resolvedConfig, { verifier: { type: "blockscout", endpoint: options.endpoint } });
|
|
116
|
+
});
|
|
117
|
+
program.command("metadata").description("export metadata").option("--out <value>", "folder to write metadata into").action((options) => {
|
|
118
|
+
const programOptions = program.opts();
|
|
119
|
+
const resolvedConfig = rocketh.readAndResolveConfig({ ...programOptions, ignoreMissingRPC: true });
|
|
120
|
+
exportMetadata(resolvedConfig, { out: options.out || "_metadata" });
|
|
121
|
+
});
|
|
122
|
+
program.parse(process.argv);
|
|
123
|
+
//# sourceMappingURL=cli.cjs.map
|
package/dist/cli.cjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.cjs","sources":["../src/metadata.ts","../src/cli.ts"],"sourcesContent":["import {ResolvedConfig, loadDeployments} from 'rocketh';\nimport fs from 'fs-extra';\nimport path from 'path';\n\nexport function exportMetadata(config: ResolvedConfig, {out}: {out: string}) {\n\tconst {deployments, chainId} = loadDeployments(config.deployments, config.network.name, false);\n\n\tif (Object.keys(deployments).length === 0) {\n\t\tconsole.log(`the network ${config.network.name} has zero deployments`);\n\t\tprocess.exit();\n\t}\n\n\tif (!chainId) {\n\t\tconsole.error(`the network ${config.network.name} has no chainId recorded`);\n\t\tprocess.exit(1);\n\t}\n\n\tconst folder = path.join(out, config.network.name);\n\tfs.emptyDirSync(folder);\n\tconst deploymentNames = Object.keys(deployments);\n\tfor (const deploymentName of deploymentNames) {\n\t\tconst deployment = deployments[deploymentName];\n\t\tif (deployment.metadata) {\n\t\t\tfs.writeFileSync(\n\t\t\t\tpath.join(folder, `${deploymentName}_at_${deployment.address}.metadata.json`),\n\t\t\t\tdeployment.metadata\n\t\t\t);\n\t\t}\n\t}\n}\n","#! /usr/bin/env node\nimport {loadEnv} from 'ldenv';\nimport {readAndResolveConfig} from 'rocketh';\nimport {run} from '.';\nimport {Command, Option} from 'commander';\nimport pkg from '../package.json';\nimport {ConfigOptions} from 'rocketh';\nimport {exportMetadata} from './metadata';\nloadEnv();\n\nconst commandName = `rocketh-verify`;\n\nconst program = new Command();\nprogram\n\t.name(commandName)\n\t.description('submit contract for verification')\n\t.version(pkg.version)\n\n\t.option('-d, --deployments <value>', 'folder where deployments are saved')\n\t.requiredOption('-n, --network <value>', 'network context to use');\n\nprogram\n\t.command('etherscan')\n\t.description('submit contract for verification to etherscan')\n\t.option('--endpoint <value>', 'endpoint to connect to')\n\t.action((options: {endpoint?: string}) => {\n\t\tconst programOptions = program.opts() as ConfigOptions;\n\t\tconst resolvedConfig = readAndResolveConfig({...programOptions, ignoreMissingRPC: true});\n\t\trun(resolvedConfig, {\n\t\t\tverifier: {type: 'etherscan', apiKey: process.env['ETHERSCAN_API_KEY'], endpoint: options.endpoint},\n\t\t});\n\t});\n\nprogram\n\t.command('sourcify')\n\t.description('submit contract for verification to sourcify')\n\t.option('--endpoint <value>', 'endpoint to connect to')\n\t.action((options: {endpoint?: string}) => {\n\t\tconst programOptions = program.opts() as ConfigOptions;\n\t\tconst resolvedConfig = readAndResolveConfig({...programOptions, ignoreMissingRPC: true});\n\t\trun(resolvedConfig, {verifier: {type: 'sourcify', endpoint: options.endpoint}});\n\t});\n\nprogram\n\t.command('blockscout')\n\t.description('submit contract for verification to blockscout')\n\t.option('--endpoint <value>', 'endpoint to connect to')\n\t// .option('--api <value>', 'api version (default to v2)')\n\t.action((options: {endpoint?: string}) => {\n\t\tconst programOptions = program.opts() as ConfigOptions;\n\t\tconst resolvedConfig = readAndResolveConfig({...programOptions, ignoreMissingRPC: true});\n\t\trun(resolvedConfig, {verifier: {type: 'blockscout', endpoint: options.endpoint}});\n\t});\n\nprogram\n\t.command('metadata')\n\t.description('export metadata')\n\t.option('--out <value>', 'folder to write metadata into')\n\t.action((options: {out?: string}) => {\n\t\tconst programOptions = program.opts() as ConfigOptions;\n\t\tconst resolvedConfig = readAndResolveConfig({...programOptions, ignoreMissingRPC: true});\n\t\texportMetadata(resolvedConfig, {out: options.out || '_metadata'});\n\t});\n\nprogram.parse(process.argv);\n"],"names":["loadDeployments","loadEnv","Command","readAndResolveConfig","run"],"mappings":"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A,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA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AAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACL,CAAA,CAAE,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACJ,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA"}
|
package/dist/cli.mjs
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { loadEnv } from 'ldenv';
|
|
2
|
+
import { loadDeployments, readAndResolveConfig } from 'rocketh';
|
|
3
|
+
import { run } from './index.mjs';
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import fs from 'fs-extra';
|
|
6
|
+
import path from 'path';
|
|
7
|
+
import 'fs';
|
|
8
|
+
import 'qs';
|
|
9
|
+
import 'chalk';
|
|
10
|
+
|
|
11
|
+
var name = "@rocketh/verifier";
|
|
12
|
+
var version = "0.10.0";
|
|
13
|
+
var description = "submit verification proof to verifier services (blockchain explorer, sourcify...";
|
|
14
|
+
var publishConfig = {
|
|
15
|
+
access: "public"
|
|
16
|
+
};
|
|
17
|
+
var type = "module";
|
|
18
|
+
var main = "dist/index.cjs";
|
|
19
|
+
var module = "dist/index.mjs";
|
|
20
|
+
var types = "dist/index.d.ts";
|
|
21
|
+
var bin = {
|
|
22
|
+
"rocketh-verify": "dist/cli.cjs"
|
|
23
|
+
};
|
|
24
|
+
var devDependencies = {
|
|
25
|
+
"@types/node": "^20.12.7",
|
|
26
|
+
pkgroll: "^2.0.2",
|
|
27
|
+
rimraf: "^5.0.5",
|
|
28
|
+
typescript: "^5.4.5"
|
|
29
|
+
};
|
|
30
|
+
var dependencies = {
|
|
31
|
+
"@types/fs-extra": "^11.0.4",
|
|
32
|
+
"@types/qs": "^6.9.14",
|
|
33
|
+
chalk: "^5.3.0",
|
|
34
|
+
commander: "^12.0.0",
|
|
35
|
+
"fs-extra": "^11.2.0",
|
|
36
|
+
ldenv: "^0.3.10",
|
|
37
|
+
qs: "^6.12.1",
|
|
38
|
+
rocketh: "workspace:*"
|
|
39
|
+
};
|
|
40
|
+
var scripts = {
|
|
41
|
+
build: "rimraf dist && pkgroll --sourcemap",
|
|
42
|
+
dev: "pkgroll --watch"
|
|
43
|
+
};
|
|
44
|
+
var pkg = {
|
|
45
|
+
name: name,
|
|
46
|
+
version: version,
|
|
47
|
+
description: description,
|
|
48
|
+
publishConfig: publishConfig,
|
|
49
|
+
type: type,
|
|
50
|
+
main: main,
|
|
51
|
+
module: module,
|
|
52
|
+
types: types,
|
|
53
|
+
".": {
|
|
54
|
+
require: {
|
|
55
|
+
types: "./dist/index.d.ts",
|
|
56
|
+
"default": "./dist/index.cjs"
|
|
57
|
+
},
|
|
58
|
+
"import": {
|
|
59
|
+
types: "./dist/index.d.ts",
|
|
60
|
+
"default": "./dist/index.mjs"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
bin: bin,
|
|
64
|
+
devDependencies: devDependencies,
|
|
65
|
+
dependencies: dependencies,
|
|
66
|
+
scripts: scripts
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
function exportMetadata(config, { out }) {
|
|
70
|
+
const { deployments, chainId } = loadDeployments(config.deployments, config.network.name, false);
|
|
71
|
+
if (Object.keys(deployments).length === 0) {
|
|
72
|
+
console.log(`the network ${config.network.name} has zero deployments`);
|
|
73
|
+
process.exit();
|
|
74
|
+
}
|
|
75
|
+
if (!chainId) {
|
|
76
|
+
console.error(`the network ${config.network.name} has no chainId recorded`);
|
|
77
|
+
process.exit(1);
|
|
78
|
+
}
|
|
79
|
+
const folder = path.join(out, config.network.name);
|
|
80
|
+
fs.emptyDirSync(folder);
|
|
81
|
+
const deploymentNames = Object.keys(deployments);
|
|
82
|
+
for (const deploymentName of deploymentNames) {
|
|
83
|
+
const deployment = deployments[deploymentName];
|
|
84
|
+
if (deployment.metadata) {
|
|
85
|
+
fs.writeFileSync(
|
|
86
|
+
path.join(folder, `${deploymentName}_at_${deployment.address}.metadata.json`),
|
|
87
|
+
deployment.metadata
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
loadEnv();
|
|
94
|
+
const commandName = `rocketh-verify`;
|
|
95
|
+
const program = new Command();
|
|
96
|
+
program.name(commandName).description("submit contract for verification").version(pkg.version).option("-d, --deployments <value>", "folder where deployments are saved").requiredOption("-n, --network <value>", "network context to use");
|
|
97
|
+
program.command("etherscan").description("submit contract for verification to etherscan").option("--endpoint <value>", "endpoint to connect to").action((options) => {
|
|
98
|
+
const programOptions = program.opts();
|
|
99
|
+
const resolvedConfig = readAndResolveConfig({ ...programOptions, ignoreMissingRPC: true });
|
|
100
|
+
run(resolvedConfig, {
|
|
101
|
+
verifier: { type: "etherscan", apiKey: process.env["ETHERSCAN_API_KEY"], endpoint: options.endpoint }
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
program.command("sourcify").description("submit contract for verification to sourcify").option("--endpoint <value>", "endpoint to connect to").action((options) => {
|
|
105
|
+
const programOptions = program.opts();
|
|
106
|
+
const resolvedConfig = readAndResolveConfig({ ...programOptions, ignoreMissingRPC: true });
|
|
107
|
+
run(resolvedConfig, { verifier: { type: "sourcify", endpoint: options.endpoint } });
|
|
108
|
+
});
|
|
109
|
+
program.command("blockscout").description("submit contract for verification to blockscout").option("--endpoint <value>", "endpoint to connect to").action((options) => {
|
|
110
|
+
const programOptions = program.opts();
|
|
111
|
+
const resolvedConfig = readAndResolveConfig({ ...programOptions, ignoreMissingRPC: true });
|
|
112
|
+
run(resolvedConfig, { verifier: { type: "blockscout", endpoint: options.endpoint } });
|
|
113
|
+
});
|
|
114
|
+
program.command("metadata").description("export metadata").option("--out <value>", "folder to write metadata into").action((options) => {
|
|
115
|
+
const programOptions = program.opts();
|
|
116
|
+
const resolvedConfig = readAndResolveConfig({ ...programOptions, ignoreMissingRPC: true });
|
|
117
|
+
exportMetadata(resolvedConfig, { out: options.out || "_metadata" });
|
|
118
|
+
});
|
|
119
|
+
program.parse(process.argv);
|
|
120
|
+
//# sourceMappingURL=cli.mjs.map
|
package/dist/cli.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.mjs","sources":["../src/metadata.ts","../src/cli.ts"],"sourcesContent":["import {ResolvedConfig, loadDeployments} from 'rocketh';\nimport fs from 'fs-extra';\nimport path from 'path';\n\nexport function exportMetadata(config: ResolvedConfig, {out}: {out: string}) {\n\tconst {deployments, chainId} = loadDeployments(config.deployments, config.network.name, false);\n\n\tif (Object.keys(deployments).length === 0) {\n\t\tconsole.log(`the network ${config.network.name} has zero deployments`);\n\t\tprocess.exit();\n\t}\n\n\tif (!chainId) {\n\t\tconsole.error(`the network ${config.network.name} has no chainId recorded`);\n\t\tprocess.exit(1);\n\t}\n\n\tconst folder = path.join(out, config.network.name);\n\tfs.emptyDirSync(folder);\n\tconst deploymentNames = Object.keys(deployments);\n\tfor (const deploymentName of deploymentNames) {\n\t\tconst deployment = deployments[deploymentName];\n\t\tif (deployment.metadata) {\n\t\t\tfs.writeFileSync(\n\t\t\t\tpath.join(folder, `${deploymentName}_at_${deployment.address}.metadata.json`),\n\t\t\t\tdeployment.metadata\n\t\t\t);\n\t\t}\n\t}\n}\n","#! /usr/bin/env node\nimport {loadEnv} from 'ldenv';\nimport {readAndResolveConfig} from 'rocketh';\nimport {run} from '.';\nimport {Command, Option} from 'commander';\nimport pkg from '../package.json';\nimport {ConfigOptions} from 'rocketh';\nimport {exportMetadata} from './metadata';\nloadEnv();\n\nconst commandName = `rocketh-verify`;\n\nconst program = new Command();\nprogram\n\t.name(commandName)\n\t.description('submit contract for verification')\n\t.version(pkg.version)\n\n\t.option('-d, --deployments <value>', 'folder where deployments are saved')\n\t.requiredOption('-n, --network <value>', 'network context to use');\n\nprogram\n\t.command('etherscan')\n\t.description('submit contract for verification to etherscan')\n\t.option('--endpoint <value>', 'endpoint to connect to')\n\t.action((options: {endpoint?: string}) => {\n\t\tconst programOptions = program.opts() as ConfigOptions;\n\t\tconst resolvedConfig = readAndResolveConfig({...programOptions, ignoreMissingRPC: true});\n\t\trun(resolvedConfig, {\n\t\t\tverifier: {type: 'etherscan', apiKey: process.env['ETHERSCAN_API_KEY'], endpoint: options.endpoint},\n\t\t});\n\t});\n\nprogram\n\t.command('sourcify')\n\t.description('submit contract for verification to sourcify')\n\t.option('--endpoint <value>', 'endpoint to connect to')\n\t.action((options: {endpoint?: string}) => {\n\t\tconst programOptions = program.opts() as ConfigOptions;\n\t\tconst resolvedConfig = readAndResolveConfig({...programOptions, ignoreMissingRPC: true});\n\t\trun(resolvedConfig, {verifier: {type: 'sourcify', endpoint: options.endpoint}});\n\t});\n\nprogram\n\t.command('blockscout')\n\t.description('submit contract for verification to blockscout')\n\t.option('--endpoint <value>', 'endpoint to connect to')\n\t// .option('--api <value>', 'api version (default to v2)')\n\t.action((options: {endpoint?: string}) => {\n\t\tconst programOptions = program.opts() as ConfigOptions;\n\t\tconst resolvedConfig = readAndResolveConfig({...programOptions, ignoreMissingRPC: true});\n\t\trun(resolvedConfig, {verifier: {type: 'blockscout', endpoint: options.endpoint}});\n\t});\n\nprogram\n\t.command('metadata')\n\t.description('export metadata')\n\t.option('--out <value>', 'folder to write metadata into')\n\t.action((options: {out?: string}) => {\n\t\tconst programOptions = program.opts() as ConfigOptions;\n\t\tconst resolvedConfig = readAndResolveConfig({...programOptions, ignoreMissingRPC: true});\n\t\texportMetadata(resolvedConfig, {out: options.out || '_metadata'});\n\t});\n\nprogram.parse(process.argv);\n"],"names":[],"mappings":"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"}
|