|
| void | merge_multi_files () |
| void | topological_sort (std::unordered_map< std::string, std::unordered_set< std::string > > &graph, std::unordered_map< std::string, nlohmann::json > &path_to_json, nlohmann::json &sorted_files) |
| bool | contract_precheck () |
| bool | check_sol_ver () |
| bool | populate_auxiliary_vars () |
| bool | populate_function_signature (nlohmann::json &json, const std::string &cname) |
| | initialize the function signature set.
|
| bool | populate_low_level_functions (const std::string &cname) |
| bool | convert_ast_nodes (const nlohmann::json &contract_def, const std::string &cname) |
| void | get_cname_expr (const std::string &cname, exprt &new_expr) |
| bool | get_contract_definition (const std::string &c_name) |
| bool | get_non_function_decl (const nlohmann::json &ast_node, exprt &new_expr) |
| bool | get_function_decl (const nlohmann::json &ast_node) |
| bool | get_var_decl (const nlohmann::json &ast_node, const nlohmann::json &initialValue, exprt &new_expr) |
| bool | get_var_decl (const nlohmann::json &ast_node, exprt &new_expr) |
| bool | get_function_definition (const nlohmann::json &ast_node) |
| bool | add_reentry_check (const std::string &c_name, const locationt &loc, exprt &body_exprt) |
| bool | get_func_modifier (const nlohmann::json &ast_node, const std::string &c_name, const std::string &f_name, const std::string &f_id, const bool add_reentry, exprt &body_exprt) |
| bool | has_modifier_invocation (const nlohmann::json &ast_node) |
| bool | insert_modifier_json (const nlohmann::json &ast_node, const std::string &cname, const std::string &fname, nlohmann::json *&modifier_def) |
| bool | delete_modifier_json (const std::string &cname, const std::string &fname, nlohmann::json *&modifier_def) |
| void | get_modifier_function_name (const std::string &cname, const std::string &mod_name, const std::string &func_name, std::string &name, std::string &id) |
| bool | get_function_params (const nlohmann::json &pd, const std::string &cname, exprt ¶m) |
| void | get_function_this_pointer_param (const std::string &contract_name, const std::string &ctor_id, const std::string &debug_modulename, const locationt &location_begin, code_typet &type) |
| bool | get_unbound_funccall (const std::string contractName, code_function_callt &call) |
| void | get_static_contract_instance_name (const std::string c_name, std::string &name, std::string &id) |
| void | add_static_contract_instance (const std::string c_name) |
| void | get_static_contract_instance_ref (const std::string &c_name, exprt &new_expr) |
| void | get_inherit_static_contract_instance_name (const std::string bs_c_name, const std::string c_name, std::string &name, std::string &id) |
| void | get_inherit_static_contract_instance (const std::string bs_c_name, const std::string c_name, const nlohmann::json &args_list, symbolt &sym) |
| void | get_inherit_ctor_definition (const std::string c_name, exprt &new_expr) |
| void | get_inherit_ctor_definition_name (const std::string c_name, std::string &name, std::string &id) |
| void | get_contract_mutex_name (const std::string c_name, std::string &name, std::string &id) |
| void | get_contract_mutex_expr (const std::string c_name, const exprt &this_expr, exprt &expr) |
| bool | get_high_level_call_wrapper (const std::string c_name, const exprt &this_expr, exprt &front_block, exprt &back_block) |
| bool | is_sol_builin_symbol (const std::string &cname, const std::string &name) |
| nlohmann::json | reorder_arguments (const nlohmann::json &expr, const nlohmann::json &callee_expr_json) |
| bool | get_noncontract_defition (nlohmann::json &ast_node) |
| bool | get_noncontract_decl_ref (const nlohmann::json &ast_node, exprt &new_expr) |
| bool | get_struct_class (const nlohmann::json &ast_node) |
| void | add_enum_member_val (nlohmann::json &ast_node) |
| bool | get_error_definition (const nlohmann::json &ast_node) |
| void | add_empty_body_node (nlohmann::json &ast_node) |
| void | merge_inheritance_ast (const std::string &c_name, nlohmann::json &c_node, std::set< std::string > &merged_list) |
| void | add_inherit_label (nlohmann::json &node, const std::string &cname) |
| bool | get_constructor (const nlohmann::json &ast_node, const std::string &contract_name) |
| bool | add_implicit_constructor (const std::string &contract_name) |
| bool | get_implicit_ctor_ref (const std::string &contract_name, const bool is_object, exprt &new_expr) |
| bool | get_instantiation_ctor_call (const std::string &contract_name, exprt &new_expr) |
| void | move_to_initializer (const exprt &expr) |
| bool | move_initializer_to_ctor (const nlohmann::json *based_contracts, const nlohmann::json ¤t_contract, const std::string contract_name) |
| bool | move_initializer_to_ctor (const nlohmann::json *based_contracts, const nlohmann::json ¤t_contract, const std::string contract_name, bool is_aux_ctor) |
| bool | move_initializer_to_main (codet &func_body) |
| bool | move_inheritance_to_ctor (const nlohmann::json *based_contracts, const std::string contract_name, std::string ctor_id, symbolt &sym) |
| void | move_to_front_block (const exprt &expr) |
| void | move_to_back_block (const exprt &expr) |
| bool | get_struct_class_fields (const nlohmann::json &ast_node, struct_typet &type) |
| bool | get_struct_class_method (const nlohmann::json &ast_node, struct_typet &type) |
| bool | get_access_from_decl (const nlohmann::json &ast_node, struct_typet::componentt &comp) |
| bool | get_block (const nlohmann::json &expr, exprt &new_expr) |
| bool | get_statement (const nlohmann::json &block, exprt &new_expr) |
| bool | get_expr (const nlohmann::json &expr, exprt &new_expr) |
| bool | get_expr (const nlohmann::json &expr, const nlohmann::json &expr_common_type, exprt &new_expr) |
| | Populate the out parameter with the expression based on the solidity expression grammar.
|
| bool | get_init_expr (const nlohmann::json &init_value, const nlohmann::json &literal_type, const typet &dest_type, exprt &new_expr) |
| bool | get_decl_ref_expr (const nlohmann::json &expr, exprt &new_expr) |
| bool | get_literal_expr (const nlohmann::json &expr, const nlohmann::json &literal_type, exprt &new_expr) |
| bool | get_tuple_expr (const nlohmann::json &expr, const nlohmann::json &literal_type, exprt &new_expr) |
| bool | get_call_expr (const nlohmann::json &expr, const nlohmann::json &literal_type, exprt &new_expr) |
| bool | get_contract_member_call_expr (const nlohmann::json &expr, const nlohmann::json &literal_type, exprt &new_expr) |
| bool | get_index_access_expr (const nlohmann::json &expr, const nlohmann::json &literal_type, exprt &new_expr) |
| bool | get_index_range_access_expr (const nlohmann::json &expr, const nlohmann::json &literal_type, exprt &new_expr) |
| bool | get_new_object_expr (const nlohmann::json &expr, const nlohmann::json &literal_type, exprt &new_expr) |
| bool | get_binary_operator_expr (const nlohmann::json &expr, exprt &new_expr) |
| void | convert_operand_types (exprt &lhs, exprt &rhs, const typet &common_type, bool is_shift, const nlohmann::json &expr) |
| bool | get_compound_assign_expr (const nlohmann::json &expr, exprt &lhs, exprt &rhs, typet &common_type, exprt &new_expr) |
| bool | get_unary_operator_expr (const nlohmann::json &expr, const nlohmann::json &literal_type, exprt &new_expr) |
| bool | get_conditional_operator_expr (const nlohmann::json &expr, exprt &new_expr) |
| bool | get_cast_expr (const nlohmann::json &cast_expr, exprt &new_expr, const nlohmann::json literal_type=nullptr) |
| bool | get_var_decl_ref (const nlohmann::json &decl, const bool is_this_ptr, exprt &new_expr) |
| | This function can return expr with either id::symbol or id::member id::memebr can only be the case where this.xx @decl: declaration json node @is_this_ptr: whether we need to convert x => this.x @cname: based contract name.
|
| void | get_symbol_decl_ref (const std::string &sym_name, const std::string &sym_id, const typet &t, exprt &new_expr) |
| bool | get_func_decl_ref (const nlohmann::json &decl, exprt &new_expr) |
| bool | get_func_decl_this_ref (const nlohmann::json &decl, exprt &new_expr) |
| bool | get_func_decl_this_ref (const std::string contract_name, const std::string &func_id, exprt &new_expr) |
| bool | get_ctor_decl_this_ref (const nlohmann::json &caller, exprt &this_object) |
| bool | get_ctor_decl_this_ref (const std::string &c_name, exprt &this_object) |
| bool | get_enum_member_ref (const nlohmann::json &decl, exprt &new_expr) |
| bool | get_esbmc_builtin_ref (const nlohmann::json &decl, exprt &new_expr) |
| bool | get_type_description (const nlohmann::json &type_name, typet &new_type) |
| bool | get_type_description (const nlohmann::json &decl, const nlohmann::json &type_name, typet &new_type) |
| bool | get_func_decl_ref_type (const nlohmann::json &decl, typet &new_type) |
| bool | get_array_to_pointer_type (const nlohmann::json &decl, typet &new_type) |
| bool | get_elementary_type_name (const nlohmann::json &type_name, typet &new_type) |
| bool | get_parameter_list (const nlohmann::json &type_name, typet &new_type) |
| void | get_state_var_decl_name (const nlohmann::json &ast_node, const std::string &cname, std::string &name, std::string &id) |
| void | get_local_var_decl_name (const nlohmann::json &ast_node, const std::string &cname, std::string &name, std::string &id) |
| void | get_function_definition_name (const nlohmann::json &ast_node, std::string &name, std::string &id) |
| void | get_error_definition_name (const nlohmann::json &ast_node, std::string &name, std::string &id) |
| bool | get_var_decl_name (const nlohmann::json &decl, std::string &name, std::string &id) |
| bool | get_non_library_function_call (const nlohmann::json &decl_ref, const nlohmann::json &caller, side_effect_expr_function_callt &call) |
| | call to a non-library function: this.func(); // func(&this)
|
| bool | get_super_function_call (const nlohmann::json &member_access, const nlohmann::json &call_expr, exprt &new_expr) |
| std::string | find_contract_name_for_id (int func_id) |
| bool | get_ctor_call (const nlohmann::json &decl_ref, const nlohmann::json &epxr, side_effect_expr_function_callt &call) |
| bool | get_new_object_ctor_call (const nlohmann::json &ast_node, const bool is_object, exprt &new_expr) |
| bool | get_new_object_ctor_call (const std::string &contract_name, const nlohmann::json param_list, const bool is_object, exprt &new_expr) |
| void | get_current_contract_name (const nlohmann::json &ast_node, std::string &contract_name) |
| bool | get_library_function_call (const nlohmann::json &decl_ref, const nlohmann::json &caller, side_effect_expr_function_callt &call, bool skip_first_param=false) |
| bool | get_library_function_call (const exprt &func, const typet &t, const nlohmann::json &decl_ref, const nlohmann::json &caller, side_effect_expr_function_callt &call, bool skip_first_param=false) |
| void | get_library_function_call_no_args (const std::string &func_name, const std::string &func_id, const typet &t, const locationt &l, exprt &new_expr) |
| void | get_malloc_function_call (const locationt &loc, side_effect_expr_function_callt &_call) |
| void | get_calloc_function_call (const locationt &loc, side_effect_expr_function_callt &_call) |
| void | get_arrcpy_function_call (const locationt &loc, side_effect_expr_function_callt &calc_call) |
| void | get_str_assign_function_call (const locationt &loc, side_effect_expr_function_callt &_call) |
| void | get_memcpy_function_call (const locationt &loc, side_effect_expr_function_callt &_call) |
| bool | is_esbmc_library_function (const std::string &id) |
| bool | get_empty_array_ref (const nlohmann::json &ast_node, exprt &new_expr) |
| void | get_unique_name (const std::string &name_prefix, const std::string &id_prefix, std::string &aux_name, std::string &aux_id) |
| void | get_aux_array_name (std::string &aux_name, std::string &aux_id) |
| void | get_aux_array (const exprt &src_expr, const typet &sub_t, exprt &new_expr) |
| void | get_aux_var (std::string &aux_name, std::string &aux_id) |
| void | get_size_expr (const exprt &rhs, exprt &size_expr) |
| void | store_update_dyn_array (const exprt &dyn_arr, const exprt &size_expr, exprt &store_call) |
| bool | check_array_push_pop_length (const nlohmann::json &node) |
| | Recursively checks whether a Solidity AST node contains any usage of array-specific operations: push, pop, or length, excluding operations on the bytes type.
|
| bool | get_tuple_definition (const nlohmann::json &ast_node) |
| bool | get_tuple_instance (const nlohmann::json &ast_node, exprt &new_expr) |
| void | get_tuple_name (const nlohmann::json &ast_node, std::string &name, std::string &id) |
| bool | get_tuple_instance_name (const nlohmann::json &ast_node, std::string &name, std::string &id) |
| bool | get_tuple_function_ref (const nlohmann::json &ast_node, exprt &new_expr) |
| bool | get_tuple_member_call (const irep_idt instance_id, const exprt &comp, exprt &new_expr) |
| bool | construct_tuple_assigments (const nlohmann::json &ast_node, const exprt &lhs, const exprt &rhs) |
| bool | flatten_nested_tuple_assignment (const nlohmann::json &expr, const nlohmann::json &lhs_json, const nlohmann::json &rhs_json) |
| void | get_tuple_assignment (const nlohmann::json &expr, const exprt &lop, exprt rop) |
| void | get_tuple_function_call (const exprt &op) |
| void | get_llc_ret_tuple (symbolt &sym) |
| void | get_string_assignment (const exprt &lhs, const exprt &rhs, exprt &new_expr) |
| void | get_mapping_inf_arr_name (const std::string &cname, const std::string &name, std::string &arr_name, std::string &arr_id) |
| bool | is_mapping_set_lvalue (const nlohmann::json &json) |
| | @target: target index access child json return true if it's a mapping_set, including assign, assign+, tuple assign... otherwise return false, representing mapping_get
|
| bool | get_mapping_key_value_type (const nlohmann::json &map_node, typet &key_t, typet &value_t, SolidityGrammar::SolType &key_sol_type, SolidityGrammar::SolType &val_sol_type) |
| void | gen_mapping_key_typecast (const std::string &c_name, exprt &pos, const locationt &l, const typet &key_type) |
| void | xor_fold_key_to_64bit (exprt &key) |
| bool | get_new_mapping_index_access (const typet &value_t, SolidityGrammar::SolType val_sol_type, bool is_mapping_set, const exprt &array, const exprt &pos, const locationt &location, exprt &new_expr) |
| | index accesss could either be set or get: x[1] => map_uint_get(&m, 1) x[1] = 2 => map_uint_set(&x, 1, 2) @array: x @pos: 1 @is_mapping_set: true if it's a setValue, otherwise getValue
|
| void | get_mapping_struct_function (const typet &struct_t, std::string &struct_contract_name, const side_effect_expr_function_callt &gen_call, exprt &new_expr) |
| void | extract_new_contracts () |
| void | get_location_from_node (const nlohmann::json &ast_node, locationt &location) |
| void | get_start_location_from_stmt (const nlohmann::json &ast_node, locationt &location) |
| void | get_final_location_from_stmt (const nlohmann::json &ast_node, locationt &location) |
| unsigned int | get_line_number (const nlohmann::json &ast_node, bool final_position=false) |
| size_t | add_offset (const std::string &src, size_t start_position) |
| std::string | get_src_from_json (const nlohmann::json &ast_node) |
| symbolt * | move_symbol_to_context (symbolt &symbol) |
| bool | multi_transaction_verification (const std::string &contractName) |
| bool | multi_contract_verification_bound (std::set< std::string > &tgt_set) |
| bool | multi_contract_verification_unbound (std::set< std::string > &tgt_set) |
| bool | prepare_harness_entry_functions (const std::set< std::string > &cname_set, std::vector< const symbolt * > &entry_syms) |
| bool | register_harness_main (const std::string &sol_id, const codet &func_body) |
| void | reset_auxiliary_vars () |
| std::string | get_modulename_from_path (std::string path) |
| std::string | get_filename_from_path (std::string path) |
| void | convert_expression_to_code (exprt &expr) |
| bool | check_intrinsic_function (const nlohmann::json &ast_node) |
| nlohmann::json | make_implicit_cast_expr (const nlohmann::json &sub_expr, std::string cast_type) |
| nlohmann::json | make_return_type_from_typet (typet type) |
| nlohmann::json | make_pointee_type (const nlohmann::json &sub_expr) |
| nlohmann::json | make_array_elementary_type (const nlohmann::json &type_descrpt) |
| nlohmann::json | make_array_to_pointer_type (const nlohmann::json &type_descrpt) |
| std::string | get_array_size (const nlohmann::json &type_descrpt) |
| void | get_size_of_expr (const typet &elem_type, exprt &size_of_expr) |
| bool | is_dyn_array (const nlohmann::json &json_in) |
| bool | is_func_sig_cover (const std::string &derived, const std::string &base) |
| bool | is_var_getter_matched (const std::string &cname, const std::string &tname, const typet &ttype) |
| void | get_default_symbol (symbolt &symbol, std::string module_name, typet type, std::string name, std::string id, locationt location) |
| bool | get_constant_value (const int ref_id, std::string &value) |
| bool | get_array_pointer_type (const nlohmann::json &decl, const typet &base_type, typet &new_type) |
| bool | get_ctor_call_id (const std::string &contract_name, std::string &ctor_id) |
| std::string | get_explicit_ctor_call_id (const std::string &contract_name) |
| std::string | get_implict_ctor_call_id (const std::string &contract_name) |
| bool | get_sol_builtin_ref (const nlohmann::json expr, exprt &new_expr) |
| void | get_temporary_object (exprt &call, exprt &new_expr) |
| bool | get_unbound_function (const std::string &c_name, symbolt &sym) |
| bool | get_unbound_expr (const nlohmann::json expr, const std::string &cname, exprt &new_expr) |
| void | convert_unboundcall_nondet (exprt &new_expr, const typet common_type, const locationt &l) |
| bool | add_auxiliary_members (const nlohmann::json &json, const std::string contract_name) |
| void | get_builtin_symbol (const std::string name, const std::string id, const typet t, const locationt &l, const exprt &val, const std::string c_name) |
| void | move_builtin_to_contract (const std::string cname, const exprt &sym, bool is_method) |
| void | move_builtin_to_contract (const std::string cname, const exprt &sym, const std::string &access, bool is_method) |
| const nlohmann::json & | get_func_decl_ref (const std::string &c_name, const std::string &f_name) |
| void | get_builtin_property_expr (const std::string &cname, const std::string &name, const exprt &base, const locationt &loc, exprt &new_expr) |
| void | get_aux_property_function (const std::string &cname, const exprt &addr, const typet &return_t, const locationt &loc, const std::string &property_name, exprt &new_expr) |
| void | get_addr_expr (const std::string &cname, const exprt &base, exprt &new_expr) |
| void | get_new_object (const typet &t, exprt &this_object) |
| | symbol
|
| bool | get_high_level_member_access (const nlohmann::json &expr, const nlohmann::json &literal_type, const exprt &base, const exprt &member, const exprt &_mem_call, const bool is_func_call, exprt &new_expr) |
| | Conversion: constructor() { this->_ESBMC_bind_cname = get_nondet_cname(); // unless we have a new Base(), then = Base; }.
|
| bool | get_high_level_member_access (const nlohmann::json &expr, const exprt &base, const exprt &member, const exprt &_mem_call, const bool is_func_call, exprt &new_expr) |
| bool | get_bound_low_level_call (const nlohmann::json &expr, const nlohmann::json &literal_type, const std::string &mem_name, const exprt &base, exprt &new_expr) |
| | Resolve a low-level call (.call/.send/.transfer/.delegatecall/.staticcall) in bound mode by finding the enclosing FunctionCall AST node, extracting arguments, and dispatching to get_low_level_member_accsss.
|
| bool | get_low_level_member_accsss (const nlohmann::json &expr, const nlohmann::json &options, const std::string mem_name, const exprt &base, const exprt &arg, exprt &new_expr) |
| | @options: val
|
| bool | has_callable_func (const std::string &cname) |
| bool | has_target_function (const std::string &cname, const std::string func_name) |
| func_sig | get_target_function (const std::string &cname, const std::string &func_name) |
| bool | get_call_definition (const std::string &cname, exprt &new_expr) |
| bool | get_call_value_definition (const std::string &cname, exprt &new_expr) |
| bool | try_get_signature_dispatched_call (const nlohmann::json &expr, const nlohmann::json &func_call, const exprt &base, exprt &new_expr) |
| bool | try_get_delegate_shadow_call (const nlohmann::json &expr, const nlohmann::json &func_call, const exprt &base, exprt &new_expr) |
| bool | validate_delegate_shadow_compatible (const std::string &caller_cname, const nlohmann::json &target_body) |
| void | rewrite_returns_for_delegate_shadow (exprt &node, const exprt &ret_lvalue, const std::string &end_label) |
| bool | try_inline_delegate_shadow_helper_call (const nlohmann::json &call_expr, const nlohmann::json &fdecl, exprt &new_expr) |
| bool | extract_abi_encode_signature (const nlohmann::json &payload, std::string &sig_literal, std::vector< const nlohmann::json * > &args_out) |
| std::string | build_canonical_signature (const nlohmann::json &func_def) |
| const nlohmann::json & | find_function_by_signature (const std::string &cname, const std::string &target_sig) |
| bool | get_typed_call_definition (const std::string &caller_cname, const std::string &target_sig, const std::vector< exprt > &arg_exprs, symbolt *&out_sym) |
| bool | get_transfer_definition (const std::string &cname, exprt &new_expr) |
| bool | get_send_definition (const std::string &cname, exprt &new_expr) |
| bool | get_staticcall_definition (const std::string &cname, exprt &new_expr) |
| bool | get_delegatecall_definition (const std::string &cname, exprt &new_expr) |
| bool | model_transaction (const nlohmann::json &expr, const exprt &this_expr, const exprt &base, const exprt &value, const locationt &loc, exprt &front_block, exprt &back_block) |
| | e.g.
|
| bool | get_bind_cname_expr (const nlohmann::json &json, exprt &bind_cname_expr) |
| void | get_bind_cname_func_name (const std::string &cname, std::string &fname, std::string &fid) |
| void | get_nondet_expr (const typet &t, exprt &new_expr) |
| bool | assign_nondet_contract_name (const std::string &_cname, exprt &new_expr) |
| bool | assign_param_nondet (const nlohmann::json &decl_ref, side_effect_expr_function_callt &call) |
| bool | get_base_contract_name (const exprt &base, std::string &cname) |
| bool | convert_integer_literal (const nlohmann::json &integer_literal, std::string the_value, exprt &dest) |
| bool | convert_bool_literal (const nlohmann::json &bool_literal, std::string the_value, exprt &dest) |
| bool | convert_string_literal (std::string the_value, exprt &dest) |
| | Converts the string literal to a string_constt.
|
| void | convert_type_expr (const namespacet &ns, exprt &src_expr, const typet &dest_type, const nlohmann::json &expr) |
| void | convert_type_expr (const namespacet &ns, exprt &src_expr, const exprt &dest_expr, const nlohmann::json &expr) |
| bool | convert_hex_literal (std::string the_value, exprt &dest, const int n=256) |
| | convert hex-string to uint constant
: the bit width, default 256 (unsignedbv_typet(256))
|
| bool | is_byte_type (const typet &t) |
| bool | is_bytes_type (const typet &t) |
| bool | is_bytesN_type (const typet &t) |
| exprt | make_aux_var (exprt &val, const locationt &location) |
| void | get_bytesN_size (const exprt &src_expr, exprt &len_expr) |
| bool | has_contract_bytes (const nlohmann::json &json) |
| bool | get_dynamic_pool (const std::string &c_name, exprt &pool) |
| bool | get_dynamic_pool (const nlohmann::json &expr, exprt &pool) |
| bool | should_treat_as_new (const std::string &contract_name) const |