[ [ { "elements": [ { "type": "function", "name": "bad2", "source_mapping": { "start": 398, "length": 55, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 19, 20, 21 ], "starting_column": 3, "ending_column": 4 }, "type_specific_fields": { "parent": { "type": "contract", "name": "A", "source_mapping": { "start": 0, "length": 759, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 ], "starting_column": 1, "ending_column": 2 } }, "signature": "bad2()" } }, { "type": "node", "name": "assert(bool)(bad2_callee())", "source_mapping": { "start": 427, "length": 21, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 20 ], "starting_column": 5, "ending_column": 26 }, "type_specific_fields": { "parent": { "type": "function", "name": "bad2", "source_mapping": { "start": 398, "length": 55, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 19, 20, 21 ], "starting_column": 3, "ending_column": 4 }, "type_specific_fields": { "parent": { "type": "contract", "name": "A", "source_mapping": { "start": 0, "length": 759, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 ], "starting_column": 1, "ending_column": 2 } }, "signature": "bad2()" } } } } ], "description": "A.bad2() (tests/detectors/assert-state-change/0.7.6/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/0.7.6/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/0.7.6/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/0.7.6/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/0.7.6/assert_state_change.sol#L19-L21", "id": "4b31923b05dec7d68f1bf133b986b4ec06fcc82ff3b8f0414d3ee3d623b69265", "check": "assert-state-change", "impact": "Informational", "confidence": "High" }, { "elements": [ { "type": "function", "name": "bad1", "source_mapping": { "start": 186, "length": 66, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 11, 12, 13 ], "starting_column": 3, "ending_column": 4 }, "type_specific_fields": { "parent": { "type": "contract", "name": "A", "source_mapping": { "start": 0, "length": 759, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 ], "starting_column": 1, "ending_column": 2 } }, "signature": "bad1(uint256)" } }, { "type": "node", "name": "assert(bool)((s_a += a) > 10)", "source_mapping": { "start": 224, "length": 23, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 12 ], "starting_column": 5, "ending_column": 28 }, "type_specific_fields": { "parent": { "type": "function", "name": "bad1", "source_mapping": { "start": 186, "length": 66, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 11, 12, 13 ], "starting_column": 3, "ending_column": 4 }, "type_specific_fields": { "parent": { "type": "contract", "name": "A", "source_mapping": { "start": 0, "length": 759, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 ], "starting_column": 1, "ending_column": 2 } }, "signature": "bad1(uint256)" } } } } ], "description": "A.bad1(uint256) (tests/detectors/assert-state-change/0.7.6/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/0.7.6/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/0.7.6/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/0.7.6/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/0.7.6/assert_state_change.sol#L11-L13", "id": "60ad080e2f9647b400851918171383a9aac2900cc0828121e441db4240911fba", "check": "assert-state-change", "impact": "Informational", "confidence": "High" }, { "elements": [ { "type": "function", "name": "bad0", "source_mapping": { "start": 77, "length": 57, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 6, 7, 8 ], "starting_column": 3, "ending_column": 4 }, "type_specific_fields": { "parent": { "type": "contract", "name": "A", "source_mapping": { "start": 0, "length": 759, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 ], "starting_column": 1, "ending_column": 2 } }, "signature": "bad0()" } }, { "type": "node", "name": "assert(bool)((s_a += 1) > 10)", "source_mapping": { "start": 106, "length": 23, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 7 ], "starting_column": 5, "ending_column": 28 }, "type_specific_fields": { "parent": { "type": "function", "name": "bad0", "source_mapping": { "start": 77, "length": 57, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 6, 7, 8 ], "starting_column": 3, "ending_column": 4 }, "type_specific_fields": { "parent": { "type": "contract", "name": "A", "source_mapping": { "start": 0, "length": 759, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/assert-state-change/0.7.6/assert_state_change.sol", "is_dependency": false, "lines": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 ], "starting_column": 1, "ending_column": 2 } }, "signature": "bad0()" } } } } ], "description": "A.bad0() (tests/detectors/assert-state-change/0.7.6/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/0.7.6/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/0.7.6/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/0.7.6/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/0.7.6/assert_state_change.sol#L6-L8", "id": "a710d11e5510f0eb3acb2c1ec524779253f25bf2931bce4cb9c5c048ec586b80", "check": "assert-state-change", "impact": "Informational", "confidence": "High" } ] ]