mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Update bytecode output to cope with metadata-only compilability.
This commit is contained in:
parent
fcbb8ec51c
commit
19761a08fa
@ -10,15 +10,32 @@ report = open("report.txt", "wb")
|
|||||||
|
|
||||||
for optimize in [False, True]:
|
for optimize in [False, True]:
|
||||||
for f in sorted(glob.glob("*.sol")):
|
for f in sorted(glob.glob("*.sol")):
|
||||||
args = [solc, '--combined-json', 'bin,metadata', f]
|
sources = {}
|
||||||
|
sources[f] = {'content': open(f, 'r').read()}
|
||||||
|
input = {
|
||||||
|
'language': 'Solidity',
|
||||||
|
'sources': sources,
|
||||||
|
'settings': {
|
||||||
|
'optimizer': {
|
||||||
|
'enabled': optimize
|
||||||
|
},
|
||||||
|
'outputSelection': { '*': { '*': ['evm.bytecode.object', 'metadata'] } }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
args = [solc, '--standard-json']
|
||||||
if optimize:
|
if optimize:
|
||||||
args += ['--optimize']
|
args += ['--optimize']
|
||||||
proc = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
proc = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
(out, err) = proc.communicate()
|
(out, err) = proc.communicate(json.dumps(input))
|
||||||
try:
|
try:
|
||||||
result = json.loads(out.strip())
|
result = json.loads(out.strip())
|
||||||
for contractName in sorted(result['contracts'].keys()):
|
for filename in sorted(result['contracts'].keys()):
|
||||||
report.write(contractName + ' ' + result['contracts'][contractName]['bin'] + '\n')
|
for contractName in sorted(result['contracts'][filename].keys()):
|
||||||
report.write(contractName + ' ' + result['contracts'][contractName]['metadata'] + '\n')
|
contractData = result['contracts'][filename][contractName]
|
||||||
except:
|
if 'evm' in contractData and 'bytecode' in contractData['evm']:
|
||||||
|
report.write(filename + ':' + contractName + ' ' + contractData['evm']['bytecode']['object'] + '\n')
|
||||||
|
else:
|
||||||
|
report.write(filename + ':' + contractName + ' NO BYTECODE\n')
|
||||||
|
report.write(filename + ':' + contractName + ' ' + contractData['metadata'] + '\n')
|
||||||
|
except KeyError:
|
||||||
report.write(f + ": ERROR\n")
|
report.write(f + ": ERROR\n")
|
||||||
|
@ -88,8 +88,12 @@ for (var optimize of [false, true])
|
|||||||
{
|
{
|
||||||
for (var contractName in result['contracts'][filename])
|
for (var contractName in result['contracts'][filename])
|
||||||
{
|
{
|
||||||
console.log(filename + ':' + contractName + ' ' + result['contracts'][filename][contractName].evm.bytecode.object)
|
var contractData = result['contracts'][filename][contractName];
|
||||||
console.log(filename + ':' + contractName + ' ' + result['contracts'][filename][contractName].metadata)
|
if (contractData.evm !== undefined && contractData.evm.bytecode !== undefined)
|
||||||
|
console.log(filename + ':' + contractName + ' ' + contractData.evm.bytecode.object)
|
||||||
|
else
|
||||||
|
console.log(filename + ':' + contractName + ' NO BYTECODE')
|
||||||
|
console.log(filename + ':' + contractName + ' ' + contractData.metadata)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user