hardhat-deploy 2.0.0-next.7 → 2.0.0-next.70
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/LICENSE +21 -0
- package/README.md +120 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +197 -0
- package/dist/cli.js.map +1 -0
- package/dist/config/default.d.ts.map +1 -0
- package/dist/config/default.js +5 -0
- package/dist/config/default.js.map +1 -0
- package/dist/config/get-config.d.ts.map +1 -0
- package/dist/config/get-config.js +9 -0
- package/dist/config/get-config.js.map +1 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +17 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/generate-types.d.ts +5 -0
- package/dist/generate-types.d.ts.map +1 -0
- package/dist/generate-types.js +244 -0
- package/dist/generate-types.js.map +1 -0
- package/dist/helpers.d.ts +34 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/{esm/helpers.js → helpers.js} +106 -73
- package/dist/helpers.js.map +1 -0
- package/dist/hook-handlers/config.d.ts.map +1 -0
- package/dist/hook-handlers/config.js +68 -0
- package/dist/hook-handlers/config.js.map +1 -0
- package/dist/hook-handlers/solidity.d.ts.map +1 -0
- package/dist/hook-handlers/solidity.js +21 -0
- package/dist/hook-handlers/solidity.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/{esm/index.js → index.js} +20 -3
- package/dist/index.js.map +1 -0
- package/dist/postinstall.d.ts +3 -0
- package/dist/postinstall.d.ts.map +1 -0
- package/dist/postinstall.js +148 -0
- package/dist/postinstall.js.map +1 -0
- package/dist/{esm/tasks → tasks}/deploy.d.ts +1 -0
- package/dist/tasks/deploy.d.ts.map +1 -0
- package/dist/tasks/deploy.js +32 -0
- package/dist/tasks/deploy.js.map +1 -0
- package/dist/{esm/type-extensions.d.ts → type-extensions.d.ts} +2 -2
- package/dist/type-extensions.d.ts.map +1 -0
- package/dist/type-extensions.js.map +1 -0
- package/dist/types.d.ts +13 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/files.d.ts +9 -0
- package/dist/utils/files.d.ts.map +1 -0
- package/dist/utils/files.js +25 -0
- package/dist/utils/files.js.map +1 -0
- package/dist/v1-detection.d.ts +12 -0
- package/dist/v1-detection.d.ts.map +1 -0
- package/dist/v1-detection.js +118 -0
- package/dist/v1-detection.js.map +1 -0
- package/dist/v1-entry.cjs +92 -0
- package/package.json +58 -26
- package/src/cli.ts +246 -0
- package/src/config/default.ts +6 -0
- package/src/config/get-config.ts +12 -0
- package/src/config/validation.ts +25 -0
- package/src/generate-types.ts +281 -0
- package/src/helpers.ts +311 -0
- package/src/hook-handlers/config.ts +80 -0
- package/src/hook-handlers/solidity.ts +33 -0
- package/src/index.ts +53 -0
- package/src/postinstall.ts +166 -0
- package/src/tasks/deploy.ts +43 -0
- package/src/type-extensions.ts +12 -0
- package/src/types.ts +9 -0
- package/src/utils/files.ts +37 -0
- package/src/v1-entry.cjs +92 -0
- package/templates/basic/README.md +44 -0
- package/templates/basic/contracts/Counter.sol +19 -0
- package/templates/basic/contracts/Counter.t.sol +29 -0
- package/templates/basic/deploy/01_deploy_counter.ts +13 -0
- package/templates/basic/hardhat.config.ts +50 -0
- package/templates/basic/package.json +31 -0
- package/templates/basic/pnpm-lock.yaml +1643 -0
- package/templates/basic/rocketh/config.ts +65 -0
- package/templates/basic/rocketh/deploy.ts +20 -0
- package/templates/basic/rocketh/environment.ts +22 -0
- package/templates/basic/test/Counter.ts +61 -0
- package/templates/basic/tsconfig.json +13 -0
- package/dist/esm/config/default.d.ts.map +0 -1
- package/dist/esm/config/default.js +0 -8
- package/dist/esm/config/default.js.map +0 -1
- package/dist/esm/config/get-config.d.ts.map +0 -1
- package/dist/esm/config/get-config.js +0 -8
- package/dist/esm/config/get-config.js.map +0 -1
- package/dist/esm/config/validation.d.ts.map +0 -1
- package/dist/esm/config/validation.js +0 -16
- package/dist/esm/config/validation.js.map +0 -1
- package/dist/esm/generate-types.d.ts +0 -6
- package/dist/esm/generate-types.d.ts.map +0 -1
- package/dist/esm/generate-types.js +0 -198
- package/dist/esm/generate-types.js.map +0 -1
- package/dist/esm/helpers.d.ts +0 -18
- package/dist/esm/helpers.d.ts.map +0 -1
- package/dist/esm/helpers.js.map +0 -1
- package/dist/esm/hook-handlers/config.d.ts.map +0 -1
- package/dist/esm/hook-handlers/config.js +0 -16
- package/dist/esm/hook-handlers/config.js.map +0 -1
- package/dist/esm/hook-handlers/solidity.d.ts.map +0 -1
- package/dist/esm/hook-handlers/solidity.js +0 -15
- package/dist/esm/hook-handlers/solidity.js.map +0 -1
- package/dist/esm/index.d.ts +0 -5
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/tasks/deploy.d.ts.map +0 -1
- package/dist/esm/tasks/deploy.js +0 -21
- package/dist/esm/tasks/deploy.js.map +0 -1
- package/dist/esm/type-extensions.d.ts.map +0 -1
- package/dist/esm/type-extensions.js.map +0 -1
- package/dist/esm/types.d.ts +0 -15
- package/dist/esm/types.d.ts.map +0 -1
- package/dist/esm/types.js.map +0 -1
- /package/dist/{esm/config → config}/default.d.ts +0 -0
- /package/dist/{esm/config → config}/get-config.d.ts +0 -0
- /package/dist/{esm/config → config}/validation.d.ts +0 -0
- /package/dist/{esm/hook-handlers → hook-handlers}/config.d.ts +0 -0
- /package/dist/{esm/hook-handlers → hook-handlers}/solidity.d.ts +0 -0
- /package/dist/{esm/type-extensions.js → type-extensions.js} +0 -0
- /package/dist/{esm/types.js → types.js} +0 -0
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import debug from 'debug';
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import slash from 'slash';
|
|
5
|
+
import { traverse } from './utils/files.js';
|
|
6
|
+
const log = debug('hardhat-deploy:generate-types');
|
|
7
|
+
function writeIfDifferent(filePath, newTextContent) {
|
|
8
|
+
// Ensure we're working with a string
|
|
9
|
+
const contentToWrite = String(newTextContent);
|
|
10
|
+
try {
|
|
11
|
+
let existingContent;
|
|
12
|
+
try {
|
|
13
|
+
existingContent = fs.readFileSync(filePath, 'utf8');
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
// console.log(`do not exist? => writing ${filePath}`);
|
|
17
|
+
// File doesn't exist, write and return
|
|
18
|
+
fs.writeFileSync(filePath, contentToWrite);
|
|
19
|
+
return { written: true, reason: 'File did not exist' };
|
|
20
|
+
}
|
|
21
|
+
// Simple string comparison
|
|
22
|
+
if (contentToWrite !== existingContent) {
|
|
23
|
+
// console.log(`content different => writing ${filePath}`);
|
|
24
|
+
fs.writeFileSync(filePath, contentToWrite);
|
|
25
|
+
return { written: true, reason: 'Content was different' };
|
|
26
|
+
}
|
|
27
|
+
return { written: false, reason: 'Content was identical' };
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
console.error('Error in writeIfDifferent:', error);
|
|
31
|
+
throw error;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function ensureDirExistsSync(folderPath) {
|
|
35
|
+
// Check if directory already exists
|
|
36
|
+
if (fs.existsSync(folderPath)) {
|
|
37
|
+
return { created: false, reason: 'Directory already exists' };
|
|
38
|
+
}
|
|
39
|
+
// console.log(`do not exist? => mkdir ${folderPath}`);
|
|
40
|
+
// Directory doesn't exist, create it
|
|
41
|
+
fs.mkdirSync(folderPath, { recursive: true });
|
|
42
|
+
return { created: true, reason: 'Directory was created' };
|
|
43
|
+
}
|
|
44
|
+
function writeArtifactToFile(folder, canonicalName, data, mode) {
|
|
45
|
+
const name = canonicalName.split('/').pop();
|
|
46
|
+
const artifactName = `Artifact_${name}`;
|
|
47
|
+
const tsFilepath = path.join(folder, 'artifacts', canonicalName) + '.ts';
|
|
48
|
+
const folderPath = path.dirname(tsFilepath);
|
|
49
|
+
ensureDirExistsSync(folderPath);
|
|
50
|
+
if (mode === 'typescript') {
|
|
51
|
+
const newContent = `export const ${artifactName}: ${JSON.stringify(data, null, 2)} = ${JSON.stringify(data, null, 2)} as const;`;
|
|
52
|
+
writeIfDifferent(tsFilepath, newContent);
|
|
53
|
+
}
|
|
54
|
+
else if (mode === 'javascript') {
|
|
55
|
+
const newContent = `export const ${artifactName} = /** @type {const} **/ (${JSON.stringify(data, null, 2)});`;
|
|
56
|
+
const dtsContent = `export declare const ${artifactName}: ${JSON.stringify(data, null, 2)};`;
|
|
57
|
+
const jsFilepath = path.join(folder, 'artifacts', canonicalName) + '.js';
|
|
58
|
+
writeIfDifferent(jsFilepath, newContent);
|
|
59
|
+
writeIfDifferent(jsFilepath.replace(/\.js$/, '.d.ts'), dtsContent);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function writeArtifactIndexToFile(folder, data, mode) {
|
|
63
|
+
const tsFilepath = path.join(folder, 'artifacts', 'index') + '.ts';
|
|
64
|
+
const folderPath = path.dirname(tsFilepath);
|
|
65
|
+
ensureDirExistsSync(folderPath);
|
|
66
|
+
if (mode === 'typescript') {
|
|
67
|
+
let newContent = '';
|
|
68
|
+
for (const canonicalName of Object.keys(data)) {
|
|
69
|
+
const transformedName = canonicalName.replaceAll('/', '_').replaceAll('.', '_');
|
|
70
|
+
const name = canonicalName.split('/').pop();
|
|
71
|
+
const artifactName = `Artifact_${name}`;
|
|
72
|
+
const importNaming = canonicalName != name ? `${artifactName} as ${transformedName}` : `${artifactName} as ${name}`;
|
|
73
|
+
newContent += `export {${importNaming}} from './${canonicalName}.js';\n`;
|
|
74
|
+
}
|
|
75
|
+
writeIfDifferent(tsFilepath, newContent);
|
|
76
|
+
}
|
|
77
|
+
else if (mode === 'javascript') {
|
|
78
|
+
let newContent = '';
|
|
79
|
+
for (const canonicalName of Object.keys(data)) {
|
|
80
|
+
const transformedName = canonicalName.replaceAll('/', '_').replaceAll('.', '_');
|
|
81
|
+
const name = canonicalName.split('/').pop();
|
|
82
|
+
const artifactName = `Artifact_${name}`;
|
|
83
|
+
const importNaming = canonicalName != name ? `${artifactName} as ${transformedName}` : `${artifactName} as ${name}`;
|
|
84
|
+
newContent += `export {${importNaming}} from './${canonicalName}.js';\n`;
|
|
85
|
+
}
|
|
86
|
+
const jsFilepath = path.join(folder, 'artifacts', 'index') + '.js';
|
|
87
|
+
writeIfDifferent(jsFilepath, newContent);
|
|
88
|
+
writeIfDifferent(jsFilepath.replace(/\.js$/, '.d.ts'), newContent);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function writeABIDefinitionToFile(folder, canonicalName, data, mode) {
|
|
92
|
+
const nameAsPath = canonicalName.split('/');
|
|
93
|
+
const name = nameAsPath[nameAsPath.length - 1];
|
|
94
|
+
const abiName = `Abi_${name}`;
|
|
95
|
+
const artifactName = `Artifact_${name}`;
|
|
96
|
+
const relativePath = `../`.repeat(nameAsPath.length);
|
|
97
|
+
const tsFilepath = path.join(folder, 'abis', canonicalName) + '.ts';
|
|
98
|
+
const folderPath = path.dirname(tsFilepath);
|
|
99
|
+
ensureDirExistsSync(folderPath);
|
|
100
|
+
if (mode === 'typescript') {
|
|
101
|
+
const newContent = `import {${artifactName}} from '${relativePath}artifacts/${canonicalName}.js';
|
|
102
|
+
export type ${abiName} = (typeof ${artifactName})['abi'];\n`;
|
|
103
|
+
writeIfDifferent(tsFilepath, newContent);
|
|
104
|
+
}
|
|
105
|
+
else if (mode === 'javascript') {
|
|
106
|
+
const jsFilepath = path.join(folder, 'abis', canonicalName) + '.js';
|
|
107
|
+
const newContent = `export {};\n`;
|
|
108
|
+
const dtsContent = `import {${artifactName}} from '${relativePath}artifacts/${canonicalName}.js';
|
|
109
|
+
export type ${abiName} = (typeof ${artifactName})['abi'];\n`;
|
|
110
|
+
writeIfDifferent(jsFilepath, newContent);
|
|
111
|
+
writeIfDifferent(jsFilepath.replace(/\.js$/, '.d.ts'), dtsContent);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
function writeABIDefinitionIndexToFile(folder, data, mode) {
|
|
115
|
+
const tsFilepath = path.join(folder, 'abis', 'index') + '.ts';
|
|
116
|
+
const folderPath = path.dirname(tsFilepath);
|
|
117
|
+
ensureDirExistsSync(folderPath);
|
|
118
|
+
if (mode === 'typescript') {
|
|
119
|
+
let newContent = '';
|
|
120
|
+
for (const canonicalName of Object.keys(data)) {
|
|
121
|
+
const transformedName = canonicalName.replaceAll('/', '_').replaceAll('.', '_');
|
|
122
|
+
const name = canonicalName.split('/').pop();
|
|
123
|
+
const abiName = `Abi_${name}`;
|
|
124
|
+
const importNaming = canonicalName != name ? `${abiName} as ${transformedName}` : `${abiName} as ${name}`;
|
|
125
|
+
newContent += `export {${importNaming}} from "./${canonicalName}.js"\n`;
|
|
126
|
+
}
|
|
127
|
+
writeIfDifferent(tsFilepath, newContent);
|
|
128
|
+
}
|
|
129
|
+
else if (mode === 'javascript') {
|
|
130
|
+
const jsFilepath = path.join(folder, 'abis', 'index') + '.js';
|
|
131
|
+
let newContent = '';
|
|
132
|
+
for (const canonicalName of Object.keys(data)) {
|
|
133
|
+
const transformedName = canonicalName.replaceAll('/', '_').replaceAll('.', '_');
|
|
134
|
+
const name = canonicalName.split('/').pop();
|
|
135
|
+
const abiName = `Abi_${name}`;
|
|
136
|
+
const importNaming = canonicalName != name ? `${abiName} as ${transformedName}` : `${abiName} as ${name}`;
|
|
137
|
+
newContent += `export {${importNaming}} from "./${canonicalName}.js"\n`;
|
|
138
|
+
}
|
|
139
|
+
writeIfDifferent(jsFilepath, newContent);
|
|
140
|
+
writeIfDifferent(jsFilepath.replace(/\.js$/, '.d.ts'), newContent);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
export async function generateTypes(paths, config) {
|
|
144
|
+
const buildInfoCache = new Map();
|
|
145
|
+
const allArtifacts = {};
|
|
146
|
+
const shortNameDict = {};
|
|
147
|
+
for (const artifactsPath of paths.artifacts) {
|
|
148
|
+
const files = traverse(artifactsPath, [], artifactsPath, (name) => name != 'build-info' && !name.endsWith('.t.sol') && !name.endsWith('.dbg.json'));
|
|
149
|
+
// console.log('--------------------------');
|
|
150
|
+
// console.log(files);
|
|
151
|
+
// console.log('--------------------------');
|
|
152
|
+
for (const file of files) {
|
|
153
|
+
const filepath = file.path;
|
|
154
|
+
if (file.directory || !filepath.endsWith('.json')) {
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
const filename = slash(path.basename(filepath));
|
|
158
|
+
const dirname = slash(path.dirname(file.relativePath));
|
|
159
|
+
// const namePath = dirname.replace('.sol', '');
|
|
160
|
+
const contractName = filename.replace('.json', '');
|
|
161
|
+
// const shortName = artifact.artifactsEmitted[i];
|
|
162
|
+
// console.log({path: filepath});
|
|
163
|
+
const content = fs.readFileSync(filepath, 'utf-8');
|
|
164
|
+
const parsed = JSON.parse(content);
|
|
165
|
+
if (!parsed.buildInfoId)
|
|
166
|
+
continue;
|
|
167
|
+
// TODO read config for artifacts folder
|
|
168
|
+
let buildInfoFilepath = path.join(artifactsPath, 'build-info', `${parsed.buildInfoId}.output.json`);
|
|
169
|
+
if (!parsed.buildInfoId) {
|
|
170
|
+
// support hardhat v2 artifacts files
|
|
171
|
+
if (fs.existsSync(filepath.replace('.json', '.dbg.json'))) {
|
|
172
|
+
// console.warn(`Artifact ${filepath} does not have a buildInfoId, but found a .dbg.json file. Using that instead.`);
|
|
173
|
+
const dbgContent = fs.readFileSync(filepath.replace('.json', '.dbg.json'), 'utf-8');
|
|
174
|
+
const dbgParsed = JSON.parse(dbgContent);
|
|
175
|
+
const buildInfoRelativePath = dbgParsed.buildInfo;
|
|
176
|
+
parsed.buildInfoId = path.basename(buildInfoRelativePath, '.json');
|
|
177
|
+
// console.log({buildInfoRelativePath, buildInfoId: parsed.buildInfoId});
|
|
178
|
+
buildInfoFilepath = path.join(artifactsPath, 'build-info', `${parsed.buildInfoId}.json`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
// const backupBuildInfoFilepath = path.join(
|
|
182
|
+
// './generated',
|
|
183
|
+
// buildInfoFilepath.slice(buildInfoFilepath.indexOf('/', 1))
|
|
184
|
+
// );
|
|
185
|
+
let buildInfoFilepathToUse = buildInfoFilepath;
|
|
186
|
+
// if (!fs.existsSync(buildInfoFilepathToUse)) {
|
|
187
|
+
// buildInfoFilepathToUse = backupBuildInfoFilepath;
|
|
188
|
+
// }
|
|
189
|
+
let parsedBuildInfo;
|
|
190
|
+
if (!buildInfoCache.has(buildInfoFilepathToUse)) {
|
|
191
|
+
if (!fs.existsSync(buildInfoFilepathToUse))
|
|
192
|
+
continue;
|
|
193
|
+
const buildInfoContent = fs.readFileSync(buildInfoFilepathToUse, 'utf-8');
|
|
194
|
+
parsedBuildInfo = JSON.parse(buildInfoContent);
|
|
195
|
+
buildInfoCache.set(buildInfoFilepathToUse, parsedBuildInfo);
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
parsedBuildInfo = buildInfoCache.get(buildInfoFilepathToUse);
|
|
199
|
+
}
|
|
200
|
+
const solidityOutput = parsedBuildInfo.output.contracts[parsed.inputSourceName][contractName];
|
|
201
|
+
const hardhatArtifactObject = { ...parsed, ...solidityOutput };
|
|
202
|
+
const { buildInfoId, _format, ...artifactObject } = hardhatArtifactObject;
|
|
203
|
+
const fullName = `${dirname}/${contractName}`;
|
|
204
|
+
allArtifacts[fullName] = artifactObject;
|
|
205
|
+
if (shortNameDict[contractName]) {
|
|
206
|
+
delete allArtifacts[contractName];
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
allArtifacts[contractName] = artifactObject;
|
|
210
|
+
shortNameDict[contractName] = true;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
for (const key of Object.keys(allArtifacts)) {
|
|
215
|
+
if (key.indexOf('/') >= 0) {
|
|
216
|
+
const split = key.split('/');
|
|
217
|
+
if (split.length > 1) {
|
|
218
|
+
const shortName = split[split.length - 1];
|
|
219
|
+
if (allArtifacts[shortName]) {
|
|
220
|
+
delete allArtifacts[key];
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
// for (const key of Object.keys(allArtifacts)) {
|
|
226
|
+
// const artifact = allArtifacts[key];
|
|
227
|
+
// writeFiles(key, artifact, config);
|
|
228
|
+
// }
|
|
229
|
+
// // const json = hre.config.generateTypedArtifacts.json || [];
|
|
230
|
+
// // json.push('./generated/_artifacts.json');
|
|
231
|
+
// // writeFiles(undefined, allArtifacts, {...hre.config.generateTypedArtifacts, json: json});
|
|
232
|
+
// writeFiles(undefined, allArtifacts, config);
|
|
233
|
+
for (const destination of config.destinations) {
|
|
234
|
+
const generatedFolder = destination.folder;
|
|
235
|
+
const mode = destination.mode;
|
|
236
|
+
for (const key of Object.keys(allArtifacts)) {
|
|
237
|
+
writeABIDefinitionToFile(generatedFolder, key, allArtifacts[key], mode);
|
|
238
|
+
writeArtifactToFile(generatedFolder, key, allArtifacts[key], mode);
|
|
239
|
+
}
|
|
240
|
+
writeArtifactIndexToFile(generatedFolder, allArtifacts, mode);
|
|
241
|
+
writeABIDefinitionIndexToFile(generatedFolder, allArtifacts, mode);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=generate-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-types.js","sourceRoot":"","sources":["../src/generate-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { NetworkUserConfig, SensitiveString } from 'hardhat/types/config';
|
|
2
|
+
import { HardhatRuntimeEnvironment } from 'hardhat/types/hre';
|
|
3
|
+
import { NetworkConnection } from 'hardhat/types/network';
|
|
4
|
+
import type { Environment, UnresolvedUnknownNamedAccounts, UnresolvedNetworkSpecificData } from 'rocketh/types';
|
|
5
|
+
export declare function setupHardhatDeploy<Extensions extends Record<string, (env: Environment<any, any, any>) => any> = {}, NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts, Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData>(extensions: Extensions): {
|
|
6
|
+
loadEnvironmentFromHardhat: (required: {
|
|
7
|
+
hre: HardhatRuntimeEnvironment;
|
|
8
|
+
connection?: NetworkConnection;
|
|
9
|
+
}) => Promise<import("rocketh/types").EnhancedEnvironment<UnresolvedUnknownNamedAccounts, UnresolvedNetworkSpecificData, import("rocketh/types").UnknownDeployments, Extensions, Record<string, unknown>>>;
|
|
10
|
+
};
|
|
11
|
+
export declare function generateForkConfig(params: {
|
|
12
|
+
hre: HardhatRuntimeEnvironment;
|
|
13
|
+
connection?: NetworkConnection;
|
|
14
|
+
}): Promise<{
|
|
15
|
+
provider: any;
|
|
16
|
+
environment: string | {
|
|
17
|
+
fork: string;
|
|
18
|
+
};
|
|
19
|
+
connection: NetworkConnection;
|
|
20
|
+
isFork: boolean;
|
|
21
|
+
}>;
|
|
22
|
+
export declare function loadEnvironmentFromHardhat<NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts, Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData>(params: {
|
|
23
|
+
hre: HardhatRuntimeEnvironment;
|
|
24
|
+
connection?: NetworkConnection;
|
|
25
|
+
}): Promise<Environment<NamedAccounts, Data>>;
|
|
26
|
+
export declare function getRPC(networkName: string): string | SensitiveString | undefined;
|
|
27
|
+
export declare function getMnemonic(networkName?: string, doNotDefault?: boolean): string | SensitiveString | undefined;
|
|
28
|
+
export declare function getAccounts(networkName?: string, doNotDefault?: boolean): {
|
|
29
|
+
mnemonic: string | SensitiveString;
|
|
30
|
+
} | undefined;
|
|
31
|
+
export declare function addNetworksFromEnv(networks?: Record<string, NetworkUserConfig>): Record<string, NetworkUserConfig>;
|
|
32
|
+
export declare function addNetworksFromKnownList(networks?: Record<string, NetworkUserConfig>): Record<string, NetworkUserConfig>;
|
|
33
|
+
export declare function addForkConfiguration(networks: Record<string, NetworkUserConfig>): Record<string, NetworkUserConfig>;
|
|
34
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAIN,iBAAiB,EACjB,eAAe,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,yBAAyB,EAAC,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAC,WAAW,EAAE,8BAA8B,EAAE,6BAA6B,EAAC,MAAM,eAAe,CAAC;AAI9G,wBAAgB,kBAAkB,CACjC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,EAChF,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EACrF,IAAI,SAAS,6BAA6B,GAAG,6BAA6B,EACzE,UAAU,EAAE,UAAU;2CAEZ;QAAC,GAAG,EAAE,yBAAyB,CAAC;QAAC,UAAU,CAAC,EAAE,iBAAiB,CAAA;KAAC;EAY3E;AAED,wBAAsB,kBAAkB,CACvC,MAAM,EAAE;IAAC,GAAG,EAAE,yBAAyB,CAAC;IAAC,UAAU,CAAC,EAAE,iBAAiB,CAAA;CAAC,GAItE,OAAO,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC;IAAC,UAAU,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAC,CAAC,CAsEhH;AAED,wBAAsB,0BAA0B,CAC/C,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EACrF,IAAI,SAAS,6BAA6B,GAAG,6BAA6B,EAE1E,MAAM,EAAE;IAAC,GAAG,EAAE,yBAAyB,CAAC;IAAC,UAAU,CAAC,EAAE,iBAAiB,CAAA;CAAC,GAKtE,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAW3C;AAkBD,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,GAAG,SAAS,CAuBhF;AAED,wBAAgB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,SAAS,CAiB9G;AAED,wBAAgB,WAAW,CAC1B,WAAW,CAAC,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,OAAO,GACpB;IAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAAA;CAAC,GAAG,SAAS,CAMlD;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAuBlH;AAGD,wBAAgB,wBAAwB,CACvC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAC1C,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAwBnC;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAoDnH"}
|
|
@@ -1,44 +1,53 @@
|
|
|
1
1
|
import { configVariable } from 'hardhat/config';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import { enhanceEnvIfNeeded, chainByCanonicalName } from 'rocketh';
|
|
3
|
+
import { loadEnvironmentFromFiles } from '@rocketh/node';
|
|
4
|
+
export function setupHardhatDeploy(extensions) {
|
|
5
|
+
async function loadEnvironmentFromHardhatWithExtensions(required) {
|
|
6
|
+
const env = await loadEnvironmentFromHardhat(required);
|
|
7
|
+
return enhanceEnvIfNeeded(env, extensions);
|
|
8
|
+
}
|
|
9
|
+
return {
|
|
10
|
+
loadEnvironmentFromHardhat: loadEnvironmentFromHardhatWithExtensions,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export async function generateForkConfig(params) {
|
|
14
|
+
const fork = process.env.HARDHAT_FORK;
|
|
15
|
+
const connection = params.connection || fork
|
|
16
|
+
? await params.hre.network.connect({ network: 'fork' })
|
|
17
|
+
: await params.hre.network.connect();
|
|
5
18
|
let provider = connection.provider;
|
|
6
|
-
let
|
|
19
|
+
let environment = connection.networkName;
|
|
7
20
|
let forkChainId;
|
|
8
|
-
const fork = process.env.HARDHAT_FORK;
|
|
9
21
|
if (fork) {
|
|
10
|
-
if (options?.useChainIdOfForkedNetwork) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
network = {
|
|
22
|
+
// if (options?.useChainIdOfForkedNetwork) {
|
|
23
|
+
// const forkNetworkConfig = params.hre.config.networks[fork];
|
|
24
|
+
// if (forkNetworkConfig.type === 'edr-simulated') {
|
|
25
|
+
// forkChainId = forkNetworkConfig.chainId;
|
|
26
|
+
// } else if (forkNetworkConfig.chainId) {
|
|
27
|
+
// forkChainId = forkNetworkConfig.chainId;
|
|
28
|
+
// } else {
|
|
29
|
+
// if ('url' in forkNetworkConfig) {
|
|
30
|
+
// const url = await forkNetworkConfig.url.getUrl();
|
|
31
|
+
// const response = await fetch(url, {
|
|
32
|
+
// method: 'POST',
|
|
33
|
+
// headers: {
|
|
34
|
+
// 'Content-Type': 'application/json',
|
|
35
|
+
// },
|
|
36
|
+
// body: JSON.stringify({
|
|
37
|
+
// jsonrpc: '2.0',
|
|
38
|
+
// id: 1,
|
|
39
|
+
// method: 'eth_chainId',
|
|
40
|
+
// params: [],
|
|
41
|
+
// }),
|
|
42
|
+
// });
|
|
43
|
+
// const json = (await response.json()) as {result: string};
|
|
44
|
+
// forkChainId = Number(json.result);
|
|
45
|
+
// } else {
|
|
46
|
+
// throw new Error(`cannot fetch chainId`);
|
|
47
|
+
// }
|
|
48
|
+
// }
|
|
49
|
+
// }
|
|
50
|
+
environment = {
|
|
42
51
|
fork,
|
|
43
52
|
};
|
|
44
53
|
}
|
|
@@ -62,19 +71,38 @@ export async function loadEnvironmentFromHardhat({ hre, context }, options) {
|
|
|
62
71
|
},
|
|
63
72
|
});
|
|
64
73
|
}
|
|
65
|
-
|
|
66
|
-
|
|
74
|
+
return { provider, environment, connection, isFork: !!fork };
|
|
75
|
+
}
|
|
76
|
+
export async function loadEnvironmentFromHardhat(params) {
|
|
77
|
+
const { connection, environment, provider, isFork } = await generateForkConfig(params);
|
|
78
|
+
// console.log(`loading environments...`);
|
|
79
|
+
return loadEnvironmentFromFiles({
|
|
67
80
|
provider,
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
81
|
+
environment,
|
|
82
|
+
extra: {
|
|
83
|
+
connection,
|
|
84
|
+
},
|
|
85
|
+
saveDeployments: isFork ? false : undefined,
|
|
86
|
+
});
|
|
71
87
|
}
|
|
72
|
-
|
|
73
|
-
|
|
88
|
+
function getVariable(prefix, name) {
|
|
89
|
+
// We transform dash into underscore as dash are not supported everywhere in env var names
|
|
90
|
+
const variableName = (prefix + name).replaceAll('-', '_');
|
|
74
91
|
let uri = process.env[variableName];
|
|
75
92
|
if (uri === 'SECRET') {
|
|
76
93
|
return configVariable(`SECRET_${variableName}`);
|
|
77
94
|
}
|
|
95
|
+
else if (uri?.startsWith('SECRET:')) {
|
|
96
|
+
const splitted = uri.split(':');
|
|
97
|
+
if (splitted.length !== 2) {
|
|
98
|
+
throw new Error(`invalid secret uri ${uri}`);
|
|
99
|
+
}
|
|
100
|
+
return configVariable(`SECRET_${prefix + splitted[1]}`);
|
|
101
|
+
}
|
|
102
|
+
return uri;
|
|
103
|
+
}
|
|
104
|
+
export function getRPC(networkName) {
|
|
105
|
+
let uri = getVariable('ETH_NODE_URI_', networkName);
|
|
78
106
|
if (uri && uri !== '') {
|
|
79
107
|
return uri;
|
|
80
108
|
}
|
|
@@ -94,25 +122,28 @@ export function getRPC(networkName) {
|
|
|
94
122
|
}
|
|
95
123
|
return uri;
|
|
96
124
|
}
|
|
97
|
-
export function getMnemonic(networkName) {
|
|
125
|
+
export function getMnemonic(networkName, doNotDefault) {
|
|
98
126
|
if (networkName) {
|
|
99
|
-
const
|
|
100
|
-
const mnemonic = process.env[variableName];
|
|
101
|
-
if (mnemonic === 'SECRET') {
|
|
102
|
-
return configVariable(`SECRET_${variableName}`);
|
|
103
|
-
}
|
|
127
|
+
const mnemonic = getVariable('MNEMONIC_', networkName);
|
|
104
128
|
if (mnemonic && mnemonic !== '') {
|
|
105
129
|
return mnemonic;
|
|
106
130
|
}
|
|
107
131
|
}
|
|
108
132
|
const mnemonic = process.env.MNEMONIC;
|
|
109
133
|
if (!mnemonic || mnemonic === '') {
|
|
134
|
+
if (doNotDefault) {
|
|
135
|
+
return undefined;
|
|
136
|
+
}
|
|
110
137
|
return 'test test test test test test test test test test test junk';
|
|
111
138
|
}
|
|
112
139
|
return mnemonic;
|
|
113
140
|
}
|
|
114
|
-
export function getAccounts(networkName) {
|
|
115
|
-
|
|
141
|
+
export function getAccounts(networkName, doNotDefault) {
|
|
142
|
+
const mnemonic = getMnemonic(networkName, doNotDefault);
|
|
143
|
+
if (!mnemonic) {
|
|
144
|
+
return undefined;
|
|
145
|
+
}
|
|
146
|
+
return { mnemonic };
|
|
116
147
|
}
|
|
117
148
|
export function addNetworksFromEnv(networks) {
|
|
118
149
|
const newNetworks = networks ? { ...networks } : {};
|
|
@@ -140,29 +171,30 @@ export function addNetworksFromEnv(networks) {
|
|
|
140
171
|
}
|
|
141
172
|
return newNetworks;
|
|
142
173
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
else {
|
|
152
|
-
const url = getRPC(networkName);
|
|
174
|
+
const listOfNetworkNamesWithTestAccountAllowed = ['hardhat', 'localhost', 'memory', 'test'];
|
|
175
|
+
export function addNetworksFromKnownList(networks) {
|
|
176
|
+
const newNetworks = networks ? { ...networks } : {};
|
|
177
|
+
const canonicalNames = Object.keys(chainByCanonicalName);
|
|
178
|
+
for (const canonicalName of canonicalNames) {
|
|
179
|
+
const chain = chainByCanonicalName[canonicalName];
|
|
180
|
+
const url = getRPC(canonicalName) || chain.rpcUrls.default.http[0];
|
|
181
|
+
if (!newNetworks[canonicalName]) {
|
|
153
182
|
if (url) {
|
|
154
|
-
newNetworks[
|
|
155
|
-
|
|
183
|
+
newNetworks[canonicalName] = {
|
|
184
|
+
type: 'http',
|
|
156
185
|
url,
|
|
157
|
-
accounts: getAccounts(
|
|
186
|
+
accounts: getAccounts(canonicalName, !listOfNetworkNamesWithTestAccountAllowed.includes(canonicalName)),
|
|
187
|
+
chainType: chain.chainType === 'op-stack' ? 'op' : undefined,
|
|
188
|
+
chainId: chain.id,
|
|
158
189
|
};
|
|
159
190
|
}
|
|
160
191
|
else {
|
|
161
|
-
|
|
162
|
-
console.error(`no url for network ${networkName}`);
|
|
163
|
-
}
|
|
192
|
+
console.error(`no url for chain ${canonicalName}`);
|
|
164
193
|
}
|
|
165
194
|
}
|
|
195
|
+
else {
|
|
196
|
+
// console.error(`duplicated chain ${canonicalName}`);
|
|
197
|
+
}
|
|
166
198
|
}
|
|
167
199
|
return newNetworks;
|
|
168
200
|
}
|
|
@@ -173,6 +205,7 @@ export function addForkConfiguration(networks) {
|
|
|
173
205
|
if (currentNetworkName &&
|
|
174
206
|
currentNetworkName !== 'hardhat' &&
|
|
175
207
|
currentNetworkName !== 'edr' &&
|
|
208
|
+
currentNetworkName !== 'edr-simulated' &&
|
|
176
209
|
currentNetworkName !== 'memory') {
|
|
177
210
|
const currentNetwork = networks[currentNetworkName];
|
|
178
211
|
if (currentNetwork) {
|
|
@@ -192,13 +225,13 @@ export function addForkConfiguration(networks) {
|
|
|
192
225
|
}
|
|
193
226
|
}
|
|
194
227
|
}
|
|
195
|
-
const
|
|
228
|
+
const existingForkConfiguration = networks.fork && networks.fork.type === 'edr-simulated' ? networks.fork : { type: 'edr-simulated', chainType: 'l1' };
|
|
196
229
|
const newNetworks = {
|
|
197
|
-
...
|
|
198
|
-
|
|
199
|
-
...
|
|
230
|
+
...networks,
|
|
231
|
+
fork: {
|
|
232
|
+
...existingForkConfiguration,
|
|
200
233
|
...{
|
|
201
|
-
accounts: hardhatAccounts ||
|
|
234
|
+
accounts: hardhatAccounts || existingForkConfiguration?.accounts,
|
|
202
235
|
forking: forkURL
|
|
203
236
|
? {
|
|
204
237
|
url: forkURL,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAW9C,OAAO,EAAC,kBAAkB,EAAE,oBAAoB,EAAC,MAAM,SAAS,CAAC;AACjE,OAAO,EAAC,wBAAwB,EAAC,MAAM,eAAe,CAAC;AAEvD,MAAM,UAAU,kBAAkB,CAIhC,UAAsB;IACvB,KAAK,UAAU,wCAAwC,CACtD,QAA0E;QAK1E,MAAM,GAAG,GAAG,MAAM,0BAA0B,CAAsB,QAAQ,CAAC,CAAC;QAC5E,OAAO,kBAAkB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO;QACN,0BAA0B,EAAE,wCAAwC;KACpE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,MAAwE;IAKxE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,YAAkC,CAAC;IAE5D,MAAM,UAAU,GACf,MAAM,CAAC,UAAU,IAAI,IAAI;QACxB,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAC,OAAO,EAAE,MAAM,EAAC,CAAC;QACrD,CAAC,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAEvC,IAAI,QAAQ,GAAQ,UAAU,CAAC,QAAQ,CAAC;IACxC,IAAI,WAAW,GAA4B,UAAU,CAAC,WAAW,CAAC;IAClE,IAAI,WAA+B,CAAC;IAEpC,IAAI,IAAI,EAAE,CAAC;QACV,4CAA4C;QAC5C,+DAA+D;QAE/D,qDAAqD;QACrD,6CAA6C;QAC7C,2CAA2C;QAC3C,6CAA6C;QAC7C,YAAY;QACZ,sCAAsC;QACtC,uDAAuD;QACvD,yCAAyC;QACzC,sBAAsB;QACtB,iBAAiB;QACjB,2CAA2C;QAC3C,SAAS;QACT,6BAA6B;QAC7B,uBAAuB;QACvB,cAAc;QACd,8BAA8B;QAC9B,mBAAmB;QACnB,UAAU;QACV,SAAS;QACT,+DAA+D;QAC/D,wCAAwC;QACxC,aAAa;QACb,8CAA8C;QAC9C,MAAM;QACN,KAAK;QACL,IAAI;QAEJ,WAAW,GAAG;YACb,IAAI;SACJ,CAAC;IACH,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QACjB,MAAM,gBAAgB,GAAG,QAAQ,CAAC;QAClC,MAAM,OAAO,GAAG,WAAW,CAAC;QAC5B,KAAK,UAAU,OAAO,CAAC,IAAyC;YAC/D,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;gBACnC,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACpC,CAAC;YACD,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QACD,QAAQ,GAAG,IAAI,KAAK,CAAC,gBAAgB,EAAE;YACtC,GAAG,EAAE,UAAU,MAAM,EAAE,QAAQ,EAAE,QAAQ;gBACxC,QAAQ,QAAQ,EAAE,CAAC;oBAClB,KAAK,SAAS;wBACb,OAAO,OAAO,CAAC;oBAChB;wBACC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBACpC,CAAC;YACF,CAAC;SACD,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,EAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAC,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAI/C,MAAwE;IAMxE,MAAM,EAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAC,GAAG,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACrF,0CAA0C;IAC1C,OAAO,wBAAwB,CAAsB;QACpD,QAAQ;QACR,WAAW;QACX,KAAK,EAAE;YACN,UAAU;SACV;QACD,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;KAC3C,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,IAAY;IAChD,0FAA0F;IAC1F,MAAM,YAAY,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1D,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACpC,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QACtB,OAAO,cAAc,CAAC,UAAU,YAAY,EAAE,CAAC,CAAC;IACjD,CAAC;SAAM,IAAI,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,cAAc,CAAC,UAAU,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,WAAmB;IACzC,IAAI,GAAG,GAAG,WAAW,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAEpD,IAAI,GAAG,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACvB,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAC/B,IAAI,GAAG,EAAE,CAAC;QACT,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACxB,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;YACjC,OAAO,uBAAuB,CAAC;QAChC,CAAC;QACD,OAAO,GAAG,CAAC;QACX,qEAAqE;IACtE,CAAC;IACD,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,2DAA2D,GAAG,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,WAAoB,EAAE,YAAsB;IACvE,IAAI,WAAW,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAEvD,IAAI,QAAQ,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;YACjC,OAAO,QAAQ,CAAC;QACjB,CAAC;IACF,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IACtC,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QAClC,IAAI,YAAY,EAAE,CAAC;YAClB,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,6DAA6D,CAAC;IACtE,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,WAAW,CAC1B,WAAoB,EACpB,YAAsB;IAEtB,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,OAAO,EAAC,QAAQ,EAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAA4C;IAC9E,MAAM,WAAW,GAAsC,QAAQ,CAAC,CAAC,CAAC,EAAC,GAAG,QAAQ,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;YAClF,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACzD,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;YAChC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,IAAI,GAAG,EAAE,CAAC;oBACT,WAAW,CAAC,WAAW,CAAC,GAAG;wBAC1B,IAAI,EAAE,MAAM;wBACZ,GAAG;wBACH,QAAQ,EAAE,WAAW,CAAC,WAAW,CAAC;qBAClC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,KAAK,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;gBACpD,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;YACpD,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,MAAM,wCAAwC,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC5F,MAAM,UAAU,wBAAwB,CACvC,QAA4C;IAE5C,MAAM,WAAW,GAAsC,QAAQ,CAAC,CAAC,CAAC,EAAC,GAAG,QAAQ,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAEzD,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,IAAI,GAAG,EAAE,CAAC;gBACT,WAAW,CAAC,aAAa,CAAC,GAAG;oBAC5B,IAAI,EAAE,MAAM;oBACZ,GAAG;oBACH,QAAQ,EAAE,WAAW,CAAC,aAAa,EAAE,CAAC,wCAAwC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;oBACvG,SAAS,EAAE,KAAK,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;oBAC5D,OAAO,EAAE,KAAK,CAAC,EAAE;iBACjB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,oBAAoB,aAAa,EAAE,CAAC,CAAC;YACpD,CAAC;QACF,CAAC;aAAM,CAAC;YACP,sDAAsD;QACvD,CAAC;IACF,CAAC;IACD,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAA2C;IAC/E,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACpD,IAAI,OAA6C,CAAC;IAClD,IAAI,eAA2D,CAAC;IAChE,IACC,kBAAkB;QAClB,kBAAkB,KAAK,SAAS;QAChC,kBAAkB,KAAK,KAAK;QAC5B,kBAAkB,KAAK,eAAe;QACtC,kBAAkB,KAAK,QAAQ,EAC9B,CAAC;QACF,MAAM,cAAc,GAAG,QAAQ,CAAC,kBAAkB,CAA0B,CAAC;QAC7E,IAAI,cAAc,EAAE,CAAC;YACpB,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpC,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC;gBAC7B,IACC,cAAc,CAAC,QAAQ;oBACvB,OAAO,cAAc,CAAC,QAAQ,KAAK,QAAQ;oBAC3C,UAAU,IAAI,cAAc,CAAC,QAAQ,EACpC,CAAC;oBACF,eAAe,GAAG,cAAc,CAAC,QAAQ,CAAC;gBAC3C,CAAC;gBAED,gFAAgF;gBAChF,2DAA2D;gBAC3D,wCAAwC;gBACxC,mBAAmB;gBACnB,QAAQ;gBACR,IAAI;YACL,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,yBAAyB,GAC9B,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,EAAC,CAAC;IAEpH,MAAM,WAAW,GAAsC;QACtD,GAAG,QAAQ;QACX,IAAI,EAAE;YACL,GAAG,yBAAyB;YAC5B,GAAG;gBACF,QAAQ,EAAE,eAAe,IAAI,yBAAyB,EAAE,QAAQ;gBAChE,OAAO,EAAE,OAAO;oBACf,CAAC,CAAC;wBACA,GAAG,EAAE,OAAO;wBACZ,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS;qBACpG;oBACF,CAAC,CAAC,SAAS;aACZ;SACD;KACD,CAAC;IACF,OAAO,WAAW,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/hook-handlers/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,qBAAqB,CAAC;8BAqD5B,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAAtD,wBA0BE"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { getConfig } from '../config/get-config.js';
|
|
2
|
+
import { validateTypechainUserConfig } from '../config/validation.js';
|
|
3
|
+
function addIfNotPresent(array, value) {
|
|
4
|
+
if (array.indexOf(value) === -1) {
|
|
5
|
+
array.push(value);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
function setupExtraSolcSettings(settings) {
|
|
9
|
+
settings.metadata = settings.metadata || {};
|
|
10
|
+
settings.metadata.useLiteralContent = true;
|
|
11
|
+
if (settings.outputSelection === undefined) {
|
|
12
|
+
settings.outputSelection = {
|
|
13
|
+
'*': {
|
|
14
|
+
'*': [],
|
|
15
|
+
'': [],
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
if (settings.outputSelection['*'] === undefined) {
|
|
20
|
+
settings.outputSelection['*'] = {
|
|
21
|
+
'*': [],
|
|
22
|
+
'': [],
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
if (settings.outputSelection['*']['*'] === undefined) {
|
|
26
|
+
settings.outputSelection['*']['*'] = [];
|
|
27
|
+
}
|
|
28
|
+
if (settings.outputSelection['*'][''] === undefined) {
|
|
29
|
+
settings.outputSelection['*'][''] = [];
|
|
30
|
+
}
|
|
31
|
+
addIfNotPresent(settings.outputSelection['*']['*'], 'abi');
|
|
32
|
+
// addIfNotPresent(settings.outputSelection['*']['*'], 'evm.bytecode');
|
|
33
|
+
// addIfNotPresent(settings.outputSelection['*']['*'], 'evm.deployedBytecode');
|
|
34
|
+
addIfNotPresent(settings.outputSelection['*']['*'], 'metadata');
|
|
35
|
+
addIfNotPresent(settings.outputSelection['*']['*'], 'devdoc');
|
|
36
|
+
addIfNotPresent(settings.outputSelection['*']['*'], 'userdoc');
|
|
37
|
+
addIfNotPresent(settings.outputSelection['*']['*'], 'storageLayout');
|
|
38
|
+
// addIfNotPresent(settings.outputSelection['*']['*'], 'evm.methodIdentifiers');
|
|
39
|
+
addIfNotPresent(settings.outputSelection['*']['*'], 'evm.gasEstimates');
|
|
40
|
+
// addIfNotPresent(settings.outputSelection["*"][""], "ir");
|
|
41
|
+
// addIfNotPresent(settings.outputSelection["*"][""], "irOptimized");
|
|
42
|
+
// addIfNotPresent(settings.outputSelection["*"][""], "ast");
|
|
43
|
+
}
|
|
44
|
+
export default async () => {
|
|
45
|
+
const handlers = {
|
|
46
|
+
validateUserConfig: validateTypechainUserConfig,
|
|
47
|
+
resolveUserConfig: async (userConfig, resolveConfigurationVariable, next) => {
|
|
48
|
+
const resolvedConfig = await next(userConfig, resolveConfigurationVariable);
|
|
49
|
+
const solidity = structuredClone(resolvedConfig.solidity);
|
|
50
|
+
const profiles = solidity.profiles;
|
|
51
|
+
for (const profileName of Object.keys(profiles)) {
|
|
52
|
+
const profile = profiles[profileName];
|
|
53
|
+
const compilers = profile.compilers;
|
|
54
|
+
for (const compiler of compilers) {
|
|
55
|
+
const settings = compiler.settings;
|
|
56
|
+
setupExtraSolcSettings(settings);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
...resolvedConfig,
|
|
61
|
+
solidity,
|
|
62
|
+
generateTypedArtifacts: getConfig(userConfig.generateTypedArtifacts),
|
|
63
|
+
};
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
return handlers;
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=config.js.map
|