{ "success": true, "error": null, "results": { "detectors": [ { "elements": [ { "type": "function", "name": "_recompute", "source_mapping": { "start": 9216, "length": 809, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "ReputationRegistry", "source_mapping": { "start": 557, "length": 11726, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "_recompute(ReputationRegistry.Reputation)" } }, { "type": "node", "name": "signal = (((winRate * qualityRate) / ONE) * fillSignal) / ONE", "source_mapping": { "start": 9742, "length": 69, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 248 ], "starting_column": 9, "ending_column": 78 }, "type_specific_fields": { "parent": { "type": "function", "name": "_recompute", "source_mapping": { "start": 9216, "length": 809, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "ReputationRegistry", "source_mapping": { "start": 557, "length": 11726, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "_recompute(ReputationRegistry.Reputation)" } } } }, { "type": "node", "name": "weighted = (signal * SIGNAL_NUMERATOR) / ONE", "source_mapping": { "start": 9931, "length": 52, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 252 ], "starting_column": 9, "ending_column": 61 }, "type_specific_fields": { "parent": { "type": "function", "name": "_recompute", "source_mapping": { "start": 9216, "length": 809, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "ReputationRegistry", "source_mapping": { "start": 557, "length": 11726, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "_recompute(ReputationRegistry.Reputation)" } } } } ], "description": "ReputationRegistry._recompute(ReputationRegistry.Reputation) (src/ReputationRegistry.sol#237-254) performs a multiplication on the result of a division:\n\t- signal = (((winRate * qualityRate) / ONE) * fillSignal) / ONE (src/ReputationRegistry.sol#248)\n\t- weighted = (signal * SIGNAL_NUMERATOR) / ONE (src/ReputationRegistry.sol#252)\n", "markdown": "[ReputationRegistry._recompute(ReputationRegistry.Reputation)](src/ReputationRegistry.sol#L237-L254) performs a multiplication on the result of a division:\n\t- [signal = (((winRate * qualityRate) / ONE) * fillSignal) / ONE](src/ReputationRegistry.sol#L248)\n\t- [weighted = (signal * SIGNAL_NUMERATOR) / ONE](src/ReputationRegistry.sol#L252)\n", "first_markdown_element": "src/ReputationRegistry.sol#L237-L254", "id": "17d1d875cb9b28b8ca25a50f0e05dbc35a66178130d176bb113087866b33e36b", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "_fillSignal", "source_mapping": { "start": 10264, "length": 1841, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "ReputationRegistry", "source_mapping": { "start": 557, "length": 11726, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "_fillSignal(uint256)" } }, { "type": "node", "name": "x = cumulativeFees / FEE_SCALE", "source_mapping": { "start": 10689, "length": 38, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 267 ], "starting_column": 9, "ending_column": 47 }, "type_specific_fields": { "parent": { "type": "function", "name": "_fillSignal", "source_mapping": { "start": 10264, "length": 1841, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "ReputationRegistry", "source_mapping": { "start": 557, "length": 11726, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "_fillSignal(uint256)" } } } }, { "type": "node", "name": "x3 = (x2 * x) / ONE", "source_mapping": { "start": 11798, "length": 27, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 292 ], "starting_column": 9, "ending_column": 36 }, "type_specific_fields": { "parent": { "type": "function", "name": "_fillSignal", "source_mapping": { "start": 10264, "length": 1841, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "ReputationRegistry", "source_mapping": { "start": 557, "length": 11726, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "_fillSignal(uint256)" } } } }, { "type": "node", "name": "x4 = (x3 * x) / ONE", "source_mapping": { "start": 11835, "length": 27, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 293 ], "starting_column": 9, "ending_column": 36 }, "type_specific_fields": { "parent": { "type": "function", "name": "_fillSignal", "source_mapping": { "start": 10264, "length": 1841, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "ReputationRegistry", "source_mapping": { "start": 557, "length": 11726, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "_fillSignal(uint256)" } } } } ], "description": "ReputationRegistry._fillSignal(uint256) (src/ReputationRegistry.sol#259-299) performs a multiplication on the result of a division:\n\t- x = cumulativeFees / FEE_SCALE (src/ReputationRegistry.sol#267)\n\t- x3 = (x2 * x) / ONE (src/ReputationRegistry.sol#292)\n\t- x4 = (x3 * x) / ONE (src/ReputationRegistry.sol#293)\n", "markdown": "[ReputationRegistry._fillSignal(uint256)](src/ReputationRegistry.sol#L259-L299) performs a multiplication on the result of a division:\n\t- [x = cumulativeFees / FEE_SCALE](src/ReputationRegistry.sol#L267)\n\t- [x3 = (x2 * x) / ONE](src/ReputationRegistry.sol#L292)\n\t- [x4 = (x3 * x) / ONE](src/ReputationRegistry.sol#L293)\n", "first_markdown_element": "src/ReputationRegistry.sol#L259-L299", "id": "9769d7cdd27095a37ec9d2173632931f7d942d502a30bbc4584015d5e42971f7", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "_fillSignal", "source_mapping": { "start": 10264, "length": 1841, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "ReputationRegistry", "source_mapping": { "start": 557, "length": 11726, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "_fillSignal(uint256)" } }, { "type": "node", "name": "x = cumulativeFees / FEE_SCALE", "source_mapping": { "start": 10689, "length": 38, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 267 ], "starting_column": 9, "ending_column": 47 }, "type_specific_fields": { "parent": { "type": "function", "name": "_fillSignal", "source_mapping": { "start": 10264, "length": 1841, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "ReputationRegistry", "source_mapping": { "start": 557, "length": 11726, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "_fillSignal(uint256)" } } } }, { "type": "node", "name": "x2 = (x * x) / ONE", "source_mapping": { "start": 11762, "length": 26, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 291 ], "starting_column": 9, "ending_column": 35 }, "type_specific_fields": { "parent": { "type": "function", "name": "_fillSignal", "source_mapping": { "start": 10264, "length": 1841, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "ReputationRegistry", "source_mapping": { "start": 557, "length": 11726, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "_fillSignal(uint256)" } } } } ], "description": "ReputationRegistry._fillSignal(uint256) (src/ReputationRegistry.sol#259-299) performs a multiplication on the result of a division:\n\t- x = cumulativeFees / FEE_SCALE (src/ReputationRegistry.sol#267)\n\t- x2 = (x * x) / ONE (src/ReputationRegistry.sol#291)\n", "markdown": "[ReputationRegistry._fillSignal(uint256)](src/ReputationRegistry.sol#L259-L299) performs a multiplication on the result of a division:\n\t- [x = cumulativeFees / FEE_SCALE](src/ReputationRegistry.sol#L267)\n\t- [x2 = (x * x) / ONE](src/ReputationRegistry.sol#L291)\n", "first_markdown_element": "src/ReputationRegistry.sol#L259-L299", "id": "b58294772adc472e67611d260247a24f801c7be7331173ae7a06f391fe42f5fc", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "_fillSignal", "source_mapping": { "start": 10264, "length": 1841, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "ReputationRegistry", "source_mapping": { "start": 557, "length": 11726, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "_fillSignal(uint256)" } }, { "type": "node", "name": "x = cumulativeFees / FEE_SCALE", "source_mapping": { "start": 10689, "length": 38, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 267 ], "starting_column": 9, "ending_column": 47 }, "type_specific_fields": { "parent": { "type": "function", "name": "_fillSignal", "source_mapping": { "start": 10264, "length": 1841, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "ReputationRegistry", "source_mapping": { "start": 557, "length": 11726, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "_fillSignal(uint256)" } } } }, { "type": "node", "name": "x2 = (x * x) / ONE", "source_mapping": { "start": 11762, "length": 26, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 291 ], "starting_column": 9, "ending_column": 35 }, "type_specific_fields": { "parent": { "type": "function", "name": "_fillSignal", "source_mapping": { "start": 10264, "length": 1841, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "ReputationRegistry", "source_mapping": { "start": 557, "length": 11726, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "_fillSignal(uint256)" } } } }, { "type": "node", "name": "x3 = (x2 * x) / ONE", "source_mapping": { "start": 11798, "length": 27, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 292 ], "starting_column": 9, "ending_column": 36 }, "type_specific_fields": { "parent": { "type": "function", "name": "_fillSignal", "source_mapping": { "start": 10264, "length": 1841, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "ReputationRegistry", "source_mapping": { "start": 557, "length": 11726, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "_fillSignal(uint256)" } } } } ], "description": "ReputationRegistry._fillSignal(uint256) (src/ReputationRegistry.sol#259-299) performs a multiplication on the result of a division:\n\t- x = cumulativeFees / FEE_SCALE (src/ReputationRegistry.sol#267)\n\t- x2 = (x * x) / ONE (src/ReputationRegistry.sol#291)\n\t- x3 = (x2 * x) / ONE (src/ReputationRegistry.sol#292)\n", "markdown": "[ReputationRegistry._fillSignal(uint256)](src/ReputationRegistry.sol#L259-L299) performs a multiplication on the result of a division:\n\t- [x = cumulativeFees / FEE_SCALE](src/ReputationRegistry.sol#L267)\n\t- [x2 = (x * x) / ONE](src/ReputationRegistry.sol#L291)\n\t- [x3 = (x2 * x) / ONE](src/ReputationRegistry.sol#L292)\n", "first_markdown_element": "src/ReputationRegistry.sol#L259-L299", "id": "ca0beecfe4ba88eaa52e56e4d13d46136c1384cdfe1fc4e060c386b9095cb040", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "_fillSignal", "source_mapping": { "start": 10264, "length": 1841, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "ReputationRegistry", "source_mapping": { "start": 557, "length": 11726, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "_fillSignal(uint256)" } }, { "type": "node", "name": "t = (num * ONE) / den", "source_mapping": { "start": 11533, "length": 29, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 285 ], "starting_column": 13, "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", "name": "_fillSignal", "source_mapping": { "start": 10264, "length": 1841, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "ReputationRegistry", "source_mapping": { "start": 557, "length": 11726, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "_fillSignal(uint256)" } } } }, { "type": "node", "name": "interp = LN2 + ((TOP - LN2) * t) / ONE", "source_mapping": { "start": 11576, "length": 46, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 286 ], "starting_column": 13, "ending_column": 59 }, "type_specific_fields": { "parent": { "type": "function", "name": "_fillSignal", "source_mapping": { "start": 10264, "length": 1841, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "ReputationRegistry", "source_mapping": { "start": 557, "length": 11726, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "_fillSignal(uint256)" } } } } ], "description": "ReputationRegistry._fillSignal(uint256) (src/ReputationRegistry.sol#259-299) performs a multiplication on the result of a division:\n\t- t = (num * ONE) / den (src/ReputationRegistry.sol#285)\n\t- interp = LN2 + ((TOP - LN2) * t) / ONE (src/ReputationRegistry.sol#286)\n", "markdown": "[ReputationRegistry._fillSignal(uint256)](src/ReputationRegistry.sol#L259-L299) performs a multiplication on the result of a division:\n\t- [t = (num * ONE) / den](src/ReputationRegistry.sol#L285)\n\t- [interp = LN2 + ((TOP - LN2) * t) / ONE](src/ReputationRegistry.sol#L286)\n", "first_markdown_element": "src/ReputationRegistry.sol#L259-L299", "id": "f32bc935bf218ec8fda1225603b3e767f63234c8d8a9ec88f31d5c29e79341ae", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "_recompute", "source_mapping": { "start": 9216, "length": 809, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "ReputationRegistry", "source_mapping": { "start": 557, "length": 11726, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "_recompute(ReputationRegistry.Reputation)" } }, { "type": "node", "name": "signal = (((winRate * qualityRate) / ONE) * fillSignal) / ONE", "source_mapping": { "start": 9742, "length": 69, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 248 ], "starting_column": 9, "ending_column": 78 }, "type_specific_fields": { "parent": { "type": "function", "name": "_recompute", "source_mapping": { "start": 9216, "length": 809, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "ReputationRegistry", "source_mapping": { "start": 557, "length": 11726, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "_recompute(ReputationRegistry.Reputation)" } } } } ], "description": "ReputationRegistry._recompute(ReputationRegistry.Reputation) (src/ReputationRegistry.sol#237-254) performs a multiplication on the result of a division:\n\t- signal = (((winRate * qualityRate) / ONE) * fillSignal) / ONE (src/ReputationRegistry.sol#248)\n", "markdown": "[ReputationRegistry._recompute(ReputationRegistry.Reputation)](src/ReputationRegistry.sol#L237-L254) performs a multiplication on the result of a division:\n\t- [signal = (((winRate * qualityRate) / ONE) * fillSignal) / ONE](src/ReputationRegistry.sol#L248)\n", "first_markdown_element": "src/ReputationRegistry.sol#L237-L254", "id": "f9ba67225640ebacbae41aa4bd58e568121b37dd61fe86f00290847354568783", "check": "divide-before-multiply", "impact": "Medium", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "registerTranslationJudge", "source_mapping": { "start": 4075, "length": 467, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 98, 99, 100, 101, 102, 103, 104, 105 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerTranslationJudge()" } }, { "type": "node", "name": "ok = usdc.transferFrom(msg.sender,address(this),TRANSLATION_JUDGE_STAKE)", "source_mapping": { "start": 4209, "length": 79, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 100 ], "starting_column": 9, "ending_column": 88 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerTranslationJudge", "source_mapping": { "start": 4075, "length": 467, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 98, 99, 100, 101, 102, 103, 104, 105 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerTranslationJudge()" } } }, "additional_fields": { "underlying_type": "external_calls" } }, { "type": "node", "name": "isTranslationJudge[msg.sender] = true", "source_mapping": { "start": 4407, "length": 37, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 103 ], "starting_column": 9, "ending_column": 46 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerTranslationJudge", "source_mapping": { "start": 4075, "length": 467, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 98, 99, 100, 101, 102, 103, 104, 105 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerTranslationJudge()" } } }, "additional_fields": { "underlying_type": "variables_written", "variable_name": "isTranslationJudge" } } ], "description": "Reentrancy in JudgePanel.registerTranslationJudge() (src/JudgePanel.sol#98-105):\n\tExternal calls:\n\t- ok = usdc.transferFrom(msg.sender,address(this),TRANSLATION_JUDGE_STAKE) (src/JudgePanel.sol#100)\n\tState variables written after the call(s):\n\t- isTranslationJudge[msg.sender] = true (src/JudgePanel.sol#103)\n\tJudgePanel.isTranslationJudge (src/JudgePanel.sol#46) can be used in cross function reentrancies:\n\t- JudgePanel.getJudgeInfo(address) (src/JudgePanel.sol#175-191)\n\t- JudgePanel.isTranslationJudge (src/JudgePanel.sol#46)\n\t- JudgePanel.recordAttestation(bytes32,address,uint256,bytes32) (src/JudgePanel.sol#128-140)\n\t- JudgePanel.registerTranslationJudge() (src/JudgePanel.sol#98-105)\n\t- JudgePanel.withdrawJudge(address) (src/JudgePanel.sol#160-169)\n", "markdown": "Reentrancy in [JudgePanel.registerTranslationJudge()](src/JudgePanel.sol#L98-L105):\n\tExternal calls:\n\t- [ok = usdc.transferFrom(msg.sender,address(this),TRANSLATION_JUDGE_STAKE)](src/JudgePanel.sol#L100)\n\tState variables written after the call(s):\n\t- [isTranslationJudge[msg.sender] = true](src/JudgePanel.sol#L103)\n\t[JudgePanel.isTranslationJudge](src/JudgePanel.sol#L46) can be used in cross function reentrancies:\n\t- [JudgePanel.getJudgeInfo(address)](src/JudgePanel.sol#L175-L191)\n\t- [JudgePanel.isTranslationJudge](src/JudgePanel.sol#L46)\n\t- [JudgePanel.recordAttestation(bytes32,address,uint256,bytes32)](src/JudgePanel.sol#L128-L140)\n\t- [JudgePanel.registerTranslationJudge()](src/JudgePanel.sol#L98-L105)\n\t- [JudgePanel.withdrawJudge(address)](src/JudgePanel.sol#L160-L169)\n", "first_markdown_element": "src/JudgePanel.sol#L98-L105", "id": "3ed48ca0e0d6a1e762af5d53132818acac0ca5afe170f11b15c1c5e509377298", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "registerStyleJudge", "source_mapping": { "start": 4701, "length": 419, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 109, 110, 111, 112, 113, 114, 115, 116 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerStyleJudge()" } }, { "type": "node", "name": "ok = usdc.transferFrom(msg.sender,address(this),STYLE_JUDGE_STAKE)", "source_mapping": { "start": 4817, "length": 73, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 111 ], "starting_column": 9, "ending_column": 82 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerStyleJudge", "source_mapping": { "start": 4701, "length": 419, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 109, 110, 111, 112, 113, 114, 115, 116 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerStyleJudge()" } } }, "additional_fields": { "underlying_type": "external_calls" } }, { "type": "node", "name": "isStyleJudge[msg.sender] = true", "source_mapping": { "start": 5003, "length": 31, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 114 ], "starting_column": 9, "ending_column": 40 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerStyleJudge", "source_mapping": { "start": 4701, "length": 419, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 109, 110, 111, 112, 113, 114, 115, 116 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerStyleJudge()" } } }, "additional_fields": { "underlying_type": "variables_written", "variable_name": "isStyleJudge" } } ], "description": "Reentrancy in JudgePanel.registerStyleJudge() (src/JudgePanel.sol#109-116):\n\tExternal calls:\n\t- ok = usdc.transferFrom(msg.sender,address(this),STYLE_JUDGE_STAKE) (src/JudgePanel.sol#111)\n\tState variables written after the call(s):\n\t- isStyleJudge[msg.sender] = true (src/JudgePanel.sol#114)\n\tJudgePanel.isStyleJudge (src/JudgePanel.sol#47) can be used in cross function reentrancies:\n\t- JudgePanel.getJudgeInfo(address) (src/JudgePanel.sol#175-191)\n\t- JudgePanel.isStyleJudge (src/JudgePanel.sol#47)\n\t- JudgePanel.recordAttestation(bytes32,address,uint256,bytes32) (src/JudgePanel.sol#128-140)\n\t- JudgePanel.registerStyleJudge() (src/JudgePanel.sol#109-116)\n\t- JudgePanel.withdrawJudge(address) (src/JudgePanel.sol#160-169)\n", "markdown": "Reentrancy in [JudgePanel.registerStyleJudge()](src/JudgePanel.sol#L109-L116):\n\tExternal calls:\n\t- [ok = usdc.transferFrom(msg.sender,address(this),STYLE_JUDGE_STAKE)](src/JudgePanel.sol#L111)\n\tState variables written after the call(s):\n\t- [isStyleJudge[msg.sender] = true](src/JudgePanel.sol#L114)\n\t[JudgePanel.isStyleJudge](src/JudgePanel.sol#L47) can be used in cross function reentrancies:\n\t- [JudgePanel.getJudgeInfo(address)](src/JudgePanel.sol#L175-L191)\n\t- [JudgePanel.isStyleJudge](src/JudgePanel.sol#L47)\n\t- [JudgePanel.recordAttestation(bytes32,address,uint256,bytes32)](src/JudgePanel.sol#L128-L140)\n\t- [JudgePanel.registerStyleJudge()](src/JudgePanel.sol#L109-L116)\n\t- [JudgePanel.withdrawJudge(address)](src/JudgePanel.sol#L160-L169)\n", "first_markdown_element": "src/JudgePanel.sol#L109-L116", "id": "744d4563467e3b669bbbe1de84cd4cf10ebacba70b3aaefa3a27bf84858c9625", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "registerAgent", "source_mapping": { "start": 7177, "length": 445, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 166, 167, 168, 169, 170, 171, 172, 173, 174 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerAgent()" } }, { "type": "node", "name": "ok = usdc.transferFrom(msg.sender,address(this),REGISTRATION_STAKE)", "source_mapping": { "start": 7285, "length": 74, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 168 ], "starting_column": 9, "ending_column": 83 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerAgent", "source_mapping": { "start": 7177, "length": 445, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 166, 167, 168, 169, 170, 171, 172, 173, 174 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerAgent()" } } }, "additional_fields": { "underlying_type": "external_calls" } }, { "type": "node", "name": "registered[msg.sender] = true", "source_mapping": { "start": 7524, "length": 29, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 172 ], "starting_column": 9, "ending_column": 38 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerAgent", "source_mapping": { "start": 7177, "length": 445, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 166, 167, 168, 169, 170, 171, 172, 173, 174 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerAgent()" } } }, "additional_fields": { "underlying_type": "variables_written", "variable_name": "registered" } } ], "description": "Reentrancy in TranslationAuction.registerAgent() (src/TranslationAuction.sol#166-174):\n\tExternal calls:\n\t- ok = usdc.transferFrom(msg.sender,address(this),REGISTRATION_STAKE) (src/TranslationAuction.sol#168)\n\tState variables written after the call(s):\n\t- registered[msg.sender] = true (src/TranslationAuction.sol#172)\n\tTranslationAuction.registered (src/TranslationAuction.sol#82) can be used in cross function reentrancies:\n\t- TranslationAuction.registerAgent() (src/TranslationAuction.sol#166-174)\n\t- TranslationAuction.registered (src/TranslationAuction.sol#82)\n\t- TranslationAuction.submitBid(bytes32,uint256,bytes32) (src/TranslationAuction.sol#213-236)\n", "markdown": "Reentrancy in [TranslationAuction.registerAgent()](src/TranslationAuction.sol#L166-L174):\n\tExternal calls:\n\t- [ok = usdc.transferFrom(msg.sender,address(this),REGISTRATION_STAKE)](src/TranslationAuction.sol#L168)\n\tState variables written after the call(s):\n\t- [registered[msg.sender] = true](src/TranslationAuction.sol#L172)\n\t[TranslationAuction.registered](src/TranslationAuction.sol#L82) can be used in cross function reentrancies:\n\t- [TranslationAuction.registerAgent()](src/TranslationAuction.sol#L166-L174)\n\t- [TranslationAuction.registered](src/TranslationAuction.sol#L82)\n\t- [TranslationAuction.submitBid(bytes32,uint256,bytes32)](src/TranslationAuction.sol#L213-L236)\n", "first_markdown_element": "src/TranslationAuction.sol#L166-L174", "id": "7bcc0501ca757d9127d851ef1af84b537f4c70eba775d259ee2d9f0aabe61708", "check": "reentrancy-no-eth", "impact": "Medium", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "transferOperator", "source_mapping": { "start": 6627, "length": 163, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 154, 155, 156, 157 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "transferOperator(address)" } }, { "type": "node", "name": "operator = newOperator", "source_mapping": { "start": 6761, "length": 22, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 156 ], "starting_column": 9, "ending_column": 31 }, "type_specific_fields": { "parent": { "type": "function", "name": "transferOperator", "source_mapping": { "start": 6627, "length": 163, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 154, 155, 156, 157 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "transferOperator(address)" } } } } ], "description": "TranslationAuction.transferOperator(address) (src/TranslationAuction.sol#154-157) should emit an event for: \n\t- operator = newOperator (src/TranslationAuction.sol#156) \n", "markdown": "[TranslationAuction.transferOperator(address)](src/TranslationAuction.sol#L154-L157) should emit an event for: \n\t- [operator = newOperator](src/TranslationAuction.sol#L156) \n", "first_markdown_element": "src/TranslationAuction.sol#L154-L157", "id": "206f2ae992be0267ef9efc36235e9ced936944f2da20c06883fd312c58dc29b2", "check": "events-access", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "transferOperator", "source_mapping": { "start": 3584, "length": 163, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 87, 88, 89, 90 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "transferOperator(address)" } }, { "type": "node", "name": "operator = newOperator", "source_mapping": { "start": 3718, "length": 22, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 89 ], "starting_column": 9, "ending_column": 31 }, "type_specific_fields": { "parent": { "type": "function", "name": "transferOperator", "source_mapping": { "start": 3584, "length": 163, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 87, 88, 89, 90 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "transferOperator(address)" } } } } ], "description": "JudgePanel.transferOperator(address) (src/JudgePanel.sol#87-90) should emit an event for: \n\t- operator = newOperator (src/JudgePanel.sol#89) \n", "markdown": "[JudgePanel.transferOperator(address)](src/JudgePanel.sol#L87-L90) should emit an event for: \n\t- [operator = newOperator](src/JudgePanel.sol#L89) \n", "first_markdown_element": "src/JudgePanel.sol#L87-L90", "id": "74b34f8149fa3735151266ae28eb4871c36c5844bd97e992264623ad54f87caf", "check": "events-access", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "transferOperator", "source_mapping": { "start": 3591, "length": 163, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 94, 95, 96, 97 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "BuilderFeeRouter", "source_mapping": { "start": 1013, "length": 7046, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "transferOperator(address)" } }, { "type": "node", "name": "operator = newOperator", "source_mapping": { "start": 3725, "length": 22, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 96 ], "starting_column": 9, "ending_column": 31 }, "type_specific_fields": { "parent": { "type": "function", "name": "transferOperator", "source_mapping": { "start": 3591, "length": 163, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 94, 95, 96, 97 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "BuilderFeeRouter", "source_mapping": { "start": 1013, "length": 7046, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "transferOperator(address)" } } } } ], "description": "BuilderFeeRouter.transferOperator(address) (src/BuilderFeeRouter.sol#94-97) should emit an event for: \n\t- operator = newOperator (src/BuilderFeeRouter.sol#96) \n", "markdown": "[BuilderFeeRouter.transferOperator(address)](src/BuilderFeeRouter.sol#L94-L97) should emit an event for: \n\t- [operator = newOperator](src/BuilderFeeRouter.sol#L96) \n", "first_markdown_element": "src/BuilderFeeRouter.sol#L94-L97", "id": "ab9d4884bbfa3c7e3b5f8c622be5a40f1e699fbde00d04d475cada83bfc9b80e", "check": "events-access", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "settleAuction", "source_mapping": { "start": 10833, "length": 2193, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "settleAuction(bytes32)" } }, { "type": "node", "name": "reputation.updateOnAuction(bidder_scope_1,bidder_scope_1 == bestBidder)", "source_mapping": { "start": 12265, "length": 56, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 278 ], "starting_column": 17, "ending_column": 73 }, "type_specific_fields": { "parent": { "type": "function", "name": "settleAuction", "source_mapping": { "start": 10833, "length": 2193, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "settleAuction(bytes32)" } } } } ], "description": "TranslationAuction.settleAuction(bytes32) (src/TranslationAuction.sol#241-295) has external calls inside a loop: reputation.updateOnAuction(bidder_scope_1,bidder_scope_1 == bestBidder) (src/TranslationAuction.sol#278)\n", "markdown": "[TranslationAuction.settleAuction(bytes32)](src/TranslationAuction.sol#L241-L295) has external calls inside a loop: [reputation.updateOnAuction(bidder_scope_1,bidder_scope_1 == bestBidder)](src/TranslationAuction.sol#L278)\n", "first_markdown_element": "src/TranslationAuction.sol#L241-L295", "id": "3ade4ce90abb9108c878c44240f3aa27b55693e79f5a2129cf7c56405450905d", "check": "calls-loop", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "settleAuction", "source_mapping": { "start": 10833, "length": 2193, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "settleAuction(bytes32)" } }, { "type": "node", "name": "rep = reputation.getReputation(bidder)", "source_mapping": { "start": 11390, "length": 131, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 255, 256, 257 ], "starting_column": 13, "ending_column": 51 }, "type_specific_fields": { "parent": { "type": "function", "name": "settleAuction", "source_mapping": { "start": 10833, "length": 2193, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "settleAuction(bytes32)" } } } } ], "description": "TranslationAuction.settleAuction(bytes32) (src/TranslationAuction.sol#241-295) has external calls inside a loop: rep = reputation.getReputation(bidder) (src/TranslationAuction.sol#255-257)\n", "markdown": "[TranslationAuction.settleAuction(bytes32)](src/TranslationAuction.sol#L241-L295) has external calls inside a loop: [rep = reputation.getReputation(bidder)](src/TranslationAuction.sol#L255-L257)\n", "first_markdown_element": "src/TranslationAuction.sol#L241-L295", "id": "c4a7849ed0c99f5c9b84b8d59a601ef1923c8327d7ca7182c7e60778b9a7b169", "check": "calls-loop", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "registerTranslationJudge", "source_mapping": { "start": 4075, "length": 467, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 98, 99, 100, 101, 102, 103, 104, 105 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerTranslationJudge()" } }, { "type": "node", "name": "ok = usdc.transferFrom(msg.sender,address(this),TRANSLATION_JUDGE_STAKE)", "source_mapping": { "start": 4209, "length": 79, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 100 ], "starting_column": 9, "ending_column": 88 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerTranslationJudge", "source_mapping": { "start": 4075, "length": 467, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 98, 99, 100, 101, 102, 103, 104, 105 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerTranslationJudge()" } } }, "additional_fields": { "underlying_type": "external_calls" } }, { "type": "node", "name": "ok = usdc.transferFrom(msg.sender,address(this),TRANSLATION_JUDGE_STAKE)", "source_mapping": { "start": 4209, "length": 79, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 100 ], "starting_column": 9, "ending_column": 88 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerTranslationJudge", "source_mapping": { "start": 4075, "length": 467, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 98, 99, 100, 101, 102, 103, 104, 105 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerTranslationJudge()" } } }, "additional_fields": { "underlying_type": "external_calls_sending_eth" } }, { "type": "node", "name": "judgeStakes[msg.sender] += TRANSLATION_JUDGE_STAKE", "source_mapping": { "start": 4347, "length": 50, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 102 ], "starting_column": 9, "ending_column": 59 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerTranslationJudge", "source_mapping": { "start": 4075, "length": 467, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 98, 99, 100, 101, 102, 103, 104, 105 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerTranslationJudge()" } } }, "additional_fields": { "underlying_type": "variables_written", "variable_name": "judgeStakes" } } ], "description": "Reentrancy in JudgePanel.registerTranslationJudge() (src/JudgePanel.sol#98-105):\n\tExternal calls:\n\t- ok = usdc.transferFrom(msg.sender,address(this),TRANSLATION_JUDGE_STAKE) (src/JudgePanel.sol#100)\n\tState variables written after the call(s):\n\t- judgeStakes[msg.sender] += TRANSLATION_JUDGE_STAKE (src/JudgePanel.sol#102)\n", "markdown": "Reentrancy in [JudgePanel.registerTranslationJudge()](src/JudgePanel.sol#L98-L105):\n\tExternal calls:\n\t- [ok = usdc.transferFrom(msg.sender,address(this),TRANSLATION_JUDGE_STAKE)](src/JudgePanel.sol#L100)\n\tState variables written after the call(s):\n\t- [judgeStakes[msg.sender] += TRANSLATION_JUDGE_STAKE](src/JudgePanel.sol#L102)\n", "first_markdown_element": "src/JudgePanel.sol#L98-L105", "id": "171b70e8d26e678e246e89492fe56b7639d8bd24f9917ff3b7606c42dceb52a3", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "settleAuction", "source_mapping": { "start": 10833, "length": 2193, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "settleAuction(bytes32)" } }, { "type": "node", "name": "reputation.updateOnAuction(bidder_scope_1,bidder_scope_1 == bestBidder)", "source_mapping": { "start": 12265, "length": 56, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 278 ], "starting_column": 17, "ending_column": 73 }, "type_specific_fields": { "parent": { "type": "function", "name": "settleAuction", "source_mapping": { "start": 10833, "length": 2193, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "settleAuction(bytes32)" } } }, "additional_fields": { "underlying_type": "external_calls" } }, { "type": "node", "name": "reputation.updateOnAuction(bidder_scope_1,bidder_scope_1 == bestBidder)", "source_mapping": { "start": 12265, "length": 56, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 278 ], "starting_column": 17, "ending_column": 73 }, "type_specific_fields": { "parent": { "type": "function", "name": "settleAuction", "source_mapping": { "start": 10833, "length": 2193, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "settleAuction(bytes32)" } } }, "additional_fields": { "underlying_type": "external_calls_sending_eth" } }, { "type": "node", "name": "reputationStakeUnlockAt[eventId] = unlockAt", "source_mapping": { "start": 12711, "length": 43, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 287 ], "starting_column": 13, "ending_column": 56 }, "type_specific_fields": { "parent": { "type": "function", "name": "settleAuction", "source_mapping": { "start": 10833, "length": 2193, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "settleAuction(bytes32)" } } }, "additional_fields": { "underlying_type": "variables_written", "variable_name": "reputationStakeUnlockAt" } }, { "type": "node", "name": "stakeUnlockAt[bestBidder] = unlockAt", "source_mapping": { "start": 12828, "length": 36, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 289 ], "starting_column": 17, "ending_column": 53 }, "type_specific_fields": { "parent": { "type": "function", "name": "settleAuction", "source_mapping": { "start": 10833, "length": 2193, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "settleAuction(bytes32)" } } }, "additional_fields": { "underlying_type": "variables_written", "variable_name": "stakeUnlockAt" } } ], "description": "Reentrancy in TranslationAuction.settleAuction(bytes32) (src/TranslationAuction.sol#241-295):\n\tExternal calls:\n\t- reputation.updateOnAuction(bidder_scope_1,bidder_scope_1 == bestBidder) (src/TranslationAuction.sol#278)\n\tState variables written after the call(s):\n\t- reputationStakeUnlockAt[eventId] = unlockAt (src/TranslationAuction.sol#287)\n\t- stakeUnlockAt[bestBidder] = unlockAt (src/TranslationAuction.sol#289)\n", "markdown": "Reentrancy in [TranslationAuction.settleAuction(bytes32)](src/TranslationAuction.sol#L241-L295):\n\tExternal calls:\n\t- [reputation.updateOnAuction(bidder_scope_1,bidder_scope_1 == bestBidder)](src/TranslationAuction.sol#L278)\n\tState variables written after the call(s):\n\t- [reputationStakeUnlockAt[eventId] = unlockAt](src/TranslationAuction.sol#L287)\n\t- [stakeUnlockAt[bestBidder] = unlockAt](src/TranslationAuction.sol#L289)\n", "first_markdown_element": "src/TranslationAuction.sol#L241-L295", "id": "a7c985760e773e45418c812712395f7c7c07561747d6736e5ee96a53305cfd02", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "registerStyleJudge", "source_mapping": { "start": 4701, "length": 419, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 109, 110, 111, 112, 113, 114, 115, 116 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerStyleJudge()" } }, { "type": "node", "name": "ok = usdc.transferFrom(msg.sender,address(this),STYLE_JUDGE_STAKE)", "source_mapping": { "start": 4817, "length": 73, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 111 ], "starting_column": 9, "ending_column": 82 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerStyleJudge", "source_mapping": { "start": 4701, "length": 419, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 109, 110, 111, 112, 113, 114, 115, 116 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerStyleJudge()" } } }, "additional_fields": { "underlying_type": "external_calls" } }, { "type": "node", "name": "ok = usdc.transferFrom(msg.sender,address(this),STYLE_JUDGE_STAKE)", "source_mapping": { "start": 4817, "length": 73, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 111 ], "starting_column": 9, "ending_column": 82 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerStyleJudge", "source_mapping": { "start": 4701, "length": 419, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 109, 110, 111, 112, 113, 114, 115, 116 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerStyleJudge()" } } }, "additional_fields": { "underlying_type": "external_calls_sending_eth" } }, { "type": "node", "name": "judgeStakes[msg.sender] += STYLE_JUDGE_STAKE", "source_mapping": { "start": 4949, "length": 44, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 113 ], "starting_column": 9, "ending_column": 53 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerStyleJudge", "source_mapping": { "start": 4701, "length": 419, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 109, 110, 111, 112, 113, 114, 115, 116 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerStyleJudge()" } } }, "additional_fields": { "underlying_type": "variables_written", "variable_name": "judgeStakes" } } ], "description": "Reentrancy in JudgePanel.registerStyleJudge() (src/JudgePanel.sol#109-116):\n\tExternal calls:\n\t- ok = usdc.transferFrom(msg.sender,address(this),STYLE_JUDGE_STAKE) (src/JudgePanel.sol#111)\n\tState variables written after the call(s):\n\t- judgeStakes[msg.sender] += STYLE_JUDGE_STAKE (src/JudgePanel.sol#113)\n", "markdown": "Reentrancy in [JudgePanel.registerStyleJudge()](src/JudgePanel.sol#L109-L116):\n\tExternal calls:\n\t- [ok = usdc.transferFrom(msg.sender,address(this),STYLE_JUDGE_STAKE)](src/JudgePanel.sol#L111)\n\tState variables written after the call(s):\n\t- [judgeStakes[msg.sender] += STYLE_JUDGE_STAKE](src/JudgePanel.sol#L113)\n", "first_markdown_element": "src/JudgePanel.sol#L109-L116", "id": "dcf0d69d69d2032be2d213aee2dcf26b48e7b6ca5819c1f709627e21380ad487", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "registerAgent", "source_mapping": { "start": 7177, "length": 445, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 166, 167, 168, 169, 170, 171, 172, 173, 174 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerAgent()" } }, { "type": "node", "name": "ok = usdc.transferFrom(msg.sender,address(this),REGISTRATION_STAKE)", "source_mapping": { "start": 7285, "length": 74, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 168 ], "starting_column": 9, "ending_column": 83 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerAgent", "source_mapping": { "start": 7177, "length": 445, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 166, 167, 168, 169, 170, 171, 172, 173, 174 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerAgent()" } } }, "additional_fields": { "underlying_type": "external_calls" } }, { "type": "node", "name": "ok = usdc.transferFrom(msg.sender,address(this),REGISTRATION_STAKE)", "source_mapping": { "start": 7285, "length": 74, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 168 ], "starting_column": 9, "ending_column": 83 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerAgent", "source_mapping": { "start": 7177, "length": 445, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 166, 167, 168, 169, 170, 171, 172, 173, 174 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerAgent()" } } }, "additional_fields": { "underlying_type": "external_calls_sending_eth" } }, { "type": "node", "name": "lockedStakes[msg.sender] += REGISTRATION_STAKE", "source_mapping": { "start": 7468, "length": 46, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 171 ], "starting_column": 9, "ending_column": 55 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerAgent", "source_mapping": { "start": 7177, "length": 445, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 166, 167, 168, 169, 170, 171, 172, 173, 174 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerAgent()" } } }, "additional_fields": { "underlying_type": "variables_written", "variable_name": "lockedStakes" } }, { "type": "node", "name": "stakes[msg.sender] += REGISTRATION_STAKE", "source_mapping": { "start": 7418, "length": 40, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 170 ], "starting_column": 9, "ending_column": 49 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerAgent", "source_mapping": { "start": 7177, "length": 445, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 166, 167, 168, 169, 170, 171, 172, 173, 174 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerAgent()" } } }, "additional_fields": { "underlying_type": "variables_written", "variable_name": "stakes" } } ], "description": "Reentrancy in TranslationAuction.registerAgent() (src/TranslationAuction.sol#166-174):\n\tExternal calls:\n\t- ok = usdc.transferFrom(msg.sender,address(this),REGISTRATION_STAKE) (src/TranslationAuction.sol#168)\n\tState variables written after the call(s):\n\t- lockedStakes[msg.sender] += REGISTRATION_STAKE (src/TranslationAuction.sol#171)\n\t- stakes[msg.sender] += REGISTRATION_STAKE (src/TranslationAuction.sol#170)\n", "markdown": "Reentrancy in [TranslationAuction.registerAgent()](src/TranslationAuction.sol#L166-L174):\n\tExternal calls:\n\t- [ok = usdc.transferFrom(msg.sender,address(this),REGISTRATION_STAKE)](src/TranslationAuction.sol#L168)\n\tState variables written after the call(s):\n\t- [lockedStakes[msg.sender] += REGISTRATION_STAKE](src/TranslationAuction.sol#L171)\n\t- [stakes[msg.sender] += REGISTRATION_STAKE](src/TranslationAuction.sol#L170)\n", "first_markdown_element": "src/TranslationAuction.sol#L166-L174", "id": "df98a4b5705a328e10b0c693276dd62c7dcff94f6d743eee0f476aece145be70", "check": "reentrancy-benign", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "registerTranslationJudge", "source_mapping": { "start": 4075, "length": 467, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 98, 99, 100, 101, 102, 103, 104, 105 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerTranslationJudge()" } }, { "type": "node", "name": "ok = usdc.transferFrom(msg.sender,address(this),TRANSLATION_JUDGE_STAKE)", "source_mapping": { "start": 4209, "length": 79, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 100 ], "starting_column": 9, "ending_column": 88 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerTranslationJudge", "source_mapping": { "start": 4075, "length": 467, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 98, 99, 100, 101, 102, 103, 104, 105 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerTranslationJudge()" } } }, "additional_fields": { "underlying_type": "external_calls" } }, { "type": "node", "name": "JudgeRegistered(msg.sender,JUDGE_TYPE_TRANSLATION,TRANSLATION_JUDGE_STAKE)", "source_mapping": { "start": 4454, "length": 81, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 104 ], "starting_column": 9, "ending_column": 90 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerTranslationJudge", "source_mapping": { "start": 4075, "length": 467, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 98, 99, 100, 101, 102, 103, 104, 105 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerTranslationJudge()" } } }, "additional_fields": { "underlying_type": "event" } } ], "description": "Reentrancy in JudgePanel.registerTranslationJudge() (src/JudgePanel.sol#98-105):\n\tExternal calls:\n\t- ok = usdc.transferFrom(msg.sender,address(this),TRANSLATION_JUDGE_STAKE) (src/JudgePanel.sol#100)\n\tEvent emitted after the call(s):\n\t- JudgeRegistered(msg.sender,JUDGE_TYPE_TRANSLATION,TRANSLATION_JUDGE_STAKE) (src/JudgePanel.sol#104)\n", "markdown": "Reentrancy in [JudgePanel.registerTranslationJudge()](src/JudgePanel.sol#L98-L105):\n\tExternal calls:\n\t- [ok = usdc.transferFrom(msg.sender,address(this),TRANSLATION_JUDGE_STAKE)](src/JudgePanel.sol#L100)\n\tEvent emitted after the call(s):\n\t- [JudgeRegistered(msg.sender,JUDGE_TYPE_TRANSLATION,TRANSLATION_JUDGE_STAKE)](src/JudgePanel.sol#L104)\n", "first_markdown_element": "src/JudgePanel.sol#L98-L105", "id": "122bd457e77c8370af7d8860f2982173458f81fad9458f6b51b876948798b3a8", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "claimFees", "source_mapping": { "start": 5824, "length": 331, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 147, 148, 149, 150, 151, 152, 153, 154 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "BuilderFeeRouter", "source_mapping": { "start": 1013, "length": 7046, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "claimFees(address)" } }, { "type": "node", "name": "ok = usdc.transfer(translator,amount)", "source_mapping": { "start": 6014, "length": 43, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 151 ], "starting_column": 9, "ending_column": 52 }, "type_specific_fields": { "parent": { "type": "function", "name": "claimFees", "source_mapping": { "start": 5824, "length": 331, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 147, 148, 149, 150, 151, 152, 153, 154 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "BuilderFeeRouter", "source_mapping": { "start": 1013, "length": 7046, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "claimFees(address)" } } }, "additional_fields": { "underlying_type": "external_calls" } }, { "type": "node", "name": "FeesClaimed(translator,amount)", "source_mapping": { "start": 6112, "length": 36, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 153 ], "starting_column": 9, "ending_column": 45 }, "type_specific_fields": { "parent": { "type": "function", "name": "claimFees", "source_mapping": { "start": 5824, "length": 331, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 147, 148, 149, 150, 151, 152, 153, 154 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "BuilderFeeRouter", "source_mapping": { "start": 1013, "length": 7046, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "claimFees(address)" } } }, "additional_fields": { "underlying_type": "event" } } ], "description": "Reentrancy in BuilderFeeRouter.claimFees(address) (src/BuilderFeeRouter.sol#147-154):\n\tExternal calls:\n\t- ok = usdc.transfer(translator,amount) (src/BuilderFeeRouter.sol#151)\n\tEvent emitted after the call(s):\n\t- FeesClaimed(translator,amount) (src/BuilderFeeRouter.sol#153)\n", "markdown": "Reentrancy in [BuilderFeeRouter.claimFees(address)](src/BuilderFeeRouter.sol#L147-L154):\n\tExternal calls:\n\t- [ok = usdc.transfer(translator,amount)](src/BuilderFeeRouter.sol#L151)\n\tEvent emitted after the call(s):\n\t- [FeesClaimed(translator,amount)](src/BuilderFeeRouter.sol#L153)\n", "first_markdown_element": "src/BuilderFeeRouter.sol#L147-L154", "id": "2fcbd160a732c1ce4b1f1fee6708e7efc2c79d18974f1c8c345621b256cc0127", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "fund", "source_mapping": { "start": 4103, "length": 250, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 105, 106, 107, 108, 109, 110 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "BuilderFeeRouter", "source_mapping": { "start": 1013, "length": 7046, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "fund(uint256)" } }, { "type": "node", "name": "ok = usdc.transferFrom(msg.sender,address(this),amount)", "source_mapping": { "start": 4194, "length": 62, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 107 ], "starting_column": 9, "ending_column": 71 }, "type_specific_fields": { "parent": { "type": "function", "name": "fund", "source_mapping": { "start": 4103, "length": 250, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 105, 106, 107, 108, 109, 110 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "BuilderFeeRouter", "source_mapping": { "start": 1013, "length": 7046, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "fund(uint256)" } } }, "additional_fields": { "underlying_type": "external_calls" } }, { "type": "node", "name": "Funded(msg.sender,amount)", "source_mapping": { "start": 4315, "length": 31, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 109 ], "starting_column": 9, "ending_column": 40 }, "type_specific_fields": { "parent": { "type": "function", "name": "fund", "source_mapping": { "start": 4103, "length": 250, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 105, 106, 107, 108, 109, 110 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "BuilderFeeRouter", "source_mapping": { "start": 1013, "length": 7046, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "fund(uint256)" } } }, "additional_fields": { "underlying_type": "event" } } ], "description": "Reentrancy in BuilderFeeRouter.fund(uint256) (src/BuilderFeeRouter.sol#105-110):\n\tExternal calls:\n\t- ok = usdc.transferFrom(msg.sender,address(this),amount) (src/BuilderFeeRouter.sol#107)\n\tEvent emitted after the call(s):\n\t- Funded(msg.sender,amount) (src/BuilderFeeRouter.sol#109)\n", "markdown": "Reentrancy in [BuilderFeeRouter.fund(uint256)](src/BuilderFeeRouter.sol#L105-L110):\n\tExternal calls:\n\t- [ok = usdc.transferFrom(msg.sender,address(this),amount)](src/BuilderFeeRouter.sol#L107)\n\tEvent emitted after the call(s):\n\t- [Funded(msg.sender,amount)](src/BuilderFeeRouter.sol#L109)\n", "first_markdown_element": "src/BuilderFeeRouter.sol#L105-L110", "id": "53b18a7019124342e74362d5d5918810b9f6345d2af95bdc98a11b8f1ea8a7af", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "settleAuction", "source_mapping": { "start": 10833, "length": 2193, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "settleAuction(bytes32)" } }, { "type": "node", "name": "reputation.updateOnAuction(bidder_scope_1,bidder_scope_1 == bestBidder)", "source_mapping": { "start": 12265, "length": 56, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 278 ], "starting_column": 17, "ending_column": 73 }, "type_specific_fields": { "parent": { "type": "function", "name": "settleAuction", "source_mapping": { "start": 10833, "length": 2193, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "settleAuction(bytes32)" } } }, "additional_fields": { "underlying_type": "external_calls" } }, { "type": "node", "name": "AuctionSettled(eventId,bestBidder,bestBid)", "source_mapping": { "start": 12970, "length": 49, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 294 ], "starting_column": 9, "ending_column": 58 }, "type_specific_fields": { "parent": { "type": "function", "name": "settleAuction", "source_mapping": { "start": 10833, "length": 2193, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "settleAuction(bytes32)" } } }, "additional_fields": { "underlying_type": "event" } }, { "type": "node", "name": "SlashableWindowOpened(eventId,bestBidder,unlockAt)", "source_mapping": { "start": 12892, "length": 57, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 291 ], "starting_column": 13, "ending_column": 70 }, "type_specific_fields": { "parent": { "type": "function", "name": "settleAuction", "source_mapping": { "start": 10833, "length": 2193, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "settleAuction(bytes32)" } } }, "additional_fields": { "underlying_type": "event" } } ], "description": "Reentrancy in TranslationAuction.settleAuction(bytes32) (src/TranslationAuction.sol#241-295):\n\tExternal calls:\n\t- reputation.updateOnAuction(bidder_scope_1,bidder_scope_1 == bestBidder) (src/TranslationAuction.sol#278)\n\tEvent emitted after the call(s):\n\t- AuctionSettled(eventId,bestBidder,bestBid) (src/TranslationAuction.sol#294)\n\t- SlashableWindowOpened(eventId,bestBidder,unlockAt) (src/TranslationAuction.sol#291)\n", "markdown": "Reentrancy in [TranslationAuction.settleAuction(bytes32)](src/TranslationAuction.sol#L241-L295):\n\tExternal calls:\n\t- [reputation.updateOnAuction(bidder_scope_1,bidder_scope_1 == bestBidder)](src/TranslationAuction.sol#L278)\n\tEvent emitted after the call(s):\n\t- [AuctionSettled(eventId,bestBidder,bestBid)](src/TranslationAuction.sol#L294)\n\t- [SlashableWindowOpened(eventId,bestBidder,unlockAt)](src/TranslationAuction.sol#L291)\n", "first_markdown_element": "src/TranslationAuction.sol#L241-L295", "id": "63c1f48db70dc220b2f90995f41ede69da27baaa2cfaa2ff32ac14b0cd2d8cba", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "registerStyleJudge", "source_mapping": { "start": 4701, "length": 419, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 109, 110, 111, 112, 113, 114, 115, 116 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerStyleJudge()" } }, { "type": "node", "name": "ok = usdc.transferFrom(msg.sender,address(this),STYLE_JUDGE_STAKE)", "source_mapping": { "start": 4817, "length": 73, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 111 ], "starting_column": 9, "ending_column": 82 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerStyleJudge", "source_mapping": { "start": 4701, "length": 419, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 109, 110, 111, 112, 113, 114, 115, 116 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerStyleJudge()" } } }, "additional_fields": { "underlying_type": "external_calls" } }, { "type": "node", "name": "JudgeRegistered(msg.sender,JUDGE_TYPE_STYLE,STYLE_JUDGE_STAKE)", "source_mapping": { "start": 5044, "length": 69, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 115 ], "starting_column": 9, "ending_column": 78 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerStyleJudge", "source_mapping": { "start": 4701, "length": 419, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 109, 110, 111, 112, 113, 114, 115, 116 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerStyleJudge()" } } }, "additional_fields": { "underlying_type": "event" } } ], "description": "Reentrancy in JudgePanel.registerStyleJudge() (src/JudgePanel.sol#109-116):\n\tExternal calls:\n\t- ok = usdc.transferFrom(msg.sender,address(this),STYLE_JUDGE_STAKE) (src/JudgePanel.sol#111)\n\tEvent emitted after the call(s):\n\t- JudgeRegistered(msg.sender,JUDGE_TYPE_STYLE,STYLE_JUDGE_STAKE) (src/JudgePanel.sol#115)\n", "markdown": "Reentrancy in [JudgePanel.registerStyleJudge()](src/JudgePanel.sol#L109-L116):\n\tExternal calls:\n\t- [ok = usdc.transferFrom(msg.sender,address(this),STYLE_JUDGE_STAKE)](src/JudgePanel.sol#L111)\n\tEvent emitted after the call(s):\n\t- [JudgeRegistered(msg.sender,JUDGE_TYPE_STYLE,STYLE_JUDGE_STAKE)](src/JudgePanel.sol#L115)\n", "first_markdown_element": "src/JudgePanel.sol#L109-L116", "id": "6fe9b43ed0c51f599d172ddc2e63ab04f3772721ca371fab36343b04e44f863f", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "withdrawJudge", "source_mapping": { "start": 7013, "length": 401, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "withdrawJudge(address)" } }, { "type": "node", "name": "ok = usdc.transfer(judge,amount)", "source_mapping": { "start": 7281, "length": 38, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 166 ], "starting_column": 9, "ending_column": 47 }, "type_specific_fields": { "parent": { "type": "function", "name": "withdrawJudge", "source_mapping": { "start": 7013, "length": 401, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "withdrawJudge(address)" } } }, "additional_fields": { "underlying_type": "external_calls" } }, { "type": "node", "name": "JudgeWithdrew(judge,amount)", "source_mapping": { "start": 7374, "length": 33, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 168 ], "starting_column": 9, "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", "name": "withdrawJudge", "source_mapping": { "start": 7013, "length": 401, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 160, 161, 162, 163, 164, 165, 166, 167, 168, 169 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "JudgePanel", "source_mapping": { "start": 1144, "length": 6822, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "withdrawJudge(address)" } } }, "additional_fields": { "underlying_type": "event" } } ], "description": "Reentrancy in JudgePanel.withdrawJudge(address) (src/JudgePanel.sol#160-169):\n\tExternal calls:\n\t- ok = usdc.transfer(judge,amount) (src/JudgePanel.sol#166)\n\tEvent emitted after the call(s):\n\t- JudgeWithdrew(judge,amount) (src/JudgePanel.sol#168)\n", "markdown": "Reentrancy in [JudgePanel.withdrawJudge(address)](src/JudgePanel.sol#L160-L169):\n\tExternal calls:\n\t- [ok = usdc.transfer(judge,amount)](src/JudgePanel.sol#L166)\n\tEvent emitted after the call(s):\n\t- [JudgeWithdrew(judge,amount)](src/JudgePanel.sol#L168)\n", "first_markdown_element": "src/JudgePanel.sol#L160-L169", "id": "803b1184f125377c7be868c799a21da42adabbe2b593733edda29c2fc9f715ff", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "registerAgent", "source_mapping": { "start": 7177, "length": 445, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 166, 167, 168, 169, 170, 171, 172, 173, 174 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerAgent()" } }, { "type": "node", "name": "ok = usdc.transferFrom(msg.sender,address(this),REGISTRATION_STAKE)", "source_mapping": { "start": 7285, "length": 74, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 168 ], "starting_column": 9, "ending_column": 83 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerAgent", "source_mapping": { "start": 7177, "length": 445, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 166, 167, 168, 169, 170, 171, 172, 173, 174 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerAgent()" } } }, "additional_fields": { "underlying_type": "external_calls" } }, { "type": "node", "name": "AgentRegistered(msg.sender,REGISTRATION_STAKE)", "source_mapping": { "start": 7563, "length": 52, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 173 ], "starting_column": 9, "ending_column": 61 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerAgent", "source_mapping": { "start": 7177, "length": 445, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 166, 167, 168, 169, 170, 171, 172, 173, 174 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerAgent()" } } }, "additional_fields": { "underlying_type": "event" } } ], "description": "Reentrancy in TranslationAuction.registerAgent() (src/TranslationAuction.sol#166-174):\n\tExternal calls:\n\t- ok = usdc.transferFrom(msg.sender,address(this),REGISTRATION_STAKE) (src/TranslationAuction.sol#168)\n\tEvent emitted after the call(s):\n\t- AgentRegistered(msg.sender,REGISTRATION_STAKE) (src/TranslationAuction.sol#173)\n", "markdown": "Reentrancy in [TranslationAuction.registerAgent()](src/TranslationAuction.sol#L166-L174):\n\tExternal calls:\n\t- [ok = usdc.transferFrom(msg.sender,address(this),REGISTRATION_STAKE)](src/TranslationAuction.sol#L168)\n\tEvent emitted after the call(s):\n\t- [AgentRegistered(msg.sender,REGISTRATION_STAKE)](src/TranslationAuction.sol#L173)\n", "first_markdown_element": "src/TranslationAuction.sol#L166-L174", "id": "bd38399c82f9da87613d18ccb1896b7ac2a30f8236fa56a3c594915d3d548a6b", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "recordFill", "source_mapping": { "start": 4874, "length": 745, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "BuilderFeeRouter", "source_mapping": { "start": 1013, "length": 7046, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "recordFill(string,uint256,address)" } }, { "type": "node", "name": "reputation.updateOnFee(translator,fillAmount)", "source_mapping": { "start": 5465, "length": 46, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 138 ], "starting_column": 13, "ending_column": 59 }, "type_specific_fields": { "parent": { "type": "function", "name": "recordFill", "source_mapping": { "start": 4874, "length": 745, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "BuilderFeeRouter", "source_mapping": { "start": 1013, "length": 7046, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "recordFill(string,uint256,address)" } } }, "additional_fields": { "underlying_type": "external_calls" } }, { "type": "node", "name": "PayoutAccrued(translator,marketId,fillAmount,cumulativeFees[translator])", "source_mapping": { "start": 5532, "length": 80, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 141 ], "starting_column": 9, "ending_column": 89 }, "type_specific_fields": { "parent": { "type": "function", "name": "recordFill", "source_mapping": { "start": 4874, "length": 745, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "BuilderFeeRouter", "source_mapping": { "start": 1013, "length": 7046, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "recordFill(string,uint256,address)" } } }, "additional_fields": { "underlying_type": "event" } } ], "description": "Reentrancy in BuilderFeeRouter.recordFill(string,uint256,address) (src/BuilderFeeRouter.sol#120-142):\n\tExternal calls:\n\t- reputation.updateOnFee(translator,fillAmount) (src/BuilderFeeRouter.sol#138)\n\tEvent emitted after the call(s):\n\t- PayoutAccrued(translator,marketId,fillAmount,cumulativeFees[translator]) (src/BuilderFeeRouter.sol#141)\n", "markdown": "Reentrancy in [BuilderFeeRouter.recordFill(string,uint256,address)](src/BuilderFeeRouter.sol#L120-L142):\n\tExternal calls:\n\t- [reputation.updateOnFee(translator,fillAmount)](src/BuilderFeeRouter.sol#L138)\n\tEvent emitted after the call(s):\n\t- [PayoutAccrued(translator,marketId,fillAmount,cumulativeFees[translator])](src/BuilderFeeRouter.sol#L141)\n", "first_markdown_element": "src/BuilderFeeRouter.sol#L120-L142", "id": "d5d3880fa1cf4b465c5d5aa2c2eab1deb0e3a8ad1275843ace7e5a75c825f4ff", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "withdrawStake", "source_mapping": { "start": 8003, "length": 540, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "withdrawStake()" } }, { "type": "node", "name": "ok = usdc.transfer(msg.sender,amount)", "source_mapping": { "start": 8399, "length": 43, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 189 ], "starting_column": 9, "ending_column": 52 }, "type_specific_fields": { "parent": { "type": "function", "name": "withdrawStake", "source_mapping": { "start": 8003, "length": 540, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "withdrawStake()" } } }, "additional_fields": { "underlying_type": "external_calls" } }, { "type": "node", "name": "StakeWithdrawn(msg.sender,amount)", "source_mapping": { "start": 8497, "length": 39, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 191 ], "starting_column": 9, "ending_column": 48 }, "type_specific_fields": { "parent": { "type": "function", "name": "withdrawStake", "source_mapping": { "start": 8003, "length": 540, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "withdrawStake()" } } }, "additional_fields": { "underlying_type": "event" } } ], "description": "Reentrancy in TranslationAuction.withdrawStake() (src/TranslationAuction.sol#181-192):\n\tExternal calls:\n\t- ok = usdc.transfer(msg.sender,amount) (src/TranslationAuction.sol#189)\n\tEvent emitted after the call(s):\n\t- StakeWithdrawn(msg.sender,amount) (src/TranslationAuction.sol#191)\n", "markdown": "Reentrancy in [TranslationAuction.withdrawStake()](src/TranslationAuction.sol#L181-L192):\n\tExternal calls:\n\t- [ok = usdc.transfer(msg.sender,amount)](src/TranslationAuction.sol#L189)\n\tEvent emitted after the call(s):\n\t- [StakeWithdrawn(msg.sender,amount)](src/TranslationAuction.sol#L191)\n", "first_markdown_element": "src/TranslationAuction.sol#L181-L192", "id": "f22b3c6e113b210890e3a9fa346845b87e81d1f70fd83ad7ad8f60ebb3a43f22", "check": "reentrancy-events", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "submitBid", "source_mapping": { "start": 9469, "length": 1161, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "submitBid(bytes32,uint256,bytes32)" } }, { "type": "node", "name": "require(bool,string)(a.opened,not opened)", "source_mapping": { "start": 9613, "length": 31, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 215 ], "starting_column": 9, "ending_column": 40 }, "type_specific_fields": { "parent": { "type": "function", "name": "submitBid", "source_mapping": { "start": 9469, "length": 1161, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "submitBid(bytes32,uint256,bytes32)" } } } }, { "type": "node", "name": "require(bool,string)(! a.settled,settled)", "source_mapping": { "start": 9654, "length": 30, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 216 ], "starting_column": 9, "ending_column": 39 }, "type_specific_fields": { "parent": { "type": "function", "name": "submitBid", "source_mapping": { "start": 9469, "length": 1161, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "submitBid(bytes32,uint256,bytes32)" } } } }, { "type": "node", "name": "require(bool,string)(block.timestamp < a.deadline,window closed)", "source_mapping": { "start": 9694, "length": 54, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 217 ], "starting_column": 9, "ending_column": 63 }, "type_specific_fields": { "parent": { "type": "function", "name": "submitBid", "source_mapping": { "start": 9469, "length": 1161, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "submitBid(bytes32,uint256,bytes32)" } } } } ], "description": "TranslationAuction.submitBid(bytes32,uint256,bytes32) (src/TranslationAuction.sol#213-236) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(a.opened,not opened) (src/TranslationAuction.sol#215)\n\t- require(bool,string)(! a.settled,settled) (src/TranslationAuction.sol#216)\n\t- require(bool,string)(block.timestamp < a.deadline,window closed) (src/TranslationAuction.sol#217)\n", "markdown": "[TranslationAuction.submitBid(bytes32,uint256,bytes32)](src/TranslationAuction.sol#L213-L236) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(a.opened,not opened)](src/TranslationAuction.sol#L215)\n\t- [require(bool,string)(! a.settled,settled)](src/TranslationAuction.sol#L216)\n\t- [require(bool,string)(block.timestamp < a.deadline,window closed)](src/TranslationAuction.sol#L217)\n", "first_markdown_element": "src/TranslationAuction.sol#L213-L236", "id": "2798145a6e4b28f82f02f6ef11eb79ec20541dbd16b999d479b1dc0a86cc92cf", "check": "timestamp", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "settleAuction", "source_mapping": { "start": 10833, "length": 2193, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "settleAuction(bytes32)" } }, { "type": "node", "name": "require(bool,string)(a.opened,not opened)", "source_mapping": { "start": 10952, "length": 31, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 243 ], "starting_column": 9, "ending_column": 40 }, "type_specific_fields": { "parent": { "type": "function", "name": "settleAuction", "source_mapping": { "start": 10833, "length": 2193, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "settleAuction(bytes32)" } } } }, { "type": "node", "name": "require(bool,string)(! a.settled,already settled)", "source_mapping": { "start": 10993, "length": 38, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 244 ], "starting_column": 9, "ending_column": 47 }, "type_specific_fields": { "parent": { "type": "function", "name": "settleAuction", "source_mapping": { "start": 10833, "length": 2193, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "settleAuction(bytes32)" } } } }, { "type": "node", "name": "require(bool,string)(block.timestamp >= a.deadline,window open)", "source_mapping": { "start": 11041, "length": 53, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 245 ], "starting_column": 9, "ending_column": 62 }, "type_specific_fields": { "parent": { "type": "function", "name": "settleAuction", "source_mapping": { "start": 10833, "length": 2193, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "settleAuction(bytes32)" } } } }, { "type": "node", "name": "unlockAt > stakeUnlockAt[bestBidder]", "source_mapping": { "start": 12772, "length": 36, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 288 ], "starting_column": 17, "ending_column": 53 }, "type_specific_fields": { "parent": { "type": "function", "name": "settleAuction", "source_mapping": { "start": 10833, "length": 2193, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "settleAuction(bytes32)" } } } } ], "description": "TranslationAuction.settleAuction(bytes32) (src/TranslationAuction.sol#241-295) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(a.opened,not opened) (src/TranslationAuction.sol#243)\n\t- require(bool,string)(! a.settled,already settled) (src/TranslationAuction.sol#244)\n\t- require(bool,string)(block.timestamp >= a.deadline,window open) (src/TranslationAuction.sol#245)\n\t- unlockAt > stakeUnlockAt[bestBidder] (src/TranslationAuction.sol#288)\n", "markdown": "[TranslationAuction.settleAuction(bytes32)](src/TranslationAuction.sol#L241-L295) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(a.opened,not opened)](src/TranslationAuction.sol#L243)\n\t- [require(bool,string)(! a.settled,already settled)](src/TranslationAuction.sol#L244)\n\t- [require(bool,string)(block.timestamp >= a.deadline,window open)](src/TranslationAuction.sol#L245)\n\t- [unlockAt > stakeUnlockAt[bestBidder]](src/TranslationAuction.sol#L288)\n", "first_markdown_element": "src/TranslationAuction.sol#L241-L295", "id": "de699a1e9f86b233390f85a02722a816509690c69a125e06c4f0e57d9b33fd32", "check": "timestamp", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "withdrawStake", "source_mapping": { "start": 8003, "length": 540, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "withdrawStake()" } }, { "type": "node", "name": "require(bool,string)(block.timestamp >= unlockAt,slashable window open)", "source_mapping": { "start": 8101, "length": 61, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 183 ], "starting_column": 9, "ending_column": 70 }, "type_specific_fields": { "parent": { "type": "function", "name": "withdrawStake", "source_mapping": { "start": 8003, "length": 540, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "withdrawStake()" } } } } ], "description": "TranslationAuction.withdrawStake() (src/TranslationAuction.sol#181-192) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(block.timestamp >= unlockAt,slashable window open) (src/TranslationAuction.sol#183)\n", "markdown": "[TranslationAuction.withdrawStake()](src/TranslationAuction.sol#L181-L192) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(block.timestamp >= unlockAt,slashable window open)](src/TranslationAuction.sol#L183)\n", "first_markdown_element": "src/TranslationAuction.sol#L181-L192", "id": "f281ec97db8b1ddd4c71961006fce480c208872b00bfceb19d4637cefa0ac3bd", "check": "timestamp", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "function", "name": "openAuction", "source_mapping": { "start": 8717, "length": 360, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 198, 199, 200, 201, 202, 203, 204, 205 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "openAuction(bytes32,bytes32)" } }, { "type": "node", "name": "require(bool,string)(! a.opened,already opened)", "source_mapping": { "start": 8853, "length": 36, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 200 ], "starting_column": 9, "ending_column": 45 }, "type_specific_fields": { "parent": { "type": "function", "name": "openAuction", "source_mapping": { "start": 8717, "length": 360, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 198, 199, 200, 201, 202, 203, 204, 205 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "openAuction(bytes32,bytes32)" } } } } ], "description": "TranslationAuction.openAuction(bytes32,bytes32) (src/TranslationAuction.sol#198-205) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- require(bool,string)(! a.opened,already opened) (src/TranslationAuction.sol#200)\n", "markdown": "[TranslationAuction.openAuction(bytes32,bytes32)](src/TranslationAuction.sol#L198-L205) uses timestamp for comparisons\n\tDangerous comparisons:\n\t- [require(bool,string)(! a.opened,already opened)](src/TranslationAuction.sol#L200)\n", "first_markdown_element": "src/TranslationAuction.sol#L198-L205", "id": "fa26e5855ac3cabdfc7abfeb4d7d683abcfd1ccd71fa7bbd1930fdc5de0bb1e2", "check": "timestamp", "impact": "Low", "confidence": "Medium" }, { "elements": [ { "type": "pragma", "name": "^0.8.20", "source_mapping": { "start": 32, "length": 24, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 2 ], "starting_column": 1, "ending_column": 25 }, "type_specific_fields": { "directive": [ "solidity", "^", "0.8", ".20" ] } }, { "type": "pragma", "name": "^0.8.20", "source_mapping": { "start": 32, "length": 24, "filename_relative": "src/JudgePanel.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/JudgePanel.sol", "filename_short": "src/JudgePanel.sol", "is_dependency": false, "lines": [ 2 ], "starting_column": 1, "ending_column": 25 }, "type_specific_fields": { "directive": [ "solidity", "^", "0.8", ".20" ] } }, { "type": "pragma", "name": "^0.8.20", "source_mapping": { "start": 32, "length": 24, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 2 ], "starting_column": 1, "ending_column": 25 }, "type_specific_fields": { "directive": [ "solidity", "^", "0.8", ".20" ] } }, { "type": "pragma", "name": "^0.8.20", "source_mapping": { "start": 32, "length": 24, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 2 ], "starting_column": 1, "ending_column": 25 }, "type_specific_fields": { "directive": [ "solidity", "^", "0.8", ".20" ] } }, { "type": "pragma", "name": "^0.8.20", "source_mapping": { "start": 32, "length": 24, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 2 ], "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 (src/BuilderFeeRouter.sol#2)\n\t- ^0.8.20 (src/JudgePanel.sol#2)\n\t- ^0.8.20 (src/QuestionRegistry.sol#2)\n\t- ^0.8.20 (src/ReputationRegistry.sol#2)\n\t- ^0.8.20 (src/TranslationAuction.sol#2)\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](src/BuilderFeeRouter.sol#L2)\n\t- [^0.8.20](src/JudgePanel.sol#L2)\n\t- [^0.8.20](src/QuestionRegistry.sol#L2)\n\t- [^0.8.20](src/ReputationRegistry.sol#L2)\n\t- [^0.8.20](src/TranslationAuction.sol#L2)\n", "first_markdown_element": "src/BuilderFeeRouter.sol#L2", "id": "006ff9d8ffe3af1975ddce64214ecb2483690b51e23421425aea6af70ff840a7", "check": "solc-version", "impact": "Informational", "confidence": "High" }, { "elements": [ { "type": "contract", "name": "ReputationRegistry", "source_mapping": { "start": 557, "length": 11726, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 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 ], "starting_column": 1, "ending_column": 2 } }, { "type": "contract", "name": "IReputationRegistry", "source_mapping": { "start": 319, "length": 99, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 10, 11, 12 ], "starting_column": 1, "ending_column": 2 } } ], "description": "ReputationRegistry (src/ReputationRegistry.sol#11-306) should inherit from IReputationRegistry (src/BuilderFeeRouter.sol#10-12)\n", "markdown": "[ReputationRegistry](src/ReputationRegistry.sol#L11-L306) should inherit from [IReputationRegistry](src/BuilderFeeRouter.sol#L10-L12)\n", "first_markdown_element": "src/ReputationRegistry.sol#L11-L306", "id": "caebdc15e8cec83052be15c5affea9db5b5fd7c33cf0f02b8007b881644681a8", "check": "missing-inheritance", "impact": "Informational", "confidence": "High" }, { "elements": [ { "type": "variable", "name": "_resolutionSource", "source_mapping": { "start": 978, "length": 33, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 34 ], "starting_column": 9, "ending_column": 42 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerQuestion", "source_mapping": { "start": 882, "length": 757, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "QuestionRegistry", "source_mapping": { "start": 320, "length": 1439, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerQuestion(bytes32,bytes32,string,uint256,string,string)" } } }, "additional_fields": { "target": "parameter", "convention": "mixedCase" } } ], "description": "Parameter QuestionRegistry.registerQuestion(bytes32,bytes32,string,uint256,string,string)._resolutionSource (src/QuestionRegistry.sol#34) is not in mixedCase\n", "markdown": "Parameter [QuestionRegistry.registerQuestion(bytes32,bytes32,string,uint256,string,string)._resolutionSource](src/QuestionRegistry.sol#L34) is not in mixedCase\n", "first_markdown_element": "src/QuestionRegistry.sol#L34", "id": "3df57f8e09efb33283677e35a95e9298b48bf0922b6979a87b041d6b0d67c65f", "check": "naming-convention", "impact": "Informational", "confidence": "High" }, { "elements": [ { "type": "variable", "name": "_winningTranslator", "source_mapping": { "start": 1083, "length": 34, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 37 ], "starting_column": 9, "ending_column": 43 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerQuestion", "source_mapping": { "start": 882, "length": 757, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "QuestionRegistry", "source_mapping": { "start": 320, "length": 1439, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerQuestion(bytes32,bytes32,string,uint256,string,string)" } } }, "additional_fields": { "target": "parameter", "convention": "mixedCase" } } ], "description": "Parameter QuestionRegistry.registerQuestion(bytes32,bytes32,string,uint256,string,string)._winningTranslator (src/QuestionRegistry.sol#37) is not in mixedCase\n", "markdown": "Parameter [QuestionRegistry.registerQuestion(bytes32,bytes32,string,uint256,string,string)._winningTranslator](src/QuestionRegistry.sol#L37) is not in mixedCase\n", "first_markdown_element": "src/QuestionRegistry.sol#L37", "id": "4ac193d7dce8801c50b16166311c22df1b06cebb126490c21889fbd3a702fb21", "check": "naming-convention", "impact": "Informational", "confidence": "High" }, { "elements": [ { "type": "variable", "name": "_category", "source_mapping": { "start": 1048, "length": 25, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 36 ], "starting_column": 9, "ending_column": 34 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerQuestion", "source_mapping": { "start": 882, "length": 757, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "QuestionRegistry", "source_mapping": { "start": 320, "length": 1439, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerQuestion(bytes32,bytes32,string,uint256,string,string)" } } }, "additional_fields": { "target": "parameter", "convention": "mixedCase" } } ], "description": "Parameter QuestionRegistry.registerQuestion(bytes32,bytes32,string,uint256,string,string)._category (src/QuestionRegistry.sol#36) is not in mixedCase\n", "markdown": "Parameter [QuestionRegistry.registerQuestion(bytes32,bytes32,string,uint256,string,string)._category](src/QuestionRegistry.sol#L36) is not in mixedCase\n", "first_markdown_element": "src/QuestionRegistry.sol#L36", "id": "65ec677e8af09334a89b75f8f32ca30510dc76f15cf947a678b7372524bdbdf8", "check": "naming-convention", "impact": "Informational", "confidence": "High" }, { "elements": [ { "type": "variable", "name": "_sourceNewsHash", "source_mapping": { "start": 945, "length": 23, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 33 ], "starting_column": 9, "ending_column": 32 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerQuestion", "source_mapping": { "start": 882, "length": 757, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "QuestionRegistry", "source_mapping": { "start": 320, "length": 1439, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerQuestion(bytes32,bytes32,string,uint256,string,string)" } } }, "additional_fields": { "target": "parameter", "convention": "mixedCase" } } ], "description": "Parameter QuestionRegistry.registerQuestion(bytes32,bytes32,string,uint256,string,string)._sourceNewsHash (src/QuestionRegistry.sol#33) is not in mixedCase\n", "markdown": "Parameter [QuestionRegistry.registerQuestion(bytes32,bytes32,string,uint256,string,string)._sourceNewsHash](src/QuestionRegistry.sol#L33) is not in mixedCase\n", "first_markdown_element": "src/QuestionRegistry.sol#L33", "id": "845c37580b6cec6f265b87f149a63b5a8cebce524f75d4f613cc836e6bc99739", "check": "naming-convention", "impact": "Informational", "confidence": "High" }, { "elements": [ { "type": "variable", "name": "_titleHash", "source_mapping": { "start": 917, "length": 18, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 32 ], "starting_column": 9, "ending_column": 27 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerQuestion", "source_mapping": { "start": 882, "length": 757, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "QuestionRegistry", "source_mapping": { "start": 320, "length": 1439, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerQuestion(bytes32,bytes32,string,uint256,string,string)" } } }, "additional_fields": { "target": "parameter", "convention": "mixedCase" } } ], "description": "Parameter QuestionRegistry.registerQuestion(bytes32,bytes32,string,uint256,string,string)._titleHash (src/QuestionRegistry.sol#32) is not in mixedCase\n", "markdown": "Parameter [QuestionRegistry.registerQuestion(bytes32,bytes32,string,uint256,string,string)._titleHash](src/QuestionRegistry.sol#L32) is not in mixedCase\n", "first_markdown_element": "src/QuestionRegistry.sol#L32", "id": "9bc0cbf936072fe2b5b692b67c51572864823f8059cc3630cbb8a6d831a9daaa", "check": "naming-convention", "impact": "Informational", "confidence": "High" }, { "elements": [ { "type": "variable", "name": "_reputation", "source_mapping": { "start": 3368, "length": 19, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 88 ], "starting_column": 36, "ending_column": 55 }, "type_specific_fields": { "parent": { "type": "function", "name": "setReputationRegistry", "source_mapping": { "start": 3337, "length": 248, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 88, 89, 90, 91, 92 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "BuilderFeeRouter", "source_mapping": { "start": 1013, "length": 7046, "filename_relative": "src/BuilderFeeRouter.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/BuilderFeeRouter.sol", "filename_short": "src/BuilderFeeRouter.sol", "is_dependency": false, "lines": [ 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "setReputationRegistry(address)" } } }, "additional_fields": { "target": "parameter", "convention": "mixedCase" } } ], "description": "Parameter BuilderFeeRouter.setReputationRegistry(address)._reputation (src/BuilderFeeRouter.sol#88) is not in mixedCase\n", "markdown": "Parameter [BuilderFeeRouter.setReputationRegistry(address)._reputation](src/BuilderFeeRouter.sol#L88) is not in mixedCase\n", "first_markdown_element": "src/BuilderFeeRouter.sol#L88", "id": "a6a1effdf9f23b2ca7be82abe760c958eed341c0ca2bd78d73eeb5b33ef16490", "check": "naming-convention", "impact": "Informational", "confidence": "High" }, { "elements": [ { "type": "variable", "name": "_reputation", "source_mapping": { "start": 6404, "length": 19, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 148 ], "starting_column": 36, "ending_column": 55 }, "type_specific_fields": { "parent": { "type": "function", "name": "setReputationRegistry", "source_mapping": { "start": 6373, "length": 248, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "lines": [ 148, 149, 150, 151, 152 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "TranslationAuction", "source_mapping": { "start": 988, "length": 14046, "filename_relative": "src/TranslationAuction.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/TranslationAuction.sol", "filename_short": "src/TranslationAuction.sol", "is_dependency": false, "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, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 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 ], "starting_column": 1, "ending_column": 2 } }, "signature": "setReputationRegistry(address)" } } }, "additional_fields": { "target": "parameter", "convention": "mixedCase" } } ], "description": "Parameter TranslationAuction.setReputationRegistry(address)._reputation (src/TranslationAuction.sol#148) is not in mixedCase\n", "markdown": "Parameter [TranslationAuction.setReputationRegistry(address)._reputation](src/TranslationAuction.sol#L148) is not in mixedCase\n", "first_markdown_element": "src/TranslationAuction.sol#L148", "id": "db8eb803707869404451b1796a941aae2698741644435274e2ca5dc1cdd1db15", "check": "naming-convention", "impact": "Informational", "confidence": "High" }, { "elements": [ { "type": "variable", "name": "_id", "source_mapping": { "start": 1666, "length": 11, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 53 ], "starting_column": 26, "ending_column": 37 }, "type_specific_fields": { "parent": { "type": "function", "name": "getQuestion", "source_mapping": { "start": 1645, "length": 112, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 53, 54, 55 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "QuestionRegistry", "source_mapping": { "start": 320, "length": 1439, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56 ], "starting_column": 1, "ending_column": 2 } }, "signature": "getQuestion(uint256)" } } }, "additional_fields": { "target": "parameter", "convention": "mixedCase" } } ], "description": "Parameter QuestionRegistry.getQuestion(uint256)._id (src/QuestionRegistry.sol#53) is not in mixedCase\n", "markdown": "Parameter [QuestionRegistry.getQuestion(uint256)._id](src/QuestionRegistry.sol#L53) is not in mixedCase\n", "first_markdown_element": "src/QuestionRegistry.sol#L53", "id": "ddba90a89d0a408a85b86a04c8ffbd6d09c6aa694813aade82b45596e597d5e1", "check": "naming-convention", "impact": "Informational", "confidence": "High" }, { "elements": [ { "type": "variable", "name": "_cutoffTs", "source_mapping": { "start": 1021, "length": 17, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 35 ], "starting_column": 9, "ending_column": 26 }, "type_specific_fields": { "parent": { "type": "function", "name": "registerQuestion", "source_mapping": { "start": 882, "length": 757, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 ], "starting_column": 5, "ending_column": 6 }, "type_specific_fields": { "parent": { "type": "contract", "name": "QuestionRegistry", "source_mapping": { "start": 320, "length": 1439, "filename_relative": "src/QuestionRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/QuestionRegistry.sol", "filename_short": "src/QuestionRegistry.sol", "is_dependency": false, "lines": [ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56 ], "starting_column": 1, "ending_column": 2 } }, "signature": "registerQuestion(bytes32,bytes32,string,uint256,string,string)" } } }, "additional_fields": { "target": "parameter", "convention": "mixedCase" } } ], "description": "Parameter QuestionRegistry.registerQuestion(bytes32,bytes32,string,uint256,string,string)._cutoffTs (src/QuestionRegistry.sol#35) is not in mixedCase\n", "markdown": "Parameter [QuestionRegistry.registerQuestion(bytes32,bytes32,string,uint256,string,string)._cutoffTs](src/QuestionRegistry.sol#L35) is not in mixedCase\n", "first_markdown_element": "src/QuestionRegistry.sol#L35", "id": "ffea70dfa4a02a58ddfa2b936b7bf5135700dd7ab1b155e098b28e3324b5fc6a", "check": "naming-convention", "impact": "Informational", "confidence": "High" }, { "elements": [ { "type": "variable", "name": "owner", "source_mapping": { "start": 2483, "length": 20, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 56 ], "starting_column": 5, "ending_column": 25 }, "type_specific_fields": { "parent": { "type": "contract", "name": "ReputationRegistry", "source_mapping": { "start": 557, "length": 11726, "filename_relative": "src/ReputationRegistry.sol", "filename_absolute": "/Users/messili/codebase/polyglot-alpha/contracts/src/ReputationRegistry.sol", "filename_short": "src/ReputationRegistry.sol", "is_dependency": false, "lines": [ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 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 ], "starting_column": 1, "ending_column": 2 } } } } ], "description": "ReputationRegistry.owner (src/ReputationRegistry.sol#56) should be immutable \n", "markdown": "[ReputationRegistry.owner](src/ReputationRegistry.sol#L56) should be immutable \n", "first_markdown_element": "src/ReputationRegistry.sol#L56", "id": "8e5158fb148ca05de590e1864eb6917ffebdecab870f84ee35570937057f5302", "check": "immutable-states", "impact": "Optimization", "confidence": "High" } ] } }