@rocketh/verifier 0.10.9 → 0.10.11
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/CHANGELOG.md +15 -0
- package/dist/esm/blockscout.d.ts +11 -0
- package/dist/esm/blockscout.d.ts.map +1 -0
- package/dist/esm/blockscout.js +121 -0
- package/dist/esm/blockscout.js.map +1 -0
- package/dist/esm/cli.d.ts +3 -0
- package/dist/esm/cli.d.ts.map +1 -0
- package/dist/esm/cli.js +65 -0
- package/dist/esm/cli.js.map +1 -0
- package/dist/esm/etherscan.d.ts +11 -0
- package/dist/esm/etherscan.d.ts.map +1 -0
- package/dist/esm/etherscan.js +360 -0
- package/dist/esm/etherscan.js.map +1 -0
- package/dist/{index.d.ts → esm/index.d.ts} +6 -8
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +46 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/metadata.d.ts +5 -0
- package/dist/esm/metadata.d.ts.map +1 -0
- package/dist/esm/metadata.js +24 -0
- package/dist/esm/metadata.js.map +1 -0
- package/dist/esm/sourcify.d.ts +11 -0
- package/dist/esm/sourcify.d.ts.map +1 -0
- package/dist/esm/sourcify.js +84 -0
- package/dist/esm/sourcify.js.map +1 -0
- package/dist/esm/utils/match-all.d.ts +42 -0
- package/dist/esm/utils/match-all.d.ts.map +1 -0
- package/dist/esm/utils/match-all.js +66 -0
- package/dist/esm/utils/match-all.js.map +1 -0
- package/package.json +10 -15
- package/src/blockscout.ts +1 -1
- package/src/cli.ts +3 -3
- package/src/etherscan.ts +2 -2
- package/src/index.ts +3 -3
- package/src/sourcify.ts +1 -1
- package/tsconfig.json +13 -10
- package/dist/cli.cjs +0 -129
- package/dist/cli.cjs.map +0 -1
- package/dist/cli.mjs +0 -126
- package/dist/cli.mjs.map +0 -1
- package/dist/index.cjs +0 -671
- package/dist/index.cjs.map +0 -1
- package/dist/index.mjs +0 -669
- package/dist/index.mjs.map +0 -1
|
@@ -1,26 +1,24 @@
|
|
|
1
1
|
import { ResolvedConfig } from 'rocketh';
|
|
2
|
-
|
|
3
|
-
type EtherscanOptions = {
|
|
2
|
+
export type EtherscanOptions = {
|
|
4
3
|
type: 'etherscan';
|
|
5
4
|
endpoint?: string;
|
|
6
5
|
apiKey?: string;
|
|
7
6
|
license?: string;
|
|
8
7
|
forceLicense?: boolean;
|
|
9
8
|
};
|
|
10
|
-
type SourcifyOptions = {
|
|
9
|
+
export type SourcifyOptions = {
|
|
11
10
|
type: 'sourcify';
|
|
12
11
|
endpoint?: string;
|
|
13
12
|
};
|
|
14
|
-
type BlockscoutOptions = {
|
|
13
|
+
export type BlockscoutOptions = {
|
|
15
14
|
type: 'blockscout';
|
|
16
15
|
endpoint?: string;
|
|
17
16
|
};
|
|
18
|
-
type VerificationOptions = {
|
|
17
|
+
export type VerificationOptions = {
|
|
19
18
|
verifier: EtherscanOptions | SourcifyOptions | BlockscoutOptions;
|
|
20
19
|
deploymentNames?: string[];
|
|
21
20
|
minInterval?: number;
|
|
22
21
|
logErrorOnFailure?: boolean;
|
|
23
22
|
};
|
|
24
|
-
declare function run(config: ResolvedConfig, options: VerificationOptions): Promise<void>;
|
|
25
|
-
|
|
26
|
-
export { type BlockscoutOptions, type EtherscanOptions, type SourcifyOptions, type VerificationOptions, run };
|
|
23
|
+
export declare function run(config: ResolvedConfig, options: VerificationOptions): Promise<void>;
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAkB,MAAM,SAAS,CAAC;AAKxD,MAAM,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAElB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IACjC,QAAQ,EAAE,gBAAgB,GAAG,eAAe,GAAG,iBAAiB,CAAC;IACjE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,wBAAsB,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,mBAAmB,iBAkD7E"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { loadDeployments } from 'rocketh';
|
|
2
|
+
import { submitSourcesToEtherscan } from './etherscan.js';
|
|
3
|
+
import { submitSourcesToSourcify } from './sourcify.js';
|
|
4
|
+
import { submitSourcesToBlockscout } from './blockscout.js';
|
|
5
|
+
export async function run(config, options) {
|
|
6
|
+
const { deployments, chainId } = loadDeployments(config.deployments, config.network.name, false);
|
|
7
|
+
if (Object.keys(deployments).length === 0) {
|
|
8
|
+
console.log(`the network ${config.network.name} has zero deployments`);
|
|
9
|
+
process.exit();
|
|
10
|
+
}
|
|
11
|
+
if (!chainId) {
|
|
12
|
+
console.error(`the network ${config.network.name} has no chainId recorded`);
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
if (options.verifier.type === 'etherscan') {
|
|
16
|
+
await submitSourcesToEtherscan({
|
|
17
|
+
chainId,
|
|
18
|
+
deployments,
|
|
19
|
+
networkName: config.network.name,
|
|
20
|
+
deploymentNames: options.deploymentNames,
|
|
21
|
+
minInterval: options.minInterval,
|
|
22
|
+
logErrorOnFailure: options.logErrorOnFailure,
|
|
23
|
+
}, options.verifier);
|
|
24
|
+
}
|
|
25
|
+
else if (options.verifier.type === 'sourcify') {
|
|
26
|
+
await submitSourcesToSourcify({
|
|
27
|
+
chainId,
|
|
28
|
+
deployments,
|
|
29
|
+
networkName: config.network.name,
|
|
30
|
+
deploymentNames: options.deploymentNames,
|
|
31
|
+
minInterval: options.minInterval,
|
|
32
|
+
logErrorOnFailure: options.logErrorOnFailure,
|
|
33
|
+
}, options.verifier);
|
|
34
|
+
}
|
|
35
|
+
else if (options.verifier.type === 'blockscout') {
|
|
36
|
+
await submitSourcesToBlockscout({
|
|
37
|
+
chainId,
|
|
38
|
+
deployments,
|
|
39
|
+
networkName: config.network.name,
|
|
40
|
+
deploymentNames: options.deploymentNames,
|
|
41
|
+
minInterval: options.minInterval,
|
|
42
|
+
logErrorOnFailure: options.logErrorOnFailure,
|
|
43
|
+
}, options.verifier);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,eAAe,EAAC,MAAM,SAAS,CAAC;AACxD,OAAO,EAAC,wBAAwB,EAAC,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAC,uBAAuB,EAAC,MAAM,eAAe,CAAC;AACtD,OAAO,EAAC,yBAAyB,EAAC,MAAM,iBAAiB,CAAC;AA4B1D,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,MAAsB,EAAE,OAA4B;IAC7E,MAAM,EAAC,WAAW,EAAE,OAAO,EAAC,GAAG,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE/F,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,OAAO,CAAC,IAAI,uBAAuB,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,eAAe,MAAM,CAAC,OAAO,CAAC,IAAI,0BAA0B,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC3C,MAAM,wBAAwB,CAC7B;YACC,OAAO;YACP,WAAW;YACX,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;YAChC,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;SAC5C,EACD,OAAO,CAAC,QAAQ,CAChB,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACjD,MAAM,uBAAuB,CAC5B;YACC,OAAO;YACP,WAAW;YACX,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;YAChC,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;SAC5C,EACD,OAAO,CAAC,QAAQ,CAChB,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACnD,MAAM,yBAAyB,CAC9B;YACC,OAAO;YACP,WAAW;YACX,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;YAChC,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;SAC5C,EACD,OAAO,CAAC,QAAQ,CAChB,CAAC;IACH,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAkB,MAAM,SAAS,CAAC;AAIxD,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,EAAC,GAAG,EAAC,EAAE;IAAC,GAAG,EAAE,MAAM,CAAA;CAAC,QAyB1E"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { loadDeployments } from 'rocketh';
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
export function exportMetadata(config, { out }) {
|
|
5
|
+
const { deployments, chainId } = loadDeployments(config.deployments, config.network.name, false);
|
|
6
|
+
if (Object.keys(deployments).length === 0) {
|
|
7
|
+
console.log(`the network ${config.network.name} has zero deployments`);
|
|
8
|
+
process.exit();
|
|
9
|
+
}
|
|
10
|
+
if (!chainId) {
|
|
11
|
+
console.error(`the network ${config.network.name} has no chainId recorded`);
|
|
12
|
+
process.exit(1);
|
|
13
|
+
}
|
|
14
|
+
const folder = path.join(out, config.network.name);
|
|
15
|
+
fs.emptyDirSync(folder);
|
|
16
|
+
const deploymentNames = Object.keys(deployments);
|
|
17
|
+
for (const deploymentName of deploymentNames) {
|
|
18
|
+
const deployment = deployments[deploymentName];
|
|
19
|
+
if (deployment.metadata) {
|
|
20
|
+
fs.writeFileSync(path.join(folder, `${deploymentName}_at_${deployment.address}.metadata.json`), deployment.metadata);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,eAAe,EAAC,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,UAAU,cAAc,CAAC,MAAsB,EAAE,EAAC,GAAG,EAAgB;IAC1E,MAAM,EAAC,WAAW,EAAE,OAAO,EAAC,GAAG,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE/F,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,OAAO,CAAC,IAAI,uBAAuB,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,eAAe,MAAM,CAAC,OAAO,CAAC,IAAI,0BAA0B,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjD,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;QAC/C,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACzB,EAAE,CAAC,aAAa,CACf,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,cAAc,OAAO,UAAU,CAAC,OAAO,gBAAgB,CAAC,EAC7E,UAAU,CAAC,QAAQ,CACnB,CAAC;QACH,CAAC;IACF,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { UnknownDeployments } from 'rocketh';
|
|
2
|
+
import { SourcifyOptions } from './index.js';
|
|
3
|
+
export declare function submitSourcesToSourcify(env: {
|
|
4
|
+
deployments: UnknownDeployments;
|
|
5
|
+
networkName: string;
|
|
6
|
+
chainId: string;
|
|
7
|
+
deploymentNames?: string[];
|
|
8
|
+
minInterval?: number;
|
|
9
|
+
logErrorOnFailure?: boolean;
|
|
10
|
+
}, config?: SourcifyOptions): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=sourcify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourcify.d.ts","sourceRoot":"","sources":["../../src/sourcify.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,kBAAkB,EAAC,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAiC3C,wBAAsB,uBAAuB,CAC5C,GAAG,EAAE;IACJ,WAAW,EAAE,kBAAkB,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC5B,EACD,MAAM,CAAC,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CA6Df"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
function sleep(ms) {
|
|
5
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
6
|
+
}
|
|
7
|
+
function log(...args) {
|
|
8
|
+
console.log(...args);
|
|
9
|
+
}
|
|
10
|
+
function logError(...args) {
|
|
11
|
+
console.log(chalk.red(...args));
|
|
12
|
+
}
|
|
13
|
+
function logInfo(...args) {
|
|
14
|
+
console.log(chalk.yellow(...args));
|
|
15
|
+
}
|
|
16
|
+
function logSuccess(...args) {
|
|
17
|
+
console.log(chalk.green(...args));
|
|
18
|
+
}
|
|
19
|
+
function ensureTrailingSlash(s) {
|
|
20
|
+
const lastChar = s.substr(-1);
|
|
21
|
+
if (lastChar != '/') {
|
|
22
|
+
s = s + '/';
|
|
23
|
+
}
|
|
24
|
+
return s;
|
|
25
|
+
}
|
|
26
|
+
// const defaultEndpoint = 'https://server.verificationstaging.shardlabs.io/';
|
|
27
|
+
const defaultEndpoint = 'https://sourcify.dev/server/';
|
|
28
|
+
export async function submitSourcesToSourcify(env, config) {
|
|
29
|
+
config = config || { type: 'sourcify' };
|
|
30
|
+
const all = env.deployments;
|
|
31
|
+
const url = config.endpoint ? ensureTrailingSlash(config.endpoint) : defaultEndpoint;
|
|
32
|
+
async function submit(name) {
|
|
33
|
+
const deployment = all[name];
|
|
34
|
+
const { address, metadata: metadataString } = deployment;
|
|
35
|
+
try {
|
|
36
|
+
const checkResponse = await fetch(`${url}checkByAddresses?addresses=${address.toLowerCase()}&chainIds=${env.chainId}`);
|
|
37
|
+
const json = await checkResponse.json();
|
|
38
|
+
if (json[0].status === 'perfect') {
|
|
39
|
+
log(`already verified: ${name} (${address}), skipping.`);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
logError((e.response && JSON.stringify(e.response.data)) || e);
|
|
45
|
+
}
|
|
46
|
+
if (!metadataString) {
|
|
47
|
+
logError(`Contract ${name} was deployed without saving metadata. Cannot submit to sourcify, skipping.`);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
logInfo(`verifying ${name} (${address} on chain ${env.chainId}) ...`);
|
|
51
|
+
const formData = new FormData();
|
|
52
|
+
formData.append('address', address);
|
|
53
|
+
formData.append('chain', env.chainId);
|
|
54
|
+
const metadataBlob = new Blob([metadataString], {
|
|
55
|
+
type: 'application/json',
|
|
56
|
+
});
|
|
57
|
+
formData.append('files', metadataBlob, 'metadata.json');
|
|
58
|
+
try {
|
|
59
|
+
const submissionResponse = await fetch(url, { body: formData, method: 'POST' });
|
|
60
|
+
const json = await submissionResponse.json();
|
|
61
|
+
if (json.result[0].status === 'perfect') {
|
|
62
|
+
logSuccess(` => contract ${name} is now verified`);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
logError(` => contract ${name} is not verified`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
if (env?.logErrorOnFailure) {
|
|
70
|
+
const failingMetadataFolder = path.join('failing_metadata', env.chainId);
|
|
71
|
+
fs.ensureDirSync(failingMetadataFolder);
|
|
72
|
+
fs.writeFileSync(path.join(failingMetadataFolder, `${name}_at_${address}.json`), metadataString);
|
|
73
|
+
}
|
|
74
|
+
logError((e.response && JSON.stringify(e.response.data)) || e);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
for (const name of env.deploymentNames ? env.deploymentNames : Object.keys(all)) {
|
|
78
|
+
await submit(name);
|
|
79
|
+
if (env.minInterval) {
|
|
80
|
+
await sleep(env.minInterval);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=sourcify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourcify.js","sourceRoot":"","sources":["../../src/sourcify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,SAAS,KAAK,CAAC,EAAU;IACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,GAAG,CAAC,GAAG,IAAW;IAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CAAC,GAAG,IAAW;IAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,OAAO,CAAC,GAAG,IAAW;IAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,UAAU,CAAC,GAAG,IAAW;IACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,mBAAmB,CAAC,CAAS;IACrC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,QAAQ,IAAI,GAAG,EAAE,CAAC;QACrB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACb,CAAC;IACD,OAAO,CAAC,CAAC;AACV,CAAC;AAED,8EAA8E;AAC9E,MAAM,eAAe,GAAG,8BAA8B,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC5C,GAOC,EACD,MAAwB;IAExB,MAAM,GAAG,MAAM,IAAI,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC;IACtC,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC;IAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;IAErF,KAAK,UAAU,MAAM,CAAC,IAAY;QACjC,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,EAAC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAC,GAAG,UAAU,CAAC;QAEvD,IAAI,CAAC;YACJ,MAAM,aAAa,GAAG,MAAM,KAAK,CAChC,GAAG,GAAG,8BAA8B,OAAO,CAAC,WAAW,EAAE,aAAa,GAAG,CAAC,OAAO,EAAE,CACnF,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAClC,GAAG,CAAC,qBAAqB,IAAI,KAAK,OAAO,cAAc,CAAC,CAAC;gBACzD,OAAO;YACR,CAAC;QACF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,QAAQ,CAAC,CAAE,CAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAE,CAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAClF,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;YACrB,QAAQ,CAAC,YAAY,IAAI,6EAA6E,CAAC,CAAC;YACxG,OAAO;QACR,CAAC;QAED,OAAO,CAAC,aAAa,IAAI,KAAK,OAAO,aAAa,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC;QAEtE,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACpC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,CAAC,cAAc,CAAC,EAAE;YAC/C,IAAI,EAAE,kBAAkB;SACxB,CAAC,CAAC;QACH,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;QAExD,IAAI,CAAC;YACJ,MAAM,kBAAkB,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,CAAC;YAC9E,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,CAAC;YAC7C,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzC,UAAU,CAAC,gBAAgB,IAAI,kBAAkB,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACP,QAAQ,CAAC,gBAAgB,IAAI,kBAAkB,CAAC,CAAC;YAClD,CAAC;QACF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,IAAI,GAAG,EAAE,iBAAiB,EAAE,CAAC;gBAC5B,MAAM,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBACzE,EAAE,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;gBACxC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,IAAI,OAAO,OAAO,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC;YAClG,CAAC;YACD,QAAQ,CAAC,CAAE,CAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAE,CAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAClF,CAAC;IACF,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACjF,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;IACF,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export declare function matchAll(s: string, r: RegExp): {
|
|
2
|
+
input: string;
|
|
3
|
+
regex: RegExp;
|
|
4
|
+
/**
|
|
5
|
+
* next
|
|
6
|
+
* Get the next match in single group match.
|
|
7
|
+
*
|
|
8
|
+
* @name next
|
|
9
|
+
* @function
|
|
10
|
+
* @return {String|null} The matched snippet.
|
|
11
|
+
*/
|
|
12
|
+
next(): string | null;
|
|
13
|
+
/**
|
|
14
|
+
* nextRaw
|
|
15
|
+
* Get the next match in raw regex output. Usefull to get another group match.
|
|
16
|
+
*
|
|
17
|
+
* @name nextRaw
|
|
18
|
+
* @function
|
|
19
|
+
* @returns {Array|null} The matched snippet
|
|
20
|
+
*/
|
|
21
|
+
nextRaw(): RegExpExecArray | null;
|
|
22
|
+
/**
|
|
23
|
+
* toArray
|
|
24
|
+
* Get all the matches.
|
|
25
|
+
*
|
|
26
|
+
* @name toArray
|
|
27
|
+
* @function
|
|
28
|
+
* @return {Array} The matched snippets.
|
|
29
|
+
*/
|
|
30
|
+
toArray(): string[];
|
|
31
|
+
/**
|
|
32
|
+
* reset
|
|
33
|
+
* Reset the index.
|
|
34
|
+
*
|
|
35
|
+
* @name reset
|
|
36
|
+
* @function
|
|
37
|
+
* @param {Number} i The new index (default: `0`).
|
|
38
|
+
* @return {Number} The new index.
|
|
39
|
+
*/
|
|
40
|
+
reset(i?: number): number;
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=match-all.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"match-all.d.ts","sourceRoot":"","sources":["../../../src/utils/match-all.ts"],"names":[],"mappings":"AACA,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;;;IAK3C;;;;;;;OAOG;;IAaH;;;;;;;OAOG;;IAMH;;;;;;;OAOG;;IAYH;;;;;;;;OAQG;cACM,MAAM;EAIhB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// taken from package match-all
|
|
2
|
+
export function matchAll(s, r) {
|
|
3
|
+
return {
|
|
4
|
+
input: s,
|
|
5
|
+
regex: r,
|
|
6
|
+
/**
|
|
7
|
+
* next
|
|
8
|
+
* Get the next match in single group match.
|
|
9
|
+
*
|
|
10
|
+
* @name next
|
|
11
|
+
* @function
|
|
12
|
+
* @return {String|null} The matched snippet.
|
|
13
|
+
*/
|
|
14
|
+
next() {
|
|
15
|
+
let c = this.nextRaw();
|
|
16
|
+
if (c) {
|
|
17
|
+
for (let i = 1; i < c.length; i++) {
|
|
18
|
+
if (c[i]) {
|
|
19
|
+
return c[i];
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return null;
|
|
24
|
+
},
|
|
25
|
+
/**
|
|
26
|
+
* nextRaw
|
|
27
|
+
* Get the next match in raw regex output. Usefull to get another group match.
|
|
28
|
+
*
|
|
29
|
+
* @name nextRaw
|
|
30
|
+
* @function
|
|
31
|
+
* @returns {Array|null} The matched snippet
|
|
32
|
+
*/
|
|
33
|
+
nextRaw() {
|
|
34
|
+
let c = this.regex.exec(this.input);
|
|
35
|
+
return c;
|
|
36
|
+
},
|
|
37
|
+
/**
|
|
38
|
+
* toArray
|
|
39
|
+
* Get all the matches.
|
|
40
|
+
*
|
|
41
|
+
* @name toArray
|
|
42
|
+
* @function
|
|
43
|
+
* @return {Array} The matched snippets.
|
|
44
|
+
*/
|
|
45
|
+
toArray() {
|
|
46
|
+
let res = [], c = null;
|
|
47
|
+
while ((c = this.next())) {
|
|
48
|
+
res.push(c);
|
|
49
|
+
}
|
|
50
|
+
return res;
|
|
51
|
+
},
|
|
52
|
+
/**
|
|
53
|
+
* reset
|
|
54
|
+
* Reset the index.
|
|
55
|
+
*
|
|
56
|
+
* @name reset
|
|
57
|
+
* @function
|
|
58
|
+
* @param {Number} i The new index (default: `0`).
|
|
59
|
+
* @return {Number} The new index.
|
|
60
|
+
*/
|
|
61
|
+
reset(i = 0) {
|
|
62
|
+
return (this.regex.lastIndex = i);
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=match-all.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"match-all.js","sourceRoot":"","sources":["../../../src/utils/match-all.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,MAAM,UAAU,QAAQ,CAAC,CAAS,EAAE,CAAS;IAC5C,OAAO;QACN,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,CAAC;QAER;;;;;;;WAOG;QACH,IAAI;YACH,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,EAAE,CAAC;gBACP,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACnC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACV,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;oBACb,CAAC;gBACF,CAAC;YACF,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC;QAED;;;;;;;WAOG;QACH,OAAO;YACN,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpC,OAAO,CAAC,CAAC;QACV,CAAC;QAED;;;;;;;WAOG;QACH,OAAO;YACN,IAAI,GAAG,GAAG,EAAE,EACX,CAAC,GAAG,IAAI,CAAC;YAEV,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC1B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACb,CAAC;YAED,OAAO,GAAG,CAAC;QACZ,CAAC;QAED;;;;;;;;WAQG;QACH,KAAK,CAAC,IAAY,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QACnC,CAAC;KACD,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,30 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rocketh/verifier",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.11",
|
|
4
4
|
"description": "submit verification proof to verifier services (blockchain explorer, sourcify...",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
8
8
|
"type": "module",
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"types": "dist/index.d.ts",
|
|
9
|
+
"module": "dist/esm/index.js",
|
|
10
|
+
"types": "dist/esm/index.d.ts",
|
|
12
11
|
".": {
|
|
13
|
-
"require": {
|
|
14
|
-
"types": "./dist/index.d.ts",
|
|
15
|
-
"default": "./dist/index.cjs"
|
|
16
|
-
},
|
|
17
12
|
"import": {
|
|
18
|
-
"types": "./dist/index.d.ts",
|
|
19
|
-
"default": "./dist/index.
|
|
13
|
+
"types": "./dist/esm/index.d.ts",
|
|
14
|
+
"default": "./dist/esm/index.js"
|
|
20
15
|
}
|
|
21
16
|
},
|
|
22
17
|
"bin": {
|
|
23
|
-
"rocketh-verify": "dist/cli.
|
|
18
|
+
"rocketh-verify": "dist/cli.js"
|
|
24
19
|
},
|
|
25
20
|
"devDependencies": {
|
|
26
21
|
"@types/node": "^20.14.8",
|
|
27
|
-
"
|
|
22
|
+
"as-soon": "^0.0.11",
|
|
28
23
|
"rimraf": "^5.0.7",
|
|
29
24
|
"typescript": "^5.5.2"
|
|
30
25
|
},
|
|
@@ -36,10 +31,10 @@
|
|
|
36
31
|
"fs-extra": "^11.2.0",
|
|
37
32
|
"ldenv": "^0.3.10",
|
|
38
33
|
"qs": "^6.12.1",
|
|
39
|
-
"rocketh": "0.10.
|
|
34
|
+
"rocketh": "0.10.16"
|
|
40
35
|
},
|
|
41
36
|
"scripts": {
|
|
42
|
-
"build": "
|
|
43
|
-
"dev": "
|
|
37
|
+
"build": "tsc --project tsconfig.json",
|
|
38
|
+
"dev": "as-soon -w src pnpm build"
|
|
44
39
|
}
|
|
45
40
|
}
|
package/src/blockscout.ts
CHANGED
|
@@ -2,7 +2,7 @@ import chalk from 'chalk';
|
|
|
2
2
|
import fs from 'fs-extra';
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import {Abi, Deployment, UnknownDeployments} from 'rocketh';
|
|
5
|
-
import {BlockscoutOptions} from '.';
|
|
5
|
+
import {BlockscoutOptions} from './index.js';
|
|
6
6
|
|
|
7
7
|
//https://eth.blockscout.com/api/v2/search?q=WETH
|
|
8
8
|
const defaultEndpoints: {[chainId: string]: string} = {
|
package/src/cli.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#! /usr/bin/env node
|
|
2
2
|
import {loadEnv} from 'ldenv';
|
|
3
3
|
import {readAndResolveConfig} from 'rocketh';
|
|
4
|
-
import {run} from '.';
|
|
4
|
+
import {run} from './index.js';
|
|
5
5
|
import {Command, Option} from 'commander';
|
|
6
|
-
import pkg from '../package.json';
|
|
6
|
+
import pkg from '../package.json' with {type: 'json'};
|
|
7
7
|
import {ConfigOptions} from 'rocketh';
|
|
8
|
-
import {exportMetadata} from './metadata';
|
|
8
|
+
import {exportMetadata} from './metadata.js';
|
|
9
9
|
loadEnv();
|
|
10
10
|
|
|
11
11
|
const commandName = `rocketh-verify`;
|
package/src/etherscan.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import qs from 'qs';
|
|
4
4
|
import chalk from 'chalk';
|
|
5
|
-
import {matchAll} from './utils/match-all';
|
|
5
|
+
import {matchAll} from './utils/match-all.js';
|
|
6
6
|
import {Environment, UnknownDeployments} from 'rocketh';
|
|
7
|
-
import {EtherscanOptions} from '.';
|
|
7
|
+
import {EtherscanOptions} from './index.js';
|
|
8
8
|
|
|
9
9
|
const defaultEndpoints: {[chainId: string]: string} = {
|
|
10
10
|
'1': 'https://api.etherscan.io/api',
|
package/src/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {ResolvedConfig, loadDeployments} from 'rocketh';
|
|
2
|
-
import {submitSourcesToEtherscan} from './etherscan';
|
|
3
|
-
import {submitSourcesToSourcify} from './sourcify';
|
|
4
|
-
import {submitSourcesToBlockscout} from './blockscout';
|
|
2
|
+
import {submitSourcesToEtherscan} from './etherscan.js';
|
|
3
|
+
import {submitSourcesToSourcify} from './sourcify.js';
|
|
4
|
+
import {submitSourcesToBlockscout} from './blockscout.js';
|
|
5
5
|
|
|
6
6
|
export type EtherscanOptions = {
|
|
7
7
|
type: 'etherscan';
|
package/src/sourcify.ts
CHANGED
|
@@ -2,7 +2,7 @@ import chalk from 'chalk';
|
|
|
2
2
|
import fs from 'fs-extra';
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import {UnknownDeployments} from 'rocketh';
|
|
5
|
-
import {SourcifyOptions} from '.';
|
|
5
|
+
import {SourcifyOptions} from './index.js';
|
|
6
6
|
|
|
7
7
|
function sleep(ms: number) {
|
|
8
8
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
package/tsconfig.json
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
|
-
"moduleResolution": "Node",
|
|
4
|
-
"lib": ["ES2020", "dom"],
|
|
5
|
-
"target": "ES2020",
|
|
6
|
-
"declaration": true,
|
|
7
|
-
"declarationMap": true,
|
|
8
|
-
"sourceMap": true,
|
|
9
3
|
"strict": true,
|
|
10
|
-
"
|
|
11
|
-
"
|
|
4
|
+
"strictNullChecks": true,
|
|
5
|
+
"target": "ESNext",
|
|
6
|
+
"module": "NodeNext",
|
|
7
|
+
"lib": ["ESNext", "dom"],
|
|
8
|
+
"moduleResolution": "NodeNext",
|
|
12
9
|
"resolveJsonModule": true,
|
|
13
|
-
"
|
|
14
|
-
|
|
10
|
+
"skipLibCheck": true,
|
|
11
|
+
"sourceMap": true,
|
|
12
|
+
"declaration": true,
|
|
13
|
+
"declarationMap": true,
|
|
14
|
+
"rootDir": "./src",
|
|
15
|
+
"outDir": "./dist/esm"
|
|
16
|
+
},
|
|
17
|
+
"include": ["src/**/*.ts"]
|
|
15
18
|
}
|
package/dist/cli.cjs
DELETED
|
@@ -1,129 +0,0 @@
|
|
|
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.8";
|
|
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.14.8",
|
|
29
|
-
pkgroll: "^2.1.1",
|
|
30
|
-
rimraf: "^5.0.7",
|
|
31
|
-
typescript: "^5.5.2"
|
|
32
|
-
};
|
|
33
|
-
var dependencies = {
|
|
34
|
-
"@types/fs-extra": "^11.0.4",
|
|
35
|
-
"@types/qs": "^6.9.15",
|
|
36
|
-
chalk: "5.3.0",
|
|
37
|
-
commander: "^12.1.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").option("--license <value>", "source code license").option("--force-license", "force the use of the license provided").action((options) => {
|
|
101
|
-
const programOptions = program.opts();
|
|
102
|
-
const resolvedConfig = rocketh.readAndResolveConfig({ ...programOptions, ignoreMissingRPC: true });
|
|
103
|
-
index.run(resolvedConfig, {
|
|
104
|
-
verifier: {
|
|
105
|
-
type: "etherscan",
|
|
106
|
-
apiKey: process.env["ETHERSCAN_API_KEY"],
|
|
107
|
-
endpoint: options.endpoint,
|
|
108
|
-
forceLicense: options.forceLicense,
|
|
109
|
-
license: options.license
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
program.command("sourcify").description("submit contract for verification to sourcify").option("--endpoint <value>", "endpoint to connect to").action((options) => {
|
|
114
|
-
const programOptions = program.opts();
|
|
115
|
-
const resolvedConfig = rocketh.readAndResolveConfig({ ...programOptions, ignoreMissingRPC: true });
|
|
116
|
-
index.run(resolvedConfig, { verifier: { type: "sourcify", endpoint: options.endpoint } });
|
|
117
|
-
});
|
|
118
|
-
program.command("blockscout").description("submit contract for verification to blockscout").option("--endpoint <value>", "endpoint to connect to").action((options) => {
|
|
119
|
-
const programOptions = program.opts();
|
|
120
|
-
const resolvedConfig = rocketh.readAndResolveConfig({ ...programOptions, ignoreMissingRPC: true });
|
|
121
|
-
index.run(resolvedConfig, { verifier: { type: "blockscout", endpoint: options.endpoint } });
|
|
122
|
-
});
|
|
123
|
-
program.command("metadata").description("export metadata").option("--out <value>", "folder to write metadata into").action((options) => {
|
|
124
|
-
const programOptions = program.opts();
|
|
125
|
-
const resolvedConfig = rocketh.readAndResolveConfig({ ...programOptions, ignoreMissingRPC: true });
|
|
126
|
-
exportMetadata(resolvedConfig, { out: options.out || "_metadata" });
|
|
127
|
-
});
|
|
128
|
-
program.parse(process.argv);
|
|
129
|
-
//# sourceMappingURL=cli.cjs.map
|