hardhat-external-artifacts 0.0.5 → 0.0.6

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.
@@ -20,6 +20,8 @@ interface CompilerInput {
20
20
  useLiteralContent?: boolean;
21
21
  bytecodeHash?: string;
22
22
  };
23
+ evmVersion?: string;
24
+ viaIR?: boolean;
23
25
  };
24
26
  }
25
27
  interface CompilerOutput {
@@ -54,8 +56,8 @@ interface BytecodeOutput {
54
56
  }
55
57
  /**
56
58
  * Convert artifacts to compilation format.
57
- * If artifacts are "rich" (have solcInput), use the embedded data.
58
- * Otherwise, synthesize a minimal compilation.
59
+ * Flexibly extracts data from each artifact - uses solcInput if available,
60
+ * falls back to metadata for settings, or synthesizes minimal compilation.
59
61
  */
60
62
  export declare function artifactsToCompilations(artifacts: ExternalArtifact[], defaultSolcVersion: string, debug?: boolean): SyntheticCompilation[];
61
63
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/artifacts/converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAgB,cAAc,EAAC,MAAM,YAAY,CAAC;AAG/E,MAAM,WAAW,oBAAoB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;CAC/B;AAED,UAAU,aAAa;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IAC3C,QAAQ,EAAE;QACT,SAAS,EAAE;YAAC,OAAO,EAAE,OAAO,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAC,CAAC;QAC7C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1D,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,QAAQ,CAAC,EAAE;YAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;YAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAC,CAAC;KAChE,CAAC;CACF;AAED,UAAU,cAAc;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IACnD,SAAS,EAAE,MAAM,CAChB,MAAM,EACN,MAAM,CACL,MAAM,EACN;QACC,GAAG,EAAE,SAAS,GAAG,EAAE,CAAC;QACpB,GAAG,EAAE;YACJ,QAAQ,EAAE,cAAc,CAAC;YACzB,gBAAgB,EAAE,cAAc,CAAC;YACjC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC1C,CAAC;QACF,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,GAAG,CAAC;QACb,OAAO,CAAC,EAAE,GAAG,CAAC;QACd,aAAa,CAAC,EAAE,GAAG,CAAC;KACpB,CACD,CACD,CAAC;CACF;AAED,UAAU,cAAc;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,cAAc,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC,CAAC;IAC7E,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACxC;AA2CD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACtC,SAAS,EAAE,gBAAgB,EAAE,EAC7B,kBAAkB,EAAE,MAAM,EAC1B,KAAK,GAAE,OAAe,GACpB,oBAAoB,EAAE,CAoCxB"}
1
+ {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/artifacts/converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAgB,cAAc,EAAC,MAAM,YAAY,CAAC;AAG/E,MAAM,WAAW,oBAAoB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;CAC/B;AAED,UAAU,aAAa;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IAC3C,QAAQ,EAAE;QACT,SAAS,EAAE;YAAC,OAAO,EAAE,OAAO,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAC,CAAC;QAC7C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1D,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,QAAQ,CAAC,EAAE;YAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;YAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAC,CAAC;QAChE,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACF;AAED,UAAU,cAAc;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IACnD,SAAS,EAAE,MAAM,CAChB,MAAM,EACN,MAAM,CACL,MAAM,EACN;QACC,GAAG,EAAE,SAAS,GAAG,EAAE,CAAC;QACpB,GAAG,EAAE;YACJ,QAAQ,EAAE,cAAc,CAAC;YACzB,gBAAgB,EAAE,cAAc,CAAC;YACjC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC1C,CAAC;QACF,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,GAAG,CAAC;QACb,OAAO,CAAC,EAAE,GAAG,CAAC;QACd,aAAa,CAAC,EAAE,GAAG,CAAC;KACpB,CACD,CACD,CAAC;CACF;AAED,UAAU,cAAc;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,cAAc,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC,CAAC;IAC7E,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACxC;AA0LD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACtC,SAAS,EAAE,gBAAgB,EAAE,EAC7B,kBAAkB,EAAE,MAAM,EAC1B,KAAK,GAAE,OAAe,GACpB,oBAAoB,EAAE,CA6CxB"}
@@ -1,4 +1,4 @@
1
- import { isRichArtifact } from './types.js';
1
+ import { hasSolcInput, hasMetadata, hasEvmData } from './types.js';
2
2
  /**
3
3
  * Creates a minimal valid AST for a source file.
4
4
  * This is needed because Hardhat's contract decoder expects a valid AST structure.
@@ -34,162 +34,192 @@ function createMinimalAst(sourceName, sourceId, contracts) {
34
34
  };
35
35
  }
36
36
  /**
37
- * Convert artifacts to compilation format.
38
- * If artifacts are "rich" (have solcInput), use the embedded data.
39
- * Otherwise, synthesize a minimal compilation.
37
+ * Extract compilation context from an artifact.
38
+ * Tries solcInput first, then falls back to metadata, then defaults.
40
39
  */
41
- export function artifactsToCompilations(artifacts, defaultSolcVersion, debug = false) {
42
- // Group artifacts by whether they have solcInput
43
- const richArtifacts = artifacts.filter(isRichArtifact);
44
- const simpleArtifacts = artifacts.filter((a) => !isRichArtifact(a));
45
- if (debug) {
46
- console.log(`[external-artifacts] Processing ${artifacts.length} artifacts:`);
47
- console.log(` - Rich artifacts (with solcInput): ${richArtifacts.length}`);
48
- console.log(` - Simple artifacts: ${simpleArtifacts.length}`);
49
- for (const artifact of artifacts) {
50
- const isRich = isRichArtifact(artifact);
51
- const richArt = artifact;
52
- const immRefs = richArt.evm?.deployedBytecode?.immutableReferences ?? artifact.immutableReferences;
53
- const immCount = immRefs ? Object.keys(immRefs).length : 0;
54
- console.log(` - ${artifact.contractName}: ${isRich ? 'rich' : 'simple'}, immutableReferences: ${immCount} keys`);
40
+ function extractCompilationContext(artifact, defaultSolcVersion, debug = false) {
41
+ // Try to extract from solcInput first (most complete)
42
+ if (hasSolcInput(artifact)) {
43
+ try {
44
+ const compilerInput = JSON.parse(artifact.solcInput);
45
+ const solcVersion = extractVersionFromMetadata(artifact.metadata) ?? defaultSolcVersion;
46
+ // Use a hash of settings to group artifacts with same compilation context
47
+ const settingsKey = JSON.stringify(compilerInput.settings);
48
+ return {
49
+ solcVersion,
50
+ compilerInput,
51
+ groupKey: `solcInput:${solcVersion}:${hashString(settingsKey)}`,
52
+ };
55
53
  }
56
- }
57
- const compilations = [];
58
- // Process rich artifacts - these have embedded solcInput
59
- for (const artifact of richArtifacts) {
60
- const compilation = richArtifactToCompilation(artifact, debug);
61
- if (compilation) {
62
- compilations.push(compilation);
54
+ catch (e) {
55
+ if (debug) {
56
+ console.log(`[external-artifacts] Failed to parse solcInput for ${artifact.contractName}: ${e}`);
57
+ }
58
+ // Fall through to metadata extraction
63
59
  }
64
60
  }
65
- // Process simple artifacts - synthesize compilation
66
- if (simpleArtifacts.length > 0) {
67
- compilations.push(synthesizeCompilation(simpleArtifacts, defaultSolcVersion, debug));
68
- }
69
- return compilations;
70
- }
71
- /**
72
- * Convert a rich artifact (with embedded solcInput) to a compilation.
73
- * Uses the embedded solcInput directly for maximum fidelity.
74
- */
75
- function richArtifactToCompilation(artifact, debug = false) {
76
- if (!artifact.solcInput) {
77
- return null;
78
- }
79
- // Parse the embedded solcInput
80
- const compilerInput = JSON.parse(artifact.solcInput);
81
- // Extract solc version from metadata
82
- let solcVersion = '0.8.20'; // Default
83
- if (artifact.metadata) {
61
+ // Try to extract from metadata (partial but useful)
62
+ if (hasMetadata(artifact)) {
84
63
  try {
85
64
  const metadata = JSON.parse(artifact.metadata);
86
- if (metadata.compiler?.version) {
87
- // Format: "0.8.10+commit.fc410830" -> extract "0.8.10"
88
- solcVersion = metadata.compiler.version.split('+')[0];
65
+ const solcVersion = extractVersionFromMetadataObject(metadata) ?? defaultSolcVersion;
66
+ const compilerInput = metadataToCompilerInput(metadata);
67
+ if (compilerInput) {
68
+ const settingsKey = JSON.stringify(compilerInput.settings);
69
+ return {
70
+ solcVersion,
71
+ compilerInput,
72
+ groupKey: `metadata:${solcVersion}:${hashString(settingsKey)}`,
73
+ };
89
74
  }
90
75
  }
91
- catch {
92
- // Ignore parsing errors, use default
76
+ catch (e) {
77
+ if (debug) {
78
+ console.log(`[external-artifacts] Failed to parse metadata for ${artifact.contractName}: ${e}`);
79
+ }
80
+ // Fall through to defaults
93
81
  }
94
82
  }
95
- // Build compiler output from the artifact
96
- // Only include sources that we have contract data for
97
- // Including empty sources/contracts can cause EDR selector fixup issues
98
- const compilerOutput = {
99
- sources: {},
100
- contracts: {},
83
+ // Default: no compiler input available, use defaults
84
+ return {
85
+ solcVersion: defaultSolcVersion,
86
+ compilerInput: null,
87
+ groupKey: `default:${defaultSolcVersion}`,
101
88
  };
102
- const sourceName = artifact.sourceName;
103
- // Track source IDs for all input sources (needed for consistent source indexing)
104
- let sourceId = 0;
105
- const sourceIds = {};
106
- for (const srcName of Object.keys(compilerInput.sources)) {
107
- sourceIds[srcName] = sourceId++;
89
+ }
90
+ /**
91
+ * Extract solc version from metadata string.
92
+ */
93
+ function extractVersionFromMetadata(metadataStr) {
94
+ if (!metadataStr)
95
+ return null;
96
+ try {
97
+ const metadata = JSON.parse(metadataStr);
98
+ return extractVersionFromMetadataObject(metadata);
108
99
  }
109
- // Only include the source that contains our contract
110
- const contractSourceId = sourceIds[sourceName] ?? sourceId++;
111
- const contractNodeId = contractSourceId + 1000; // Use an offset to avoid ID conflicts
112
- compilerOutput.sources[sourceName] = {
113
- id: contractSourceId,
114
- ast: createMinimalAst(sourceName, contractSourceId, [
115
- { name: artifact.contractName, nodeId: contractNodeId },
116
- ]),
117
- };
118
- compilerOutput.contracts[sourceName] = {};
119
- // Ensure the source is in compilerInput as well
120
- if (!compilerInput.sources[sourceName]) {
121
- compilerInput.sources[sourceName] = { content: '' };
100
+ catch {
101
+ return null;
122
102
  }
123
- // Build bytecode output, ensuring proper format
124
- // Standard solc output has bytecode.object without 0x prefix
125
- const bytecode = {
126
- object: stripHexPrefix(artifact.evm?.bytecode?.object ?? artifact.bytecode ?? '0x'),
127
- opcodes: artifact.evm?.bytecode?.opcodes ?? '',
128
- sourceMap: artifact.evm?.bytecode?.sourceMap ?? '',
129
- linkReferences: artifact.evm?.bytecode?.linkReferences ?? artifact.linkReferences ?? {},
130
- generatedSources: artifact.evm?.bytecode?.generatedSources,
131
- functionDebugData: artifact.evm?.bytecode?.functionDebugData,
132
- };
133
- const deployedBytecode = {
134
- object: stripHexPrefix(artifact.evm?.deployedBytecode?.object ??
135
- artifact.deployedBytecode ??
136
- '0x'),
137
- opcodes: artifact.evm?.deployedBytecode?.opcodes ?? '',
138
- sourceMap: artifact.evm?.deployedBytecode?.sourceMap ?? '',
139
- linkReferences: artifact.evm?.deployedBytecode?.linkReferences ??
140
- artifact.deployedLinkReferences ??
141
- {},
142
- immutableReferences: artifact.evm?.deployedBytecode?.immutableReferences ??
143
- artifact.immutableReferences ??
144
- {},
145
- generatedSources: artifact.evm?.deployedBytecode?.generatedSources,
146
- functionDebugData: artifact.evm?.deployedBytecode?.functionDebugData,
147
- };
148
- // IMPORTANT: Do NOT provide method identifiers - let EDR compute them
149
- // EDR has internal "selector fixup" logic for function overloading that can fail
150
- // if we provide method identifiers that it then tries to reconcile with AST info.
151
- // The error "Failed to fix up the selector for ... #supportsInterface" happens
152
- // when EDR can't match provided selectors with overloaded functions.
153
- // By providing an empty object, EDR will compute selectors from the ABI directly.
154
- const methodIdentifiers = {};
155
- compilerOutput.contracts[sourceName][artifact.contractName] = {
156
- abi: artifact.abi,
157
- evm: {
158
- bytecode,
159
- deployedBytecode,
160
- methodIdentifiers,
103
+ }
104
+ /**
105
+ * Extract solc version from parsed metadata object.
106
+ */
107
+ function extractVersionFromMetadataObject(metadata) {
108
+ if (metadata?.compiler?.version) {
109
+ // Format: "0.8.10+commit.fc410830" -> extract "0.8.10"
110
+ return metadata.compiler.version.split('+')[0];
111
+ }
112
+ return null;
113
+ }
114
+ /**
115
+ * Convert metadata to compiler input.
116
+ * Metadata contains settings but not full source content.
117
+ */
118
+ function metadataToCompilerInput(metadata) {
119
+ if (!metadata?.settings)
120
+ return null;
121
+ const settings = metadata.settings;
122
+ const sources = {};
123
+ // Metadata has source hashes but not content
124
+ // We'll add empty placeholders that get filled in later
125
+ if (metadata.sources) {
126
+ for (const sourceName of Object.keys(metadata.sources)) {
127
+ // Some metadata includes content in keccak256 only
128
+ // We use empty content as placeholder
129
+ sources[sourceName] = { content: '' };
130
+ }
131
+ }
132
+ return {
133
+ language: metadata.language ?? 'Solidity',
134
+ sources,
135
+ settings: {
136
+ optimizer: settings.optimizer ?? { enabled: false },
137
+ outputSelection: settings.outputSelection ?? {
138
+ '*': { '*': ['abi', 'evm.bytecode', 'evm.deployedBytecode'] },
139
+ },
140
+ remappings: settings.remappings,
141
+ metadata: settings.metadata,
142
+ evmVersion: settings.evmVersion,
143
+ viaIR: settings.viaIR,
161
144
  },
162
- metadata: artifact.metadata,
163
- devdoc: artifact.devdoc,
164
- userdoc: artifact.userdoc,
165
- storageLayout: artifact.storageLayout,
166
145
  };
146
+ }
147
+ /**
148
+ * Simple string hash for grouping.
149
+ */
150
+ function hashString(str) {
151
+ let hash = 0;
152
+ for (let i = 0; i < str.length; i++) {
153
+ const char = str.charCodeAt(i);
154
+ hash = ((hash << 5) - hash) + char;
155
+ hash = hash & hash; // Convert to 32-bit integer
156
+ }
157
+ return hash.toString(16);
158
+ }
159
+ /**
160
+ * Convert artifacts to compilation format.
161
+ * Flexibly extracts data from each artifact - uses solcInput if available,
162
+ * falls back to metadata for settings, or synthesizes minimal compilation.
163
+ */
164
+ export function artifactsToCompilations(artifacts, defaultSolcVersion, debug = false) {
167
165
  if (debug) {
168
- const immRefKeys = Object.keys(deployedBytecode.immutableReferences ?? {});
169
- console.log(`[external-artifacts] Rich artifact: ${artifact.contractName}`);
170
- console.log(` - sourceName: ${sourceName}`);
171
- console.log(` - solcVersion: ${solcVersion}`);
172
- console.log(` - immutableReferences keys: ${immRefKeys.length}`);
173
- if (immRefKeys.length > 0) {
174
- console.log(` - immutableReferences sample:`, JSON.stringify(deployedBytecode.immutableReferences, null, 2).slice(0, 500));
166
+ console.log(`[external-artifacts] Processing ${artifacts.length} artifacts`);
167
+ }
168
+ // Extract context from each artifact and group by compilation context
169
+ const artifactsByContext = new Map();
170
+ for (const artifact of artifacts) {
171
+ const context = extractCompilationContext(artifact, defaultSolcVersion, debug);
172
+ const richArt = artifact;
173
+ const immRefs = richArt.evm?.deployedBytecode?.immutableReferences ?? artifact.immutableReferences;
174
+ const immCount = immRefs ? Object.keys(immRefs).length : 0;
175
+ if (debug) {
176
+ console.log(` - ${artifact.contractName}: solcInput=${hasSolcInput(artifact)}, metadata=${hasMetadata(artifact)}, immutableReferences=${immCount} keys, group=${context.groupKey}`);
177
+ }
178
+ const existing = artifactsByContext.get(context.groupKey);
179
+ if (existing) {
180
+ existing.artifacts.push(artifact);
181
+ }
182
+ else {
183
+ artifactsByContext.set(context.groupKey, {
184
+ context,
185
+ artifacts: [artifact],
186
+ });
175
187
  }
176
- console.log(` - deployedBytecode length: ${deployedBytecode.object.length / 2} bytes`);
177
188
  }
178
- return {
179
- solcVersion,
180
- compilerInput,
181
- compilerOutput,
182
- };
189
+ if (debug) {
190
+ console.log(`[external-artifacts] Grouped into ${artifactsByContext.size} compilations`);
191
+ }
192
+ // Convert each group to a compilation
193
+ const compilations = [];
194
+ for (const { context, artifacts: groupArtifacts } of artifactsByContext.values()) {
195
+ const compilation = buildCompilation(groupArtifacts, context, debug);
196
+ compilations.push(compilation);
197
+ }
198
+ return compilations;
183
199
  }
184
200
  /**
185
- * Synthesize a minimal compilation from simple artifacts.
186
- * Used when artifacts don't have embedded solcInput.
201
+ * Build a compilation from a group of artifacts sharing the same context.
202
+ * Flexibly extracts available data from each artifact.
187
203
  */
188
- function synthesizeCompilation(artifacts, solcVersion, debug = false) {
189
- const sources = {};
190
- const outputSources = {};
191
- const contracts = {};
192
- // First, group artifacts by source
204
+ function buildCompilation(artifacts, context, debug = false) {
205
+ // Start with context's compiler input or create a minimal one
206
+ const compilerInput = context.compilerInput
207
+ ? { ...context.compilerInput, sources: { ...context.compilerInput.sources } }
208
+ : {
209
+ language: 'Solidity',
210
+ sources: {},
211
+ settings: {
212
+ optimizer: { enabled: false },
213
+ outputSelection: {
214
+ '*': { '*': ['abi', 'evm.bytecode', 'evm.deployedBytecode'] },
215
+ },
216
+ },
217
+ };
218
+ const compilerOutput = {
219
+ sources: {},
220
+ contracts: {},
221
+ };
222
+ // Group artifacts by source for AST generation
193
223
  const contractsBySource = {};
194
224
  for (const artifact of artifacts) {
195
225
  if (!contractsBySource[artifact.sourceName]) {
@@ -200,81 +230,95 @@ function synthesizeCompilation(artifacts, solcVersion, debug = false) {
200
230
  artifact,
201
231
  });
202
232
  }
203
- // Track IDs for AST nodes
204
- let nextId = 0;
205
- // Create sources with contract definitions in AST
233
+ // Track source IDs - use existing ones from compiler input if available
234
+ let nextSourceId = 0;
235
+ const sourceIds = {};
236
+ for (const srcName of Object.keys(compilerInput.sources)) {
237
+ sourceIds[srcName] = nextSourceId++;
238
+ }
239
+ // Track node IDs for AST
240
+ let nextNodeId = nextSourceId + 1000; // Offset to avoid conflicts
241
+ // Process each source
206
242
  for (const [sourceName, sourceContracts] of Object.entries(contractsBySource)) {
207
- const sourceId = nextId++;
208
- sources[sourceName] = { content: '' };
209
- contracts[sourceName] = {};
243
+ // Ensure source exists in compiler input
244
+ if (!compilerInput.sources[sourceName]) {
245
+ compilerInput.sources[sourceName] = { content: '' };
246
+ }
247
+ // Get or assign source ID
248
+ const sourceId = sourceIds[sourceName] ?? nextSourceId++;
249
+ sourceIds[sourceName] = sourceId;
210
250
  // Create contract nodes for AST
211
251
  const contractNodes = [];
212
252
  for (const { name } of sourceContracts) {
213
- const nodeId = nextId++;
214
- contractNodes.push({ name, nodeId });
253
+ contractNodes.push({ name, nodeId: nextNodeId++ });
215
254
  }
216
- outputSources[sourceName] = {
255
+ compilerOutput.sources[sourceName] = {
217
256
  id: sourceId,
218
257
  ast: createMinimalAst(sourceName, sourceId, contractNodes),
219
258
  };
259
+ compilerOutput.contracts[sourceName] = {};
220
260
  // Add contract outputs
221
261
  for (const { name, artifact } of sourceContracts) {
222
- // Cast to access optional evm property that may exist on artifacts
223
- // without solcInput (partial RichArtifact)
224
262
  const richArtifact = artifact;
263
+ // Build bytecode output, extracting from evm if available
264
+ const bytecode = {
265
+ object: stripHexPrefix(richArtifact.evm?.bytecode?.object ?? artifact.bytecode ?? '0x'),
266
+ opcodes: richArtifact.evm?.bytecode?.opcodes ?? '',
267
+ sourceMap: richArtifact.evm?.bytecode?.sourceMap ?? '',
268
+ linkReferences: richArtifact.evm?.bytecode?.linkReferences ?? artifact.linkReferences ?? {},
269
+ generatedSources: richArtifact.evm?.bytecode?.generatedSources,
270
+ functionDebugData: richArtifact.evm?.bytecode?.functionDebugData,
271
+ };
225
272
  const immutableReferences = richArtifact.evm?.deployedBytecode?.immutableReferences ??
226
273
  artifact.immutableReferences ??
227
274
  {};
228
- contracts[sourceName][name] = {
275
+ const deployedBytecode = {
276
+ object: stripHexPrefix(richArtifact.evm?.deployedBytecode?.object ??
277
+ artifact.deployedBytecode ??
278
+ '0x'),
279
+ opcodes: richArtifact.evm?.deployedBytecode?.opcodes ?? '',
280
+ sourceMap: richArtifact.evm?.deployedBytecode?.sourceMap ?? '',
281
+ linkReferences: richArtifact.evm?.deployedBytecode?.linkReferences ??
282
+ artifact.deployedLinkReferences ??
283
+ {},
284
+ immutableReferences,
285
+ generatedSources: richArtifact.evm?.deployedBytecode?.generatedSources,
286
+ functionDebugData: richArtifact.evm?.deployedBytecode?.functionDebugData,
287
+ };
288
+ // IMPORTANT: Do NOT provide method identifiers - let EDR compute them
289
+ // EDR has internal "selector fixup" logic for function overloading that can fail
290
+ // if we provide method identifiers that it then tries to reconcile with AST info.
291
+ compilerOutput.contracts[sourceName][name] = {
229
292
  abi: artifact.abi,
230
293
  evm: {
231
- bytecode: {
232
- object: stripHexPrefix(artifact.bytecode),
233
- opcodes: '',
234
- sourceMap: '',
235
- linkReferences: artifact.linkReferences ?? {},
236
- },
237
- deployedBytecode: {
238
- object: stripHexPrefix(artifact.deployedBytecode),
239
- opcodes: '',
240
- sourceMap: '',
241
- linkReferences: artifact.deployedLinkReferences ?? {},
242
- // Check both evm.deployedBytecode.immutableReferences and top-level
243
- immutableReferences,
244
- },
245
- // Empty object - let EDR compute selectors to avoid selector fixup issues
246
- // with overloaded functions (consistent with richArtifactToCompilation)
294
+ bytecode,
295
+ deployedBytecode,
247
296
  methodIdentifiers: {},
248
297
  },
298
+ metadata: richArtifact.metadata,
299
+ devdoc: richArtifact.devdoc,
300
+ userdoc: richArtifact.userdoc,
301
+ storageLayout: richArtifact.storageLayout,
249
302
  };
250
303
  if (debug) {
251
304
  const immRefKeys = Object.keys(immutableReferences);
252
- console.log(`[external-artifacts] Simple artifact: ${name}`);
305
+ console.log(`[external-artifacts] Built artifact: ${name}`);
253
306
  console.log(` - sourceName: ${sourceName}`);
307
+ console.log(` - hasSolcInput: ${hasSolcInput(artifact)}`);
308
+ console.log(` - hasMetadata: ${hasMetadata(artifact)}`);
309
+ console.log(` - hasEvmData: ${hasEvmData(artifact)}`);
254
310
  console.log(` - immutableReferences keys: ${immRefKeys.length}`);
255
311
  if (immRefKeys.length > 0) {
256
312
  console.log(` - immutableReferences sample:`, JSON.stringify(immutableReferences, null, 2).slice(0, 500));
257
313
  }
258
- console.log(` - deployedBytecode length: ${artifact.deployedBytecode.length / 2} bytes`);
314
+ console.log(` - deployedBytecode length: ${deployedBytecode.object.length / 2} bytes`);
259
315
  }
260
316
  }
261
317
  }
262
318
  return {
263
- solcVersion,
264
- compilerInput: {
265
- language: 'Solidity',
266
- sources,
267
- settings: {
268
- optimizer: { enabled: false },
269
- outputSelection: {
270
- '*': { '*': ['abi', 'evm.bytecode', 'evm.deployedBytecode'] },
271
- },
272
- },
273
- },
274
- compilerOutput: {
275
- sources: outputSources,
276
- contracts,
277
- },
319
+ solcVersion: context.solcVersion,
320
+ compilerInput,
321
+ compilerOutput,
278
322
  };
279
323
  }
280
324
  function stripHexPrefix(hex) {
@@ -1 +1 @@
1
- {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../src/artifacts/converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../src/artifacts/converter.ts"],"names":[],"mappings":"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"}
@@ -74,9 +74,27 @@ export interface LinkReferences {
74
74
  };
75
75
  }
76
76
  /**
77
- * Type guard to check if an artifact is a rich artifact
77
+ * Type guard to check if an artifact has solcInput.
78
+ * Note: The converter now handles artifacts flexibly, extracting
79
+ * available data from solcInput, metadata, or evm fields without
80
+ * requiring a strict "rich" vs "simple" classification.
78
81
  */
79
- export declare function isRichArtifact(artifact: ExternalArtifact): artifact is RichArtifact;
82
+ export declare function hasSolcInput(artifact: ExternalArtifact): artifact is RichArtifact & {
83
+ solcInput: string;
84
+ };
85
+ /**
86
+ * Type guard to check if an artifact has metadata.
87
+ * Metadata can be used as a fallback for compiler settings when solcInput is not available.
88
+ */
89
+ export declare function hasMetadata(artifact: ExternalArtifact): artifact is RichArtifact & {
90
+ metadata: string;
91
+ };
92
+ /**
93
+ * Type guard to check if an artifact has EVM data.
94
+ */
95
+ export declare function hasEvmData(artifact: ExternalArtifact): artifact is RichArtifact & {
96
+ evm: NonNullable<RichArtifact['evm']>;
97
+ };
80
98
  /**
81
99
  * Function type for dynamically resolving artifacts
82
100
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/artifacts/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/artifacts/types.ts"],"names":[],"mappings":"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"}