Skip to content

Commit c526de8

Browse files
committed
add optimizer settings to solc standard json
1 parent 5d35878 commit c526de8

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

crytic_compile/platform/solc_standard_json.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,20 @@
44
import json
55
import logging
66
import os
7-
from pathlib import Path
87
import shutil
98
import subprocess
10-
from typing import TYPE_CHECKING, Dict, List, Optional, Union, Any
9+
from pathlib import Path
10+
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union
1111

1212
from crytic_compile.compilation_unit import CompilationUnit
1313
from crytic_compile.compiler.compiler import CompilerVersion
1414
from crytic_compile.platform.exceptions import InvalidCompilation
15-
from crytic_compile.platform.solc import Solc, get_version, is_optimized, relative_to_short
15+
from crytic_compile.platform.solc import (
16+
Solc,
17+
get_version,
18+
is_optimized,
19+
relative_to_short,
20+
)
1621
from crytic_compile.platform.types import Type
1722
from crytic_compile.utils.naming import convert_filename
1823

@@ -160,7 +165,6 @@ def run_solc_standard_json(
160165
" ".join(cmd),
161166
)
162167
try:
163-
164168
with subprocess.Popen(
165169
cmd,
166170
stdin=subprocess.PIPE,
@@ -170,7 +174,6 @@ def run_solc_standard_json(
170174
executable=shutil.which(cmd[0]),
171175
**additional_kwargs,
172176
) as process:
173-
174177
stdout_b, stderr_b = process.communicate(json.dumps(solc_input).encode("utf-8"))
175178
stdout, stderr = (
176179
stdout_b.decode(),
@@ -453,7 +456,9 @@ def compile(self, crytic_compile: "CryticCompile", **kwargs: Any) -> None:
453456
compilation_unit.compiler_version = CompilerVersion(
454457
compiler="solc",
455458
version=get_version(solc, solc_env),
456-
optimized=is_optimized(solc_arguments),
459+
optimized=is_optimized(solc_arguments)
460+
or self.to_dict().get("settings", {}).get("optimizer", {}).get("enabled", False),
461+
optimize_runs=self.to_dict().get("settings", {}).get("optimizer", {}).get("runs", None),
457462
)
458463

459464
add_optimization(

0 commit comments

Comments
 (0)