-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathslither.db.json
1 lines (1 loc) · 391 KB
/
slither.db.json
1
[{"elements": [{"type": "contract", "name": "CoinFlipFactory", "source_mapping": {"start": 113, "length": 457, "filename_relative": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_short": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "is_dependency": false, "lines": [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}}, {"type": "function", "name": "createInstance", "source_mapping": {"start": 152, "length": 82, "filename_relative": "src/core/Level.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Level.sol", "filename_short": "src/core/Level.sol", "is_dependency": false, "lines": [8], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "contract", "name": "Level", "source_mapping": {"start": 111, "length": 231, "filename_relative": "src/core/Level.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Level.sol", "filename_short": "src/core/Level.sol", "is_dependency": false, "lines": [7, 8, 9, 10, 11], "starting_column": 1, "ending_column": 2}}, "signature": "createInstance(address)"}}, {"type": "function", "name": "createInstance", "source_mapping": {"start": 153, "length": 183, "filename_relative": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_short": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipFactory", "source_mapping": {"start": 113, "length": 457, "filename_relative": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_short": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "is_dependency": false, "lines": [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": "createInstance(address)"}}], "description": "Contract locking ether found:\n\tContract CoinFlipFactory (src/levels/03-CoinFlip/CoinFlipFactory.sol#8-27) has payable functions:\n\t - Level.createInstance(address) (src/core/Level.sol#8)\n\t - CoinFlipFactory.createInstance(address) (src/levels/03-CoinFlip/CoinFlipFactory.sol#9-17)\n\tBut does not have a function to withdraw the ether\n", "markdown": "Contract locking ether found:\n\tContract [CoinFlipFactory](src/levels/03-CoinFlip/CoinFlipFactory.sol#L8-L27) has payable functions:\n\t - [Level.createInstance(address)](src/core/Level.sol#L8)\n\t - [CoinFlipFactory.createInstance(address)](src/levels/03-CoinFlip/CoinFlipFactory.sol#L9-L17)\n\tBut does not have a function to withdraw the ether\n", "first_markdown_element": "src/levels/03-CoinFlip/CoinFlipFactory.sol#L8-L27", "id": "b791310f7bcb4709e6fecac7d31aef20c1c230b5b351d19db037eff8047c0113", "check": "locked-ether", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "contract", "name": "FalloutFactory", "source_mapping": {"start": 112, "length": 493, "filename_relative": "src/levels/02-Fallout/FalloutFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/02-Fallout/FalloutFactory.sol", "filename_short": "src/levels/02-Fallout/FalloutFactory.sol", "is_dependency": false, "lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": 2}}, {"type": "function", "name": "createInstance", "source_mapping": {"start": 152, "length": 82, "filename_relative": "src/core/Level.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Level.sol", "filename_short": "src/core/Level.sol", "is_dependency": false, "lines": [8], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "contract", "name": "Level", "source_mapping": {"start": 111, "length": 231, "filename_relative": "src/core/Level.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Level.sol", "filename_short": "src/core/Level.sol", "is_dependency": false, "lines": [7, 8, 9, 10, 11], "starting_column": 1, "ending_column": 2}}, "signature": "createInstance(address)"}}, {"type": "function", "name": "createInstance", "source_mapping": {"start": 151, "length": 219, "filename_relative": "src/levels/02-Fallout/FalloutFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/02-Fallout/FalloutFactory.sol", "filename_short": "src/levels/02-Fallout/FalloutFactory.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutFactory", "source_mapping": {"start": 112, "length": 493, "filename_relative": "src/levels/02-Fallout/FalloutFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/02-Fallout/FalloutFactory.sol", "filename_short": "src/levels/02-Fallout/FalloutFactory.sol", "is_dependency": false, "lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": 2}}, "signature": "createInstance(address)"}}], "description": "Contract locking ether found:\n\tContract FalloutFactory (src/levels/02-Fallout/FalloutFactory.sol#8-28) has payable functions:\n\t - Level.createInstance(address) (src/core/Level.sol#8)\n\t - FalloutFactory.createInstance(address) (src/levels/02-Fallout/FalloutFactory.sol#9-18)\n\tBut does not have a function to withdraw the ether\n", "markdown": "Contract locking ether found:\n\tContract [FalloutFactory](src/levels/02-Fallout/FalloutFactory.sol#L8-L28) has payable functions:\n\t - [Level.createInstance(address)](src/core/Level.sol#L8)\n\t - [FalloutFactory.createInstance(address)](src/levels/02-Fallout/FalloutFactory.sol#L9-L18)\n\tBut does not have a function to withdraw the ether\n", "first_markdown_element": "src/levels/02-Fallout/FalloutFactory.sol#L8-L28", "id": "3bfba3eafad6dfe85fac5c0a6e1001e6352ceaaf94adc6d01961f1f0d081627e", "check": "locked-ether", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "contract", "name": "TelephoneFactory", "source_mapping": {"start": 114, "length": 503, "filename_relative": "src/levels/04-Telephone/TelephoneFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/TelephoneFactory.sol", "filename_short": "src/levels/04-Telephone/TelephoneFactory.sol", "is_dependency": false, "lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": 2}}, {"type": "function", "name": "createInstance", "source_mapping": {"start": 152, "length": 82, "filename_relative": "src/core/Level.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Level.sol", "filename_short": "src/core/Level.sol", "is_dependency": false, "lines": [8], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "contract", "name": "Level", "source_mapping": {"start": 111, "length": 231, "filename_relative": "src/core/Level.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Level.sol", "filename_short": "src/core/Level.sol", "is_dependency": false, "lines": [7, 8, 9, 10, 11], "starting_column": 1, "ending_column": 2}}, "signature": "createInstance(address)"}}, {"type": "function", "name": "createInstance", "source_mapping": {"start": 155, "length": 223, "filename_relative": "src/levels/04-Telephone/TelephoneFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/TelephoneFactory.sol", "filename_short": "src/levels/04-Telephone/TelephoneFactory.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneFactory", "source_mapping": {"start": 114, "length": 503, "filename_relative": "src/levels/04-Telephone/TelephoneFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/TelephoneFactory.sol", "filename_short": "src/levels/04-Telephone/TelephoneFactory.sol", "is_dependency": false, "lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": 2}}, "signature": "createInstance(address)"}}], "description": "Contract locking ether found:\n\tContract TelephoneFactory (src/levels/04-Telephone/TelephoneFactory.sol#8-28) has payable functions:\n\t - Level.createInstance(address) (src/core/Level.sol#8)\n\t - TelephoneFactory.createInstance(address) (src/levels/04-Telephone/TelephoneFactory.sol#9-18)\n\tBut does not have a function to withdraw the ether\n", "markdown": "Contract locking ether found:\n\tContract [TelephoneFactory](src/levels/04-Telephone/TelephoneFactory.sol#L8-L28) has payable functions:\n\t - [Level.createInstance(address)](src/core/Level.sol#L8)\n\t - [TelephoneFactory.createInstance(address)](src/levels/04-Telephone/TelephoneFactory.sol#L9-L18)\n\tBut does not have a function to withdraw the ether\n", "first_markdown_element": "src/levels/04-Telephone/TelephoneFactory.sol#L8-L28", "id": "ae273315b1daf57293d7585d74fe38eeced5e2baae8c8f0b9fb7a1149fb2ad1a", "check": "locked-ether", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "contract", "name": "FallbackFactory", "source_mapping": {"start": 113, "length": 468, "filename_relative": "src/levels/01-Fallback/FallbackFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/01-Fallback/FallbackFactory.sol", "filename_short": "src/levels/01-Fallback/FallbackFactory.sol", "is_dependency": false, "lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "starting_column": 1, "ending_column": 2}}, {"type": "function", "name": "createInstance", "source_mapping": {"start": 152, "length": 82, "filename_relative": "src/core/Level.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Level.sol", "filename_short": "src/core/Level.sol", "is_dependency": false, "lines": [8], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "contract", "name": "Level", "source_mapping": {"start": 111, "length": 231, "filename_relative": "src/core/Level.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Level.sol", "filename_short": "src/core/Level.sol", "is_dependency": false, "lines": [7, 8, 9, 10, 11], "starting_column": 1, "ending_column": 2}}, "signature": "createInstance(address)"}}, {"type": "function", "name": "createInstance", "source_mapping": {"start": 153, "length": 185, "filename_relative": "src/levels/01-Fallback/FallbackFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/01-Fallback/FallbackFactory.sol", "filename_short": "src/levels/01-Fallback/FallbackFactory.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackFactory", "source_mapping": {"start": 113, "length": 468, "filename_relative": "src/levels/01-Fallback/FallbackFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/01-Fallback/FallbackFactory.sol", "filename_short": "src/levels/01-Fallback/FallbackFactory.sol", "is_dependency": false, "lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "starting_column": 1, "ending_column": 2}}, "signature": "createInstance(address)"}}], "description": "Contract locking ether found:\n\tContract FallbackFactory (src/levels/01-Fallback/FallbackFactory.sol#8-19) has payable functions:\n\t - Level.createInstance(address) (src/core/Level.sol#8)\n\t - FallbackFactory.createInstance(address) (src/levels/01-Fallback/FallbackFactory.sol#9-13)\n\tBut does not have a function to withdraw the ether\n", "markdown": "Contract locking ether found:\n\tContract [FallbackFactory](src/levels/01-Fallback/FallbackFactory.sol#L8-L19) has payable functions:\n\t - [Level.createInstance(address)](src/core/Level.sol#L8)\n\t - [FallbackFactory.createInstance(address)](src/levels/01-Fallback/FallbackFactory.sol#L9-L13)\n\tBut does not have a function to withdraw the ether\n", "first_markdown_element": "src/levels/01-Fallback/FallbackFactory.sol#L8-L19", "id": "ca9ea36b73b87d8af504db15b4ae843717cff118a3858eb442934ed936c7eae7", "check": "locked-ether", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "contract", "name": "TokenFactory", "source_mapping": {"start": 110, "length": 646, "filename_relative": "src/levels/05-Token/TokenFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/TokenFactory.sol", "filename_short": "src/levels/05-Token/TokenFactory.sol", "is_dependency": false, "lines": [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], "starting_column": 1, "ending_column": 2}}, {"type": "function", "name": "createInstance", "source_mapping": {"start": 152, "length": 82, "filename_relative": "src/core/Level.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Level.sol", "filename_short": "src/core/Level.sol", "is_dependency": false, "lines": [8], "starting_column": 5, "ending_column": 87}, "type_specific_fields": {"parent": {"type": "contract", "name": "Level", "source_mapping": {"start": 111, "length": 231, "filename_relative": "src/core/Level.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Level.sol", "filename_short": "src/core/Level.sol", "is_dependency": false, "lines": [7, 8, 9, 10, 11], "starting_column": 1, "ending_column": 2}}, "signature": "createInstance(address)"}}, {"type": "function", "name": "createInstance", "source_mapping": {"start": 271, "length": 245, "filename_relative": "src/levels/05-Token/TokenFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/TokenFactory.sol", "filename_short": "src/levels/05-Token/TokenFactory.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenFactory", "source_mapping": {"start": 110, "length": 646, "filename_relative": "src/levels/05-Token/TokenFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/TokenFactory.sol", "filename_short": "src/levels/05-Token/TokenFactory.sol", "is_dependency": false, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "createInstance(address)"}}], "description": "Contract locking ether found:\n\tContract TokenFactory (src/levels/05-Token/TokenFactory.sol#8-32) has payable functions:\n\t - Level.createInstance(address) (src/core/Level.sol#8)\n\t - TokenFactory.createInstance(address) (src/levels/05-Token/TokenFactory.sol#13-22)\n\tBut does not have a function to withdraw the ether\n", "markdown": "Contract locking ether found:\n\tContract [TokenFactory](src/levels/05-Token/TokenFactory.sol#L8-L32) has payable functions:\n\t - [Level.createInstance(address)](src/core/Level.sol#L8)\n\t - [TokenFactory.createInstance(address)](src/levels/05-Token/TokenFactory.sol#L13-L22)\n\tBut does not have a function to withdraw the ether\n", "first_markdown_element": "src/levels/05-Token/TokenFactory.sol#L8-L32", "id": "e20fb1273c00a1cad968c03d2f9741a2fb7a71e36aeab3595635f1a9057f3820", "check": "locked-ether", "impact": "Medium", "confidence": "High"}, {"elements": [{"type": "function", "name": "submitLevelInstance", "source_mapping": {"start": 1636, "length": 815, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Ethernaut", "source_mapping": {"start": 133, "length": 2320, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "submitLevelInstance(address)"}}, {"type": "node", "name": "data.level.validateInstance(_instance,msg.sender)", "source_mapping": {"start": 2031, "length": 50, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [58], "starting_column": 13, "ending_column": 63}, "type_specific_fields": {"parent": {"type": "function", "name": "submitLevelInstance", "source_mapping": {"start": 1636, "length": 815, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Ethernaut", "source_mapping": {"start": 133, "length": 2320, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "submitLevelInstance(address)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "data.completed = true", "source_mapping": {"start": 2144, "length": 21, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [60], "starting_column": 13, "ending_column": 34}, "type_specific_fields": {"parent": {"type": "function", "name": "submitLevelInstance", "source_mapping": {"start": 1636, "length": 815, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Ethernaut", "source_mapping": {"start": 133, "length": 2320, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "submitLevelInstance(address)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "emittedInstances"}}], "description": "Reentrancy in Ethernaut.submitLevelInstance(address) (src/core/Ethernaut.sol#51-69):\n\tExternal calls:\n\t- data.level.validateInstance(_instance,msg.sender) (src/core/Ethernaut.sol#58)\n\tState variables written after the call(s):\n\t- data.completed = true (src/core/Ethernaut.sol#60)\n", "markdown": "Reentrancy in [Ethernaut.submitLevelInstance(address)](src/core/Ethernaut.sol#L51-L69):\n\tExternal calls:\n\t- [data.level.validateInstance(_instance,msg.sender)](src/core/Ethernaut.sol#L58)\n\tState variables written after the call(s):\n\t- [data.completed = true](src/core/Ethernaut.sol#L60)\n", "first_markdown_element": "src/core/Ethernaut.sol#L51-L69", "id": "b7a3b03d2361425cccb3f8a7e0efa41578bfa421571c6a4ccf0746fc421595c9", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}, {"type": "node", "name": "vm.roll(blockNumber)", "source_mapping": {"start": 2667, "length": 20, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [70], "starting_column": 13, "ending_column": 33}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}}], "description": "CoinFlipTest.test_CoinFlipExploit() (test/03-CoinFlip.t.sol#32-87) has external calls inside a loop: vm.roll(blockNumber) (test/03-CoinFlip.t.sol#70)\n", "markdown": "[CoinFlipTest.test_CoinFlipExploit()](test/03-CoinFlip.t.sol#L32-L87) has external calls inside a loop: [vm.roll(blockNumber)](test/03-CoinFlip.t.sol#L70)\n", "first_markdown_element": "test/03-CoinFlip.t.sol#L32-L87", "id": "29e9992a126614560d47eed67f2e9e649b819b303fa256d10cebd944705adf58", "check": "calls-loop", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}, {"type": "node", "name": "coinFlipExploit.coinFlipAttack()", "source_mapping": {"start": 2701, "length": 32, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [71], "starting_column": 13, "ending_column": 45}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}}], "description": "CoinFlipTest.test_CoinFlipExploit() (test/03-CoinFlip.t.sol#32-87) has external calls inside a loop: coinFlipExploit.coinFlipAttack() (test/03-CoinFlip.t.sol#71)\n", "markdown": "[CoinFlipTest.test_CoinFlipExploit()](test/03-CoinFlip.t.sol#L32-L87) has external calls inside a loop: [coinFlipExploit.coinFlipAttack()](test/03-CoinFlip.t.sol#L71)\n", "first_markdown_element": "test/03-CoinFlip.t.sol#L32-L87", "id": "038906f258b46a40bb0e71a71b08ecd381e8c57436d8f1be179fb283618c2417", "check": "calls-loop", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}, {"type": "node", "name": "log_named_uint(Consecutive wins: ,coinFlipContract.consecutiveWins())", "source_mapping": {"start": 2747, "length": 123, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [72, 73, 74, 75], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}}], "description": "CoinFlipTest.test_CoinFlipExploit() (test/03-CoinFlip.t.sol#32-87) has external calls inside a loop: log_named_uint(Consecutive wins: ,coinFlipContract.consecutiveWins()) (test/03-CoinFlip.t.sol#72-75)\n", "markdown": "[CoinFlipTest.test_CoinFlipExploit()](test/03-CoinFlip.t.sol#L32-L87) has external calls inside a loop: [log_named_uint(Consecutive wins: ,coinFlipContract.consecutiveWins())](test/03-CoinFlip.t.sol#L72-L75)\n", "first_markdown_element": "test/03-CoinFlip.t.sol#L32-L87", "id": "3bae4f554de6d9b6d16736a3a8165d693ad48d1a85e1315164e5f77b4fb595e2", "check": "calls-loop", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "createLevelInstance", "source_mapping": {"start": 967, "length": 663, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Ethernaut", "source_mapping": {"start": 133, "length": 2320, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "createLevelInstance(Level)"}}, {"type": "node", "name": "instance = _level.createInstance{value: msg.value}(msg.sender)", "source_mapping": {"start": 1197, "length": 70, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [40], "starting_column": 9, "ending_column": 79}, "type_specific_fields": {"parent": {"type": "function", "name": "createLevelInstance", "source_mapping": {"start": 967, "length": 663, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Ethernaut", "source_mapping": {"start": 133, "length": 2320, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "createLevelInstance(Level)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "emittedInstances[instance] = EmittedInstanceData(msg.sender,_level,false)", "source_mapping": {"start": 1348, "length": 75, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [43], "starting_column": 9, "ending_column": 84}, "type_specific_fields": {"parent": {"type": "function", "name": "createLevelInstance", "source_mapping": {"start": 967, "length": 663, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Ethernaut", "source_mapping": {"start": 133, "length": 2320, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "createLevelInstance(Level)"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "emittedInstances"}}], "description": "Reentrancy in Ethernaut.createLevelInstance(Level) (src/core/Ethernaut.sol#35-49):\n\tExternal calls:\n\t- instance = _level.createInstance{value: msg.value}(msg.sender) (src/core/Ethernaut.sol#40)\n\tState variables written after the call(s):\n\t- emittedInstances[instance] = EmittedInstanceData(msg.sender,_level,false) (src/core/Ethernaut.sol#43)\n", "markdown": "Reentrancy in [Ethernaut.createLevelInstance(Level)](src/core/Ethernaut.sol#L35-L49):\n\tExternal calls:\n\t- [instance = _level.createInstance{value: msg.value}(msg.sender)](src/core/Ethernaut.sol#L40)\n\tState variables written after the call(s):\n\t- [emittedInstances[instance] = EmittedInstanceData(msg.sender,_level,false)](src/core/Ethernaut.sol#L43)\n", "first_markdown_element": "src/core/Ethernaut.sol#L35-L49", "id": "b590e75ad702f3d25049cb7ff74a858ab4f7930eaaf30c2807c287845af3e2f4", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}, {"type": "node", "name": "ethernaut.registerLevel(coinFlipFactory)", "source_mapping": {"start": 1285, "length": 40, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [39], "starting_column": 9, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "vm.startPrank(eve)", "source_mapping": {"start": 1335, "length": 18, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [40], "starting_column": 9, "ending_column": 27}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "levelAddress = ethernaut.createLevelInstance(coinFlipFactory)", "source_mapping": {"start": 1364, "length": 69, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [42], "starting_column": 9, "ending_column": 78}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ethernaut.registerLevel(coinFlipFactory)", "source_mapping": {"start": 1285, "length": 40, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [39], "starting_column": 9, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "vm.startPrank(eve)", "source_mapping": {"start": 1335, "length": 18, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [40], "starting_column": 9, "ending_column": 27}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "levelAddress = ethernaut.createLevelInstance(coinFlipFactory)", "source_mapping": {"start": 1364, "length": 69, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [42], "starting_column": 9, "ending_column": 78}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "coinFlipExploit = new CoinFlipExploit(levelAddress)", "source_mapping": {"start": 1512, "length": 51, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [44], "starting_column": 9, "ending_column": 60}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "coinFlipExploit"}}], "description": "Reentrancy in CoinFlipTest.test_CoinFlipExploit() (test/03-CoinFlip.t.sol#32-87):\n\tExternal calls:\n\t- ethernaut.registerLevel(coinFlipFactory) (test/03-CoinFlip.t.sol#39)\n\t- vm.startPrank(eve) (test/03-CoinFlip.t.sol#40)\n\t- levelAddress = ethernaut.createLevelInstance(coinFlipFactory) (test/03-CoinFlip.t.sol#42)\n\tState variables written after the call(s):\n\t- coinFlipExploit = new CoinFlipExploit(levelAddress) (test/03-CoinFlip.t.sol#44)\n", "markdown": "Reentrancy in [CoinFlipTest.test_CoinFlipExploit()](test/03-CoinFlip.t.sol#L32-L87):\n\tExternal calls:\n\t- [ethernaut.registerLevel(coinFlipFactory)](test/03-CoinFlip.t.sol#L39)\n\t- [vm.startPrank(eve)](test/03-CoinFlip.t.sol#L40)\n\t- [levelAddress = ethernaut.createLevelInstance(coinFlipFactory)](test/03-CoinFlip.t.sol#L42)\n\tState variables written after the call(s):\n\t- [coinFlipExploit = new CoinFlipExploit(levelAddress)](test/03-CoinFlip.t.sol#L44)\n", "first_markdown_element": "test/03-CoinFlip.t.sol#L32-L87", "id": "69bdc7d4b29e96a49088c34ccb07fdfea36f380293cb6ba0d274b6e31983e137", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}, {"type": "node", "name": "ethernaut.registerLevel(telephoneFactory)", "source_mapping": {"start": 1297, "length": 41, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [39], "starting_column": 9, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "vm.startPrank(eve)", "source_mapping": {"start": 1348, "length": 18, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [40], "starting_column": 9, "ending_column": 27}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "levelAddress = ethernaut.createLevelInstance(telephoneFactory)", "source_mapping": {"start": 1377, "length": 70, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [42], "starting_column": 9, "ending_column": 79}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "ethernaut.registerLevel(telephoneFactory)", "source_mapping": {"start": 1297, "length": 41, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [39], "starting_column": 9, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "vm.startPrank(eve)", "source_mapping": {"start": 1348, "length": 18, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [40], "starting_column": 9, "ending_column": 27}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "levelAddress = ethernaut.createLevelInstance(telephoneFactory)", "source_mapping": {"start": 1377, "length": 70, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [42], "starting_column": 9, "ending_column": 79}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "telephoneExploit = new TelephoneExploit(levelAddress)", "source_mapping": {"start": 1520, "length": 53, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [44], "starting_column": 9, "ending_column": 62}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}}, "additional_fields": {"underlying_type": "variables_written", "variable_name": "telephoneExploit"}}], "description": "Reentrancy in TelephoneTest.test_TelephoneExploit() (test/04-Telephone.t.sol#32-75):\n\tExternal calls:\n\t- ethernaut.registerLevel(telephoneFactory) (test/04-Telephone.t.sol#39)\n\t- vm.startPrank(eve) (test/04-Telephone.t.sol#40)\n\t- levelAddress = ethernaut.createLevelInstance(telephoneFactory) (test/04-Telephone.t.sol#42)\n\tState variables written after the call(s):\n\t- telephoneExploit = new TelephoneExploit(levelAddress) (test/04-Telephone.t.sol#44)\n", "markdown": "Reentrancy in [TelephoneTest.test_TelephoneExploit()](test/04-Telephone.t.sol#L32-L75):\n\tExternal calls:\n\t- [ethernaut.registerLevel(telephoneFactory)](test/04-Telephone.t.sol#L39)\n\t- [vm.startPrank(eve)](test/04-Telephone.t.sol#L40)\n\t- [levelAddress = ethernaut.createLevelInstance(telephoneFactory)](test/04-Telephone.t.sol#L42)\n\tState variables written after the call(s):\n\t- [telephoneExploit = new TelephoneExploit(levelAddress)](test/04-Telephone.t.sol#L44)\n", "first_markdown_element": "test/04-Telephone.t.sol#L32-L75", "id": "a183603b2425c9fd5008e497dd079310eccc6640138b741bb0f7d6e7489350e8", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "createLevelInstance", "source_mapping": {"start": 967, "length": 663, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Ethernaut", "source_mapping": {"start": 133, "length": 2320, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "createLevelInstance(Level)"}}, {"type": "node", "name": "instance = _level.createInstance{value: msg.value}(msg.sender)", "source_mapping": {"start": 1197, "length": 70, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [40], "starting_column": 9, "ending_column": 79}, "type_specific_fields": {"parent": {"type": "function", "name": "createLevelInstance", "source_mapping": {"start": 967, "length": 663, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Ethernaut", "source_mapping": {"start": 133, "length": 2320, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "createLevelInstance(Level)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "LevelInstanceCreatedLog(msg.sender,instance)", "source_mapping": {"start": 1481, "length": 50, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [46], "starting_column": 9, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "createLevelInstance", "source_mapping": {"start": 967, "length": 663, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Ethernaut", "source_mapping": {"start": 133, "length": 2320, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "createLevelInstance(Level)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in Ethernaut.createLevelInstance(Level) (src/core/Ethernaut.sol#35-49):\n\tExternal calls:\n\t- instance = _level.createInstance{value: msg.value}(msg.sender) (src/core/Ethernaut.sol#40)\n\tEvent emitted after the call(s):\n\t- LevelInstanceCreatedLog(msg.sender,instance) (src/core/Ethernaut.sol#46)\n", "markdown": "Reentrancy in [Ethernaut.createLevelInstance(Level)](src/core/Ethernaut.sol#L35-L49):\n\tExternal calls:\n\t- [instance = _level.createInstance{value: msg.value}(msg.sender)](src/core/Ethernaut.sol#L40)\n\tEvent emitted after the call(s):\n\t- [LevelInstanceCreatedLog(msg.sender,instance)](src/core/Ethernaut.sol#L46)\n", "first_markdown_element": "src/core/Ethernaut.sol#L35-L49", "id": "375e58ed5777cbe409418c01d66c1201c0e2f01736bd2af3aa1d3e4c888fa9b7", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "submitLevelInstance", "source_mapping": {"start": 1636, "length": 815, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Ethernaut", "source_mapping": {"start": 133, "length": 2320, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "submitLevelInstance(address)"}}, {"type": "node", "name": "data.level.validateInstance(_instance,msg.sender)", "source_mapping": {"start": 2031, "length": 50, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [58], "starting_column": 13, "ending_column": 63}, "type_specific_fields": {"parent": {"type": "function", "name": "submitLevelInstance", "source_mapping": {"start": 1636, "length": 815, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Ethernaut", "source_mapping": {"start": 133, "length": 2320, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "submitLevelInstance(address)"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "LevelCompletedLog(msg.sender,data.level)", "source_mapping": {"start": 2220, "length": 46, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [63], "starting_column": 13, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "submitLevelInstance", "source_mapping": {"start": 1636, "length": 815, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Ethernaut", "source_mapping": {"start": 133, "length": 2320, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "submitLevelInstance(address)"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in Ethernaut.submitLevelInstance(address) (src/core/Ethernaut.sol#51-69):\n\tExternal calls:\n\t- data.level.validateInstance(_instance,msg.sender) (src/core/Ethernaut.sol#58)\n\tEvent emitted after the call(s):\n\t- LevelCompletedLog(msg.sender,data.level) (src/core/Ethernaut.sol#63)\n", "markdown": "Reentrancy in [Ethernaut.submitLevelInstance(address)](src/core/Ethernaut.sol#L51-L69):\n\tExternal calls:\n\t- [data.level.validateInstance(_instance,msg.sender)](src/core/Ethernaut.sol#L58)\n\tEvent emitted after the call(s):\n\t- [LevelCompletedLog(msg.sender,data.level)](src/core/Ethernaut.sol#L63)\n", "first_markdown_element": "src/core/Ethernaut.sol#L51-L69", "id": "528a7c86be14bc540853c0d53af95216847596218210ed43e49c0a8293c95035", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}, {"type": "node", "name": "ethernaut.registerLevel(fallbackFactory)", "source_mapping": {"start": 1289, "length": 40, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [39], "starting_column": 9, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "vm.startPrank(eve)", "source_mapping": {"start": 1339, "length": 18, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [40], "starting_column": 9, "ending_column": 27}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "levelAddress = ethernaut.createLevelInstance(fallbackFactory)", "source_mapping": {"start": 1368, "length": 69, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [42], "starting_column": 9, "ending_column": 78}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "log_named_address(The original owner of the contract: ,fallbackContract.owner())", "source_mapping": {"start": 1517, "length": 122, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [45, 46, 47, 48], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_named_address(Address of the exploit contract: ,address(this))", "source_mapping": {"start": 1649, "length": 108, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [49, 50, 51, 52], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_named_address(Eve's address: ,address(eve))", "source_mapping": {"start": 1767, "length": 55, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [53], "starting_column": 9, "ending_column": 64}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_named_uint(Balance of Eve (before): ,eve.balance)", "source_mapping": {"start": 1832, "length": 61, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [54], "starting_column": 9, "ending_column": 70}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_named_uint(Contract balance (before): ,address(fallbackContract).balance)", "source_mapping": {"start": 1903, "length": 119, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [55, 56, 57, 58], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in FallbackTest.testFallbackExploit() (test/01-Fallback.t.sol#32-99):\n\tExternal calls:\n\t- ethernaut.registerLevel(fallbackFactory) (test/01-Fallback.t.sol#39)\n\t- vm.startPrank(eve) (test/01-Fallback.t.sol#40)\n\t- levelAddress = ethernaut.createLevelInstance(fallbackFactory) (test/01-Fallback.t.sol#42)\n\tEvent emitted after the call(s):\n\t- log_named_address(The original owner of the contract: ,fallbackContract.owner()) (test/01-Fallback.t.sol#45-48)\n\t- log_named_address(Address of the exploit contract: ,address(this)) (test/01-Fallback.t.sol#49-52)\n\t- log_named_address(Eve's address: ,address(eve)) (test/01-Fallback.t.sol#53)\n\t- log_named_uint(Balance of Eve (before): ,eve.balance) (test/01-Fallback.t.sol#54)\n\t- log_named_uint(Contract balance (before): ,address(fallbackContract).balance) (test/01-Fallback.t.sol#55-58)\n", "markdown": "Reentrancy in [FallbackTest.testFallbackExploit()](test/01-Fallback.t.sol#L32-L99):\n\tExternal calls:\n\t- [ethernaut.registerLevel(fallbackFactory)](test/01-Fallback.t.sol#L39)\n\t- [vm.startPrank(eve)](test/01-Fallback.t.sol#L40)\n\t- [levelAddress = ethernaut.createLevelInstance(fallbackFactory)](test/01-Fallback.t.sol#L42)\n\tEvent emitted after the call(s):\n\t- [log_named_address(The original owner of the contract: ,fallbackContract.owner())](test/01-Fallback.t.sol#L45-L48)\n\t- [log_named_address(Address of the exploit contract: ,address(this))](test/01-Fallback.t.sol#L49-L52)\n\t- [log_named_address(Eve's address: ,address(eve))](test/01-Fallback.t.sol#L53)\n\t- [log_named_uint(Balance of Eve (before): ,eve.balance)](test/01-Fallback.t.sol#L54)\n\t- [log_named_uint(Contract balance (before): ,address(fallbackContract).balance)](test/01-Fallback.t.sol#L55-L58)\n", "first_markdown_element": "test/01-Fallback.t.sol#L32-L99", "id": "9d429ad5a2c2d22aaca4fa4382d6a31112bad43cc9c63a161407b0a5b6dbdf28", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}, {"type": "node", "name": "ethernaut.registerLevel(fallbackFactory)", "source_mapping": {"start": 1289, "length": 40, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [39], "starting_column": 9, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "vm.startPrank(eve)", "source_mapping": {"start": 1339, "length": 18, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [40], "starting_column": 9, "ending_column": 27}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "levelAddress = ethernaut.createLevelInstance(fallbackFactory)", "source_mapping": {"start": 1368, "length": 69, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [42], "starting_column": 9, "ending_column": 78}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "fallbackContract.contribute.value(1)()", "source_mapping": {"start": 2226, "length": 42, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [64], "starting_column": 9, "ending_column": 51}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "fallbackContract.contribute.value(1)()", "source_mapping": {"start": 2226, "length": 42, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [64], "starting_column": 9, "ending_column": 51}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "log_named_uint(Eve's contribution: ,fallbackContract.getContribution())", "source_mapping": {"start": 2278, "length": 113, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [65, 66, 67, 68], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in FallbackTest.testFallbackExploit() (test/01-Fallback.t.sol#32-99):\n\tExternal calls:\n\t- ethernaut.registerLevel(fallbackFactory) (test/01-Fallback.t.sol#39)\n\t- vm.startPrank(eve) (test/01-Fallback.t.sol#40)\n\t- levelAddress = ethernaut.createLevelInstance(fallbackFactory) (test/01-Fallback.t.sol#42)\n\t- fallbackContract.contribute.value(1)() (test/01-Fallback.t.sol#64)\n\tExternal calls sending eth:\n\t- fallbackContract.contribute.value(1)() (test/01-Fallback.t.sol#64)\n\tEvent emitted after the call(s):\n\t- log_named_uint(Eve's contribution: ,fallbackContract.getContribution()) (test/01-Fallback.t.sol#65-68)\n", "markdown": "Reentrancy in [FallbackTest.testFallbackExploit()](test/01-Fallback.t.sol#L32-L99):\n\tExternal calls:\n\t- [ethernaut.registerLevel(fallbackFactory)](test/01-Fallback.t.sol#L39)\n\t- [vm.startPrank(eve)](test/01-Fallback.t.sol#L40)\n\t- [levelAddress = ethernaut.createLevelInstance(fallbackFactory)](test/01-Fallback.t.sol#L42)\n\t- [fallbackContract.contribute.value(1)()](test/01-Fallback.t.sol#L64)\n\tExternal calls sending eth:\n\t- [fallbackContract.contribute.value(1)()](test/01-Fallback.t.sol#L64)\n\tEvent emitted after the call(s):\n\t- [log_named_uint(Eve's contribution: ,fallbackContract.getContribution())](test/01-Fallback.t.sol#L65-L68)\n", "first_markdown_element": "test/01-Fallback.t.sol#L32-L99", "id": "bd029d2c06afe6573e6bd78dd1c1cf43236d2ebc4bb912eeda2337c51d997096", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}, {"type": "node", "name": "ethernaut.registerLevel(fallbackFactory)", "source_mapping": {"start": 1289, "length": 40, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [39], "starting_column": 9, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "vm.startPrank(eve)", "source_mapping": {"start": 1339, "length": 18, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [40], "starting_column": 9, "ending_column": 27}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "levelAddress = ethernaut.createLevelInstance(fallbackFactory)", "source_mapping": {"start": 1368, "length": 69, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [42], "starting_column": 9, "ending_column": 78}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "fallbackContract.contribute.value(1)()", "source_mapping": {"start": 2226, "length": 42, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [64], "starting_column": 9, "ending_column": 51}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "(success) = address(fallbackContract).call.value(1)()", "source_mapping": {"start": 2402, "length": 66, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [70], "starting_column": 9, "ending_column": 75}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "fallbackContract.contribute.value(1)()", "source_mapping": {"start": 2226, "length": 42, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [64], "starting_column": 9, "ending_column": 51}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "(success) = address(fallbackContract).call.value(1)()", "source_mapping": {"start": 2402, "length": 66, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [70], "starting_column": 9, "ending_column": 75}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "log_named_uint(Balance of the contract before withdrawal: ,address(fallbackContract).balance)", "source_mapping": {"start": 2505, "length": 135, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [73, 74, 75, 76], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in FallbackTest.testFallbackExploit() (test/01-Fallback.t.sol#32-99):\n\tExternal calls:\n\t- ethernaut.registerLevel(fallbackFactory) (test/01-Fallback.t.sol#39)\n\t- vm.startPrank(eve) (test/01-Fallback.t.sol#40)\n\t- levelAddress = ethernaut.createLevelInstance(fallbackFactory) (test/01-Fallback.t.sol#42)\n\t- fallbackContract.contribute.value(1)() (test/01-Fallback.t.sol#64)\n\t- (success) = address(fallbackContract).call.value(1)() (test/01-Fallback.t.sol#70)\n\tExternal calls sending eth:\n\t- fallbackContract.contribute.value(1)() (test/01-Fallback.t.sol#64)\n\t- (success) = address(fallbackContract).call.value(1)() (test/01-Fallback.t.sol#70)\n\tEvent emitted after the call(s):\n\t- log_named_uint(Balance of the contract before withdrawal: ,address(fallbackContract).balance) (test/01-Fallback.t.sol#73-76)\n", "markdown": "Reentrancy in [FallbackTest.testFallbackExploit()](test/01-Fallback.t.sol#L32-L99):\n\tExternal calls:\n\t- [ethernaut.registerLevel(fallbackFactory)](test/01-Fallback.t.sol#L39)\n\t- [vm.startPrank(eve)](test/01-Fallback.t.sol#L40)\n\t- [levelAddress = ethernaut.createLevelInstance(fallbackFactory)](test/01-Fallback.t.sol#L42)\n\t- [fallbackContract.contribute.value(1)()](test/01-Fallback.t.sol#L64)\n\t- [(success) = address(fallbackContract).call.value(1)()](test/01-Fallback.t.sol#L70)\n\tExternal calls sending eth:\n\t- [fallbackContract.contribute.value(1)()](test/01-Fallback.t.sol#L64)\n\t- [(success) = address(fallbackContract).call.value(1)()](test/01-Fallback.t.sol#L70)\n\tEvent emitted after the call(s):\n\t- [log_named_uint(Balance of the contract before withdrawal: ,address(fallbackContract).balance)](test/01-Fallback.t.sol#L73-L76)\n", "first_markdown_element": "test/01-Fallback.t.sol#L32-L99", "id": "d8a12ed13860113cac0c0741e073b6604aca912231bc24ba1074dd7fe70ea59b", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}, {"type": "node", "name": "ethernaut.registerLevel(fallbackFactory)", "source_mapping": {"start": 1289, "length": 40, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [39], "starting_column": 9, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "vm.startPrank(eve)", "source_mapping": {"start": 1339, "length": 18, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [40], "starting_column": 9, "ending_column": 27}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "levelAddress = ethernaut.createLevelInstance(fallbackFactory)", "source_mapping": {"start": 1368, "length": 69, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [42], "starting_column": 9, "ending_column": 78}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "fallbackContract.contribute.value(1)()", "source_mapping": {"start": 2226, "length": 42, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [64], "starting_column": 9, "ending_column": 51}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "(success) = address(fallbackContract).call.value(1)()", "source_mapping": {"start": 2402, "length": 66, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [70], "starting_column": 9, "ending_column": 75}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "fallbackContract.withdraw()", "source_mapping": {"start": 2651, "length": 27, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [78], "starting_column": 9, "ending_column": 36}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "fallbackContract.contribute.value(1)()", "source_mapping": {"start": 2226, "length": 42, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [64], "starting_column": 9, "ending_column": 51}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "(success) = address(fallbackContract).call.value(1)()", "source_mapping": {"start": 2402, "length": 66, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [70], "starting_column": 9, "ending_column": 75}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "external_calls_sending_eth"}}, {"type": "node", "name": "log_named_address(New owner of the contract: ,fallbackContract.owner())", "source_mapping": {"start": 2823, "length": 113, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [84, 85, 86, 87], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_named_uint(Ending balance of the contract: ,address(fallbackContract).balance)", "source_mapping": {"start": 2689, "length": 124, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [80, 81, 82, 83], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_named_uint(Balance of Eve (after): ,eve.balance)", "source_mapping": {"start": 2946, "length": 60, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [88], "starting_column": 9, "ending_column": 69}, "type_specific_fields": {"parent": {"type": "function", "name": "testFallbackExploit", "source_mapping": {"start": 979, "length": 2401, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}, "signature": "testFallbackExploit()"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in FallbackTest.testFallbackExploit() (test/01-Fallback.t.sol#32-99):\n\tExternal calls:\n\t- ethernaut.registerLevel(fallbackFactory) (test/01-Fallback.t.sol#39)\n\t- vm.startPrank(eve) (test/01-Fallback.t.sol#40)\n\t- levelAddress = ethernaut.createLevelInstance(fallbackFactory) (test/01-Fallback.t.sol#42)\n\t- fallbackContract.contribute.value(1)() (test/01-Fallback.t.sol#64)\n\t- (success) = address(fallbackContract).call.value(1)() (test/01-Fallback.t.sol#70)\n\t- fallbackContract.withdraw() (test/01-Fallback.t.sol#78)\n\tExternal calls sending eth:\n\t- fallbackContract.contribute.value(1)() (test/01-Fallback.t.sol#64)\n\t- (success) = address(fallbackContract).call.value(1)() (test/01-Fallback.t.sol#70)\n\tEvent emitted after the call(s):\n\t- log_named_address(New owner of the contract: ,fallbackContract.owner()) (test/01-Fallback.t.sol#84-87)\n\t- log_named_uint(Ending balance of the contract: ,address(fallbackContract).balance) (test/01-Fallback.t.sol#80-83)\n\t- log_named_uint(Balance of Eve (after): ,eve.balance) (test/01-Fallback.t.sol#88)\n", "markdown": "Reentrancy in [FallbackTest.testFallbackExploit()](test/01-Fallback.t.sol#L32-L99):\n\tExternal calls:\n\t- [ethernaut.registerLevel(fallbackFactory)](test/01-Fallback.t.sol#L39)\n\t- [vm.startPrank(eve)](test/01-Fallback.t.sol#L40)\n\t- [levelAddress = ethernaut.createLevelInstance(fallbackFactory)](test/01-Fallback.t.sol#L42)\n\t- [fallbackContract.contribute.value(1)()](test/01-Fallback.t.sol#L64)\n\t- [(success) = address(fallbackContract).call.value(1)()](test/01-Fallback.t.sol#L70)\n\t- [fallbackContract.withdraw()](test/01-Fallback.t.sol#L78)\n\tExternal calls sending eth:\n\t- [fallbackContract.contribute.value(1)()](test/01-Fallback.t.sol#L64)\n\t- [(success) = address(fallbackContract).call.value(1)()](test/01-Fallback.t.sol#L70)\n\tEvent emitted after the call(s):\n\t- [log_named_address(New owner of the contract: ,fallbackContract.owner())](test/01-Fallback.t.sol#L84-L87)\n\t- [log_named_uint(Ending balance of the contract: ,address(fallbackContract).balance)](test/01-Fallback.t.sol#L80-L83)\n\t- [log_named_uint(Balance of Eve (after): ,eve.balance)](test/01-Fallback.t.sol#L88)\n", "first_markdown_element": "test/01-Fallback.t.sol#L32-L99", "id": "a6ed50dffc4d2dfdfa8232d343eea79c6443958bba0d3a3a972c0ec03bdd4c66", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}, {"type": "node", "name": "ethernaut.registerLevel(falloutFactory)", "source_mapping": {"start": 1281, "length": 39, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [39], "starting_column": 9, "ending_column": 48}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "vm.startPrank(eve)", "source_mapping": {"start": 1330, "length": 18, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [40], "starting_column": 9, "ending_column": 27}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "levelAddress = ethernaut.createLevelInstance(falloutFactory)", "source_mapping": {"start": 1359, "length": 68, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [42], "starting_column": 9, "ending_column": 77}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "vm.deal(address(falloutContract),1000000000000000000)", "source_mapping": {"start": 1503, "length": 42, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [44], "starting_column": 9, "ending_column": 51}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "log_named_address(The original owner of the contract: ,falloutContract.owner())", "source_mapping": {"start": 1556, "length": 121, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [46, 47, 48, 49], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_named_address(Address of the exploit contract: ,address(this))", "source_mapping": {"start": 1687, "length": 108, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [50, 51, 52, 53], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_named_address(Eve's address: ,address(eve))", "source_mapping": {"start": 1805, "length": 55, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [54], "starting_column": 9, "ending_column": 64}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_named_uint(Balance of Eve (before): ,eve.balance)", "source_mapping": {"start": 1870, "length": 61, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [55], "starting_column": 9, "ending_column": 70}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_named_uint(Contract balance (before): ,address(falloutContract).balance)", "source_mapping": {"start": 1941, "length": 118, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [56, 57, 58, 59], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_string(Calling Fal1out() function... \ud83e\udde8 )", "source_mapping": {"start": 2300, "length": 54, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [66], "starting_column": 9, "ending_column": 63}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in FalloutTest.testFalloutExploit() (test/02-Fallout.t.sol#32-93):\n\tExternal calls:\n\t- ethernaut.registerLevel(falloutFactory) (test/02-Fallout.t.sol#39)\n\t- vm.startPrank(eve) (test/02-Fallout.t.sol#40)\n\t- levelAddress = ethernaut.createLevelInstance(falloutFactory) (test/02-Fallout.t.sol#42)\n\t- vm.deal(address(falloutContract),1000000000000000000) (test/02-Fallout.t.sol#44)\n\tEvent emitted after the call(s):\n\t- log_named_address(The original owner of the contract: ,falloutContract.owner()) (test/02-Fallout.t.sol#46-49)\n\t- log_named_address(Address of the exploit contract: ,address(this)) (test/02-Fallout.t.sol#50-53)\n\t- log_named_address(Eve's address: ,address(eve)) (test/02-Fallout.t.sol#54)\n\t- log_named_uint(Balance of Eve (before): ,eve.balance) (test/02-Fallout.t.sol#55)\n\t- log_named_uint(Contract balance (before): ,address(falloutContract).balance) (test/02-Fallout.t.sol#56-59)\n\t- log_string(Calling Fal1out() function... \ud83e\udde8 ) (test/02-Fallout.t.sol#66)\n", "markdown": "Reentrancy in [FalloutTest.testFalloutExploit()](test/02-Fallout.t.sol#L32-L93):\n\tExternal calls:\n\t- [ethernaut.registerLevel(falloutFactory)](test/02-Fallout.t.sol#L39)\n\t- [vm.startPrank(eve)](test/02-Fallout.t.sol#L40)\n\t- [levelAddress = ethernaut.createLevelInstance(falloutFactory)](test/02-Fallout.t.sol#L42)\n\t- [vm.deal(address(falloutContract),1000000000000000000)](test/02-Fallout.t.sol#L44)\n\tEvent emitted after the call(s):\n\t- [log_named_address(The original owner of the contract: ,falloutContract.owner())](test/02-Fallout.t.sol#L46-L49)\n\t- [log_named_address(Address of the exploit contract: ,address(this))](test/02-Fallout.t.sol#L50-L53)\n\t- [log_named_address(Eve's address: ,address(eve))](test/02-Fallout.t.sol#L54)\n\t- [log_named_uint(Balance of Eve (before): ,eve.balance)](test/02-Fallout.t.sol#L55)\n\t- [log_named_uint(Contract balance (before): ,address(falloutContract).balance)](test/02-Fallout.t.sol#L56-L59)\n\t- [log_string(Calling Fal1out() function... \ud83e\udde8 )](test/02-Fallout.t.sol#L66)\n", "first_markdown_element": "test/02-Fallout.t.sol#L32-L93", "id": "9facce76a342c8356b248ecdd7053709c47504d6e0ee4a0d5f60715734db930f", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}, {"type": "node", "name": "ethernaut.registerLevel(falloutFactory)", "source_mapping": {"start": 1281, "length": 39, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [39], "starting_column": 9, "ending_column": 48}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "vm.startPrank(eve)", "source_mapping": {"start": 1330, "length": 18, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [40], "starting_column": 9, "ending_column": 27}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "levelAddress = ethernaut.createLevelInstance(falloutFactory)", "source_mapping": {"start": 1359, "length": 68, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [42], "starting_column": 9, "ending_column": 77}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "vm.deal(address(falloutContract),1000000000000000000)", "source_mapping": {"start": 1503, "length": 42, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [44], "starting_column": 9, "ending_column": 51}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "falloutContract.Fal1out()", "source_mapping": {"start": 2364, "length": 25, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [67], "starting_column": 9, "ending_column": 34}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "log_named_address(New owner of the contract: ,falloutContract.owner())", "source_mapping": {"start": 2400, "length": 112, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [69, 70, 71, 72], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_string(Calling collectAllocations() function ... \ud83d\udc78)", "source_mapping": {"start": 2556, "length": 65, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [75], "starting_column": 9, "ending_column": 74}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in FalloutTest.testFalloutExploit() (test/02-Fallout.t.sol#32-93):\n\tExternal calls:\n\t- ethernaut.registerLevel(falloutFactory) (test/02-Fallout.t.sol#39)\n\t- vm.startPrank(eve) (test/02-Fallout.t.sol#40)\n\t- levelAddress = ethernaut.createLevelInstance(falloutFactory) (test/02-Fallout.t.sol#42)\n\t- vm.deal(address(falloutContract),1000000000000000000) (test/02-Fallout.t.sol#44)\n\t- falloutContract.Fal1out() (test/02-Fallout.t.sol#67)\n\tEvent emitted after the call(s):\n\t- log_named_address(New owner of the contract: ,falloutContract.owner()) (test/02-Fallout.t.sol#69-72)\n\t- log_string(Calling collectAllocations() function ... \ud83d\udc78) (test/02-Fallout.t.sol#75)\n", "markdown": "Reentrancy in [FalloutTest.testFalloutExploit()](test/02-Fallout.t.sol#L32-L93):\n\tExternal calls:\n\t- [ethernaut.registerLevel(falloutFactory)](test/02-Fallout.t.sol#L39)\n\t- [vm.startPrank(eve)](test/02-Fallout.t.sol#L40)\n\t- [levelAddress = ethernaut.createLevelInstance(falloutFactory)](test/02-Fallout.t.sol#L42)\n\t- [vm.deal(address(falloutContract),1000000000000000000)](test/02-Fallout.t.sol#L44)\n\t- [falloutContract.Fal1out()](test/02-Fallout.t.sol#L67)\n\tEvent emitted after the call(s):\n\t- [log_named_address(New owner of the contract: ,falloutContract.owner())](test/02-Fallout.t.sol#L69-L72)\n\t- [log_string(Calling collectAllocations() function ... \ud83d\udc78)](test/02-Fallout.t.sol#L75)\n", "first_markdown_element": "test/02-Fallout.t.sol#L32-L93", "id": "12493f198dd6fc606f8e3b5cd412d6ad79ad59ad89a3a2e1d46a5eb01c142e27", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}, {"type": "node", "name": "ethernaut.registerLevel(falloutFactory)", "source_mapping": {"start": 1281, "length": 39, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [39], "starting_column": 9, "ending_column": 48}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "vm.startPrank(eve)", "source_mapping": {"start": 1330, "length": 18, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [40], "starting_column": 9, "ending_column": 27}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "levelAddress = ethernaut.createLevelInstance(falloutFactory)", "source_mapping": {"start": 1359, "length": 68, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [42], "starting_column": 9, "ending_column": 77}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "vm.deal(address(falloutContract),1000000000000000000)", "source_mapping": {"start": 1503, "length": 42, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [44], "starting_column": 9, "ending_column": 51}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "falloutContract.Fal1out()", "source_mapping": {"start": 2364, "length": 25, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [67], "starting_column": 9, "ending_column": 34}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "falloutContract.collectAllocations()", "source_mapping": {"start": 2631, "length": 36, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [76], "starting_column": 9, "ending_column": 45}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "log_named_uint(Balance of the contract (after): ,address(falloutContract).balance)", "source_mapping": {"start": 2677, "length": 124, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [77, 78, 79, 80], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_named_uint(Balance of Eve (after): ,eve.balance)", "source_mapping": {"start": 2812, "length": 60, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [82], "starting_column": 9, "ending_column": 69}, "type_specific_fields": {"parent": {"type": "function", "name": "testFalloutExploit", "source_mapping": {"start": 975, "length": 2271, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}, "signature": "testFalloutExploit()"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in FalloutTest.testFalloutExploit() (test/02-Fallout.t.sol#32-93):\n\tExternal calls:\n\t- ethernaut.registerLevel(falloutFactory) (test/02-Fallout.t.sol#39)\n\t- vm.startPrank(eve) (test/02-Fallout.t.sol#40)\n\t- levelAddress = ethernaut.createLevelInstance(falloutFactory) (test/02-Fallout.t.sol#42)\n\t- vm.deal(address(falloutContract),1000000000000000000) (test/02-Fallout.t.sol#44)\n\t- falloutContract.Fal1out() (test/02-Fallout.t.sol#67)\n\t- falloutContract.collectAllocations() (test/02-Fallout.t.sol#76)\n\tEvent emitted after the call(s):\n\t- log_named_uint(Balance of the contract (after): ,address(falloutContract).balance) (test/02-Fallout.t.sol#77-80)\n\t- log_named_uint(Balance of Eve (after): ,eve.balance) (test/02-Fallout.t.sol#82)\n", "markdown": "Reentrancy in [FalloutTest.testFalloutExploit()](test/02-Fallout.t.sol#L32-L93):\n\tExternal calls:\n\t- [ethernaut.registerLevel(falloutFactory)](test/02-Fallout.t.sol#L39)\n\t- [vm.startPrank(eve)](test/02-Fallout.t.sol#L40)\n\t- [levelAddress = ethernaut.createLevelInstance(falloutFactory)](test/02-Fallout.t.sol#L42)\n\t- [vm.deal(address(falloutContract),1000000000000000000)](test/02-Fallout.t.sol#L44)\n\t- [falloutContract.Fal1out()](test/02-Fallout.t.sol#L67)\n\t- [falloutContract.collectAllocations()](test/02-Fallout.t.sol#L76)\n\tEvent emitted after the call(s):\n\t- [log_named_uint(Balance of the contract (after): ,address(falloutContract).balance)](test/02-Fallout.t.sol#L77-L80)\n\t- [log_named_uint(Balance of Eve (after): ,eve.balance)](test/02-Fallout.t.sol#L82)\n", "first_markdown_element": "test/02-Fallout.t.sol#L32-L93", "id": "90a16a35e32f18ef8d1092dec95891040800ca84f5780a76f31de47688bb95ab", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}, {"type": "node", "name": "ethernaut.registerLevel(coinFlipFactory)", "source_mapping": {"start": 1285, "length": 40, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [39], "starting_column": 9, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "vm.startPrank(eve)", "source_mapping": {"start": 1335, "length": 18, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [40], "starting_column": 9, "ending_column": 27}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "levelAddress = ethernaut.createLevelInstance(coinFlipFactory)", "source_mapping": {"start": 1364, "length": 69, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [42], "starting_column": 9, "ending_column": 78}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "log_named_address(Address of the exploit contract: ,address(this))", "source_mapping": {"start": 1574, "length": 108, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [46, 47, 48, 49], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_named_address(Eve's address: ,address(eve))", "source_mapping": {"start": 1692, "length": 55, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [50], "starting_column": 9, "ending_column": 64}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_named_uint(Eve's score before the attack: ,consecutiveWins)", "source_mapping": {"start": 2020, "length": 71, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [56], "starting_column": 9, "ending_column": 80}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_string(Eve runs the exploit for 10 consecutive blocks... \ud83e\udde8)", "source_mapping": {"start": 2101, "length": 73, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [57], "starting_column": 9, "ending_column": 82}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in CoinFlipTest.test_CoinFlipExploit() (test/03-CoinFlip.t.sol#32-87):\n\tExternal calls:\n\t- ethernaut.registerLevel(coinFlipFactory) (test/03-CoinFlip.t.sol#39)\n\t- vm.startPrank(eve) (test/03-CoinFlip.t.sol#40)\n\t- levelAddress = ethernaut.createLevelInstance(coinFlipFactory) (test/03-CoinFlip.t.sol#42)\n\tEvent emitted after the call(s):\n\t- log_named_address(Address of the exploit contract: ,address(this)) (test/03-CoinFlip.t.sol#46-49)\n\t- log_named_address(Eve's address: ,address(eve)) (test/03-CoinFlip.t.sol#50)\n\t- log_named_uint(Eve's score before the attack: ,consecutiveWins) (test/03-CoinFlip.t.sol#56)\n\t- log_string(Eve runs the exploit for 10 consecutive blocks... \ud83e\udde8) (test/03-CoinFlip.t.sol#57)\n", "markdown": "Reentrancy in [CoinFlipTest.test_CoinFlipExploit()](test/03-CoinFlip.t.sol#L32-L87):\n\tExternal calls:\n\t- [ethernaut.registerLevel(coinFlipFactory)](test/03-CoinFlip.t.sol#L39)\n\t- [vm.startPrank(eve)](test/03-CoinFlip.t.sol#L40)\n\t- [levelAddress = ethernaut.createLevelInstance(coinFlipFactory)](test/03-CoinFlip.t.sol#L42)\n\tEvent emitted after the call(s):\n\t- [log_named_address(Address of the exploit contract: ,address(this))](test/03-CoinFlip.t.sol#L46-L49)\n\t- [log_named_address(Eve's address: ,address(eve))](test/03-CoinFlip.t.sol#L50)\n\t- [log_named_uint(Eve's score before the attack: ,consecutiveWins)](test/03-CoinFlip.t.sol#L56)\n\t- [log_string(Eve runs the exploit for 10 consecutive blocks... \ud83e\udde8)](test/03-CoinFlip.t.sol#L57)\n", "first_markdown_element": "test/03-CoinFlip.t.sol#L32-L87", "id": "56a434c34ee465755d9d6fec2de3ab62587afb17dda28b12eba09f622e623961", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}, {"type": "node", "name": "ethernaut.registerLevel(coinFlipFactory)", "source_mapping": {"start": 1285, "length": 40, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [39], "starting_column": 9, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "vm.startPrank(eve)", "source_mapping": {"start": 1335, "length": 18, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [40], "starting_column": 9, "ending_column": 27}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "levelAddress = ethernaut.createLevelInstance(coinFlipFactory)", "source_mapping": {"start": 1364, "length": 69, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [42], "starting_column": 9, "ending_column": 78}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "vm.roll(blockNumber)", "source_mapping": {"start": 2667, "length": 20, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [70], "starting_column": 13, "ending_column": 33}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "coinFlipExploit.coinFlipAttack()", "source_mapping": {"start": 2701, "length": 32, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [71], "starting_column": 13, "ending_column": 45}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "log_named_uint(Consecutive wins: ,coinFlipContract.consecutiveWins())", "source_mapping": {"start": 2747, "length": 123, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [72, 73, 74, 75], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in CoinFlipTest.test_CoinFlipExploit() (test/03-CoinFlip.t.sol#32-87):\n\tExternal calls:\n\t- ethernaut.registerLevel(coinFlipFactory) (test/03-CoinFlip.t.sol#39)\n\t- vm.startPrank(eve) (test/03-CoinFlip.t.sol#40)\n\t- levelAddress = ethernaut.createLevelInstance(coinFlipFactory) (test/03-CoinFlip.t.sol#42)\n\t- vm.roll(blockNumber) (test/03-CoinFlip.t.sol#70)\n\t- coinFlipExploit.coinFlipAttack() (test/03-CoinFlip.t.sol#71)\n\tEvent emitted after the call(s):\n\t- log_named_uint(Consecutive wins: ,coinFlipContract.consecutiveWins()) (test/03-CoinFlip.t.sol#72-75)\n", "markdown": "Reentrancy in [CoinFlipTest.test_CoinFlipExploit()](test/03-CoinFlip.t.sol#L32-L87):\n\tExternal calls:\n\t- [ethernaut.registerLevel(coinFlipFactory)](test/03-CoinFlip.t.sol#L39)\n\t- [vm.startPrank(eve)](test/03-CoinFlip.t.sol#L40)\n\t- [levelAddress = ethernaut.createLevelInstance(coinFlipFactory)](test/03-CoinFlip.t.sol#L42)\n\t- [vm.roll(blockNumber)](test/03-CoinFlip.t.sol#L70)\n\t- [coinFlipExploit.coinFlipAttack()](test/03-CoinFlip.t.sol#L71)\n\tEvent emitted after the call(s):\n\t- [log_named_uint(Consecutive wins: ,coinFlipContract.consecutiveWins())](test/03-CoinFlip.t.sol#L72-L75)\n", "first_markdown_element": "test/03-CoinFlip.t.sol#L32-L87", "id": "32761ea4e58a6f877062b5dc4dd6d9593d113f44997ff95a733e91da1155f018", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}, {"type": "node", "name": "ethernaut.registerLevel(telephoneFactory)", "source_mapping": {"start": 1297, "length": 41, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [39], "starting_column": 9, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "vm.startPrank(eve)", "source_mapping": {"start": 1348, "length": 18, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [40], "starting_column": 9, "ending_column": 27}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "levelAddress = ethernaut.createLevelInstance(telephoneFactory)", "source_mapping": {"start": 1377, "length": 70, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [42], "starting_column": 9, "ending_column": 79}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "log_named_address(Contract owner address: ,address(telephoneContract.owner()))", "source_mapping": {"start": 1584, "length": 120, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [46, 47, 48, 49], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_named_address(Eve's address: ,address(eve))", "source_mapping": {"start": 1714, "length": 55, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [50], "starting_column": 9, "ending_column": 64}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_string(Eve calls the attack function... \ud83e\udde8)", "source_mapping": {"start": 1972, "length": 56, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [55], "starting_column": 9, "ending_column": 65}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in TelephoneTest.test_TelephoneExploit() (test/04-Telephone.t.sol#32-75):\n\tExternal calls:\n\t- ethernaut.registerLevel(telephoneFactory) (test/04-Telephone.t.sol#39)\n\t- vm.startPrank(eve) (test/04-Telephone.t.sol#40)\n\t- levelAddress = ethernaut.createLevelInstance(telephoneFactory) (test/04-Telephone.t.sol#42)\n\tEvent emitted after the call(s):\n\t- log_named_address(Contract owner address: ,address(telephoneContract.owner())) (test/04-Telephone.t.sol#46-49)\n\t- log_named_address(Eve's address: ,address(eve)) (test/04-Telephone.t.sol#50)\n\t- log_string(Eve calls the attack function... \ud83e\udde8) (test/04-Telephone.t.sol#55)\n", "markdown": "Reentrancy in [TelephoneTest.test_TelephoneExploit()](test/04-Telephone.t.sol#L32-L75):\n\tExternal calls:\n\t- [ethernaut.registerLevel(telephoneFactory)](test/04-Telephone.t.sol#L39)\n\t- [vm.startPrank(eve)](test/04-Telephone.t.sol#L40)\n\t- [levelAddress = ethernaut.createLevelInstance(telephoneFactory)](test/04-Telephone.t.sol#L42)\n\tEvent emitted after the call(s):\n\t- [log_named_address(Contract owner address: ,address(telephoneContract.owner()))](test/04-Telephone.t.sol#L46-L49)\n\t- [log_named_address(Eve's address: ,address(eve))](test/04-Telephone.t.sol#L50)\n\t- [log_string(Eve calls the attack function... \ud83e\udde8)](test/04-Telephone.t.sol#L55)\n", "first_markdown_element": "test/04-Telephone.t.sol#L32-L75", "id": "03b8b838a31bf71eea7a12deac4f04e2fc52f6fb26f9495b6d4d6f03d6c73266", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}, {"type": "node", "name": "ethernaut.registerLevel(telephoneFactory)", "source_mapping": {"start": 1297, "length": 41, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [39], "starting_column": 9, "ending_column": 50}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "vm.startPrank(eve)", "source_mapping": {"start": 1348, "length": 18, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [40], "starting_column": 9, "ending_column": 27}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "levelAddress = ethernaut.createLevelInstance(telephoneFactory)", "source_mapping": {"start": 1377, "length": 70, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [42], "starting_column": 9, "ending_column": 79}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "telephoneExploit.attack(eve)", "source_mapping": {"start": 2039, "length": 28, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [57], "starting_column": 9, "ending_column": 37}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "log_named_address(New contract owner: ,address(telephoneContract.owner()))", "source_mapping": {"start": 2128, "length": 116, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [61, 62, 63, 64], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_string(Ownership changed...)", "source_mapping": {"start": 2078, "length": 39, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [59], "starting_column": 9, "ending_column": 48}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in TelephoneTest.test_TelephoneExploit() (test/04-Telephone.t.sol#32-75):\n\tExternal calls:\n\t- ethernaut.registerLevel(telephoneFactory) (test/04-Telephone.t.sol#39)\n\t- vm.startPrank(eve) (test/04-Telephone.t.sol#40)\n\t- levelAddress = ethernaut.createLevelInstance(telephoneFactory) (test/04-Telephone.t.sol#42)\n\t- telephoneExploit.attack(eve) (test/04-Telephone.t.sol#57)\n\tEvent emitted after the call(s):\n\t- log_named_address(New contract owner: ,address(telephoneContract.owner())) (test/04-Telephone.t.sol#61-64)\n\t- log_string(Ownership changed...) (test/04-Telephone.t.sol#59)\n", "markdown": "Reentrancy in [TelephoneTest.test_TelephoneExploit()](test/04-Telephone.t.sol#L32-L75):\n\tExternal calls:\n\t- [ethernaut.registerLevel(telephoneFactory)](test/04-Telephone.t.sol#L39)\n\t- [vm.startPrank(eve)](test/04-Telephone.t.sol#L40)\n\t- [levelAddress = ethernaut.createLevelInstance(telephoneFactory)](test/04-Telephone.t.sol#L42)\n\t- [telephoneExploit.attack(eve)](test/04-Telephone.t.sol#L57)\n\tEvent emitted after the call(s):\n\t- [log_named_address(New contract owner: ,address(telephoneContract.owner()))](test/04-Telephone.t.sol#L61-L64)\n\t- [log_string(Ownership changed...)](test/04-Telephone.t.sol#L59)\n", "first_markdown_element": "test/04-Telephone.t.sol#L32-L75", "id": "4b21cb17cfadb5d4ba707df94162eeb03518f65241ff39989d11635c7cd19204", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "test_TokenExploit", "source_mapping": {"start": 1574, "length": 1767, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenTest", "source_mapping": {"start": 224, "length": 3879, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}, "signature": "test_TokenExploit()"}}, {"type": "node", "name": "ethernaut.registerLevel(tokenFactory)", "source_mapping": {"start": 1873, "length": 37, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [55], "starting_column": 9, "ending_column": 46}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TokenExploit", "source_mapping": {"start": 1574, "length": 1767, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenTest", "source_mapping": {"start": 224, "length": 3879, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}, "signature": "test_TokenExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "vm.startPrank(eve)", "source_mapping": {"start": 1920, "length": 18, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [56], "starting_column": 9, "ending_column": 27}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TokenExploit", "source_mapping": {"start": 1574, "length": 1767, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenTest", "source_mapping": {"start": 224, "length": 3879, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}, "signature": "test_TokenExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "levelAddress = ethernaut.createLevelInstance(tokenFactory)", "source_mapping": {"start": 1949, "length": 66, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [58], "starting_column": 9, "ending_column": 75}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TokenExploit", "source_mapping": {"start": 1574, "length": 1767, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenTest", "source_mapping": {"start": 224, "length": 3879, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}, "signature": "test_TokenExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "log_named_address(Eve's address: ,address(eve))", "source_mapping": {"start": 2077, "length": 55, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [61], "starting_column": 9, "ending_column": 64}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TokenExploit", "source_mapping": {"start": 1574, "length": 1767, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenTest", "source_mapping": {"start": 224, "length": 3879, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}, "signature": "test_TokenExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_named_address(Calling transfer with the address of: ,callAddress)", "source_mapping": {"start": 2595, "length": 111, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [74, 75, 76, 77], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TokenExploit", "source_mapping": {"start": 1574, "length": 1767, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenTest", "source_mapping": {"start": 224, "length": 3879, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}, "signature": "test_TokenExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_named_uint(Eve's balance of tokens (before): ,tokenContract.balances(eve))", "source_mapping": {"start": 2142, "length": 120, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [62, 63, 64, 65], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TokenExploit", "source_mapping": {"start": 1574, "length": 1767, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenTest", "source_mapping": {"start": 224, "length": 3879, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}, "signature": "test_TokenExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_named_uint(Calling transfer with the _value of: ,amount)", "source_mapping": {"start": 2716, "length": 68, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [78], "starting_column": 9, "ending_column": 77}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TokenExploit", "source_mapping": {"start": 1574, "length": 1767, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenTest", "source_mapping": {"start": 224, "length": 3879, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}, "signature": "test_TokenExploit()"}}}, "additional_fields": {"underlying_type": "event"}}, {"type": "node", "name": "log_string(Starting the exploit... \ud83e\udde8)", "source_mapping": {"start": 2466, "length": 47, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [71], "starting_column": 9, "ending_column": 56}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TokenExploit", "source_mapping": {"start": 1574, "length": 1767, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenTest", "source_mapping": {"start": 224, "length": 3879, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}, "signature": "test_TokenExploit()"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in TokenTest.test_TokenExploit() (test/05-Token.t.sol#48-95):\n\tExternal calls:\n\t- ethernaut.registerLevel(tokenFactory) (test/05-Token.t.sol#55)\n\t- vm.startPrank(eve) (test/05-Token.t.sol#56)\n\t- levelAddress = ethernaut.createLevelInstance(tokenFactory) (test/05-Token.t.sol#58)\n\tEvent emitted after the call(s):\n\t- log_named_address(Eve's address: ,address(eve)) (test/05-Token.t.sol#61)\n\t- log_named_address(Calling transfer with the address of: ,callAddress) (test/05-Token.t.sol#74-77)\n\t- log_named_uint(Eve's balance of tokens (before): ,tokenContract.balances(eve)) (test/05-Token.t.sol#62-65)\n\t- log_named_uint(Calling transfer with the _value of: ,amount) (test/05-Token.t.sol#78)\n\t- log_string(Starting the exploit... \ud83e\udde8) (test/05-Token.t.sol#71)\n", "markdown": "Reentrancy in [TokenTest.test_TokenExploit()](test/05-Token.t.sol#L48-L95):\n\tExternal calls:\n\t- [ethernaut.registerLevel(tokenFactory)](test/05-Token.t.sol#L55)\n\t- [vm.startPrank(eve)](test/05-Token.t.sol#L56)\n\t- [levelAddress = ethernaut.createLevelInstance(tokenFactory)](test/05-Token.t.sol#L58)\n\tEvent emitted after the call(s):\n\t- [log_named_address(Eve's address: ,address(eve))](test/05-Token.t.sol#L61)\n\t- [log_named_address(Calling transfer with the address of: ,callAddress)](test/05-Token.t.sol#L74-L77)\n\t- [log_named_uint(Eve's balance of tokens (before): ,tokenContract.balances(eve))](test/05-Token.t.sol#L62-L65)\n\t- [log_named_uint(Calling transfer with the _value of: ,amount)](test/05-Token.t.sol#L78)\n\t- [log_string(Starting the exploit... \ud83e\udde8)](test/05-Token.t.sol#L71)\n", "first_markdown_element": "test/05-Token.t.sol#L48-L95", "id": "3b29d27a969fed8ca60f897c264f68c99b99fa75caf3603d29a31c4f65ab42db", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "test_TokenExploit", "source_mapping": {"start": 1574, "length": 1767, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenTest", "source_mapping": {"start": 224, "length": 3879, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}, "signature": "test_TokenExploit()"}}, {"type": "node", "name": "ethernaut.registerLevel(tokenFactory)", "source_mapping": {"start": 1873, "length": 37, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [55], "starting_column": 9, "ending_column": 46}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TokenExploit", "source_mapping": {"start": 1574, "length": 1767, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenTest", "source_mapping": {"start": 224, "length": 3879, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}, "signature": "test_TokenExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "vm.startPrank(eve)", "source_mapping": {"start": 1920, "length": 18, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [56], "starting_column": 9, "ending_column": 27}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TokenExploit", "source_mapping": {"start": 1574, "length": 1767, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenTest", "source_mapping": {"start": 224, "length": 3879, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}, "signature": "test_TokenExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "levelAddress = ethernaut.createLevelInstance(tokenFactory)", "source_mapping": {"start": 1949, "length": 66, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [58], "starting_column": 9, "ending_column": 75}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TokenExploit", "source_mapping": {"start": 1574, "length": 1767, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenTest", "source_mapping": {"start": 224, "length": 3879, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}, "signature": "test_TokenExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "tokenContract.transfer(callAddress,amount)", "source_mapping": {"start": 2794, "length": 43, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [79], "starting_column": 9, "ending_column": 52}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TokenExploit", "source_mapping": {"start": 1574, "length": 1767, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenTest", "source_mapping": {"start": 224, "length": 3879, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}, "signature": "test_TokenExploit()"}}}, "additional_fields": {"underlying_type": "external_calls"}}, {"type": "node", "name": "log_named_uint(Eve's balance of tokens (after): ,tokenContract.balances(eve))", "source_mapping": {"start": 2848, "length": 119, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [81, 82, 83, 84], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "test_TokenExploit", "source_mapping": {"start": 1574, "length": 1767, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenTest", "source_mapping": {"start": 224, "length": 3879, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}, "signature": "test_TokenExploit()"}}}, "additional_fields": {"underlying_type": "event"}}], "description": "Reentrancy in TokenTest.test_TokenExploit() (test/05-Token.t.sol#48-95):\n\tExternal calls:\n\t- ethernaut.registerLevel(tokenFactory) (test/05-Token.t.sol#55)\n\t- vm.startPrank(eve) (test/05-Token.t.sol#56)\n\t- levelAddress = ethernaut.createLevelInstance(tokenFactory) (test/05-Token.t.sol#58)\n\t- tokenContract.transfer(callAddress,amount) (test/05-Token.t.sol#79)\n\tEvent emitted after the call(s):\n\t- log_named_uint(Eve's balance of tokens (after): ,tokenContract.balances(eve)) (test/05-Token.t.sol#81-84)\n", "markdown": "Reentrancy in [TokenTest.test_TokenExploit()](test/05-Token.t.sol#L48-L95):\n\tExternal calls:\n\t- [ethernaut.registerLevel(tokenFactory)](test/05-Token.t.sol#L55)\n\t- [vm.startPrank(eve)](test/05-Token.t.sol#L56)\n\t- [levelAddress = ethernaut.createLevelInstance(tokenFactory)](test/05-Token.t.sol#L58)\n\t- [tokenContract.transfer(callAddress,amount)](test/05-Token.t.sol#L79)\n\tEvent emitted after the call(s):\n\t- [log_named_uint(Eve's balance of tokens (after): ,tokenContract.balances(eve))](test/05-Token.t.sol#L81-L84)\n", "first_markdown_element": "test/05-Token.t.sol#L48-L95", "id": "7fc25c6846a67039711c5f032bea1ec52efdb892f09fbe4abd44e1b72a7f2754", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "submitLevelInstance", "source_mapping": {"start": 1636, "length": 815, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Ethernaut", "source_mapping": {"start": 133, "length": 2320, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "submitLevelInstance(address)"}}, {"type": "node", "name": "require(bool)(data.completed == false)", "source_mapping": {"start": 1913, "length": 32, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [55], "starting_column": 9, "ending_column": 41}, "type_specific_fields": {"parent": {"type": "function", "name": "submitLevelInstance", "source_mapping": {"start": 1636, "length": 815, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Ethernaut", "source_mapping": {"start": 133, "length": 2320, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "submitLevelInstance(address)"}}}}], "description": "Ethernaut.submitLevelInstance(address) (src/core/Ethernaut.sol#51-69) compares to a boolean constant:\n\t-require(bool)(data.completed == false) (src/core/Ethernaut.sol#55)\n", "markdown": "[Ethernaut.submitLevelInstance(address)](src/core/Ethernaut.sol#L51-L69) compares to a boolean constant:\n\t-[require(bool)(data.completed == false)](src/core/Ethernaut.sol#L55)\n", "first_markdown_element": "src/core/Ethernaut.sol#L51-L69", "id": "a9316df25fbc8e2e38b391019589fba3152d1c9bbf57e950ae99a4f995b2dc0a", "check": "boolean-equal", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "eve", "source_mapping": {"start": 602, "length": 39, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [21], "starting_column": 5, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}}}], "description": "CoinFlipTest.eve (test/03-CoinFlip.t.sol#21) is set pre-construction with a non-constant function or state variable:\n\t- makeNameForAddress(eve)\n", "markdown": "[CoinFlipTest.eve](test/03-CoinFlip.t.sol#L21) is set pre-construction with a non-constant function or state variable:\n\t- makeNameForAddress(eve)\n", "first_markdown_element": "test/03-CoinFlip.t.sol#L21", "id": "abca7ad8ea30ef347d04bae139298d523b85e5671234624ba98605d8079e2084", "check": "function-init-state", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "eve", "source_mapping": {"start": 509, "length": 39, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [19], "starting_column": 5, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutTest", "source_mapping": {"start": 228, "length": 3780, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114], "starting_column": 1, "ending_column": 2}}}}], "description": "FalloutTest.eve (test/02-Fallout.t.sol#19) is set pre-construction with a non-constant function or state variable:\n\t- makeNameForAddress(eve)\n", "markdown": "[FalloutTest.eve](test/02-Fallout.t.sol#L19) is set pre-construction with a non-constant function or state variable:\n\t- makeNameForAddress(eve)\n", "first_markdown_element": "test/02-Fallout.t.sol#L19", "id": "c5969a3d1cbefbfe326e7c2cd03bff7396ed0d1a55231182e81d6eb0ad9f3963", "check": "function-init-state", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "eve", "source_mapping": {"start": 503, "length": 39, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [19], "starting_column": 5, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenTest", "source_mapping": {"start": 224, "length": 3879, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}}}], "description": "TokenTest.eve (test/05-Token.t.sol#19) is set pre-construction with a non-constant function or state variable:\n\t- makeNameForAddress(eve)\n", "markdown": "[TokenTest.eve](test/05-Token.t.sol#L19) is set pre-construction with a non-constant function or state variable:\n\t- makeNameForAddress(eve)\n", "first_markdown_element": "test/05-Token.t.sol#L19", "id": "f71b1b9a1af24db0b0ba8c6719c03a32508a4ce6f96d3b5a458d7e588f7ef474", "check": "function-init-state", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "eve", "source_mapping": {"start": 512, "length": 39, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [19], "starting_column": 5, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackTest", "source_mapping": {"start": 230, "length": 3912, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120], "starting_column": 1, "ending_column": 2}}}}], "description": "FallbackTest.eve (test/01-Fallback.t.sol#19) is set pre-construction with a non-constant function or state variable:\n\t- makeNameForAddress(eve)\n", "markdown": "[FallbackTest.eve](test/01-Fallback.t.sol#L19) is set pre-construction with a non-constant function or state variable:\n\t- makeNameForAddress(eve)\n", "first_markdown_element": "test/01-Fallback.t.sol#L19", "id": "22eb7337ee68e1640a79de18f67b6a87f2c41c5db52e64c30cc7bcceb106ddc3", "check": "function-init-state", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "eve", "source_mapping": {"start": 609, "length": 39, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [21], "starting_column": 5, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}}}], "description": "TelephoneTest.eve (test/04-Telephone.t.sol#21) is set pre-construction with a non-constant function or state variable:\n\t- makeNameForAddress(eve)\n", "markdown": "[TelephoneTest.eve](test/04-Telephone.t.sol#L21) is set pre-construction with a non-constant function or state variable:\n\t- makeNameForAddress(eve)\n", "first_markdown_element": "test/04-Telephone.t.sol#L21", "id": "4ced3c2b3523c3a2b6cf7429d16d152484f190aef5615508742c956d4ecadcf6", "check": "function-init-state", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.6.0", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/levels/03-CoinFlip/CoinFlipExploit.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/03-CoinFlip/CoinFlipExploit.sol", "filename_short": "src/levels/03-CoinFlip/CoinFlipExploit.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.6", ".0"]}}], "description": "Pragma version^0.6.0 (src/levels/03-CoinFlip/CoinFlipExploit.sol#2) allows old versions\n", "markdown": "Pragma version[^0.6.0](src/levels/03-CoinFlip/CoinFlipExploit.sol#L2) allows old versions\n", "first_markdown_element": "src/levels/03-CoinFlip/CoinFlipExploit.sol#L2", "id": "b5ff7f74b391336516011de86d54480dc0a691a20fa64b0afa2bc1588cfa85a0", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.6.0", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/levels/02-Fallout/Fallout.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/02-Fallout/Fallout.sol", "filename_short": "src/levels/02-Fallout/Fallout.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.6", ".0"]}}], "description": "Pragma version^0.6.0 (src/levels/02-Fallout/Fallout.sol#2) allows old versions\n", "markdown": "Pragma version[^0.6.0](src/levels/02-Fallout/Fallout.sol#L2) allows old versions\n", "first_markdown_element": "src/levels/02-Fallout/Fallout.sol#L2", "id": "0e8c67c884a3943fb2391e31f41a999ecb9058d3ff462068d39407d5febfd275", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.6.0", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/levels/05-Token/Token.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/Token.sol", "filename_short": "src/levels/05-Token/Token.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.6", ".0"]}}], "description": "Pragma version^0.6.0 (src/levels/05-Token/Token.sol#2) allows old versions\n", "markdown": "Pragma version[^0.6.0](src/levels/05-Token/Token.sol#L2) allows old versions\n", "first_markdown_element": "src/levels/05-Token/Token.sol#L2", "id": "6ba647cfdec88a862fe55b54180d7600d5551b5ce0f683bccdcbfa650f48580d", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.6.0", "source_mapping": {"start": 33, "length": 23, "filename_relative": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_short": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.6", ".0"]}}], "description": "Pragma version^0.6.0 (src/levels/03-CoinFlip/CoinFlipFactory.sol#3) allows old versions\n", "markdown": "Pragma version[^0.6.0](src/levels/03-CoinFlip/CoinFlipFactory.sol#L3) allows old versions\n", "first_markdown_element": "src/levels/03-CoinFlip/CoinFlipFactory.sol#L3", "id": "dbed502e1081c6b614ade8bcd76fc4e1a70e476e9dafe81944f15b0aed2f57c5", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.6.0", "source_mapping": {"start": 32, "length": 23, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.6", ".0"]}}], "description": "Pragma version^0.6.0 (test/03-CoinFlip.t.sol#2) allows old versions\n", "markdown": "Pragma version[^0.6.0](test/03-CoinFlip.t.sol#L2) allows old versions\n", "first_markdown_element": "test/03-CoinFlip.t.sol#L2", "id": "7bce64f811df1a56de8ca919ef9c9b7d61fc1dfe964df21411afefd800dc3be6", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.6.0", "source_mapping": {"start": 33, "length": 23, "filename_relative": "src/levels/02-Fallout/FalloutFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/02-Fallout/FalloutFactory.sol", "filename_short": "src/levels/02-Fallout/FalloutFactory.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.6", ".0"]}}], "description": "Pragma version^0.6.0 (src/levels/02-Fallout/FalloutFactory.sol#3) allows old versions\n", "markdown": "Pragma version[^0.6.0](src/levels/02-Fallout/FalloutFactory.sol#L3) allows old versions\n", "first_markdown_element": "src/levels/02-Fallout/FalloutFactory.sol#L3", "id": "de0a44fd947e719a366b17ff1b799e10cea51d2bb74577e49e7bec96de7875ac", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.6.0", "source_mapping": {"start": 32, "length": 23, "filename_relative": "test/02-Fallout.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/02-Fallout.t.sol", "filename_short": "test/02-Fallout.t.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.6", ".0"]}}], "description": "Pragma version^0.6.0 (test/02-Fallout.t.sol#2) allows old versions\n", "markdown": "Pragma version[^0.6.0](test/02-Fallout.t.sol#L2) allows old versions\n", "first_markdown_element": "test/02-Fallout.t.sol#L2", "id": "4e68a97cb2c4018cc9de6606b8855df8084f9a98b94668e812718300fbfd05b3", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.6.0", "source_mapping": {"start": 32, "length": 23, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.6", ".0"]}}], "description": "Pragma version^0.6.0 (test/05-Token.t.sol#2) allows old versions\n", "markdown": "Pragma version[^0.6.0](test/05-Token.t.sol#L2) allows old versions\n", "first_markdown_element": "test/05-Token.t.sol#L2", "id": "7573ce61371c40f5516eb66ae8cb94bf723395daccd6f264f548df39b6d87036", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.6.0", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/levels/04-Telephone/TelephoneExploit.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/TelephoneExploit.sol", "filename_short": "src/levels/04-Telephone/TelephoneExploit.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.6", ".0"]}}], "description": "Pragma version^0.6.0 (src/levels/04-Telephone/TelephoneExploit.sol#2) allows old versions\n", "markdown": "Pragma version[^0.6.0](src/levels/04-Telephone/TelephoneExploit.sol#L2) allows old versions\n", "first_markdown_element": "src/levels/04-Telephone/TelephoneExploit.sol#L2", "id": "64f43fdd07c8b880504343522adfd467d9e061a474649185d746f8ebe734205d", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.6.0", "source_mapping": {"start": 32, "length": 23, "filename_relative": "test/01-Fallback.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/01-Fallback.t.sol", "filename_short": "test/01-Fallback.t.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.6", ".0"]}}], "description": "Pragma version^0.6.0 (test/01-Fallback.t.sol#2) allows old versions\n", "markdown": "Pragma version[^0.6.0](test/01-Fallback.t.sol#L2) allows old versions\n", "first_markdown_element": "test/01-Fallback.t.sol#L2", "id": "2c744afa88d08c2637ef72947a471aca6efae4109f7ee5b9e5c534e28b6e48db", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.6.0", "source_mapping": {"start": 33, "length": 23, "filename_relative": "src/core/Level.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Level.sol", "filename_short": "src/core/Level.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.6", ".0"]}}], "description": "Pragma version^0.6.0 (src/core/Level.sol#3) allows old versions\n", "markdown": "Pragma version[^0.6.0](src/core/Level.sol#L3) allows old versions\n", "first_markdown_element": "src/core/Level.sol#L3", "id": "6a5ed1e03a7504c8e79a22522c6539c054a960b54eb33d5b89f699c02da0d91b", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.6.0", "source_mapping": {"start": 33, "length": 23, "filename_relative": "src/levels/04-Telephone/TelephoneFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/TelephoneFactory.sol", "filename_short": "src/levels/04-Telephone/TelephoneFactory.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.6", ".0"]}}], "description": "Pragma version^0.6.0 (src/levels/04-Telephone/TelephoneFactory.sol#3) allows old versions\n", "markdown": "Pragma version[^0.6.0](src/levels/04-Telephone/TelephoneFactory.sol#L3) allows old versions\n", "first_markdown_element": "src/levels/04-Telephone/TelephoneFactory.sol#L3", "id": "9fae3ad082edf4842800946acf72e5927cbd5e350f52665eb120732d91006a04", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.6.0", "source_mapping": {"start": 33, "length": 23, "filename_relative": "src/levels/01-Fallback/FallbackFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/01-Fallback/FallbackFactory.sol", "filename_short": "src/levels/01-Fallback/FallbackFactory.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.6", ".0"]}}], "description": "Pragma version^0.6.0 (src/levels/01-Fallback/FallbackFactory.sol#3) allows old versions\n", "markdown": "Pragma version[^0.6.0](src/levels/01-Fallback/FallbackFactory.sol#L3) allows old versions\n", "first_markdown_element": "src/levels/01-Fallback/FallbackFactory.sol#L3", "id": "404795c8bdbb37bdb07448787ed3c882ce59a015efa57a755a99319a57d290ed", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.6.0", "source_mapping": {"start": 33, "length": 23, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.6", ".0"]}}], "description": "Pragma version^0.6.0 (src/core/Ethernaut.sol#3) allows old versions\n", "markdown": "Pragma version[^0.6.0](src/core/Ethernaut.sol#L3) allows old versions\n", "first_markdown_element": "src/core/Ethernaut.sol#L3", "id": "374663c668255763db16bc1c240c199dc37a2c9209abe2d06a3e072ef0109b49", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.6.0", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/levels/03-CoinFlip/CoinFlip.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/03-CoinFlip/CoinFlip.sol", "filename_short": "src/levels/03-CoinFlip/CoinFlip.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.6", ".0"]}}], "description": "Pragma version^0.6.0 (src/levels/03-CoinFlip/CoinFlip.sol#2) allows old versions\n", "markdown": "Pragma version[^0.6.0](src/levels/03-CoinFlip/CoinFlip.sol#L2) allows old versions\n", "first_markdown_element": "src/levels/03-CoinFlip/CoinFlip.sol#L2", "id": "7a8f71ee900406966de8b15f87cbeb42089a3a7b5580839005c63cf86c96b718", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.6.0", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/levels/01-Fallback/Fallback.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/01-Fallback/Fallback.sol", "filename_short": "src/levels/01-Fallback/Fallback.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.6", ".0"]}}], "description": "Pragma version^0.6.0 (src/levels/01-Fallback/Fallback.sol#2) allows old versions\n", "markdown": "Pragma version[^0.6.0](src/levels/01-Fallback/Fallback.sol#L2) allows old versions\n", "first_markdown_element": "src/levels/01-Fallback/Fallback.sol#L2", "id": "6a0eb705bc63a746622df89dd2a1771263da57ce294e3cd49d4a5c48f27230ef", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.6.0", "source_mapping": {"start": 33, "length": 23, "filename_relative": "src/levels/05-Token/TokenFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/TokenFactory.sol", "filename_short": "src/levels/05-Token/TokenFactory.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.6", ".0"]}}], "description": "Pragma version^0.6.0 (src/levels/05-Token/TokenFactory.sol#3) allows old versions\n", "markdown": "Pragma version[^0.6.0](src/levels/05-Token/TokenFactory.sol#L3) allows old versions\n", "first_markdown_element": "src/levels/05-Token/TokenFactory.sol#L3", "id": "b9e0e6ce1fa0fe633f276cb4a52ebc74352625610ebaeb73fedccc0782b09c93", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.6.0", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/levels/04-Telephone/Telephone.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/Telephone.sol", "filename_short": "src/levels/04-Telephone/Telephone.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.6", ".0"]}}], "description": "Pragma version^0.6.0 (src/levels/04-Telephone/Telephone.sol#2) allows old versions\n", "markdown": "Pragma version[^0.6.0](src/levels/04-Telephone/Telephone.sol#L2) allows old versions\n", "first_markdown_element": "src/levels/04-Telephone/Telephone.sol#L2", "id": "86120a421506c27f46bc1a028fcc678fd6b60ebba36bbac341e8ccb89474386f", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.6.0", "source_mapping": {"start": 32, "length": 23, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.6", ".0"]}}], "description": "Pragma version^0.6.0 (test/04-Telephone.t.sol#2) allows old versions\n", "markdown": "Pragma version[^0.6.0](test/04-Telephone.t.sol#L2) allows old versions\n", "first_markdown_element": "test/04-Telephone.t.sol#L2", "id": "94944cdae941ede30b337da4ba8fe2c519f3b9bdda27a50ea6b43e98ea22d92e", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "FACTOR", "source_mapping": {"start": 220, "length": 102, "filename_relative": "src/levels/03-CoinFlip/CoinFlipExploit.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/03-CoinFlip/CoinFlipExploit.sol", "filename_short": "src/levels/03-CoinFlip/CoinFlipExploit.sol", "is_dependency": false, "lines": [10, 11], "starting_column": 5, "ending_column": 86}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipExploit", "source_mapping": {"start": 134, "length": 570, "filename_relative": "src/levels/03-CoinFlip/CoinFlipExploit.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/03-CoinFlip/CoinFlipExploit.sol", "filename_short": "src/levels/03-CoinFlip/CoinFlipExploit.sol", "is_dependency": false, "lines": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable", "convention": "mixedCase"}}], "description": "Variable CoinFlipExploit.FACTOR (src/levels/03-CoinFlip/CoinFlipExploit.sol#10-11) is not in mixedCase\n", "markdown": "Variable [CoinFlipExploit.FACTOR](src/levels/03-CoinFlip/CoinFlipExploit.sol#L10-L11) is not in mixedCase\n", "first_markdown_element": "src/levels/03-CoinFlip/CoinFlipExploit.sol#L10-L11", "id": "bbc00fe7db33ef42b88c0feb8b7d1344e62d7cf48b39f8a4c5609a963f3803d6", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "Fal1out", "source_mapping": {"start": 435, "length": 109, "filename_relative": "src/levels/02-Fallout/Fallout.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/02-Fallout/Fallout.sol", "filename_short": "src/levels/02-Fallout/Fallout.sol", "is_dependency": false, "lines": [17, 18, 19, 20], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Fallout", "source_mapping": {"start": 109, "length": 1367, "filename_relative": "src/levels/02-Fallout/Fallout.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/02-Fallout/Fallout.sol", "filename_short": "src/levels/02-Fallout/Fallout.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49], "starting_column": 1, "ending_column": 2}}, "signature": "Fal1out()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function Fallout.Fal1out() (src/levels/02-Fallout/Fallout.sol#17-20) is not in mixedCase\n", "markdown": "Function [Fallout.Fal1out()](src/levels/02-Fallout/Fallout.sol#L17-L20) is not in mixedCase\n", "first_markdown_element": "src/levels/02-Fallout/Fallout.sol#L17-L20", "id": "61c790032e01bf4a44c048a5bd26ba2d38b3cec6deb44bbfaf154f9007b15399", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_to", "source_mapping": {"start": 444, "length": 11, "filename_relative": "src/levels/05-Token/Token.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/Token.sol", "filename_short": "src/levels/05-Token/Token.sol", "is_dependency": false, "lines": [16], "starting_column": 23, "ending_column": 34}, "type_specific_fields": {"parent": {"type": "function", "name": "transfer", "source_mapping": {"start": 426, "length": 677, "filename_relative": "src/levels/05-Token/Token.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/Token.sol", "filename_short": "src/levels/05-Token/Token.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Token", "source_mapping": {"start": 57, "length": 1164, "filename_relative": "src/levels/05-Token/Token.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/Token.sol", "filename_short": "src/levels/05-Token/Token.sol", "is_dependency": false, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "transfer(address,uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Token.transfer(address,uint256)._to (src/levels/05-Token/Token.sol#16) is not in mixedCase\n", "markdown": "Parameter [Token.transfer(address,uint256)._to](src/levels/05-Token/Token.sol#L16) is not in mixedCase\n", "first_markdown_element": "src/levels/05-Token/Token.sol#L16", "id": "d73bfe9802eb34e88f3feecb0066f9d6b84cebc355fcd39a368283e6a21fa1da", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_value", "source_mapping": {"start": 457, "length": 11, "filename_relative": "src/levels/05-Token/Token.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/Token.sol", "filename_short": "src/levels/05-Token/Token.sol", "is_dependency": false, "lines": [16], "starting_column": 36, "ending_column": 47}, "type_specific_fields": {"parent": {"type": "function", "name": "transfer", "source_mapping": {"start": 426, "length": 677, "filename_relative": "src/levels/05-Token/Token.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/Token.sol", "filename_short": "src/levels/05-Token/Token.sol", "is_dependency": false, "lines": [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Token", "source_mapping": {"start": 57, "length": 1164, "filename_relative": "src/levels/05-Token/Token.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/Token.sol", "filename_short": "src/levels/05-Token/Token.sol", "is_dependency": false, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "transfer(address,uint256)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Token.transfer(address,uint256)._value (src/levels/05-Token/Token.sol#16) is not in mixedCase\n", "markdown": "Parameter [Token.transfer(address,uint256)._value](src/levels/05-Token/Token.sol#L16) is not in mixedCase\n", "first_markdown_element": "src/levels/05-Token/Token.sol#L16", "id": "8e006d7b69d66c61854ade5a8706e413eda1ea73022cf26dab80932a3a5cf620", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_owner", "source_mapping": {"start": 1128, "length": 14, "filename_relative": "src/levels/05-Token/Token.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/Token.sol", "filename_short": "src/levels/05-Token/Token.sol", "is_dependency": false, "lines": [31], "starting_column": 24, "ending_column": 38}, "type_specific_fields": {"parent": {"type": "function", "name": "balanceOf", "source_mapping": {"start": 1109, "length": 110, "filename_relative": "src/levels/05-Token/Token.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/Token.sol", "filename_short": "src/levels/05-Token/Token.sol", "is_dependency": false, "lines": [31, 32, 33], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Token", "source_mapping": {"start": 57, "length": 1164, "filename_relative": "src/levels/05-Token/Token.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/Token.sol", "filename_short": "src/levels/05-Token/Token.sol", "is_dependency": false, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "balanceOf(address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Token.balanceOf(address)._owner (src/levels/05-Token/Token.sol#31) is not in mixedCase\n", "markdown": "Parameter [Token.balanceOf(address)._owner](src/levels/05-Token/Token.sol#L31) is not in mixedCase\n", "first_markdown_element": "src/levels/05-Token/Token.sol#L31", "id": "a9302385c50cec20f01c76a4b89d26ac0dd730b8bd76a8b45cdfa04f479c49ce", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_instance", "source_mapping": {"start": 368, "length": 25, "filename_relative": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_short": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "is_dependency": false, "lines": [19], "starting_column": 31, "ending_column": 56}, "type_specific_fields": {"parent": {"type": "function", "name": "validateInstance", "source_mapping": {"start": 342, "length": 226, "filename_relative": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_short": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "is_dependency": false, "lines": [19, 20, 21, 22, 23, 24, 25, 26], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipFactory", "source_mapping": {"start": 113, "length": 457, "filename_relative": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_short": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "is_dependency": false, "lines": [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": "validateInstance(address,address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter CoinFlipFactory.validateInstance(address,address)._instance (src/levels/03-CoinFlip/CoinFlipFactory.sol#19) is not in mixedCase\n", "markdown": "Parameter [CoinFlipFactory.validateInstance(address,address)._instance](src/levels/03-CoinFlip/CoinFlipFactory.sol#L19) is not in mixedCase\n", "first_markdown_element": "src/levels/03-CoinFlip/CoinFlipFactory.sol#L19", "id": "bad3f42e298e794c32802bbc724d6fc2cc1595a991ed6d82fdaeec6a5f3fe4dd", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "test_CoinFlipExploit", "source_mapping": {"start": 974, "length": 2280, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipTest", "source_mapping": {"start": 283, "length": 3733, "filename_relative": "test/03-CoinFlip.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/03-CoinFlip.t.sol", "filename_short": "test/03-CoinFlip.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108], "starting_column": 1, "ending_column": 2}}, "signature": "test_CoinFlipExploit()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function CoinFlipTest.test_CoinFlipExploit() (test/03-CoinFlip.t.sol#32-87) is not in mixedCase\n", "markdown": "Function [CoinFlipTest.test_CoinFlipExploit()](test/03-CoinFlip.t.sol#L32-L87) is not in mixedCase\n", "first_markdown_element": "test/03-CoinFlip.t.sol#L32-L87", "id": "81e14b6b62ecbd66a3f06c374bddf1e194cf5868506ac1f180cc685bda6f5277", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_instance", "source_mapping": {"start": 402, "length": 25, "filename_relative": "src/levels/02-Fallout/FalloutFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/02-Fallout/FalloutFactory.sol", "filename_short": "src/levels/02-Fallout/FalloutFactory.sol", "is_dependency": false, "lines": [20], "starting_column": 31, "ending_column": 56}, "type_specific_fields": {"parent": {"type": "function", "name": "validateInstance", "source_mapping": {"start": 376, "length": 227, "filename_relative": "src/levels/02-Fallout/FalloutFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/02-Fallout/FalloutFactory.sol", "filename_short": "src/levels/02-Fallout/FalloutFactory.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutFactory", "source_mapping": {"start": 112, "length": 493, "filename_relative": "src/levels/02-Fallout/FalloutFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/02-Fallout/FalloutFactory.sol", "filename_short": "src/levels/02-Fallout/FalloutFactory.sol", "is_dependency": false, "lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": 2}}, "signature": "validateInstance(address,address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter FalloutFactory.validateInstance(address,address)._instance (src/levels/02-Fallout/FalloutFactory.sol#20) is not in mixedCase\n", "markdown": "Parameter [FalloutFactory.validateInstance(address,address)._instance](src/levels/02-Fallout/FalloutFactory.sol#L20) is not in mixedCase\n", "first_markdown_element": "src/levels/02-Fallout/FalloutFactory.sol#L20", "id": "36bc1d7fc39e7c86726eefcd51dedc1e2d8069335dd1b4207d44db53a049f8ea", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_player", "source_mapping": {"start": 429, "length": 15, "filename_relative": "src/levels/02-Fallout/FalloutFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/02-Fallout/FalloutFactory.sol", "filename_short": "src/levels/02-Fallout/FalloutFactory.sol", "is_dependency": false, "lines": [20], "starting_column": 58, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "validateInstance", "source_mapping": {"start": 376, "length": 227, "filename_relative": "src/levels/02-Fallout/FalloutFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/02-Fallout/FalloutFactory.sol", "filename_short": "src/levels/02-Fallout/FalloutFactory.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutFactory", "source_mapping": {"start": 112, "length": 493, "filename_relative": "src/levels/02-Fallout/FalloutFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/02-Fallout/FalloutFactory.sol", "filename_short": "src/levels/02-Fallout/FalloutFactory.sol", "is_dependency": false, "lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": 2}}, "signature": "validateInstance(address,address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter FalloutFactory.validateInstance(address,address)._player (src/levels/02-Fallout/FalloutFactory.sol#20) is not in mixedCase\n", "markdown": "Parameter [FalloutFactory.validateInstance(address,address)._player](src/levels/02-Fallout/FalloutFactory.sol#L20) is not in mixedCase\n", "first_markdown_element": "src/levels/02-Fallout/FalloutFactory.sol#L20", "id": "b345639acd2b7c88a9112b7191f925874941e71c5c6c7cc48e8d3709a7a066c7", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "test_fuzz_transferShouldProperlyUpdateBalances", "source_mapping": {"start": 873, "length": 500, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenTest", "source_mapping": {"start": 224, "length": 3879, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}, "signature": "test_fuzz_transferShouldProperlyUpdateBalances(uint256)"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function TokenTest.test_fuzz_transferShouldProperlyUpdateBalances(uint256) (test/05-Token.t.sol#30-42) is not in mixedCase\n", "markdown": "Function [TokenTest.test_fuzz_transferShouldProperlyUpdateBalances(uint256)](test/05-Token.t.sol#L30-L42) is not in mixedCase\n", "first_markdown_element": "test/05-Token.t.sol#L30-L42", "id": "f951a452a5abf0639c0668729b3ccc7d1dc747c76f5455143eac72a95e3505d2", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "test_TokenExploit", "source_mapping": {"start": 1574, "length": 1767, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenTest", "source_mapping": {"start": 224, "length": 3879, "filename_relative": "test/05-Token.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/05-Token.t.sol", "filename_short": "test/05-Token.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116], "starting_column": 1, "ending_column": 2}}, "signature": "test_TokenExploit()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function TokenTest.test_TokenExploit() (test/05-Token.t.sol#48-95) is not in mixedCase\n", "markdown": "Function [TokenTest.test_TokenExploit()](test/05-Token.t.sol#L48-L95) is not in mixedCase\n", "first_markdown_element": "test/05-Token.t.sol#L48-L95", "id": "b0ec5771267e32cd9e4fd348f9bac0573c3a1f97e99807f0c46eef3026fdadb6", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_newOwner", "source_mapping": {"start": 283, "length": 17, "filename_relative": "src/levels/04-Telephone/TelephoneExploit.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/TelephoneExploit.sol", "filename_short": "src/levels/04-Telephone/TelephoneExploit.sol", "is_dependency": false, "lines": [13], "starting_column": 21, "ending_column": 38}, "type_specific_fields": {"parent": {"type": "function", "name": "attack", "source_mapping": {"start": 267, "length": 91, "filename_relative": "src/levels/04-Telephone/TelephoneExploit.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/TelephoneExploit.sol", "filename_short": "src/levels/04-Telephone/TelephoneExploit.sol", "is_dependency": false, "lines": [13, 14, 15], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneExploit", "source_mapping": {"start": 84, "length": 276, "filename_relative": "src/levels/04-Telephone/TelephoneExploit.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/TelephoneExploit.sol", "filename_short": "src/levels/04-Telephone/TelephoneExploit.sol", "is_dependency": false, "lines": [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], "starting_column": 1, "ending_column": 2}}, "signature": "attack(address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter TelephoneExploit.attack(address)._newOwner (src/levels/04-Telephone/TelephoneExploit.sol#13) is not in mixedCase\n", "markdown": "Parameter [TelephoneExploit.attack(address)._newOwner](src/levels/04-Telephone/TelephoneExploit.sol#L13) is not in mixedCase\n", "first_markdown_element": "src/levels/04-Telephone/TelephoneExploit.sol#L13", "id": "bdf422ea19ae8b8f7a058ccfec99400a37aa1b879758e35e2b0cdf0b84937942", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_instance", "source_mapping": {"start": 410, "length": 25, "filename_relative": "src/levels/04-Telephone/TelephoneFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/TelephoneFactory.sol", "filename_short": "src/levels/04-Telephone/TelephoneFactory.sol", "is_dependency": false, "lines": [20], "starting_column": 31, "ending_column": 56}, "type_specific_fields": {"parent": {"type": "function", "name": "validateInstance", "source_mapping": {"start": 384, "length": 231, "filename_relative": "src/levels/04-Telephone/TelephoneFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/TelephoneFactory.sol", "filename_short": "src/levels/04-Telephone/TelephoneFactory.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneFactory", "source_mapping": {"start": 114, "length": 503, "filename_relative": "src/levels/04-Telephone/TelephoneFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/TelephoneFactory.sol", "filename_short": "src/levels/04-Telephone/TelephoneFactory.sol", "is_dependency": false, "lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": 2}}, "signature": "validateInstance(address,address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter TelephoneFactory.validateInstance(address,address)._instance (src/levels/04-Telephone/TelephoneFactory.sol#20) is not in mixedCase\n", "markdown": "Parameter [TelephoneFactory.validateInstance(address,address)._instance](src/levels/04-Telephone/TelephoneFactory.sol#L20) is not in mixedCase\n", "first_markdown_element": "src/levels/04-Telephone/TelephoneFactory.sol#L20", "id": "8b9eea5a8741c1d45d0ddd9d207929adce31e088328c37823633c5983ffe4ce8", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_player", "source_mapping": {"start": 437, "length": 15, "filename_relative": "src/levels/04-Telephone/TelephoneFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/TelephoneFactory.sol", "filename_short": "src/levels/04-Telephone/TelephoneFactory.sol", "is_dependency": false, "lines": [20], "starting_column": 58, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "validateInstance", "source_mapping": {"start": 384, "length": 231, "filename_relative": "src/levels/04-Telephone/TelephoneFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/TelephoneFactory.sol", "filename_short": "src/levels/04-Telephone/TelephoneFactory.sol", "is_dependency": false, "lines": [20, 21, 22, 23, 24, 25, 26, 27], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneFactory", "source_mapping": {"start": 114, "length": 503, "filename_relative": "src/levels/04-Telephone/TelephoneFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/TelephoneFactory.sol", "filename_short": "src/levels/04-Telephone/TelephoneFactory.sol", "is_dependency": false, "lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": 2}}, "signature": "validateInstance(address,address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter TelephoneFactory.validateInstance(address,address)._player (src/levels/04-Telephone/TelephoneFactory.sol#20) is not in mixedCase\n", "markdown": "Parameter [TelephoneFactory.validateInstance(address,address)._player](src/levels/04-Telephone/TelephoneFactory.sol#L20) is not in mixedCase\n", "first_markdown_element": "src/levels/04-Telephone/TelephoneFactory.sol#L20", "id": "e7e3ef23ed8d7a5e33459f36d9a5e6671412378c2fca5289262d0bd47a4f21fd", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_instance", "source_mapping": {"start": 370, "length": 25, "filename_relative": "src/levels/01-Fallback/FallbackFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/01-Fallback/FallbackFactory.sol", "filename_short": "src/levels/01-Fallback/FallbackFactory.sol", "is_dependency": false, "lines": [15], "starting_column": 31, "ending_column": 56}, "type_specific_fields": {"parent": {"type": "function", "name": "validateInstance", "source_mapping": {"start": 344, "length": 235, "filename_relative": "src/levels/01-Fallback/FallbackFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/01-Fallback/FallbackFactory.sol", "filename_short": "src/levels/01-Fallback/FallbackFactory.sol", "is_dependency": false, "lines": [15, 16, 17, 18], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackFactory", "source_mapping": {"start": 113, "length": 468, "filename_relative": "src/levels/01-Fallback/FallbackFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/01-Fallback/FallbackFactory.sol", "filename_short": "src/levels/01-Fallback/FallbackFactory.sol", "is_dependency": false, "lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "starting_column": 1, "ending_column": 2}}, "signature": "validateInstance(address,address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter FallbackFactory.validateInstance(address,address)._instance (src/levels/01-Fallback/FallbackFactory.sol#15) is not in mixedCase\n", "markdown": "Parameter [FallbackFactory.validateInstance(address,address)._instance](src/levels/01-Fallback/FallbackFactory.sol#L15) is not in mixedCase\n", "first_markdown_element": "src/levels/01-Fallback/FallbackFactory.sol#L15", "id": "5534096bb180c1c221609a171ca5053f44b1437f4946d7c2c4bb4c8bbdc40212", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_player", "source_mapping": {"start": 397, "length": 15, "filename_relative": "src/levels/01-Fallback/FallbackFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/01-Fallback/FallbackFactory.sol", "filename_short": "src/levels/01-Fallback/FallbackFactory.sol", "is_dependency": false, "lines": [15], "starting_column": 58, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "validateInstance", "source_mapping": {"start": 344, "length": 235, "filename_relative": "src/levels/01-Fallback/FallbackFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/01-Fallback/FallbackFactory.sol", "filename_short": "src/levels/01-Fallback/FallbackFactory.sol", "is_dependency": false, "lines": [15, 16, 17, 18], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackFactory", "source_mapping": {"start": 113, "length": 468, "filename_relative": "src/levels/01-Fallback/FallbackFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/01-Fallback/FallbackFactory.sol", "filename_short": "src/levels/01-Fallback/FallbackFactory.sol", "is_dependency": false, "lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "starting_column": 1, "ending_column": 2}}, "signature": "validateInstance(address,address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter FallbackFactory.validateInstance(address,address)._player (src/levels/01-Fallback/FallbackFactory.sol#15) is not in mixedCase\n", "markdown": "Parameter [FallbackFactory.validateInstance(address,address)._player](src/levels/01-Fallback/FallbackFactory.sol#L15) is not in mixedCase\n", "first_markdown_element": "src/levels/01-Fallback/FallbackFactory.sol#L15", "id": "097c13ba66a18f7ad97e8503fd951882df356c5c085fee02b5b08a73e4d1f2b6", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_level", "source_mapping": {"start": 438, "length": 12, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [16], "starting_column": 28, "ending_column": 40}, "type_specific_fields": {"parent": {"type": "function", "name": "registerLevel", "source_mapping": {"start": 415, "length": 111, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [16, 17, 18], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Ethernaut", "source_mapping": {"start": 133, "length": 2320, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "registerLevel(Level)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Ethernaut.registerLevel(Level)._level (src/core/Ethernaut.sol#16) is not in mixedCase\n", "markdown": "Parameter [Ethernaut.registerLevel(Level)._level](src/core/Ethernaut.sol#L16) is not in mixedCase\n", "first_markdown_element": "src/core/Ethernaut.sol#L16", "id": "ecafe56d97d1eab61fad86ef46ec3db9f07b081a8ecbce9e51e15c7b377a6592", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_level", "source_mapping": {"start": 996, "length": 12, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [35], "starting_column": 34, "ending_column": 46}, "type_specific_fields": {"parent": {"type": "function", "name": "createLevelInstance", "source_mapping": {"start": 967, "length": 663, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Ethernaut", "source_mapping": {"start": 133, "length": 2320, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "createLevelInstance(Level)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Ethernaut.createLevelInstance(Level)._level (src/core/Ethernaut.sol#35) is not in mixedCase\n", "markdown": "Parameter [Ethernaut.createLevelInstance(Level)._level](src/core/Ethernaut.sol#L35) is not in mixedCase\n", "first_markdown_element": "src/core/Ethernaut.sol#L35", "id": "78daa09e45a4e865e8e51f6fae28d0ef3a21566fed4cf9beee750e367621ca60", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_instance", "source_mapping": {"start": 1665, "length": 25, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [51], "starting_column": 34, "ending_column": 59}, "type_specific_fields": {"parent": {"type": "function", "name": "submitLevelInstance", "source_mapping": {"start": 1636, "length": 815, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Ethernaut", "source_mapping": {"start": 133, "length": 2320, "filename_relative": "src/core/Ethernaut.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/core/Ethernaut.sol", "filename_short": "src/core/Ethernaut.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70], "starting_column": 1, "ending_column": 2}}, "signature": "submitLevelInstance(address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Ethernaut.submitLevelInstance(address)._instance (src/core/Ethernaut.sol#51) is not in mixedCase\n", "markdown": "Parameter [Ethernaut.submitLevelInstance(address)._instance](src/core/Ethernaut.sol#L51) is not in mixedCase\n", "first_markdown_element": "src/core/Ethernaut.sol#L51", "id": "cea194e79d9868a9c63f9d3c3e65949bdf4d7cb573226066b922680843da7e26", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_guess", "source_mapping": {"start": 460, "length": 11, "filename_relative": "src/levels/03-CoinFlip/CoinFlip.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/03-CoinFlip/CoinFlip.sol", "filename_short": "src/levels/03-CoinFlip/CoinFlip.sol", "is_dependency": false, "lines": [18], "starting_column": 19, "ending_column": 30}, "type_specific_fields": {"parent": {"type": "function", "name": "flip", "source_mapping": {"start": 446, "length": 553, "filename_relative": "src/levels/03-CoinFlip/CoinFlip.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/03-CoinFlip/CoinFlip.sol", "filename_short": "src/levels/03-CoinFlip/CoinFlip.sol", "is_dependency": false, "lines": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlip", "source_mapping": {"start": 109, "length": 892, "filename_relative": "src/levels/03-CoinFlip/CoinFlip.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/03-CoinFlip/CoinFlip.sol", "filename_short": "src/levels/03-CoinFlip/CoinFlip.sol", "is_dependency": false, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "flip(bool)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter CoinFlip.flip(bool)._guess (src/levels/03-CoinFlip/CoinFlip.sol#18) is not in mixedCase\n", "markdown": "Parameter [CoinFlip.flip(bool)._guess](src/levels/03-CoinFlip/CoinFlip.sol#L18) is not in mixedCase\n", "first_markdown_element": "src/levels/03-CoinFlip/CoinFlip.sol#L18", "id": "6a07965d5a94252ec8257a44fdb485eabdb0cdfa7899de82ceaa19a7d3da15d7", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "FACTOR", "source_mapping": {"start": 223, "length": 102, "filename_relative": "src/levels/03-CoinFlip/CoinFlip.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/03-CoinFlip/CoinFlip.sol", "filename_short": "src/levels/03-CoinFlip/CoinFlip.sol", "is_dependency": false, "lines": [10, 11], "starting_column": 5, "ending_column": 86}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlip", "source_mapping": {"start": 109, "length": 892, "filename_relative": "src/levels/03-CoinFlip/CoinFlip.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/03-CoinFlip/CoinFlip.sol", "filename_short": "src/levels/03-CoinFlip/CoinFlip.sol", "is_dependency": false, "lines": [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], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable", "convention": "mixedCase"}}], "description": "Variable CoinFlip.FACTOR (src/levels/03-CoinFlip/CoinFlip.sol#10-11) is not in mixedCase\n", "markdown": "Variable [CoinFlip.FACTOR](src/levels/03-CoinFlip/CoinFlip.sol#L10-L11) is not in mixedCase\n", "first_markdown_element": "src/levels/03-CoinFlip/CoinFlip.sol#L10-L11", "id": "9241527024a0bed94099ee10fab34f74f2ef070a3127f47c9bbc5430a7b0af66", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_player", "source_mapping": {"start": 295, "length": 15, "filename_relative": "src/levels/05-Token/TokenFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/TokenFactory.sol", "filename_short": "src/levels/05-Token/TokenFactory.sol", "is_dependency": false, "lines": [13], "starting_column": 29, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "createInstance", "source_mapping": {"start": 271, "length": 245, "filename_relative": "src/levels/05-Token/TokenFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/TokenFactory.sol", "filename_short": "src/levels/05-Token/TokenFactory.sol", "is_dependency": false, "lines": [13, 14, 15, 16, 17, 18, 19, 20, 21, 22], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenFactory", "source_mapping": {"start": 110, "length": 646, "filename_relative": "src/levels/05-Token/TokenFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/TokenFactory.sol", "filename_short": "src/levels/05-Token/TokenFactory.sol", "is_dependency": false, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "createInstance(address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter TokenFactory.createInstance(address)._player (src/levels/05-Token/TokenFactory.sol#13) is not in mixedCase\n", "markdown": "Parameter [TokenFactory.createInstance(address)._player](src/levels/05-Token/TokenFactory.sol#L13) is not in mixedCase\n", "first_markdown_element": "src/levels/05-Token/TokenFactory.sol#L13", "id": "e6481878be92e746eb9d00a65a44f1008febe7296d3e92a294e7a3ab11f076a5", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_instance", "source_mapping": {"start": 548, "length": 25, "filename_relative": "src/levels/05-Token/TokenFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/TokenFactory.sol", "filename_short": "src/levels/05-Token/TokenFactory.sol", "is_dependency": false, "lines": [24], "starting_column": 31, "ending_column": 56}, "type_specific_fields": {"parent": {"type": "function", "name": "validateInstance", "source_mapping": {"start": 522, "length": 232, "filename_relative": "src/levels/05-Token/TokenFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/TokenFactory.sol", "filename_short": "src/levels/05-Token/TokenFactory.sol", "is_dependency": false, "lines": [24, 25, 26, 27, 28, 29, 30, 31], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenFactory", "source_mapping": {"start": 110, "length": 646, "filename_relative": "src/levels/05-Token/TokenFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/TokenFactory.sol", "filename_short": "src/levels/05-Token/TokenFactory.sol", "is_dependency": false, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "validateInstance(address,address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter TokenFactory.validateInstance(address,address)._instance (src/levels/05-Token/TokenFactory.sol#24) is not in mixedCase\n", "markdown": "Parameter [TokenFactory.validateInstance(address,address)._instance](src/levels/05-Token/TokenFactory.sol#L24) is not in mixedCase\n", "first_markdown_element": "src/levels/05-Token/TokenFactory.sol#L24", "id": "632ed3fbcd270a3bc03ac6abb9c5bbccf7d6ae3903fbaab16e9358d53de61c17", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_player", "source_mapping": {"start": 575, "length": 15, "filename_relative": "src/levels/05-Token/TokenFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/TokenFactory.sol", "filename_short": "src/levels/05-Token/TokenFactory.sol", "is_dependency": false, "lines": [24], "starting_column": 58, "ending_column": 73}, "type_specific_fields": {"parent": {"type": "function", "name": "validateInstance", "source_mapping": {"start": 522, "length": 232, "filename_relative": "src/levels/05-Token/TokenFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/TokenFactory.sol", "filename_short": "src/levels/05-Token/TokenFactory.sol", "is_dependency": false, "lines": [24, 25, 26, 27, 28, 29, 30, 31], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TokenFactory", "source_mapping": {"start": 110, "length": 646, "filename_relative": "src/levels/05-Token/TokenFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/05-Token/TokenFactory.sol", "filename_short": "src/levels/05-Token/TokenFactory.sol", "is_dependency": false, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "validateInstance(address,address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter TokenFactory.validateInstance(address,address)._player (src/levels/05-Token/TokenFactory.sol#24) is not in mixedCase\n", "markdown": "Parameter [TokenFactory.validateInstance(address,address)._player](src/levels/05-Token/TokenFactory.sol#L24) is not in mixedCase\n", "first_markdown_element": "src/levels/05-Token/TokenFactory.sol#L24", "id": "3d3962f923339494d4435e68360bd0813e403bdc72ba11082b64ded1c3b7b1e4", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_owner", "source_mapping": {"start": 192, "length": 14, "filename_relative": "src/levels/04-Telephone/Telephone.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/Telephone.sol", "filename_short": "src/levels/04-Telephone/Telephone.sol", "is_dependency": false, "lines": [11], "starting_column": 26, "ending_column": 40}, "type_specific_fields": {"parent": {"type": "function", "name": "changeOwner", "source_mapping": {"start": 171, "length": 226, "filename_relative": "src/levels/04-Telephone/Telephone.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/Telephone.sol", "filename_short": "src/levels/04-Telephone/Telephone.sol", "is_dependency": false, "lines": [11, 12, 13, 14, 15, 16, 17], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Telephone", "source_mapping": {"start": 57, "length": 342, "filename_relative": "src/levels/04-Telephone/Telephone.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/Telephone.sol", "filename_short": "src/levels/04-Telephone/Telephone.sol", "is_dependency": false, "lines": [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "starting_column": 1, "ending_column": 2}}, "signature": "changeOwner(address)"}}}, "additional_fields": {"target": "parameter", "convention": "mixedCase"}}], "description": "Parameter Telephone.changeOwner(address)._owner (src/levels/04-Telephone/Telephone.sol#11) is not in mixedCase\n", "markdown": "Parameter [Telephone.changeOwner(address)._owner](src/levels/04-Telephone/Telephone.sol#L11) is not in mixedCase\n", "first_markdown_element": "src/levels/04-Telephone/Telephone.sol#L11", "id": "ba4b532b224247a24c453f5a993771fa52e43141f5d5176482da1367d62771a3", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "test_TelephoneExploit", "source_mapping": {"start": 982, "length": 1636, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneTest", "source_mapping": {"start": 287, "length": 3093, "filename_relative": "test/04-Telephone.t.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/test/04-Telephone.t.sol", "filename_short": "test/04-Telephone.t.sol", "is_dependency": false, "lines": [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, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96], "starting_column": 1, "ending_column": 2}}, "signature": "test_TelephoneExploit()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function TelephoneTest.test_TelephoneExploit() (test/04-Telephone.t.sol#32-75) is not in mixedCase\n", "markdown": "Function [TelephoneTest.test_TelephoneExploit()](test/04-Telephone.t.sol#L32-L75) is not in mixedCase\n", "first_markdown_element": "test/04-Telephone.t.sol#L32-L75", "id": "6e0b7cd1d5ee4d1a997a761cf196fc12b58e1918499d64e10c4f855962036f84", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "node", "name": "_player", "source_mapping": {"start": 282, "length": 7, "filename_relative": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_short": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "is_dependency": false, "lines": [15], "starting_column": 9, "ending_column": 16}, "type_specific_fields": {"parent": {"type": "function", "name": "createInstance", "source_mapping": {"start": 153, "length": 183, "filename_relative": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_short": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "CoinFlipFactory", "source_mapping": {"start": 113, "length": 457, "filename_relative": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_short": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "is_dependency": false, "lines": [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": "createInstance(address)"}}}}, {"type": "contract", "name": "CoinFlipFactory", "source_mapping": {"start": 113, "length": 457, "filename_relative": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/03-CoinFlip/CoinFlipFactory.sol", "filename_short": "src/levels/03-CoinFlip/CoinFlipFactory.sol", "is_dependency": false, "lines": [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}}], "description": "Redundant expression \"_player (src/levels/03-CoinFlip/CoinFlipFactory.sol#15)\" inCoinFlipFactory (src/levels/03-CoinFlip/CoinFlipFactory.sol#8-27)\n", "markdown": "Redundant expression \"[_player](src/levels/03-CoinFlip/CoinFlipFactory.sol#L15)\" in[CoinFlipFactory](src/levels/03-CoinFlip/CoinFlipFactory.sol#L8-L27)\n", "first_markdown_element": "src/levels/03-CoinFlip/CoinFlipFactory.sol#L15", "id": "93ad54dc018df12f080ee096bda13a9291bbcf80724e8c1a092a212438e7f0d7", "check": "redundant-statements", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "node", "name": "_player", "source_mapping": {"start": 280, "length": 7, "filename_relative": "src/levels/02-Fallout/FalloutFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/02-Fallout/FalloutFactory.sol", "filename_short": "src/levels/02-Fallout/FalloutFactory.sol", "is_dependency": false, "lines": [15], "starting_column": 9, "ending_column": 16}, "type_specific_fields": {"parent": {"type": "function", "name": "createInstance", "source_mapping": {"start": 151, "length": 219, "filename_relative": "src/levels/02-Fallout/FalloutFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/02-Fallout/FalloutFactory.sol", "filename_short": "src/levels/02-Fallout/FalloutFactory.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FalloutFactory", "source_mapping": {"start": 112, "length": 493, "filename_relative": "src/levels/02-Fallout/FalloutFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/02-Fallout/FalloutFactory.sol", "filename_short": "src/levels/02-Fallout/FalloutFactory.sol", "is_dependency": false, "lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": 2}}, "signature": "createInstance(address)"}}}}, {"type": "contract", "name": "FalloutFactory", "source_mapping": {"start": 112, "length": 493, "filename_relative": "src/levels/02-Fallout/FalloutFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/02-Fallout/FalloutFactory.sol", "filename_short": "src/levels/02-Fallout/FalloutFactory.sol", "is_dependency": false, "lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": 2}}], "description": "Redundant expression \"_player (src/levels/02-Fallout/FalloutFactory.sol#15)\" inFalloutFactory (src/levels/02-Fallout/FalloutFactory.sol#8-28)\n", "markdown": "Redundant expression \"[_player](src/levels/02-Fallout/FalloutFactory.sol#L15)\" in[FalloutFactory](src/levels/02-Fallout/FalloutFactory.sol#L8-L28)\n", "first_markdown_element": "src/levels/02-Fallout/FalloutFactory.sol#L15", "id": "b42c885a67df9aace193f552a589bba62e3ad8095bf20ff05189e20b90b017c2", "check": "redundant-statements", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "node", "name": "_player", "source_mapping": {"start": 284, "length": 7, "filename_relative": "src/levels/04-Telephone/TelephoneFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/TelephoneFactory.sol", "filename_short": "src/levels/04-Telephone/TelephoneFactory.sol", "is_dependency": false, "lines": [15], "starting_column": 9, "ending_column": 16}, "type_specific_fields": {"parent": {"type": "function", "name": "createInstance", "source_mapping": {"start": 155, "length": 223, "filename_relative": "src/levels/04-Telephone/TelephoneFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/TelephoneFactory.sol", "filename_short": "src/levels/04-Telephone/TelephoneFactory.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TelephoneFactory", "source_mapping": {"start": 114, "length": 503, "filename_relative": "src/levels/04-Telephone/TelephoneFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/TelephoneFactory.sol", "filename_short": "src/levels/04-Telephone/TelephoneFactory.sol", "is_dependency": false, "lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": 2}}, "signature": "createInstance(address)"}}}}, {"type": "contract", "name": "TelephoneFactory", "source_mapping": {"start": 114, "length": 503, "filename_relative": "src/levels/04-Telephone/TelephoneFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/04-Telephone/TelephoneFactory.sol", "filename_short": "src/levels/04-Telephone/TelephoneFactory.sol", "is_dependency": false, "lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "starting_column": 1, "ending_column": 2}}], "description": "Redundant expression \"_player (src/levels/04-Telephone/TelephoneFactory.sol#15)\" inTelephoneFactory (src/levels/04-Telephone/TelephoneFactory.sol#8-28)\n", "markdown": "Redundant expression \"[_player](src/levels/04-Telephone/TelephoneFactory.sol#L15)\" in[TelephoneFactory](src/levels/04-Telephone/TelephoneFactory.sol#L8-L28)\n", "first_markdown_element": "src/levels/04-Telephone/TelephoneFactory.sol#L15", "id": "9c952541fd04974938e46bd772c4828cc397542125b216235893afb255f474b8", "check": "redundant-statements", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "node", "name": "_player", "source_mapping": {"start": 246, "length": 7, "filename_relative": "src/levels/01-Fallback/FallbackFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/01-Fallback/FallbackFactory.sol", "filename_short": "src/levels/01-Fallback/FallbackFactory.sol", "is_dependency": false, "lines": [10], "starting_column": 9, "ending_column": 16}, "type_specific_fields": {"parent": {"type": "function", "name": "createInstance", "source_mapping": {"start": 153, "length": 185, "filename_relative": "src/levels/01-Fallback/FallbackFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/01-Fallback/FallbackFactory.sol", "filename_short": "src/levels/01-Fallback/FallbackFactory.sol", "is_dependency": false, "lines": [9, 10, 11, 12, 13], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "FallbackFactory", "source_mapping": {"start": 113, "length": 468, "filename_relative": "src/levels/01-Fallback/FallbackFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/01-Fallback/FallbackFactory.sol", "filename_short": "src/levels/01-Fallback/FallbackFactory.sol", "is_dependency": false, "lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "starting_column": 1, "ending_column": 2}}, "signature": "createInstance(address)"}}}}, {"type": "contract", "name": "FallbackFactory", "source_mapping": {"start": 113, "length": 468, "filename_relative": "src/levels/01-Fallback/FallbackFactory.sol", "filename_absolute": "/Users/kamilchmielewski/Projects/ethernaut-foundry/src/levels/01-Fallback/FallbackFactory.sol", "filename_short": "src/levels/01-Fallback/FallbackFactory.sol", "is_dependency": false, "lines": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], "starting_column": 1, "ending_column": 2}}], "description": "Redundant expression \"_player (src/levels/01-Fallback/FallbackFactory.sol#10)\" inFallbackFactory (src/levels/01-Fallback/FallbackFactory.sol#8-19)\n", "markdown": "Redundant expression \"[_player](src/levels/01-Fallback/FallbackFactory.sol#L10)\" in[FallbackFactory](src/levels/01-Fallback/FallbackFactory.sol#L8-L19)\n", "first_markdown_element": "src/levels/01-Fallback/FallbackFactory.sol#L10", "id": "692ada53650a485209b59edb67c813deabcee2272587d750ea4c1582535edfb7", "check": "redundant-statements", "impact": "Informational", "confidence": "High"}]