alpharush 1 year ago committed by GitHub
parent c04e860db3
commit dded959beb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 15
      slither/printers/guidance/echidna.py

@ -138,12 +138,17 @@ def _extract_assert(contracts: List[Contract]) -> Dict[str, Dict[str, List[Dict]
""" """
ret: Dict[str, Dict[str, List[Dict]]] = {} ret: Dict[str, Dict[str, List[Dict]]] = {}
for contract in contracts: for contract in contracts:
functions_using_assert: Dict[str, List[Dict]] = defaultdict(list) functions_using_assert = [] # Dict[str, List[Dict]] = defaultdict(list)
for f in contract.functions_entry_points: for f in contract.functions_entry_points:
for node in f.all_nodes(): for v in f.all_solidity_calls():
if SolidityFunction("assert(bool)") in node.solidity_calls and node.source_mapping: if v == SolidityFunction("assert(bool)"):
func_name = _get_name(f) functions_using_assert.append(_get_name(f))
functions_using_assert[func_name].append(node.source_mapping.to_json()) break
# Revert https://github.com/crytic/slither/pull/2105 until format is supported by echidna.
# for node in f.all_nodes():
# if SolidityFunction("assert(bool)") in node.solidity_calls and node.source_mapping:
# func_name = _get_name(f)
# functions_using_assert[func_name].append(node.source_mapping.to_json())
if functions_using_assert: if functions_using_assert:
ret[contract.name] = functions_using_assert ret[contract.name] = functions_using_assert
return ret return ret

Loading…
Cancel
Save