[ [ { "elements": [ { "type": "function", "name": "bad0", "source_mapping": { "start": 45, "length": 68, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/weak-prng/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/weak-prng/bad_prng.sol", "is_dependency": false, "lines": [ 4, 5, 6 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "BadPRNG", "source_mapping": { "start": 0, "length": 499, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/weak-prng/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/weak-prng/bad_prng.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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "bad0()" } }, { "type": "node", "name": "i = block.timestamp % 10", "source_mapping": { "start": 77, "length": 29, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/weak-prng/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/weak-prng/bad_prng.sol", "is_dependency": false, "lines": [ 5 ], "starting_column": 7, "ending_column": 36 }, "type_specific_fields": { "parent": { "type": "function", "name": "bad0", "source_mapping": { "start": 45, "length": 68, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/weak-prng/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/weak-prng/bad_prng.sol", "is_dependency": false, "lines": [ 4, 5, 6 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "BadPRNG", "source_mapping": { "start": 0, "length": 499, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/weak-prng/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/weak-prng/bad_prng.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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "bad0()" } } } } ], "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", "id": "af624d9c7f3f688c1bad5ecaee81085e0d5cde4e6a55de34ff93684527619748", "check": "weak-prng", "impact": "High", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "bad1", "source_mapping": { "start": 122, "length": 56, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/weak-prng/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/weak-prng/bad_prng.sol", "is_dependency": false, "lines": [ 8, 9, 10 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "BadPRNG", "source_mapping": { "start": 0, "length": 499, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/weak-prng/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/weak-prng/bad_prng.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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "bad1()" } }, { "type": "node", "name": "i = now % 10", "source_mapping": { "start": 154, "length": 17, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/weak-prng/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/weak-prng/bad_prng.sol", "is_dependency": false, "lines": [ 9 ], "starting_column": 7, "ending_column": 24 }, "type_specific_fields": { "parent": { "type": "function", "name": "bad1", "source_mapping": { "start": 122, "length": 56, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/weak-prng/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/weak-prng/bad_prng.sol", "is_dependency": false, "lines": [ 8, 9, 10 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "BadPRNG", "source_mapping": { "start": 0, "length": 499, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/weak-prng/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/weak-prng/bad_prng.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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "bad1()" } } } } ], "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", "id": "fe07d1e4f27274570cfb85530c1cbf7fb7a9004f475b91d1a3762452b017e1b9", "check": "weak-prng", "impact": "High", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "bad2", "source_mapping": { "start": 184, "length": 78, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/weak-prng/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/weak-prng/bad_prng.sol", "is_dependency": false, "lines": [ 12, 13, 14 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "BadPRNG", "source_mapping": { "start": 0, "length": 499, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/weak-prng/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/weak-prng/bad_prng.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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "bad2()" } }, { "type": "node", "name": "i = uint256(blockhash(uint256)(10000)) % 10", "source_mapping": { "start": 216, "length": 39, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/weak-prng/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/weak-prng/bad_prng.sol", "is_dependency": false, "lines": [ 13 ], "starting_column": 7, "ending_column": 46 }, "type_specific_fields": { "parent": { "type": "function", "name": "bad2", "source_mapping": { "start": 184, "length": 78, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/weak-prng/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/weak-prng/bad_prng.sol", "is_dependency": false, "lines": [ 12, 13, 14 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "BadPRNG", "source_mapping": { "start": 0, "length": 499, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/weak-prng/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/weak-prng/bad_prng.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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "bad2()" } } } } ], "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", "id": "100d285386f797a469c6797fcce41350b1984f7e7aab1532580d9b69a774b6f5", "check": "weak-prng", "impact": "High", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "bad3", "source_mapping": { "start": 363, "length": 58, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/weak-prng/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/weak-prng/bad_prng.sol", "is_dependency": false, "lines": [ 20, 21, 22 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "BadPRNG", "source_mapping": { "start": 0, "length": 499, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/weak-prng/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/weak-prng/bad_prng.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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "bad3()" } }, { "type": "node", "name": "i = foo() % 10", "source_mapping": { "start": 395, "length": 19, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/weak-prng/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/weak-prng/bad_prng.sol", "is_dependency": false, "lines": [ 21 ], "starting_column": 7, "ending_column": 26 }, "type_specific_fields": { "parent": { "type": "function", "name": "bad3", "source_mapping": { "start": 363, "length": 58, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/weak-prng/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/weak-prng/bad_prng.sol", "is_dependency": false, "lines": [ 20, 21, 22 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "BadPRNG", "source_mapping": { "start": 0, "length": 499, "filename_used": "/GENERIC_PATH", "filename_relative": "tests/detectors/weak-prng/bad_prng.sol", "filename_absolute": "/GENERIC_PATH", "filename_short": "tests/detectors/weak-prng/bad_prng.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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "bad3()" } } } } ], "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", "id": "a382f093e54d2c7beb2c10b3537790371f4b95545c48d1300fd25d20717d137a", "check": "weak-prng", "impact": "High", "confidence": "Medium" } ] ]