Skip contracts that have no bytecode (e.g., abstract contracts)

This commit is contained in:
Marian Radu
2026-01-17 11:01:59 +02:00
parent 9d1c71756f
commit b41c0e61c0
2 changed files with 1064 additions and 1074 deletions
Generated
+1056 -1072
View File
File diff suppressed because it is too large Load Diff
+8 -2
View File
@@ -253,10 +253,16 @@ impl SolidityCompiler for Resolc {
let map = compiler_output.contracts.entry(source_path).or_default();
for (contract_name, contract_information) in contracts.into_iter() {
let bytecode = contract_information
let Some(bytecode) = contract_information
.evm
.and_then(|evm| evm.bytecode.clone())
.context("Unexpected - Contract compiled with resolc has no bytecode")?;
else {
tracing::debug!(
"Skipping abstract or interface contract {} - no bytecode",
contract_name
);
continue;
};
let abi = {
let metadata = contract_information
.metadata