Merge pull request #819 from crytic/dev-checklist

Improve checklist
pull/825/head^2
Feist Josselin 4 years ago committed by GitHub
commit 6362982d8b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 22
      slither/utils/command_line.py
  2. 6
      slither/utils/output.py
  3. 270
      tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol.0.4.25.ABIEncoderV2Array.json
  4. 2
      tests/detectors/arbitrary-send/arbitrary_send-0.5.1.sol.0.5.1.ArbitrarySend.json
  5. 2
      tests/detectors/arbitrary-send/arbitrary_send.sol.0.4.25.ArbitrarySend.json
  6. 6
      tests/detectors/array-by-reference/array_by_reference.sol.0.4.25.ArrayByReference.json
  7. 1
      tests/detectors/assembly/inline_assembly_contract-0.5.1.sol.0.5.1.Assembly.json
  8. 1
      tests/detectors/assembly/inline_assembly_contract.sol.0.4.25.Assembly.json
  9. 2
      tests/detectors/assembly/inline_assembly_library-0.5.1.sol.0.5.1.Assembly.json
  10. 2
      tests/detectors/assembly/inline_assembly_library.sol.0.4.25.Assembly.json
  11. 3
      tests/detectors/assert-state-change/assert_state_change.sol.0.5.8.AssertStateChange.json
  12. 1
      tests/detectors/backdoor/backdoor.sol.0.4.25.Backdoor.json
  13. 1
      tests/detectors/backdoor/backdoor.sol.0.4.25.Suicidal.json
  14. 1
      tests/detectors/backdoor/backdoor.sol.0.5.1.Backdoor.json
  15. 1
      tests/detectors/backdoor/backdoor.sol.0.5.1.Suicidal.json
  16. 1
      tests/detectors/boolean-constant-equality/boolean-constant-equality.sol.0.4.25.BooleanEquality.json
  17. 1
      tests/detectors/boolean-constant-misuse/boolean-constant-misuse.sol.0.6.0.BooleanConstantMisuse.json
  18. 1
      tests/detectors/calls-loop/multiple_calls_in_loop.sol.0.4.25.MultipleCallsInLoop.json
  19. 6
      tests/detectors/constable-states/const_state_variables.sol.0.4.25.ConstCandidateStateVars.json
  20. 6
      tests/detectors/constable-states/const_state_variables.sol.0.5.1.ConstCandidateStateVars.json
  21. 1
      tests/detectors/constant/constant.sol.0.4.25.ConstantFunctionsAsm.json
  22. 2
      tests/detectors/constant/constant.sol.0.4.25.ConstantFunctionsState.json
  23. 53
      tests/detectors/controlled-array-length/array_length_assignment.sol.0.4.25.ArrayLengthAssignment.json
  24. 2
      tests/detectors/controlled-delegatecall/controlled_delegatecall.sol.0.4.25.ControlledDelegateCall.json
  25. 2
      tests/detectors/controlled-delegatecall/controlled_delegatecall.sol.0.5.1.ControlledDelegateCall.json
  26. 1
      tests/detectors/costly-loop/multiple_costly_operations_in_loop.sol.0.4.25.CostlyOperationsInLoop.json
  27. 4
      tests/detectors/erc20-indexed/erc20_indexed.sol.0.4.25.UnindexedERC20EventParameters.json
  28. 6
      tests/detectors/erc20-interface/incorrect_erc20_interface.sol.0.4.25.IncorrectERC20InterfaceDetection.json
  29. 10
      tests/detectors/erc721-interface/incorrect_erc721_interface.sol.0.4.25.IncorrectERC721InterfaceDetection.json
  30. 2
      tests/detectors/events-maths/missing_events_arithmetic.sol.0.5.12.MissingEventsArithmetic.json
  31. 5
      tests/detectors/external-function/external_function.sol.0.4.25.ExternalFunction.json
  32. 5
      tests/detectors/external-function/external_function.sol.0.5.1.ExternalFunction.json
  33. 5
      tests/detectors/function-init-state/function_init_state_variables.sol.0.4.25.FunctionInitializedState.json
  34. 12
      tests/detectors/incorrect-equality/incorrect_equality.sol.0.5.1.IncorrectStrictEquality.json
  35. 3
      tests/detectors/incorrect-modifier/modifier_default.sol.0.4.25.ModifierDefaultDetection.json
  36. 4
      tests/detectors/incorrect-unary/invalid_unary_expression.sol.0.4.25.IncorrectUnaryExpressionDetection.json
  37. 1
      tests/detectors/locked-ether/locked_ether-0.5.1.sol.0.5.1.LockedEther.json
  38. 1
      tests/detectors/locked-ether/locked_ether.sol.0.4.25.LockedEther.json
  39. 1
      tests/detectors/low-level-calls/low_level_calls.sol.0.4.25.LowLevelCalls.json
  40. 1
      tests/detectors/low-level-calls/low_level_calls.sol.0.5.1.LowLevelCalls.json
  41. 2
      tests/detectors/mapping-deletion/MappingDeletion.sol.0.4.25.MappingDeletionDetection.json
  42. 5
      tests/detectors/missing-zero-check/missing_zero_address_validation.sol.0.5.12.MissingZeroAddressValidation.json
  43. 12
      tests/detectors/naming-convention/naming_convention.sol.0.4.25.NamingConvention.json
  44. 12
      tests/detectors/naming-convention/naming_convention.sol.0.5.1.NamingConvention.json
  45. 1
      tests/detectors/naming-convention/naming_convention_ignore.sol.0.4.25.NamingConvention.json
  46. 1
      tests/detectors/pragma/pragma.0.4.24.sol.0.4.25.ConstantPragma.json
  47. 1
      tests/detectors/public-mappings-nested/public_mappings_nested.sol.0.4.25.PublicMappingNested.json
  48. 6
      tests/detectors/redundant-statements/redundant_statements.sol.0.4.25.RedundantStatements.json
  49. 2
      tests/detectors/reentrancy-before-write/reentrancy-write.sol.0.4.26.ReentrancyReadBeforeWritten.json
  50. 6
      tests/detectors/reentrancy-benign/reentrancy-benign.sol.0.4.26.ReentrancyBenign.json
  51. 2
      tests/detectors/reentrancy-eth/reentrancy-0.5.1.sol.0.5.1.ReentrancyEth.json
  52. 2
      tests/detectors/reentrancy-eth/reentrancy.sol.0.4.25.ReentrancyEth.json
  53. 1
      tests/detectors/reentrancy-eth/reentrancy_indirect.sol.0.4.25.ReentrancyEth.json
  54. 1
      tests/detectors/reentrancy-events/reentrancy-0.5.1-events.sol.0.5.1.ReentrancyEvent.json
  55. 8
      tests/detectors/reused-constructor/reused_base_constructor.sol.0.4.25.ReusedBaseConstructor.json
  56. 1
      tests/detectors/rtlo/right_to_left_override.sol.0.4.25.RightToLeftOverride.json
  57. 1
      tests/detectors/shadowing-abstract/shadowing_abstract.sol.0.4.25.ShadowingAbstractDetection.json
  58. 13
      tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol.0.4.25.BuiltinSymbolShadowing.json
  59. 5
      tests/detectors/shadowing-local/shadowing_local_variable.sol.0.4.25.LocalShadowing.json
  60. 1
      tests/detectors/shadowing-state/shadowing_state_variable.sol.0.4.25.StateShadowing.json
  61. 2
      tests/detectors/solc-version/old_solc.sol.0.4.21.IncorrectSolc.json
  62. 3
      tests/detectors/solc-version/solc_version_incorrect.sol.0.4.25.IncorrectSolc.json
  63. 3
      tests/detectors/solc-version/solc_version_incorrect_05.sol.0.5.7.IncorrectSolc.json
  64. 90
      tests/detectors/storage-array/storage_signed_integer_array.sol.0.5.8.StorageSignedIntegerArray.json
  65. 3
      tests/detectors/timestamp/timestamp.sol.0.4.25.Timestamp.json
  66. 3
      tests/detectors/timestamp/timestamp.sol.0.5.1.Timestamp.json
  67. 5
      tests/detectors/too-many-digits/too_many_digits.sol.0.5.1.TooManyDigits.json
  68. 2
      tests/detectors/tx-origin/tx_origin-0.5.1.sol.0.5.1.TxOrigin.json
  69. 2
      tests/detectors/tx-origin/tx_origin.sol.0.4.25.TxOrigin.json
  70. 1
      tests/detectors/unchecked-lowlevel/unchecked_lowlevel-0.5.1.sol.0.5.1.UncheckedLowLevel.json
  71. 1
      tests/detectors/unchecked-lowlevel/unchecked_lowlevel.sol.0.4.25.UncheckedLowLevel.json
  72. 1
      tests/detectors/unchecked-send/unchecked_send-0.5.1.sol.0.5.1.UncheckedSend.json
  73. 2
      tests/detectors/unchecked-transfer/unused_return_transfers.sol.0.7.6.UncheckedTransfer.json
  74. 4
      tests/detectors/unimplemented-functions/unimplemented.sol.0.4.25.UnimplementedFunctionDetection.json
  75. 3
      tests/detectors/uninitialized-fptr-cst/uninitialized_function_ptr_constructor.sol.0.5.8.UninitializedFunctionPtrsConstructor.json
  76. 1
      tests/detectors/uninitialized-local/uninitialized_local_variable.sol.0.4.25.UninitializedLocalVars.json
  77. 4
      tests/detectors/uninitialized-state/uninitialized-0.5.1.sol.0.5.1.UninitializedStateVarsDetection.json
  78. 4
      tests/detectors/uninitialized-state/uninitialized.sol.0.4.25.UninitializedStateVarsDetection.json
  79. 1
      tests/detectors/uninitialized-storage/uninitialized_storage_pointer.sol.0.4.25.UninitializedStorageVars.json
  80. 1
      tests/detectors/unprotected-upgrade/Buggy.sol.0.6.12.UnprotectedUpgradeable.json
  81. 1
      tests/detectors/unused-return/unused_return-sol7.sol.0.7.6.UnusedReturnValues.json
  82. 2
      tests/detectors/unused-return/unused_return.sol.0.4.25.UnusedReturnValues.json
  83. 2
      tests/detectors/unused-return/unused_return.sol.0.5.1.UnusedReturnValues.json
  84. 4
      tests/detectors/unused-state/unused_state.sol.0.4.25.UnusedStateVars.json
  85. 4
      tests/detectors/unused-state/unused_state.sol.0.5.1.UnusedStateVars.json
  86. 5
      tests/detectors/variable-scope/predeclaration_usage_local.sol.0.4.25.PredeclarationUsageLocal.json
  87. 1
      tests/detectors/void-cst/void-cst.sol.0.5.1.VoidConstructor.json
  88. 4
      tests/detectors/weak-prng/bad_prng.sol.0.4.25.BadPRNG.json

@ -147,25 +147,27 @@ def convert_result_to_markdown(txt):
def output_results_to_markdown(all_results):
checks = defaultdict(list)
info = defaultdict(dict)
for results in all_results:
checks[results["check"]].append(results["description"])
checks[results["check"]].append(results)
info[results["check"]] = {"impact": results["impact"], "confidence": results["confidence"]}
print("Summary")
for check in checks:
print(f" - [{check}](#{check}) ({len(checks[check])} results)")
counter = 0
for (check, results) in checks.items():
print(f"## {check}")
print(
"""
| Analyzed | Description |
|----------------|-----------|"""
)
print(f'Impact: {info[check]["impact"]}')
print(f'Confidence: {info[check]["confidence"]}')
for result in results:
result_markdown = convert_result_to_markdown(result)
print(
f"| <ul><li>[ ] TP</li><li>[ ] FP</li><li>[ ] Unknown</li></ul> | {result_markdown}"
)
print(" - [ ] ID-" + f"{counter}")
counter = counter + 1
print(result["markdown"])
if result["first_markdown_element"]:
print(result["first_markdown_element"])
print("\n")
def output_wiki(detector_classes, filter_wiki):

@ -236,6 +236,8 @@ class Output:
self._data["elements"] = []
self._data["description"] = "".join(_convert_to_description(d) for d in info)
self._data["markdown"] = "".join(_convert_to_markdown(d, markdown_root) for d in info)
self._data["first_markdown_element"] = ""
self._markdown_root = markdown_root
id_txt = "".join(_convert_to_id(d) for d in info)
self._data["id"] = hashlib.sha3_256(id_txt.encode("utf-8")).hexdigest()
@ -250,6 +252,10 @@ class Output:
self._data["additional_fields"] = additional_fields
def add(self, add: SupportedOutput, additional_fields: Optional[Dict] = None):
if not self._data["first_markdown_element"]:
self._data["first_markdown_element"] = add.source_mapping_to_markdown(
self._markdown_root
)
if isinstance(add, Variable):
self.add_variable(add, additional_fields=additional_fields)
elif isinstance(add, Contract):

@ -4,19 +4,19 @@
"elements": [
{
"type": "function",
"name": "bad3",
"name": "bad4",
"source_mapping": {
"start": 1076,
"length": 154,
"start": 1296,
"length": 148,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"is_dependency": false,
"lines": [
39,
40,
41
44,
45,
46
],
"starting_column": 3,
"ending_column": 4
@ -136,42 +136,42 @@
"ending_column": 2
}
},
"signature": "bad3()"
"signature": "bad4()"
}
},
{
"type": "node",
"name": "b = abi.encode(s)",
"name": "event1_bad(bad_arr)",
"source_mapping": {
"start": 1195,
"length": 30,
"start": 1415,
"length": 24,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"is_dependency": false,
"lines": [
40
45
],
"starting_column": 5,
"ending_column": 35
"ending_column": 29
},
"type_specific_fields": {
"parent": {
"type": "function",
"name": "bad3",
"name": "bad4",
"source_mapping": {
"start": 1076,
"length": 154,
"start": 1296,
"length": 148,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"is_dependency": false,
"lines": [
39,
40,
41
44,
45,
46
],
"starting_column": 3,
"ending_column": 4
@ -291,15 +291,16 @@
"ending_column": 2
}
},
"signature": "bad3()"
"signature": "bad4()"
}
}
}
}
],
"description": "Function A.bad3() (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#39-41) trigger an abi encoding bug:\n\t- b = abi.encode(s) (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#40)\n",
"markdown": "Function [A.bad3()](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L39-L41) trigger an abi encoding bug:\n\t- [b = abi.encode(s)](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L40)\n",
"id": "2052add742fb8dc3fa2c9ce9f9adcf8515d049c55f39f32a405ef0f6c29b9c7f",
"description": "Function A.bad4() (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#44-46) trigger an abi encoding bug:\n\t- event1_bad(bad_arr) (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#45)\n",
"markdown": "Function [A.bad4()](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L44-L46) trigger an abi encoding bug:\n\t- [event1_bad(bad_arr)](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L45)\n",
"first_markdown_element": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L44-L46",
"id": "a0f90ebd7deb3917f2b20550e5edc7749a3459d075ada68b6422521732674f8c",
"check": "abiencoderv2-array",
"impact": "High",
"confidence": "High"
@ -308,19 +309,19 @@
"elements": [
{
"type": "function",
"name": "bad0",
"name": "bad2",
"source_mapping": {
"start": 540,
"length": 61,
"start": 852,
"length": 160,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"is_dependency": false,
"lines": [
21,
22,
23
34,
35,
36
],
"starting_column": 3,
"ending_column": 4
@ -440,42 +441,42 @@
"ending_column": 2
}
},
"signature": "bad0()"
"signature": "bad2()"
}
},
{
"type": "node",
"name": "this.bad0_external(bad_arr)",
"name": "b = abi.encode(bad_arr)",
"source_mapping": {
"start": 569,
"length": 27,
"start": 971,
"length": 36,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"is_dependency": false,
"lines": [
22
35
],
"starting_column": 5,
"ending_column": 32
"ending_column": 41
},
"type_specific_fields": {
"parent": {
"type": "function",
"name": "bad0",
"name": "bad2",
"source_mapping": {
"start": 540,
"length": 61,
"start": 852,
"length": 160,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"is_dependency": false,
"lines": [
21,
22,
23
34,
35,
36
],
"starting_column": 3,
"ending_column": 4
@ -595,15 +596,16 @@
"ending_column": 2
}
},
"signature": "bad0()"
"signature": "bad2()"
}
}
}
}
],
"description": "Function A.bad0() (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#21-23) trigger an abi encoding bug:\n\t- this.bad0_external(bad_arr) (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#22)\n",
"markdown": "Function [A.bad0()](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L21-L23) trigger an abi encoding bug:\n\t- [this.bad0_external(bad_arr)](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L22)\n",
"id": "42e7d1c56e5298ef4ddfcc69b4e6119d356b34740cde285337501b656b0d2e04",
"description": "Function A.bad2() (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#34-36) trigger an abi encoding bug:\n\t- b = abi.encode(bad_arr) (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#35)\n",
"markdown": "Function [A.bad2()](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L34-L36) trigger an abi encoding bug:\n\t- [b = abi.encode(bad_arr)](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L35)\n",
"first_markdown_element": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L34-L36",
"id": "767bd12bc81a7530972b0f2b069fb167efe0f2d6b6ec6d1b95aa39d1dd836a5d",
"check": "abiencoderv2-array",
"impact": "High",
"confidence": "High"
@ -612,19 +614,19 @@
"elements": [
{
"type": "function",
"name": "bad2",
"name": "bad0",
"source_mapping": {
"start": 852,
"length": 160,
"start": 540,
"length": 61,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"is_dependency": false,
"lines": [
34,
35,
36
21,
22,
23
],
"starting_column": 3,
"ending_column": 4
@ -744,42 +746,42 @@
"ending_column": 2
}
},
"signature": "bad2()"
"signature": "bad0()"
}
},
{
"type": "node",
"name": "b = abi.encode(bad_arr)",
"name": "this.bad0_external(bad_arr)",
"source_mapping": {
"start": 971,
"length": 36,
"start": 569,
"length": 27,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"is_dependency": false,
"lines": [
35
22
],
"starting_column": 5,
"ending_column": 41
"ending_column": 32
},
"type_specific_fields": {
"parent": {
"type": "function",
"name": "bad2",
"name": "bad0",
"source_mapping": {
"start": 852,
"length": 160,
"start": 540,
"length": 61,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"is_dependency": false,
"lines": [
34,
35,
36
21,
22,
23
],
"starting_column": 3,
"ending_column": 4
@ -899,15 +901,16 @@
"ending_column": 2
}
},
"signature": "bad2()"
"signature": "bad0()"
}
}
}
}
],
"description": "Function A.bad2() (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#34-36) trigger an abi encoding bug:\n\t- b = abi.encode(bad_arr) (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#35)\n",
"markdown": "Function [A.bad2()](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L34-L36) trigger an abi encoding bug:\n\t- [b = abi.encode(bad_arr)](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L35)\n",
"id": "767bd12bc81a7530972b0f2b069fb167efe0f2d6b6ec6d1b95aa39d1dd836a5d",
"description": "Function A.bad0() (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#21-23) trigger an abi encoding bug:\n\t- this.bad0_external(bad_arr) (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#22)\n",
"markdown": "Function [A.bad0()](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L21-L23) trigger an abi encoding bug:\n\t- [this.bad0_external(bad_arr)](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L22)\n",
"first_markdown_element": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L21-L23",
"id": "42e7d1c56e5298ef4ddfcc69b4e6119d356b34740cde285337501b656b0d2e04",
"check": "abiencoderv2-array",
"impact": "High",
"confidence": "High"
@ -916,19 +919,19 @@
"elements": [
{
"type": "function",
"name": "bad4",
"name": "bad3",
"source_mapping": {
"start": 1296,
"length": 148,
"start": 1076,
"length": 154,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"is_dependency": false,
"lines": [
44,
45,
46
39,
40,
41
],
"starting_column": 3,
"ending_column": 4
@ -1048,42 +1051,42 @@
"ending_column": 2
}
},
"signature": "bad4()"
"signature": "bad3()"
}
},
{
"type": "node",
"name": "event1_bad(bad_arr)",
"name": "b = abi.encode(s)",
"source_mapping": {
"start": 1415,
"length": 24,
"start": 1195,
"length": 30,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"is_dependency": false,
"lines": [
45
40
],
"starting_column": 5,
"ending_column": 29
"ending_column": 35
},
"type_specific_fields": {
"parent": {
"type": "function",
"name": "bad4",
"name": "bad3",
"source_mapping": {
"start": 1296,
"length": 148,
"start": 1076,
"length": 154,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"is_dependency": false,
"lines": [
44,
45,
46
39,
40,
41
],
"starting_column": 3,
"ending_column": 4
@ -1203,15 +1206,16 @@
"ending_column": 2
}
},
"signature": "bad4()"
"signature": "bad3()"
}
}
}
}
],
"description": "Function A.bad4() (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#44-46) trigger an abi encoding bug:\n\t- event1_bad(bad_arr) (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#45)\n",
"markdown": "Function [A.bad4()](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L44-L46) trigger an abi encoding bug:\n\t- [event1_bad(bad_arr)](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L45)\n",
"id": "a0f90ebd7deb3917f2b20550e5edc7749a3459d075ada68b6422521732674f8c",
"description": "Function A.bad3() (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#39-41) trigger an abi encoding bug:\n\t- b = abi.encode(s) (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#40)\n",
"markdown": "Function [A.bad3()](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L39-L41) trigger an abi encoding bug:\n\t- [b = abi.encode(s)](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L40)\n",
"first_markdown_element": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L39-L41",
"id": "2052add742fb8dc3fa2c9ce9f9adcf8515d049c55f39f32a405ef0f6c29b9c7f",
"check": "abiencoderv2-array",
"impact": "High",
"confidence": "High"
@ -1220,19 +1224,19 @@
"elements": [
{
"type": "function",
"name": "bad1",
"name": "bad5",
"source_mapping": {
"start": 726,
"length": 63,
"start": 1511,
"length": 142,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"is_dependency": false,
"lines": [
29,
30,
31
49,
50,
51
],
"starting_column": 3,
"ending_column": 4
@ -1352,42 +1356,42 @@
"ending_column": 2
}
},
"signature": "bad1(A.S[3])"
"signature": "bad5()"
}
},
{
"type": "node",
"name": "this.bad1_external(s)",
"name": "event2_bad(s)",
"source_mapping": {
"start": 763,
"length": 21,
"start": 1630,
"length": 18,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"is_dependency": false,
"lines": [
30
50
],
"starting_column": 5,
"ending_column": 26
"ending_column": 23
},
"type_specific_fields": {
"parent": {
"type": "function",
"name": "bad1",
"name": "bad5",
"source_mapping": {
"start": 726,
"length": 63,
"start": 1511,
"length": 142,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"is_dependency": false,
"lines": [
29,
30,
31
49,
50,
51
],
"starting_column": 3,
"ending_column": 4
@ -1507,15 +1511,16 @@
"ending_column": 2
}
},
"signature": "bad1(A.S[3])"
"signature": "bad5()"
}
}
}
}
],
"description": "Function A.bad1(A.S[3]) (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#29-31) trigger an abi encoding bug:\n\t- this.bad1_external(s) (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#30)\n",
"markdown": "Function [A.bad1(A.S[3])](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L29-L31) trigger an abi encoding bug:\n\t- [this.bad1_external(s)](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L30)\n",
"id": "b57e7fe9f889943ab7d2d9879a1b13f52d3ed64db56ae2f14cbea6e8dafcd70b",
"description": "Function A.bad5() (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#49-51) trigger an abi encoding bug:\n\t- event2_bad(s) (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#50)\n",
"markdown": "Function [A.bad5()](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L49-L51) trigger an abi encoding bug:\n\t- [event2_bad(s)](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L50)\n",
"first_markdown_element": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L49-L51",
"id": "1bb85eee97769e9220dcde2102945a4a66fb96f01f789049334828e9f002aef5",
"check": "abiencoderv2-array",
"impact": "High",
"confidence": "High"
@ -1524,19 +1529,19 @@
"elements": [
{
"type": "function",
"name": "bad5",
"name": "bad1",
"source_mapping": {
"start": 1511,
"length": 142,
"start": 726,
"length": 63,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"is_dependency": false,
"lines": [
49,
50,
51
29,
30,
31
],
"starting_column": 3,
"ending_column": 4
@ -1656,42 +1661,42 @@
"ending_column": 2
}
},
"signature": "bad5()"
"signature": "bad1(A.S[3])"
}
},
{
"type": "node",
"name": "event2_bad(s)",
"name": "this.bad1_external(s)",
"source_mapping": {
"start": 1630,
"length": 18,
"start": 763,
"length": 21,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"is_dependency": false,
"lines": [
50
30
],
"starting_column": 5,
"ending_column": 23
"ending_column": 26
},
"type_specific_fields": {
"parent": {
"type": "function",
"name": "bad5",
"name": "bad1",
"source_mapping": {
"start": 1511,
"length": 142,
"start": 726,
"length": 63,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol",
"is_dependency": false,
"lines": [
49,
50,
51
29,
30,
31
],
"starting_column": 3,
"ending_column": 4
@ -1811,15 +1816,16 @@
"ending_column": 2
}
},
"signature": "bad5()"
"signature": "bad1(A.S[3])"
}
}
}
}
],
"description": "Function A.bad5() (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#49-51) trigger an abi encoding bug:\n\t- event2_bad(s) (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#50)\n",
"markdown": "Function [A.bad5()](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L49-L51) trigger an abi encoding bug:\n\t- [event2_bad(s)](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L50)\n",
"id": "1bb85eee97769e9220dcde2102945a4a66fb96f01f789049334828e9f002aef5",
"description": "Function A.bad1(A.S[3]) (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#29-31) trigger an abi encoding bug:\n\t- this.bad1_external(s) (tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#30)\n",
"markdown": "Function [A.bad1(A.S[3])](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L29-L31) trigger an abi encoding bug:\n\t- [this.bad1_external(s)](tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L30)\n",
"first_markdown_element": "tests/detectors/abiencoderv2-array/storage_ABIEncoderV2_array.sol#L29-L31",
"id": "b57e7fe9f889943ab7d2d9879a1b13f52d3ed64db56ae2f14cbea6e8dafcd70b",
"check": "abiencoderv2-array",
"impact": "High",
"confidence": "High"

@ -187,6 +187,7 @@
],
"description": "Test.direct() (tests/detectors/arbitrary-send/arbitrary_send-0.5.1.sol#11-13) sends eth to arbitrary user\n\tDangerous calls:\n\t- msg.sender.send(address(this).balance) (tests/detectors/arbitrary-send/arbitrary_send-0.5.1.sol#12)\n",
"markdown": "[Test.direct()](tests/detectors/arbitrary-send/arbitrary_send-0.5.1.sol#L11-L13) sends eth to arbitrary user\n\tDangerous calls:\n\t- [msg.sender.send(address(this).balance)](tests/detectors/arbitrary-send/arbitrary_send-0.5.1.sol#L12)\n",
"first_markdown_element": "tests/detectors/arbitrary-send/arbitrary_send-0.5.1.sol#L11-L13",
"id": "f541c43a03086c95960bfcf05b8d4941008505120331df11a91d0187dc4640c5",
"check": "arbitrary-send",
"impact": "High",
@ -379,6 +380,7 @@
],
"description": "Test.indirect() (tests/detectors/arbitrary-send/arbitrary_send-0.5.1.sol#19-21) sends eth to arbitrary user\n\tDangerous calls:\n\t- destination.send(address(this).balance) (tests/detectors/arbitrary-send/arbitrary_send-0.5.1.sol#20)\n",
"markdown": "[Test.indirect()](tests/detectors/arbitrary-send/arbitrary_send-0.5.1.sol#L19-L21) sends eth to arbitrary user\n\tDangerous calls:\n\t- [destination.send(address(this).balance)](tests/detectors/arbitrary-send/arbitrary_send-0.5.1.sol#L20)\n",
"first_markdown_element": "tests/detectors/arbitrary-send/arbitrary_send-0.5.1.sol#L19-L21",
"id": "6399c3b0638ef3e8fb62de3d7ad760649d315b03ebdf5a11d2674970f12452d9",
"check": "arbitrary-send",
"impact": "High",

@ -187,6 +187,7 @@
],
"description": "Test.direct() (tests/detectors/arbitrary-send/arbitrary_send.sol#11-13) sends eth to arbitrary user\n\tDangerous calls:\n\t- msg.sender.send(address(this).balance) (tests/detectors/arbitrary-send/arbitrary_send.sol#12)\n",
"markdown": "[Test.direct()](tests/detectors/arbitrary-send/arbitrary_send.sol#L11-L13) sends eth to arbitrary user\n\tDangerous calls:\n\t- [msg.sender.send(address(this).balance)](tests/detectors/arbitrary-send/arbitrary_send.sol#L12)\n",
"first_markdown_element": "tests/detectors/arbitrary-send/arbitrary_send.sol#L11-L13",
"id": "62016ac9363a509bd815fc0bb31b326b235dad50d7771dea249037d40169138e",
"check": "arbitrary-send",
"impact": "High",
@ -379,6 +380,7 @@
],
"description": "Test.indirect() (tests/detectors/arbitrary-send/arbitrary_send.sol#19-21) sends eth to arbitrary user\n\tDangerous calls:\n\t- destination.send(address(this).balance) (tests/detectors/arbitrary-send/arbitrary_send.sol#20)\n",
"markdown": "[Test.indirect()](tests/detectors/arbitrary-send/arbitrary_send.sol#L19-L21) sends eth to arbitrary user\n\tDangerous calls:\n\t- [destination.send(address(this).balance)](tests/detectors/arbitrary-send/arbitrary_send.sol#L20)\n",
"first_markdown_element": "tests/detectors/arbitrary-send/arbitrary_send.sol#L19-L21",
"id": "62a25f56dfce54ce59cdf81a1821f2ea8a8eb7d12a6a794b9c4f09ba7f7bc543",
"check": "arbitrary-send",
"impact": "High",

@ -211,6 +211,7 @@
],
"description": "C.f() (tests/detectors/array-by-reference/array_by_reference.sol#4-8) passes array C.x (tests/detectors/array-by-reference/array_by_reference.sol#2)by reference to C.setByValue(uint256[1]) (tests/detectors/array-by-reference/array_by_reference.sol#21-23)which only takes arrays by value\n",
"markdown": "[C.f()](tests/detectors/array-by-reference/array_by_reference.sol#L4-L8) passes array [C.x](tests/detectors/array-by-reference/array_by_reference.sol#L2)by reference to [C.setByValue(uint256[1])](tests/detectors/array-by-reference/array_by_reference.sol#L21-L23)which only takes arrays by value\n",
"first_markdown_element": "tests/detectors/array-by-reference/array_by_reference.sol#L4-L8",
"id": "79a462bf06ae529ad099f2170100298da30766fcc06884e03436d2b53110d208",
"check": "array-by-reference",
"impact": "High",
@ -428,6 +429,7 @@
],
"description": "C.f() (tests/detectors/array-by-reference/array_by_reference.sol#4-8) passes array C.x (tests/detectors/array-by-reference/array_by_reference.sol#2)by reference to C.setByValueAndReturn(uint256[1]) (tests/detectors/array-by-reference/array_by_reference.sol#25-28)which only takes arrays by value\n",
"markdown": "[C.f()](tests/detectors/array-by-reference/array_by_reference.sol#L4-L8) passes array [C.x](tests/detectors/array-by-reference/array_by_reference.sol#L2)by reference to [C.setByValueAndReturn(uint256[1])](tests/detectors/array-by-reference/array_by_reference.sol#L25-L28)which only takes arrays by value\n",
"first_markdown_element": "tests/detectors/array-by-reference/array_by_reference.sol#L4-L8",
"id": "7f1eda9be40002affd2e8e31d172d3ee3374f37b1106118c79f4add7a133bbd0",
"check": "array-by-reference",
"impact": "High",
@ -671,6 +673,7 @@
],
"description": "C.g() (tests/detectors/array-by-reference/array_by_reference.sol#10-15) passes array C.g().y (tests/detectors/array-by-reference/array_by_reference.sol#11)by reference to C.setByValue(uint256[1]) (tests/detectors/array-by-reference/array_by_reference.sol#21-23)which only takes arrays by value\n",
"markdown": "[C.g()](tests/detectors/array-by-reference/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/detectors/array-by-reference/array_by_reference.sol#L11)by reference to [C.setByValue(uint256[1])](tests/detectors/array-by-reference/array_by_reference.sol#L21-L23)which only takes arrays by value\n",
"first_markdown_element": "tests/detectors/array-by-reference/array_by_reference.sol#L10-L15",
"id": "d039169712808e785bf2e53f322c1c6fcd6b93a0a0c17f1a701addd09ed83996",
"check": "array-by-reference",
"impact": "High",
@ -915,6 +918,7 @@
],
"description": "C.g() (tests/detectors/array-by-reference/array_by_reference.sol#10-15) passes array C.g().y (tests/detectors/array-by-reference/array_by_reference.sol#11)by reference to C.setByValueAndReturn(uint256[1]) (tests/detectors/array-by-reference/array_by_reference.sol#25-28)which only takes arrays by value\n",
"markdown": "[C.g()](tests/detectors/array-by-reference/array_by_reference.sol#L10-L15) passes array [C.g().y](tests/detectors/array-by-reference/array_by_reference.sol#L11)by reference to [C.setByValueAndReturn(uint256[1])](tests/detectors/array-by-reference/array_by_reference.sol#L25-L28)which only takes arrays by value\n",
"first_markdown_element": "tests/detectors/array-by-reference/array_by_reference.sol#L10-L15",
"id": "8655e8acd84a6e8152acd2d9730ea0dfdda0723e09b2dcbfdbbeb8da8bd04fa5",
"check": "array-by-reference",
"impact": "High",
@ -1119,6 +1123,7 @@
],
"description": "D.f() (tests/detectors/array-by-reference/array_by_reference.sol#42-48) passes array D.x (tests/detectors/array-by-reference/array_by_reference.sol#39)by reference to C.setByValue(uint256[1]) (tests/detectors/array-by-reference/array_by_reference.sol#21-23)which only takes arrays by value\n",
"markdown": "[D.f()](tests/detectors/array-by-reference/array_by_reference.sol#L42-L48) passes array [D.x](tests/detectors/array-by-reference/array_by_reference.sol#L39)by reference to [C.setByValue(uint256[1])](tests/detectors/array-by-reference/array_by_reference.sol#L21-L23)which only takes arrays by value\n",
"first_markdown_element": "tests/detectors/array-by-reference/array_by_reference.sol#L42-L48",
"id": "1520955a53c36e391abbaf648a91a5a12d432f0f4746b0a8187d0988a6a66846",
"check": "array-by-reference",
"impact": "High",
@ -1324,6 +1329,7 @@
],
"description": "D.f() (tests/detectors/array-by-reference/array_by_reference.sol#42-48) passes array D.x (tests/detectors/array-by-reference/array_by_reference.sol#39)by reference to C.setByValueAndReturn(uint256[1]) (tests/detectors/array-by-reference/array_by_reference.sol#25-28)which only takes arrays by value\n",
"markdown": "[D.f()](tests/detectors/array-by-reference/array_by_reference.sol#L42-L48) passes array [D.x](tests/detectors/array-by-reference/array_by_reference.sol#L39)by reference to [C.setByValueAndReturn(uint256[1])](tests/detectors/array-by-reference/array_by_reference.sol#L25-L28)which only takes arrays by value\n",
"first_markdown_element": "tests/detectors/array-by-reference/array_by_reference.sol#L42-L48",
"id": "019912974eabe7e8b1e67ca05b342e5106de13fa93fa0adf599a4259c425bd54",
"check": "array-by-reference",
"impact": "High",

@ -176,6 +176,7 @@
],
"description": "GetCode.at(address) (tests/detectors/assembly/inline_assembly_contract-0.5.1.sol#6-20) uses assembly\n\t- INLINE ASM (tests/detectors/assembly/inline_assembly_contract-0.5.1.sol#7-20)\n",
"markdown": "[GetCode.at(address)](tests/detectors/assembly/inline_assembly_contract-0.5.1.sol#L6-L20) uses assembly\n\t- [INLINE ASM](tests/detectors/assembly/inline_assembly_contract-0.5.1.sol#L7-L20)\n",
"first_markdown_element": "tests/detectors/assembly/inline_assembly_contract-0.5.1.sol#L6-L20",
"id": "a454219cba72113d0a6d0d732b998ba66db41cc59910efea1862a05d4d27f385",
"check": "assembly",
"impact": "Informational",

@ -176,6 +176,7 @@
],
"description": "GetCode.at(address) (tests/detectors/assembly/inline_assembly_contract.sol#6-20) uses assembly\n\t- INLINE ASM (tests/detectors/assembly/inline_assembly_contract.sol#7-20)\n",
"markdown": "[GetCode.at(address)](tests/detectors/assembly/inline_assembly_contract.sol#L6-L20) uses assembly\n\t- [INLINE ASM](tests/detectors/assembly/inline_assembly_contract.sol#L7-L20)\n",
"first_markdown_element": "tests/detectors/assembly/inline_assembly_contract.sol#L6-L20",
"id": "076a663af9edac0ed5fd4b04bb521be77206cde70d71f430b80d13896d7ad54d",
"check": "assembly",
"impact": "Informational",

@ -204,6 +204,7 @@
],
"description": "VectorSum.sumAsm(uint256[]) (tests/detectors/assembly/inline_assembly_library-0.5.1.sol#16-22) uses assembly\n\t- INLINE ASM (tests/detectors/assembly/inline_assembly_library-0.5.1.sol#18-21)\n",
"markdown": "[VectorSum.sumAsm(uint256[])](tests/detectors/assembly/inline_assembly_library-0.5.1.sol#L16-L22) uses assembly\n\t- [INLINE ASM](tests/detectors/assembly/inline_assembly_library-0.5.1.sol#L18-L21)\n",
"first_markdown_element": "tests/detectors/assembly/inline_assembly_library-0.5.1.sol#L16-L22",
"id": "86a697fcaa68e521bef3fcba0cf80a381efeb961011f90562eab06ca08b8dc00",
"check": "assembly",
"impact": "Informational",
@ -463,6 +464,7 @@
],
"description": "VectorSum.sumPureAsm(uint256[]) (tests/detectors/assembly/inline_assembly_library-0.5.1.sol#25-47) uses assembly\n\t- INLINE ASM (tests/detectors/assembly/inline_assembly_library-0.5.1.sol#26-47)\n",
"markdown": "[VectorSum.sumPureAsm(uint256[])](tests/detectors/assembly/inline_assembly_library-0.5.1.sol#L25-L47) uses assembly\n\t- [INLINE ASM](tests/detectors/assembly/inline_assembly_library-0.5.1.sol#L26-L47)\n",
"first_markdown_element": "tests/detectors/assembly/inline_assembly_library-0.5.1.sol#L25-L47",
"id": "e18b822185c318b5197d4704d8524a2f025a68be527e542392467920f35723b8",
"check": "assembly",
"impact": "Informational",

@ -204,6 +204,7 @@
],
"description": "VectorSum.sumAsm(uint256[]) (tests/detectors/assembly/inline_assembly_library.sol#16-22) uses assembly\n\t- INLINE ASM (tests/detectors/assembly/inline_assembly_library.sol#18-21)\n",
"markdown": "[VectorSum.sumAsm(uint256[])](tests/detectors/assembly/inline_assembly_library.sol#L16-L22) uses assembly\n\t- [INLINE ASM](tests/detectors/assembly/inline_assembly_library.sol#L18-L21)\n",
"first_markdown_element": "tests/detectors/assembly/inline_assembly_library.sol#L16-L22",
"id": "bb3664625e0b8ea9d3b3a564687e6ec0b403f90fe433eae80801a31e51a390b6",
"check": "assembly",
"impact": "Informational",
@ -463,6 +464,7 @@
],
"description": "VectorSum.sumPureAsm(uint256[]) (tests/detectors/assembly/inline_assembly_library.sol#25-47) uses assembly\n\t- INLINE ASM (tests/detectors/assembly/inline_assembly_library.sol#26-47)\n",
"markdown": "[VectorSum.sumPureAsm(uint256[])](tests/detectors/assembly/inline_assembly_library.sol#L25-L47) uses assembly\n\t- [INLINE ASM](tests/detectors/assembly/inline_assembly_library.sol#L26-L47)\n",
"first_markdown_element": "tests/detectors/assembly/inline_assembly_library.sol#L25-L47",
"id": "3d84d91aaec8956d18b205c8fb9c0ae40794c87060ed0bbbb0dc94eecf5b8fcb",
"check": "assembly",
"impact": "Informational",

@ -183,6 +183,7 @@
],
"description": "A.bad0() (tests/detectors/assert-state-change/assert_state_change.sol#6-8) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += 1) > 10) (tests/detectors/assert-state-change/assert_state_change.sol#7)\nConsider using require() or change the invariant to not modify the state.\n",
"markdown": "[A.bad0()](tests/detectors/assert-state-change/assert_state_change.sol#L6-L8) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += 1) > 10)](tests/detectors/assert-state-change/assert_state_change.sol#L7)\nConsider using require() or change the invariant to not modify the state.\n",
"first_markdown_element": "tests/detectors/assert-state-change/assert_state_change.sol#L6-L8",
"id": "a4f5ea904ad28f8c83aa1bab8284b485e1fe638545b500ca0c8a0fa8e442203e",
"check": "assert-state-change",
"impact": "Informational",
@ -371,6 +372,7 @@
],
"description": "A.bad1(uint256) (tests/detectors/assert-state-change/assert_state_change.sol#11-13) has an assert() call which possibly changes state.\n\t-assert(bool)((s_a += a) > 10) (tests/detectors/assert-state-change/assert_state_change.sol#12)\nConsider using require() or change the invariant to not modify the state.\n",
"markdown": "[A.bad1(uint256)](tests/detectors/assert-state-change/assert_state_change.sol#L11-L13) has an assert() call which possibly changes state.\n\t-[assert(bool)((s_a += a) > 10)](tests/detectors/assert-state-change/assert_state_change.sol#L12)\nConsider using require() or change the invariant to not modify the state.\n",
"first_markdown_element": "tests/detectors/assert-state-change/assert_state_change.sol#L11-L13",
"id": "2b42e9f701ebd94656a026702bf90f31c62710a301600e0c05cfed04bfefabf9",
"check": "assert-state-change",
"impact": "Informational",
@ -559,6 +561,7 @@
],
"description": "A.bad2() (tests/detectors/assert-state-change/assert_state_change.sol#19-21) has an assert() call which possibly changes state.\n\t-assert(bool)(bad2_callee()) (tests/detectors/assert-state-change/assert_state_change.sol#20)\nConsider using require() or change the invariant to not modify the state.\n",
"markdown": "[A.bad2()](tests/detectors/assert-state-change/assert_state_change.sol#L19-L21) has an assert() call which possibly changes state.\n\t-[assert(bool)(bad2_callee())](tests/detectors/assert-state-change/assert_state_change.sol#L20)\nConsider using require() or change the invariant to not modify the state.\n",
"first_markdown_element": "tests/detectors/assert-state-change/assert_state_change.sol#L19-L21",
"id": "a72f3e7eef408be55123fbf5c290bfd20aed4f095d659f5df0857d64d61df011",
"check": "assert-state-change",
"impact": "Informational",

@ -52,6 +52,7 @@
],
"description": "Backdoor function found in C.i_am_a_backdoor() (tests/detectors/backdoor/backdoor.sol#4-6)\n",
"markdown": "Backdoor function found in [C.i_am_a_backdoor()](tests/detectors/backdoor/backdoor.sol#L4-L6)\n",
"first_markdown_element": "tests/detectors/backdoor/backdoor.sol#L4-L6",
"id": "8a9008f2f5cd23b34feb0235dcc30ecb8d09a10eff151b522939caead117ef7a",
"check": "backdoor",
"impact": "High",

@ -52,6 +52,7 @@
],
"description": "C.i_am_a_backdoor() (tests/detectors/backdoor/backdoor.sol#4-6) allows anyone to destruct the contract\n",
"markdown": "[C.i_am_a_backdoor()](tests/detectors/backdoor/backdoor.sol#L4-L6) allows anyone to destruct the contract\n",
"first_markdown_element": "tests/detectors/backdoor/backdoor.sol#L4-L6",
"id": "bb1e4596537b6e2c29f4221e733692fd6dac8555095181718e440ca525016eb7",
"check": "suicidal",
"impact": "High",

@ -52,6 +52,7 @@
],
"description": "Backdoor function found in C.i_am_a_backdoor() (tests/detectors/backdoor/backdoor.sol#4-6)\n",
"markdown": "Backdoor function found in [C.i_am_a_backdoor()](tests/detectors/backdoor/backdoor.sol#L4-L6)\n",
"first_markdown_element": "tests/detectors/backdoor/backdoor.sol#L4-L6",
"id": "8a9008f2f5cd23b34feb0235dcc30ecb8d09a10eff151b522939caead117ef7a",
"check": "backdoor",
"impact": "High",

@ -52,6 +52,7 @@
],
"description": "C.i_am_a_backdoor() (tests/detectors/backdoor/backdoor.sol#4-6) allows anyone to destruct the contract\n",
"markdown": "[C.i_am_a_backdoor()](tests/detectors/backdoor/backdoor.sol#L4-L6) allows anyone to destruct the contract\n",
"first_markdown_element": "tests/detectors/backdoor/backdoor.sol#L4-L6",
"id": "bb1e4596537b6e2c29f4221e733692fd6dac8555095181718e440ca525016eb7",
"check": "suicidal",
"impact": "High",

@ -161,6 +161,7 @@
],
"description": "MyConc.bad1(bool) (tests/detectors/boolean-constant-equality/boolean-constant-equality.sol#7-9) compares to a boolean constant:\n\t-(b == true) (tests/detectors/boolean-constant-equality/boolean-constant-equality.sol#8)\n",
"markdown": "[MyConc.bad1(bool)](tests/detectors/boolean-constant-equality/boolean-constant-equality.sol#L7-L9) compares to a boolean constant:\n\t-[(b == true)](tests/detectors/boolean-constant-equality/boolean-constant-equality.sol#L8)\n",
"first_markdown_element": "tests/detectors/boolean-constant-equality/boolean-constant-equality.sol#L7-L9",
"id": "4a53e773c88b730f07c2e4106545df03b44679c56ee0d9dbd75dca010320e69c",
"check": "boolean-equal",
"impact": "Informational",

@ -199,6 +199,7 @@
],
"description": "MyConc.bad1(bool) (tests/detectors/boolean-constant-misuse/boolean-constant-misuse.sol#9-11) uses a Boolean constant improperly:\n\t-(b || true) (tests/detectors/boolean-constant-misuse/boolean-constant-misuse.sol#10)\n",
"markdown": "[MyConc.bad1(bool)](tests/detectors/boolean-constant-misuse/boolean-constant-misuse.sol#L9-L11) uses a Boolean constant improperly:\n\t-[(b || true)](tests/detectors/boolean-constant-misuse/boolean-constant-misuse.sol#L10)\n",
"first_markdown_element": "tests/detectors/boolean-constant-misuse/boolean-constant-misuse.sol#L9-L11",
"id": "12517fed0ec8f0a2232b467a6add9fd94a6a84325017e02e8a48794fc9112c6b",
"check": "boolean-cst",
"impact": "Medium",

@ -139,6 +139,7 @@
],
"description": "CallInLoop.bad() (tests/detectors/calls-loop/multiple_calls_in_loop.sol#9-13) has external calls inside a loop: destinations[i].transfer(i) (tests/detectors/calls-loop/multiple_calls_in_loop.sol#11)\n",
"markdown": "[CallInLoop.bad()](tests/detectors/calls-loop/multiple_calls_in_loop.sol#L9-L13) has external calls inside a loop: [destinations[i].transfer(i)](tests/detectors/calls-loop/multiple_calls_in_loop.sol#L11)\n",
"first_markdown_element": "tests/detectors/calls-loop/multiple_calls_in_loop.sol#L9-L13",
"id": "b5ddb0f2f8ab2160ca8a3f429672693f7a82cb9c5b69c571aa114385b13005e7",
"check": "calls-loop",
"impact": "Low",

@ -60,6 +60,7 @@
],
"description": "A.myFriendsAddress (tests/detectors/constable-states/const_state_variables.sol#7) should be constant\n",
"markdown": "[A.myFriendsAddress](tests/detectors/constable-states/const_state_variables.sol#L7) should be constant\n",
"first_markdown_element": "tests/detectors/constable-states/const_state_variables.sol#L7",
"id": "1454db80653b732bf6acbe54ff0ae4707002207a2a8216708c12d61c88a43e5f",
"check": "constable-states",
"impact": "Optimization",
@ -125,6 +126,7 @@
],
"description": "A.test (tests/detectors/constable-states/const_state_variables.sol#10) should be constant\n",
"markdown": "[A.test](tests/detectors/constable-states/const_state_variables.sol#L10) should be constant\n",
"first_markdown_element": "tests/detectors/constable-states/const_state_variables.sol#L10",
"id": "5d9e3fb413322b71a93e90f7e89bd8c83cd4884d577d039598c681fe9db38b1d",
"check": "constable-states",
"impact": "Optimization",
@ -190,6 +192,7 @@
],
"description": "A.text2 (tests/detectors/constable-states/const_state_variables.sol#14) should be constant\n",
"markdown": "[A.text2](tests/detectors/constable-states/const_state_variables.sol#L14) should be constant\n",
"first_markdown_element": "tests/detectors/constable-states/const_state_variables.sol#L14",
"id": "df11e6201c4558a8c5cd90b55b134b9ca8f07203b2264d3aa93bd7745e8cb4ba",
"check": "constable-states",
"impact": "Optimization",
@ -251,6 +254,7 @@
],
"description": "B.mySistersAddress (tests/detectors/constable-states/const_state_variables.sol#26) should be constant\n",
"markdown": "[B.mySistersAddress](tests/detectors/constable-states/const_state_variables.sol#L26) should be constant\n",
"first_markdown_element": "tests/detectors/constable-states/const_state_variables.sol#L26",
"id": "bee93a722c8eae4a48aade67d8ef537d84c106f48fc9eb738c795fce10d3bc63",
"check": "constable-states",
"impact": "Optimization",
@ -312,6 +316,7 @@
],
"description": "MyConc.should_be_constant (tests/detectors/constable-states/const_state_variables.sol#42) should be constant\n",
"markdown": "[MyConc.should_be_constant](tests/detectors/constable-states/const_state_variables.sol#L42) should be constant\n",
"first_markdown_element": "tests/detectors/constable-states/const_state_variables.sol#L42",
"id": "cbcafa2a3efba4d21ac1b51b4b823e5082d556bc3d6cf3fd2ab3188f9f218fc1",
"check": "constable-states",
"impact": "Optimization",
@ -373,6 +378,7 @@
],
"description": "MyConc.should_be_constant_2 (tests/detectors/constable-states/const_state_variables.sol#43) should be constant\n",
"markdown": "[MyConc.should_be_constant_2](tests/detectors/constable-states/const_state_variables.sol#L43) should be constant\n",
"first_markdown_element": "tests/detectors/constable-states/const_state_variables.sol#L43",
"id": "9a48a4122de1a6a4774a9f1e0d4917bd0fa08f17b4af41b86ba07689e51bf711",
"check": "constable-states",
"impact": "Optimization",

@ -60,6 +60,7 @@
],
"description": "A.myFriendsAddress (tests/detectors/constable-states/const_state_variables.sol#7) should be constant\n",
"markdown": "[A.myFriendsAddress](tests/detectors/constable-states/const_state_variables.sol#L7) should be constant\n",
"first_markdown_element": "tests/detectors/constable-states/const_state_variables.sol#L7",
"id": "1454db80653b732bf6acbe54ff0ae4707002207a2a8216708c12d61c88a43e5f",
"check": "constable-states",
"impact": "Optimization",
@ -125,6 +126,7 @@
],
"description": "A.test (tests/detectors/constable-states/const_state_variables.sol#10) should be constant\n",
"markdown": "[A.test](tests/detectors/constable-states/const_state_variables.sol#L10) should be constant\n",
"first_markdown_element": "tests/detectors/constable-states/const_state_variables.sol#L10",
"id": "5d9e3fb413322b71a93e90f7e89bd8c83cd4884d577d039598c681fe9db38b1d",
"check": "constable-states",
"impact": "Optimization",
@ -190,6 +192,7 @@
],
"description": "A.text2 (tests/detectors/constable-states/const_state_variables.sol#14) should be constant\n",
"markdown": "[A.text2](tests/detectors/constable-states/const_state_variables.sol#L14) should be constant\n",
"first_markdown_element": "tests/detectors/constable-states/const_state_variables.sol#L14",
"id": "df11e6201c4558a8c5cd90b55b134b9ca8f07203b2264d3aa93bd7745e8cb4ba",
"check": "constable-states",
"impact": "Optimization",
@ -251,6 +254,7 @@
],
"description": "B.mySistersAddress (tests/detectors/constable-states/const_state_variables.sol#26) should be constant\n",
"markdown": "[B.mySistersAddress](tests/detectors/constable-states/const_state_variables.sol#L26) should be constant\n",
"first_markdown_element": "tests/detectors/constable-states/const_state_variables.sol#L26",
"id": "bee93a722c8eae4a48aade67d8ef537d84c106f48fc9eb738c795fce10d3bc63",
"check": "constable-states",
"impact": "Optimization",
@ -312,6 +316,7 @@
],
"description": "MyConc.should_be_constant (tests/detectors/constable-states/const_state_variables.sol#42) should be constant\n",
"markdown": "[MyConc.should_be_constant](tests/detectors/constable-states/const_state_variables.sol#L42) should be constant\n",
"first_markdown_element": "tests/detectors/constable-states/const_state_variables.sol#L42",
"id": "cbcafa2a3efba4d21ac1b51b4b823e5082d556bc3d6cf3fd2ab3188f9f218fc1",
"check": "constable-states",
"impact": "Optimization",
@ -373,6 +378,7 @@
],
"description": "MyConc.should_be_constant_2 (tests/detectors/constable-states/const_state_variables.sol#43) should be constant\n",
"markdown": "[MyConc.should_be_constant_2](tests/detectors/constable-states/const_state_variables.sol#L43) should be constant\n",
"first_markdown_element": "tests/detectors/constable-states/const_state_variables.sol#L43",
"id": "9a48a4122de1a6a4774a9f1e0d4917bd0fa08f17b4af41b86ba07689e51bf711",
"check": "constable-states",
"impact": "Optimization",

@ -70,6 +70,7 @@
],
"description": "Constant.test_assembly_bug() (tests/detectors/constant/constant.sol#22-24) is declared view but contains assembly code\n",
"markdown": "[Constant.test_assembly_bug()](tests/detectors/constant/constant.sol#L22-L24) is declared view but contains assembly code\n",
"first_markdown_element": "tests/detectors/constant/constant.sol#L22-L24",
"id": "1f892cae08b89096bdc4d6ecdf55a3adc4b4314390e054fe2547d9c8e9f76e23",
"additional_fields": {
"contains_assembly": true

@ -132,6 +132,7 @@
],
"description": "Constant.test_view_bug() (tests/detectors/constant/constant.sol#5-7) is declared view but changes state variables:\n\t- Constant.a (tests/detectors/constant/constant.sol#3)\n",
"markdown": "[Constant.test_view_bug()](tests/detectors/constant/constant.sol#L5-L7) is declared view but changes state variables:\n\t- [Constant.a](tests/detectors/constant/constant.sol#L3)\n",
"first_markdown_element": "tests/detectors/constant/constant.sol#L5-L7",
"id": "4dee61d8835d20c6f1f7c195d8bd1e9de5dbcc096396a5b8db391136f9f5fdf1",
"additional_fields": {
"contains_assembly": false
@ -272,6 +273,7 @@
],
"description": "Constant.test_constant_bug() (tests/detectors/constant/constant.sol#9-11) is declared view but changes state variables:\n\t- Constant.a (tests/detectors/constant/constant.sol#3)\n",
"markdown": "[Constant.test_constant_bug()](tests/detectors/constant/constant.sol#L9-L11) is declared view but changes state variables:\n\t- [Constant.a](tests/detectors/constant/constant.sol#L3)\n",
"first_markdown_element": "tests/detectors/constant/constant.sol#L9-L11",
"id": "145e2d34dfc5b932c8d67d480c0eaec9baa8c728e2a310529572c0c4a5c6046a",
"additional_fields": {
"contains_assembly": false

@ -67,20 +67,20 @@
},
{
"type": "node",
"name": "b.subStruct.x.length = param + 1",
"name": "a.x.length = param",
"source_mapping": {
"start": 964,
"length": 32,
"start": 818,
"length": 18,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/controlled-array-length/array_length_assignment.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/controlled-array-length/array_length_assignment.sol",
"is_dependency": false,
"lines": [
41
36
],
"starting_column": 9,
"ending_column": 41
"ending_column": 27
},
"type_specific_fields": {
"parent": {
@ -193,9 +193,10 @@
}
}
],
"description": "ArrayLengthAssignment (tests/detectors/controlled-array-length/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- b.subStruct.x.length = param + 1 (tests/detectors/controlled-array-length/array_length_assignment.sol#41)\n",
"markdown": "[ArrayLengthAssignment](tests/detectors/controlled-array-length/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [b.subStruct.x.length = param + 1](tests/detectors/controlled-array-length/array_length_assignment.sol#L41)\n",
"id": "15164b2025ba6106829ae6e7baa9a73e931c0aa3e16a8d95ee30158667b4b7f5",
"description": "ArrayLengthAssignment (tests/detectors/controlled-array-length/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- a.x.length = param (tests/detectors/controlled-array-length/array_length_assignment.sol#36)\n",
"markdown": "[ArrayLengthAssignment](tests/detectors/controlled-array-length/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [a.x.length = param](tests/detectors/controlled-array-length/array_length_assignment.sol#L36)\n",
"first_markdown_element": "tests/detectors/controlled-array-length/array_length_assignment.sol#L1-L46",
"id": "6a72386e40ef24dd02adf92179022559e26da5e66be4bb925d02756f90f38953",
"check": "controlled-array-length",
"impact": "High",
"confidence": "Medium"
@ -267,20 +268,20 @@
},
{
"type": "node",
"name": "arr.length = param",
"name": "b.subStruct.x.length = param + 1",
"source_mapping": {
"start": 527,
"length": 18,
"start": 964,
"length": 32,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/controlled-array-length/array_length_assignment.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/controlled-array-length/array_length_assignment.sol",
"is_dependency": false,
"lines": [
26
41
],
"starting_column": 13,
"ending_column": 31
"starting_column": 9,
"ending_column": 41
},
"type_specific_fields": {
"parent": {
@ -393,9 +394,10 @@
}
}
],
"description": "ArrayLengthAssignment (tests/detectors/controlled-array-length/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- arr.length = param (tests/detectors/controlled-array-length/array_length_assignment.sol#26)\n",
"markdown": "[ArrayLengthAssignment](tests/detectors/controlled-array-length/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [arr.length = param](tests/detectors/controlled-array-length/array_length_assignment.sol#L26)\n",
"id": "cb96ef1555863b421997853215ad3533faaffd35215987c6a2ebf21716d9bd1a",
"description": "ArrayLengthAssignment (tests/detectors/controlled-array-length/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- b.subStruct.x.length = param + 1 (tests/detectors/controlled-array-length/array_length_assignment.sol#41)\n",
"markdown": "[ArrayLengthAssignment](tests/detectors/controlled-array-length/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [b.subStruct.x.length = param + 1](tests/detectors/controlled-array-length/array_length_assignment.sol#L41)\n",
"first_markdown_element": "tests/detectors/controlled-array-length/array_length_assignment.sol#L1-L46",
"id": "15164b2025ba6106829ae6e7baa9a73e931c0aa3e16a8d95ee30158667b4b7f5",
"check": "controlled-array-length",
"impact": "High",
"confidence": "Medium"
@ -467,9 +469,9 @@
},
{
"type": "node",
"name": "a.x.length = param",
"name": "arr.length = param",
"source_mapping": {
"start": 818,
"start": 527,
"length": 18,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/controlled-array-length/array_length_assignment.sol",
@ -477,10 +479,10 @@
"filename_short": "tests/detectors/controlled-array-length/array_length_assignment.sol",
"is_dependency": false,
"lines": [
36
26
],
"starting_column": 9,
"ending_column": 27
"starting_column": 13,
"ending_column": 31
},
"type_specific_fields": {
"parent": {
@ -593,9 +595,10 @@
}
}
],
"description": "ArrayLengthAssignment (tests/detectors/controlled-array-length/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- a.x.length = param (tests/detectors/controlled-array-length/array_length_assignment.sol#36)\n",
"markdown": "[ArrayLengthAssignment](tests/detectors/controlled-array-length/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [a.x.length = param](tests/detectors/controlled-array-length/array_length_assignment.sol#L36)\n",
"id": "6a72386e40ef24dd02adf92179022559e26da5e66be4bb925d02756f90f38953",
"description": "ArrayLengthAssignment (tests/detectors/controlled-array-length/array_length_assignment.sol#1-46) contract sets array length with a user-controlled value:\n\t- arr.length = param (tests/detectors/controlled-array-length/array_length_assignment.sol#26)\n",
"markdown": "[ArrayLengthAssignment](tests/detectors/controlled-array-length/array_length_assignment.sol#L1-L46) contract sets array length with a user-controlled value:\n\t- [arr.length = param](tests/detectors/controlled-array-length/array_length_assignment.sol#L26)\n",
"first_markdown_element": "tests/detectors/controlled-array-length/array_length_assignment.sol#L1-L46",
"id": "cb96ef1555863b421997853215ad3533faaffd35215987c6a2ebf21716d9bd1a",
"check": "controlled-array-length",
"impact": "High",
"confidence": "Medium"

@ -157,6 +157,7 @@
],
"description": "C.bad_delegate_call(bytes) (tests/detectors/controlled-delegatecall/controlled_delegatecall.sol#8-11) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(data) (tests/detectors/controlled-delegatecall/controlled_delegatecall.sol#10)\n",
"markdown": "[C.bad_delegate_call(bytes)](tests/detectors/controlled-delegatecall/controlled_delegatecall.sol#L8-L11) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(data)](tests/detectors/controlled-delegatecall/controlled_delegatecall.sol#L10)\n",
"first_markdown_element": "tests/detectors/controlled-delegatecall/controlled_delegatecall.sol#L8-L11",
"id": "d4aa9719b93dc4f3a3ec9b915071763b38d6881ddee6eaa86dade09f3caa1e5e",
"check": "controlled-delegatecall",
"impact": "High",
@ -317,6 +318,7 @@
],
"description": "C.bad_delegate_call2(bytes) (tests/detectors/controlled-delegatecall/controlled_delegatecall.sol#18-20) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(abi.encode(func_id,data)) (tests/detectors/controlled-delegatecall/controlled_delegatecall.sol#19)\n",
"markdown": "[C.bad_delegate_call2(bytes)](tests/detectors/controlled-delegatecall/controlled_delegatecall.sol#L18-L20) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(abi.encode(func_id,data))](tests/detectors/controlled-delegatecall/controlled_delegatecall.sol#L19)\n",
"first_markdown_element": "tests/detectors/controlled-delegatecall/controlled_delegatecall.sol#L18-L20",
"id": "3358bd7774f1a574c5521fe2e084afa81e866adf9a77f3f25e3009f17d8c9fe7",
"check": "controlled-delegatecall",
"impact": "High",

@ -157,6 +157,7 @@
],
"description": "C.bad_delegate_call(bytes) (tests/detectors/controlled-delegatecall/controlled_delegatecall.sol#8-11) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(data) (tests/detectors/controlled-delegatecall/controlled_delegatecall.sol#10)\n",
"markdown": "[C.bad_delegate_call(bytes)](tests/detectors/controlled-delegatecall/controlled_delegatecall.sol#L8-L11) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(data)](tests/detectors/controlled-delegatecall/controlled_delegatecall.sol#L10)\n",
"first_markdown_element": "tests/detectors/controlled-delegatecall/controlled_delegatecall.sol#L8-L11",
"id": "d4aa9719b93dc4f3a3ec9b915071763b38d6881ddee6eaa86dade09f3caa1e5e",
"check": "controlled-delegatecall",
"impact": "High",
@ -317,6 +318,7 @@
],
"description": "C.bad_delegate_call2(bytes) (tests/detectors/controlled-delegatecall/controlled_delegatecall.sol#18-20) uses delegatecall to a input-controlled function id\n\t- addr_bad.delegatecall(abi.encode(func_id,data)) (tests/detectors/controlled-delegatecall/controlled_delegatecall.sol#19)\n",
"markdown": "[C.bad_delegate_call2(bytes)](tests/detectors/controlled-delegatecall/controlled_delegatecall.sol#L18-L20) uses delegatecall to a input-controlled function id\n\t- [addr_bad.delegatecall(abi.encode(func_id,data))](tests/detectors/controlled-delegatecall/controlled_delegatecall.sol#L19)\n",
"first_markdown_element": "tests/detectors/controlled-delegatecall/controlled_delegatecall.sol#L18-L20",
"id": "3358bd7774f1a574c5521fe2e084afa81e866adf9a77f3f25e3009f17d8c9fe7",
"check": "controlled-delegatecall",
"impact": "High",

@ -175,6 +175,7 @@
],
"description": "CostlyOperationsInLoop.bad() (tests/detectors/costly-loop/multiple_costly_operations_in_loop.sol#10-14) has costly operations inside a loop:\n\t- state_variable ++ (tests/detectors/costly-loop/multiple_costly_operations_in_loop.sol#12)\n",
"markdown": "[CostlyOperationsInLoop.bad()](tests/detectors/costly-loop/multiple_costly_operations_in_loop.sol#L10-L14) has costly operations inside a loop:\n\t- [state_variable ++](tests/detectors/costly-loop/multiple_costly_operations_in_loop.sol#L12)\n",
"first_markdown_element": "tests/detectors/costly-loop/multiple_costly_operations_in_loop.sol#L10-L14",
"id": "245dbe07302f785326efd84e8b711d1691f045726e1098601f7e1058f1e72b2a",
"check": "costly-loop",
"impact": "Informational",

@ -56,6 +56,7 @@
],
"description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/detectors/erc20-indexed/erc20_indexed.sol#19)does not index parameter from\n",
"markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/detectors/erc20-indexed/erc20_indexed.sol#L19)does not index parameter from\n",
"first_markdown_element": "tests/detectors/erc20-indexed/erc20_indexed.sol#L19",
"id": "a86c7a54115f270548e82d71570dc4d2900b622b0f82c6fce137f3a35314af53",
"check": "erc20-indexed",
"impact": "Informational",
@ -117,6 +118,7 @@
],
"description": "ERC20 event IERC20BadTransfer(address,address,uint256) (tests/detectors/erc20-indexed/erc20_indexed.sol#19)does not index parameter to\n",
"markdown": "ERC20 event [IERC20BadTransfer(address,address,uint256)](tests/detectors/erc20-indexed/erc20_indexed.sol#L19)does not index parameter to\n",
"first_markdown_element": "tests/detectors/erc20-indexed/erc20_indexed.sol#L19",
"id": "29c46eb3a4695004959847ae09377729cdf3aa583de95560090b9bd49977c49b",
"check": "erc20-indexed",
"impact": "Informational",
@ -178,6 +180,7 @@
],
"description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/detectors/erc20-indexed/erc20_indexed.sol#20)does not index parameter owner\n",
"markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/detectors/erc20-indexed/erc20_indexed.sol#L20)does not index parameter owner\n",
"first_markdown_element": "tests/detectors/erc20-indexed/erc20_indexed.sol#L20",
"id": "7d72b56a71ca96db304878f25484c496af1d283a9b777dc788f1473974057025",
"check": "erc20-indexed",
"impact": "Informational",
@ -239,6 +242,7 @@
],
"description": "ERC20 event IERC20BadApproval(address,address,uint256) (tests/detectors/erc20-indexed/erc20_indexed.sol#20)does not index parameter spender\n",
"markdown": "ERC20 event [IERC20BadApproval(address,address,uint256)](tests/detectors/erc20-indexed/erc20_indexed.sol#L20)does not index parameter spender\n",
"first_markdown_element": "tests/detectors/erc20-indexed/erc20_indexed.sol#L20",
"id": "df4d927d202bdca1fc411d6960d3f62ed2784f5eca7435cb0503f4154f2e3bc6",
"check": "erc20-indexed",
"impact": "Informational",

@ -76,6 +76,7 @@
],
"description": "Token (tests/detectors/erc20-interface/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transfer(address,uint256) (tests/detectors/erc20-interface/incorrect_erc20_interface.sol#4)\n",
"markdown": "[Token](tests/detectors/erc20-interface/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transfer(address,uint256)](tests/detectors/erc20-interface/incorrect_erc20_interface.sol#L4)\n",
"first_markdown_element": "tests/detectors/erc20-interface/incorrect_erc20_interface.sol#L3-L10",
"id": "d3df2e48ae6e8a1b05b275de574b480853a0839c272ce889e8a1664ae432698e",
"check": "erc20-interface",
"impact": "Medium",
@ -157,6 +158,7 @@
],
"description": "Token (tests/detectors/erc20-interface/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.approve(address,uint256) (tests/detectors/erc20-interface/incorrect_erc20_interface.sol#5)\n",
"markdown": "[Token](tests/detectors/erc20-interface/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.approve(address,uint256)](tests/detectors/erc20-interface/incorrect_erc20_interface.sol#L5)\n",
"first_markdown_element": "tests/detectors/erc20-interface/incorrect_erc20_interface.sol#L3-L10",
"id": "0fced3029cf59cf348a6b79c58dbb032d837fdd5a5f355600edebda1878e9e2e",
"check": "erc20-interface",
"impact": "Medium",
@ -238,6 +240,7 @@
],
"description": "Token (tests/detectors/erc20-interface/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.transferFrom(address,address,uint256) (tests/detectors/erc20-interface/incorrect_erc20_interface.sol#6)\n",
"markdown": "[Token](tests/detectors/erc20-interface/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.transferFrom(address,address,uint256)](tests/detectors/erc20-interface/incorrect_erc20_interface.sol#L6)\n",
"first_markdown_element": "tests/detectors/erc20-interface/incorrect_erc20_interface.sol#L3-L10",
"id": "ba13a1588595032984a3fad39610a2414bb8fcb522d1e632d52fa947ff207d73",
"check": "erc20-interface",
"impact": "Medium",
@ -319,6 +322,7 @@
],
"description": "Token (tests/detectors/erc20-interface/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.totalSupply() (tests/detectors/erc20-interface/incorrect_erc20_interface.sol#7)\n",
"markdown": "[Token](tests/detectors/erc20-interface/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.totalSupply()](tests/detectors/erc20-interface/incorrect_erc20_interface.sol#L7)\n",
"first_markdown_element": "tests/detectors/erc20-interface/incorrect_erc20_interface.sol#L3-L10",
"id": "c951e429e546af28ac08e241d391e874c1c9c70b0732ccfb63f3bbfb3eaac16e",
"check": "erc20-interface",
"impact": "Medium",
@ -400,6 +404,7 @@
],
"description": "Token (tests/detectors/erc20-interface/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.balanceOf(address) (tests/detectors/erc20-interface/incorrect_erc20_interface.sol#8)\n",
"markdown": "[Token](tests/detectors/erc20-interface/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.balanceOf(address)](tests/detectors/erc20-interface/incorrect_erc20_interface.sol#L8)\n",
"first_markdown_element": "tests/detectors/erc20-interface/incorrect_erc20_interface.sol#L3-L10",
"id": "758ca2456030a36dbd6115f2ccb1a43f53f1dabd66ed079806df0f6b7b4d21ef",
"check": "erc20-interface",
"impact": "Medium",
@ -481,6 +486,7 @@
],
"description": "Token (tests/detectors/erc20-interface/incorrect_erc20_interface.sol#3-10) has incorrect ERC20 function interface:Token.allowance(address,address) (tests/detectors/erc20-interface/incorrect_erc20_interface.sol#9)\n",
"markdown": "[Token](tests/detectors/erc20-interface/incorrect_erc20_interface.sol#L3-L10) has incorrect ERC20 function interface:[Token.allowance(address,address)](tests/detectors/erc20-interface/incorrect_erc20_interface.sol#L9)\n",
"first_markdown_element": "tests/detectors/erc20-interface/incorrect_erc20_interface.sol#L3-L10",
"id": "1286abfe21b09e21e1cec8b991f73664e104fa39f7f4190690ece3af45bc0c7a",
"check": "erc20-interface",
"impact": "Medium",

@ -74,6 +74,7 @@
],
"description": "Token (tests/detectors/erc721-interface/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:IERC165.supportsInterface(bytes4) (tests/detectors/erc721-interface/incorrect_erc721_interface.sol#4)\n",
"markdown": "[Token](tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[IERC165.supportsInterface(bytes4)](tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L4)\n",
"first_markdown_element": "tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L6-L16",
"id": "a8593587ca70c51a9ab827843babec3b3eb7f9a08d76eea1e5528e668f7b291d",
"check": "erc721-interface",
"impact": "Medium",
@ -161,6 +162,7 @@
],
"description": "Token (tests/detectors/erc721-interface/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.balanceOf(address) (tests/detectors/erc721-interface/incorrect_erc721_interface.sol#7)\n",
"markdown": "[Token](tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.balanceOf(address)](tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L7)\n",
"first_markdown_element": "tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L6-L16",
"id": "6fb9d0320e0b63e2c70f9844d5bea2be958e73beb6eaa4ccb2323ead0c7ef991",
"check": "erc721-interface",
"impact": "Medium",
@ -248,6 +250,7 @@
],
"description": "Token (tests/detectors/erc721-interface/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.ownerOf(uint256) (tests/detectors/erc721-interface/incorrect_erc721_interface.sol#8)\n",
"markdown": "[Token](tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.ownerOf(uint256)](tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L8)\n",
"first_markdown_element": "tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L6-L16",
"id": "7d9235dd4ef8bc29a3b7700597cc1e4efb846377c928e5e50c5f49cb37f288d2",
"check": "erc721-interface",
"impact": "Medium",
@ -335,6 +338,7 @@
],
"description": "Token (tests/detectors/erc721-interface/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256,bytes) (tests/detectors/erc721-interface/incorrect_erc721_interface.sol#9)\n",
"markdown": "[Token](tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256,bytes)](tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L9)\n",
"first_markdown_element": "tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L6-L16",
"id": "ccec612c4b5db00ab59b766b5dde3f8d3a8c6408ef595ab08bff21628587e2a1",
"check": "erc721-interface",
"impact": "Medium",
@ -422,6 +426,7 @@
],
"description": "Token (tests/detectors/erc721-interface/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.safeTransferFrom(address,address,uint256) (tests/detectors/erc721-interface/incorrect_erc721_interface.sol#10)\n",
"markdown": "[Token](tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.safeTransferFrom(address,address,uint256)](tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L10)\n",
"first_markdown_element": "tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L6-L16",
"id": "50ab7b0f39f327ac6deccf3c16b4e6fee1dc249072ac41a4bd485ccf0c12315b",
"check": "erc721-interface",
"impact": "Medium",
@ -509,6 +514,7 @@
],
"description": "Token (tests/detectors/erc721-interface/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.transferFrom(address,address,uint256) (tests/detectors/erc721-interface/incorrect_erc721_interface.sol#11)\n",
"markdown": "[Token](tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.transferFrom(address,address,uint256)](tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L11)\n",
"first_markdown_element": "tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L6-L16",
"id": "847b11227f3bfc9b120e0ea573f385a4bbc61c4b7f89f434864612a679b1133e",
"check": "erc721-interface",
"impact": "Medium",
@ -596,6 +602,7 @@
],
"description": "Token (tests/detectors/erc721-interface/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.approve(address,uint256) (tests/detectors/erc721-interface/incorrect_erc721_interface.sol#12)\n",
"markdown": "[Token](tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.approve(address,uint256)](tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L12)\n",
"first_markdown_element": "tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L6-L16",
"id": "439c95972d0e084aff057161164b13ab63f85bee31d80b568b7155e58eac4b5d",
"check": "erc721-interface",
"impact": "Medium",
@ -683,6 +690,7 @@
],
"description": "Token (tests/detectors/erc721-interface/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.setApprovalForAll(address,bool) (tests/detectors/erc721-interface/incorrect_erc721_interface.sol#13)\n",
"markdown": "[Token](tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.setApprovalForAll(address,bool)](tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L13)\n",
"first_markdown_element": "tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L6-L16",
"id": "b95e9bb000fb073c25fdbd9fff7bf0a3c44e04e70fc1a7da27c94c6b7fb8be40",
"check": "erc721-interface",
"impact": "Medium",
@ -770,6 +778,7 @@
],
"description": "Token (tests/detectors/erc721-interface/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.getApproved(uint256) (tests/detectors/erc721-interface/incorrect_erc721_interface.sol#14)\n",
"markdown": "[Token](tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.getApproved(uint256)](tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L14)\n",
"first_markdown_element": "tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L6-L16",
"id": "2dce4891c7abea0fa8a8a20a8b8482e7e1d46d54bfd750701c604d5dadd8b937",
"check": "erc721-interface",
"impact": "Medium",
@ -857,6 +866,7 @@
],
"description": "Token (tests/detectors/erc721-interface/incorrect_erc721_interface.sol#6-16) has incorrect ERC721 function interface:Token.isApprovedForAll(address,address) (tests/detectors/erc721-interface/incorrect_erc721_interface.sol#15)\n",
"markdown": "[Token](tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L6-L16) has incorrect ERC721 function interface:[Token.isApprovedForAll(address,address)](tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L15)\n",
"first_markdown_element": "tests/detectors/erc721-interface/incorrect_erc721_interface.sol#L6-L16",
"id": "fa9985c505689f9a45d1ac51e1dd8cf79eeb2c939946abfb5ac78f46e692d0eb",
"check": "erc721-interface",
"impact": "Medium",

@ -249,6 +249,7 @@
],
"description": "Bug.bad0(uint8) (tests/detectors/events-maths/missing_events_arithmetic.sol#22-24) should emit an event for: \n\t- uprice8 = _price (tests/detectors/events-maths/missing_events_arithmetic.sol#23) \n",
"markdown": "[Bug.bad0(uint8)](tests/detectors/events-maths/missing_events_arithmetic.sol#L22-L24) should emit an event for: \n\t- [uprice8 = _price](tests/detectors/events-maths/missing_events_arithmetic.sol#L23) \n",
"first_markdown_element": "tests/detectors/events-maths/missing_events_arithmetic.sol#L22-L24",
"id": "d06657a1dc1f8c46e77dbcdd93667a379d95d84ca14ca94351c3a1eb799b9f3b",
"check": "events-maths",
"impact": "Low",
@ -503,6 +504,7 @@
],
"description": "Bug.bad1(int16) (tests/detectors/events-maths/missing_events_arithmetic.sol#30-32) should emit an event for: \n\t- iprice16 = _price (tests/detectors/events-maths/missing_events_arithmetic.sol#31) \n",
"markdown": "[Bug.bad1(int16)](tests/detectors/events-maths/missing_events_arithmetic.sol#L30-L32) should emit an event for: \n\t- [iprice16 = _price](tests/detectors/events-maths/missing_events_arithmetic.sol#L31) \n",
"first_markdown_element": "tests/detectors/events-maths/missing_events_arithmetic.sol#L30-L32",
"id": "d155849bc5f174fe5fe9619b4722bdbb9e99282f0ace605cf629b48862ca0195",
"check": "events-maths",
"impact": "Low",

@ -64,6 +64,7 @@
],
"description": "funcNotCalled3() should be declared external:\n\t- ContractWithFunctionNotCalled.funcNotCalled3() (tests/detectors/external-function/external_function.sol#13-15)\n",
"markdown": "funcNotCalled3() should be declared external:\n\t- [ContractWithFunctionNotCalled.funcNotCalled3()](tests/detectors/external-function/external_function.sol#L13-L15)\n",
"first_markdown_element": "tests/detectors/external-function/external_function.sol#L13-L15",
"id": "026d9a579ea0304e58c8a5174296494f4b672e4ea032f4e17504f3dac327c4e6",
"check": "external-function",
"impact": "Optimization",
@ -133,6 +134,7 @@
],
"description": "funcNotCalled2() should be declared external:\n\t- ContractWithFunctionNotCalled.funcNotCalled2() (tests/detectors/external-function/external_function.sol#17-19)\n",
"markdown": "funcNotCalled2() should be declared external:\n\t- [ContractWithFunctionNotCalled.funcNotCalled2()](tests/detectors/external-function/external_function.sol#L17-L19)\n",
"first_markdown_element": "tests/detectors/external-function/external_function.sol#L17-L19",
"id": "1ef1f19a92a8ab8d27df156d50dd75628ec3057b5f5eb16b7d1faa0e5c3850a0",
"check": "external-function",
"impact": "Optimization",
@ -202,6 +204,7 @@
],
"description": "funcNotCalled() should be declared external:\n\t- ContractWithFunctionNotCalled.funcNotCalled() (tests/detectors/external-function/external_function.sol#21-23)\n",
"markdown": "funcNotCalled() should be declared external:\n\t- [ContractWithFunctionNotCalled.funcNotCalled()](tests/detectors/external-function/external_function.sol#L21-L23)\n",
"first_markdown_element": "tests/detectors/external-function/external_function.sol#L21-L23",
"id": "369a2f3d071735755ff4f5bc43081fe858bbfb07eed94e5c6dda3c8daa22ba26",
"check": "external-function",
"impact": "Optimization",
@ -267,6 +270,7 @@
],
"description": "funcNotCalled() should be declared external:\n\t- ContractWithFunctionNotCalled2.funcNotCalled() (tests/detectors/external-function/external_function.sol#32-39)\n",
"markdown": "funcNotCalled() should be declared external:\n\t- [ContractWithFunctionNotCalled2.funcNotCalled()](tests/detectors/external-function/external_function.sol#L32-L39)\n",
"first_markdown_element": "tests/detectors/external-function/external_function.sol#L32-L39",
"id": "80a0a3a3954cc6e314079a1d8d96d6739d521ddbcf738e63078d7f210e443562",
"check": "external-function",
"impact": "Optimization",
@ -328,6 +332,7 @@
],
"description": "parameter_read_ok_for_external(uint256) should be declared external:\n\t- FunctionParameterWrite.parameter_read_ok_for_external(uint256) (tests/detectors/external-function/external_function.sol#74-76)\n",
"markdown": "parameter_read_ok_for_external(uint256) should be declared external:\n\t- [FunctionParameterWrite.parameter_read_ok_for_external(uint256)](tests/detectors/external-function/external_function.sol#L74-L76)\n",
"first_markdown_element": "tests/detectors/external-function/external_function.sol#L74-L76",
"id": "3a0a42d128eff9fb04d8f7605bf2d6f7574c2cbbdffa2dcabbae66d7568ecc59",
"check": "external-function",
"impact": "Optimization",

@ -64,6 +64,7 @@
],
"description": "funcNotCalled3() should be declared external:\n\t- ContractWithFunctionNotCalled.funcNotCalled3() (tests/detectors/external-function/external_function.sol#13-15)\n",
"markdown": "funcNotCalled3() should be declared external:\n\t- [ContractWithFunctionNotCalled.funcNotCalled3()](tests/detectors/external-function/external_function.sol#L13-L15)\n",
"first_markdown_element": "tests/detectors/external-function/external_function.sol#L13-L15",
"id": "026d9a579ea0304e58c8a5174296494f4b672e4ea032f4e17504f3dac327c4e6",
"check": "external-function",
"impact": "Optimization",
@ -133,6 +134,7 @@
],
"description": "funcNotCalled2() should be declared external:\n\t- ContractWithFunctionNotCalled.funcNotCalled2() (tests/detectors/external-function/external_function.sol#17-19)\n",
"markdown": "funcNotCalled2() should be declared external:\n\t- [ContractWithFunctionNotCalled.funcNotCalled2()](tests/detectors/external-function/external_function.sol#L17-L19)\n",
"first_markdown_element": "tests/detectors/external-function/external_function.sol#L17-L19",
"id": "1ef1f19a92a8ab8d27df156d50dd75628ec3057b5f5eb16b7d1faa0e5c3850a0",
"check": "external-function",
"impact": "Optimization",
@ -202,6 +204,7 @@
],
"description": "funcNotCalled() should be declared external:\n\t- ContractWithFunctionNotCalled.funcNotCalled() (tests/detectors/external-function/external_function.sol#21-23)\n",
"markdown": "funcNotCalled() should be declared external:\n\t- [ContractWithFunctionNotCalled.funcNotCalled()](tests/detectors/external-function/external_function.sol#L21-L23)\n",
"first_markdown_element": "tests/detectors/external-function/external_function.sol#L21-L23",
"id": "369a2f3d071735755ff4f5bc43081fe858bbfb07eed94e5c6dda3c8daa22ba26",
"check": "external-function",
"impact": "Optimization",
@ -267,6 +270,7 @@
],
"description": "funcNotCalled() should be declared external:\n\t- ContractWithFunctionNotCalled2.funcNotCalled() (tests/detectors/external-function/external_function.sol#32-39)\n",
"markdown": "funcNotCalled() should be declared external:\n\t- [ContractWithFunctionNotCalled2.funcNotCalled()](tests/detectors/external-function/external_function.sol#L32-L39)\n",
"first_markdown_element": "tests/detectors/external-function/external_function.sol#L32-L39",
"id": "80a0a3a3954cc6e314079a1d8d96d6739d521ddbcf738e63078d7f210e443562",
"check": "external-function",
"impact": "Optimization",
@ -328,6 +332,7 @@
],
"description": "parameter_read_ok_for_external(uint256) should be declared external:\n\t- FunctionParameterWrite.parameter_read_ok_for_external(uint256) (tests/detectors/external-function/external_function.sol#74-76)\n",
"markdown": "parameter_read_ok_for_external(uint256) should be declared external:\n\t- [FunctionParameterWrite.parameter_read_ok_for_external(uint256)](tests/detectors/external-function/external_function.sol#L74-L76)\n",
"first_markdown_element": "tests/detectors/external-function/external_function.sol#L74-L76",
"id": "3a0a42d128eff9fb04d8f7605bf2d6f7574c2cbbdffa2dcabbae66d7568ecc59",
"check": "external-function",
"impact": "Optimization",

@ -87,6 +87,7 @@
],
"description": "StateVarInitFromFunction.v (tests/detectors/function-init-state/function_init_state_variables.sol#5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n",
"markdown": "[StateVarInitFromFunction.v](tests/detectors/function-init-state/function_init_state_variables.sol#L5) is set pre-construction with a non-constant function or state variable:\n\t- set()\n",
"first_markdown_element": "tests/detectors/function-init-state/function_init_state_variables.sol#L5",
"id": "4b87ea4c0a3b72be79ffde12c56c9dc7440445b79ff4b228e0937b3a05540e4b",
"check": "function-init-state",
"impact": "Informational",
@ -179,6 +180,7 @@
],
"description": "StateVarInitFromFunction.x (tests/detectors/function-init-state/function_init_state_variables.sol#7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n",
"markdown": "[StateVarInitFromFunction.x](tests/detectors/function-init-state/function_init_state_variables.sol#L7) is set pre-construction with a non-constant function or state variable:\n\t- set()\n",
"first_markdown_element": "tests/detectors/function-init-state/function_init_state_variables.sol#L7",
"id": "adfa394934c8669a556cfa10c364fe526dd1e295a63959e1e88fe84a919ef354",
"check": "function-init-state",
"impact": "Informational",
@ -271,6 +273,7 @@
],
"description": "StateVarInitFromFunction.y1 (tests/detectors/function-init-state/function_init_state_variables.sol#9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n",
"markdown": "[StateVarInitFromFunction.y1](tests/detectors/function-init-state/function_init_state_variables.sol#L9) is set pre-construction with a non-constant function or state variable:\n\t- 5 + get()\n",
"first_markdown_element": "tests/detectors/function-init-state/function_init_state_variables.sol#L9",
"id": "b26f83c06e9aca87637dea02a0f4080fd4226c1ed90c6c2c63da85cb142d67ab",
"check": "function-init-state",
"impact": "Informational",
@ -363,6 +366,7 @@
],
"description": "StateVarInitFromFunction.y2 (tests/detectors/function-init-state/function_init_state_variables.sol#10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n",
"markdown": "[StateVarInitFromFunction.y2](tests/detectors/function-init-state/function_init_state_variables.sol#L10) is set pre-construction with a non-constant function or state variable:\n\t- (10 + (5 + get()))\n",
"first_markdown_element": "tests/detectors/function-init-state/function_init_state_variables.sol#L10",
"id": "b6e231b9b735794e00b73dddb86b2ba8f7a738d916c99f302fb32b1095c67472",
"check": "function-init-state",
"impact": "Informational",
@ -455,6 +459,7 @@
],
"description": "StateVarInitFromFunction.z4 (tests/detectors/function-init-state/function_init_state_variables.sol#17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n",
"markdown": "[StateVarInitFromFunction.z4](tests/detectors/function-init-state/function_init_state_variables.sol#L17) is set pre-construction with a non-constant function or state variable:\n\t- z3 + 5\n",
"first_markdown_element": "tests/detectors/function-init-state/function_init_state_variables.sol#L17",
"id": "8b7eb9ab16397c2f23479d2c3043a675ab5e2b1da07e2697631812d6d7b68525",
"check": "function-init-state",
"impact": "Informational",

@ -143,6 +143,7 @@
],
"description": "ERC20TestBalance.bad0(ERC20Function) (tests/detectors/incorrect-equality/incorrect_equality.sol#21-23) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(address(this)) == 10) (tests/detectors/incorrect-equality/incorrect_equality.sol#22)\n",
"markdown": "[ERC20TestBalance.bad0(ERC20Function)](tests/detectors/incorrect-equality/incorrect_equality.sol#L21-L23) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(address(this)) == 10)](tests/detectors/incorrect-equality/incorrect_equality.sol#L22)\n",
"first_markdown_element": "tests/detectors/incorrect-equality/incorrect_equality.sol#L21-L23",
"id": "294a51197ec2777645430044c421cfe296f6407dd6bc867cd4420397548ac6a0",
"check": "incorrect-equality",
"impact": "Medium",
@ -291,6 +292,7 @@
],
"description": "ERC20TestBalance.bad1(ERC20Variable) (tests/detectors/incorrect-equality/incorrect_equality.sol#25-27) uses a dangerous strict equality:\n\t- require(bool)(erc.balanceOf(msg.sender) == 10) (tests/detectors/incorrect-equality/incorrect_equality.sol#26)\n",
"markdown": "[ERC20TestBalance.bad1(ERC20Variable)](tests/detectors/incorrect-equality/incorrect_equality.sol#L25-L27) uses a dangerous strict equality:\n\t- [require(bool)(erc.balanceOf(msg.sender) == 10)](tests/detectors/incorrect-equality/incorrect_equality.sol#L26)\n",
"first_markdown_element": "tests/detectors/incorrect-equality/incorrect_equality.sol#L25-L27",
"id": "640263d06fa2e0c7166f3e674530f15e8742bf273f242187fbb82ad0e609b4ab",
"check": "incorrect-equality",
"impact": "Medium",
@ -539,6 +541,7 @@
],
"description": "TestContractBalance.bad0() (tests/detectors/incorrect-equality/incorrect_equality.sol#32-35) uses a dangerous strict equality:\n\t- require(bool)(address(address(this)).balance == 10000000000000000000) (tests/detectors/incorrect-equality/incorrect_equality.sol#33)\n",
"markdown": "[TestContractBalance.bad0()](tests/detectors/incorrect-equality/incorrect_equality.sol#L32-L35) uses a dangerous strict equality:\n\t- [require(bool)(address(address(this)).balance == 10000000000000000000)](tests/detectors/incorrect-equality/incorrect_equality.sol#L33)\n",
"first_markdown_element": "tests/detectors/incorrect-equality/incorrect_equality.sol#L32-L35",
"id": "b0f68fc1884acee397d2f83064b7a096d432f82b6dad75efd852eb4cfc58c3e1",
"check": "incorrect-equality",
"impact": "Medium",
@ -787,6 +790,7 @@
],
"description": "TestContractBalance.bad1() (tests/detectors/incorrect-equality/incorrect_equality.sol#37-40) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(address(this)).balance) (tests/detectors/incorrect-equality/incorrect_equality.sol#38)\n",
"markdown": "[TestContractBalance.bad1()](tests/detectors/incorrect-equality/incorrect_equality.sol#L37-L40) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(address(this)).balance)](tests/detectors/incorrect-equality/incorrect_equality.sol#L38)\n",
"first_markdown_element": "tests/detectors/incorrect-equality/incorrect_equality.sol#L37-L40",
"id": "448f29d6485c6cd2719c07c9152520610973e1be01c8b99cb6dc7c2d857aeb42",
"check": "incorrect-equality",
"impact": "Medium",
@ -1035,6 +1039,7 @@
],
"description": "TestContractBalance.bad2() (tests/detectors/incorrect-equality/incorrect_equality.sol#42-45) uses a dangerous strict equality:\n\t- require(bool)(address(this).balance == 10000000000000000000) (tests/detectors/incorrect-equality/incorrect_equality.sol#43)\n",
"markdown": "[TestContractBalance.bad2()](tests/detectors/incorrect-equality/incorrect_equality.sol#L42-L45) uses a dangerous strict equality:\n\t- [require(bool)(address(this).balance == 10000000000000000000)](tests/detectors/incorrect-equality/incorrect_equality.sol#L43)\n",
"first_markdown_element": "tests/detectors/incorrect-equality/incorrect_equality.sol#L42-L45",
"id": "8fd870cb63ea7244cabccdce377d3ab3d7821e47c1cd1db26ec67d1a0ead433f",
"check": "incorrect-equality",
"impact": "Medium",
@ -1283,6 +1288,7 @@
],
"description": "TestContractBalance.bad3() (tests/detectors/incorrect-equality/incorrect_equality.sol#47-50) uses a dangerous strict equality:\n\t- require(bool)(10000000000000000000 == address(this).balance) (tests/detectors/incorrect-equality/incorrect_equality.sol#48)\n",
"markdown": "[TestContractBalance.bad3()](tests/detectors/incorrect-equality/incorrect_equality.sol#L47-L50) uses a dangerous strict equality:\n\t- [require(bool)(10000000000000000000 == address(this).balance)](tests/detectors/incorrect-equality/incorrect_equality.sol#L48)\n",
"first_markdown_element": "tests/detectors/incorrect-equality/incorrect_equality.sol#L47-L50",
"id": "e66548a0ff1d43d4fdc9eff9d88483b677cd5147c38618d8d10db3a212daf801",
"check": "incorrect-equality",
"impact": "Medium",
@ -1535,6 +1541,7 @@
],
"description": "TestContractBalance.bad4() (tests/detectors/incorrect-equality/incorrect_equality.sol#52-57) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/detectors/incorrect-equality/incorrect_equality.sol#54)\n",
"markdown": "[TestContractBalance.bad4()](tests/detectors/incorrect-equality/incorrect_equality.sol#L52-L57) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/detectors/incorrect-equality/incorrect_equality.sol#L54)\n",
"first_markdown_element": "tests/detectors/incorrect-equality/incorrect_equality.sol#L52-L57",
"id": "feb30557490c10419bfd41c37e25f98d8927a1831f8e58da24b2c327e622d410",
"check": "incorrect-equality",
"impact": "Medium",
@ -1787,6 +1794,7 @@
],
"description": "TestContractBalance.bad5() (tests/detectors/incorrect-equality/incorrect_equality.sol#59-64) uses a dangerous strict equality:\n\t- 10000000000000000000 == balance (tests/detectors/incorrect-equality/incorrect_equality.sol#61)\n",
"markdown": "[TestContractBalance.bad5()](tests/detectors/incorrect-equality/incorrect_equality.sol#L59-L64) uses a dangerous strict equality:\n\t- [10000000000000000000 == balance](tests/detectors/incorrect-equality/incorrect_equality.sol#L61)\n",
"first_markdown_element": "tests/detectors/incorrect-equality/incorrect_equality.sol#L59-L64",
"id": "ef5acc7638533a4c3851662c1a1deb26737ee655c997bd66609e5f8f44450537",
"check": "incorrect-equality",
"impact": "Medium",
@ -2039,6 +2047,7 @@
],
"description": "TestContractBalance.bad6() (tests/detectors/incorrect-equality/incorrect_equality.sol#66-71) uses a dangerous strict equality:\n\t- balance == 10000000000000000000 (tests/detectors/incorrect-equality/incorrect_equality.sol#68)\n",
"markdown": "[TestContractBalance.bad6()](tests/detectors/incorrect-equality/incorrect_equality.sol#L66-L71) uses a dangerous strict equality:\n\t- [balance == 10000000000000000000](tests/detectors/incorrect-equality/incorrect_equality.sol#L68)\n",
"first_markdown_element": "tests/detectors/incorrect-equality/incorrect_equality.sol#L66-L71",
"id": "5515950c15517f81d4973f0937db8199d9515c3ef5cc8f4e2459a1f5f2b10519",
"check": "incorrect-equality",
"impact": "Medium",
@ -2223,6 +2232,7 @@
],
"description": "TestSolidityKeyword.bad0() (tests/detectors/incorrect-equality/incorrect_equality.sol#123-125) uses a dangerous strict equality:\n\t- require(bool)(now == 0) (tests/detectors/incorrect-equality/incorrect_equality.sol#124)\n",
"markdown": "[TestSolidityKeyword.bad0()](tests/detectors/incorrect-equality/incorrect_equality.sol#L123-L125) uses a dangerous strict equality:\n\t- [require(bool)(now == 0)](tests/detectors/incorrect-equality/incorrect_equality.sol#L124)\n",
"first_markdown_element": "tests/detectors/incorrect-equality/incorrect_equality.sol#L123-L125",
"id": "3c0287d7827cffc855ee2366a85204a9840c570f3df2a946ee8fef4ae7020f67",
"check": "incorrect-equality",
"impact": "Medium",
@ -2407,6 +2417,7 @@
],
"description": "TestSolidityKeyword.bad1() (tests/detectors/incorrect-equality/incorrect_equality.sol#127-129) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/detectors/incorrect-equality/incorrect_equality.sol#128)\n",
"markdown": "[TestSolidityKeyword.bad1()](tests/detectors/incorrect-equality/incorrect_equality.sol#L127-L129) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/detectors/incorrect-equality/incorrect_equality.sol#L128)\n",
"first_markdown_element": "tests/detectors/incorrect-equality/incorrect_equality.sol#L127-L129",
"id": "ad2bdecc821ce70ea7719cb08115739f7c2dfa5d78588b928dc6c41498c3b94f",
"check": "incorrect-equality",
"impact": "Medium",
@ -2591,6 +2602,7 @@
],
"description": "TestSolidityKeyword.bad2() (tests/detectors/incorrect-equality/incorrect_equality.sol#131-133) uses a dangerous strict equality:\n\t- require(bool)(block.number == 0) (tests/detectors/incorrect-equality/incorrect_equality.sol#132)\n",
"markdown": "[TestSolidityKeyword.bad2()](tests/detectors/incorrect-equality/incorrect_equality.sol#L131-L133) uses a dangerous strict equality:\n\t- [require(bool)(block.number == 0)](tests/detectors/incorrect-equality/incorrect_equality.sol#L132)\n",
"first_markdown_element": "tests/detectors/incorrect-equality/incorrect_equality.sol#L131-L133",
"id": "7f5d37ef2678b64eb2b3a0745a348e7571b58afac6a3037430c23c7b5d4c5422",
"check": "incorrect-equality",
"impact": "Medium",

@ -99,6 +99,7 @@
],
"description": "Modifier Test.noResult() (tests/detectors/incorrect-modifier/modifier_default.sol#2-6) does not always execute _; or revert",
"markdown": "Modifier [Test.noResult()](tests/detectors/incorrect-modifier/modifier_default.sol#L2-L6) does not always execute _; or revert",
"first_markdown_element": "tests/detectors/incorrect-modifier/modifier_default.sol#L2-L6",
"id": "e83e0a544940d3ddd9ea8fe0ae0277bec4660926110809cfd28153817969c3a3",
"check": "incorrect-modifier",
"impact": "Low",
@ -203,6 +204,7 @@
],
"description": "Modifier Test.requireAssertNoResult() (tests/detectors/incorrect-modifier/modifier_default.sol#18-22) does not always execute _; or revert",
"markdown": "Modifier [Test.requireAssertNoResult()](tests/detectors/incorrect-modifier/modifier_default.sol#L18-L22) does not always execute _; or revert",
"first_markdown_element": "tests/detectors/incorrect-modifier/modifier_default.sol#L18-L22",
"id": "35d07e11ee69abb8fb0e63dddefc1ab059bf450c71c992f70c5f96e484fbcbcc",
"check": "incorrect-modifier",
"impact": "Low",
@ -314,6 +316,7 @@
],
"description": "Modifier Test.loopsNoResult() (tests/detectors/incorrect-modifier/modifier_default.sol#30-41) does not always execute _; or revert",
"markdown": "Modifier [Test.loopsNoResult()](tests/detectors/incorrect-modifier/modifier_default.sol#L30-L41) does not always execute _; or revert",
"first_markdown_element": "tests/detectors/incorrect-modifier/modifier_default.sol#L30-L41",
"id": "0ba95ef5faf2a00c06d4f83c5159220d1cd06bc346a1287a6634334b7a0c433f",
"check": "incorrect-modifier",
"impact": "Low",

@ -57,6 +57,7 @@
],
"description": "C.c (tests/detectors/incorrect-unary/invalid_unary_expression.sol#4) uses an dangerous unary operator: (b = + 1)\n",
"markdown": "[C.c](tests/detectors/incorrect-unary/invalid_unary_expression.sol#L4) uses an dangerous unary operator: (b = + 1)\n",
"first_markdown_element": "tests/detectors/incorrect-unary/invalid_unary_expression.sol#L4",
"id": "98d05a4acbe13ff0e6fa795af35dc2002541cc7607f3f4d7ffb356f9d33681bd",
"check": "incorrect-unary",
"impact": "Low",
@ -209,6 +210,7 @@
],
"description": "C.f() (tests/detectors/incorrect-unary/invalid_unary_expression.sol#6-14) uses an dangerous unary operator: x = + 144444 (tests/detectors/incorrect-unary/invalid_unary_expression.sol#8)\n",
"markdown": "[C.f()](tests/detectors/incorrect-unary/invalid_unary_expression.sol#L6-L14) uses an dangerous unary operator: [x = + 144444](tests/detectors/incorrect-unary/invalid_unary_expression.sol#L8)\n",
"first_markdown_element": "tests/detectors/incorrect-unary/invalid_unary_expression.sol#L6-L14",
"id": "7595a3dac85785e5438d50c6b51b74329ce67fb73e71db0557eddd7fe0b20a75",
"check": "incorrect-unary",
"impact": "Low",
@ -361,6 +363,7 @@
],
"description": "C.f() (tests/detectors/incorrect-unary/invalid_unary_expression.sol#6-14) uses an dangerous unary operator: x = (x = + 1) (tests/detectors/incorrect-unary/invalid_unary_expression.sol#9)\n",
"markdown": "[C.f()](tests/detectors/incorrect-unary/invalid_unary_expression.sol#L6-L14) uses an dangerous unary operator: [x = (x = + 1)](tests/detectors/incorrect-unary/invalid_unary_expression.sol#L9)\n",
"first_markdown_element": "tests/detectors/incorrect-unary/invalid_unary_expression.sol#L6-L14",
"id": "2a34e309de20d52cb8b386d6f5f166ae6847f1abfe840f0fe50f5801799f2425",
"check": "incorrect-unary",
"impact": "Low",
@ -525,6 +528,7 @@
],
"description": "C.slitherConstructorVariables() (tests/detectors/incorrect-unary/invalid_unary_expression.sol#1-15) uses an dangerous unary operator: c = (b = + 1) (tests/detectors/incorrect-unary/invalid_unary_expression.sol#4)\n",
"markdown": "[C.slitherConstructorVariables()](tests/detectors/incorrect-unary/invalid_unary_expression.sol#L1-L15) uses an dangerous unary operator: [c = (b = + 1)](tests/detectors/incorrect-unary/invalid_unary_expression.sol#L4)\n",
"first_markdown_element": "tests/detectors/incorrect-unary/invalid_unary_expression.sol#L1-L15",
"id": "44f9cc4f47d5a925b4aceeff067e3d849153ee6577a1f41fb25b329156050b80",
"check": "incorrect-unary",
"impact": "Low",

@ -70,6 +70,7 @@
],
"description": "Contract locking ether found in :\n\tContract OnlyLocked (tests/detectors/locked-ether/locked_ether-0.5.1.sol#26) has payable functions:\n\t - Locked.receive() (tests/detectors/locked-ether/locked_ether-0.5.1.sol#4-6)\n\tBut does not have a function to withdraw the ether\n",
"markdown": "Contract locking ether found in :\n\tContract [OnlyLocked](tests/detectors/locked-ether/locked_ether-0.5.1.sol#L26) has payable functions:\n\t - [Locked.receive()](tests/detectors/locked-ether/locked_ether-0.5.1.sol#L4-L6)\n\tBut does not have a function to withdraw the ether\n",
"first_markdown_element": "tests/detectors/locked-ether/locked_ether-0.5.1.sol#L26",
"id": "38b2d47301e59ffa598ec48a8e874e6a7070d6cf4e4ab2909f33a8b72fc28a4b",
"check": "locked-ether",
"impact": "Medium",

@ -70,6 +70,7 @@
],
"description": "Contract locking ether found in :\n\tContract OnlyLocked (tests/detectors/locked-ether/locked_ether.sol#26) has payable functions:\n\t - Locked.receive() (tests/detectors/locked-ether/locked_ether.sol#4-6)\n\tBut does not have a function to withdraw the ether\n",
"markdown": "Contract locking ether found in :\n\tContract [OnlyLocked](tests/detectors/locked-ether/locked_ether.sol#L26) has payable functions:\n\t - [Locked.receive()](tests/detectors/locked-ether/locked_ether.sol#L4-L6)\n\tBut does not have a function to withdraw the ether\n",
"first_markdown_element": "tests/detectors/locked-ether/locked_ether.sol#L26",
"id": "38b2d47301e59ffa598ec48a8e874e6a7070d6cf4e4ab2909f33a8b72fc28a4b",
"check": "locked-ether",
"impact": "Medium",

@ -115,6 +115,7 @@
],
"description": "Low level call in Sender.send(address) (tests/detectors/low-level-calls/low_level_calls.sol#5-7):\n\t- _receiver.call.value(msg.value).gas(7777)() (tests/detectors/low-level-calls/low_level_calls.sol#6)\n",
"markdown": "Low level call in [Sender.send(address)](tests/detectors/low-level-calls/low_level_calls.sol#L5-L7):\n\t- [_receiver.call.value(msg.value).gas(7777)()](tests/detectors/low-level-calls/low_level_calls.sol#L6)\n",
"first_markdown_element": "tests/detectors/low-level-calls/low_level_calls.sol#L5-L7",
"id": "d017cb7447192393962f70f0ae2db6a8add9289b5cf4d4afbab9f41dec07f613",
"check": "low-level-calls",
"impact": "Informational",

@ -115,6 +115,7 @@
],
"description": "Low level call in Sender.send(address) (tests/detectors/low-level-calls/low_level_calls.sol#5-7):\n\t- _receiver.call.value(msg.value).gas(7777)() (tests/detectors/low-level-calls/low_level_calls.sol#6)\n",
"markdown": "Low level call in [Sender.send(address)](tests/detectors/low-level-calls/low_level_calls.sol#L5-L7):\n\t- [_receiver.call.value(msg.value).gas(7777)()](tests/detectors/low-level-calls/low_level_calls.sol#L6)\n",
"first_markdown_element": "tests/detectors/low-level-calls/low_level_calls.sol#L5-L7",
"id": "d017cb7447192393962f70f0ae2db6a8add9289b5cf4d4afbab9f41dec07f613",
"check": "low-level-calls",
"impact": "Informational",

@ -177,6 +177,7 @@
],
"description": "Lib.deleteSt(Lib.MyStruct[1]) (tests/detectors/mapping-deletion/MappingDeletion.sol#9-11) deletes Lib.MyStruct (tests/detectors/mapping-deletion/MappingDeletion.sol#5-7) which contains a mapping:\n\t-delete st[0] (tests/detectors/mapping-deletion/MappingDeletion.sol#10)\n",
"markdown": "[Lib.deleteSt(Lib.MyStruct[1])](tests/detectors/mapping-deletion/MappingDeletion.sol#L9-L11) deletes [Lib.MyStruct](tests/detectors/mapping-deletion/MappingDeletion.sol#L5-L7) which contains a mapping:\n\t-[delete st[0]](tests/detectors/mapping-deletion/MappingDeletion.sol#L10)\n",
"first_markdown_element": "tests/detectors/mapping-deletion/MappingDeletion.sol#L9-L11",
"id": "d618551637c257938461c33070c5339207b75de2bb11ff88d92bd9679252f307",
"check": "mapping-deletion",
"impact": "Medium",
@ -416,6 +417,7 @@
],
"description": "Balances.deleteBalance(uint256) (tests/detectors/mapping-deletion/MappingDeletion.sol#28-31) deletes Balances.BalancesStruct (tests/detectors/mapping-deletion/MappingDeletion.sol#17-20) which contains a mapping:\n\t-delete stackBalance[idx] (tests/detectors/mapping-deletion/MappingDeletion.sol#30)\n",
"markdown": "[Balances.deleteBalance(uint256)](tests/detectors/mapping-deletion/MappingDeletion.sol#L28-L31) deletes [Balances.BalancesStruct](tests/detectors/mapping-deletion/MappingDeletion.sol#L17-L20) which contains a mapping:\n\t-[delete stackBalance[idx]](tests/detectors/mapping-deletion/MappingDeletion.sol#L30)\n",
"first_markdown_element": "tests/detectors/mapping-deletion/MappingDeletion.sol#L28-L31",
"id": "a1e8bc34ec8ef7969409701b3c851749c4ba00dcbbef2cabcdf7e3f49724034e",
"check": "mapping-deletion",
"impact": "Medium",

@ -267,6 +267,7 @@
],
"description": "C.bad0_set_owner(address).new_owner (tests/detectors/missing-zero-check/missing_zero_address_validation.sol#10) lacks a zero-check on :\n\t\t- owner = new_owner (tests/detectors/missing-zero-check/missing_zero_address_validation.sol#11)\n",
"markdown": "[C.bad0_set_owner(address).new_owner](tests/detectors/missing-zero-check/missing_zero_address_validation.sol#L10) lacks a zero-check on :\n\t\t- [owner = new_owner](tests/detectors/missing-zero-check/missing_zero_address_validation.sol#L11)\n",
"first_markdown_element": "tests/detectors/missing-zero-check/missing_zero_address_validation.sol#L10",
"id": "168903dd25312ca9d856795d30f3a7d5ae7bf7fd19db47b70bc50aaef5769e67",
"check": "missing-zero-check",
"impact": "Low",
@ -673,6 +674,7 @@
],
"description": "C.bad1_send(address).addr (tests/detectors/missing-zero-check/missing_zero_address_validation.sol#14) lacks a zero-check on :\n\t\t- addr.send(msg.value) (tests/detectors/missing-zero-check/missing_zero_address_validation.sol#15)\n\t\t- addr.send(msg.value) (tests/detectors/missing-zero-check/missing_zero_address_validation.sol#16)\n",
"markdown": "[C.bad1_send(address).addr](tests/detectors/missing-zero-check/missing_zero_address_validation.sol#L14) lacks a zero-check on :\n\t\t- [addr.send(msg.value)](tests/detectors/missing-zero-check/missing_zero_address_validation.sol#L15)\n\t\t- [addr.send(msg.value)](tests/detectors/missing-zero-check/missing_zero_address_validation.sol#L16)\n",
"first_markdown_element": "tests/detectors/missing-zero-check/missing_zero_address_validation.sol#L14",
"id": "1c75c9e23f21886747d738e7fb033b4faf60cbeec7e7bc10b30cad6e05150323",
"check": "missing-zero-check",
"impact": "Low",
@ -945,6 +947,7 @@
],
"description": "C.bad2_transfer(address).addr (tests/detectors/missing-zero-check/missing_zero_address_validation.sol#19) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/detectors/missing-zero-check/missing_zero_address_validation.sol#20)\n",
"markdown": "[C.bad2_transfer(address).addr](tests/detectors/missing-zero-check/missing_zero_address_validation.sol#L19) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/detectors/missing-zero-check/missing_zero_address_validation.sol#L20)\n",
"first_markdown_element": "tests/detectors/missing-zero-check/missing_zero_address_validation.sol#L19",
"id": "cf8492ece629b57e628dd585c402012a4f4ee997e3d1ffb1c7f9cf18490c9b8b",
"check": "missing-zero-check",
"impact": "Low",
@ -1219,6 +1222,7 @@
],
"description": "C.bad3_transfer(address).addr (tests/detectors/missing-zero-check/missing_zero_address_validation.sol#23) lacks a zero-check on :\n\t\t- addr.transfer(msg.value) (tests/detectors/missing-zero-check/missing_zero_address_validation.sol#24)\n",
"markdown": "[C.bad3_transfer(address).addr](tests/detectors/missing-zero-check/missing_zero_address_validation.sol#L23) lacks a zero-check on :\n\t\t- [addr.transfer(msg.value)](tests/detectors/missing-zero-check/missing_zero_address_validation.sol#L24)\n",
"first_markdown_element": "tests/detectors/missing-zero-check/missing_zero_address_validation.sol#L23",
"id": "f4a3088c9894fad3e98137cc3751ac06bbac74f5428ad0e20728d738044ce365",
"check": "missing-zero-check",
"impact": "Low",
@ -1491,6 +1495,7 @@
],
"description": "C.bad4_call(address).addr (tests/detectors/missing-zero-check/missing_zero_address_validation.sol#28) lacks a zero-check on :\n\t\t- addr.call.value(msg.value)() (tests/detectors/missing-zero-check/missing_zero_address_validation.sol#29)\n",
"markdown": "[C.bad4_call(address).addr](tests/detectors/missing-zero-check/missing_zero_address_validation.sol#L28) lacks a zero-check on :\n\t\t- [addr.call.value(msg.value)()](tests/detectors/missing-zero-check/missing_zero_address_validation.sol#L29)\n",
"first_markdown_element": "tests/detectors/missing-zero-check/missing_zero_address_validation.sol#L28",
"id": "ff8eb251a6d4b6de4f1c4fa3602968a4c69b232892dbc1d9d6adac5cb744f081",
"check": "missing-zero-check",
"impact": "Low",

@ -72,6 +72,7 @@
],
"description": "Contract naming (tests/detectors/naming-convention/naming_convention.sol#3-48) is not in CapWords\n",
"markdown": "Contract [naming](tests/detectors/naming-convention/naming_convention.sol#L3-L48) is not in CapWords\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L3-L48",
"id": "7247d550fb327e3aeb21c82714137e5b45a7e9eeaa6a1bc878102c8081033f85",
"check": "naming-convention",
"impact": "Informational",
@ -171,6 +172,7 @@
],
"description": "Struct naming.test (tests/detectors/naming-convention/naming_convention.sol#14-16) is not in CapWords\n",
"markdown": "Struct [naming.test](tests/detectors/naming-convention/naming_convention.sol#L14-L16) is not in CapWords\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L14-L16",
"id": "0ef3ea412cb30b1f0df5fa2af4a7a06e2bf0373fae0770fd9e301aed12c209cf",
"check": "naming-convention",
"impact": "Informational",
@ -269,6 +271,7 @@
],
"description": "Event namingevent_(uint256) (tests/detectors/naming-convention/naming_convention.sol#23) is not in CapWords\n",
"markdown": "Event [namingevent_(uint256)](tests/detectors/naming-convention/naming_convention.sol#L23) is not in CapWords\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L23",
"id": "978ecf4a2c8b96d947e60f6601cf60d0e25e07ebe80ebbc37a7e7f279afd1405",
"check": "naming-convention",
"impact": "Informational",
@ -370,6 +373,7 @@
],
"description": "Function naming.GetOne() (tests/detectors/naming-convention/naming_convention.sol#30-33) is not in mixedCase\n",
"markdown": "Function [naming.GetOne()](tests/detectors/naming-convention/naming_convention.sol#L30-L33) is not in mixedCase\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L30-L33",
"id": "bf6f97d6a82b84284efdade52d01bd6112007426e2e88d1568190d63c5c4a049",
"check": "naming-convention",
"impact": "Informational",
@ -491,6 +495,7 @@
],
"description": "Parameter naming.setInt(uint256,uint256).Number2 (tests/detectors/naming-convention/naming_convention.sol#35) is not in mixedCase\n",
"markdown": "Parameter [naming.setInt(uint256,uint256).Number2](tests/detectors/naming-convention/naming_convention.sol#L35) is not in mixedCase\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L35",
"id": "f03bff0b488524254e19ff7d688d34211cd2f29934e22417c9f1fa43fc4a08ad",
"check": "naming-convention",
"impact": "Informational",
@ -588,6 +593,7 @@
],
"description": "Constant naming.MY_other_CONSTANT (tests/detectors/naming-convention/naming_convention.sol#9) is not in UPPER_CASE_WITH_UNDERSCORES\n",
"markdown": "Constant [naming.MY_other_CONSTANT](tests/detectors/naming-convention/naming_convention.sol#L9) is not in UPPER_CASE_WITH_UNDERSCORES\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L9",
"id": "596c2e8064f8f2df55cd5c878eb59c0a74ac7f20719c420d8af307f2431a1a90",
"check": "naming-convention",
"impact": "Informational",
@ -685,6 +691,7 @@
],
"description": "Variable naming.Var_One (tests/detectors/naming-convention/naming_convention.sol#11) is not in mixedCase\n",
"markdown": "Variable [naming.Var_One](tests/detectors/naming-convention/naming_convention.sol#L11) is not in mixedCase\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L11",
"id": "34b7c817201b3f3086fc3541f140898d9e9aabe999b1c0a6ef8639ec04351f26",
"check": "naming-convention",
"impact": "Informational",
@ -782,6 +789,7 @@
],
"description": "Enum naming.numbers (tests/detectors/naming-convention/naming_convention.sol#6) is not in CapWords\n",
"markdown": "Enum [naming.numbers](tests/detectors/naming-convention/naming_convention.sol#L6) is not in CapWords\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L6",
"id": "7c87b076ea2865060182cf11d155caadb1dcea415ccce0ca8563a74a01611fc2",
"check": "naming-convention",
"impact": "Informational",
@ -882,6 +890,7 @@
],
"description": "Modifier naming.CantDo() (tests/detectors/naming-convention/naming_convention.sol#41-43) is not in mixedCase\n",
"markdown": "Modifier [naming.CantDo()](tests/detectors/naming-convention/naming_convention.sol#L41-L43) is not in mixedCase\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L41-L43",
"id": "b8a754a01bd47127f00032cdedd0ade3e27e6543631d8f5bc9e44365ab732895",
"check": "naming-convention",
"impact": "Informational",
@ -970,6 +979,7 @@
],
"description": "Parameter T.test(uint256,uint256)._used (tests/detectors/naming-convention/naming_convention.sol#59) is not in mixedCase\n",
"markdown": "Parameter [T.test(uint256,uint256)._used](tests/detectors/naming-convention/naming_convention.sol#L59) is not in mixedCase\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L59",
"id": "818962ad9f50f13eb87b5c7deade22666431945fb60055f572b38246cfbf311e",
"check": "naming-convention",
"impact": "Informational",
@ -1036,6 +1046,7 @@
],
"description": "Variable T._myPublicVar (tests/detectors/naming-convention/naming_convention.sol#56) is not in mixedCase\n",
"markdown": "Variable [T._myPublicVar](tests/detectors/naming-convention/naming_convention.sol#L56) is not in mixedCase\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L56",
"id": "8acd53815786acad5b92b51366daf79182a67ab438daa41a6e1ec8a9601fa9a3",
"check": "naming-convention",
"impact": "Informational",
@ -1102,6 +1113,7 @@
],
"description": "Variable T.l (tests/detectors/naming-convention/naming_convention.sol#67) used l, O, I, which should not be used\n",
"markdown": "Variable [T.l](tests/detectors/naming-convention/naming_convention.sol#L67) used l, O, I, which should not be used\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L67",
"id": "b595f9e6d03b8b501b7c4a9bf8ff0ad9bf11448a25f53d63ab5031c95f8ae89c",
"check": "naming-convention",
"impact": "Informational",

@ -72,6 +72,7 @@
],
"description": "Contract naming (tests/detectors/naming-convention/naming_convention.sol#3-48) is not in CapWords\n",
"markdown": "Contract [naming](tests/detectors/naming-convention/naming_convention.sol#L3-L48) is not in CapWords\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L3-L48",
"id": "7247d550fb327e3aeb21c82714137e5b45a7e9eeaa6a1bc878102c8081033f85",
"check": "naming-convention",
"impact": "Informational",
@ -171,6 +172,7 @@
],
"description": "Struct naming.test (tests/detectors/naming-convention/naming_convention.sol#14-16) is not in CapWords\n",
"markdown": "Struct [naming.test](tests/detectors/naming-convention/naming_convention.sol#L14-L16) is not in CapWords\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L14-L16",
"id": "0ef3ea412cb30b1f0df5fa2af4a7a06e2bf0373fae0770fd9e301aed12c209cf",
"check": "naming-convention",
"impact": "Informational",
@ -269,6 +271,7 @@
],
"description": "Event namingevent_(uint256) (tests/detectors/naming-convention/naming_convention.sol#23) is not in CapWords\n",
"markdown": "Event [namingevent_(uint256)](tests/detectors/naming-convention/naming_convention.sol#L23) is not in CapWords\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L23",
"id": "978ecf4a2c8b96d947e60f6601cf60d0e25e07ebe80ebbc37a7e7f279afd1405",
"check": "naming-convention",
"impact": "Informational",
@ -370,6 +373,7 @@
],
"description": "Function naming.GetOne() (tests/detectors/naming-convention/naming_convention.sol#30-33) is not in mixedCase\n",
"markdown": "Function [naming.GetOne()](tests/detectors/naming-convention/naming_convention.sol#L30-L33) is not in mixedCase\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L30-L33",
"id": "bf6f97d6a82b84284efdade52d01bd6112007426e2e88d1568190d63c5c4a049",
"check": "naming-convention",
"impact": "Informational",
@ -491,6 +495,7 @@
],
"description": "Parameter naming.setInt(uint256,uint256).Number2 (tests/detectors/naming-convention/naming_convention.sol#35) is not in mixedCase\n",
"markdown": "Parameter [naming.setInt(uint256,uint256).Number2](tests/detectors/naming-convention/naming_convention.sol#L35) is not in mixedCase\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L35",
"id": "f03bff0b488524254e19ff7d688d34211cd2f29934e22417c9f1fa43fc4a08ad",
"check": "naming-convention",
"impact": "Informational",
@ -588,6 +593,7 @@
],
"description": "Constant naming.MY_other_CONSTANT (tests/detectors/naming-convention/naming_convention.sol#9) is not in UPPER_CASE_WITH_UNDERSCORES\n",
"markdown": "Constant [naming.MY_other_CONSTANT](tests/detectors/naming-convention/naming_convention.sol#L9) is not in UPPER_CASE_WITH_UNDERSCORES\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L9",
"id": "596c2e8064f8f2df55cd5c878eb59c0a74ac7f20719c420d8af307f2431a1a90",
"check": "naming-convention",
"impact": "Informational",
@ -685,6 +691,7 @@
],
"description": "Variable naming.Var_One (tests/detectors/naming-convention/naming_convention.sol#11) is not in mixedCase\n",
"markdown": "Variable [naming.Var_One](tests/detectors/naming-convention/naming_convention.sol#L11) is not in mixedCase\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L11",
"id": "34b7c817201b3f3086fc3541f140898d9e9aabe999b1c0a6ef8639ec04351f26",
"check": "naming-convention",
"impact": "Informational",
@ -782,6 +789,7 @@
],
"description": "Enum naming.numbers (tests/detectors/naming-convention/naming_convention.sol#6) is not in CapWords\n",
"markdown": "Enum [naming.numbers](tests/detectors/naming-convention/naming_convention.sol#L6) is not in CapWords\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L6",
"id": "7c87b076ea2865060182cf11d155caadb1dcea415ccce0ca8563a74a01611fc2",
"check": "naming-convention",
"impact": "Informational",
@ -882,6 +890,7 @@
],
"description": "Modifier naming.CantDo() (tests/detectors/naming-convention/naming_convention.sol#41-43) is not in mixedCase\n",
"markdown": "Modifier [naming.CantDo()](tests/detectors/naming-convention/naming_convention.sol#L41-L43) is not in mixedCase\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L41-L43",
"id": "b8a754a01bd47127f00032cdedd0ade3e27e6543631d8f5bc9e44365ab732895",
"check": "naming-convention",
"impact": "Informational",
@ -970,6 +979,7 @@
],
"description": "Parameter T.test(uint256,uint256)._used (tests/detectors/naming-convention/naming_convention.sol#59) is not in mixedCase\n",
"markdown": "Parameter [T.test(uint256,uint256)._used](tests/detectors/naming-convention/naming_convention.sol#L59) is not in mixedCase\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L59",
"id": "818962ad9f50f13eb87b5c7deade22666431945fb60055f572b38246cfbf311e",
"check": "naming-convention",
"impact": "Informational",
@ -1036,6 +1046,7 @@
],
"description": "Variable T._myPublicVar (tests/detectors/naming-convention/naming_convention.sol#56) is not in mixedCase\n",
"markdown": "Variable [T._myPublicVar](tests/detectors/naming-convention/naming_convention.sol#L56) is not in mixedCase\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L56",
"id": "8acd53815786acad5b92b51366daf79182a67ab438daa41a6e1ec8a9601fa9a3",
"check": "naming-convention",
"impact": "Informational",
@ -1102,6 +1113,7 @@
],
"description": "Variable T.l (tests/detectors/naming-convention/naming_convention.sol#67) used l, O, I, which should not be used\n",
"markdown": "Variable [T.l](tests/detectors/naming-convention/naming_convention.sol#L67) used l, O, I, which should not be used\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention.sol#L67",
"id": "b595f9e6d03b8b501b7c4a9bf8ff0ad9bf11448a25f53d63ab5031c95f8ae89c",
"check": "naming-convention",
"impact": "Informational",

@ -67,6 +67,7 @@
],
"description": "Struct naming.test3 (tests/detectors/naming-convention/naming_convention_ignore.sol#18-20) is not in CapWords\n",
"markdown": "Struct [naming.test3](tests/detectors/naming-convention/naming_convention_ignore.sol#L18-L20) is not in CapWords\n",
"first_markdown_element": "tests/detectors/naming-convention/naming_convention_ignore.sol#L18-L20",
"id": "34b66b0b5acf6c00b066dd7f5bbcdbc6f3879ab5ece850f113d00e3318eac10f",
"check": "naming-convention",
"impact": "Informational",

@ -57,6 +57,7 @@
],
"description": "Different versions of Solidity is used in :\n\t- Version used: ['^0.4.23', '^0.4.24']\n\t- ^0.4.23 (tests/detectors/pragma/pragma.0.4.23.sol#1)\n\t- ^0.4.24 (tests/detectors/pragma/pragma.0.4.24.sol#1)\n",
"markdown": "Different versions of Solidity is used in :\n\t- Version used: ['^0.4.23', '^0.4.24']\n\t- [^0.4.23](tests/detectors/pragma/pragma.0.4.23.sol#L1)\n\t- [^0.4.24](tests/detectors/pragma/pragma.0.4.24.sol#L1)\n",
"first_markdown_element": "tests/detectors/pragma/pragma.0.4.23.sol#L1",
"id": "1379d7b43e8c8bc939547079131e06fc888bb82740880718f8ff3409a6d5173e",
"check": "pragma",
"impact": "Informational",

@ -60,6 +60,7 @@
],
"description": "Bug.testMapping (tests/detectors/public-mappings-nested/public_mappings_nested.sol#14) is a public mapping with nested variables\n",
"markdown": "[Bug.testMapping](tests/detectors/public-mappings-nested/public_mappings_nested.sol#L14) is a public mapping with nested variables\n",
"first_markdown_element": "tests/detectors/public-mappings-nested/public_mappings_nested.sol#L14",
"id": "100978112524def620b003331f34b2b51eb78cae6f7eb2793d9671b4b7bb858a",
"check": "public-mappings-nested",
"impact": "High",

@ -116,6 +116,7 @@
],
"description": "Redundant expression \"uint256 (tests/detectors/redundant-statements/redundant_statements.sol#6)\" inRedundantStatementsContract (tests/detectors/redundant-statements/redundant_statements.sol#3-18)\n",
"markdown": "Redundant expression \"[uint256](tests/detectors/redundant-statements/redundant_statements.sol#L6)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/redundant_statements.sol#L3-L18)\n",
"first_markdown_element": "tests/detectors/redundant-statements/redundant_statements.sol#L6",
"id": "cff54481eae76053f9cae0d4f77a2e5092461dc3fcb9e4e2f8605afb6aa832aa",
"check": "redundant-statements",
"impact": "Informational",
@ -237,6 +238,7 @@
],
"description": "Redundant expression \"bool (tests/detectors/redundant-statements/redundant_statements.sol#7)\" inRedundantStatementsContract (tests/detectors/redundant-statements/redundant_statements.sol#3-18)\n",
"markdown": "Redundant expression \"[bool](tests/detectors/redundant-statements/redundant_statements.sol#L7)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/redundant_statements.sol#L3-L18)\n",
"first_markdown_element": "tests/detectors/redundant-statements/redundant_statements.sol#L7",
"id": "bd643774adde96fa093cf2ec70d9a80fc2999dba8b61b60d0df19366003d74d5",
"check": "redundant-statements",
"impact": "Informational",
@ -358,6 +360,7 @@
],
"description": "Redundant expression \"RedundantStatementsContract (tests/detectors/redundant-statements/redundant_statements.sol#8)\" inRedundantStatementsContract (tests/detectors/redundant-statements/redundant_statements.sol#3-18)\n",
"markdown": "Redundant expression \"[RedundantStatementsContract](tests/detectors/redundant-statements/redundant_statements.sol#L8)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/redundant_statements.sol#L3-L18)\n",
"first_markdown_element": "tests/detectors/redundant-statements/redundant_statements.sol#L8",
"id": "d93991180e8fe3accc3157f286d3a6781ed5c03398d68c0b9fde918a01d65ede",
"check": "redundant-statements",
"impact": "Informational",
@ -480,6 +483,7 @@
],
"description": "Redundant expression \"uint256 (tests/detectors/redundant-statements/redundant_statements.sol#12)\" inRedundantStatementsContract (tests/detectors/redundant-statements/redundant_statements.sol#3-18)\n",
"markdown": "Redundant expression \"[uint256](tests/detectors/redundant-statements/redundant_statements.sol#L12)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/redundant_statements.sol#L3-L18)\n",
"first_markdown_element": "tests/detectors/redundant-statements/redundant_statements.sol#L12",
"id": "262267538723f822ebe065e5976738ef3f564c791aaddb26867d202602de1eea",
"check": "redundant-statements",
"impact": "Informational",
@ -602,6 +606,7 @@
],
"description": "Redundant expression \"assert(bool) (tests/detectors/redundant-statements/redundant_statements.sol#13)\" inRedundantStatementsContract (tests/detectors/redundant-statements/redundant_statements.sol#3-18)\n",
"markdown": "Redundant expression \"[assert(bool)](tests/detectors/redundant-statements/redundant_statements.sol#L13)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/redundant_statements.sol#L3-L18)\n",
"first_markdown_element": "tests/detectors/redundant-statements/redundant_statements.sol#L13",
"id": "00295b0d55ceb6d73eec5a4905d137edf751e11c951252b54cd42c43ace68ffd",
"check": "redundant-statements",
"impact": "Informational",
@ -724,6 +729,7 @@
],
"description": "Redundant expression \"test (tests/detectors/redundant-statements/redundant_statements.sol#14)\" inRedundantStatementsContract (tests/detectors/redundant-statements/redundant_statements.sol#3-18)\n",
"markdown": "Redundant expression \"[test](tests/detectors/redundant-statements/redundant_statements.sol#L14)\" in[RedundantStatementsContract](tests/detectors/redundant-statements/redundant_statements.sol#L3-L18)\n",
"first_markdown_element": "tests/detectors/redundant-statements/redundant_statements.sol#L14",
"id": "ac50e063af6ebd33a702aa136415f7babc5fef3dc5212730b054d8a089b04e23",
"check": "redundant-statements",
"impact": "Informational",

@ -265,6 +265,7 @@
],
"description": "Reentrancy in ReentrancyWrite.bad0() (tests/detectors/reentrancy-before-write/reentrancy-write.sol#6-12):\n\tExternal calls:\n\t- ! (msg.sender.call()) (tests/detectors/reentrancy-before-write/reentrancy-write.sol#8)\n\tState variables written after the call(s):\n\t- notCalled = false (tests/detectors/reentrancy-before-write/reentrancy-write.sol#11)\n",
"markdown": "Reentrancy in [ReentrancyWrite.bad0()](tests/detectors/reentrancy-before-write/reentrancy-write.sol#L6-L12):\n\tExternal calls:\n\t- [! (msg.sender.call())](tests/detectors/reentrancy-before-write/reentrancy-write.sol#L8)\n\tState variables written after the call(s):\n\t- [notCalled = false](tests/detectors/reentrancy-before-write/reentrancy-write.sol#L11)\n",
"first_markdown_element": "tests/detectors/reentrancy-before-write/reentrancy-write.sol#L6-L12",
"id": "e078084eca02a4723da5dcb8a78af564de225e53ecc5cb8d98262c19296f7233",
"check": "reentrancy-no-eth",
"impact": "Medium",
@ -814,6 +815,7 @@
],
"description": "Reentrancy in ReentrancyWrite.bad1(address) (tests/detectors/reentrancy-before-write/reentrancy-write.sol#14-19):\n\tExternal calls:\n\t- success = msg.sender.call() (tests/detectors/reentrancy-before-write/reentrancy-write.sol#16)\n\t- bad0() (tests/detectors/reentrancy-before-write/reentrancy-write.sol#18)\n\t\t- ! (msg.sender.call()) (tests/detectors/reentrancy-before-write/reentrancy-write.sol#8)\n\tState variables written after the call(s):\n\t- bad0() (tests/detectors/reentrancy-before-write/reentrancy-write.sol#18)\n\t\t- notCalled = false (tests/detectors/reentrancy-before-write/reentrancy-write.sol#11)\n",
"markdown": "Reentrancy in [ReentrancyWrite.bad1(address)](tests/detectors/reentrancy-before-write/reentrancy-write.sol#L14-L19):\n\tExternal calls:\n\t- [success = msg.sender.call()](tests/detectors/reentrancy-before-write/reentrancy-write.sol#L16)\n\t- [bad0()](tests/detectors/reentrancy-before-write/reentrancy-write.sol#L18)\n\t\t- [! (msg.sender.call())](tests/detectors/reentrancy-before-write/reentrancy-write.sol#L8)\n\tState variables written after the call(s):\n\t- [bad0()](tests/detectors/reentrancy-before-write/reentrancy-write.sol#L18)\n\t\t- [notCalled = false](tests/detectors/reentrancy-before-write/reentrancy-write.sol#L11)\n",
"first_markdown_element": "tests/detectors/reentrancy-before-write/reentrancy-write.sol#L14-L19",
"id": "2ee9fea9a2fa34c6702dcb539c392ab810468f83a66fb21a2df33a1f3d4747cf",
"check": "reentrancy-no-eth",
"impact": "Medium",

@ -487,6 +487,7 @@
],
"description": "Reentrancy in ReentrancyBenign.bad0() (tests/detectors/reentrancy-benign/reentrancy-benign.sol#7-12):\n\tExternal calls:\n\t- ! (msg.sender.call()) (tests/detectors/reentrancy-benign/reentrancy-benign.sol#8)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/detectors/reentrancy-benign/reentrancy-benign.sol#11)\n",
"markdown": "Reentrancy in [ReentrancyBenign.bad0()](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L7-L12):\n\tExternal calls:\n\t- [! (msg.sender.call())](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L8)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L11)\n",
"first_markdown_element": "tests/detectors/reentrancy-benign/reentrancy-benign.sol#L7-L12",
"id": "23f4fbdccaa9fd4c46c12759d22b8f19d92b6652303c84f8a9e59012a83cbf9c",
"check": "reentrancy-benign",
"impact": "Low",
@ -975,6 +976,7 @@
],
"description": "Reentrancy in ReentrancyBenign.bad1(address) (tests/detectors/reentrancy-benign/reentrancy-benign.sol#14-18):\n\tExternal calls:\n\t- success = target.call() (tests/detectors/reentrancy-benign/reentrancy-benign.sol#15)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/detectors/reentrancy-benign/reentrancy-benign.sol#17)\n",
"markdown": "Reentrancy in [ReentrancyBenign.bad1(address)](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L14-L18):\n\tExternal calls:\n\t- [success = target.call()](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L15)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L17)\n",
"first_markdown_element": "tests/detectors/reentrancy-benign/reentrancy-benign.sol#L14-L18",
"id": "404eb3881e9d5765548d023eeacff9a2147786601b5d7eaa204c3838b7d665d9",
"check": "reentrancy-benign",
"impact": "Low",
@ -1743,6 +1745,7 @@
],
"description": "Reentrancy in ReentrancyBenign.bad2(address) (tests/detectors/reentrancy-benign/reentrancy-benign.sol#20-29):\n\tExternal calls:\n\t- success = target.call() (tests/detectors/reentrancy-benign/reentrancy-benign.sol#21)\n\t- address(target).call.value(1000)() (tests/detectors/reentrancy-benign/reentrancy-benign.sol#23)\n\tExternal calls sending eth:\n\t- address(target).call.value(1000)() (tests/detectors/reentrancy-benign/reentrancy-benign.sol#23)\n\tState variables written after the call(s):\n\t- counter += 1 (tests/detectors/reentrancy-benign/reentrancy-benign.sol#24)\n",
"markdown": "Reentrancy in [ReentrancyBenign.bad2(address)](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L20-L29):\n\tExternal calls:\n\t- [success = target.call()](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L21)\n\t- [address(target).call.value(1000)()](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L23)\n\tExternal calls sending eth:\n\t- [address(target).call.value(1000)()](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L23)\n\tState variables written after the call(s):\n\t- [counter += 1](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L24)\n",
"first_markdown_element": "tests/detectors/reentrancy-benign/reentrancy-benign.sol#L20-L29",
"id": "cf749257747679a6caaf9ae293360de238a17a22a13320f189e438e4e226276f",
"check": "reentrancy-benign",
"impact": "Low",
@ -2601,6 +2604,7 @@
],
"description": "Reentrancy in ReentrancyBenign.bad3(address) (tests/detectors/reentrancy-benign/reentrancy-benign.sol#31-35):\n\tExternal calls:\n\t- externalCaller(target) (tests/detectors/reentrancy-benign/reentrancy-benign.sol#32)\n\t\t- address(target).call() (tests/detectors/reentrancy-benign/reentrancy-benign.sol#51)\n\tState variables written after the call(s):\n\t- varChanger() (tests/detectors/reentrancy-benign/reentrancy-benign.sol#33)\n\t\t- anotherVariableToChange ++ (tests/detectors/reentrancy-benign/reentrancy-benign.sol#59)\n",
"markdown": "Reentrancy in [ReentrancyBenign.bad3(address)](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L31-L35):\n\tExternal calls:\n\t- [externalCaller(target)](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L32)\n\t\t- [address(target).call()](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L51)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L33)\n\t\t- [anotherVariableToChange ++](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L59)\n",
"first_markdown_element": "tests/detectors/reentrancy-benign/reentrancy-benign.sol#L31-L35",
"id": "5419993a97881c5ada3458672ea5955e9eefae288ac2d4fd84854499ff1569b5",
"check": "reentrancy-benign",
"impact": "Low",
@ -3961,6 +3965,7 @@
],
"description": "Reentrancy in ReentrancyBenign.bad4(address) (tests/detectors/reentrancy-benign/reentrancy-benign.sol#37-42):\n\tExternal calls:\n\t- externalCaller(target) (tests/detectors/reentrancy-benign/reentrancy-benign.sol#38)\n\t\t- address(target).call() (tests/detectors/reentrancy-benign/reentrancy-benign.sol#51)\n\t- ethSender(address(0)) (tests/detectors/reentrancy-benign/reentrancy-benign.sol#39)\n\t\t- address(target).call.value(1)() (tests/detectors/reentrancy-benign/reentrancy-benign.sol#55)\n\tExternal calls sending eth:\n\t- ethSender(address(0)) (tests/detectors/reentrancy-benign/reentrancy-benign.sol#39)\n\t\t- address(target).call.value(1)() (tests/detectors/reentrancy-benign/reentrancy-benign.sol#55)\n\tState variables written after the call(s):\n\t- varChanger() (tests/detectors/reentrancy-benign/reentrancy-benign.sol#40)\n\t\t- anotherVariableToChange ++ (tests/detectors/reentrancy-benign/reentrancy-benign.sol#59)\n",
"markdown": "Reentrancy in [ReentrancyBenign.bad4(address)](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L37-L42):\n\tExternal calls:\n\t- [externalCaller(target)](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L38)\n\t\t- [address(target).call()](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L51)\n\t- [ethSender(address(0))](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L39)\n\t\t- [address(target).call.value(1)()](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L55)\n\tExternal calls sending eth:\n\t- [ethSender(address(0))](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L39)\n\t\t- [address(target).call.value(1)()](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L55)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L40)\n\t\t- [anotherVariableToChange ++](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L59)\n",
"first_markdown_element": "tests/detectors/reentrancy-benign/reentrancy-benign.sol#L37-L42",
"id": "fa81e2a2e03ed4653b8e905384a02bfa7fedc6f9dbbcfed919c9c7e7d39958eb",
"check": "reentrancy-benign",
"impact": "Low",
@ -4571,6 +4576,7 @@
],
"description": "Reentrancy in ReentrancyBenign.bad5(address) (tests/detectors/reentrancy-benign/reentrancy-benign.sol#44-48):\n\tExternal calls:\n\t- ethSender(address(0)) (tests/detectors/reentrancy-benign/reentrancy-benign.sol#45)\n\t\t- address(target).call.value(1)() (tests/detectors/reentrancy-benign/reentrancy-benign.sol#55)\n\tState variables written after the call(s):\n\t- varChanger() (tests/detectors/reentrancy-benign/reentrancy-benign.sol#46)\n\t\t- anotherVariableToChange ++ (tests/detectors/reentrancy-benign/reentrancy-benign.sol#59)\n",
"markdown": "Reentrancy in [ReentrancyBenign.bad5(address)](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L44-L48):\n\tExternal calls:\n\t- [ethSender(address(0))](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L45)\n\t\t- [address(target).call.value(1)()](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L55)\n\tState variables written after the call(s):\n\t- [varChanger()](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L46)\n\t\t- [anotherVariableToChange ++](tests/detectors/reentrancy-benign/reentrancy-benign.sol#L59)\n",
"first_markdown_element": "tests/detectors/reentrancy-benign/reentrancy-benign.sol#L44-L48",
"id": "ef84aa3ab4543f3983d06b6aa80c190924de70eb4e679a9a4330efa67f406ae6",
"check": "reentrancy-benign",
"impact": "Low",

@ -346,6 +346,7 @@
],
"description": "Reentrancy in Reentrancy.withdrawBalance() (tests/detectors/reentrancy-eth/reentrancy-0.5.1.sol#14-22):\n\tExternal calls:\n\t- (ret,mem) = msg.sender.call.value(userBalance[msg.sender])() (tests/detectors/reentrancy-eth/reentrancy-0.5.1.sol#17)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = 0 (tests/detectors/reentrancy-eth/reentrancy-0.5.1.sol#21)\n",
"markdown": "Reentrancy in [Reentrancy.withdrawBalance()](tests/detectors/reentrancy-eth/reentrancy-0.5.1.sol#L14-L22):\n\tExternal calls:\n\t- [(ret,mem) = msg.sender.call.value(userBalance[msg.sender])()](tests/detectors/reentrancy-eth/reentrancy-0.5.1.sol#L17)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = 0](tests/detectors/reentrancy-eth/reentrancy-0.5.1.sol#L21)\n",
"first_markdown_element": "tests/detectors/reentrancy-eth/reentrancy-0.5.1.sol#L14-L22",
"id": "66c3cae6d50c9acab59408e70acfdedb029bd341d87629b67032dc07fb75e97d",
"check": "reentrancy-eth",
"impact": "High",
@ -700,6 +701,7 @@
],
"description": "Reentrancy in Reentrancy.withdrawBalance_fixed_3() (tests/detectors/reentrancy-eth/reentrancy-0.5.1.sol#44-53):\n\tExternal calls:\n\t- (ret,mem) = msg.sender.call.value(amount)() (tests/detectors/reentrancy-eth/reentrancy-0.5.1.sol#49)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = amount (tests/detectors/reentrancy-eth/reentrancy-0.5.1.sol#51)\n",
"markdown": "Reentrancy in [Reentrancy.withdrawBalance_fixed_3()](tests/detectors/reentrancy-eth/reentrancy-0.5.1.sol#L44-L53):\n\tExternal calls:\n\t- [(ret,mem) = msg.sender.call.value(amount)()](tests/detectors/reentrancy-eth/reentrancy-0.5.1.sol#L49)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = amount](tests/detectors/reentrancy-eth/reentrancy-0.5.1.sol#L51)\n",
"first_markdown_element": "tests/detectors/reentrancy-eth/reentrancy-0.5.1.sol#L44-L53",
"id": "25b8576f6e42ebf79ffdbcd1ed96283f587bc88f3d0712bac71d5b786a14bbb9",
"check": "reentrancy-eth",
"impact": "High",

@ -397,6 +397,7 @@
],
"description": "Reentrancy in Reentrancy.withdrawBalance() (tests/detectors/reentrancy-eth/reentrancy.sol#14-21):\n\tExternal calls:\n\t- ! (msg.sender.call.value(userBalance[msg.sender])()) (tests/detectors/reentrancy-eth/reentrancy.sol#17)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = 0 (tests/detectors/reentrancy-eth/reentrancy.sol#20)\n",
"markdown": "Reentrancy in [Reentrancy.withdrawBalance()](tests/detectors/reentrancy-eth/reentrancy.sol#L14-L21):\n\tExternal calls:\n\t- [! (msg.sender.call.value(userBalance[msg.sender])())](tests/detectors/reentrancy-eth/reentrancy.sol#L17)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = 0](tests/detectors/reentrancy-eth/reentrancy.sol#L20)\n",
"first_markdown_element": "tests/detectors/reentrancy-eth/reentrancy.sol#L14-L21",
"id": "6269e8974e176ba8871cdc851f735af4651f431dead223d867e770705c3d3306",
"check": "reentrancy-eth",
"impact": "High",
@ -796,6 +797,7 @@
],
"description": "Reentrancy in Reentrancy.withdrawBalance_nested() (tests/detectors/reentrancy-eth/reentrancy.sol#64-70):\n\tExternal calls:\n\t- msg.sender.call.value(amount / 2)() (tests/detectors/reentrancy-eth/reentrancy.sol#67)\n\tState variables written after the call(s):\n\t- userBalance[msg.sender] = 0 (tests/detectors/reentrancy-eth/reentrancy.sol#68)\n",
"markdown": "Reentrancy in [Reentrancy.withdrawBalance_nested()](tests/detectors/reentrancy-eth/reentrancy.sol#L64-L70):\n\tExternal calls:\n\t- [msg.sender.call.value(amount / 2)()](tests/detectors/reentrancy-eth/reentrancy.sol#L67)\n\tState variables written after the call(s):\n\t- [userBalance[msg.sender] = 0](tests/detectors/reentrancy-eth/reentrancy.sol#L68)\n",
"first_markdown_element": "tests/detectors/reentrancy-eth/reentrancy.sol#L64-L70",
"id": "2fb2fe1e62bcd0c2921b856a9d4f2da8575a311b140d47dd3eb1a34ed1c5f69c",
"check": "reentrancy-eth",
"impact": "High",

@ -444,6 +444,7 @@
],
"description": "Reentrancy in Reentrancy.withdraw(address) (tests/detectors/reentrancy-eth/reentrancy_indirect.sol#22-29):\n\tExternal calls:\n\t- require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender])) (tests/detectors/reentrancy-eth/reentrancy_indirect.sol#24)\n\tExternal calls sending eth:\n\t- msg.sender.transfer(eth_deposed[token][msg.sender]) (tests/detectors/reentrancy-eth/reentrancy_indirect.sol#23)\n\tState variables written after the call(s):\n\t- eth_deposed[token][msg.sender] = 0 (tests/detectors/reentrancy-eth/reentrancy_indirect.sol#26)\n\t- token_deposed[token][msg.sender] = 0 (tests/detectors/reentrancy-eth/reentrancy_indirect.sol#27)\n",
"markdown": "Reentrancy in [Reentrancy.withdraw(address)](tests/detectors/reentrancy-eth/reentrancy_indirect.sol#L22-L29):\n\tExternal calls:\n\t- [require(bool)(Token(token).transfer(msg.sender,token_deposed[token][msg.sender]))](tests/detectors/reentrancy-eth/reentrancy_indirect.sol#L24)\n\tExternal calls sending eth:\n\t- [msg.sender.transfer(eth_deposed[token][msg.sender])](tests/detectors/reentrancy-eth/reentrancy_indirect.sol#L23)\n\tState variables written after the call(s):\n\t- [eth_deposed[token][msg.sender] = 0](tests/detectors/reentrancy-eth/reentrancy_indirect.sol#L26)\n\t- [token_deposed[token][msg.sender] = 0](tests/detectors/reentrancy-eth/reentrancy_indirect.sol#L27)\n",
"first_markdown_element": "tests/detectors/reentrancy-eth/reentrancy_indirect.sol#L22-L29",
"id": "6e23805ff4c3ce23f8f3ae167941b4a67257de1c0708934494dd826c2e62a5b3",
"check": "reentrancy-eth",
"impact": "High",

@ -216,6 +216,7 @@
],
"description": "Reentrancy in Test.bug(C) (tests/detectors/reentrancy-events/reentrancy-0.5.1-events.sol#14-17):\n\tExternal calls:\n\t- c.f() (tests/detectors/reentrancy-events/reentrancy-0.5.1-events.sol#15)\n\tEvent emitted after the call(s):\n\t- E() (tests/detectors/reentrancy-events/reentrancy-0.5.1-events.sol#16)\n",
"markdown": "Reentrancy in [Test.bug(C)](tests/detectors/reentrancy-events/reentrancy-0.5.1-events.sol#L14-L17):\n\tExternal calls:\n\t- [c.f()](tests/detectors/reentrancy-events/reentrancy-0.5.1-events.sol#L15)\n\tEvent emitted after the call(s):\n\t- [E()](tests/detectors/reentrancy-events/reentrancy-0.5.1-events.sol#L16)\n",
"first_markdown_element": "tests/detectors/reentrancy-events/reentrancy-0.5.1-events.sol#L14-L17",
"id": "8b509fb9b9264baf213e2f3959b4d88d285f4591752f1cfbf0eb3c2da13e0e3e",
"check": "reentrancy-events",
"impact": "Low",

@ -117,6 +117,7 @@
],
"description": "C (tests/detectors/reused-constructor/reused_base_constructor.sol#14-18) gives base constructor A.constructor(uint256) (tests/detectors/reused-constructor/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From C (tests/detectors/reused-constructor/reused_base_constructor.sol#14-18) constructor definition\n\t- From B (tests/detectors/reused-constructor/reused_base_constructor.sol#8-12) constructor definition\n",
"markdown": "[C](tests/detectors/reused-constructor/reused_base_constructor.sol#L14-L18) gives base constructor [A.constructor(uint256)](tests/detectors/reused-constructor/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [C](tests/detectors/reused-constructor/reused_base_constructor.sol#L14-L18) constructor definition\n\t- From [B](tests/detectors/reused-constructor/reused_base_constructor.sol#L8-L12) constructor definition\n",
"first_markdown_element": "tests/detectors/reused-constructor/reused_base_constructor.sol#L14-L18",
"id": "2d9d2b1b6d2540f86fd909f9766e128da573e659f40a50835cc9adef3c4dbee8",
"check": "reused-constructor",
"impact": "Medium",
@ -238,6 +239,7 @@
],
"description": "D (tests/detectors/reused-constructor/reused_base_constructor.sol#20-24) gives base constructor B.constructor(uint256) (tests/detectors/reused-constructor/reused_base_constructor.sol#9-11) arguments more than once in inheritance hierarchy:\n\t- From D (tests/detectors/reused-constructor/reused_base_constructor.sol#20-24) contract definition\n\t- From D (tests/detectors/reused-constructor/reused_base_constructor.sol#20-24) constructor definition\n",
"markdown": "[D](tests/detectors/reused-constructor/reused_base_constructor.sol#L20-L24) gives base constructor [B.constructor(uint256)](tests/detectors/reused-constructor/reused_base_constructor.sol#L9-L11) arguments more than once in inheritance hierarchy:\n\t- From [D](tests/detectors/reused-constructor/reused_base_constructor.sol#L20-L24) contract definition\n\t- From [D](tests/detectors/reused-constructor/reused_base_constructor.sol#L20-L24) constructor definition\n",
"first_markdown_element": "tests/detectors/reused-constructor/reused_base_constructor.sol#L20-L24",
"id": "5f3b188e7d6c737684f829c3fde96f739cd502b4aba8f3f6e3ceab7decffa618",
"check": "reused-constructor",
"impact": "Medium",
@ -359,6 +361,7 @@
],
"description": "D (tests/detectors/reused-constructor/reused_base_constructor.sol#20-24) gives base constructor C.constructor(uint256) (tests/detectors/reused-constructor/reused_base_constructor.sol#15-17) arguments more than once in inheritance hierarchy:\n\t- From D (tests/detectors/reused-constructor/reused_base_constructor.sol#20-24) contract definition\n\t- From D (tests/detectors/reused-constructor/reused_base_constructor.sol#20-24) constructor definition\n",
"markdown": "[D](tests/detectors/reused-constructor/reused_base_constructor.sol#L20-L24) gives base constructor [C.constructor(uint256)](tests/detectors/reused-constructor/reused_base_constructor.sol#L15-L17) arguments more than once in inheritance hierarchy:\n\t- From [D](tests/detectors/reused-constructor/reused_base_constructor.sol#L20-L24) contract definition\n\t- From [D](tests/detectors/reused-constructor/reused_base_constructor.sol#L20-L24) constructor definition\n",
"first_markdown_element": "tests/detectors/reused-constructor/reused_base_constructor.sol#L20-L24",
"id": "b579da8996b6a1a35169bcae74ad8126c68fb0a1819d3977cea3e0e295ff2d5c",
"check": "reused-constructor",
"impact": "Medium",
@ -481,6 +484,7 @@
],
"description": "D (tests/detectors/reused-constructor/reused_base_constructor.sol#20-24) gives base constructor A.constructor(uint256) (tests/detectors/reused-constructor/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From C (tests/detectors/reused-constructor/reused_base_constructor.sol#14-18) constructor definition\n\t- From B (tests/detectors/reused-constructor/reused_base_constructor.sol#8-12) constructor definition\n",
"markdown": "[D](tests/detectors/reused-constructor/reused_base_constructor.sol#L20-L24) gives base constructor [A.constructor(uint256)](tests/detectors/reused-constructor/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [C](tests/detectors/reused-constructor/reused_base_constructor.sol#L14-L18) constructor definition\n\t- From [B](tests/detectors/reused-constructor/reused_base_constructor.sol#L8-L12) constructor definition\n",
"first_markdown_element": "tests/detectors/reused-constructor/reused_base_constructor.sol#L20-L24",
"id": "1f85bf19873eaee39a8f703b0c783aa86e34c91fad5556ee831eb7c6adcfdb77",
"check": "reused-constructor",
"impact": "Medium",
@ -646,6 +650,7 @@
],
"description": "E (tests/detectors/reused-constructor/reused_base_constructor.sol#26-30) gives base constructor B.constructor(uint256) (tests/detectors/reused-constructor/reused_base_constructor.sol#9-11) arguments more than once in inheritance hierarchy:\n\t- From E (tests/detectors/reused-constructor/reused_base_constructor.sol#26-30) contract definition\n\t- From E (tests/detectors/reused-constructor/reused_base_constructor.sol#26-30) constructor definition\n\t- From D (tests/detectors/reused-constructor/reused_base_constructor.sol#20-24) contract definition\n\t- From D (tests/detectors/reused-constructor/reused_base_constructor.sol#20-24) constructor definition\n",
"markdown": "[E](tests/detectors/reused-constructor/reused_base_constructor.sol#L26-L30) gives base constructor [B.constructor(uint256)](tests/detectors/reused-constructor/reused_base_constructor.sol#L9-L11) arguments more than once in inheritance hierarchy:\n\t- From [E](tests/detectors/reused-constructor/reused_base_constructor.sol#L26-L30) contract definition\n\t- From [E](tests/detectors/reused-constructor/reused_base_constructor.sol#L26-L30) constructor definition\n\t- From [D](tests/detectors/reused-constructor/reused_base_constructor.sol#L20-L24) contract definition\n\t- From [D](tests/detectors/reused-constructor/reused_base_constructor.sol#L20-L24) constructor definition\n",
"first_markdown_element": "tests/detectors/reused-constructor/reused_base_constructor.sol#L26-L30",
"id": "ee7d44329ffb81dc06e2a2f1b3a166a5115287a1175b32cf828b57479afbc4ae",
"check": "reused-constructor",
"impact": "Medium",
@ -789,6 +794,7 @@
],
"description": "E (tests/detectors/reused-constructor/reused_base_constructor.sol#26-30) gives base constructor C.constructor(uint256) (tests/detectors/reused-constructor/reused_base_constructor.sol#15-17) arguments more than once in inheritance hierarchy:\n\t- From E (tests/detectors/reused-constructor/reused_base_constructor.sol#26-30) constructor definition\n\t- From D (tests/detectors/reused-constructor/reused_base_constructor.sol#20-24) contract definition\n\t- From D (tests/detectors/reused-constructor/reused_base_constructor.sol#20-24) constructor definition\n",
"markdown": "[E](tests/detectors/reused-constructor/reused_base_constructor.sol#L26-L30) gives base constructor [C.constructor(uint256)](tests/detectors/reused-constructor/reused_base_constructor.sol#L15-L17) arguments more than once in inheritance hierarchy:\n\t- From [E](tests/detectors/reused-constructor/reused_base_constructor.sol#L26-L30) constructor definition\n\t- From [D](tests/detectors/reused-constructor/reused_base_constructor.sol#L20-L24) contract definition\n\t- From [D](tests/detectors/reused-constructor/reused_base_constructor.sol#L20-L24) constructor definition\n",
"first_markdown_element": "tests/detectors/reused-constructor/reused_base_constructor.sol#L26-L30",
"id": "33b16377cf3026b60d644e79d92682e6e626d7ad6598387440c9b20fd8aa44fe",
"check": "reused-constructor",
"impact": "Medium",
@ -911,6 +917,7 @@
],
"description": "E (tests/detectors/reused-constructor/reused_base_constructor.sol#26-30) gives base constructor A.constructor(uint256) (tests/detectors/reused-constructor/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From C (tests/detectors/reused-constructor/reused_base_constructor.sol#14-18) constructor definition\n\t- From B (tests/detectors/reused-constructor/reused_base_constructor.sol#8-12) constructor definition\n",
"markdown": "[E](tests/detectors/reused-constructor/reused_base_constructor.sol#L26-L30) gives base constructor [A.constructor(uint256)](tests/detectors/reused-constructor/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [C](tests/detectors/reused-constructor/reused_base_constructor.sol#L14-L18) constructor definition\n\t- From [B](tests/detectors/reused-constructor/reused_base_constructor.sol#L8-L12) constructor definition\n",
"first_markdown_element": "tests/detectors/reused-constructor/reused_base_constructor.sol#L26-L30",
"id": "f5c86955c15d44fe9471680d12d37843a15ba934cbb124786cadab0919ea68d1",
"check": "reused-constructor",
"impact": "Medium",
@ -1035,6 +1042,7 @@
],
"description": "F (tests/detectors/reused-constructor/reused_base_constructor.sol#33-38) gives base constructor A.constructor(uint256) (tests/detectors/reused-constructor/reused_base_constructor.sol#3-5) arguments more than once in inheritance hierarchy:\n\t- From F (tests/detectors/reused-constructor/reused_base_constructor.sol#33-38) constructor definition\n\t- From B (tests/detectors/reused-constructor/reused_base_constructor.sol#8-12) constructor definition\n",
"markdown": "[F](tests/detectors/reused-constructor/reused_base_constructor.sol#L33-L38) gives base constructor [A.constructor(uint256)](tests/detectors/reused-constructor/reused_base_constructor.sol#L3-L5) arguments more than once in inheritance hierarchy:\n\t- From [F](tests/detectors/reused-constructor/reused_base_constructor.sol#L33-L38) constructor definition\n\t- From [B](tests/detectors/reused-constructor/reused_base_constructor.sol#L8-L12) constructor definition\n",
"first_markdown_element": "tests/detectors/reused-constructor/reused_base_constructor.sol#L33-L38",
"id": "b74eb2b11af7a004b623d28b035228963f09aed588c95efed636021f426c5cdc",
"check": "reused-constructor",
"impact": "Medium",

@ -23,6 +23,7 @@
],
"description": "tests/detectors/rtlo/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96:\n\t- b' test1(/*A\\xe2\\x80\\xae/*B*/2 , 1/*\\xe2\\x80\\xad'\n",
"markdown": "tests/detectors/rtlo/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96:\n\t- b' test1(/*A\\xe2\\x80\\xae/*B*/2 , 1/*\\xe2\\x80\\xad'\n",
"first_markdown_element": "",
"id": "37c4d2e4e10885656018f0bfd41fd410efa58869ae79a3937bfa6c2f41ac4027",
"check": "rtlo",
"impact": "High",

@ -87,6 +87,7 @@
],
"description": "DerivedContract.owner (tests/detectors/shadowing-abstract/shadowing_abstract.sol#7) shadows:\n\t- BaseContract.owner (tests/detectors/shadowing-abstract/shadowing_abstract.sol#2)\n",
"markdown": "[DerivedContract.owner](tests/detectors/shadowing-abstract/shadowing_abstract.sol#L7) shadows:\n\t- [BaseContract.owner](tests/detectors/shadowing-abstract/shadowing_abstract.sol#L2)\n",
"first_markdown_element": "tests/detectors/shadowing-abstract/shadowing_abstract.sol#L7",
"id": "9c5c3fc5091b9ecd6ec271fdbb3036d9d3426cdf9a09d6cc293fd7de9240e4ab",
"check": "shadowing-abstract",
"impact": "Medium",

@ -48,6 +48,7 @@
],
"description": "BaseContract.blockhash (tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#4) (state variable) shadows built-in symbol\"\n",
"markdown": "[BaseContract.blockhash](tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L4) (state variable) shadows built-in symbol\"\n",
"first_markdown_element": "tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L4",
"id": "61d1c1452e694c321d00576decdf35c62efbe8860f664273955fadce5e063cc8",
"check": "shadowing-builtin",
"impact": "Low",
@ -101,6 +102,7 @@
],
"description": "BaseContract.now (tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#5) (state variable) shadows built-in symbol\"\n",
"markdown": "[BaseContract.now](tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L5) (state variable) shadows built-in symbol\"\n",
"first_markdown_element": "tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L5",
"id": "942ad0405af0bc533374dded6e2474c53892747c98d2df14d59cbb6840fa18b3",
"check": "shadowing-builtin",
"impact": "Low",
@ -155,6 +157,7 @@
],
"description": "BaseContractrevert(bool) (tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#7) (event) shadows built-in symbol\"\n",
"markdown": "[BaseContractrevert(bool)](tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L7) (event) shadows built-in symbol\"\n",
"first_markdown_element": "tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L7",
"id": "9c428e61cb4832d899b2bb711c8d428154425dbadf5dfc2e2d857254824d8f72",
"check": "shadowing-builtin",
"impact": "Low",
@ -212,6 +215,7 @@
],
"description": "ExtendedContract.assert(bool) (tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#13-15) (function) shadows built-in symbol\"\n",
"markdown": "[ExtendedContract.assert(bool)](tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L13-L15) (function) shadows built-in symbol\"\n",
"first_markdown_element": "tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L13-L15",
"id": "b3a1b23c1daed52b1a2ff5fb76d4fcdf2bc0b2126524303321cf8e7835116d6f",
"check": "shadowing-builtin",
"impact": "Low",
@ -289,6 +293,7 @@
],
"description": "ExtendedContract.assert(bool).msg (tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#14) (local variable) shadows built-in symbol\"\n",
"markdown": "[ExtendedContract.assert(bool).msg](tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L14) (local variable) shadows built-in symbol\"\n",
"first_markdown_element": "tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L14",
"id": "a2a7e1e27320d38e52b51c9b1ec67cca0a403673ff6fdd59652f9cd8425d011f",
"check": "shadowing-builtin",
"impact": "Low",
@ -343,6 +348,7 @@
],
"description": "ExtendedContract.ecrecover (tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#11) (state variable) shadows built-in symbol\"\n",
"markdown": "[ExtendedContract.ecrecover](tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L11) (state variable) shadows built-in symbol\"\n",
"first_markdown_element": "tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L11",
"id": "39737925cf3bd4ebf9a1c7bbe39da8b80ba28e5a3d93a938d1a4cca78a6a436d",
"check": "shadowing-builtin",
"impact": "Low",
@ -408,6 +414,7 @@
],
"description": "FurtherExtendedContract.require() (tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#23-28) (modifier) shadows built-in symbol\"\n",
"markdown": "[FurtherExtendedContract.require()](tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L23-L28) (modifier) shadows built-in symbol\"\n",
"first_markdown_element": "tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L23-L28",
"id": "db6c26c9a7c319c1a34c486e6e625c0906a2b118f8cd72f38a38c167832aab4f",
"check": "shadowing-builtin",
"impact": "Low",
@ -493,6 +500,7 @@
],
"description": "FurtherExtendedContract.require().keccak256 (tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#25) (local variable) shadows built-in symbol\"\n",
"markdown": "[FurtherExtendedContract.require().keccak256](tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L25) (local variable) shadows built-in symbol\"\n",
"first_markdown_element": "tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L25",
"id": "40f0453d27abf2d9ed76fe60853b6e2e0cd9a443d639e9da457460ea02b2bdc7",
"check": "shadowing-builtin",
"impact": "Low",
@ -578,6 +586,7 @@
],
"description": "FurtherExtendedContract.require().sha3 (tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#26) (local variable) shadows built-in symbol\"\n",
"markdown": "[FurtherExtendedContract.require().sha3](tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L26) (local variable) shadows built-in symbol\"\n",
"first_markdown_element": "tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L26",
"id": "c481dbbf77c99cb337740a656ebabae1c89bf13b9d7b7d315dcf54feeab1cd63",
"check": "shadowing-builtin",
"impact": "Low",
@ -637,6 +646,7 @@
],
"description": "FurtherExtendedContract.blockhash (tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#19) (state variable) shadows built-in symbol\"\n",
"markdown": "[FurtherExtendedContract.blockhash](tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L19) (state variable) shadows built-in symbol\"\n",
"first_markdown_element": "tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L19",
"id": "d405ccbec679f921252d475591a890a89a023b375dc4994119967693692f8da9",
"check": "shadowing-builtin",
"impact": "Low",
@ -696,6 +706,7 @@
],
"description": "FurtherExtendedContract.this (tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#20) (state variable) shadows built-in symbol\"\n",
"markdown": "[FurtherExtendedContract.this](tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L20) (state variable) shadows built-in symbol\"\n",
"first_markdown_element": "tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L20",
"id": "87e1cc0cb95181dd120d3e6e55d89fdc7b5cd01da2f89cd7a3d105738f57c10b",
"check": "shadowing-builtin",
"impact": "Low",
@ -755,6 +766,7 @@
],
"description": "FurtherExtendedContract.abi (tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#21) (state variable) shadows built-in symbol\"\n",
"markdown": "[FurtherExtendedContract.abi](tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L21) (state variable) shadows built-in symbol\"\n",
"first_markdown_element": "tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L21",
"id": "4665243a2df090e3543ab26447528fa3401916f4669fe1264145891846d4bc40",
"check": "shadowing-builtin",
"impact": "Low",
@ -806,6 +818,7 @@
],
"description": "Reserved.mutable (tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#32) (state variable) shadows built-in symbol\"\n",
"markdown": "[Reserved.mutable](tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L32) (state variable) shadows built-in symbol\"\n",
"first_markdown_element": "tests/detectors/shadowing-builtin/shadowing_builtin_symbols.sol#L32",
"id": "11840553a9e11623596d7a07275814e65a5b1d90277ae0e2954cd8ce74d6a6d2",
"check": "shadowing-builtin",
"impact": "Low",

@ -207,6 +207,7 @@
],
"description": "FurtherExtendedContract.shadowingParent(uint256).x (tests/detectors/shadowing-local/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.x (tests/detectors/shadowing-local/shadowing_local_variable.sol#17) (state variable)\n\t- ExtendedContract.x (tests/detectors/shadowing-local/shadowing_local_variable.sol#9) (state variable)\n\t- BaseContract.x (tests/detectors/shadowing-local/shadowing_local_variable.sol#4) (state variable)\n",
"markdown": "[FurtherExtendedContract.shadowingParent(uint256).x](tests/detectors/shadowing-local/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.x](tests/detectors/shadowing-local/shadowing_local_variable.sol#L17) (state variable)\n\t- [ExtendedContract.x](tests/detectors/shadowing-local/shadowing_local_variable.sol#L9) (state variable)\n\t- [BaseContract.x](tests/detectors/shadowing-local/shadowing_local_variable.sol#L4) (state variable)\n",
"first_markdown_element": "tests/detectors/shadowing-local/shadowing_local_variable.sol#L25",
"id": "0991435c12aa2d6f15e8da2a00a18e9c58ef65dcf31137cdb561655317353247",
"check": "shadowing-local",
"impact": "Low",
@ -327,6 +328,7 @@
],
"description": "FurtherExtendedContract.shadowingParent(uint256).y (tests/detectors/shadowing-local/shadowing_local_variable.sol#25) shadows:\n\t- BaseContract.y (tests/detectors/shadowing-local/shadowing_local_variable.sol#5) (state variable)\n",
"markdown": "[FurtherExtendedContract.shadowingParent(uint256).y](tests/detectors/shadowing-local/shadowing_local_variable.sol#L25) shadows:\n\t- [BaseContract.y](tests/detectors/shadowing-local/shadowing_local_variable.sol#L5) (state variable)\n",
"first_markdown_element": "tests/detectors/shadowing-local/shadowing_local_variable.sol#L25",
"id": "465bd81cbb09a3d2cc84ea6102fb059296f1970e85e2d86a171f8219f1a34508",
"check": "shadowing-local",
"impact": "Low",
@ -451,6 +453,7 @@
],
"description": "FurtherExtendedContract.shadowingParent(uint256).z (tests/detectors/shadowing-local/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContract.z() (tests/detectors/shadowing-local/shadowing_local_variable.sol#11) (function)\n",
"markdown": "[FurtherExtendedContract.shadowingParent(uint256).z](tests/detectors/shadowing-local/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContract.z()](tests/detectors/shadowing-local/shadowing_local_variable.sol#L11) (function)\n",
"first_markdown_element": "tests/detectors/shadowing-local/shadowing_local_variable.sol#L25",
"id": "e3d2948e9c1252fe84e0d7e58f6682af7af84ef209f6e71f039faccabf07b0bd",
"check": "shadowing-local",
"impact": "Low",
@ -582,6 +585,7 @@
],
"description": "FurtherExtendedContract.shadowingParent(uint256).w (tests/detectors/shadowing-local/shadowing_local_variable.sol#25) shadows:\n\t- FurtherExtendedContract.w() (tests/detectors/shadowing-local/shadowing_local_variable.sol#20-23) (modifier)\n",
"markdown": "[FurtherExtendedContract.shadowingParent(uint256).w](tests/detectors/shadowing-local/shadowing_local_variable.sol#L25) shadows:\n\t- [FurtherExtendedContract.w()](tests/detectors/shadowing-local/shadowing_local_variable.sol#L20-L23) (modifier)\n",
"first_markdown_element": "tests/detectors/shadowing-local/shadowing_local_variable.sol#L25",
"id": "a94a2b9331482c75582868e6d3cc5c9b01487e7505f219abcf36a20d76e0b089",
"check": "shadowing-local",
"impact": "Low",
@ -706,6 +710,7 @@
],
"description": "FurtherExtendedContract.shadowingParent(uint256).v (tests/detectors/shadowing-local/shadowing_local_variable.sol#25) shadows:\n\t- ExtendedContractv() (tests/detectors/shadowing-local/shadowing_local_variable.sol#13) (event)\n",
"markdown": "[FurtherExtendedContract.shadowingParent(uint256).v](tests/detectors/shadowing-local/shadowing_local_variable.sol#L25) shadows:\n\t- [ExtendedContractv()](tests/detectors/shadowing-local/shadowing_local_variable.sol#L13) (event)\n",
"first_markdown_element": "tests/detectors/shadowing-local/shadowing_local_variable.sol#L25",
"id": "973e31cc30dc7a3e1f089dfa5848234075f237f78fa492c772b1083e12c79054",
"check": "shadowing-local",
"impact": "Low",

@ -99,6 +99,7 @@
],
"description": "DerivedContract.owner (tests/detectors/shadowing-state/shadowing_state_variable.sol#12) shadows:\n\t- BaseContract.owner (tests/detectors/shadowing-state/shadowing_state_variable.sol#2)\n",
"markdown": "[DerivedContract.owner](tests/detectors/shadowing-state/shadowing_state_variable.sol#L12) shadows:\n\t- [BaseContract.owner](tests/detectors/shadowing-state/shadowing_state_variable.sol#L2)\n",
"first_markdown_element": "tests/detectors/shadowing-state/shadowing_state_variable.sol#L12",
"id": "9c5c3fc5091b9ecd6ec271fdbb3036d9d3426cdf9a09d6cc293fd7de9240e4ab",
"check": "shadowing-state",
"impact": "High",

@ -30,6 +30,7 @@
],
"description": "Pragma version0.4.21 (tests/detectors/solc-version/old_solc.sol#1) allows old versions\n",
"markdown": "Pragma version[0.4.21](tests/detectors/solc-version/old_solc.sol#L1) allows old versions\n",
"first_markdown_element": "tests/detectors/solc-version/old_solc.sol#L1",
"id": "5ee25540b8c3544f4c954ad10f5f76ad54f790ee070d9d9c7d203df01a40d859",
"check": "solc-version",
"impact": "Informational",
@ -39,6 +40,7 @@
"elements": [],
"description": "solc-0.4.21 is not recommended for deployment\n",
"markdown": "solc-0.4.21 is not recommended for deployment\n",
"first_markdown_element": "",
"id": "11c23ced8dbc94c44bd7809b5adfe4054fff8cd744f85723555d37f0b714b15f",
"check": "solc-version",
"impact": "Informational",

@ -31,6 +31,7 @@
],
"description": "Pragma version^0.4.23 (tests/detectors/solc-version/solc_version_incorrect.sol#2) allows old versions\n",
"markdown": "Pragma version[^0.4.23](tests/detectors/solc-version/solc_version_incorrect.sol#L2) allows old versions\n",
"first_markdown_element": "tests/detectors/solc-version/solc_version_incorrect.sol#L2",
"id": "9e8a7bb5987ce0fe4737630abd296ce35c96b7f0a7ad285234713e22354e5fa8",
"check": "solc-version",
"impact": "Informational",
@ -70,6 +71,7 @@
],
"description": "Pragma version>=0.4.0<0.6.0 (tests/detectors/solc-version/solc_version_incorrect.sol#3) allows old versions\n",
"markdown": "Pragma version[>=0.4.0<0.6.0](tests/detectors/solc-version/solc_version_incorrect.sol#L3) allows old versions\n",
"first_markdown_element": "tests/detectors/solc-version/solc_version_incorrect.sol#L3",
"id": "70f700a75d3fbd63be6d884dc523f5722dcc2289ad87207e9f69e0cbb218df6b",
"check": "solc-version",
"impact": "Informational",
@ -79,6 +81,7 @@
"elements": [],
"description": "solc-0.4.25 is not recommended for deployment\n",
"markdown": "solc-0.4.25 is not recommended for deployment\n",
"first_markdown_element": "",
"id": "4d64003d70a62b1c6963f871e841b6cbd633d07d95554e1a50e0f25d9b71ebb3",
"check": "solc-version",
"impact": "Informational",

@ -31,6 +31,7 @@
],
"description": "Pragma version^0.5.5 (tests/detectors/solc-version/solc_version_incorrect_05.sol#2) is known to contain severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n",
"markdown": "Pragma version[^0.5.5](tests/detectors/solc-version/solc_version_incorrect_05.sol#L2) is known to contain severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n",
"first_markdown_element": "tests/detectors/solc-version/solc_version_incorrect_05.sol#L2",
"id": "bdfe04d54ea5e3c3450dfcc88d663e870410def39c0eff26e9ca106855268e40",
"check": "solc-version",
"impact": "Informational",
@ -66,6 +67,7 @@
],
"description": "Pragma version0.5.7 (tests/detectors/solc-version/solc_version_incorrect_05.sol#3) allows old versions\n",
"markdown": "Pragma version[0.5.7](tests/detectors/solc-version/solc_version_incorrect_05.sol#L3) allows old versions\n",
"first_markdown_element": "tests/detectors/solc-version/solc_version_incorrect_05.sol#L3",
"id": "bf922f94b9333a8f10fca8ea8bed93e8ee8ed5b398b0e730a361f9bc42570a92",
"check": "solc-version",
"impact": "Informational",
@ -75,6 +77,7 @@
"elements": [],
"description": "solc-0.5.7 is not recommended for deployment\n",
"markdown": "solc-0.5.7 is not recommended for deployment\n",
"first_markdown_element": "",
"id": "198d7f1df469662424720d03245311877e3b860e9b1ef666447ec8b3c03d557b",
"check": "solc-version",
"impact": "Informational",

@ -64,19 +64,19 @@
},
{
"type": "function",
"name": "bad0",
"name": "bad1",
"source_mapping": {
"start": 355,
"length": 132,
"start": 601,
"length": 170,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/storage-array/storage_signed_integer_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/storage-array/storage_signed_integer_array.sol",
"is_dependency": false,
"lines": [
10,
11,
12
15,
16,
17
],
"starting_column": 3,
"ending_column": 4
@ -142,42 +142,42 @@
"ending_column": 2
}
},
"signature": "bad0()"
"signature": "bad1(int128[3])"
}
},
{
"type": "node",
"name": "intArray = (- 1,- 2,- 3)",
"name": "intArray = userArray",
"source_mapping": {
"start": 384,
"length": 23,
"start": 746,
"length": 20,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/storage-array/storage_signed_integer_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/storage-array/storage_signed_integer_array.sol",
"is_dependency": false,
"lines": [
11
16
],
"starting_column": 5,
"ending_column": 28
"ending_column": 25
},
"type_specific_fields": {
"parent": {
"type": "function",
"name": "bad0",
"name": "bad1",
"source_mapping": {
"start": 355,
"length": 132,
"start": 601,
"length": 170,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/storage-array/storage_signed_integer_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/storage-array/storage_signed_integer_array.sol",
"is_dependency": false,
"lines": [
10,
11,
12
15,
16,
17
],
"starting_column": 3,
"ending_column": 4
@ -243,15 +243,16 @@
"ending_column": 2
}
},
"signature": "bad0()"
"signature": "bad1(int128[3])"
}
}
}
}
],
"description": "Contract A (tests/detectors/storage-array/storage_signed_integer_array.sol#3-45) \n\t- Function A.bad0() (tests/detectors/storage-array/storage_signed_integer_array.sol#10-12)\n\t\t- intArray = (- 1,- 2,- 3) (tests/detectors/storage-array/storage_signed_integer_array.sol#11) has a storage signed integer array assignment\n",
"markdown": "Contract [A](tests/detectors/storage-array/storage_signed_integer_array.sol#L3-L45) \n\t- Function [A.bad0()](tests/detectors/storage-array/storage_signed_integer_array.sol#L10-L12)\n\t\t- [intArray = (- 1,- 2,- 3)](tests/detectors/storage-array/storage_signed_integer_array.sol#L11) has a storage signed integer array assignment\n",
"id": "9301f6205d07f9bc40477e940ab7093092a8616caab1c78a2b84412ff6dd2eb1",
"description": "Contract A (tests/detectors/storage-array/storage_signed_integer_array.sol#3-45) \n\t- Function A.bad1(int128[3]) (tests/detectors/storage-array/storage_signed_integer_array.sol#15-17)\n\t\t- intArray = userArray (tests/detectors/storage-array/storage_signed_integer_array.sol#16) has a storage signed integer array assignment\n",
"markdown": "Contract [A](tests/detectors/storage-array/storage_signed_integer_array.sol#L3-L45) \n\t- Function [A.bad1(int128[3])](tests/detectors/storage-array/storage_signed_integer_array.sol#L15-L17)\n\t\t- [intArray = userArray](tests/detectors/storage-array/storage_signed_integer_array.sol#L16) has a storage signed integer array assignment\n",
"first_markdown_element": "tests/detectors/storage-array/storage_signed_integer_array.sol#L3-L45",
"id": "e91a19803d53092184a9c091054f1ef371c8e5f9db15c5be6979bc4d06b70362",
"check": "storage-array",
"impact": "High",
"confidence": "Medium"
@ -320,19 +321,19 @@
},
{
"type": "function",
"name": "bad1",
"name": "bad0",
"source_mapping": {
"start": 601,
"length": 170,
"start": 355,
"length": 132,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/storage-array/storage_signed_integer_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/storage-array/storage_signed_integer_array.sol",
"is_dependency": false,
"lines": [
15,
16,
17
10,
11,
12
],
"starting_column": 3,
"ending_column": 4
@ -398,42 +399,42 @@
"ending_column": 2
}
},
"signature": "bad1(int128[3])"
"signature": "bad0()"
}
},
{
"type": "node",
"name": "intArray = userArray",
"name": "intArray = (- 1,- 2,- 3)",
"source_mapping": {
"start": 746,
"length": 20,
"start": 384,
"length": 23,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/storage-array/storage_signed_integer_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/storage-array/storage_signed_integer_array.sol",
"is_dependency": false,
"lines": [
16
11
],
"starting_column": 5,
"ending_column": 25
"ending_column": 28
},
"type_specific_fields": {
"parent": {
"type": "function",
"name": "bad1",
"name": "bad0",
"source_mapping": {
"start": 601,
"length": 170,
"start": 355,
"length": 132,
"filename_used": "/GENERIC_PATH",
"filename_relative": "tests/detectors/storage-array/storage_signed_integer_array.sol",
"filename_absolute": "/GENERIC_PATH",
"filename_short": "tests/detectors/storage-array/storage_signed_integer_array.sol",
"is_dependency": false,
"lines": [
15,
16,
17
10,
11,
12
],
"starting_column": 3,
"ending_column": 4
@ -499,15 +500,16 @@
"ending_column": 2
}
},
"signature": "bad1(int128[3])"
"signature": "bad0()"
}
}
}
}
],
"description": "Contract A (tests/detectors/storage-array/storage_signed_integer_array.sol#3-45) \n\t- Function A.bad1(int128[3]) (tests/detectors/storage-array/storage_signed_integer_array.sol#15-17)\n\t\t- intArray = userArray (tests/detectors/storage-array/storage_signed_integer_array.sol#16) has a storage signed integer array assignment\n",
"markdown": "Contract [A](tests/detectors/storage-array/storage_signed_integer_array.sol#L3-L45) \n\t- Function [A.bad1(int128[3])](tests/detectors/storage-array/storage_signed_integer_array.sol#L15-L17)\n\t\t- [intArray = userArray](tests/detectors/storage-array/storage_signed_integer_array.sol#L16) has a storage signed integer array assignment\n",
"id": "e91a19803d53092184a9c091054f1ef371c8e5f9db15c5be6979bc4d06b70362",
"description": "Contract A (tests/detectors/storage-array/storage_signed_integer_array.sol#3-45) \n\t- Function A.bad0() (tests/detectors/storage-array/storage_signed_integer_array.sol#10-12)\n\t\t- intArray = (- 1,- 2,- 3) (tests/detectors/storage-array/storage_signed_integer_array.sol#11) has a storage signed integer array assignment\n",
"markdown": "Contract [A](tests/detectors/storage-array/storage_signed_integer_array.sol#L3-L45) \n\t- Function [A.bad0()](tests/detectors/storage-array/storage_signed_integer_array.sol#L10-L12)\n\t\t- [intArray = (- 1,- 2,- 3)](tests/detectors/storage-array/storage_signed_integer_array.sol#L11) has a storage signed integer array assignment\n",
"first_markdown_element": "tests/detectors/storage-array/storage_signed_integer_array.sol#L3-L45",
"id": "9301f6205d07f9bc40477e940ab7093092a8616caab1c78a2b84412ff6dd2eb1",
"check": "storage-array",
"impact": "High",
"confidence": "Medium"

@ -145,6 +145,7 @@
],
"description": "Timestamp.bad0() (tests/detectors/timestamp/timestamp.sol#4-6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(block.timestamp == 0) (tests/detectors/timestamp/timestamp.sol#5)\n",
"markdown": "[Timestamp.bad0()](tests/detectors/timestamp/timestamp.sol#L4-L6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(block.timestamp == 0)](tests/detectors/timestamp/timestamp.sol#L5)\n",
"first_markdown_element": "tests/detectors/timestamp/timestamp.sol#L4-L6",
"id": "46e99f9c2bab1735f57c130340547f097ca1a8513c2dd374d3cd756da65d2cdf",
"check": "timestamp",
"impact": "Low",
@ -297,6 +298,7 @@
],
"description": "Timestamp.bad1() (tests/detectors/timestamp/timestamp.sol#8-11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(time == 0) (tests/detectors/timestamp/timestamp.sol#10)\n",
"markdown": "[Timestamp.bad1()](tests/detectors/timestamp/timestamp.sol#L8-L11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(time == 0)](tests/detectors/timestamp/timestamp.sol#L10)\n",
"first_markdown_element": "tests/detectors/timestamp/timestamp.sol#L8-L11",
"id": "b05a8b6947761eb595359596ba4ab88c750a4936836c8a5fed948fe92b2577f0",
"check": "timestamp",
"impact": "Low",
@ -447,6 +449,7 @@
],
"description": "Timestamp.bad2() (tests/detectors/timestamp/timestamp.sol#13-15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > 0 (tests/detectors/timestamp/timestamp.sol#14)\n",
"markdown": "[Timestamp.bad2()](tests/detectors/timestamp/timestamp.sol#L13-L15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > 0](tests/detectors/timestamp/timestamp.sol#L14)\n",
"first_markdown_element": "tests/detectors/timestamp/timestamp.sol#L13-L15",
"id": "81e4ce4ef359ffa86d6c5dec7f465b84cc71668139ce31ee5c41ecd2fb327179",
"check": "timestamp",
"impact": "Low",

@ -145,6 +145,7 @@
],
"description": "Timestamp.bad0() (tests/detectors/timestamp/timestamp.sol#4-6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(block.timestamp == 0) (tests/detectors/timestamp/timestamp.sol#5)\n",
"markdown": "[Timestamp.bad0()](tests/detectors/timestamp/timestamp.sol#L4-L6) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(block.timestamp == 0)](tests/detectors/timestamp/timestamp.sol#L5)\n",
"first_markdown_element": "tests/detectors/timestamp/timestamp.sol#L4-L6",
"id": "46e99f9c2bab1735f57c130340547f097ca1a8513c2dd374d3cd756da65d2cdf",
"check": "timestamp",
"impact": "Low",
@ -297,6 +298,7 @@
],
"description": "Timestamp.bad1() (tests/detectors/timestamp/timestamp.sol#8-11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool)(time == 0) (tests/detectors/timestamp/timestamp.sol#10)\n",
"markdown": "[Timestamp.bad1()](tests/detectors/timestamp/timestamp.sol#L8-L11) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool)(time == 0)](tests/detectors/timestamp/timestamp.sol#L10)\n",
"first_markdown_element": "tests/detectors/timestamp/timestamp.sol#L8-L11",
"id": "b05a8b6947761eb595359596ba4ab88c750a4936836c8a5fed948fe92b2577f0",
"check": "timestamp",
"impact": "Low",
@ -447,6 +449,7 @@
],
"description": "Timestamp.bad2() (tests/detectors/timestamp/timestamp.sol#13-15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- block.timestamp > 0 (tests/detectors/timestamp/timestamp.sol#14)\n",
"markdown": "[Timestamp.bad2()](tests/detectors/timestamp/timestamp.sol#L13-L15) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [block.timestamp > 0](tests/detectors/timestamp/timestamp.sol#L14)\n",
"first_markdown_element": "tests/detectors/timestamp/timestamp.sol#L13-L15",
"id": "81e4ce4ef359ffa86d6c5dec7f465b84cc71668139ce31ee5c41ecd2fb327179",
"check": "timestamp",
"impact": "Low",

@ -189,6 +189,7 @@
],
"description": "C.f() (tests/detectors/too-many-digits/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x1 = 0x000001 (tests/detectors/too-many-digits/too_many_digits.sol#10)\n",
"markdown": "[C.f()](tests/detectors/too-many-digits/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x1 = 0x000001](tests/detectors/too-many-digits/too_many_digits.sol#L10)\n",
"first_markdown_element": "tests/detectors/too-many-digits/too_many_digits.sol#L9-L15",
"id": "143f9fb2446f58c0fc141b8c4900a65f67afd5c4921b9fe0632d0b42993c632e",
"check": "too-many-digits",
"impact": "Informational",
@ -383,6 +384,7 @@
],
"description": "C.f() (tests/detectors/too-many-digits/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x2 = 0x0000000000001 (tests/detectors/too-many-digits/too_many_digits.sol#11)\n",
"markdown": "[C.f()](tests/detectors/too-many-digits/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x2 = 0x0000000000001](tests/detectors/too-many-digits/too_many_digits.sol#L11)\n",
"first_markdown_element": "tests/detectors/too-many-digits/too_many_digits.sol#L9-L15",
"id": "7c264e2e13d1ba736400d6aba40570901b6b3209a66f8beb768fe56eb59c0501",
"check": "too-many-digits",
"impact": "Informational",
@ -577,6 +579,7 @@
],
"description": "C.f() (tests/detectors/too-many-digits/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x3 = 1000000000000000000 (tests/detectors/too-many-digits/too_many_digits.sol#12)\n",
"markdown": "[C.f()](tests/detectors/too-many-digits/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x3 = 1000000000000000000](tests/detectors/too-many-digits/too_many_digits.sol#L12)\n",
"first_markdown_element": "tests/detectors/too-many-digits/too_many_digits.sol#L9-L15",
"id": "b2fbfafaa08d4f8e156369f0f00d386623e9d2af78356ed8f7f60c5274bb964d",
"check": "too-many-digits",
"impact": "Informational",
@ -771,6 +774,7 @@
],
"description": "C.f() (tests/detectors/too-many-digits/too_many_digits.sol#9-15) uses literals with too many digits:\n\t- x4 = 100000 (tests/detectors/too-many-digits/too_many_digits.sol#13)\n",
"markdown": "[C.f()](tests/detectors/too-many-digits/too_many_digits.sol#L9-L15) uses literals with too many digits:\n\t- [x4 = 100000](tests/detectors/too-many-digits/too_many_digits.sol#L13)\n",
"first_markdown_element": "tests/detectors/too-many-digits/too_many_digits.sol#L9-L15",
"id": "7194744ba0e788c1ded916dead1010c888619e3a7044c1aca5637c5a4b5d7e9e",
"check": "too-many-digits",
"impact": "Informational",
@ -961,6 +965,7 @@
],
"description": "C.h() (tests/detectors/too-many-digits/too_many_digits.sol#20-24) uses literals with too many digits:\n\t- x2 = 100000 (tests/detectors/too-many-digits/too_many_digits.sol#22)\n",
"markdown": "[C.h()](tests/detectors/too-many-digits/too_many_digits.sol#L20-L24) uses literals with too many digits:\n\t- [x2 = 100000](tests/detectors/too-many-digits/too_many_digits.sol#L22)\n",
"first_markdown_element": "tests/detectors/too-many-digits/too_many_digits.sol#L20-L24",
"id": "0c73f2851303eef65586504c4f6a9c78c6bb8aa48f44e775c6f5a8520227a757",
"check": "too-many-digits",
"impact": "Informational",

@ -153,6 +153,7 @@
],
"description": "TxOrigin.bug0() (tests/detectors/tx-origin/tx_origin-0.5.1.sol#9-11) uses tx.origin for authorization: require(bool)(tx.origin == owner) (tests/detectors/tx-origin/tx_origin-0.5.1.sol#10)\n",
"markdown": "[TxOrigin.bug0()](tests/detectors/tx-origin/tx_origin-0.5.1.sol#L9-L11) uses tx.origin for authorization: [require(bool)(tx.origin == owner)](tests/detectors/tx-origin/tx_origin-0.5.1.sol#L10)\n",
"first_markdown_element": "tests/detectors/tx-origin/tx_origin-0.5.1.sol#L9-L11",
"id": "c69888e2e14c1a2f3eb49efce81b6561fd48ff4ca0dfe6b21db2ddd3e962b59f",
"check": "tx-origin",
"impact": "Medium",
@ -315,6 +316,7 @@
],
"description": "TxOrigin.bug2() (tests/detectors/tx-origin/tx_origin-0.5.1.sol#13-17) uses tx.origin for authorization: tx.origin != owner (tests/detectors/tx-origin/tx_origin-0.5.1.sol#14)\n",
"markdown": "[TxOrigin.bug2()](tests/detectors/tx-origin/tx_origin-0.5.1.sol#L13-L17) uses tx.origin for authorization: [tx.origin != owner](tests/detectors/tx-origin/tx_origin-0.5.1.sol#L14)\n",
"first_markdown_element": "tests/detectors/tx-origin/tx_origin-0.5.1.sol#L13-L17",
"id": "e54f32cd947c1bad4e54940df6613f466962e03d5a7b6f5c98ea8bc14b0518a6",
"check": "tx-origin",
"impact": "Medium",

@ -153,6 +153,7 @@
],
"description": "TxOrigin.bug0() (tests/detectors/tx-origin/tx_origin.sol#9-11) uses tx.origin for authorization: require(bool)(tx.origin == owner) (tests/detectors/tx-origin/tx_origin.sol#10)\n",
"markdown": "[TxOrigin.bug0()](tests/detectors/tx-origin/tx_origin.sol#L9-L11) uses tx.origin for authorization: [require(bool)(tx.origin == owner)](tests/detectors/tx-origin/tx_origin.sol#L10)\n",
"first_markdown_element": "tests/detectors/tx-origin/tx_origin.sol#L9-L11",
"id": "15f4bed606e91476b860841a00a8e55b0badb541c03728c869daf4cad3b504a3",
"check": "tx-origin",
"impact": "Medium",
@ -315,6 +316,7 @@
],
"description": "TxOrigin.bug2() (tests/detectors/tx-origin/tx_origin.sol#13-17) uses tx.origin for authorization: tx.origin != owner (tests/detectors/tx-origin/tx_origin.sol#14)\n",
"markdown": "[TxOrigin.bug2()](tests/detectors/tx-origin/tx_origin.sol#L13-L17) uses tx.origin for authorization: [tx.origin != owner](tests/detectors/tx-origin/tx_origin.sol#L14)\n",
"first_markdown_element": "tests/detectors/tx-origin/tx_origin.sol#L13-L17",
"id": "e1cc314e4bb02ab50d7d084278ab9305addf818716e02d5e46fffbc341718a63",
"check": "tx-origin",
"impact": "Medium",

@ -127,6 +127,7 @@
],
"description": "MyConc.bad(address) (tests/detectors/unchecked-lowlevel/unchecked_lowlevel-0.5.1.sol#2-4) ignores return value by dst.call.value(msg.value)() (tests/detectors/unchecked-lowlevel/unchecked_lowlevel-0.5.1.sol#3)\n",
"markdown": "[MyConc.bad(address)](tests/detectors/unchecked-lowlevel/unchecked_lowlevel-0.5.1.sol#L2-L4) ignores return value by [dst.call.value(msg.value)()](tests/detectors/unchecked-lowlevel/unchecked_lowlevel-0.5.1.sol#L3)\n",
"first_markdown_element": "tests/detectors/unchecked-lowlevel/unchecked_lowlevel-0.5.1.sol#L2-L4",
"id": "718dbfef93c02e3e663e9300449dc30b53bb9dc132882f1e63e2a84b2f7cdf2e",
"check": "unchecked-lowlevel",
"impact": "Medium",

@ -125,6 +125,7 @@
],
"description": "MyConc.bad(address) (tests/detectors/unchecked-lowlevel/unchecked_lowlevel.sol#2-4) ignores return value by dst.call.value(msg.value)() (tests/detectors/unchecked-lowlevel/unchecked_lowlevel.sol#3)\n",
"markdown": "[MyConc.bad(address)](tests/detectors/unchecked-lowlevel/unchecked_lowlevel.sol#L2-L4) ignores return value by [dst.call.value(msg.value)()](tests/detectors/unchecked-lowlevel/unchecked_lowlevel.sol#L3)\n",
"first_markdown_element": "tests/detectors/unchecked-lowlevel/unchecked_lowlevel.sol#L2-L4",
"id": "ce0c8a102a77c82a76e5ecbaf55d375a20069186c8235243fbc1ffbcf02ccf5b",
"check": "unchecked-lowlevel",
"impact": "Medium",

@ -141,6 +141,7 @@
],
"description": "MyConc.bad(address) (tests/detectors/unchecked-send/unchecked_send-0.5.1.sol#2-4) ignores return value by dst.send(msg.value) (tests/detectors/unchecked-send/unchecked_send-0.5.1.sol#3)\n",
"markdown": "[MyConc.bad(address)](tests/detectors/unchecked-send/unchecked_send-0.5.1.sol#L2-L4) ignores return value by [dst.send(msg.value)](tests/detectors/unchecked-send/unchecked_send-0.5.1.sol#L3)\n",
"first_markdown_element": "tests/detectors/unchecked-send/unchecked_send-0.5.1.sol#L2-L4",
"id": "4617ab04affaca041c4a88c42658dca7d1d2dc11090973b8d551381c9e634a30",
"check": "unchecked-send",
"impact": "Medium",

@ -211,6 +211,7 @@
],
"description": "C.bad0() (tests/detectors/unchecked-transfer/unused_return_transfers.sol#20-22) ignores return value by t.transfer(address(0),1000000000000000000) (tests/detectors/unchecked-transfer/unused_return_transfers.sol#21)\n",
"markdown": "[C.bad0()](tests/detectors/unchecked-transfer/unused_return_transfers.sol#L20-L22) ignores return value by [t.transfer(address(0),1000000000000000000)](tests/detectors/unchecked-transfer/unused_return_transfers.sol#L21)\n",
"first_markdown_element": "tests/detectors/unchecked-transfer/unused_return_transfers.sol#L20-L22",
"id": "c999626efabdf72014bbebbdecd64178176d168947ae803ebbbd873941a6ed7e",
"check": "unchecked-transfer",
"impact": "High",
@ -427,6 +428,7 @@
],
"description": "C.bad1() (tests/detectors/unchecked-transfer/unused_return_transfers.sol#40-42) ignores return value by t.transferFrom(address(this),address(0),1000000000000000000) (tests/detectors/unchecked-transfer/unused_return_transfers.sol#41)\n",
"markdown": "[C.bad1()](tests/detectors/unchecked-transfer/unused_return_transfers.sol#L40-L42) ignores return value by [t.transferFrom(address(this),address(0),1000000000000000000)](tests/detectors/unchecked-transfer/unused_return_transfers.sol#L41)\n",
"first_markdown_element": "tests/detectors/unchecked-transfer/unused_return_transfers.sol#L40-L42",
"id": "d4c9ecd3753df951f9b2c890f54f981285d42500cd41e5dfc2f46f2feb1dbe6e",
"check": "unchecked-transfer",
"impact": "High",

@ -110,6 +110,7 @@
],
"description": "DerivedContract_bad0 (tests/detectors/unimplemented-functions/unimplemented.sol#10-14) does not implement functions:\n\t- BaseInterface.f2() (tests/detectors/unimplemented-functions/unimplemented.sol#3)\n\t- BaseInterface2.f3() (tests/detectors/unimplemented-functions/unimplemented.sol#7)\n",
"markdown": "[DerivedContract_bad0](tests/detectors/unimplemented-functions/unimplemented.sol#L10-L14) does not implement functions:\n\t- [BaseInterface.f2()](tests/detectors/unimplemented-functions/unimplemented.sol#L3)\n\t- [BaseInterface2.f3()](tests/detectors/unimplemented-functions/unimplemented.sol#L7)\n",
"first_markdown_element": "tests/detectors/unimplemented-functions/unimplemented.sol#L10-L14",
"id": "8614d351f7aac0c05e8df6ef7c89c6b46a2b8acf6295c9d5a886ff6489c74a41",
"check": "unimplemented-functions",
"impact": "Informational",
@ -187,6 +188,7 @@
],
"description": "AbstractContract_bad1 (tests/detectors/unimplemented-functions/unimplemented.sol#16-21) does not implement functions:\n\t- AbstractContract_bad1.f1() (tests/detectors/unimplemented-functions/unimplemented.sol#17)\n",
"markdown": "[AbstractContract_bad1](tests/detectors/unimplemented-functions/unimplemented.sol#L16-L21) does not implement functions:\n\t- [AbstractContract_bad1.f1()](tests/detectors/unimplemented-functions/unimplemented.sol#L17)\n",
"first_markdown_element": "tests/detectors/unimplemented-functions/unimplemented.sol#L16-L21",
"id": "adc202df4717efc4e19b549c0e623a79fac759a36bffb5d5e4aac401e33375d7",
"check": "unimplemented-functions",
"impact": "Informational",
@ -262,6 +264,7 @@
],
"description": "DerivedContract_bad2 (tests/detectors/unimplemented-functions/unimplemented.sol#27-33) does not implement functions:\n\t- BaseInterface3.get(uint256) (tests/detectors/unimplemented-functions/unimplemented.sol#24)\n",
"markdown": "[DerivedContract_bad2](tests/detectors/unimplemented-functions/unimplemented.sol#L27-L33) does not implement functions:\n\t- [BaseInterface3.get(uint256)](tests/detectors/unimplemented-functions/unimplemented.sol#L24)\n",
"first_markdown_element": "tests/detectors/unimplemented-functions/unimplemented.sol#L27-L33",
"id": "31915d2f480e24ddd054de973440a02abdac0ccd6332c47cd4eb8d836d3fddda",
"check": "unimplemented-functions",
"impact": "Informational",
@ -337,6 +340,7 @@
],
"description": "DerivedContract_good (tests/detectors/unimplemented-functions/unimplemented.sol#35-41) does not implement functions:\n\t- BaseInterface3.get(uint256) (tests/detectors/unimplemented-functions/unimplemented.sol#24)\n",
"markdown": "[DerivedContract_good](tests/detectors/unimplemented-functions/unimplemented.sol#L35-L41) does not implement functions:\n\t- [BaseInterface3.get(uint256)](tests/detectors/unimplemented-functions/unimplemented.sol#L24)\n",
"first_markdown_element": "tests/detectors/unimplemented-functions/unimplemented.sol#L35-L41",
"id": "08d3e8a72b5da6d189acb46ecd36f00787a87812727526a0cae248a2bac348fc",
"check": "unimplemented-functions",
"impact": "Informational",

@ -98,6 +98,7 @@
],
"description": "Contract bad0 (tests/detectors/uninitialized-fptr-cst/uninitialized_function_ptr_constructor.sol#3-9) \n\t a(10) (tests/detectors/uninitialized-fptr-cst/uninitialized_function_ptr_constructor.sol#7) is an unintialized function pointer call in a constructor\n",
"markdown": "Contract [bad0](tests/detectors/uninitialized-fptr-cst/uninitialized_function_ptr_constructor.sol#L3-L9) \n\t [a(10)](tests/detectors/uninitialized-fptr-cst/uninitialized_function_ptr_constructor.sol#L7) is an unintialized function pointer call in a constructor\n",
"first_markdown_element": "tests/detectors/uninitialized-fptr-cst/uninitialized_function_ptr_constructor.sol#L3-L9",
"id": "6e9480c70e9d054243bb478398b26663f05444b4b9b858109d67f9c63dbbc3e2",
"check": "uninitialized-fptr-cst",
"impact": "Low",
@ -204,6 +205,7 @@
],
"description": "Contract bad1 (tests/detectors/uninitialized-fptr-cst/uninitialized_function_ptr_constructor.sol#11-18) \n\t b(10) (tests/detectors/uninitialized-fptr-cst/uninitialized_function_ptr_constructor.sol#16) is an unintialized function pointer call in a constructor\n",
"markdown": "Contract [bad1](tests/detectors/uninitialized-fptr-cst/uninitialized_function_ptr_constructor.sol#L11-L18) \n\t [b(10)](tests/detectors/uninitialized-fptr-cst/uninitialized_function_ptr_constructor.sol#L16) is an unintialized function pointer call in a constructor\n",
"first_markdown_element": "tests/detectors/uninitialized-fptr-cst/uninitialized_function_ptr_constructor.sol#L11-L18",
"id": "b0a15c051d9962762902c5565802334898e572e98018b42b85a89b45208c50d2",
"check": "uninitialized-fptr-cst",
"impact": "Low",
@ -316,6 +318,7 @@
],
"description": "Contract bad3 (tests/detectors/uninitialized-fptr-cst/uninitialized_function_ptr_constructor.sol#31-42) \n\t a(10) (tests/detectors/uninitialized-fptr-cst/uninitialized_function_ptr_constructor.sol#36) is an unintialized function pointer call in a constructor\n",
"markdown": "Contract [bad3](tests/detectors/uninitialized-fptr-cst/uninitialized_function_ptr_constructor.sol#L31-L42) \n\t [a(10)](tests/detectors/uninitialized-fptr-cst/uninitialized_function_ptr_constructor.sol#L36) is an unintialized function pointer call in a constructor\n",
"first_markdown_element": "tests/detectors/uninitialized-fptr-cst/uninitialized_function_ptr_constructor.sol#L31-L42",
"id": "1f12cc039e869f6f13be8a85e2d98a53212dc95e859908a9188dd6b152fb804f",
"check": "uninitialized-fptr-cst",
"impact": "Low",

@ -76,6 +76,7 @@
],
"description": "Uninitialized.func().uint_not_init (tests/detectors/uninitialized-local/uninitialized_local_variable.sol#4) is a local variable never initialized\n",
"markdown": "[Uninitialized.func().uint_not_init](tests/detectors/uninitialized-local/uninitialized_local_variable.sol#L4) is a local variable never initialized\n",
"first_markdown_element": "tests/detectors/uninitialized-local/uninitialized_local_variable.sol#L4",
"id": "6ef627d0a3f7234c0d3dd339ae4cf3c1adf898f03384e08c3c8d846c67e0d476",
"check": "uninitialized-local",
"impact": "Medium",

@ -100,6 +100,7 @@
],
"description": "Uninitialized.destination (tests/detectors/uninitialized-state/uninitialized-0.5.1.sol#5) is never initialized. It is used in:\n\t- Uninitialized.transfer() (tests/detectors/uninitialized-state/uninitialized-0.5.1.sol#7-9)\n",
"markdown": "[Uninitialized.destination](tests/detectors/uninitialized-state/uninitialized-0.5.1.sol#L5) is never initialized. It is used in:\n\t- [Uninitialized.transfer()](tests/detectors/uninitialized-state/uninitialized-0.5.1.sol#L7-L9)\n",
"first_markdown_element": "tests/detectors/uninitialized-state/uninitialized-0.5.1.sol#L5",
"id": "e4711aebbd53922a9fe1e728917bf8e98eac065305e20d766b6b552debe79e44",
"check": "uninitialized-state",
"impact": "High",
@ -216,6 +217,7 @@
],
"description": "Test.balances (tests/detectors/uninitialized-state/uninitialized-0.5.1.sol#15) is never initialized. It is used in:\n\t- Test.use() (tests/detectors/uninitialized-state/uninitialized-0.5.1.sol#23-26)\n",
"markdown": "[Test.balances](tests/detectors/uninitialized-state/uninitialized-0.5.1.sol#L15) is never initialized. It is used in:\n\t- [Test.use()](tests/detectors/uninitialized-state/uninitialized-0.5.1.sol#L23-L26)\n",
"first_markdown_element": "tests/detectors/uninitialized-state/uninitialized-0.5.1.sol#L15",
"id": "a2750d175b02d51aeb47a4576f74725ba991d3c8cf828a33ee78ccc34cf9e7d7",
"check": "uninitialized-state",
"impact": "High",
@ -338,6 +340,7 @@
],
"description": "Test2.st (tests/detectors/uninitialized-state/uninitialized-0.5.1.sol#45) is never initialized. It is used in:\n\t- Test2.use() (tests/detectors/uninitialized-state/uninitialized-0.5.1.sol#53-56)\n",
"markdown": "[Test2.st](tests/detectors/uninitialized-state/uninitialized-0.5.1.sol#L45) is never initialized. It is used in:\n\t- [Test2.use()](tests/detectors/uninitialized-state/uninitialized-0.5.1.sol#L53-L56)\n",
"first_markdown_element": "tests/detectors/uninitialized-state/uninitialized-0.5.1.sol#L45",
"id": "427f100397f455d8000eff7b1d2463763ca8e452d5d98f7b7de693fd5e625a32",
"check": "uninitialized-state",
"impact": "High",
@ -459,6 +462,7 @@
],
"description": "Test2.v (tests/detectors/uninitialized-state/uninitialized-0.5.1.sol#47) is never initialized. It is used in:\n\t- Test2.init() (tests/detectors/uninitialized-state/uninitialized-0.5.1.sol#49-51)\n",
"markdown": "[Test2.v](tests/detectors/uninitialized-state/uninitialized-0.5.1.sol#L47) is never initialized. It is used in:\n\t- [Test2.init()](tests/detectors/uninitialized-state/uninitialized-0.5.1.sol#L49-L51)\n",
"first_markdown_element": "tests/detectors/uninitialized-state/uninitialized-0.5.1.sol#L47",
"id": "bf96eee949943a12926cf1407a2df2b07e99b30a6fc2e78aebf088cdefcf77a7",
"check": "uninitialized-state",
"impact": "High",

@ -100,6 +100,7 @@
],
"description": "Uninitialized.destination (tests/detectors/uninitialized-state/uninitialized.sol#5) is never initialized. It is used in:\n\t- Uninitialized.transfer() (tests/detectors/uninitialized-state/uninitialized.sol#7-9)\n",
"markdown": "[Uninitialized.destination](tests/detectors/uninitialized-state/uninitialized.sol#L5) is never initialized. It is used in:\n\t- [Uninitialized.transfer()](tests/detectors/uninitialized-state/uninitialized.sol#L7-L9)\n",
"first_markdown_element": "tests/detectors/uninitialized-state/uninitialized.sol#L5",
"id": "e4711aebbd53922a9fe1e728917bf8e98eac065305e20d766b6b552debe79e44",
"check": "uninitialized-state",
"impact": "High",
@ -216,6 +217,7 @@
],
"description": "Test.balances (tests/detectors/uninitialized-state/uninitialized.sol#15) is never initialized. It is used in:\n\t- Test.use() (tests/detectors/uninitialized-state/uninitialized.sol#23-26)\n",
"markdown": "[Test.balances](tests/detectors/uninitialized-state/uninitialized.sol#L15) is never initialized. It is used in:\n\t- [Test.use()](tests/detectors/uninitialized-state/uninitialized.sol#L23-L26)\n",
"first_markdown_element": "tests/detectors/uninitialized-state/uninitialized.sol#L15",
"id": "a2750d175b02d51aeb47a4576f74725ba991d3c8cf828a33ee78ccc34cf9e7d7",
"check": "uninitialized-state",
"impact": "High",
@ -338,6 +340,7 @@
],
"description": "Test2.st (tests/detectors/uninitialized-state/uninitialized.sol#45) is never initialized. It is used in:\n\t- Test2.use() (tests/detectors/uninitialized-state/uninitialized.sol#53-56)\n",
"markdown": "[Test2.st](tests/detectors/uninitialized-state/uninitialized.sol#L45) is never initialized. It is used in:\n\t- [Test2.use()](tests/detectors/uninitialized-state/uninitialized.sol#L53-L56)\n",
"first_markdown_element": "tests/detectors/uninitialized-state/uninitialized.sol#L45",
"id": "427f100397f455d8000eff7b1d2463763ca8e452d5d98f7b7de693fd5e625a32",
"check": "uninitialized-state",
"impact": "High",
@ -459,6 +462,7 @@
],
"description": "Test2.v (tests/detectors/uninitialized-state/uninitialized.sol#47) is never initialized. It is used in:\n\t- Test2.init() (tests/detectors/uninitialized-state/uninitialized.sol#49-51)\n",
"markdown": "[Test2.v](tests/detectors/uninitialized-state/uninitialized.sol#L47) is never initialized. It is used in:\n\t- [Test2.init()](tests/detectors/uninitialized-state/uninitialized.sol#L49-L51)\n",
"first_markdown_element": "tests/detectors/uninitialized-state/uninitialized.sol#L47",
"id": "bf96eee949943a12926cf1407a2df2b07e99b30a6fc2e78aebf088cdefcf77a7",
"check": "uninitialized-state",
"impact": "High",

@ -82,6 +82,7 @@
],
"description": "Uninitialized.func().st_bug (tests/detectors/uninitialized-storage/uninitialized_storage_pointer.sol#10) is a storage variable never initialized\n",
"markdown": "[Uninitialized.func().st_bug](tests/detectors/uninitialized-storage/uninitialized_storage_pointer.sol#L10) is a storage variable never initialized\n",
"first_markdown_element": "tests/detectors/uninitialized-storage/uninitialized_storage_pointer.sol#L10",
"id": "b8f7c2470a8a7f83fd42dca40c50cbf2070e7fa5486c674585f2b0b39d3dc429",
"check": "uninitialized-storage",
"impact": "High",

@ -143,6 +143,7 @@
],
"description": "Buggy (tests/detectors/unprotected-upgrade/Buggy.sol#3-15) is an upgradeable contract that does not protect its initiliaze functions: Buggy.initialize() (tests/detectors/unprotected-upgrade/Buggy.sol#6-9). Anyone can delete the contract with: Buggy.kill() (tests/detectors/unprotected-upgrade/Buggy.sol#10-13)",
"markdown": "[Buggy](tests/detectors/unprotected-upgrade/Buggy.sol#L3-L15) is an upgradeable contract that does not protect its initiliaze functions: [Buggy.initialize()](tests/detectors/unprotected-upgrade/Buggy.sol#L6-L9). Anyone can delete the contract with: [Buggy.kill()](tests/detectors/unprotected-upgrade/Buggy.sol#L10-L13)",
"first_markdown_element": "tests/detectors/unprotected-upgrade/Buggy.sol#L3-L15",
"id": "aceca400ce0b482809a70df612af22e24d154c5c89c24d630ec0ee5a366d09fe",
"check": "unprotected-upgrade",
"impact": "High",

@ -241,6 +241,7 @@
],
"description": "C.bad0() (tests/detectors/unused-return/unused_return-sol7.sol#60-62) ignores return value by t.other() (tests/detectors/unused-return/unused_return-sol7.sol#61)\n",
"markdown": "[C.bad0()](tests/detectors/unused-return/unused_return-sol7.sol#L60-L62) ignores return value by [t.other()](tests/detectors/unused-return/unused_return-sol7.sol#L61)\n",
"first_markdown_element": "tests/detectors/unused-return/unused_return-sol7.sol#L60-L62",
"id": "f9924f5b012de6c1e91b68996bc7944585b0daab740b86c89cd157b0d22d0092",
"check": "unused-return",
"impact": "Medium",

@ -161,6 +161,7 @@
],
"description": "User.test(Target) (tests/detectors/unused-return/unused_return.sol#17-29) ignores return value by t.f() (tests/detectors/unused-return/unused_return.sol#18)\n",
"markdown": "[User.test(Target)](tests/detectors/unused-return/unused_return.sol#L17-L29) ignores return value by [t.f()](tests/detectors/unused-return/unused_return.sol#L18)\n",
"first_markdown_element": "tests/detectors/unused-return/unused_return.sol#L17-L29",
"id": "000853c04bd511b08da14a492a5784575fb667c4c7432986706213e4f3215497",
"check": "unused-return",
"impact": "Medium",
@ -327,6 +328,7 @@
],
"description": "User.test(Target) (tests/detectors/unused-return/unused_return.sol#17-29) ignores return value by a.add(0) (tests/detectors/unused-return/unused_return.sol#22)\n",
"markdown": "[User.test(Target)](tests/detectors/unused-return/unused_return.sol#L17-L29) ignores return value by [a.add(0)](tests/detectors/unused-return/unused_return.sol#L22)\n",
"first_markdown_element": "tests/detectors/unused-return/unused_return.sol#L17-L29",
"id": "003cd4cef3010715d9b4605fb88240d6a24f8066ce65a9f26aa7e138cb7eb7a9",
"check": "unused-return",
"impact": "Medium",

@ -161,6 +161,7 @@
],
"description": "User.test(Target) (tests/detectors/unused-return/unused_return.sol#17-29) ignores return value by t.f() (tests/detectors/unused-return/unused_return.sol#18)\n",
"markdown": "[User.test(Target)](tests/detectors/unused-return/unused_return.sol#L17-L29) ignores return value by [t.f()](tests/detectors/unused-return/unused_return.sol#L18)\n",
"first_markdown_element": "tests/detectors/unused-return/unused_return.sol#L17-L29",
"id": "000853c04bd511b08da14a492a5784575fb667c4c7432986706213e4f3215497",
"check": "unused-return",
"impact": "Medium",
@ -327,6 +328,7 @@
],
"description": "User.test(Target) (tests/detectors/unused-return/unused_return.sol#17-29) ignores return value by a.add(0) (tests/detectors/unused-return/unused_return.sol#22)\n",
"markdown": "[User.test(Target)](tests/detectors/unused-return/unused_return.sol#L17-L29) ignores return value by [a.add(0)](tests/detectors/unused-return/unused_return.sol#L22)\n",
"first_markdown_element": "tests/detectors/unused-return/unused_return.sol#L17-L29",
"id": "003cd4cef3010715d9b4605fb88240d6a24f8066ce65a9f26aa7e138cb7eb7a9",
"check": "unused-return",
"impact": "Medium",

@ -72,6 +72,7 @@
],
"description": "A.unused (tests/detectors/unused-state/unused_state.sol#4) is never used in B (tests/detectors/unused-state/unused_state.sol#11-16)\n",
"markdown": "[A.unused](tests/detectors/unused-state/unused_state.sol#L4) is never used in [B](tests/detectors/unused-state/unused_state.sol#L11-L16)\n",
"first_markdown_element": "tests/detectors/unused-state/unused_state.sol#L4",
"id": "195279490862ae355bac3d27d0cdb1aa18200a5daed8f3dbd84dc5b120e29482",
"check": "unused-state",
"impact": "Informational",
@ -149,6 +150,7 @@
],
"description": "A.unused2 (tests/detectors/unused-state/unused_state.sol#5) is never used in B (tests/detectors/unused-state/unused_state.sol#11-16)\n",
"markdown": "[A.unused2](tests/detectors/unused-state/unused_state.sol#L5) is never used in [B](tests/detectors/unused-state/unused_state.sol#L11-L16)\n",
"first_markdown_element": "tests/detectors/unused-state/unused_state.sol#L5",
"id": "886250d01813743573f3d311b742e0f818e0012ccbf8ad97738c029fd129d870",
"check": "unused-state",
"impact": "Informational",
@ -226,6 +228,7 @@
],
"description": "A.unused3 (tests/detectors/unused-state/unused_state.sol#6) is never used in B (tests/detectors/unused-state/unused_state.sol#11-16)\n",
"markdown": "[A.unused3](tests/detectors/unused-state/unused_state.sol#L6) is never used in [B](tests/detectors/unused-state/unused_state.sol#L11-L16)\n",
"first_markdown_element": "tests/detectors/unused-state/unused_state.sol#L6",
"id": "e2ac51590509d97ff791ce50d9a711fc5ad01c20d23eacf6fb31939bd91b9f48",
"check": "unused-state",
"impact": "Informational",
@ -303,6 +306,7 @@
],
"description": "A.unused4 (tests/detectors/unused-state/unused_state.sol#7) is never used in B (tests/detectors/unused-state/unused_state.sol#11-16)\n",
"markdown": "[A.unused4](tests/detectors/unused-state/unused_state.sol#L7) is never used in [B](tests/detectors/unused-state/unused_state.sol#L11-L16)\n",
"first_markdown_element": "tests/detectors/unused-state/unused_state.sol#L7",
"id": "562d3e6a04f6f6068c3e4f0c074ecdbcff87929e43ec6fbeb6c088e715f63cf2",
"check": "unused-state",
"impact": "Informational",

@ -72,6 +72,7 @@
],
"description": "A.unused (tests/detectors/unused-state/unused_state.sol#4) is never used in B (tests/detectors/unused-state/unused_state.sol#11-16)\n",
"markdown": "[A.unused](tests/detectors/unused-state/unused_state.sol#L4) is never used in [B](tests/detectors/unused-state/unused_state.sol#L11-L16)\n",
"first_markdown_element": "tests/detectors/unused-state/unused_state.sol#L4",
"id": "195279490862ae355bac3d27d0cdb1aa18200a5daed8f3dbd84dc5b120e29482",
"check": "unused-state",
"impact": "Informational",
@ -149,6 +150,7 @@
],
"description": "A.unused2 (tests/detectors/unused-state/unused_state.sol#5) is never used in B (tests/detectors/unused-state/unused_state.sol#11-16)\n",
"markdown": "[A.unused2](tests/detectors/unused-state/unused_state.sol#L5) is never used in [B](tests/detectors/unused-state/unused_state.sol#L11-L16)\n",
"first_markdown_element": "tests/detectors/unused-state/unused_state.sol#L5",
"id": "886250d01813743573f3d311b742e0f818e0012ccbf8ad97738c029fd129d870",
"check": "unused-state",
"impact": "Informational",
@ -226,6 +228,7 @@
],
"description": "A.unused3 (tests/detectors/unused-state/unused_state.sol#6) is never used in B (tests/detectors/unused-state/unused_state.sol#11-16)\n",
"markdown": "[A.unused3](tests/detectors/unused-state/unused_state.sol#L6) is never used in [B](tests/detectors/unused-state/unused_state.sol#L11-L16)\n",
"first_markdown_element": "tests/detectors/unused-state/unused_state.sol#L6",
"id": "e2ac51590509d97ff791ce50d9a711fc5ad01c20d23eacf6fb31939bd91b9f48",
"check": "unused-state",
"impact": "Informational",
@ -303,6 +306,7 @@
],
"description": "A.unused4 (tests/detectors/unused-state/unused_state.sol#7) is never used in B (tests/detectors/unused-state/unused_state.sol#11-16)\n",
"markdown": "[A.unused4](tests/detectors/unused-state/unused_state.sol#L7) is never used in [B](tests/detectors/unused-state/unused_state.sol#L11-L16)\n",
"first_markdown_element": "tests/detectors/unused-state/unused_state.sol#L7",
"id": "562d3e6a04f6f6068c3e4f0c074ecdbcff87929e43ec6fbeb6c088e715f63cf2",
"check": "unused-state",
"impact": "Informational",

@ -261,6 +261,7 @@
],
"description": "Variable 'C.f(uint256).x (tests/detectors/variable-scope/predeclaration_usage_local.sol#5)' in C.f(uint256) (tests/detectors/variable-scope/predeclaration_usage_local.sol#2-17) potentially used before declaration: y = x + 9 + z (tests/detectors/variable-scope/predeclaration_usage_local.sol#4)\n",
"markdown": "Variable '[C.f(uint256).x](tests/detectors/variable-scope/predeclaration_usage_local.sol#L5)' in [C.f(uint256)](tests/detectors/variable-scope/predeclaration_usage_local.sol#L2-L17) potentially used before declaration: [y = x + 9 + z](tests/detectors/variable-scope/predeclaration_usage_local.sol#L4)\n",
"first_markdown_element": "tests/detectors/variable-scope/predeclaration_usage_local.sol#L5",
"id": "ae8657e5e605f868abb11f4568aa1cc99ccd0bd9ba4840bc7d5172e5fd6da165",
"check": "variable-scope",
"impact": "Low",
@ -527,6 +528,7 @@
],
"description": "Variable 'C.f(uint256).i (tests/detectors/variable-scope/predeclaration_usage_local.sol#8)' in C.f(uint256) (tests/detectors/variable-scope/predeclaration_usage_local.sol#2-17) potentially used before declaration: i = 10 (tests/detectors/variable-scope/predeclaration_usage_local.sol#14)\n",
"markdown": "Variable '[C.f(uint256).i](tests/detectors/variable-scope/predeclaration_usage_local.sol#L8)' in [C.f(uint256)](tests/detectors/variable-scope/predeclaration_usage_local.sol#L2-L17) potentially used before declaration: [i = 10](tests/detectors/variable-scope/predeclaration_usage_local.sol#L14)\n",
"first_markdown_element": "tests/detectors/variable-scope/predeclaration_usage_local.sol#L8",
"id": "16da9fedd4973449139402e4298178b35fd9fb1eb4d9dc85148790e742729ee4",
"check": "variable-scope",
"impact": "Low",
@ -793,6 +795,7 @@
],
"description": "Variable 'C.f(uint256).i (tests/detectors/variable-scope/predeclaration_usage_local.sol#8)' in C.f(uint256) (tests/detectors/variable-scope/predeclaration_usage_local.sol#2-17) potentially used before declaration: i > 0 (tests/detectors/variable-scope/predeclaration_usage_local.sol#14)\n",
"markdown": "Variable '[C.f(uint256).i](tests/detectors/variable-scope/predeclaration_usage_local.sol#L8)' in [C.f(uint256)](tests/detectors/variable-scope/predeclaration_usage_local.sol#L2-L17) potentially used before declaration: [i > 0](tests/detectors/variable-scope/predeclaration_usage_local.sol#L14)\n",
"first_markdown_element": "tests/detectors/variable-scope/predeclaration_usage_local.sol#L8",
"id": "1645f4a9be79ab45d3fcb98b1b147212ee01517980a084481c9b26be36fb0d46",
"check": "variable-scope",
"impact": "Low",
@ -1059,6 +1062,7 @@
],
"description": "Variable 'C.f(uint256).i (tests/detectors/variable-scope/predeclaration_usage_local.sol#8)' in C.f(uint256) (tests/detectors/variable-scope/predeclaration_usage_local.sol#2-17) potentially used before declaration: x += i (tests/detectors/variable-scope/predeclaration_usage_local.sol#15)\n",
"markdown": "Variable '[C.f(uint256).i](tests/detectors/variable-scope/predeclaration_usage_local.sol#L8)' in [C.f(uint256)](tests/detectors/variable-scope/predeclaration_usage_local.sol#L2-L17) potentially used before declaration: [x += i](tests/detectors/variable-scope/predeclaration_usage_local.sol#L15)\n",
"first_markdown_element": "tests/detectors/variable-scope/predeclaration_usage_local.sol#L8",
"id": "1f58314c394d14558a0268c5241e448c32d6d74dcadc9a22dcd14b5a09fcbe0d",
"check": "variable-scope",
"impact": "Low",
@ -1325,6 +1329,7 @@
],
"description": "Variable 'C.f(uint256).i (tests/detectors/variable-scope/predeclaration_usage_local.sol#8)' in C.f(uint256) (tests/detectors/variable-scope/predeclaration_usage_local.sol#2-17) potentially used before declaration: i -- (tests/detectors/variable-scope/predeclaration_usage_local.sol#14)\n",
"markdown": "Variable '[C.f(uint256).i](tests/detectors/variable-scope/predeclaration_usage_local.sol#L8)' in [C.f(uint256)](tests/detectors/variable-scope/predeclaration_usage_local.sol#L2-L17) potentially used before declaration: [i --](tests/detectors/variable-scope/predeclaration_usage_local.sol#L14)\n",
"first_markdown_element": "tests/detectors/variable-scope/predeclaration_usage_local.sol#L8",
"id": "a9a523e5ffe2ef3e4ae3fe06e6b411b269e804e071b5e04cd68cd2f942156cbb",
"check": "variable-scope",
"impact": "Low",

@ -119,6 +119,7 @@
],
"description": "Void constructor called in D.constructor() (tests/detectors/void-cst/void-cst.sol#10-12):\n\t- C() (tests/detectors/void-cst/void-cst.sol#10)\n",
"markdown": "Void constructor called in [D.constructor()](tests/detectors/void-cst/void-cst.sol#L10-L12):\n\t- [C()](tests/detectors/void-cst/void-cst.sol#L10)\n",
"first_markdown_element": "tests/detectors/void-cst/void-cst.sol#L10-L12",
"id": "f3dacabc6aa95b22e6d535c4de48393d830fb3d4f0df012f649c851b4958209e",
"check": "void-cst",
"impact": "Low",

@ -159,6 +159,7 @@
],
"description": "BadPRNG.bad0() (tests/detectors/weak-prng/bad_prng.sol#4-6) uses a weak PRNG: \"i = block.timestamp % 10 (tests/detectors/weak-prng/bad_prng.sol#5)\" \n",
"markdown": "[BadPRNG.bad0()](tests/detectors/weak-prng/bad_prng.sol#L4-L6) uses a weak PRNG: \"[i = block.timestamp % 10](tests/detectors/weak-prng/bad_prng.sol#L5)\" \n",
"first_markdown_element": "tests/detectors/weak-prng/bad_prng.sol#L4-L6",
"id": "af624d9c7f3f688c1bad5ecaee81085e0d5cde4e6a55de34ff93684527619748",
"check": "weak-prng",
"impact": "High",
@ -323,6 +324,7 @@
],
"description": "BadPRNG.bad1() (tests/detectors/weak-prng/bad_prng.sol#8-10) uses a weak PRNG: \"i = now % 10 (tests/detectors/weak-prng/bad_prng.sol#9)\" \n",
"markdown": "[BadPRNG.bad1()](tests/detectors/weak-prng/bad_prng.sol#L8-L10) uses a weak PRNG: \"[i = now % 10](tests/detectors/weak-prng/bad_prng.sol#L9)\" \n",
"first_markdown_element": "tests/detectors/weak-prng/bad_prng.sol#L8-L10",
"id": "fe07d1e4f27274570cfb85530c1cbf7fb7a9004f475b91d1a3762452b017e1b9",
"check": "weak-prng",
"impact": "High",
@ -487,6 +489,7 @@
],
"description": "BadPRNG.bad2() (tests/detectors/weak-prng/bad_prng.sol#12-14) uses a weak PRNG: \"i = uint256(blockhash(uint256)(10000)) % 10 (tests/detectors/weak-prng/bad_prng.sol#13)\" \n",
"markdown": "[BadPRNG.bad2()](tests/detectors/weak-prng/bad_prng.sol#L12-L14) uses a weak PRNG: \"[i = uint256(blockhash(uint256)(10000)) % 10](tests/detectors/weak-prng/bad_prng.sol#L13)\" \n",
"first_markdown_element": "tests/detectors/weak-prng/bad_prng.sol#L12-L14",
"id": "100d285386f797a469c6797fcce41350b1984f7e7aab1532580d9b69a774b6f5",
"check": "weak-prng",
"impact": "High",
@ -651,6 +654,7 @@
],
"description": "BadPRNG.bad3() (tests/detectors/weak-prng/bad_prng.sol#20-22) uses a weak PRNG: \"i = foo() % 10 (tests/detectors/weak-prng/bad_prng.sol#21)\" \n",
"markdown": "[BadPRNG.bad3()](tests/detectors/weak-prng/bad_prng.sol#L20-L22) uses a weak PRNG: \"[i = foo() % 10](tests/detectors/weak-prng/bad_prng.sol#L21)\" \n",
"first_markdown_element": "tests/detectors/weak-prng/bad_prng.sol#L20-L22",
"id": "a382f093e54d2c7beb2c10b3537790371f4b95545c48d1300fd25d20717d137a",
"check": "weak-prng",
"impact": "High",

Loading…
Cancel
Save