34
34
def _build_contract_data (compilation_unit : "CompilationUnit" ) -> Dict :
35
35
contracts = {}
36
36
37
- libraries = compilation_unit .crytic_compile .libraries
37
+ libraries_to_update = compilation_unit .crytic_compile .libraries
38
38
39
39
for filename , source_unit in compilation_unit .source_units .items ():
40
40
for contract_name in source_unit .contracts_names :
41
+ libraries = source_unit .libraries_names_and_patterns (contract_name )
41
42
abi = str (source_unit .abi (contract_name ))
42
43
abi = abi .replace ("'" , '"' )
43
44
abi = abi .replace ("True" , "true" )
@@ -48,10 +49,11 @@ def _build_contract_data(compilation_unit: "CompilationUnit") -> Dict:
48
49
"srcmap" : ";" .join (source_unit .srcmap_init (contract_name )),
49
50
"srcmap-runtime" : ";" .join (source_unit .srcmap_runtime (contract_name )),
50
51
"abi" : abi ,
51
- "bin" : source_unit .bytecode_init (contract_name , libraries ),
52
- "bin-runtime" : source_unit .bytecode_runtime (contract_name , libraries ),
52
+ "bin" : source_unit .bytecode_init (contract_name , libraries_to_update ),
53
+ "bin-runtime" : source_unit .bytecode_runtime (contract_name , libraries_to_update ),
53
54
"userdoc" : source_unit .natspec [contract_name ].userdoc .export (),
54
55
"devdoc" : source_unit .natspec [contract_name ].devdoc .export (),
56
+ "libraries" : dict (libraries ) if libraries else {},
55
57
}
56
58
return contracts
57
59
0 commit comments