-
Notifications
You must be signed in to change notification settings - Fork 1
/
slither.db.json
1 lines (1 loc) · 367 KB
/
slither.db.json
1
[{"elements": [{"type": "variable", "name": "admin_", "source_mapping": {"start": 1865, "length": 14, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [52], "starting_column": 9, "ending_column": 23}, "type_specific_fields": {"parent": {"type": "function", "name": "initialize", "source_mapping": {"start": 1772, "length": 394, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "PowerToken", "source_mapping": {"start": 586, "length": 7970, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262], "starting_column": 1, "ending_column": 2}}, "signature": "initialize(string,string,address,uint256)"}}}}, {"type": "node", "name": "admin = admin_", "source_mapping": {"start": 2102, "length": 14, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [60], "starting_column": 9, "ending_column": 23}, "type_specific_fields": {"parent": {"type": "function", "name": "initialize", "source_mapping": {"start": 1772, "length": 394, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "PowerToken", "source_mapping": {"start": 586, "length": 7970, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262], "starting_column": 1, "ending_column": 2}}, "signature": "initialize(string,string,address,uint256)"}}}}], "description": "PowerToken.initialize(string,string,address,uint256).admin_ (src/PowerToken.sol#52) lacks a zero-check on :\n\t\t- admin = admin_ (src/PowerToken.sol#60)\n", "markdown": "[PowerToken.initialize(string,string,address,uint256).admin_](src/PowerToken.sol#L52) lacks a zero-check on :\n\t\t- [admin = admin_](src/PowerToken.sol#L60)\n", "first_markdown_element": "src/PowerToken.sol#L52", "id": "ac21e5b7f2c1b13c616f52aa63f89c8c7314eafd1a5d5e95a2b2ca6e87b915a0", "check": "missing-zero-check", "impact": "Low", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_revert", "source_mapping": {"start": 5743, "length": 516, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 195, "length": 6066, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [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, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159], "starting_column": 1, "ending_column": 2}}, "signature": "_revert(bytes)"}}, {"type": "node", "name": "", "source_mapping": {"start": 6046, "length": 142, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [151, 152, 153, 154], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "_revert", "source_mapping": {"start": 5743, "length": 516, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 195, "length": 6066, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [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, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159], "starting_column": 1, "ending_column": 2}}, "signature": "_revert(bytes)"}}}}], "description": "Address._revert(bytes) (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol#146-158) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol#151-154)\n", "markdown": "[Address._revert(bytes)](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol#L146-L158) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol#L151-L154)\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol#L146-L158", "id": "59fe7730bf8cb469e83c04641b2c1db127f1a72aa1ffd641d53dbdfdf296a23a", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 107, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol", "filename_short": "lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 113, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", "filename_short": "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 114, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 99, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 93, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 193, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [5], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.2", "source_mapping": {"start": 116, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".2"]}}, {"type": "pragma", "name": "^0.8.1", "source_mapping": {"start": 101, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".1"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 108, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 129, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 113, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 105, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 101, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 114, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 109, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 130, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 112, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", "is_dependency": true, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 106, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 125, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 101, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 115, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 205, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "is_dependency": true, "lines": [5], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}, {"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/interfaces/IErrors.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/interfaces/IErrors.sol", "filename_short": "src/interfaces/IErrors.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}, {"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/interfaces/IEvents.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/interfaces/IEvents.sol", "filename_short": "src/interfaces/IEvents.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}, {"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/interfaces/IPowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/interfaces/IPowerToken.sol", "filename_short": "src/interfaces/IPowerToken.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}, {"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 117, "length": 23, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}], "description": "5 different versions of Solidity are used:\n\t- Version constraint ^0.8.0 is used by:\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#5)\n\t- Version constraint ^0.8.2 is used by:\n\t\t-^0.8.2 (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#4)\n\t- Version constraint ^0.8.1 is used by:\n\t\t-^0.8.1 (lib/openzeppelin-contracts/contracts/utils/Address.sol#4)\n\t- Version constraint ^0.8.20 is used by:\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol#3)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#5)\n\t- Version constraint 0.8.22 is used by:\n\t\t-0.8.22 (src/PowerToken.sol#2)\n\t\t-0.8.22 (src/interfaces/IErrors.sol#2)\n\t\t-0.8.22 (src/interfaces/IEvents.sol#2)\n\t\t-0.8.22 (src/interfaces/IPowerToken.sol#2)\n\t\t-0.8.22 (src/upgradeability/TransparentUpgradeableProxy.sol#3)\n", "markdown": "5 different versions of Solidity are used:\n\t- Version constraint ^0.8.0 is used by:\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L5)\n\t- Version constraint ^0.8.2 is used by:\n\t\t-[^0.8.2](lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L4)\n\t- Version constraint ^0.8.1 is used by:\n\t\t-[^0.8.1](lib/openzeppelin-contracts/contracts/utils/Address.sol#L4)\n\t- Version constraint ^0.8.20 is used by:\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol#L3)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#L5)\n\t- Version constraint 0.8.22 is used by:\n\t\t-[0.8.22](src/PowerToken.sol#L2)\n\t\t-[0.8.22](src/interfaces/IErrors.sol#L2)\n\t\t-[0.8.22](src/interfaces/IEvents.sol#L2)\n\t\t-[0.8.22](src/interfaces/IPowerToken.sol#L2)\n\t\t-[0.8.22](src/upgradeability/TransparentUpgradeableProxy.sol#L3)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol#L4", "id": "2e80841e49e371d374ce4a40b5871b59c2376922f8fdc9563b5b22d8bb9ad123", "check": "pragma", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 108, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 129, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 113, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 105, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 101, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 114, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 109, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 130, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 112, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", "is_dependency": true, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 106, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 125, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 101, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 115, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 205, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "is_dependency": true, "lines": [5], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}], "description": "Version constraint ^0.8.20 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- VerbatimInvalidDeduplication\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess.\nIt is used by:\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol#3)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#5)\n", "markdown": "Version constraint ^0.8.20 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- VerbatimInvalidDeduplication\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess.\nIt is used by:\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol#L3)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#L5)\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L4", "id": "08201f138192713191e4cb5b55f38efd34b15b64caeb40ef1d9f1d4b87c01491", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "sendValue", "source_mapping": {"start": 1531, "length": 331, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [41, 42, 43, 44, 45, 46, 47, 48, 49, 50], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 195, "length": 6066, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [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, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159], "starting_column": 1, "ending_column": 2}}, "signature": "sendValue(address,uint256)"}}, {"type": "node", "name": "(success,None) = recipient.call{value: amount}()", "source_mapping": {"start": 1731, "length": 52, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [46], "starting_column": 9, "ending_column": 61}, "type_specific_fields": {"parent": {"type": "function", "name": "sendValue", "source_mapping": {"start": 1531, "length": 331, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [41, 42, 43, 44, 45, 46, 47, 48, 49, 50], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 195, "length": 6066, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [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, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159], "starting_column": 1, "ending_column": 2}}, "signature": "sendValue(address,uint256)"}}}}], "description": "Low level call in Address.sendValue(address,uint256) (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol#41-50):\n\t- (success,None) = recipient.call{value: amount}() (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol#46)\n", "markdown": "Low level call in [Address.sendValue(address,uint256)](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol#L41-L50):\n\t- [(success,None) = recipient.call{value: amount}()](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol#L46)\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/Address.sol#L41-L50", "id": "e97a07e0eb13c834ba4a3520cd0e5ffac8cd8f7e4c95c38cc6f05f0f9c7e5742", "check": "low-level-calls", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "_pointsBalancesV1", "source_mapping": {"start": 1009, "length": 62, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [29], "starting_column": 5, "ending_column": 67}, "type_specific_fields": {"parent": {"type": "contract", "name": "PowerToken", "source_mapping": {"start": 586, "length": 7970, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262], "starting_column": 1, "ending_column": 2}}}}, {"type": "contract", "name": "PowerToken", "source_mapping": {"start": 586, "length": 7970, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262], "starting_column": 1, "ending_column": 2}}], "description": "PowerToken._pointsBalancesV1 (src/PowerToken.sol#29) is never used in PowerToken (src/PowerToken.sol#13-262)\n", "markdown": "[PowerToken._pointsBalancesV1](src/PowerToken.sol#L29) is never used in [PowerToken](src/PowerToken.sol#L13-L262)\n", "first_markdown_element": "src/PowerToken.sol#L29", "id": "fe562308094e9b35d945ef97f6cf61ff2213efbb95eadb3d124074b60d1e738d", "check": "unused-state", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "ifAdmin", "source_mapping": {"start": 2321, "length": 134, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [45, 46, 47, 48, 49, 50, 51], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1652, "length": 3612, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130], "starting_column": 1, "ending_column": 2}}, "signature": "ifAdmin()"}}], "description": "Modifier TransparentUpgradeableProxy.ifAdmin() (src/upgradeability/TransparentUpgradeableProxy.sol#45-51) does not always execute _; or revert\n", "markdown": "Modifier [TransparentUpgradeableProxy.ifAdmin()](src/upgradeability/TransparentUpgradeableProxy.sol#L45-L51) does not always execute _; or revert\n", "first_markdown_element": "src/upgradeability/TransparentUpgradeableProxy.sol#L45-L51", "id": "5f852f236c7948fdd7fb7db2318ca5b18d8d8feadc82c7cc2dba5c7532e9c5af", "check": "incorrect-modifier", "impact": "Low", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 107, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol", "filename_short": "lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 113, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", "filename_short": "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 114, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 99, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 93, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 193, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [5], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.2", "source_mapping": {"start": 116, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".2"]}}, {"type": "pragma", "name": "^0.8.1", "source_mapping": {"start": 101, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".1"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 108, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 129, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 113, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 105, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 101, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 114, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 109, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 130, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 112, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", "is_dependency": true, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 106, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 125, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 115, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 205, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "is_dependency": true, "lines": [5], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}, {"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/interfaces/IErrors.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/interfaces/IErrors.sol", "filename_short": "src/interfaces/IErrors.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}, {"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/interfaces/IEvents.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/interfaces/IEvents.sol", "filename_short": "src/interfaces/IEvents.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}, {"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/interfaces/IPowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/interfaces/IPowerToken.sol", "filename_short": "src/interfaces/IPowerToken.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}, {"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 117, "length": 23, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}], "description": "5 different versions of Solidity are used:\n\t- Version constraint ^0.8.0 is used by:\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol#4)\n\t\t-^0.8.0 (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#5)\n\t- Version constraint ^0.8.2 is used by:\n\t\t-^0.8.2 (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#4)\n\t- Version constraint ^0.8.1 is used by:\n\t\t-^0.8.1 (lib/openzeppelin-contracts/contracts/utils/Address.sol#4)\n\t- Version constraint ^0.8.20 is used by:\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol#3)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4)\n\t\t-^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#5)\n\t- Version constraint 0.8.22 is used by:\n\t\t-0.8.22 (src/PowerToken.sol#2)\n\t\t-0.8.22 (src/interfaces/IErrors.sol#2)\n\t\t-0.8.22 (src/interfaces/IEvents.sol#2)\n\t\t-0.8.22 (src/interfaces/IPowerToken.sol#2)\n\t\t-0.8.22 (src/upgradeability/TransparentUpgradeableProxy.sol#3)\n", "markdown": "5 different versions of Solidity are used:\n\t- Version constraint ^0.8.0 is used by:\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol#L4)\n\t\t-[^0.8.0](lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L5)\n\t- Version constraint ^0.8.2 is used by:\n\t\t-[^0.8.2](lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L4)\n\t- Version constraint ^0.8.1 is used by:\n\t\t-[^0.8.1](lib/openzeppelin-contracts/contracts/utils/Address.sol#L4)\n\t- Version constraint ^0.8.20 is used by:\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol#L3)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#L4)\n\t\t-[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#L5)\n\t- Version constraint 0.8.22 is used by:\n\t\t-[0.8.22](src/PowerToken.sol#L2)\n\t\t-[0.8.22](src/interfaces/IErrors.sol#L2)\n\t\t-[0.8.22](src/interfaces/IEvents.sol#L2)\n\t\t-[0.8.22](src/interfaces/IPowerToken.sol#L2)\n\t\t-[0.8.22](src/upgradeability/TransparentUpgradeableProxy.sol#L3)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol#L4", "id": "833d4c0d27308e859790e43d8aaf4d92ec08bfb0e2f8faf9eb9d4619d507962d", "check": "pragma", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "migrate", "source_mapping": {"start": 1643, "length": 976, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "PowerToken", "source_mapping": {"start": 521, "length": 4477, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147], "starting_column": 1, "ending_column": 2}}, "signature": "migrate(address[],bytes32[])"}}, {"type": "node", "name": "delete _pointsBalancesV1[user]", "source_mapping": {"start": 2329, "length": 30, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [66], "starting_column": 13, "ending_column": 43}, "type_specific_fields": {"parent": {"type": "function", "name": "migrate", "source_mapping": {"start": 1643, "length": 976, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.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], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "PowerToken", "source_mapping": {"start": 521, "length": 4477, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147], "starting_column": 1, "ending_column": 2}}, "signature": "migrate(address[],bytes32[])"}}}}], "description": "PowerToken.migrate(address[],bytes32[]) (src/PowerToken.sol#48-76) has costly operations inside a loop:\n\t- delete _pointsBalancesV1[user] (src/PowerToken.sol#66)\n", "markdown": "[PowerToken.migrate(address[],bytes32[])](src/PowerToken.sol#L48-L76) has costly operations inside a loop:\n\t- [delete _pointsBalancesV1[user]](src/PowerToken.sol#L66)\n", "first_markdown_element": "src/PowerToken.sol#L48-L76", "id": "025e908856ba391948c15b827ac080c0890d391dec9f404e2b5bd0a128166773", "check": "costly-loop", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 107, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol", "filename_short": "lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 113, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", "filename_short": "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 114, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 99, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 93, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 193, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [5], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Version constraint ^0.8.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#5)\n", "markdown": "Version constraint ^0.8.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L5)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol#L4", "id": "31450e2a9ded72e4da1d1a317a5587f13319e58b11d71cabd6ed095ac760c772", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.2", "source_mapping": {"start": 116, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".2"]}}], "description": "Version constraint ^0.8.2 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- ^0.8.2 (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#4)\n", "markdown": "Version constraint ^0.8.2 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- [^0.8.2](lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L4)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L4", "id": "b56159e50f9b77faa52a4f04491cd9b23a630604640a98dbf81af4e4a2999612", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.1", "source_mapping": {"start": 101, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".1"]}}], "description": "Version constraint ^0.8.1 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- ^0.8.1 (lib/openzeppelin-contracts/contracts/utils/Address.sol#4)\n", "markdown": "Version constraint ^0.8.1 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess\n\t- AbiReencodingHeadOverflowWithStaticArrayCleanup\n\t- DirtyBytesArrayToStorage\n\t- DataLocationChangeInInternalOverride\n\t- NestedCalldataArrayAbiReencodingSizeValidation\n\t- SignedImmutables\n\t- ABIDecodeTwoDimensionalArrayMemory\n\t- KeccakCaching.\nIt is used by:\n\t- [^0.8.1](lib/openzeppelin-contracts/contracts/utils/Address.sol#L4)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/Address.sol#L4", "id": "7187ed79e08d846c778cb7911c3886616fc90fff6d6770bba43a9bf016dc19b1", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 108, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 129, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 113, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 105, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 101, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 114, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 109, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 130, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 112, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", "is_dependency": true, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 106, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 125, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 115, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 205, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "is_dependency": true, "lines": [5], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}], "description": "Version constraint ^0.8.20 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- VerbatimInvalidDeduplication\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess.\nIt is used by:\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol#3)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#5)\n", "markdown": "Version constraint ^0.8.20 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- VerbatimInvalidDeduplication\n\t- FullInlinerNonExpressionSplitArgumentEvaluationOrder\n\t- MissingSideEffectsOnSelectorAccess.\nIt is used by:\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol#L3)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#L5)\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L4", "id": "c973f868117d16124aa76a0a50caff0f1f2188df07edb10da3df778311e6a6f0", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}, {"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/interfaces/IErrors.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/interfaces/IErrors.sol", "filename_short": "src/interfaces/IErrors.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}, {"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/interfaces/IEvents.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/interfaces/IEvents.sol", "filename_short": "src/interfaces/IEvents.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}, {"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/interfaces/IPowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/interfaces/IPowerToken.sol", "filename_short": "src/interfaces/IPowerToken.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}, {"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 117, "length": 23, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}], "description": "Version constraint 0.8.22 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- VerbatimInvalidDeduplication.\nIt is used by:\n\t- 0.8.22 (src/PowerToken.sol#2)\n\t- 0.8.22 (src/interfaces/IErrors.sol#2)\n\t- 0.8.22 (src/interfaces/IEvents.sol#2)\n\t- 0.8.22 (src/interfaces/IPowerToken.sol#2)\n\t- 0.8.22 (src/upgradeability/TransparentUpgradeableProxy.sol#3)\n", "markdown": "Version constraint 0.8.22 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)\n\t- VerbatimInvalidDeduplication.\nIt is used by:\n\t- [0.8.22](src/PowerToken.sol#L2)\n\t- [0.8.22](src/interfaces/IErrors.sol#L2)\n\t- [0.8.22](src/interfaces/IEvents.sol#L2)\n\t- [0.8.22](src/interfaces/IPowerToken.sol#L2)\n\t- [0.8.22](src/upgradeability/TransparentUpgradeableProxy.sol#L3)\n", "first_markdown_element": "src/PowerToken.sol#L2", "id": "906834249e2417e11f183abd25ea7fc53012ba93e7bd3af7b26fbf50fdfa487d", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "sendValue", "source_mapping": {"start": 2647, "length": 312, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [64, 65, 66, 67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 9169, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [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, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "sendValue(address,uint256)"}}, {"type": "node", "name": "(success,None) = recipient.call{value: amount}()", "source_mapping": {"start": 2812, "length": 52, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [67], "starting_column": 9, "ending_column": 61}, "type_specific_fields": {"parent": {"type": "function", "name": "sendValue", "source_mapping": {"start": 2647, "length": 312, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [64, 65, 66, 67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 9169, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [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, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "sendValue(address,uint256)"}}}}], "description": "Low level call in Address.sendValue(address,uint256) (lib/openzeppelin-contracts/contracts/utils/Address.sol#64-69):\n\t- (success,None) = recipient.call{value: amount}() (lib/openzeppelin-contracts/contracts/utils/Address.sol#67)\n", "markdown": "Low level call in [Address.sendValue(address,uint256)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L64-L69):\n\t- [(success,None) = recipient.call{value: amount}()](lib/openzeppelin-contracts/contracts/utils/Address.sol#L67)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/Address.sol#L64-L69", "id": "600e60f72250fe75d9cd2f143865c5d96c5a0dad6381d8102e93f61fbbd94bea", "check": "low-level-calls", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "slitherConstructorConstantVariables", "source_mapping": {"start": 521, "length": 4477, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "PowerToken", "source_mapping": {"start": 521, "length": 4477, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorConstantVariables()"}}, {"type": "node", "name": "MAX_SUPPLY = 1000000000000000000000000000", "source_mapping": {"start": 776, "length": 53, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [24], "starting_column": 5, "ending_column": 58}, "type_specific_fields": {"parent": {"type": "function", "name": "slitherConstructorConstantVariables", "source_mapping": {"start": 521, "length": 4477, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147], "starting_column": 1, "ending_column": 2}, "type_specific_fields": {"parent": {"type": "contract", "name": "PowerToken", "source_mapping": {"start": 521, "length": 4477, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147], "starting_column": 1, "ending_column": 2}}, "signature": "slitherConstructorConstantVariables()"}}}}], "description": "PowerToken.slitherConstructorConstantVariables() (src/PowerToken.sol#13-147) uses literals with too many digits:\n\t- MAX_SUPPLY = 1000000000000000000000000000 (src/PowerToken.sol#24)\n", "markdown": "[PowerToken.slitherConstructorConstantVariables()](src/PowerToken.sol#L13-L147) uses literals with too many digits:\n\t- [MAX_SUPPLY = 1000000000000000000000000000](src/PowerToken.sol#L24)\n", "first_markdown_element": "src/PowerToken.sol#L13-L147", "id": "65dde3f8ec82437db46e79cfdd16f8722a4c172f0d457f4f8ddb14748d7ded90", "check": "too-many-digits", "impact": "Informational", "confidence": "Medium"}, {"elements": [], "description": "The following unused import(s) in src/PowerToken.sol should be removed:\n\t-import {IERC20} from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\"; (src/PowerToken.sol#9)\n", "markdown": "The following unused import(s) in src/PowerToken.sol should be removed:\n\t-import {IERC20} from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\"; (src/PowerToken.sol#9)\n", "first_markdown_element": "", "id": "9d72931b2d6f16931b1e1da097eefc08d832f9be202af9a09ea8fba0d9362fa9", "check": "unused-import", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "admin", "source_mapping": {"start": 2897, "length": 96, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [62, 63, 64], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1652, "length": 3612, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130], "starting_column": 1, "ending_column": 2}}, "signature": "admin()"}}, {"type": "function", "name": "ifAdmin", "source_mapping": {"start": 2321, "length": 134, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [45, 46, 47, 48, 49, 50, 51], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1652, "length": 3612, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130], "starting_column": 1, "ending_column": 2}}, "signature": "ifAdmin()"}}, {"type": "node", "name": "return(uint256,uint256)(0,returndatasize()())", "source_mapping": {"start": 1786, "length": 27, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [42], "starting_column": 17, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "_delegate", "source_mapping": {"start": 948, "length": 895, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 723, "length": 2523, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_delegate(address)"}}}}], "description": "TransparentUpgradeableProxy.admin() (src/upgradeability/TransparentUpgradeableProxy.sol#62-64) calls TransparentUpgradeableProxy.ifAdmin() (src/upgradeability/TransparentUpgradeableProxy.sol#45-51) which halt the execution return(uint256,uint256)(0,returndatasize()()) (lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#42)\n", "markdown": "[TransparentUpgradeableProxy.admin()](src/upgradeability/TransparentUpgradeableProxy.sol#L62-L64) calls [TransparentUpgradeableProxy.ifAdmin()](src/upgradeability/TransparentUpgradeableProxy.sol#L45-L51) which halt the execution [return(uint256,uint256)(0,returndatasize()())](lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#L42)\n", "first_markdown_element": "src/upgradeability/TransparentUpgradeableProxy.sol#L62-L64", "id": "858af63f62423e3072a8e44a12dc50ab58d0dc575e56569fca31e67148872335", "check": "incorrect-return", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "implementation", "source_mapping": {"start": 3453, "length": 129, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [75, 76, 77], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1652, "length": 3612, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130], "starting_column": 1, "ending_column": 2}}, "signature": "implementation()"}}, {"type": "function", "name": "ifAdmin", "source_mapping": {"start": 2321, "length": 134, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [45, 46, 47, 48, 49, 50, 51], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1652, "length": 3612, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130], "starting_column": 1, "ending_column": 2}}, "signature": "ifAdmin()"}}, {"type": "node", "name": "return(uint256,uint256)(0,returndatasize()())", "source_mapping": {"start": 1786, "length": 27, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [42], "starting_column": 17, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "_delegate", "source_mapping": {"start": 948, "length": 895, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 723, "length": 2523, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_delegate(address)"}}}}], "description": "TransparentUpgradeableProxy.implementation() (src/upgradeability/TransparentUpgradeableProxy.sol#75-77) calls TransparentUpgradeableProxy.ifAdmin() (src/upgradeability/TransparentUpgradeableProxy.sol#45-51) which halt the execution return(uint256,uint256)(0,returndatasize()()) (lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#42)\n", "markdown": "[TransparentUpgradeableProxy.implementation()](src/upgradeability/TransparentUpgradeableProxy.sol#L75-L77) calls [TransparentUpgradeableProxy.ifAdmin()](src/upgradeability/TransparentUpgradeableProxy.sol#L45-L51) which halt the execution [return(uint256,uint256)(0,returndatasize()())](lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#L42)\n", "first_markdown_element": "src/upgradeability/TransparentUpgradeableProxy.sol#L75-L77", "id": "85c581823b6de16e39e3cbdeeebf4ebb941a5fb268330eaacac3806dd04668b6", "check": "incorrect-return", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "changeAdmin", "source_mapping": {"start": 3787, "length": 103, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [86, 87, 88], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1652, "length": 3612, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130], "starting_column": 1, "ending_column": 2}}, "signature": "changeAdmin(address)"}}, {"type": "function", "name": "ifAdmin", "source_mapping": {"start": 2321, "length": 134, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [45, 46, 47, 48, 49, 50, 51], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1652, "length": 3612, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130], "starting_column": 1, "ending_column": 2}}, "signature": "ifAdmin()"}}, {"type": "node", "name": "return(uint256,uint256)(0,returndatasize()())", "source_mapping": {"start": 1786, "length": 27, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [42], "starting_column": 17, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "_delegate", "source_mapping": {"start": 948, "length": 895, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 723, "length": 2523, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_delegate(address)"}}}}], "description": "TransparentUpgradeableProxy.changeAdmin(address) (src/upgradeability/TransparentUpgradeableProxy.sol#86-88) calls TransparentUpgradeableProxy.ifAdmin() (src/upgradeability/TransparentUpgradeableProxy.sol#45-51) which halt the execution return(uint256,uint256)(0,returndatasize()()) (lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#42)\n", "markdown": "[TransparentUpgradeableProxy.changeAdmin(address)](src/upgradeability/TransparentUpgradeableProxy.sol#L86-L88) calls [TransparentUpgradeableProxy.ifAdmin()](src/upgradeability/TransparentUpgradeableProxy.sol#L45-L51) which halt the execution [return(uint256,uint256)(0,returndatasize()())](lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#L42)\n", "first_markdown_element": "src/upgradeability/TransparentUpgradeableProxy.sol#L86-L88", "id": "81966beaf527b30e704a0ff38c551fa8e31786612e7191fd8a5249156a3d6334", "check": "incorrect-return", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "upgradeTo", "source_mapping": {"start": 4050, "length": 134, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [95, 96, 97], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1652, "length": 3612, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130], "starting_column": 1, "ending_column": 2}}, "signature": "upgradeTo(address)"}}, {"type": "function", "name": "ifAdmin", "source_mapping": {"start": 2321, "length": 134, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [45, 46, 47, 48, 49, 50, 51], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1652, "length": 3612, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130], "starting_column": 1, "ending_column": 2}}, "signature": "ifAdmin()"}}, {"type": "node", "name": "return(uint256,uint256)(0,returndatasize()())", "source_mapping": {"start": 1786, "length": 27, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [42], "starting_column": 17, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "_delegate", "source_mapping": {"start": 948, "length": 895, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 723, "length": 2523, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_delegate(address)"}}}}], "description": "TransparentUpgradeableProxy.upgradeTo(address) (src/upgradeability/TransparentUpgradeableProxy.sol#95-97) calls TransparentUpgradeableProxy.ifAdmin() (src/upgradeability/TransparentUpgradeableProxy.sol#45-51) which halt the execution return(uint256,uint256)(0,returndatasize()()) (lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#42)\n", "markdown": "[TransparentUpgradeableProxy.upgradeTo(address)](src/upgradeability/TransparentUpgradeableProxy.sol#L95-L97) calls [TransparentUpgradeableProxy.ifAdmin()](src/upgradeability/TransparentUpgradeableProxy.sol#L45-L51) which halt the execution [return(uint256,uint256)(0,returndatasize()())](lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#L42)\n", "first_markdown_element": "src/upgradeability/TransparentUpgradeableProxy.sol#L95-L97", "id": "0af8cc60ef9c2b1138a9c7121d92db3418c118bd004acf879b451c5395cba816", "check": "incorrect-return", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "upgradeToAndCall", "source_mapping": {"start": 4560, "length": 186, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [106, 107, 108, 109, 110, 111], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1652, "length": 3612, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130], "starting_column": 1, "ending_column": 2}}, "signature": "upgradeToAndCall(address,bytes)"}}, {"type": "function", "name": "ifAdmin", "source_mapping": {"start": 2321, "length": 134, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [45, 46, 47, 48, 49, 50, 51], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1652, "length": 3612, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130], "starting_column": 1, "ending_column": 2}}, "signature": "ifAdmin()"}}, {"type": "node", "name": "return(uint256,uint256)(0,returndatasize()())", "source_mapping": {"start": 1786, "length": 27, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [42], "starting_column": 17, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "_delegate", "source_mapping": {"start": 948, "length": 895, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 723, "length": 2523, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_delegate(address)"}}}}], "description": "TransparentUpgradeableProxy.upgradeToAndCall(address,bytes) (src/upgradeability/TransparentUpgradeableProxy.sol#106-111) calls TransparentUpgradeableProxy.ifAdmin() (src/upgradeability/TransparentUpgradeableProxy.sol#45-51) which halt the execution return(uint256,uint256)(0,returndatasize()()) (lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#42)\n", "markdown": "[TransparentUpgradeableProxy.upgradeToAndCall(address,bytes)](src/upgradeability/TransparentUpgradeableProxy.sol#L106-L111) calls [TransparentUpgradeableProxy.ifAdmin()](src/upgradeability/TransparentUpgradeableProxy.sol#L45-L51) which halt the execution [return(uint256,uint256)(0,returndatasize()())](lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#L42)\n", "first_markdown_element": "src/upgradeability/TransparentUpgradeableProxy.sol#L106-L111", "id": "fbdb24b92c44b4863bf7654b3abfa1d9b2f8924b96bf1ef895671e5ee18936ba", "check": "incorrect-return", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "ifAdmin", "source_mapping": {"start": 2321, "length": 134, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [45, 46, 47, 48, 49, 50, 51], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1652, "length": 3612, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130], "starting_column": 1, "ending_column": 2}}, "signature": "ifAdmin()"}}, {"type": "function", "name": "_fallback", "source_mapping": {"start": 2322, "length": 110, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [58, 59, 60, 61], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 723, "length": 2523, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_fallback()"}}, {"type": "node", "name": "return(uint256,uint256)(0,returndatasize()())", "source_mapping": {"start": 1786, "length": 27, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [42], "starting_column": 17, "ending_column": 44}, "type_specific_fields": {"parent": {"type": "function", "name": "_delegate", "source_mapping": {"start": 948, "length": 895, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 723, "length": 2523, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_delegate(address)"}}}}], "description": "TransparentUpgradeableProxy.ifAdmin() (src/upgradeability/TransparentUpgradeableProxy.sol#45-51) calls Proxy._fallback() (lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#58-61) which halt the execution return(uint256,uint256)(0,returndatasize()()) (lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#42)\n", "markdown": "[TransparentUpgradeableProxy.ifAdmin()](src/upgradeability/TransparentUpgradeableProxy.sol#L45-L51) calls [Proxy._fallback()](lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#L58-L61) which halt the execution [return(uint256,uint256)(0,returndatasize()())](lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#L42)\n", "first_markdown_element": "src/upgradeability/TransparentUpgradeableProxy.sol#L45-L51", "id": "282b03a73c1d97a46ca946e2f33c8ecbd9bf584fe50b4b1ad28dd1e9f0946d73", "check": "incorrect-return", "impact": "High", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "newPoints", "source_mapping": {"start": 1911, "length": 17, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [57], "starting_column": 9, "ending_column": 26}, "type_specific_fields": {"parent": {"type": "function", "name": "tip", "source_mapping": {"start": 1633, "length": 1149, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [51, 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": "PowerToken", "source_mapping": {"start": 450, "length": 3048, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.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, 109], "starting_column": 1, "ending_column": 2}}, "signature": "tip(uint256,address,bytes32)"}}}}], "description": "PowerToken.tip(uint256,address,bytes32).newPoints (src/PowerToken.sol#57) is a local variable never initialized\n", "markdown": "[PowerToken.tip(uint256,address,bytes32).newPoints](src/PowerToken.sol#L57) is a local variable never initialized\n", "first_markdown_element": "src/PowerToken.sol#L57", "id": "e30a64edec6f6cf03ba3165b935ca125dc3c3b51d39411335f4d96b3c44a4382", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "variable", "name": "amountToTransfer", "source_mapping": {"start": 1939, "length": 24, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [59], "starting_column": 9, "ending_column": 33}, "type_specific_fields": {"parent": {"type": "function", "name": "tip", "source_mapping": {"start": 1633, "length": 1149, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [51, 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": "PowerToken", "source_mapping": {"start": 450, "length": 3048, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.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, 109], "starting_column": 1, "ending_column": 2}}, "signature": "tip(uint256,address,bytes32)"}}}}], "description": "PowerToken.tip(uint256,address,bytes32).amountToTransfer (src/PowerToken.sol#59) is a local variable never initialized\n", "markdown": "[PowerToken.tip(uint256,address,bytes32).amountToTransfer](src/PowerToken.sol#L59) is a local variable never initialized\n", "first_markdown_element": "src/PowerToken.sol#L59", "id": "fe8826c99bb337b9af320e400ac4dad54f3d3833489d6a775144023ed0c25409", "check": "uninitialized-local", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_grantRole", "source_mapping": {"start": 3217, "length": 348, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [72, 73, 74, 75, 76, 77, 78, 79], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AccessControlEnumerableUpgradeable", "source_mapping": {"start": 592, "length": 3431, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_grantRole(bytes32,address)"}}, {"type": "node", "name": "$._roleMembers[role].add(account)", "source_mapping": {"start": 3491, "length": 33, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [76], "starting_column": 13, "ending_column": 46}, "type_specific_fields": {"parent": {"type": "function", "name": "_grantRole", "source_mapping": {"start": 3217, "length": 348, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [72, 73, 74, 75, 76, 77, 78, 79], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AccessControlEnumerableUpgradeable", "source_mapping": {"start": 592, "length": 3431, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_grantRole(bytes32,address)"}}}}], "description": "AccessControlEnumerableUpgradeable._grantRole(bytes32,address) (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#72-79) ignores return value by $._roleMembers[role].add(account) (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#76)\n", "markdown": "[AccessControlEnumerableUpgradeable._grantRole(bytes32,address)](lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L72-L79) ignores return value by [$._roleMembers[role].add(account)](lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L76)\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L72-L79", "id": "83e34f41ea90795f2a3efc9c29928181d5807716dc9d1e9b3155e8f40977294a", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_revokeRole", "source_mapping": {"start": 3668, "length": 353, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [84, 85, 86, 87, 88, 89, 90, 91], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AccessControlEnumerableUpgradeable", "source_mapping": {"start": 592, "length": 3431, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_revokeRole(bytes32,address)"}}, {"type": "node", "name": "$._roleMembers[role].remove(account)", "source_mapping": {"start": 3944, "length": 36, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [88], "starting_column": 13, "ending_column": 49}, "type_specific_fields": {"parent": {"type": "function", "name": "_revokeRole", "source_mapping": {"start": 3668, "length": 353, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [84, 85, 86, 87, 88, 89, 90, 91], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AccessControlEnumerableUpgradeable", "source_mapping": {"start": 592, "length": 3431, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_revokeRole(bytes32,address)"}}}}], "description": "AccessControlEnumerableUpgradeable._revokeRole(bytes32,address) (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#84-91) ignores return value by $._roleMembers[role].remove(account) (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#88)\n", "markdown": "[AccessControlEnumerableUpgradeable._revokeRole(bytes32,address)](lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L84-L91) ignores return value by [$._roleMembers[role].remove(account)](lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L88)\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L84-L91", "id": "9528a2bd068bba390cbddb5fddc1ba6e37923b7ec12597b6b340cc19cdacc75f", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_upgradeToAndCall", "source_mapping": {"start": 2057, "length": 265, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": true, "lines": [59, 60, 61, 62, 63, 64], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967Upgrade", "source_mapping": {"start": 517, "length": 5526, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": true, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157], "starting_column": 1, "ending_column": 2}}, "signature": "_upgradeToAndCall(address,bytes,bool)"}}, {"type": "node", "name": "Address.functionDelegateCall(newImplementation,data)", "source_mapping": {"start": 2252, "length": 53, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": true, "lines": [62], "starting_column": 13, "ending_column": 66}, "type_specific_fields": {"parent": {"type": "function", "name": "_upgradeToAndCall", "source_mapping": {"start": 2057, "length": 265, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": true, "lines": [59, 60, 61, 62, 63, 64], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967Upgrade", "source_mapping": {"start": 517, "length": 5526, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": true, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157], "starting_column": 1, "ending_column": 2}}, "signature": "_upgradeToAndCall(address,bytes,bool)"}}}}], "description": "ERC1967Upgrade._upgradeToAndCall(address,bytes,bool) (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#59-64) ignores return value by Address.functionDelegateCall(newImplementation,data) (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#62)\n", "markdown": "[ERC1967Upgrade._upgradeToAndCall(address,bytes,bool)](lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L59-L64) ignores return value by [Address.functionDelegateCall(newImplementation,data)](lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L62)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L59-L64", "id": "d31b572854128249d2461e59e74788850c6855554c5e4e2c73dea9ff0e546955", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "_upgradeBeaconToAndCall", "source_mapping": {"start": 5728, "length": 313, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": true, "lines": [150, 151, 152, 153, 154, 155, 156], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967Upgrade", "source_mapping": {"start": 517, "length": 5526, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": true, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157], "starting_column": 1, "ending_column": 2}}, "signature": "_upgradeBeaconToAndCall(address,bytes,bool)"}}, {"type": "node", "name": "Address.functionDelegateCall(IBeacon(newBeacon).implementation(),data)", "source_mapping": {"start": 5953, "length": 71, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": true, "lines": [154], "starting_column": 13, "ending_column": 84}, "type_specific_fields": {"parent": {"type": "function", "name": "_upgradeBeaconToAndCall", "source_mapping": {"start": 5728, "length": 313, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": true, "lines": [150, 151, 152, 153, 154, 155, 156], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC1967Upgrade", "source_mapping": {"start": 517, "length": 5526, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": true, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157], "starting_column": 1, "ending_column": 2}}, "signature": "_upgradeBeaconToAndCall(address,bytes,bool)"}}}}], "description": "ERC1967Upgrade._upgradeBeaconToAndCall(address,bytes,bool) (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#150-156) ignores return value by Address.functionDelegateCall(IBeacon(newBeacon).implementation(),data) (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#154)\n", "markdown": "[ERC1967Upgrade._upgradeBeaconToAndCall(address,bytes,bool)](lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L150-L156) ignores return value by [Address.functionDelegateCall(IBeacon(newBeacon).implementation(),data)](lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L154)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L150-L156", "id": "c84131ce88bf50fddfe31dea50ca5968ad15e3318e69b3e35dc995d0a01f1cb0", "check": "unused-return", "impact": "Medium", "confidence": "Medium"}, {"elements": [{"type": "function", "name": "ifAdmin", "source_mapping": {"start": 2321, "length": 134, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [45, 46, 47, 48, 49, 50, 51], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1652, "length": 3612, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130], "starting_column": 1, "ending_column": 2}}, "signature": "ifAdmin()"}}], "description": "Modifier TransparentUpgradeableProxy.ifAdmin() (src/upgradeability/TransparentUpgradeableProxy.sol#45-51) does not always execute _; or revert", "markdown": "Modifier [TransparentUpgradeableProxy.ifAdmin()](src/upgradeability/TransparentUpgradeableProxy.sol#L45-L51) does not always execute _; or revert", "first_markdown_element": "src/upgradeability/TransparentUpgradeableProxy.sol#L45-L51", "id": "5530811b8f31a92cde9528b8c17ea217ddffa4a1218c85cf7cd615221ec4c0bd", "check": "incorrect-modifier", "impact": "Low", "confidence": "High"}, {"elements": [{"type": "function", "name": "_delegate", "source_mapping": {"start": 948, "length": 895, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 723, "length": 2523, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_delegate(address)"}}, {"type": "node", "name": "", "source_mapping": {"start": 1018, "length": 819, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "_delegate", "source_mapping": {"start": 948, "length": 895, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Proxy", "source_mapping": {"start": 723, "length": 2523, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_delegate(address)"}}}}], "description": "Proxy._delegate(address) (lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#22-45) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#23-44)\n", "markdown": "[Proxy._delegate(address)](lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#L22-L45) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#L23-L44)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#L22-L45", "id": "33cc230cee4ef2fd623b0a07b2d5001d8c036105a8228b9277310a276456c20b", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "_revert", "source_mapping": {"start": 8821, "length": 540, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 9169, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [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, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "_revert(bytes,string)"}}, {"type": "node", "name": "", "source_mapping": {"start": 9152, "length": 142, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [236, 237, 238, 239], "starting_column": 13, "ending_column": 14}, "type_specific_fields": {"parent": {"type": "function", "name": "_revert", "source_mapping": {"start": 8821, "length": 540, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 9169, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [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, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "_revert(bytes,string)"}}}}], "description": "Address._revert(bytes,string) (lib/openzeppelin-contracts/contracts/utils/Address.sol#231-243) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/Address.sol#236-239)\n", "markdown": "[Address._revert(bytes,string)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L231-L243) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts/contracts/utils/Address.sol#L236-L239)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/Address.sol#L231-L243", "id": "202587d026bc154cc0001a634101f20caa34ef114975710d739f5c8c36d92e7c", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "getAddressSlot", "source_mapping": {"start": 1859, "length": 190, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [62, 63, 64, 65, 66, 67], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1420, "length": 2685, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "starting_column": 1, "ending_column": 2}}, "signature": "getAddressSlot(bytes32)"}}, {"type": "node", "name": "", "source_mapping": {"start": 1996, "length": 47, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [64, 65, 66], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "getAddressSlot", "source_mapping": {"start": 1859, "length": 190, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [62, 63, 64, 65, 66, 67], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1420, "length": 2685, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "starting_column": 1, "ending_column": 2}}, "signature": "getAddressSlot(bytes32)"}}}}], "description": "StorageSlot.getAddressSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#62-67) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#64-66)\n", "markdown": "[StorageSlot.getAddressSlot(bytes32)](lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L62-L67) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L64-L66)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L62-L67", "id": "be79897c96a1ad4e7485364e6bf0b216927ccdec167bc4a7ee5ff7c0ef6c58d6", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "getBooleanSlot", "source_mapping": {"start": 2147, "length": 190, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [72, 73, 74, 75, 76, 77], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1420, "length": 2685, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "starting_column": 1, "ending_column": 2}}, "signature": "getBooleanSlot(bytes32)"}}, {"type": "node", "name": "", "source_mapping": {"start": 2284, "length": 47, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [74, 75, 76], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "getBooleanSlot", "source_mapping": {"start": 2147, "length": 190, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [72, 73, 74, 75, 76, 77], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1420, "length": 2685, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "starting_column": 1, "ending_column": 2}}, "signature": "getBooleanSlot(bytes32)"}}}}], "description": "StorageSlot.getBooleanSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#72-77) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#74-76)\n", "markdown": "[StorageSlot.getBooleanSlot(bytes32)](lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L72-L77) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L74-L76)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L72-L77", "id": "0d7f6fe7e8c5456972a36f626bacb29d62be6b99b66682169037f665ac8a92cd", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "getBytes32Slot", "source_mapping": {"start": 2435, "length": 190, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1420, "length": 2685, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "starting_column": 1, "ending_column": 2}}, "signature": "getBytes32Slot(bytes32)"}}, {"type": "node", "name": "", "source_mapping": {"start": 2572, "length": 47, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [84, 85, 86], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "getBytes32Slot", "source_mapping": {"start": 2435, "length": 190, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [82, 83, 84, 85, 86, 87], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1420, "length": 2685, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "starting_column": 1, "ending_column": 2}}, "signature": "getBytes32Slot(bytes32)"}}}}], "description": "StorageSlot.getBytes32Slot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#82-87) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#84-86)\n", "markdown": "[StorageSlot.getBytes32Slot(bytes32)](lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L82-L87) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L84-L86)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L82-L87", "id": "3bbe15ec30e3defe6433fe40e470546c08efe18d159fac6e7e045bee0ffe704f", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "getUint256Slot", "source_mapping": {"start": 2723, "length": 190, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [92, 93, 94, 95, 96, 97], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1420, "length": 2685, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "starting_column": 1, "ending_column": 2}}, "signature": "getUint256Slot(bytes32)"}}, {"type": "node", "name": "", "source_mapping": {"start": 2860, "length": 47, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [94, 95, 96], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "getUint256Slot", "source_mapping": {"start": 2723, "length": 190, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [92, 93, 94, 95, 96, 97], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1420, "length": 2685, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "starting_column": 1, "ending_column": 2}}, "signature": "getUint256Slot(bytes32)"}}}}], "description": "StorageSlot.getUint256Slot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#92-97) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#94-96)\n", "markdown": "[StorageSlot.getUint256Slot(bytes32)](lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L92-L97) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L94-L96)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L92-L97", "id": "e0999a78e2a4800028a800b8f94e81bd4b1fcbb9c2c0021af31da78c22e747e4", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "getStringSlot", "source_mapping": {"start": 3010, "length": 188, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [102, 103, 104, 105, 106, 107], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1420, "length": 2685, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "starting_column": 1, "ending_column": 2}}, "signature": "getStringSlot(bytes32)"}}, {"type": "node", "name": "", "source_mapping": {"start": 3145, "length": 47, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [104, 105, 106], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "getStringSlot", "source_mapping": {"start": 3010, "length": 188, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [102, 103, 104, 105, 106, 107], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1420, "length": 2685, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "starting_column": 1, "ending_column": 2}}, "signature": "getStringSlot(bytes32)"}}}}], "description": "StorageSlot.getStringSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#102-107) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#104-106)\n", "markdown": "[StorageSlot.getStringSlot(bytes32)](lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L102-L107) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L104-L106)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L102-L107", "id": "aa109531561bb7c474af38c302b5e97d1a5d82d1277f986f6974185512a77c54", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "getStringSlot", "source_mapping": {"start": 3310, "length": 202, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [112, 113, 114, 115, 116, 117], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1420, "length": 2685, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "starting_column": 1, "ending_column": 2}}, "signature": "getStringSlot(string)"}}, {"type": "node", "name": "", "source_mapping": {"start": 3453, "length": 53, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [114, 115, 116], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "getStringSlot", "source_mapping": {"start": 3310, "length": 202, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [112, 113, 114, 115, 116, 117], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1420, "length": 2685, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "starting_column": 1, "ending_column": 2}}, "signature": "getStringSlot(string)"}}}}], "description": "StorageSlot.getStringSlot(string) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#112-117) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#114-116)\n", "markdown": "[StorageSlot.getStringSlot(string)](lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L112-L117) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L114-L116)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L112-L117", "id": "277394614196fa9d2a2210b3b3d6e5d01cdff4e0f9062edfaaa0708d20fb45c4", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "getBytesSlot", "source_mapping": {"start": 3608, "length": 186, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [122, 123, 124, 125, 126, 127], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1420, "length": 2685, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "starting_column": 1, "ending_column": 2}}, "signature": "getBytesSlot(bytes32)"}}, {"type": "node", "name": "", "source_mapping": {"start": 3741, "length": 47, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [124, 125, 126], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "getBytesSlot", "source_mapping": {"start": 3608, "length": 186, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [122, 123, 124, 125, 126, 127], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1420, "length": 2685, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "starting_column": 1, "ending_column": 2}}, "signature": "getBytesSlot(bytes32)"}}}}], "description": "StorageSlot.getBytesSlot(bytes32) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#122-127) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#124-126)\n", "markdown": "[StorageSlot.getBytesSlot(bytes32)](lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L122-L127) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L124-L126)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L122-L127", "id": "ef0ce36b4f40431be76718e44256f3639ad3d3fd35d174658f3e92e0c85632fc", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "getBytesSlot", "source_mapping": {"start": 3904, "length": 199, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [132, 133, 134, 135, 136, 137], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1420, "length": 2685, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "starting_column": 1, "ending_column": 2}}, "signature": "getBytesSlot(bytes)"}}, {"type": "node", "name": "", "source_mapping": {"start": 4044, "length": 53, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [134, 135, 136], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "getBytesSlot", "source_mapping": {"start": 3904, "length": 199, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [132, 133, 134, 135, 136, 137], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "StorageSlot", "source_mapping": {"start": 1420, "length": 2685, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138], "starting_column": 1, "ending_column": 2}}, "signature": "getBytesSlot(bytes)"}}}}], "description": "StorageSlot.getBytesSlot(bytes) (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#132-137) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#134-136)\n", "markdown": "[StorageSlot.getBytesSlot(bytes)](lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L132-L137) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L134-L136)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L132-L137", "id": "316ed7d8a2c06e360b9b61f71d043203da6763fc4045f24d8e722a8aac442ebc", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "_getAccessControlStorage", "source_mapping": {"start": 2787, "length": 177, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "is_dependency": true, "lines": [67, 68, 69, 70, 71], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AccessControlUpgradeable", "source_mapping": {"start": 2090, "length": 6192, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "is_dependency": true, "lines": [50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233], "starting_column": 1, "ending_column": 2}}, "signature": "_getAccessControlStorage()"}}, {"type": "node", "name": "", "source_mapping": {"start": 2887, "length": 71, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "is_dependency": true, "lines": [68, 69, 70], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "_getAccessControlStorage", "source_mapping": {"start": 2787, "length": 177, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "is_dependency": true, "lines": [67, 68, 69, 70, 71], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AccessControlUpgradeable", "source_mapping": {"start": 2090, "length": 6192, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "is_dependency": true, "lines": [50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233], "starting_column": 1, "ending_column": 2}}, "signature": "_getAccessControlStorage()"}}}}], "description": "AccessControlUpgradeable._getAccessControlStorage() (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#67-71) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#68-70)\n", "markdown": "[AccessControlUpgradeable._getAccessControlStorage()](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L67-L71) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L68-L70)\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L67-L71", "id": "feb1b112432398f517a6ab9498fbf47ee9b18f7231f726720e343a8e968f4cb9", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "_getAccessControlEnumerableStorage", "source_mapping": {"start": 1250, "length": 207, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [25, 26, 27, 28, 29], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AccessControlEnumerableUpgradeable", "source_mapping": {"start": 592, "length": 3431, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_getAccessControlEnumerableStorage()"}}, {"type": "node", "name": "", "source_mapping": {"start": 1370, "length": 81, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [26, 27, 28], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "_getAccessControlEnumerableStorage", "source_mapping": {"start": 1250, "length": 207, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [25, 26, 27, 28, 29], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AccessControlEnumerableUpgradeable", "source_mapping": {"start": 592, "length": 3431, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "_getAccessControlEnumerableStorage()"}}}}], "description": "AccessControlEnumerableUpgradeable._getAccessControlEnumerableStorage() (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#25-29) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#26-28)\n", "markdown": "[AccessControlEnumerableUpgradeable._getAccessControlEnumerableStorage()](lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L25-L29) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L26-L28)\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L25-L29", "id": "a7062757af5bcd35de30901b68c2103b68910d97eab291ff4d1a240bd926aeb5", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "_getInitializableStorage", "source_mapping": {"start": 8737, "length": 170, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "is_dependency": true, "lines": [223, 224, 225, 226, 227], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Initializable", "source_mapping": {"start": 2349, "length": 6560, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "is_dependency": true, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228], "starting_column": 1, "ending_column": 2}}, "signature": "_getInitializableStorage()"}}, {"type": "node", "name": "", "source_mapping": {"start": 8837, "length": 64, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "is_dependency": true, "lines": [224, 225, 226], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "_getInitializableStorage", "source_mapping": {"start": 8737, "length": 170, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "is_dependency": true, "lines": [223, 224, 225, 226, 227], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Initializable", "source_mapping": {"start": 2349, "length": 6560, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "is_dependency": true, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228], "starting_column": 1, "ending_column": 2}}, "signature": "_getInitializableStorage()"}}}}], "description": "Initializable._getInitializableStorage() (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#223-227) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#224-226)\n", "markdown": "[Initializable._getInitializableStorage()](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#L223-L227) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#L224-L226)\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#L223-L227", "id": "911d8d3c1b30e2cb09b79e470476efb16b9731e2b07d7bcc9f7deedbbe99b8b3", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "_getERC20Storage", "source_mapping": {"start": 2242, "length": 153, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "is_dependency": true, "lines": [51, 52, 53, 54, 55], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC20Upgradeable", "source_mapping": {"start": 1576, "length": 10896, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "is_dependency": true, "lines": [35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341], "starting_column": 1, "ending_column": 2}}, "signature": "_getERC20Storage()"}}, {"type": "node", "name": "", "source_mapping": {"start": 2326, "length": 63, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "is_dependency": true, "lines": [52, 53, 54], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "_getERC20Storage", "source_mapping": {"start": 2242, "length": 153, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "is_dependency": true, "lines": [51, 52, 53, 54, 55], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC20Upgradeable", "source_mapping": {"start": 1576, "length": 10896, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "is_dependency": true, "lines": [35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341], "starting_column": 1, "ending_column": 2}}, "signature": "_getERC20Storage()"}}}}], "description": "ERC20Upgradeable._getERC20Storage() (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#51-55) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#52-54)\n", "markdown": "[ERC20Upgradeable._getERC20Storage()](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L51-L55) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L52-L54)\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L51-L55", "id": "1828414e2f8ae209901a6752845058f324fa3d4457156d35ce59f3e2deacbd25", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "values", "source_mapping": {"start": 7776, "length": 300, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "is_dependency": true, "lines": [219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "EnumerableSet", "source_mapping": {"start": 1330, "length": 11640, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "is_dependency": true, "lines": [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378], "starting_column": 1, "ending_column": 2}}, "signature": "values(EnumerableSet.Bytes32Set)"}}, {"type": "node", "name": "", "source_mapping": {"start": 7998, "length": 48, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "is_dependency": true, "lines": [224, 225, 226], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "values", "source_mapping": {"start": 7776, "length": 300, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "is_dependency": true, "lines": [219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "EnumerableSet", "source_mapping": {"start": 1330, "length": 11640, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "is_dependency": true, "lines": [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378], "starting_column": 1, "ending_column": 2}}, "signature": "values(EnumerableSet.Bytes32Set)"}}}}], "description": "EnumerableSet.values(EnumerableSet.Bytes32Set) (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#219-229) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#224-226)\n", "markdown": "[EnumerableSet.values(EnumerableSet.Bytes32Set)](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#L219-L229) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#L224-L226)\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#L219-L229", "id": "e28450e79a3e4a686a65b30f49cd00fd738ebcfe2771156fbe2e9366b9658704", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "values", "source_mapping": {"start": 10270, "length": 300, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "is_dependency": true, "lines": [293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "EnumerableSet", "source_mapping": {"start": 1330, "length": 11640, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "is_dependency": true, "lines": [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378], "starting_column": 1, "ending_column": 2}}, "signature": "values(EnumerableSet.AddressSet)"}}, {"type": "node", "name": "", "source_mapping": {"start": 10492, "length": 48, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "is_dependency": true, "lines": [298, 299, 300], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "values", "source_mapping": {"start": 10270, "length": 300, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "is_dependency": true, "lines": [293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "EnumerableSet", "source_mapping": {"start": 1330, "length": 11640, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "is_dependency": true, "lines": [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378], "starting_column": 1, "ending_column": 2}}, "signature": "values(EnumerableSet.AddressSet)"}}}}], "description": "EnumerableSet.values(EnumerableSet.AddressSet) (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#293-303) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#298-300)\n", "markdown": "[EnumerableSet.values(EnumerableSet.AddressSet)](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#L293-L303) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#L298-L300)\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#L293-L303", "id": "1b31e6e17a9cc23e925f64a765c61771d24598c86b2e252eb491a81cd3670f54", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "values", "source_mapping": {"start": 12671, "length": 297, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "is_dependency": true, "lines": [367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "EnumerableSet", "source_mapping": {"start": 1330, "length": 11640, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "is_dependency": true, "lines": [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378], "starting_column": 1, "ending_column": 2}}, "signature": "values(EnumerableSet.UintSet)"}}, {"type": "node", "name": "", "source_mapping": {"start": 12890, "length": 48, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "is_dependency": true, "lines": [372, 373, 374], "starting_column": 9, "ending_column": 10}, "type_specific_fields": {"parent": {"type": "function", "name": "values", "source_mapping": {"start": 12671, "length": 297, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "is_dependency": true, "lines": [367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "EnumerableSet", "source_mapping": {"start": 1330, "length": 11640, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "is_dependency": true, "lines": [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378], "starting_column": 1, "ending_column": 2}}, "signature": "values(EnumerableSet.UintSet)"}}}}], "description": "EnumerableSet.values(EnumerableSet.UintSet) (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#367-377) uses assembly\n\t- INLINE ASM (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#372-374)\n", "markdown": "[EnumerableSet.values(EnumerableSet.UintSet)](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#L367-L377) uses assembly\n\t- [INLINE ASM](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#L372-L374)\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#L367-L377", "id": "b3ec8675f01bf42c2e89e7d6168c5669c90f0f9eeb4b1f9223957506b46db59c", "check": "assembly", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}, {"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/interfaces/IErrors.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/interfaces/IErrors.sol", "filename_short": "src/interfaces/IErrors.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}, {"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/interfaces/IEvents.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/interfaces/IEvents.sol", "filename_short": "src/interfaces/IEvents.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}, {"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/interfaces/IPowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/interfaces/IPowerToken.sol", "filename_short": "src/interfaces/IPowerToken.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}, {"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 117, "length": 23, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 107, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol", "filename_short": "lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 113, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", "filename_short": "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 114, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 99, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 93, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 193, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [5], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}, {"type": "pragma", "name": "^0.8.1", "source_mapping": {"start": 101, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".1"]}}, {"type": "pragma", "name": "^0.8.2", "source_mapping": {"start": 116, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".2"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 108, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 129, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 113, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 105, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 101, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 114, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 109, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 130, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 112, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", "is_dependency": true, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 106, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 125, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 115, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}, {"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 205, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "is_dependency": true, "lines": [5], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}], "description": "Different versions of Solidity are used:\n\t- Version used: ['0.8.22', '^0.8.0', '^0.8.1', '^0.8.2', '^0.8.20']\n\t- 0.8.22 (src/PowerToken.sol#2)\n\t- 0.8.22 (src/interfaces/IErrors.sol#2)\n\t- 0.8.22 (src/interfaces/IEvents.sol#2)\n\t- 0.8.22 (src/interfaces/IPowerToken.sol#2)\n\t- 0.8.22 (src/upgradeability/TransparentUpgradeableProxy.sol#3)\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol#4)\n\t- ^0.8.0 (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#5)\n\t- ^0.8.1 (lib/openzeppelin-contracts/contracts/utils/Address.sol#4)\n\t- ^0.8.2 (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol#3)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4)\n\t- ^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#5)\n", "markdown": "Different versions of Solidity are used:\n\t- Version used: ['0.8.22', '^0.8.0', '^0.8.1', '^0.8.2', '^0.8.20']\n\t- [0.8.22](src/PowerToken.sol#L2)\n\t- [0.8.22](src/interfaces/IErrors.sol#L2)\n\t- [0.8.22](src/interfaces/IEvents.sol#L2)\n\t- [0.8.22](src/interfaces/IPowerToken.sol#L2)\n\t- [0.8.22](src/upgradeability/TransparentUpgradeableProxy.sol#L3)\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol#L4)\n\t- [^0.8.0](lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L5)\n\t- [^0.8.1](lib/openzeppelin-contracts/contracts/utils/Address.sol#L4)\n\t- [^0.8.2](lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol#L3)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#L4)\n\t- [^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#L5)\n", "first_markdown_element": "src/PowerToken.sol#L2", "id": "b9934e107a92cfab45cb65c18f8c8c973b9a651340eae70c62c042ccb626b4ba", "check": "pragma", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "_admin", "source_mapping": {"start": 4807, "length": 93, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [116, 117, 118], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1652, "length": 3612, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130], "starting_column": 1, "ending_column": 2}}, "signature": "_admin()"}}], "description": "TransparentUpgradeableProxy._admin() (src/upgradeability/TransparentUpgradeableProxy.sol#116-118) is never used and should be removed\n", "markdown": "[TransparentUpgradeableProxy._admin()](src/upgradeability/TransparentUpgradeableProxy.sol#L116-L118) is never used and should be removed\n", "first_markdown_element": "src/upgradeability/TransparentUpgradeableProxy.sol#L116-L118", "id": "43666b6a0b32a3c2fdfac7caa3388ea05984e7c9e1c3630723a690abfee4b734", "check": "dead-code", "impact": "Informational", "confidence": "Medium"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 107, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol", "filename_short": "lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol#L4) allows old versions\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol#L4", "id": "726ddea96981d94ba10d3af2c3aeff02489c17b3ecb50d228d9af12039303f8c", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 113, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", "filename_short": "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol#L4) allows old versions\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol#L4", "id": "bb841581212eddeca7133fbfa44e364b7e14cd91b25ca41f94c5552c67a4bbf7", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 114, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol#L4) allows old versions\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol#L4", "id": "563c74c739bb56f9b679a9a0f0ac210f3ccb6ae00a2674fd5d0b7727d4b1b9e8", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.2", "source_mapping": {"start": 116, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".2"]}}], "description": "Pragma version^0.8.2 (lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.2](lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L4) allows old versions\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol#L4", "id": "02eed3449244fedd146c91b5ff871589873168b674af31a84b7ca0193b77f096", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 99, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#L4) allows old versions\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol#L4", "id": "8f26620bba00ded99b510717e5d54782f6c43f77daa0eece6a354df854cbe914", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 93, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.0](lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol#L4) allows old versions\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol#L4", "id": "04012c49d27fdd4f11a0a128ce5d5bb6fcdc1b85b6ff689e30bc4fdd18da090e", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.1", "source_mapping": {"start": 101, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".1"]}}], "description": "Pragma version^0.8.1 (lib/openzeppelin-contracts/contracts/utils/Address.sol#4) allows old versions\n", "markdown": "Pragma version[^0.8.1](lib/openzeppelin-contracts/contracts/utils/Address.sol#L4) allows old versions\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/Address.sol#L4", "id": "84365357528b0c8be3876e3ef8d18e1e9f211531691821a5e44345b7ca12c310", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.0", "source_mapping": {"start": 193, "length": 23, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", "is_dependency": true, "lines": [5], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".0"]}}], "description": "Pragma version^0.8.0 (lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#5) allows old versions\n", "markdown": "Pragma version[^0.8.0](lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L5) allows old versions\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol#L5", "id": "c02696983ea1394e52785c70123ff4b0c98f8cf8e5d24a0afe41ec23382376a5", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 108, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}], "description": "Pragma version^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L4", "id": "281ef0eed482aa12236a7129d185118f4910a128955f8eb96554ce4b3c92e2b8", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 129, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}], "description": "Pragma version^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L4", "id": "4d2e76747f698d6faec39d670af4a7b28cd4da81611f9f15a31150977495288c", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 113, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}], "description": "Pragma version^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#L4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol#L4", "id": "b34871432b0e8b787c13df477d488fb4ab851efb8c989d88d791b0ec0166bfba", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 105, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}], "description": "Pragma version^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L4", "id": "8b478dd257baf28de26e2e8fec40fc0744ef79012be8f3677fdefe2b8221c9c5", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 101, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}], "description": "Pragma version^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L4", "id": "e319d8e6500736a0a5b6ff90db42dbf9e32ef7b91a721e7b52fa8005ee7aa547", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 114, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}], "description": "Pragma version^0.8.20 (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[^0.8.20](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L4", "id": "d7dfffd72f2359d2bf8c7b8ad9110a345d6d461aa984add20c4cf0b2e4cc3aad", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 109, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}], "description": "Pragma version^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol#4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol#L4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol#L4", "id": "7995b1a1f2648e7437dbe5580e91bd043b60ec7dd94159772736936d368e1df1", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 130, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}], "description": "Pragma version^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol#4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol#L4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/access/extensions/IAccessControlEnumerable.sol#L4", "id": "6b30c8b9c01ae6bff73bd245255a11c00b4a17eb415ee760183a1f3d61b057c4", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 112, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", "is_dependency": true, "lines": [3], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}], "description": "Pragma version^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol#3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol#L3", "id": "f82024db9393d3e2a9fadbcfc0ff029b7e2f79aae0fb434087209e1b33be7c61", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 106, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}], "description": "Pragma version^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#L4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#L4", "id": "9fb4c602bb97dbe1a57c7d5d3d7fa9e8f0d03816af5fff05e396f31b403464e9", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 125, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}], "description": "Pragma version^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#L4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol#L4", "id": "03bc06ddc08c7d607d9d83b273dfb7be8fced9c0100c8f338d16524ad3c43f84", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 115, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", "is_dependency": true, "lines": [4], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}], "description": "Pragma version^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#L4) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol#L4", "id": "f2cba9bc39673c539f1eacdf1a684ceddffec4381dc6ad02f6fb4a7bad6e01fe", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "^0.8.20", "source_mapping": {"start": 205, "length": 24, "filename_relative": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol", "is_dependency": true, "lines": [5], "starting_column": 1, "ending_column": 25}, "type_specific_fields": {"directive": ["solidity", "^", "0.8", ".20"]}}], "description": "Pragma version^0.8.20 (lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#5) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[^0.8.20](lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#L5) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol#L5", "id": "e1daa51a780eb75c966c966b28e1a9738ab658b4529269221199634f7320a04e", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/PowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/PowerToken.sol", "filename_short": "src/PowerToken.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}], "description": "Pragma version0.8.22 (src/PowerToken.sol#2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[0.8.22](src/PowerToken.sol#L2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "src/PowerToken.sol#L2", "id": "55aa2259bd9a0b87448813f2fdce8ad6e2df3ebaace8cd98dc51321a24c0f1a9", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/interfaces/IErrors.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/interfaces/IErrors.sol", "filename_short": "src/interfaces/IErrors.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}], "description": "Pragma version0.8.22 (src/interfaces/IErrors.sol#2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[0.8.22](src/interfaces/IErrors.sol#L2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "src/interfaces/IErrors.sol#L2", "id": "82b31939098787d830395e05e66c6246c823ffd4a663eca0ca79c0d8e9dd0fe9", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/interfaces/IEvents.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/interfaces/IEvents.sol", "filename_short": "src/interfaces/IEvents.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}], "description": "Pragma version0.8.22 (src/interfaces/IEvents.sol#2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[0.8.22](src/interfaces/IEvents.sol#L2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "src/interfaces/IEvents.sol#L2", "id": "e3e0b84f1f3e4d96a9c20c9cbc6b911e5b4e4139bbba2102f1cbad6820176576", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 32, "length": 23, "filename_relative": "src/interfaces/IPowerToken.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/interfaces/IPowerToken.sol", "filename_short": "src/interfaces/IPowerToken.sol", "is_dependency": false, "lines": [2], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}], "description": "Pragma version0.8.22 (src/interfaces/IPowerToken.sol#2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[0.8.22](src/interfaces/IPowerToken.sol#L2) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "src/interfaces/IPowerToken.sol#L2", "id": "d0db62958bad6cf4adc9c479f177799f367152633c9fc776b5c190bdd3f93073", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "pragma", "name": "0.8.22", "source_mapping": {"start": 117, "length": 23, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [3], "starting_column": 1, "ending_column": 24}, "type_specific_fields": {"directive": ["solidity", "0.8", ".22"]}}], "description": "Pragma version0.8.22 (src/upgradeability/TransparentUpgradeableProxy.sol#3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "markdown": "Pragma version[0.8.22](src/upgradeability/TransparentUpgradeableProxy.sol#L3) necessitates a version too recent to be trusted. Consider deploying with 0.8.18.\n", "first_markdown_element": "src/upgradeability/TransparentUpgradeableProxy.sol#L3", "id": "d938d61fa27e4f7901060cf93974fb3d5a165c4c643236969be5a4d2e8033653", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [], "description": "solc-0.8.22 is not recommended for deployment\n", "markdown": "solc-0.8.22 is not recommended for deployment\n", "first_markdown_element": "", "id": "2584eed3f1a6c37118da98709458a611a90fc5486a349e6fad8b5af8d201ac98", "check": "solc-version", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "sendValue", "source_mapping": {"start": 2647, "length": 312, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [64, 65, 66, 67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 9169, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [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, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "sendValue(address,uint256)"}}, {"type": "node", "name": "(success) = recipient.call{value: amount}()", "source_mapping": {"start": 2812, "length": 52, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [67], "starting_column": 9, "ending_column": 61}, "type_specific_fields": {"parent": {"type": "function", "name": "sendValue", "source_mapping": {"start": 2647, "length": 312, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [64, 65, 66, 67, 68, 69], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 9169, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [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, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "sendValue(address,uint256)"}}}}], "description": "Low level call in Address.sendValue(address,uint256) (lib/openzeppelin-contracts/contracts/utils/Address.sol#64-69):\n\t- (success) = recipient.call{value: amount}() (lib/openzeppelin-contracts/contracts/utils/Address.sol#67)\n", "markdown": "Low level call in [Address.sendValue(address,uint256)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L64-L69):\n\t- [(success) = recipient.call{value: amount}()](lib/openzeppelin-contracts/contracts/utils/Address.sol#L67)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/Address.sol#L64-L69", "id": "5c75205a7d43f30e3a1e272f93f17822d0b339b8f6815cfa4e1585323cff1305", "check": "low-level-calls", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "functionCallWithValue", "source_mapping": {"start": 5165, "length": 446, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 9169, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [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, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "functionCallWithValue(address,bytes,uint256,string)"}}, {"type": "node", "name": "(success,returndata) = target.call{value: value}(data)", "source_mapping": {"start": 5445, "length": 73, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [135], "starting_column": 9, "ending_column": 82}, "type_specific_fields": {"parent": {"type": "function", "name": "functionCallWithValue", "source_mapping": {"start": 5165, "length": 446, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [128, 129, 130, 131, 132, 133, 134, 135, 136, 137], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 9169, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [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, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "functionCallWithValue(address,bytes,uint256,string)"}}}}], "description": "Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (lib/openzeppelin-contracts/contracts/utils/Address.sol#128-137):\n\t- (success,returndata) = target.call{value: value}(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#135)\n", "markdown": "Low level call in [Address.functionCallWithValue(address,bytes,uint256,string)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L128-L137):\n\t- [(success,returndata) = target.call{value: value}(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L135)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/Address.sol#L128-L137", "id": "117f0e40fe1352d1526a3c30c36971a0228cffa749da9528fa1d65423334e755", "check": "low-level-calls", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "functionStaticCall", "source_mapping": {"start": 6169, "length": 326, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [155, 156, 157, 158, 159, 160, 161, 162], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 9169, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [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, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "functionStaticCall(address,bytes,string)"}}, {"type": "node", "name": "(success,returndata) = target.staticcall(data)", "source_mapping": {"start": 6337, "length": 65, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [160], "starting_column": 9, "ending_column": 74}, "type_specific_fields": {"parent": {"type": "function", "name": "functionStaticCall", "source_mapping": {"start": 6169, "length": 326, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [155, 156, 157, 158, 159, 160, 161, 162], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 9169, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [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, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "functionStaticCall(address,bytes,string)"}}}}], "description": "Low level call in Address.functionStaticCall(address,bytes,string) (lib/openzeppelin-contracts/contracts/utils/Address.sol#155-162):\n\t- (success,returndata) = target.staticcall(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#160)\n", "markdown": "Low level call in [Address.functionStaticCall(address,bytes,string)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L155-L162):\n\t- [(success,returndata) = target.staticcall(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L160)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/Address.sol#L155-L162", "id": "93eb0561ad76cb924a6646e71a8388be0f653be8a9cd37bdb60e25805d8be051", "check": "low-level-calls", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "functionDelegateCall", "source_mapping": {"start": 7058, "length": 325, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [180, 181, 182, 183, 184, 185, 186, 187], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 9169, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [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, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "functionDelegateCall(address,bytes,string)"}}, {"type": "node", "name": "(success,returndata) = target.delegatecall(data)", "source_mapping": {"start": 7223, "length": 67, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [185], "starting_column": 9, "ending_column": 76}, "type_specific_fields": {"parent": {"type": "function", "name": "functionDelegateCall", "source_mapping": {"start": 7058, "length": 325, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [180, 181, 182, 183, 184, 185, 186, 187], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "Address", "source_mapping": {"start": 194, "length": 9169, "filename_relative": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/utils/Address.sol", "filename_short": "lib/openzeppelin-contracts/contracts/utils/Address.sol", "is_dependency": true, "lines": [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, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244], "starting_column": 1, "ending_column": 2}}, "signature": "functionDelegateCall(address,bytes,string)"}}}}], "description": "Low level call in Address.functionDelegateCall(address,bytes,string) (lib/openzeppelin-contracts/contracts/utils/Address.sol#180-187):\n\t- (success,returndata) = target.delegatecall(data) (lib/openzeppelin-contracts/contracts/utils/Address.sol#185)\n", "markdown": "Low level call in [Address.functionDelegateCall(address,bytes,string)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L180-L187):\n\t- [(success,returndata) = target.delegatecall(data)](lib/openzeppelin-contracts/contracts/utils/Address.sol#L185)\n", "first_markdown_element": "lib/openzeppelin-contracts/contracts/utils/Address.sol#L180-L187", "id": "d195a90c4848e59b62bdf1e5bf577abf5a3a0d92ac7dad04aef4ca0c978598bb", "check": "low-level-calls", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "contract", "name": "TransparentUpgradeableProxy", "source_mapping": {"start": 1652, "length": 3612, "filename_relative": "src/upgradeability/TransparentUpgradeableProxy.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/src/upgradeability/TransparentUpgradeableProxy.sol", "filename_short": "src/upgradeability/TransparentUpgradeableProxy.sol", "is_dependency": false, "lines": [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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130], "starting_column": 1, "ending_column": 2}}, {"type": "contract", "name": "IBeacon", "source_mapping": {"start": 198, "length": 251, "filename_relative": "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", "filename_short": "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", "is_dependency": true, "lines": [9, 10, 11, 12, 13, 14, 15, 16], "starting_column": 1, "ending_column": 2}}], "description": "TransparentUpgradeableProxy (src/upgradeability/TransparentUpgradeableProxy.sol#28-130) should inherit from IBeacon (lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol#9-16)\n", "markdown": "[TransparentUpgradeableProxy](src/upgradeability/TransparentUpgradeableProxy.sol#L28-L130) should inherit from [IBeacon](lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol#L9-L16)\n", "first_markdown_element": "src/upgradeability/TransparentUpgradeableProxy.sol#L28-L130", "id": "3168c0c9454e01dd85d8b35bcf7920255808756e09e10199820b20f7a9021745", "check": "missing-inheritance", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "__AccessControl_init", "source_mapping": {"start": 3231, "length": 65, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "is_dependency": true, "lines": [82, 83], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AccessControlUpgradeable", "source_mapping": {"start": 2090, "length": 6192, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "is_dependency": true, "lines": [50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233], "starting_column": 1, "ending_column": 2}}, "signature": "__AccessControl_init()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function AccessControlUpgradeable.__AccessControl_init() (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#82-83) is not in mixedCase\n", "markdown": "Function [AccessControlUpgradeable.__AccessControl_init()](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L82-L83) is not in mixedCase\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L82-L83", "id": "a333fa38b5f96027543bfa2131aac6765059644ab6c7dae2f8d357b5fbaa2f2b", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "__AccessControl_init_unchained", "source_mapping": {"start": 3302, "length": 75, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "is_dependency": true, "lines": [85, 86], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AccessControlUpgradeable", "source_mapping": {"start": 2090, "length": 6192, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "is_dependency": true, "lines": [50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233], "starting_column": 1, "ending_column": 2}}, "signature": "__AccessControl_init_unchained()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function AccessControlUpgradeable.__AccessControl_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#85-86) is not in mixedCase\n", "markdown": "Function [AccessControlUpgradeable.__AccessControl_init_unchained()](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L85-L86) is not in mixedCase\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L85-L86", "id": "226e7d5af64c132f41abf0df79c0723e2a9ee53e2961f745732ce61ab1360dbe", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "AccessControlStorageLocation", "source_mapping": {"start": 2658, "length": 122, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "is_dependency": true, "lines": [65], "starting_column": 5, "ending_column": 127}, "type_specific_fields": {"parent": {"type": "contract", "name": "AccessControlUpgradeable", "source_mapping": {"start": 2090, "length": 6192, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", "is_dependency": true, "lines": [50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable_constant", "convention": "UPPER_CASE_WITH_UNDERSCORES"}}], "description": "Constant AccessControlUpgradeable.AccessControlStorageLocation (lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#65) is not in UPPER_CASE_WITH_UNDERSCORES\n", "markdown": "Constant [AccessControlUpgradeable.AccessControlStorageLocation](lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L65) is not in UPPER_CASE_WITH_UNDERSCORES\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol#L65", "id": "0c5e75082cb1ae4de268786ea31269d9fb4bcf024dfd1f9d96c81678bd55bc7d", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "__AccessControlEnumerable_init", "source_mapping": {"start": 1463, "length": 75, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [31, 32], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AccessControlEnumerableUpgradeable", "source_mapping": {"start": 592, "length": 3431, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "__AccessControlEnumerable_init()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function AccessControlEnumerableUpgradeable.__AccessControlEnumerable_init() (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#31-32) is not in mixedCase\n", "markdown": "Function [AccessControlEnumerableUpgradeable.__AccessControlEnumerable_init()](lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L31-L32) is not in mixedCase\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L31-L32", "id": "ef5d0800c6abeec9cf95ba22a2b5356b466e7266ac453d3ed2d8d6715e2a485d", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "__AccessControlEnumerable_init_unchained", "source_mapping": {"start": 1544, "length": 85, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [34, 35], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "AccessControlEnumerableUpgradeable", "source_mapping": {"start": 592, "length": 3431, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [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], "starting_column": 1, "ending_column": 2}}, "signature": "__AccessControlEnumerable_init_unchained()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function AccessControlEnumerableUpgradeable.__AccessControlEnumerable_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#34-35) is not in mixedCase\n", "markdown": "Function [AccessControlEnumerableUpgradeable.__AccessControlEnumerable_init_unchained()](lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L34-L35) is not in mixedCase\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L34-L35", "id": "c5433a1d1949676dc711bcf3160f2439533f345ad44396e69fa216e8565cad1e", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "AccessControlEnumerableStorageLocation", "source_mapping": {"start": 1111, "length": 132, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [23], "starting_column": 5, "ending_column": 137}, "type_specific_fields": {"parent": {"type": "contract", "name": "AccessControlEnumerableUpgradeable", "source_mapping": {"start": 592, "length": 3431, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol", "is_dependency": true, "lines": [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], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable_constant", "convention": "UPPER_CASE_WITH_UNDERSCORES"}}], "description": "Constant AccessControlEnumerableUpgradeable.AccessControlEnumerableStorageLocation (lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#23) is not in UPPER_CASE_WITH_UNDERSCORES\n", "markdown": "Constant [AccessControlEnumerableUpgradeable.AccessControlEnumerableStorageLocation](lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L23) is not in UPPER_CASE_WITH_UNDERSCORES\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/access/extensions/AccessControlEnumerableUpgradeable.sol#L23", "id": "c20f2c968d71e604a9d7b0f83a281d090cbbd192006592908d9b50aea5b86866", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "__ERC20_init", "source_mapping": {"start": 2577, "length": 147, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "is_dependency": true, "lines": [63, 64, 65], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC20Upgradeable", "source_mapping": {"start": 1576, "length": 10896, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "is_dependency": true, "lines": [35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341], "starting_column": 1, "ending_column": 2}}, "signature": "__ERC20_init(string,string)"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function ERC20Upgradeable.__ERC20_init(string,string) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#63-65) is not in mixedCase\n", "markdown": "Function [ERC20Upgradeable.__ERC20_init(string,string)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L63-L65) is not in mixedCase\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L63-L65", "id": "8238dcf62f913fda66edd22ee2b08e732cfae65517418f334b31b357d5fb02c5", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "__ERC20_init_unchained", "source_mapping": {"start": 2730, "length": 216, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "is_dependency": true, "lines": [67, 68, 69, 70, 71], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC20Upgradeable", "source_mapping": {"start": 1576, "length": 10896, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "is_dependency": true, "lines": [35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341], "starting_column": 1, "ending_column": 2}}, "signature": "__ERC20_init_unchained(string,string)"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function ERC20Upgradeable.__ERC20_init_unchained(string,string) (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#67-71) is not in mixedCase\n", "markdown": "Function [ERC20Upgradeable.__ERC20_init_unchained(string,string)](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L67-L71) is not in mixedCase\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L67-L71", "id": "74c629176a16cccc0c00bada69b465bc625751ea0b6a6c34a6948576e5a63d53", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "variable", "name": "ERC20StorageLocation", "source_mapping": {"start": 2121, "length": 114, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "is_dependency": true, "lines": [49], "starting_column": 5, "ending_column": 119}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC20Upgradeable", "source_mapping": {"start": 1576, "length": 10896, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol", "is_dependency": true, "lines": [35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341], "starting_column": 1, "ending_column": 2}}}, "additional_fields": {"target": "variable_constant", "convention": "UPPER_CASE_WITH_UNDERSCORES"}}], "description": "Constant ERC20Upgradeable.ERC20StorageLocation (lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#49) is not in UPPER_CASE_WITH_UNDERSCORES\n", "markdown": "Constant [ERC20Upgradeable.ERC20StorageLocation](lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L49) is not in UPPER_CASE_WITH_UNDERSCORES\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol#L49", "id": "cb30ae3c1a1bfe3cb95184f5fe03e6ce4a5ea625c3b22a19482d198acedacce7", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "__Context_init", "source_mapping": {"start": 748, "length": 59, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "is_dependency": true, "lines": [18, 19], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ContextUpgradeable", "source_mapping": {"start": 688, "length": 505, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "is_dependency": true, "lines": [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": "__Context_init()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function ContextUpgradeable.__Context_init() (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#18-19) is not in mixedCase\n", "markdown": "Function [ContextUpgradeable.__Context_init()](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L18-L19) is not in mixedCase\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L18-L19", "id": "ec47067e22967ab37ddb79c5eae4c225b0c9f1e4e15f1452db70b0a6f86103e0", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "__Context_init_unchained", "source_mapping": {"start": 813, "length": 69, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "is_dependency": true, "lines": [21, 22], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ContextUpgradeable", "source_mapping": {"start": 688, "length": 505, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", "is_dependency": true, "lines": [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": "__Context_init_unchained()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function ContextUpgradeable.__Context_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#21-22) is not in mixedCase\n", "markdown": "Function [ContextUpgradeable.__Context_init_unchained()](lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L21-L22) is not in mixedCase\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol#L21-L22", "id": "8629c89abc9e568d22212182eb038287fc4f676ff34add41294173d644b25bcb", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "__ERC165_init", "source_mapping": {"start": 836, "length": 58, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "is_dependency": true, "lines": [22, 23], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC165Upgradeable", "source_mapping": {"start": 768, "length": 414, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "is_dependency": true, "lines": [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "starting_column": 1, "ending_column": 2}}, "signature": "__ERC165_init()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function ERC165Upgradeable.__ERC165_init() (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#22-23) is not in mixedCase\n", "markdown": "Function [ERC165Upgradeable.__ERC165_init()](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L22-L23) is not in mixedCase\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L22-L23", "id": "f226b70c0c428d938e421293c43b68d973d744168b94b568e0deb7b189c26f50", "check": "naming-convention", "impact": "Informational", "confidence": "High"}, {"elements": [{"type": "function", "name": "__ERC165_init_unchained", "source_mapping": {"start": 900, "length": 68, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "is_dependency": true, "lines": [25, 26], "starting_column": 5, "ending_column": 6}, "type_specific_fields": {"parent": {"type": "contract", "name": "ERC165Upgradeable", "source_mapping": {"start": 768, "length": 414, "filename_relative": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "filename_absolute": "/Users/zhuliting/github/follow-contracts/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "filename_short": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", "is_dependency": true, "lines": [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "starting_column": 1, "ending_column": 2}}, "signature": "__ERC165_init_unchained()"}, "additional_fields": {"target": "function", "convention": "mixedCase"}}], "description": "Function ERC165Upgradeable.__ERC165_init_unchained() (lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#25-26) is not in mixedCase\n", "markdown": "Function [ERC165Upgradeable.__ERC165_init_unchained()](lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L25-L26) is not in mixedCase\n", "first_markdown_element": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol#L25-L26", "id": "85d4e6d503145e70d4f27b51c03c2aecc7efa120329a4cf27b34d33cd9a2c942", "check": "naming-convention", "impact": "Informational", "confidence": "High"}]