Skip to content

Commit 94a80d6

Browse files
authored
Merge pull request #340 from crytic/dev-fix-import-0.0.2
Fix import 0.0.2
2 parents ba44500 + 43d9f41 commit 94a80d6

File tree

4 files changed

+54
-21
lines changed

4 files changed

+54
-21
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
fail-fast: false
1919
matrix:
2020
os: ["ubuntu-latest", "windows-2022"]
21-
type: ["brownie", "buidler", "dapp", "embark", "etherlime", "hardhat", "solc", "truffle", "waffle", "foundry"]
21+
type: ["brownie", "buidler", "dapp", "embark", "etherlime", "hardhat", "solc", "truffle", "waffle", "foundry", "standard"]
2222
exclude:
2323
# Currently broken, tries to pull git:// which is blocked by GH
2424
- type: embark

crytic_compile/__main__.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from crytic_compile.crytic_compile import compile_all, get_platforms
1414
from crytic_compile.cryticparser import DEFAULTS_FLAG_IN_CONFIG, cryticparser
1515
from crytic_compile.platform import InvalidCompilation
16+
from crytic_compile.platform.all_export import PLATFORMS_EXPORT
1617
from crytic_compile.utils.zip import ZIP_TYPES_ACCEPTED, save_to_zip
1718

1819
if TYPE_CHECKING:
@@ -50,8 +51,8 @@ def parse_args() -> argparse.Namespace:
5051

5152
parser.add_argument(
5253
"--export-format",
53-
help="""Export json with non crytic-compile format
54-
(default None. Accepted: standard, solc, truffle)""",
54+
help=f"""Export json with non crytic-compile format
55+
(default None. Accepted: ({", ".join(list(PLATFORMS_EXPORT))})""",
5556
action="store",
5657
dest="export_format",
5758
default=None,

crytic_compile/platform/standard.py

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from crytic_compile.compiler.compiler import CompilerVersion
1212
from crytic_compile.platform import Type as PlatformType
1313
from crytic_compile.platform.abstract_platform import AbstractPlatform
14-
from crytic_compile.utils.naming import Filename, convert_filename
14+
from crytic_compile.utils.naming import Filename
1515

1616
# Cycle dependency
1717
from crytic_compile.utils.natspec import Natspec
@@ -435,15 +435,16 @@ def _load_from_compile_current(crytic_compile: "CryticCompile", loaded_json: Dic
435435
version=compilation_unit_json["compiler"]["version"],
436436
optimized=compilation_unit_json["compiler"]["optimized"],
437437
)
438-
for contracts_data in compilation_unit_json["contracts"].values():
439-
for contract_name, contract in contracts_data.items():
440438

441-
filename = Filename(
442-
absolute=contract["filenames"]["absolute"],
443-
relative=contract["filenames"]["relative"],
444-
short=contract["filenames"]["short"],
445-
used=contract["filenames"]["used"],
446-
)
439+
compilation_unit.filenames = {
440+
_convert_dict_to_filename(filename) for filename in compilation_unit_json["filenames"]
441+
}
442+
443+
for filename_str, source_unit_data in compilation_unit_json["source_units"].items():
444+
filename = compilation_unit.filename_lookup(filename_str)
445+
source_unit = compilation_unit.create_source_unit(filename)
446+
447+
for contract_name, contract in source_unit_data["contracts"].items():
447448
compilation_unit.filename_to_contracts[filename].add(contract_name)
448449

449450
source_unit = compilation_unit.create_source_unit(filename)
@@ -465,15 +466,7 @@ def _load_from_compile_current(crytic_compile: "CryticCompile", loaded_json: Dic
465466
crytic_compile.dependencies.add(filename.short)
466467
crytic_compile.dependencies.add(filename.used)
467468

468-
compilation_unit.filenames = {
469-
_convert_dict_to_filename(filename) for filename in compilation_unit_json["filenames"]
470-
}
471-
472-
for path, ast in compilation_unit_json["asts"].items:
473-
# The following might create lookup issue?
474-
filename = convert_filename(path, lambda x: x, crytic_compile)
475-
source_unit = compilation_unit.create_source_unit(filename)
476-
source_unit.ast = ast
469+
source_unit.ast = source_unit_data["ast"]
477470

478471

479472
def load_from_compile(crytic_compile: "CryticCompile", loaded_json: Dict) -> Tuple[int, List[str]]:

scripts/ci_test_standard.sh

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#!/usr/bin/env bash
2+
3+
DIR=$(mktemp -d)
4+
5+
cp tests/contract.sol "$DIR"
6+
cd "$DIR" || exit 255
7+
8+
crytic-compile contract.sol --export-format archive
9+
10+
if [ $? -ne 0 ]
11+
then
12+
echo "Standard test failed"
13+
exit 255
14+
fi
15+
16+
crytic-compile crytic-export/contract.sol_export_archive.json
17+
18+
if [ $? -ne 0 ]
19+
then
20+
echo "Standard test failed"
21+
exit 255
22+
fi
23+
24+
25+
crytic-compile contract.sol --export-zip test.zip
26+
27+
if [ $? -ne 0 ]
28+
then
29+
echo "Standard test failed"
30+
exit 255
31+
fi
32+
33+
crytic-compile test.zip
34+
35+
if [ $? -ne 0 ]
36+
then
37+
echo "Standard test failed"
38+
exit 255
39+
fi

0 commit comments

Comments
 (0)