mirror of https://github.com/crytic/slither
parent
a41f86739d
commit
faed6d7fb2
@ -0,0 +1,52 @@ |
|||||||
|
|
||||||
|
contract A { |
||||||
|
|
||||||
|
address constant public MY_ADDRESS = 0xE0f5206BBD039e7b0592d8918820024e2a7437b9; |
||||||
|
address public myFriendsAddress = 0xc0ffee254729296a45a3885639AC7E10F9d54979; |
||||||
|
|
||||||
|
uint public used; |
||||||
|
uint public test = 5; |
||||||
|
|
||||||
|
uint constant X = 32**22 + 8; |
||||||
|
string constant TEXT1 = "abc"; |
||||||
|
string text2 = "xyz"; |
||||||
|
|
||||||
|
function setUsed() public { |
||||||
|
if (msg.sender == MY_ADDRESS) { |
||||||
|
used = test; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
contract B is A { |
||||||
|
|
||||||
|
address public mySistersAddress = 0x999999cf1046e68e36E1aA2E0E07105eDDD1f08E; |
||||||
|
|
||||||
|
fallback () external { |
||||||
|
used = 0; |
||||||
|
} |
||||||
|
|
||||||
|
function setUsed(uint a) public { |
||||||
|
if (msg.sender == MY_ADDRESS) { |
||||||
|
used = a; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
contract MyConc { |
||||||
|
|
||||||
|
uint constant A = 1; |
||||||
|
bytes32 should_be_constant = sha256('abc'); |
||||||
|
uint should_be_constant_2 = A + 1; |
||||||
|
B should_be_constant_3 = B(address(0)); |
||||||
|
address should_be_immutable = msg.sender; |
||||||
|
uint should_be_immutable_2 = getNumber(); |
||||||
|
uint should_be_immutable_3 = 10 + block.number; |
||||||
|
B should_be_immutable_4 = new B(); |
||||||
|
|
||||||
|
function getNumber() public returns(uint){ |
||||||
|
return block.number; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,690 @@ |
|||||||
|
[ |
||||||
|
[ |
||||||
|
{ |
||||||
|
"elements": [ |
||||||
|
{ |
||||||
|
"type": "variable", |
||||||
|
"name": "should_be_constant_3", |
||||||
|
"source_mapping": { |
||||||
|
"start": 853, |
||||||
|
"length": 38, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
42 |
||||||
|
], |
||||||
|
"starting_column": 5, |
||||||
|
"ending_column": 43 |
||||||
|
}, |
||||||
|
"type_specific_fields": { |
||||||
|
"parent": { |
||||||
|
"type": "contract", |
||||||
|
"name": "MyConc", |
||||||
|
"source_mapping": { |
||||||
|
"start": 718, |
||||||
|
"length": 443, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
37, |
||||||
|
38, |
||||||
|
39, |
||||||
|
40, |
||||||
|
41, |
||||||
|
42, |
||||||
|
43, |
||||||
|
44, |
||||||
|
45, |
||||||
|
46, |
||||||
|
47, |
||||||
|
48, |
||||||
|
49, |
||||||
|
50, |
||||||
|
51, |
||||||
|
52 |
||||||
|
], |
||||||
|
"starting_column": 1, |
||||||
|
"ending_column": 2 |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
], |
||||||
|
"description": "MyConc.should_be_constant_3 (tests/detectors/constable-states/0.8.0/const_state_variables.sol#42) should be constant \n", |
||||||
|
"markdown": "[MyConc.should_be_constant_3](tests/detectors/constable-states/0.8.0/const_state_variables.sol#L42) should be constant \n", |
||||||
|
"first_markdown_element": "tests/detectors/constable-states/0.8.0/const_state_variables.sol#L42", |
||||||
|
"id": "29247b0a9939e854ad51bf3b2f58705156aa8b7e446e646b1832467d362b5b3e", |
||||||
|
"check": "constable-states", |
||||||
|
"impact": "Optimization", |
||||||
|
"confidence": "High" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"elements": [ |
||||||
|
{ |
||||||
|
"type": "variable", |
||||||
|
"name": "text2", |
||||||
|
"source_mapping": { |
||||||
|
"start": 305, |
||||||
|
"length": 20, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
12 |
||||||
|
], |
||||||
|
"starting_column": 5, |
||||||
|
"ending_column": 25 |
||||||
|
}, |
||||||
|
"type_specific_fields": { |
||||||
|
"parent": { |
||||||
|
"type": "contract", |
||||||
|
"name": "A", |
||||||
|
"source_mapping": { |
||||||
|
"start": 1, |
||||||
|
"length": 441, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
2, |
||||||
|
3, |
||||||
|
4, |
||||||
|
5, |
||||||
|
6, |
||||||
|
7, |
||||||
|
8, |
||||||
|
9, |
||||||
|
10, |
||||||
|
11, |
||||||
|
12, |
||||||
|
13, |
||||||
|
14, |
||||||
|
15, |
||||||
|
16, |
||||||
|
17, |
||||||
|
18, |
||||||
|
19 |
||||||
|
], |
||||||
|
"starting_column": 1, |
||||||
|
"ending_column": 2 |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
], |
||||||
|
"description": "A.text2 (tests/detectors/constable-states/0.8.0/const_state_variables.sol#12) should be constant \n", |
||||||
|
"markdown": "[A.text2](tests/detectors/constable-states/0.8.0/const_state_variables.sol#L12) should be constant \n", |
||||||
|
"first_markdown_element": "tests/detectors/constable-states/0.8.0/const_state_variables.sol#L12", |
||||||
|
"id": "2f06e04545cea7e7a8998c65d5419f335bf2579a6ce6a832eac9c87392fd5c1a", |
||||||
|
"check": "constable-states", |
||||||
|
"impact": "Optimization", |
||||||
|
"confidence": "High" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"elements": [ |
||||||
|
{ |
||||||
|
"type": "variable", |
||||||
|
"name": "mySistersAddress", |
||||||
|
"source_mapping": { |
||||||
|
"start": 468, |
||||||
|
"length": 76, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
24 |
||||||
|
], |
||||||
|
"starting_column": 5, |
||||||
|
"ending_column": 81 |
||||||
|
}, |
||||||
|
"type_specific_fields": { |
||||||
|
"parent": { |
||||||
|
"type": "contract", |
||||||
|
"name": "B", |
||||||
|
"source_mapping": { |
||||||
|
"start": 445, |
||||||
|
"length": 271, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
22, |
||||||
|
23, |
||||||
|
24, |
||||||
|
25, |
||||||
|
26, |
||||||
|
27, |
||||||
|
28, |
||||||
|
29, |
||||||
|
30, |
||||||
|
31, |
||||||
|
32, |
||||||
|
33, |
||||||
|
34, |
||||||
|
35 |
||||||
|
], |
||||||
|
"starting_column": 1, |
||||||
|
"ending_column": 2 |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
], |
||||||
|
"description": "B.mySistersAddress (tests/detectors/constable-states/0.8.0/const_state_variables.sol#24) should be constant \n", |
||||||
|
"markdown": "[B.mySistersAddress](tests/detectors/constable-states/0.8.0/const_state_variables.sol#L24) should be constant \n", |
||||||
|
"first_markdown_element": "tests/detectors/constable-states/0.8.0/const_state_variables.sol#L24", |
||||||
|
"id": "3b5bff93954a48a79387e7981e8c45d78edc575a0988a10f1c7f439b9f930539", |
||||||
|
"check": "constable-states", |
||||||
|
"impact": "Optimization", |
||||||
|
"confidence": "High" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"elements": [ |
||||||
|
{ |
||||||
|
"type": "variable", |
||||||
|
"name": "should_be_immutable", |
||||||
|
"source_mapping": { |
||||||
|
"start": 897, |
||||||
|
"length": 40, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
43 |
||||||
|
], |
||||||
|
"starting_column": 5, |
||||||
|
"ending_column": 45 |
||||||
|
}, |
||||||
|
"type_specific_fields": { |
||||||
|
"parent": { |
||||||
|
"type": "contract", |
||||||
|
"name": "MyConc", |
||||||
|
"source_mapping": { |
||||||
|
"start": 718, |
||||||
|
"length": 443, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
37, |
||||||
|
38, |
||||||
|
39, |
||||||
|
40, |
||||||
|
41, |
||||||
|
42, |
||||||
|
43, |
||||||
|
44, |
||||||
|
45, |
||||||
|
46, |
||||||
|
47, |
||||||
|
48, |
||||||
|
49, |
||||||
|
50, |
||||||
|
51, |
||||||
|
52 |
||||||
|
], |
||||||
|
"starting_column": 1, |
||||||
|
"ending_column": 2 |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
], |
||||||
|
"description": "MyConc.should_be_immutable (tests/detectors/constable-states/0.8.0/const_state_variables.sol#43) should be immutable \n", |
||||||
|
"markdown": "[MyConc.should_be_immutable](tests/detectors/constable-states/0.8.0/const_state_variables.sol#L43) should be immutable \n", |
||||||
|
"first_markdown_element": "tests/detectors/constable-states/0.8.0/const_state_variables.sol#L43", |
||||||
|
"id": "3cabd54a4d3fa32f960965a41bb09b62052286195b47b2b7db670f87e8df21bf", |
||||||
|
"check": "constable-states", |
||||||
|
"impact": "Optimization", |
||||||
|
"confidence": "High" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"elements": [ |
||||||
|
{ |
||||||
|
"type": "variable", |
||||||
|
"name": "myFriendsAddress", |
||||||
|
"source_mapping": { |
||||||
|
"start": 104, |
||||||
|
"length": 76, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
5 |
||||||
|
], |
||||||
|
"starting_column": 5, |
||||||
|
"ending_column": 81 |
||||||
|
}, |
||||||
|
"type_specific_fields": { |
||||||
|
"parent": { |
||||||
|
"type": "contract", |
||||||
|
"name": "A", |
||||||
|
"source_mapping": { |
||||||
|
"start": 1, |
||||||
|
"length": 441, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
2, |
||||||
|
3, |
||||||
|
4, |
||||||
|
5, |
||||||
|
6, |
||||||
|
7, |
||||||
|
8, |
||||||
|
9, |
||||||
|
10, |
||||||
|
11, |
||||||
|
12, |
||||||
|
13, |
||||||
|
14, |
||||||
|
15, |
||||||
|
16, |
||||||
|
17, |
||||||
|
18, |
||||||
|
19 |
||||||
|
], |
||||||
|
"starting_column": 1, |
||||||
|
"ending_column": 2 |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
], |
||||||
|
"description": "A.myFriendsAddress (tests/detectors/constable-states/0.8.0/const_state_variables.sol#5) should be constant \n", |
||||||
|
"markdown": "[A.myFriendsAddress](tests/detectors/constable-states/0.8.0/const_state_variables.sol#L5) should be constant \n", |
||||||
|
"first_markdown_element": "tests/detectors/constable-states/0.8.0/const_state_variables.sol#L5", |
||||||
|
"id": "52fd72f6870c4b504d1bcf9fb44249658e2077474d66208a33a47d2668b8db49", |
||||||
|
"check": "constable-states", |
||||||
|
"impact": "Optimization", |
||||||
|
"confidence": "High" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"elements": [ |
||||||
|
{ |
||||||
|
"type": "variable", |
||||||
|
"name": "should_be_constant", |
||||||
|
"source_mapping": { |
||||||
|
"start": 766, |
||||||
|
"length": 42, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
40 |
||||||
|
], |
||||||
|
"starting_column": 5, |
||||||
|
"ending_column": 47 |
||||||
|
}, |
||||||
|
"type_specific_fields": { |
||||||
|
"parent": { |
||||||
|
"type": "contract", |
||||||
|
"name": "MyConc", |
||||||
|
"source_mapping": { |
||||||
|
"start": 718, |
||||||
|
"length": 443, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
37, |
||||||
|
38, |
||||||
|
39, |
||||||
|
40, |
||||||
|
41, |
||||||
|
42, |
||||||
|
43, |
||||||
|
44, |
||||||
|
45, |
||||||
|
46, |
||||||
|
47, |
||||||
|
48, |
||||||
|
49, |
||||||
|
50, |
||||||
|
51, |
||||||
|
52 |
||||||
|
], |
||||||
|
"starting_column": 1, |
||||||
|
"ending_column": 2 |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
], |
||||||
|
"description": "MyConc.should_be_constant (tests/detectors/constable-states/0.8.0/const_state_variables.sol#40) should be constant \n", |
||||||
|
"markdown": "[MyConc.should_be_constant](tests/detectors/constable-states/0.8.0/const_state_variables.sol#L40) should be constant \n", |
||||||
|
"first_markdown_element": "tests/detectors/constable-states/0.8.0/const_state_variables.sol#L40", |
||||||
|
"id": "8d08797efc8230b480ec669c7e2bf53c3b3d16bc59bf7770934b34fd892934f8", |
||||||
|
"check": "constable-states", |
||||||
|
"impact": "Optimization", |
||||||
|
"confidence": "High" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"elements": [ |
||||||
|
{ |
||||||
|
"type": "variable", |
||||||
|
"name": "should_be_immutable_4", |
||||||
|
"source_mapping": { |
||||||
|
"start": 1041, |
||||||
|
"length": 33, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
46 |
||||||
|
], |
||||||
|
"starting_column": 5, |
||||||
|
"ending_column": 38 |
||||||
|
}, |
||||||
|
"type_specific_fields": { |
||||||
|
"parent": { |
||||||
|
"type": "contract", |
||||||
|
"name": "MyConc", |
||||||
|
"source_mapping": { |
||||||
|
"start": 718, |
||||||
|
"length": 443, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
37, |
||||||
|
38, |
||||||
|
39, |
||||||
|
40, |
||||||
|
41, |
||||||
|
42, |
||||||
|
43, |
||||||
|
44, |
||||||
|
45, |
||||||
|
46, |
||||||
|
47, |
||||||
|
48, |
||||||
|
49, |
||||||
|
50, |
||||||
|
51, |
||||||
|
52 |
||||||
|
], |
||||||
|
"starting_column": 1, |
||||||
|
"ending_column": 2 |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
], |
||||||
|
"description": "MyConc.should_be_immutable_4 (tests/detectors/constable-states/0.8.0/const_state_variables.sol#46) should be immutable \n", |
||||||
|
"markdown": "[MyConc.should_be_immutable_4](tests/detectors/constable-states/0.8.0/const_state_variables.sol#L46) should be immutable \n", |
||||||
|
"first_markdown_element": "tests/detectors/constable-states/0.8.0/const_state_variables.sol#L46", |
||||||
|
"id": "a15e34bd516e604d7ba3e0746ad0234d0baea38da2e747648316d5d15ee9b3bc", |
||||||
|
"check": "constable-states", |
||||||
|
"impact": "Optimization", |
||||||
|
"confidence": "High" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"elements": [ |
||||||
|
{ |
||||||
|
"type": "variable", |
||||||
|
"name": "should_be_immutable_2", |
||||||
|
"source_mapping": { |
||||||
|
"start": 943, |
||||||
|
"length": 40, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
44 |
||||||
|
], |
||||||
|
"starting_column": 5, |
||||||
|
"ending_column": 45 |
||||||
|
}, |
||||||
|
"type_specific_fields": { |
||||||
|
"parent": { |
||||||
|
"type": "contract", |
||||||
|
"name": "MyConc", |
||||||
|
"source_mapping": { |
||||||
|
"start": 718, |
||||||
|
"length": 443, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
37, |
||||||
|
38, |
||||||
|
39, |
||||||
|
40, |
||||||
|
41, |
||||||
|
42, |
||||||
|
43, |
||||||
|
44, |
||||||
|
45, |
||||||
|
46, |
||||||
|
47, |
||||||
|
48, |
||||||
|
49, |
||||||
|
50, |
||||||
|
51, |
||||||
|
52 |
||||||
|
], |
||||||
|
"starting_column": 1, |
||||||
|
"ending_column": 2 |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
], |
||||||
|
"description": "MyConc.should_be_immutable_2 (tests/detectors/constable-states/0.8.0/const_state_variables.sol#44) should be immutable \n", |
||||||
|
"markdown": "[MyConc.should_be_immutable_2](tests/detectors/constable-states/0.8.0/const_state_variables.sol#L44) should be immutable \n", |
||||||
|
"first_markdown_element": "tests/detectors/constable-states/0.8.0/const_state_variables.sol#L44", |
||||||
|
"id": "cb6df1f1ce2f32505c81f257863ceef6d5145ee5a2835af1c6719ad695d145e2", |
||||||
|
"check": "constable-states", |
||||||
|
"impact": "Optimization", |
||||||
|
"confidence": "High" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"elements": [ |
||||||
|
{ |
||||||
|
"type": "variable", |
||||||
|
"name": "should_be_constant_2", |
||||||
|
"source_mapping": { |
||||||
|
"start": 814, |
||||||
|
"length": 33, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
41 |
||||||
|
], |
||||||
|
"starting_column": 5, |
||||||
|
"ending_column": 38 |
||||||
|
}, |
||||||
|
"type_specific_fields": { |
||||||
|
"parent": { |
||||||
|
"type": "contract", |
||||||
|
"name": "MyConc", |
||||||
|
"source_mapping": { |
||||||
|
"start": 718, |
||||||
|
"length": 443, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
37, |
||||||
|
38, |
||||||
|
39, |
||||||
|
40, |
||||||
|
41, |
||||||
|
42, |
||||||
|
43, |
||||||
|
44, |
||||||
|
45, |
||||||
|
46, |
||||||
|
47, |
||||||
|
48, |
||||||
|
49, |
||||||
|
50, |
||||||
|
51, |
||||||
|
52 |
||||||
|
], |
||||||
|
"starting_column": 1, |
||||||
|
"ending_column": 2 |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
], |
||||||
|
"description": "MyConc.should_be_constant_2 (tests/detectors/constable-states/0.8.0/const_state_variables.sol#41) should be constant \n", |
||||||
|
"markdown": "[MyConc.should_be_constant_2](tests/detectors/constable-states/0.8.0/const_state_variables.sol#L41) should be constant \n", |
||||||
|
"first_markdown_element": "tests/detectors/constable-states/0.8.0/const_state_variables.sol#L41", |
||||||
|
"id": "d08c6d1e331083b42c45c222691dd1e6d880814c66d114971875337ca61ba9c9", |
||||||
|
"check": "constable-states", |
||||||
|
"impact": "Optimization", |
||||||
|
"confidence": "High" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"elements": [ |
||||||
|
{ |
||||||
|
"type": "variable", |
||||||
|
"name": "should_be_immutable_3", |
||||||
|
"source_mapping": { |
||||||
|
"start": 989, |
||||||
|
"length": 46, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
45 |
||||||
|
], |
||||||
|
"starting_column": 5, |
||||||
|
"ending_column": 51 |
||||||
|
}, |
||||||
|
"type_specific_fields": { |
||||||
|
"parent": { |
||||||
|
"type": "contract", |
||||||
|
"name": "MyConc", |
||||||
|
"source_mapping": { |
||||||
|
"start": 718, |
||||||
|
"length": 443, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
37, |
||||||
|
38, |
||||||
|
39, |
||||||
|
40, |
||||||
|
41, |
||||||
|
42, |
||||||
|
43, |
||||||
|
44, |
||||||
|
45, |
||||||
|
46, |
||||||
|
47, |
||||||
|
48, |
||||||
|
49, |
||||||
|
50, |
||||||
|
51, |
||||||
|
52 |
||||||
|
], |
||||||
|
"starting_column": 1, |
||||||
|
"ending_column": 2 |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
], |
||||||
|
"description": "MyConc.should_be_immutable_3 (tests/detectors/constable-states/0.8.0/const_state_variables.sol#45) should be immutable \n", |
||||||
|
"markdown": "[MyConc.should_be_immutable_3](tests/detectors/constable-states/0.8.0/const_state_variables.sol#L45) should be immutable \n", |
||||||
|
"first_markdown_element": "tests/detectors/constable-states/0.8.0/const_state_variables.sol#L45", |
||||||
|
"id": "dc5903ef8f6ec62f53df486fa768a0d817643efe30c90c1308079eee99c316d4", |
||||||
|
"check": "constable-states", |
||||||
|
"impact": "Optimization", |
||||||
|
"confidence": "High" |
||||||
|
}, |
||||||
|
{ |
||||||
|
"elements": [ |
||||||
|
{ |
||||||
|
"type": "variable", |
||||||
|
"name": "test", |
||||||
|
"source_mapping": { |
||||||
|
"start": 209, |
||||||
|
"length": 20, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
8 |
||||||
|
], |
||||||
|
"starting_column": 5, |
||||||
|
"ending_column": 25 |
||||||
|
}, |
||||||
|
"type_specific_fields": { |
||||||
|
"parent": { |
||||||
|
"type": "contract", |
||||||
|
"name": "A", |
||||||
|
"source_mapping": { |
||||||
|
"start": 1, |
||||||
|
"length": 441, |
||||||
|
"filename_relative": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/constable-states/0.8.0/const_state_variables.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
2, |
||||||
|
3, |
||||||
|
4, |
||||||
|
5, |
||||||
|
6, |
||||||
|
7, |
||||||
|
8, |
||||||
|
9, |
||||||
|
10, |
||||||
|
11, |
||||||
|
12, |
||||||
|
13, |
||||||
|
14, |
||||||
|
15, |
||||||
|
16, |
||||||
|
17, |
||||||
|
18, |
||||||
|
19 |
||||||
|
], |
||||||
|
"starting_column": 1, |
||||||
|
"ending_column": 2 |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
], |
||||||
|
"description": "A.test (tests/detectors/constable-states/0.8.0/const_state_variables.sol#8) should be constant \n", |
||||||
|
"markdown": "[A.test](tests/detectors/constable-states/0.8.0/const_state_variables.sol#L8) should be constant \n", |
||||||
|
"first_markdown_element": "tests/detectors/constable-states/0.8.0/const_state_variables.sol#L8", |
||||||
|
"id": "e407a1b57b4d25949ef7c4e6d97197605857099a94774a9c7a848d7dd3463668", |
||||||
|
"check": "constable-states", |
||||||
|
"impact": "Optimization", |
||||||
|
"confidence": "High" |
||||||
|
} |
||||||
|
] |
||||||
|
] |
@ -1,7 +0,0 @@ |
|||||||
contract C{ |
|
||||||
uint immutable v; |
|
||||||
|
|
||||||
constructor() public{ |
|
||||||
v = 0; |
|
||||||
} |
|
||||||
} |
|
@ -1,3 +0,0 @@ |
|||||||
[ |
|
||||||
[] |
|
||||||
] |
|
Loading…
Reference in new issue