Closed Netherdrake closed 6 years ago
Can confirm, with same populus
/solc
versions, on a freshly-created project (using populus init
).
On entry to post_process_compiled_contracts()
, in populus/utils/compile.py
, this is what's passed to the function:
({'name': 'Greeter', 'source_path': 'contracts/Greeter.sol'},)
With --logging DEBUG
(and a tiny modification to also print compilation_result
in SolcStandardJSONBackend.get_compiled_contracts(...)
:
Found 1 project source files: contracts/Greeter.sol
Found 0 test source files:
Import remappings: []
Compiler Settings: {'optimize': True, 'output_values': ['abi', 'bin', 'bin-runtime', 'metadata']}
std_input sections: dict_keys(['language', 'sources', 'settings'])
Input Description JSON settings are: {'remappings': []}
Command line options are: {}
Compilation result: {'contracts': {'contracts/Greeter.sol': {'Greeter': {'evm': {}}}}, 'sources': {'contracts/Greeter.sol': {'id': 0}}}
Traceback (most recent call last):
<seemingly same as in OP>
Luckily, I still have a package for solc
v0.4.18
. Output from that looks the same, except compilation_result
is populated (as expected).
Therefore, the bug is likely purely due to upstream changes: solc
expects something new that's not provided (yet).
0.4.19 release notes say:
Standard JSON: Support the
outputSelection
field for selective compilation of target artifacts.
Docs on which in turn provide hints on what's missing. (Not linking specific doc version, since there seems to be misconfiguration there - they're not available.)
Testing fix ATM - hope it's backward-compatible, otherwise not a no-brainer...
0.4.18
0.4.19