# Sort line_number_map out = OrderedDict() keylist = line_number_map.keys() for k in sorted(keylist): out[k] = line_number_map[k] return out output_formats_map = { 'abi': lambda code, contract_name, interface_codes: mk_full_signature(code, interface_codes=interface_codes), 'bytecode': lambda code, contract_name, interface_codes: '0x' + __compile(code, interface_codes=interface_codes).hex(), 'bytecode_runtime': lambda code, contract_name, interface_codes: '0x' + __compile(code, bytecode_runtime=True, interface_codes=interface_codes).hex(), 'ir': lambda code, contract_name, interface_codes: optimizer.optimize(parser.parse_to_lll(code, interface_codes=interface_codes)), 'asm': lambda code, contract_name, interface_codes: get_asm(compile_lll.compile_to_assembly(optimizer.optimize(parser.parse_to_lll(code, interface_codes=interface_codes)))), 'source_map': lambda code, contract_name, interface_codes: get_source_map(code, contract_name, interface_codes=interface_codes), 'method_identifiers': lambda code, contract_name, interface_codes: parser.mk_method_identifiers(code, interface_codes=interface_codes), 'interface': lambda code, contract_name, interface_codes: extract_interface_str(code, contract_name, interface_codes=interface_codes), 'external_interface': lambda code, contract_name, interface_codes: extract_external_interface(code, contract_name, interface_codes=interface_codes), } def compile_codes(codes, output_formats=['bytecode'], output_type='list', exc_handler=None, interface_codes=None): out = OrderedDict() for contract_name, code in codes.items(): for output_format in output_formats: if output_format not in output_formats_map: raise Exception('Unsupported format type %s.' % output_format) try: out.setdefault(contract_name, {})[output_format] = output_formats_map[output_format](
'abi': lambda code: mk_full_signature(code), 'bytecode': lambda code: '0x' + __compile(code).hex(), 'bytecode_runtime': lambda code: '0x' + __compile(code, bytecode_runtime=True).hex(), 'ir': lambda code: optimizer.optimize(parser.parse_to_lll(code)), 'asm': lambda code: get_asm( compile_lll.compile_to_assembly( optimizer.optimize(parser.parse_to_lll(code)))), 'source_map': get_source_map, 'method_identifiers': lambda code: parser.mk_method_identifiers(code) } def compile_codes(codes, output_formats=['bytecode'], output_type='list', exc_handler=None): out = OrderedDict() for contract_name, code in codes.items(): for output_format in output_formats: if output_format not in output_formats_map: raise Exception('Unsupported format type %s.' % output_format) try:
def _mk_method_identifiers_output(code, contract_name, interface_codes): return parser.mk_method_identifiers(code, interface_codes=interface_codes)